<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 考點練習 http://xue.test/index.php?r=croom/passer/answer&scheduleID=199 ## 考點強化—函數與導數(高考數學) http://xue.test/index.php?r=croom/passer/answer&scheduleID=199 ``` /** * 考點練習 * @author zhangjsh 2014/12/03 */ public function actionAnswer() { $this->layout = 'passer_answer_layout' ; if( Yii::app()->user->isGuest) $this->redirect_msgBox(array('default/index'),array('msg'=>'請先登錄')) ; $uid = Yii::app()->user->id ; $scheID = Yii::app()->request->getParam('scheduleID') ; $alias = Yii::app()->request->getParam('alias'); $tagID = RequestUtils::getNormalRequest('tagID');//題型對應的tagID:一級考點 /*付費限制 @author chenzsh */ if($this->isCharge){ $flag = WebScheduleService::factory()->payRestrict($uid,$scheID,$alias) ; if(!$flag) $this->redirect_msgBox(array('index'), array('msg' => $this->statusArr[53],'width'=>'500')); } $this->render( 'answer', array( 'scheduleID'=> $scheID, 'alias' => $alias, 'tagID' => $tagID, )); } ``` ## 獲取試題 http://xue.test/index.php?r=croom/passer/getExercise&_t=t&callback=jQuery1112012097318243600563_1547867156118&scheduleID=197&id=907442&alias=&examID=129832&_=1547867156122 'scheduleID'=> $args['scheduleID'] , 'uid' => $args['uid'] , 'sname' => $args['scheduleID'] ? StudyScheduleService::factory()->getScheTag($args['scheduleID'])->fdName : '' GET ``` // 獲取試題 r: croom/passer/getExercise scheduleID: 197 id: 1562535 alias: examID: 25866 ``` http://xue.test/index.php?r=croom/passer/getRecommend&type=26&eid=149478&subject=2&schoolType=3&len=3 GET ``` //獲取推薦內容 r: croom/passer/getRecommend type: 26 eid: 149478 subject: 2 schoolType: 3 len: 3 ``` http://xue.test/index.php?r=croom/passer/post&callback=jQuery111202673474636363342_1547861699091 POST ``` { "aeid": "1562534", "eid": "1075719", "type": "1", "duration": 298000, "videa": 0, "videaweike": 0, "vanalysis": 0, "vweike": 0, "submitExam": 0, "item": [{ "exerciseItemID": "1206238", "question": [{ "type": "1", "myAnswer": ["2702102"], "myScore": "5", "isRight": 1 }] }], "scheduleID": "199", "targetID": null } ``` ## 試題信息 結構看協議 ``` ExerJsonForWebService::factory()->getExerInfo($args['id'],$args['examID'],null, array( 'scheduleID'=> $args['scheduleID'] , 'uid' => $args['uid'] , 'sname' => $args['scheduleID'] ? StudyScheduleService::factory()->getScheTag($args['scheduleID'])->fdName : '' )) ; ``` D:\wamp\www\xue.test\xuetang\protected\service\ExerJsonForWebService.php ``` /** * 試題信息 結構看協議 * @param $id 題目ID * @param $examID 試卷ID(傳NUll,題目分數將獲取本身的分數,否則以題目在試卷所占分數為準) * @param null $aqid * <pre> * $arg e.g: * array( * 'examID' => 111,//試卷ID * ... * ) * </pre> * @param array $args * @return array * @author chenzsh 14-12-16 * @since 2016-1-14 add $args['examID'] by Zhangjsh */ public function getExerInfo($id,$examID ,$aqid = null,$args = array()) { $exercise = Exercise::model()->with('exerciseItems','exerciseAlias','diff')->findByPk($id); if(!$examID && $aqid){ $aq = wkeAnswerQuestion::model()->findByPk($aqid) ; $examID = $aq->answerExam->fdExamID ; } $data = array() ; $data['scheduleID'] = $args['scheduleID'] ; $data['targetID'] = $args['targetID'] ; $data['sname'] = $args['sname'] ; $data['myscore'] = $args['myscore'] ; $data['right'] = $args['right'] ? 1 : 0; $data['id'] = $id ; $data['aqid'] = $aqid ; $data['type'] = $exercise->fdExerciseTypeID; $data['subjective'] = $this->getExerTypeName($data['type']) ; $data['alias'] = $exercise->fdAlias ; $data['aliasname'] = $exercise->exerciseAlias->fdName ; $data['text'] = $exercise->fdText ; $data['score'] = $examID ? V2ExamService::factory()->getScore($exercise->id,$examID) : $exercise->fdScore ; //總分 $data['exerNo'] = $examID ? (ExamItemMap::model()->findByAttributes(array('fdExamID'=>$examID,'fdExerciseID'=>$exercise->id))->fdExerNo) : null ; //題號 $data['isFavorite'] = ContentService::factory()->isFavorite($exercise->fdContentID,$args['uid']) ? 1 : 0; $data['schoolType'] = ContentService::factory()->getIntegerValue($exercise->fdContentID,WK::SECTION_ATTR_ID) ; $data['subject'] = ContentService::factory()->getIntegerValue($exercise->fdContentID,WK::SUJT_ATTR_ID) ; $data['diff'] = $exercise->diff->fdValue ; $data['hasideaweike'] = $this->hasIdeaWeike($exercise->exerciseItems[0]) ; $data['tag'] = $this->getExerTag($exercise->fdContentID) ; $data['item'] = array() ; if ($exercise->exerciseItems) { foreach ($exercise->exerciseItems as $item) { //循環一道大題 if (in_array($exercise->fdExerciseTypeID, Yii::app()->params['OBJECTIVE_TYPE']) || in_array($item->fdType, Yii::app()->params['OBJECTIVE_TYPE'])) { $temp = $this->getChoose($item, $aqid, $exercise, $examID); $data['item'][] = $temp; } else if ($exercise->fdExerciseTypeID == WK::QUESTION_ID || $exercise->fdExerciseTypeID == WK::COMPLETION_ID || $item->fdType == WK::QUESTION_ID || $item->fdType == WK::COMPLETION_ID ) { $temp = $this->getQuestion($item, $aqid, $exercise, $examID); $data['item'][] = $temp; } } } return $data ; } ``` ## answer視圖 **D:\wamp\www\xue.test\xuetang\protected\modules\croom\views\passer\answer.php** ``` <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->baseUrl?>/public/school/css/thickbox.css"> <link href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" mce_href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" rel="bookmark" type="image/x-icon" /> <link href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" mce_href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" rel="icon" type="image/x-icon" /> <link href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" mce_href="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <script type="text/javascript" src="../../../../../public/school/js/showBox-2.js"></script> <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/public/simditor/simditor.index.js"></script> <script type="text/javascript" src="<?php echo Yii::app()->baseUrl?>/public/school/js/thickbox.js"></script> <!--網頁內容--> <div class="v2_loading_full"> <div class="v2_loading_tips">親,我們正在努力的加載練習信息,稍微等一下下啦。</div> </div> <div class="contain bc pb50"> <h2 id="etitle" class="cb_hz_title tc font-y"></h2> <div class="cb_hz_status font-y"> <div class="w mb30" id="stitle"></div> <div class="w clearfix" id="status"> </div> </div> <div class="w clearfix"> <div class="w780 fl"> <div class="cb_hz_warper on pr box-sizing"> <div id="info" class="header clearfix font-y none"> </div> <div id="main" class="body"> </div> </div> </div> <div class="w200 fr"> <!-- 幫助臺 --> <div id="help" class="ch_hz_help_box mb15"> </div> <!-- 幫助臺 end--> <!-- 關聯知識 --> <div id="attach" class="ch_hz_help_box" > </div> <!-- 關聯知識 end--> </div> <div class="v2_loading_part" style="position:static;border:1px solid #83ca61;"> <div class="v2_loading_tips2">親,我們正在努力的加載題目信息,稍微等一下下啦。</div> </div> </div> </div> <!--網頁內容 end--> <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/js/showBox-2.js"></script> <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/js/template.js"></script> <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/js/exam-2.js"></script> <!-- 答題狀態欄 --> <script type="text/html" id="exerStatus"> <div class="fl"> <div class="fl">答題卡:</div> <% for(var i = 1, len = situ.length; i <= len; i++) { %> <% if (situ[i-1].right == 0 ) { %> <% if (!flag) { %> <% flag = true; %> <div class="def now" title="當前題目"><%=i%></div> <% } else { %> <div class="def" title="未做"><%=i%></div> <% } %> <% } else if(situ[i-1].right == 1 || situ[i-1].right == 2) { %> <div class="def answer" title="回答正確,得分率100%"><%=i%><div class="right"></div></div> <% } else if(situ[i-1].right == 3 && situ[i-1].score > 0) { %> <div class="def answer" title="回答有誤,得分率0~100%之間(不含0%及100%)"><%=i%><div class="warn"></div></div> <% } else if(situ[i-1].right == 3 && situ[i-1].score == 0) { %> <div class="def answer" title="回答錯誤,得分率0%"><%=i%><div class="error"></div></div> <% } %> <% } %> </div> <div class="fr none"> <span class="fl">正確率:</span> <div class="line fr pr" title="本考點當前正確率:<%=rate ? rate : 0%>%"> <div class="line_left <%=(rate && rate * 1 > 0 ? '': 'none')%>" style="width:<%=rate ? rate : 0%>%;"> <div class="line_right"> <div class="line_center"><%=rate ? rate : 0%>%</div> </div> </div> </div> </div> </script> <!-- 答題狀態欄 end--> <!-- 試題info --> <script type="text/html" id="exerInfo"> <div class="f16 fb fl ml20 circle"><%=index%></div> <span class="gray2 fl ml10">(本題滿分<%=score%>分,難度<%=diff%>)</span> <div class="collect_group v2_exam_test_green fr"> <a id="collect" href="javaScript:" class="mr20 v2_old_exam_collect <%=(isFavorite ? 'v2_old_exam_collect_on' : '')%>" data-id="<%=id%>" data-type="<%=type%>"><%=(isFavorite ? '取消收藏' : '收藏')%></a> <a id="error" href="<?php echo $this->createUrl('passer/Feedback',array('width'=>422));?>&value=<%=id%>" class="mr20 v2_old_exam_error thickbox">糾錯</a> </div> </script> <!-- 試題info end--> <!-- 試題題目 --> <script type="text/html" id="exerMain"> <% var abc = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O'], answer = "", fill, flag = true; %> <div class="content1 word-warp"> <div id="exercise<%=index%>" data-id="<%=id%>" class="w"><%=#text%></div> <% if(type * 1 == 1 || type * 1 == 7) { %> <div class="w mt20 sitems sel_item" data-i="0" data-id="<%=item[0].exerciseItemID%>" data-type="<%=item[0].type%>"> <% for (var i = 0, opt = item[0].question[0].options, len = opt.length; i < len; i++) { %> <div class="cb_hz_sel clearfix" data-t="<%=abc[i]%>" data-id="<%=opt[i].id%>"> <span class="w30 fl"><%=abc[i]%>.</span> <div class="w640 ml5 fl"><%=#opt[i].text%></div> </div> <% } %> </div> <% } else if (type * 1 == 4) { %> <% for (var i = 0, item = item, len = item.length; i < len; i++) { %> <% if (item[i].type * 1 == 1 || item[i].type * 1 == 7) { %> <div class="w clearfix items sel_item mt20" data-i="<%=i%>" data-id="<%=item[i].exerciseItemID%>" data-type="<%=item[i].type%>"> <span class="w40 fl">(<%=(i+1)%>)</span> <div class="w680 fl"><%=#item[i].text%></div> <% for(var j = 0, question = item[i].question, len1 = question.length; j < len1; j++) { %> <div class="w fr word-break mt20"> <% for (var k = 0, opt = question[j].options, len2 = opt.length; k < len2; k++) { %> <div class="cb_hz_sel clearfix" data-t="<%=abc[k]%>" data-id="<%=opt[k].id%>"> <span class="w20 fl"><%=abc[k]%>.</span> <div class="w600 ml5 fl"><%=#opt[k].text%></div> </div> <% } %> </div> <% } %> </div> <% } else {%> <% if (flag) { flag = false; answer = item[i].question[0].myAnswer; fill = item[i].id;}%> <% var idList = "";%> <% for (var j = 0, question = item[i].question, len1 = question.length; j < len1; j++) { idList += question[j].id + (j == (len1 - 1) ? "" : "-"); }%> <div class="w clearfix items fill_item" data-i="<%=i%>" data-id="<%=item[i].exerciseItemID%>" data-type="<%=item[i].type%>" data-qids="<%=idList%>"> <span class="w40 fl">(<%=(i+1)%>)</span> <div class="w680 fl"><%=#item[i].text%></div> </div> <% } %> <% } %> <% } %> </div> <div id="myAnswer" class="mt20 maxImg"> <% if (type == 1 || type == 7) { %> <div class="w mt10 tc v2_exam_gray_btn big clearfix"> <a id="submit-object" class="w120 fr submit-btn" href="javaScript:">提交答案</a> </div> <% } else { %> <% if(type == 2 || type == 3) { answer = item[0].question[0].myAnswer; flag = false;}%> <% if (!flag) { %> <% var idList = "";%> <% for (var j = 0, question = item[0].question, len1 = question.length; j < len1; j++) { idList += question[j].id + (j == (len1 - 1) ? "" : "-"); }%> <div id="answer-box"> <textarea id="item-<%=id%>" class="editor mt10" data-id="<%=item[0].exerciseItemID%>" data-type="<%=item[0].type%>" data-info="<%=answer%>" data-qids="<%=idList%>"></textarea> </div> <% } %> <div class="w mt10 tc v2_exam_next_btn big clearfix"> <a id="submit-subject" class="w120 fr" href="javaScript:">提交答案</a> </div> <% } %> </div> </script> <!-- 試題題目 end--> <!-- 解題思路 --> <script type="text/html" id="exerIdea"> <% for(var i = (start ? start: 0), item = data.item, len = (end ? end: item.length); i < len; i++) { %> <div class="mt20 border_t_d gray2 exer_answer" data-i="<%=i%>"> <h3 class="f16 fb mt20 mb20"><%=item.length == 1 ? '【參考答案】' : "(" + (i + 1) + ")、參考答案"%></h3> <div class="w mb20 pb10"> <h4 class="cb_hz_item_title">解題思路</h4> <div class="w clearfix pr mt10"> <div class="fl w660 ml20"> <% if(item[i].idea) { %> <%=#item[i].idea%> <% } else { %> 暫無解題思路內容 <% } %> </div> <% if (item[i].ideaweike && item[i].ideaweike != 0) { %> <a href="javaScript:" class="pa watchidea" style="right:10px;top:0;" data-id="<%=item[i].ideaweike%>" data-index="<%=i%>"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_country_play_big.png" alt=""> </a> <% } %> </div> </div> </div> <% } %> </script> <!-- 解題思路 end--> <!-- 解題過程 --> <script type="text/html" id="exerAnalysis"> <div class="w mb20 border_t_d pb10"> <h4 class="cb_hz_item_title mt20">解題過程</h4> <div class="w clearfix pr mt10"> <div class="fl w660 ml20"> <% if(item.analysis) { %> <%=#item.analysis%> <% } else { %> 暫無解題過程內容 <% } %> </div> <% if (item.weike && item.weike != 0) { %> <a href="javaScript:" class="pa watchweike" style="right:10px;top:0;" data-id="<%=item.weike%>" data-index="<%=i%>"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_country_play_big.png" alt=""> </a> <% } %> </div> </div> <% if (item.type * 1== 2 || item.type * 1 == 3) { %> <div class="w mb20 border_t_d pb10"> <h4 class="cb_hz_item_title mt20">答案</h4> <div class="w clearfix pr mt10"> <div class="fl w660 ml20"> <% var answerText = ""; %> <% for (var i = 0, ques = item.question, len = ques.length; i < len; i++) { %> <% if(ques[i].text) { answerText += ques[i].text + '</br>';} %> <% } %> <% if(answerText.length > 0) { %> <%=#answerText%> <% } else { %> 暫無答案內容 <% } %> </div> </div> </div> <div class="w mb20 border_t_d pb10"> <% if (item.question[0].points && item.question[0].points.length > 0) { %> <h4 class="cb_hz_item_title mt20">采分點</h4> <div class="w700 ml20 mt20 exer-points"> <% for (var i = 0, point = item.question[0].points, len = point.length; i < len; i++) { %> <div class="point_item v2_exam_test_checkbox mt10 clr" data-score="<%=point[i].score || 0%>" data-id="<%=point[i].id%>"> <div class="fl"><%=#point[i].text%></div> <span class="fl orange">(<%=point[i].score || 0%>分)</span> </div> <% }%> </div> <% } %> <div class="w cleafix mt30 <%=(item.question[0].points && item.question[0].points.length > 0? 'border_t_d pt20' : '')%>"> <h4 class="cb_hz_item_title fl">自評得分:</h4> <input type="text" class="fl w50 h25 lh25 tc mr5 selfscore" data-max="<%=item.score || 0%>" maxlength="4" data-id="<%=item.exerciseItemID%>"> <span class="fl">分</span> <span class="fl orange">(滿分<%=item.score || 0%>分)</span> </div> </div> <% } %> </script> <!-- 解題過程 end--> <!-- 幫助臺 --> <script type="text/html" id="exerHelp"> <div class="mt20 ml20 font-y f16 fb">幫助臺</div> <% for (var i = 0, len = item.length; i < len; i++) { %> <% if (item[i].ideaweike && item[i].ideaweike != 0) { %> <div class="v2_exam_savebtn mt25 tc"> <a class="w120 idea-btn" data-index="<%=i%>" href="javaScript:"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_country_play_white.png" alt="" class="vm mr5"><%=len > 1 ? '('+(i+1)+')解題思路' : '查看解題思路'%> </a> </div> <% } %> <% } %> </script> <!-- 幫助臺 end--> <!-- 關聯知識 --> <script type="text/html" id="rcmList"> <% if (list.length > 0) { %> <div class="mt20 ml20 font-y f16 fb">關聯知識</div> <div class="w150 h100 mt20 ml20 pr"> <a href="<?php echo $this->createUrl('exam/videoTipTable1');?>&width=590&height=454&id=<%=list[0].id%>" class="thickbox"> <img id="rcm-img" src="<%=list[0].thumb%>" alt="推薦專題圖" width="150px" height="100px"> <div class="v2_exam_rcm_box"> <img class="vm ml5 mr5" src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_country_play_white.png" alt=""> <span class="inline-block w120 lh25 word-ellipsis vm" title="<%=list[0].name%>"><%=list[0].name%></span> </div> </a> </div> <% if (list.length > 1) { %> <div class="ml20 w160 mt15" id="rcm-list"> <% for (var i = 1, len = list.length; i < len; i++) {%> <div class="w h25"> <a class="thickbox" href="<?php echo $this->createUrl('exam/videoTipTable1');?>&width=590&height=454&id=<%=list[i].id%>"> <img class="vm ml5 mr5" src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_country_play_gray.png" alt=""> <span class="inline-block w130 lh25 word-ellipsis vm" title="<%=list[i].name%>"><%=list[i].name%></span> </a> </div> <% } %> </div> <% } %> <% } %> </script> <!-- 關聯知識 end--> <!-- 題型練習彈窗 --> <script type="text/html" id="tipBox"> <div class="v2_exam_guide_bg"></div> <div class="v2_pay_table_box" style="width:545px;position:fixed;left:50%;top:50%;margin-left:-269px;margin-top:-114px;z-index:10002;"> <div class="w pt8 tr"> <a href="javaScript:void(0)" class="close-btn mr8" title="點擊關閉當前彈窗,并跳轉至報告頁"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_pay_close.png"> </a> </div> <h2 class="ml15 font-y f18 fb" style="margin-top:-15px; width:480px;"><%=(result < 80 ? '好樣的,你已完成本組練習,再練一次會更好!' : '本組練習成績很棒,馬上開始下一知識點的學習吧!')%></h2> <div class="w496 bc clr mt20 pb20"> <div class="fl f12 mt5"> <div class="cb_index_table_circle ml5"> <P class="<%=result >= 80 ? 'green3' : 'orange'%> mt15 font-y"><span style="font-size:30px"><%=result%></span><span class="f20">%</span></P> <P class="f12 mt3">正確率</P> </div> </div> <div class="fr w358"> <div class="w f14 lh180" style="min-height:100px;"> <div class="w pb7 clr"> <span class="fl w290 word-ellipsis" title="<%=name || '未知'%>">練習內容:<%=name || '未知'%></span> </div> <% var typeAdd = { 1: ["<?php echo $this->createUrl('passer/perExer');?>&answerExamID=" + aeid, "<?php echo $this->createUrl('passer/CountryAnalysis');?>&answerExamID=" + aeid, "<?php echo $this->createUrl('passer/answer');?>&scheduleID=" + nextId, "<?php echo $this->createUrl('passer/answer');?>&scheduleID=" + id], 2: ["<?php echo $this->createUrl('passer/perExer');?>&answerExamID=" + aeid, "<?php echo $this->createUrl('passer/AliasAnalysis');?>&answerExamID=" + aeid, "<?php echo $this->createUrl('passer/answer');?>&alias=" + nextId, "<?php echo $this->createUrl('passer/answer');?>&alias=" + id] };%> <div class="w pb7 clr"> <span class="fl w280 word-ellipsis">答題概況:正確<span class="orange"><%=right || 0%></span>,有誤<span class="orange"><%=warn || 0%></span>,錯誤<span class="orange"><%=wrong || 0%></span></span> <span class="fr blue f13 mt2"><a href="<%=typeAdd[type][0]%>">習題解析&gt;&gt;</a></span> </div> <div class="w pb7 clr"> <span class="fl w280 word-ellipsis">練習結果: <% if (result >= 80) { %> <span class="green3">掌握良好</span> <% } else { %> <span class="orange">未掌握</span> <% } %> </span> <span class="fr blue f13 mt2"><a href="<%=typeAdd[type][1]%>">評估報告&gt;&gt;</a></span> </div> </div> <div class="w mt10 clearfix f14 font-y"> <span class="v2_exam_next_btn middle fr ml2"><a class="fr" style="width:104px;" href="<%=typeAdd[type][3]%>">再做一組練習</a></span> <span class="v2_exam_access_btn middle fr" <%=(type * 1 == 1 && nextId? '' : "style=display:none;")%>><a style="width:104px;" href="<%=typeAdd[type][2]%>">下一知識點練習</a></span> </div> </div> </div> </div> </script> <!-- 題型練習彈窗 end--> <!-- 考點強化彈窗 --> <script type="text/html" id="countryBox"> <div class="v2_exam_guide_bg"></div> <div class="v2_pay_table_box" style="width:545px;position:fixed;left:50%;top:50%;margin-left:-269px;margin-top:-114px;z-index:10002;"> <div class="w pt8 tr"> <a href="javaScript:void(0)" class="close-btn mr8" title="點擊關閉當前彈窗,并跳轉至報告頁"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_pay_close.png"> </a> </div> <div class="pa" style="top:-50px;left:-35px;"> <img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/chabu/mascot.png" width="166" height="237"> </div> <div class="w360 mt15" style="min-height:150px;margin-left:130px;"> <% if (type == 1) { %> <p class="font-y lh35 fb f16 t2">好樣的,<%=name%>,你已經完成了一個考點的強化練習,我們建議你創建一個系統的備考練習計劃,復習零死角,考試提分嗖嗖嗖...</p> <% } else { %> <p class="font-y lh35 fb f16 t2">hi,<%=name%>,依據你的學習計劃,當前有<span class="orange">2</span>個考點等待練習掌握,趕快去消滅它們,向學霸進發!</p> <% } %> <div class="w mt10 clearfix f14 font-y"> <span class="v2_exam_access_btn middle fl mr20"><a class="close-btn" style="width:104px;" href="javaScript:">我知道了</a></span> <span class="v2_exam_next_btn middle fl"><a class="fl" style="width:104px;" href="<%=(type == 1? "<?php echo $this->createUrl('/personal/user/CreatePlan');?>": "<?php echo $this->createUrl('/personal/user/plan');?>")%>"><%=(type == 1? '制定學習計劃': '查看學習計劃')%></a></span> </div> </div> </div> </script> <!-- 考點強化彈窗 end--> <script> var weikeInfo; var weikeType; $(function() { // CKEDITOR.disableAutoInline = true; var uid = "<?php echo Yii::app()->user->id;?>", answerExamID, scheduleID = '<?php echo $scheduleID;?>', examID, alias = '<?php echo $alias;?>', school = {}, time = 0, start_time, timer, save, index = 0, list = [], editor = null, userName = '<?php echo Yii::app()->user->id ? $this->getShowName(Yii::app()->user->id):"游客"; ?>', abc = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O'], examType = null; var preload = {}, waitList = {exer:[], rcm:[]}, view = {}; var allScore = 0, mineScore = 0; var btnG = { submit : '<div class="w v2_exam_gray_btn big clearfix mt10 tc"><a id="submit-again" class="w120 fr submit-btn" href="javaScript:">再次提交答案</a></div>', idea: '<div class="w v2_exam_next_btn big clearfix mt10 tc"><a id="watchidea" class="w120 idea-btn fr" href="javaScript:" data-index="0">查看解題思路</a><img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_exam_error_face.png" alt=" fr" class="vm mt10 mr10 fr"><div class="w fr mt5 tr orange">答案錯誤,請重新選擇!</div></div>', analysis: '<div class="w v2_exam_next_btn big clearfix mt10 tc"><a id="watchweike" class="w120 weike-btn fr" href="javaScript:" data-index="0">習題解題過程</a><img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_exam_error_face.png" alt="" class="vm mt10 mr10 fr"></div>', errorN: function() { return '<div class="w v2_exam_next_btn big clearfix mt10 tc"><a class="w120 next-btn fr" href="javaScript:">' + (index == list.length ? '完成練習': '下一道') + '</a><img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_exam_error_face.png" alt="" class="vm mt10 mr10 fr"></div>'; }, rightN: function() { return '<div class="w v2_exam_next_btn big clearfix mt10 tc"><a class="w120 next-btn fr" href="javaScript:">' + (index == list.length ? '完成練習': '下一道') + '</a><img src="<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_exam_right_face.png" alt="" class="vm mt10 mr10 fr"></div>'; }, rightS: function() { return '<div class="w v2_exam_next_btn big clearfix mt10 tc"><a class="w120 next-btn fr" href="javaScript:">' + (index == list.length ? '完成練習': '下一道') + '</a></div>'; } }; var stD; // 獲取題目狀態欄 (function getStatus() { $.ajax({ url:'<?php echo $this->createUrl("passer/test");?>', dataType:'jsonp', type:'get', data:{scheduleID: scheduleID, alias: alias, tagID: "<?php echo $tagID;?>"},//json為json數據 success:function(data) { stD = data; if (stD.status == 0) { var jsonD = stD['data']; answerExamID = jsonD.aeid; examID = jsonD.examID; time = jsonD.spend / 1000; var t = timeFormat(parseInt(jsonD.spend / 1000)); $("#time").text(t.time); $("#time").parent().attr('title', t.title); $("#print").attr("href", "<?php echo $this->createUrl('Exam/PrintExam');?>&id=" + jsonD.eid); $("#download").attr("href", "<?php echo $this->createUrl('exam/download');?>&examID=" + jsonD.eid + "&examName=" + jsonD.schoolType + " " + jsonD.subject + " " + jsonD.title); if (jsonD.type == 1) { $("#etitle").text("考點強化—" + jsonD.title + "(" +jsonD.schoolType + jsonD.subject + ")"); $("#stitle").text("強化點:" + jsonD.title + "—" + jsonD.lev3Title); } else { $("#etitle").text("題型練習—" + jsonD.title + "(" +jsonD.schoolType + jsonD.subject + ")"); $("#stitle").text("強化題型:" + jsonD.title); } examType = jsonD.type; setStatus(jsonD.situation, jsonD.rate.current); $('.v2_loading_full').hide(); school.schoolType = jsonD.schoolTypeID; school.subject = jsonD.subjectID; getExercise(list[index].eid); // getExercise(1415); // 1415 // 176115 } else { $('.v2_loading_full').hide(); if (data.status == 401) { $.showBox2({contents: data.msg, isAutoClose: true, second:3, callBack: function (){ var url = "<?php echo $this->createUrl('default/LoginBox');?>&width=330&height=419"; tb_show(null, url, false, null); }}); } else if (data.status == 36) { $.showBox2({contents: data.msg+"! 3秒后跳回升學復習主頁!", isAutoClose: true, second:3, callBack: function (){ window.location.href = "<?php echo $this->createUrl('default/upgradeReview');?>"; }}); } else { $.showBox2({contents: data.msg+"! 3秒后跳回升學復習主頁!", isAutoClose: true, second:3, callBack: function (){ window.location.href = "<?php echo $this->createUrl('default/upgradeReview');?>"; }}); } } } }); })(); // 設置題目狀態欄 function setStatus(situ, rate) { // 獲取當前題目index var flag = true; for (var i = 0, len = situ.length; i < len; i++) { if (situ[i].right == 0 && flag) { index = i; flag = false; } allScore += situ[i].exerscore ? parseFloat(situ[i].exerscore) : 0; mineScore = situ[i].score ? toFloat(mineScore + situ[i].score) : mineScore; } list = situ; $('#status').html(template.render('exerStatus', { situ: situ, rate: rate })); } // 獲取試題 function getExercise(eid) { clearInterval(timer); $('.v2_loading_part').show(); $('.v2_loading_part').siblings().hide(); $.ajax({ url:'<?php echo $this->createUrl("passer/getExercise");?>', dataType:'jsonp', type:'get', data:{scheduleID: scheduleID, id: eid, alias:alias, examID: examID},//json為json數據 success: successHandle }); getRCM(eid, school); } // 預加載下一道題目和推薦 function preGetExer(eid) { preload.exer = null; preload.rcm = null; $.ajax({ url:'<?php echo $this->createUrl("passer/getExercise");?>', dataType:'jsonp', type:'get', data:{scheduleID: scheduleID, id: eid, alias:alias, examID: examID},//json為json數據 success: function(data) { preload.exer = data; if (waitList.exer && waitList.exer.length > 0) { waitList.exer.pop()(data); } } }); $.ajax({ url:'<?php echo $this->createUrl("passer/getRecommend");?>', type:'get', data:{type: '<?php echo WK::WEIKE_TYPE_ID;?>', eid: eid, subject: school.subject, schoolType: school.schoolType, len: 3},//json為json數據 success: function(data) { preload.rcm = data; if (waitList.rcm && waitList.rcm.length > 0) { waitList.rcm.pop()(data); } } }); } // 獲取推薦列表 function getRCM(eid, jsonD) { $.ajax({ url:'<?php echo $this->createUrl("passer/getRecommend");?>', type:'get', data:{type: '<?php echo WK::WEIKE_TYPE_ID;?>', eid: eid, subject: jsonD.subject, schoolType: jsonD.schoolType, len: 3},//json為json數據 success: getRCMHandle }); } // 獲取試題回調 function successHandle(data){ view = {}; answer_state = 0; if (data.status == 0) { var jsonD = data.data; save = jsonD; jsonD.index = index + 1; $('#info').html(template.render('exerInfo', jsonD)).show(); $('#main').html(template.render('exerMain', jsonD)); $("#help").html(template.render('exerHelp', jsonD)); $("#help").find(".idea-btn").length > 0 ? $("#help").show() : $("#help").append('<div class="w160 mt10 ml20">當前題目不含有解題思路微課!</div>').show(); index++; if (index < list.length) { preGetExer(list[index].eid); } editor = null; if ($(".editor").length) { $('.editor').each(function() { var answers = $(this).attr("data-info"); var $self = $(this); var id = $self.attr("id"); SimditorReady.addEvent(function () { editor = new Simditor({ textarea: $self, placeholder: '建議您先在草稿紙上答題,然后點擊“提交答案”查看答案,進行自主評分', toolbarFloat: false, upload: { url: '<?php echo Yii::app()->request->hostInfo."/index.php?r=upload/UploadFile"?>',//粘貼圖片上傳路徑 params: {from: 'answerExercise'}//可選,上傳圖片請求附帶參數 }, _allowedTags: ['br', 'span', 'img', 'b', 'strong', 'i', 'strike', 'u', 'font', 'p', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'h1', 'h2', 'h3', 'h4', 'hr', 'table', 'tbody', 'thead', 'tfoot', 'th', 'tr', 'td', 'colgroup', 'col', 'sub', 'sup'], defaultImage: '<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/ckimg.png', imageButton: ['upload'], pasteImage: true,//啟用粘貼圖片 toolbar: ['image', 'mathquill'],//工具欄按鈕,'emoji'為表情,'mathquill'為公式編輯器 CKEDITOR_config: { toolbar: [ ['Image', 'jme'], ] } }); if (!isIE || safariVersion > DEFAULT_VERSION) { editor.uploader.on({ beforeupload: function() { $('#submit-subject').text("圖片上傳中..."); $('#submit-subject').parent().removeClass('v2_exam_next_btn').addClass('v2_exam_gray_btn'); }, uploadready: function() { $('#submit-subject').text("提交答案"); $('#submit-subject').parent().removeClass('v2_exam_gray_btn').addClass('v2_exam_next_btn'); } }); } answers.length > 0 && editor.setValue(answers); }); }); // CKEDITOR.inline($(".editor").attr("id")); } start_time = time; timeCount(); // 重置分數 scoreT = { subject: 0, object: 0 } $("body").scrollTop(0); } else { } $('.v2_loading_part').hide(); $('.v2_loading_part').siblings().show(); } // 獲取關聯知識回調 function getRCMHandle(data){ data = JSON.parse(data); if (data.status == 0) { var list = data.data; if (list.length > 0) { var html = template.render('rcmList', {list: list}); $('#attach').html(html); var $re = $('.v2_exam_rcm_box'); if (list[0].thumb) { $('#rcm-img').load(function() {}); $('#rcm-img').error(function() { $('#rcm-img').attr('src', '<?php echo Yii::app()->request->baseUrl; ?>/public/school/images/v2_pay_rcm.png'); }); } $('#attach').show(); } else { $('#attach').hide(); } } } // 計時 function timeCount() { var count = function() { time++; var t = timeFormat(time); $("#time").text(t.time); $("#time").parent().attr('title', t.title); } timer = setInterval(count, 1000); } // 時間轉化 function timeFormat(time) { var hour = parseInt(time / 3600); var minute = parseInt(time % 3600 / 60); var second = time % 60; var title = "已耗時:" + hour + "時" + minute + "分" + second + "秒"; if (hour < 10) {hour = "0" + hour;} if (minute < 10) {minute = "0" + minute;} if (second < 10) {second = "0" + second;} return { time:minute + "分" + second + "秒", title:title }; } // 判斷單選題目答案是否正確 function checkAnswer(itemID, optID, items) { for (var i = 0, len = items.length; i < len; i++) { if (items[i].exerciseItemID == itemID) { for (var j = 0, opt = items[i].question[0].options, len1 = opt.length; j < len1; j++) { if (opt[j].id == optID) { return parseInt(opt[j].right) ? items[i].score : 0; } } return 0; } } return 0; } // 保存答案 var answerSave; function saveAnswer(hasdone) { answerSave = new Answer({ aeid : answerExamID, eid : save.id, type : save.type, duration : (time - start_time) * 1000, videa : 0, videaweike : 0, vanalysis : 0, vweike : 0, submitExam : (index == list.length ? 1 : 0) }); if (save.scheduleID) { answerSave.scheduleID = save.scheduleID; answerSave.targetID = save.targetID; } else if (save.alias) { answerSave.alias = save.alias; } var s_type = parseInt(save.type); if (s_type == 1 || s_type == 7) { var $item = $('.sitems'); $item.each(function() { var itemID = $(this).attr('data-id'); var $sel = $(this).find('.cb_hz_sel.on'); var optID = $sel.attr("data-id"); var score = checkAnswer(itemID, optID, save.item); var need = { type : $(this).attr('data-type'), myAnswer : [optID], myScore : score, isRight : (score == 0 ? 0 : 1) }; answerInit(answerSave, itemID, need); }) } else if (s_type == 4) { var $item = $('.items'); var flag = true; $item.each(function() { var itemID = $(this).attr('data-id'); if ($(this).find('.cb_hz_sel').length > 0) { var $sel = $(this).find('.cb_hz_sel.on'); var optID = $sel.attr("data-id"); var score = checkAnswer(itemID, optID, save.item); var need = { type : $(this).attr('data-type'), myAnswer : hasdone ? [] : [optID], myScore : hasdone ? 0 : score, isRight : hasdone ? 0 : (score == 0 ? 0 : 1) }; answerInit(answerSave, itemID, need); } else { var $edit = $('.editor'); var id = $edit.attr("id"); $edit.find('.gray_tips').remove(); var str = editor.getValue(); var text = editor.getValue(); if (str.replace(/^((&nbsp;)|(<br\s*\/>)|\s)*$/g, '').length == 0) { text = ''; } var idList = $(this).attr("data-qids").split("-"); for (var di = 0, dlen = idList.length; di < dlen; di++) { var need = { type : $(this).attr('data-type'), id : idList[di], myAnswer : hasdone ? '' : (flag ? text : '') } flag = false; answerInit(answerSave, itemID, need); } } }) } else { var flag = true; var $edit = $('.editor'); $edit.find('.gray_tips').remove(); var id = $edit.attr('id'); var itemID = $edit.attr('data-id'); var str = editor.getValue(); var text = editor.getValue(); if (str.replace(/^((&nbsp;)|(<br\s*\/>)|\s)*$/g, '').length == 0) { text = ''; } var idList = $edit.attr("data-qids").split("-"); for (var di = 0, dlen = idList.length; di < dlen; di++) { var need = { type : $edit.attr('data-type'), id : idList[di], myAnswer : hasdone ? '' : (flag ? text : '') } flag = false; answerInit(answerSave, itemID, need); } } } // aexidObj用于保存返回的用于自評分的aexid var aexidObj; var aexidWait = []; function postAnswer() { aexidObj = null; $.ajax({ url:'<?php echo $this->createUrl("passer/post");?>', dataType:'jsonp', type:'post', data:{data:JSON.stringify(answerSave)},//json為json數據 success:function(data){ if (data.status == 0) { aexidObj = data.data; if (aexidWait.length > 0) { aexidWait.pop()(); } } } }) } // 檢測用戶,如果有用戶已登錄,那么可以提交答案 function checkAndSave(hasdone) { saveAnswer(hasdone); if (checkUser()) { postAnswer(); return true; } else { return false; } } // 檢測用戶 function checkUser(){ var flag = ''; $.ajax({ type:'post', async:false, url :"<?php echo $this->createUrl('user/CheckUserID');?>", success:function(data){ flag = data; } }) var isLogExp = /^\S+$/; if (isLogExp.test(flag)) { return true; } else { clearInterval(timer); var url = "<?php echo $this->createUrl('default/LoginBox');?>&width=330&height=419"; tb_show(null, url, false, null); return false; } } // 設置正確答案 function setRightAnswer() { var $items = $('.sel_item'); $items.each(function() { var itemId = $(this).attr('data-id'); var $sel = $(this).find('.cb_hz_sel'); $sel.each(function() { if (checkAnswer(itemId, $(this).attr('data-id'), save.item) != 0) { $(this).addClass('right'); } }); }) } // 設置解題思路 function setIdeas(start, end) { $("#main").append(template.render('exerIdea', { data: save, start: start, end: end })); // 綜合題有多個小題是,幫助臺解題思路不按順序的時候排序 var $els = $(".exer_answer"); $els.sort(function(a,b) { return parseInt($(a).attr('data-i')) > parseInt($(b).attr('data-i')); }); $(".exer_answer").remove(); $("#main").append($els); } // 設置解題過程 function setAnalysis() { $(".exer_answer").each(function(i) { $(this).append(template.render('exerAnalysis', { item: save.item[i], i: i })) }) } // 測試自評分是否符合要求 function testScore(score, max) { var reg = /(^[1-9]\d*([.][0-9])?$)|(^0([.][0-9])?$)/; return reg.test(score) && toFloat(score) <= toFloat(max); } // 累加分數 function addScore() { var all = 0; $(".selfscore").each(function() { var result = testScore($(this).val(), $(this).attr('data-max')); if (result) { all += parseFloat($(this).val()); } else { all += 0; } }) scoreT.subject = all; } // 解決0.1+0.2產生的問題,保留最多一位小數 function toFloat(num) { return parseInt(num * 10) / 10; } // 設置采分點分數 var scoreFlag = false; //用于表示自評分改變的方式,true表示通過點擊采分點改變,false則是輸入改變 function setScore($el) { var score = 0; var $select = $el.parent().children('.v2_exam_test_checkbox_select'); var $input = $el.parent().next().find('input'); $select.each(function() { score += parseFloat($(this).attr('data-score') || 0); }); scoreFlag = true; $input.val(toFloat(score)); $input.blur(); scoreFlag = false; } // 提交自評分 function scorePost() { if (!aexidObj) { aexidWait.push(scorePost); } var data = { uid: uid, appraise: [], app: 'web.xuetang' }; if (save.scheduleID) { data.scheduleID = save.scheduleID; data.targetID = save.targetID; } else if (save.alias) { data.alias = save.alias; } $('.selfscore').each(function() { var scoreObj = { points: [], myscore: $(this).val(), aexid: aexidObj[$(this).attr('data-id')] } var $points = $(this).parent().prev('.exer-points'); if ($points.length > 0) { var $sel = $points.find('.v2_exam_test_checkbox_select'); $sel.each(function() { scoreObj.points.push({ id: $(this).attr('data-id'), score: $(this).attr('data-score') }); }); } data.appraise.push(scoreObj); }); $.ajax({ url: '<?php echo $this->createUrl("passer/selfAppraises");?>', type: 'post', data: {data:JSON.stringify(data)}, success: function(data) { } }); } // 獲得題目狀態 function statusChange() { return toFloat(scoreT.subject + scoreT.object) >= parseFloat(save.score) * 1 ? 2 : (toFloat(scoreT.subject + scoreT.object) > 0 ? 1 : 0); } // 設置正確率欄 function setStatusLine() { var $answer = $(".cb_hz_status .answer"); var $right = $(".cb_hz_status .answer .right"); var rate = $answer.length > 0 ? parseInt($right.length / $answer.length * 100): 0; var $line = $(".cb_hz_status .line"); if (rate > 0) { $line.attr("title", "本考點當前正確率:" + rate + "%"); $line.children(".line_left").css("width", rate + "%").show(); $line.find(".line_center").text(rate + "%"); } else { $line.attr("title", "本考點當前正確率:0%"); $line.children(".line_left").hide(); } } // 完成試卷彈框 function finalTips() { $('.v2_exam_guide_bg').remove(); $('.v2_pay_table_box').remove(); var rlen = $(".cb_hz_status .answer .right").length; var tD = stD.data; if (examType == 2) { $('body').append($(template.render('tipBox', { name: tD.type * 1 == 1 ? tD.title + "—" + tD.lev3Title : tD.title, result: list.length > 0 ? toFloat(100 * rlen / list.length) : 0, type: tD.type, aeid: tD.aeid, right: rlen, wrong: $(".cb_hz_status .answer .error").length, warn: $(".cb_hz_status .answer .warn").length, nextId: tD.type * 1 == 1 ? tD.nextScheID : alias, id: tD.type * 1 == 1 ? tD.scheduleID : alias }))); } else { $.ajax({ url: "<?php echo $this->createUrl('//personal/user/GetTagSituation')?>", type: 'GET', dataType: 'text', data: {}, success: function(data) { if (data == "meet" || data == "create") { $("body").append(template.render('countryBox', { type: data == "create" ? 1 : 2, name: userName })); } else { $.showBox2("正在為您跳轉到報告頁面!"); setTimeout(function() { window.location.href = "<?php echo $this->createUrl('passer/CountryAnalysis');?>&answerExamID=" + tD.aeid; }, 500); } } }) } $('.close-btn').live('click', function() { $('.v2_exam_guide_bg').remove(); $('.v2_pay_table_box').remove(); $.showBox2("正在為您跳轉到報告頁面!"); setTimeout(function() { if (tD.type * 1 == 1) { window.location.href = "<?php echo $this->createUrl('passer/CountryAnalysis');?>&answerExamID=" + tD.aeid; } else { window.location.href = "<?php echo $this->createUrl('passer/AliasAnalysis');?>&answerExamID=" + tD.aeid; } }, 500); }); } // 單選題選項選中 var answer_state = 0; $(".cb_hz_sel").live('click', function() { if ($(this).parent().hasClass('prevent')) { return false;} if ($(this).hasClass("on")) { $(this).removeClass("on right wrong"); if ($(this).parent().hasClass('sitems') && answer_state == 0) { $(".submit-btn").parent().removeClass('v2_exam_next_btn').addClass('v2_exam_gray_btn'); } else if (answer_state == 1) { $("#watchidea").parent().length > 0 && $("#watchidea").parent().replaceWith(btnG.submit) && setIdeas(); $("#submit-again").parent().removeClass('v2_exam_next_btn').addClass('v2_exam_gray_btn'); $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } } else { $(this).addClass("on").siblings().removeClass("on right wrong"); if ($(this).parent().hasClass('sitems') && answer_state == 0) { $(".submit-btn").parent().addClass('v2_exam_next_btn').removeClass('v2_exam_gray_btn'); } else if (answer_state == 1) { $("#watchidea").parent().length > 0 && $("#watchidea").parent().replaceWith(btnG.submit) && setIdeas(); $("#submit-again").parent().addClass('v2_exam_next_btn').removeClass('v2_exam_gray_btn') $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } } }) // 采分點 $('.point_item').live('click', function(){ if ($(this).parents('.exer-points').hasClass('prevent')) {return false;} if ($(this).hasClass('v2_exam_test_checkbox_select')) { $(this).removeClass('v2_exam_test_checkbox_select'); } else { $(this).addClass('v2_exam_test_checkbox_select'); } setScore($(this)); }) // 答案輸入框響應事件 // var $sp = $('<span class="gray gray_tips">建議您先在草稿紙上答題,然后點擊“提交答案”查看答案,進行自主評分</span>'); // $(".editor").live({ // focus: function() { // $(this).find('.gray_tips').remove(); // }, // blur: function() { // var str = CKEDITOR.instances[$(this).attr('id')].getData(); // if (str.replace(/^((&nbsp;)|(<br\s*\/>)|\s)*$/g, '').length == 0) { // $(this).html(''); // $(this).append($sp); // } // } // }); // 暫停事件 $("#pause").live('click', function() { clearInterval(timer); $.showBox2({contents: '不要暫停離開太久,要保持做題的節奏喔。', greets: 'Hi,親愛的'+userName+':', hasConfirmButton: true, confirmValue: '繼續答題', isAutoClose: false, confirmFunction: timeCount, closeFunction: timeCount}); }); // 收藏試題 $('#collect').live('click', function() { if ($(this).attr('prevent')) { return false; } $(this).attr('prevent', true); var self = $(this); var exerciseID = $(this).attr('data-id'); var eType = $(this).attr('data-type'); if(self.text() == "收藏") { $.ajax({ type: 'post', url: "<?php echo $this->createUrl('Exercise/AddFavorite');?>", data: {exerciseID: exerciseID, eType: eType}, success: function(data) { self.removeAttr('prevent'); if (data == "success") { self.text("取消收藏"); self.addClass('v2_old_exam_collect_on'); } else { $.showBox2("收藏失敗"); } } }); } else { $.ajax({ type: 'post', url: "<?php echo $this->createUrl('Exercise/RemoveFavorite');?>", data: {exerciseID:exerciseID}, success: function(data) { self.removeAttr('prevent'); if (data == "success") { self.text("收藏"); self.removeClass('v2_old_exam_collect_on'); } else { $.showBox2("取消收藏失敗"); } } }) } }); // 客觀題提交按鈕 $("#submit-object").live('click', function() { if ($(this).parent().hasClass('v2_exam_gray_btn')) {return false;} var $sel = $('.cb_hz_sel.on'); var result = checkAnswer($sel.parent().attr('data-id'), $sel.attr('data-id'), save.item); if (result == 0) { // 答案錯誤,如果是判斷題則直接顯示下一題按鈕及解題思路和過程內容 if (save.type == 7) { scoreT.object = toFloat(result); if (checkAndSave()) { $sel.addClass('wrong'); $sel.parent().addClass('prevent'); var $main = $(this).parents("#main"); $(this).parents("#myAnswer").remove(); setIdeas(); setAnalysis(); $main.append(btnG.rightS()); // 防止點擊查看解題思路按鈕后再次添加解題思路信息 $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } else { return false; } } else { // 答案錯誤,如果有解題思路,則顯示解題思路按鈕 if(save.item[0].idea && save.item[0].ideaweike && save.item[0].ideaweike != "0") { $sel.addClass('wrong'); $(this).parent().replaceWith(btnG.idea); answer_state = 1; } else { // 如果沒有則顯示再次提交按鈕 $(".cb_hz_sel").removeClass("on right wrong"); $(this).parent().replaceWith(btnG.submit); $("#submit-again").text("再次選擇答案"); $("#submit-again").parent().removeClass('v2_exam_next_btn').addClass('v2_exam_gray_btn'); setIdeas(); // 防止點擊查看解題思路按鈕后再次添加解題思路信息 $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } } } else { // 如果答案正確則顯示下一題按鈕且顯示解題思路解題過程 scoreT.object = toFloat(result); if (checkAndSave()) { $sel.addClass('right'); $sel.parent().addClass('prevent'); var $main = $(this).parents("#main"); $(this).parents("#myAnswer").remove(); setIdeas(); setAnalysis(); $main.append(btnG.rightS()); // 防止點擊查看解題思路按鈕后再次添加解題思路信息 $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } else { return false; } } }); // 查看解題思路按鈕 $(".idea-btn").live('click', function() { var $help = $('#help'); if ($(this).parents("#help").length > 0) { $(this).removeClass('idea-btn').addClass('watchidea'); } else { $help.find('.idea-btn').removeClass('idea-btn').addClass('watchidea'); } weikeInfo = save.item[$(this).attr('data-index')].idea; weikeType = 1; tb_show(null, '<?php echo $this->createUrl("exam/VideoTipTable2"); ?>&width=810&height=488&id=' + save.item[$(this).attr('data-index')].ideaweike, false, null); view.idea = 1; if (save.type == 1 || save.type == 7) { answer_state = 1; $(".cb_hz_sel").removeClass("on right wrong"); $("#watchidea").length > 0 ? $("#watchidea").parent().replaceWith(btnG.submit) : $("#submit-object").parent().replaceWith(btnG.submit); $("#submit-again").parent().removeClass('v2_exam_next_btn').addClass('v2_exam_gray_btn'); setIdeas(); } else { var i = parseInt($(this).attr("data-index")); !isNaN(i) && setIdeas(i, i + 1); } }) // 客觀題再次提交按鈕 $("#submit-again").live('click', function() { if ($(this).parent().hasClass('v2_exam_gray_btn')) { return false; } var $sel = $('.cb_hz_sel.on'); var result = checkAnswer($sel.parent().attr('data-id'), $sel.attr('data-id'), save.item); $sel.parent().addClass('prevent'); if (result == 0) { $sel.addClass('wrong'); // 答案錯誤,如果有解題過程,則顯示解題過程按鈕 if(save.item[0].analysis && save.item[0].weike && save.item[0].weike != "0") { $(this).parent().replaceWith(btnG.analysis); } else { // 如果沒有則顯示錯誤的下一題 scoreT.object = 0; if (checkAndSave()) { $(this).parents("#main").append(btnG.rightS()); $(this).parents("#myAnswer").remove(); setRightAnswer() setAnalysis(); } else { return false; } } } else { // 如果答案正確則顯示下一題按鈕且顯示解題思路解題過程 scoreT.object = toFloat(result); if (checkAndSave()) { $sel.addClass('right'); $(this).parents("#main").append(btnG.rightS()); $(this).parents("#myAnswer").remove(); setAnalysis(); } else { return false; } } }); // 查看解題過程按鈕 $(".weike-btn").live('click', function() { weikeInfo = save.item[$(this).attr('data-index')].analysis; weikeType = 2; tb_show(null, '<?php echo $this->createUrl("exam/VideoTipTable2"); ?>&width=810&height=488&id=' + save.item[$(this).attr('data-index')].weike, false, null); view.weike = 1; if (save.type == 1 || save.type == 7) { scoreT.object = 0; if (checkAndSave()) { $("#watchweike").parents("#main").append(btnG.rightS()); $("#watchweike").parents("#myAnswer").remove(); setRightAnswer() setAnalysis(); } else { return false; } } }); // 解題思路播放按鈕 $(".watchidea").live('click', function() { weikeInfo = save.item[$(this).attr('data-index')].idea; weikeType = 1; tb_show(null, '<?php echo $this->createUrl("exam/VideoTipTable2"); ?>&width=810&height=488&id=' + save.item[$(this).attr('data-index')].ideaweike, false, null); }); // 解題過程播放按鈕 $(".watchweike").live('click', function() { weikeInfo = save.item[$(this).attr('data-index')].analysis; weikeType = 2; tb_show(null, '<?php echo $this->createUrl("exam/VideoTipTable2"); ?>&width=810&height=488&id=' + save.item[$(this).attr('data-index')].weike, false, null); }); // 記錄分數 var scoreT = { subject: 0, object: 0 } // 主觀題 $("#submit-subject").live('click', function() { var $self = $(this); if (checkAndSave()) { setRightAnswer(); // 移除現有的參考答案,后面重新渲染 $(".exer_answer").remove(); var $sel = $('.cb_hz_sel.on'); // 如果有選擇題,則計算選擇題的累積分值以及設置相應的對錯 $sel.each(function() { var $p = $(this).parents('.sel_item'); var result = checkAnswer($p.attr('data-id'), $(this).attr('data-id'), save.item); scoreT.object += parseFloat(result); result ? $(this).addClass('right'): $(this).addClass('wrong'); }); $('.cb_hz_sel').parent().addClass('prevent'); if (editor) { $("#answer-box").html('<div class="answer_box mt10">' + editor.getValue() + '</div>'); editor = null; } setIdeas(); setAnalysis(); $self.parents("#main").append(btnG.rightS()); $self.parent().remove(); // 防止點擊查看解題思路按鈕后再次添加解題思路信息 $(".idea-btn").removeClass('idea-btn').addClass('watchidea'); } else { return false; } }); // 下一題按鈕 $(".next-btn").live('click', function() { // 獲取當前自評分輸入框,并檢測是否都已輸入完畢并正確 var $sinput = $(".selfscore"); var len = $sinput.length; if (len > 0) { var tlen = 0; var $first; $sinput.each(function() { var result = testScore($(this).val(), $(this).attr('data-max')); tlen += (result ? 1 : 0); if (!$first && !result) { $first = $(this); } }) if (len > tlen) { $.showBox2({contents: '完成當前習題評分后可進入下一題!', greets: 'Hi,親愛的'+userName+':', hasConfirmButton: true, confirmValue: '自動關閉', isAutoClose: true, second:2, timecount: true}); $first.focus(); return false; } } // 如果含有自評分輸入框,則保存自評分 if ($('.selfscore').length > 0) { scorePost(); } var $now = $('.cb_hz_status .now'); var $div = $(statusChange() == 2 ? '<div class="right"></div>' : statusChange() == 1 ? '<div class="warn"></div>': '<div class="error"></div>'); $now.removeClass('now').addClass('answer').attr("title", statusChange() == 2 ? "回答正確,得分率100%": statusChange() == 1 ? "回答有誤,得分率0~100%之間(不含0%及100%)" : "回答錯誤,得分率0").append($div); mineScore += toFloat(scoreT.subject + scoreT.object); // 如果當前題目不為最后一題 if (index < list.length) { var $next = $now.next(); $next.addClass('now').attr("title", "當前題目"); $('#info').html(''); $('#main').html(''); $('.v2_loading_part').show(); $('.v2_loading_part').siblings().hide(); clearInterval(timer); if (preload.exer) { successHandle(preload.exer); } else { waitList.exer.push(successHandle); } if (preload.rcm) { getRCMHandle(preload.rcm); } else { waitList.rcm.push(getRCMHandle); } } else { // 如果為最后一題則彈窗 finalTips(); $(".exer-points").addClass('prevent'); $('.selfscore').length > 0 && $('.selfscore').each(function() { var val = $(this).val(); $(this).replaceWith('<span class="orange fl">' + val + '</span>'); }) } setStatusLine(); }); // 自評分 $(".selfscore").live('blur', function() { var result = testScore($(this).val(), $(this).attr('data-max')); if (result) { $(this).parent().children('.orange.tip').remove(); } else { $(this).parent().children('.orange.tip').remove(); $(this).parent().append('<span class="fl ml20 orange tip">輸入需為整數或最多一位小數(且不能超過該小題最大分值),請重新輸入!</span>'); } //如果不是通過設置采分點來設置分數的,采分點全部取消選擇 !scoreFlag && $(this).parent().prev('.exer-points').children('.v2_exam_test_checkbox').removeClass('v2_exam_test_checkbox_select'); // 累加分數 addScore(); }); }) </script> <!--網頁內容 end--> ``` wkwke.tbAnswerExam.fdUserID ~ wkwke.tbAnswerExam.id ## 表 wkwke.tbAnswerExam ``` CREATE TABLE `tbAnswerExam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fdName` varchar(255) DEFAULT NULL COMMENT '報告名稱', `fdUserID` int(11) NOT NULL COMMENT '對應tbUser.id', `fdExamID` int(11) NOT NULL COMMENT '試卷ID', `fdCreate` datetime NOT NULL COMMENT '創建時間', `fdStart` datetime DEFAULT NULL COMMENT '開始做試卷的時間', `fdEnd` datetime DEFAULT NULL COMMENT '介紹做試卷的時間', `fdUsed` int(11) NOT NULL DEFAULT '0' COMMENT '試卷已經使用的時間(單位是秒)', `fdScore` double DEFAULT NULL COMMENT '試卷總得分', `fdScoreRate` float DEFAULT '0' COMMENT '得分率 0-100', `fdRate` float DEFAULT '0' COMMENT '答題正確率,0最低,100最好', `fdStatus` tinyint(4) NOT NULL DEFAULT '0' COMMENT '狀態 0:未交卷,1:交卷,2:刪除記錄', `fdType` int(11) DEFAULT '0' COMMENT '試卷類型,當前答題所在位置:0:作業,1:上課', `fdAppID` int(11) DEFAULT '0' COMMENT '應用ID', `fdMethod` tinyint(4) DEFAULT '0' COMMENT '答卷方式0:普通練習 1:閱卷任務', `fdSelf` tinyint(4) DEFAULT '0' COMMENT '是否完成自評 0未完成 1完成', `fdIsSyncMongo` tinyint(4) DEFAULT '0' COMMENT '是否同步到mongo', `fdSyncTime` int(11) DEFAULT '0' COMMENT '同步時間', PRIMARY KEY (`id`), KEY `FK_Reference_41` (`fdExamID`), KEY `fdUserID` (`fdUserID`), KEY `answerexam_syncmongo` (`fdIsSyncMongo`), KEY `ae_synctime` (`fdSyncTime`), KEY `ae_status` (`fdStatus`), KEY `sync-status` (`fdStatus`,`fdSyncTime`), KEY `fdEnd` (`fdEnd`), KEY `appid_syncmongo` (`fdAppID`,`fdIsSyncMongo`) ) ENGINE=MyISAM AUTO_INCREMENT=1562542 DEFAULT CHARSET=utf8 COMMENT='回答試卷'; ``` ## 表 wkwke.tbPasserUserSchedule ``` CREATE TABLE `tbPasserUserSchedule` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fdUserID` int(11) NOT NULL COMMENT '用戶ID', `fdTagID` int(11) NOT NULL COMMENT '三級考點ID', `fdScheduleID` int(11) NOT NULL COMMENT '對應到tbPasserSchedule.id', `fdAeid` int(11) NOT NULL COMMENT '通關答卷ID', `fdScheduleType` tinyint(4) DEFAULT '0' COMMENT '學習類型,0:自由學習 1:任務系統', `fdIsFirstPass` tinyint(4) DEFAULT '0' COMMENT '是否為第一次通關', `fdCreate` datetime NOT NULL, `fdUpdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `passusersche_uid` (`fdUserID`) ) ENGINE=MyISAM AUTO_INCREMENT=22798 DEFAULT CHARSET=utf8 COMMENT='用戶考點通關進度表'; ``` ## 回答試題表 wkwke.tbAnswerQuestion ``` CREATE TABLE `tbAnswerQuestion` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fdAnswerExamID` int(11) NOT NULL COMMENT '對應答卷ID,對應到tbAnswerExam.id', `fdExerciseID` int(11) NOT NULL COMMENT '題目ID,對應到tbExercise.id', `fdScore` float DEFAULT '0' COMMENT '當前題目得分,如果題目有多道小題,應為多道小題題目得分之和', `fdSelf` float DEFAULT NULL COMMENT '學生自評分', `fdTscore` double DEFAULT NULL COMMENT '教師評分', `fdCreate` datetime NOT NULL, `fdUpdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `fdStatus` tinyint(4) DEFAULT '0' COMMENT '作答狀態 0:有做答,1:用戶沒作答', `fdRight` tinyint(4) DEFAULT '0' COMMENT '題目是否正確,0表示錯誤,1表示正確', `fdCount` int(11) DEFAULT '0', `fdErrSync` tinyint(4) DEFAULT '0' COMMENT '是否已經同步了正誤狀態', PRIMARY KEY (`id`), KEY `fdAnswerExamID` (`fdAnswerExamID`), KEY `fdExerciseID` (`fdExerciseID`), KEY `answerquestion_errsync` (`fdErrSync`) ) ENGINE=MyISAM AUTO_INCREMENT=36011035 DEFAULT CHARSET=utf8 COMMENT='回答試題'; ``` ## 回答試卷中的題目 wkwke.tbAnswerExercise ``` CREATE TABLE `tbAnswerExercise` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fdAnswerExamID` int(11) NOT NULL, `fdAnswerQuestionID` int(11) DEFAULT '0' COMMENT '答題ID 對應到tbAnswerQuestion.id', `fdExerciseID` int(11) DEFAULT '0' COMMENT '題目ID', `fdExerciseItemID` int(11) NOT NULL, `fdRight` varchar(255) DEFAULT NULL COMMENT '客觀題選項', `fdSelf` double DEFAULT NULL COMMENT '自評總得分', `fdTscore` double DEFAULT NULL COMMENT '教師評分', `fdScore` double NOT NULL DEFAULT '0' COMMENT '本題最終得分', `fdOrder` int(11) DEFAULT NULL, `fdVanalysis` tinyint(4) DEFAULT '0' COMMENT '是否察看答案解析', `fdVweike` tinyint(4) DEFAULT '0' COMMENT '是否查看了解析微課', `fdVidea` tinyint(4) DEFAULT '0' COMMENT '是否查看解析思路', `fdVideaweike` tinyint(4) DEFAULT '0' COMMENT '是否查看解題思路微課', `fdMark` tinyint(4) DEFAULT '0' COMMENT '教師標記標識', `fdTeacherID` int(11) DEFAULT '0' COMMENT '評分教師ID', `fdExaminationRecordID` int(11) DEFAULT '0' COMMENT '考試記錄ID', `fdLockTime` int(11) DEFAULT '0' COMMENT '鎖定時間', `fdScoreRate` float DEFAULT '0' COMMENT '當前小題得分率', `fdFlag` tinyint(4) DEFAULT '0' COMMENT '跑腳本標識', PRIMARY KEY (`id`), KEY `FK_Reference_40` (`fdExerciseItemID`), KEY `FK_Reference_42` (`fdAnswerExamID`), KEY `fdAnswerQuestionID` (`fdAnswerQuestionID`), KEY `examinationrecordid` (`fdExaminationRecordID`), KEY `answerexercise_exid` (`fdExerciseID`), KEY `fdFlag` (`fdFlag`) ) ENGINE=MyISAM AUTO_INCREMENT=38392684 DEFAULT CHARSET=utf8 COMMENT='回答試卷中的題目'; SELECT COUNT(fdScore) FROM wkwke.tbAnswerExercise WHERE fdAnswerExamID=:id ``` ## 練習題 ``` CREATE TABLE `tbExercise` ( `id` int(11) NOT NULL AUTO_INCREMENT, `fdContentID` int(11) NOT NULL COMMENT '微課標識,對應content.tbContent.id', `fdUserID` int(11) DEFAULT NULL COMMENT '題目上傳者', `fdExerciseTypeID` int(11) NOT NULL COMMENT '題目類型,對應tbExerciseType.id\n ', `fdScore` double DEFAULT NULL, `fdText` text COMMENT '題干', `fdAnswer` text COMMENT '題目解析', `fdCreate` datetime NOT NULL COMMENT '記錄創建時間', `fdApproverID` int(11) NOT NULL COMMENT '審核人標識,對應tbOperator.id', `fdApprove` datetime DEFAULT NULL COMMENT '審核時間', `fdStatus` int(11) DEFAULT NULL COMMENT '審核狀態,0-懸而未決,1-審核通過,2-審核不通過', `fdAlias` mediumint(9) DEFAULT NULL, `fdDraft` mediumint(9) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_Reference_35` (`fdExerciseTypeID`), KEY `fdContentID` (`fdContentID`), KEY `nxExercise_Alias` (`fdAlias`), KEY `nxExercise_Draft` (`fdDraft`), KEY `nxExercise_Status` (`fdStatus`), KEY `exercise-userid` (`fdUserID`) ) ENGINE=MyISAM AUTO_INCREMENT=1443817 DEFAULT CHARSET=utf8 COMMENT='練習題'; ``` ## 試卷 wkwke.tbExam ``` CREATE TABLE `tbExam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `idString` varchar(64) DEFAULT NULL, `fdContentID` int(11) NOT NULL COMMENT '試卷標識,對應content.tbContent.id', `fdUserID` int(11) DEFAULT NULL COMMENT '用戶ID', `fdExamTypeID` int(11) NOT NULL COMMENT '試卷類型,對應tbExamType.id\n ', `fdTotal` double NOT NULL COMMENT '試卷總分', `fdGrade` double NOT NULL COMMENT '及格分數線', `fdSpend` int(11) DEFAULT NULL COMMENT '試卷最大多少分鐘完成', `fdCreate` datetime NOT NULL COMMENT '記錄創建時間', `fdApproverID` int(11) NOT NULL COMMENT '審核人標識,對應tbOperator.id', `fdApprove` datetime DEFAULT NULL COMMENT '審核時間', `fdStatus` int(11) DEFAULT NULL COMMENT '審核狀態,0-懸而未決,1-審核通過,2-審核不通過', `fdAlias` int(11) DEFAULT NULL COMMENT '題目題型、僅在題型練習試卷用于記錄題型,其他為空', `fdDraft` mediumint(9) NOT NULL COMMENT '0:臨時組卷;1:草稿;2:發布試卷;3:學堂考點強化;4學堂題型練習;5:學堂錯題復習', `fdIsfix` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否已經修復過分數', PRIMARY KEY (`id`), KEY `FK_Reference_32` (`fdExamTypeID`), KEY `fdContentID` (`fdContentID`), KEY `exam-userid` (`fdUserID`), KEY `fdIsfix` (`fdIsfix`) ) ENGINE=MyISAM AUTO_INCREMENT=129835 DEFAULT CHARSET=utf8 COMMENT='試卷'; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看