Forráskód Böngészése

20250208 优化调整

贾小兵 2 hónapja
szülő
commit
bcc47c7eb7

+ 142 - 96
application/admin/controller/student/Exercise.php

@@ -90,7 +90,7 @@ class Exercise extends Backend
                 //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
                 $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
                 foreach ($fault_list as $key=> $item1){
-                    $fault_key = array_rand($fault_list, 3);
+                    $fault_key = [1,5,7];//array_rand($fault_list, 3);
                     $flag = 0;
                     if(!empty($fault_key) && in_array($key,$fault_key)){
                         $flag = 1;
@@ -208,82 +208,134 @@ class Exercise extends Backend
                     if($fault_right_list[2]['answer_right']==1){
                         $fault_three_score = 0;
                     }
-
-                    //根据故障部位,查找故障现象
-                    $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
-                    $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
-
-                    //故障保存的是部位,需要查找故障现象
-                    $other_report = json_decode($params['other_report'],true);
-                    if(count($other_report)<3){
-                        $xianxian_score = 15-5*count($other_report)+$xianxian_score;
-                        $buwei_score = 3-1*count($other_report)+$buwei_score;
-                        $yuanyin_socre = 3-1*count($other_report)+$yuanyin_socre;
-                        $fangfa_score = 3-1*count($other_report)+$fangfa_score;
-                    }
-
+                }
+                    
+                $fault_right_list = Db::name('real_exam_fault')->where(['exam_id'=>$ids,'flag'=>1])->select();
+
+                //根据故障部位,查找故障现象
+                $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
+                
+                //根据故障部位查找,匹配的排除方法
+                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
+                //根据故障部位查找,匹配可能原因
+                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
+
+                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
+
+                //获取数组
+                $other_report = json_decode($params['other_report'],true);
+                if(!empty($other_report)){
                     foreach ($other_report as $key => $em){
                         //故障现象
-                        if(!in_array($em['xx_id'],$partent_fault_id)){
-                            $xianxian_score = 5+$xianxian_score;
-                            $xianxian_arr[] = $em['xx_id'];
-                        }
-
+                        $xianxian_arr[] = $em['xx_id'];
                         //故障部位
-                        if(!empty($em['bw_id'])){
-                            $report_xx_id = Report::where(['bw_id'=>['in',$em['bw_id']]])->column('xx_id');
-                            if(!in_array($em['xx_id'],$report_xx_id)){ //现象不对,直接扣分
-                                $buwei_score = 1+$buwei_score;
-                                $buwei_arr[] = $em['bw_id'];
-                            }else{
-                                //现象正确,判断是不是正确的选项
-                                foreach (explode(',',$em['bw_id']) as $s => $bs){
-                                    if(!in_array($bs,$fault_arr)){
-                                        $buwei_score = 1+$buwei_score;
-                                        $buwei_arr[] = $bs;
-                                    }
-                                }
-                            }
-                        }else{
-                            //部位为空 +1
-                            $buwei_score = 1+ $buwei_score;
-                        }
-
-
+                        $buwei_arr[] = $em['bw_id'];
                         //可能原因
-                        if(!empty($em['yy_id'])){
-                            $report_bw_id = Report::where(['yy_id'=>['in',$em['yy_id']]])->column('bw_id');
-                            if(!in_array($em['bw_id'],$report_bw_id)){ //现象不对,直接扣分
-                                $yuanyin_socre = 1+$yuanyin_socre;
-                                $yuanyin_arr[] = $em['yy_id'];
-                            }else{
-
-                            }
-                        }else{
-                            //部位为空 +1
-                            $yuanyin_socre = 1+$yuanyin_socre;
-                        }
-
+                        $yuanyin_arr[] = $em['yy_id'];
                         //排除方法
-                        if(!empty($em['pc_id'])){
-                            $report_pc_id = Report::where(['pc_id'=>['in',$em['pc_id']]])->column('bw_id');
-                            if(!in_array($em['bw_id'],$report_pc_id)){ //现象不对,直接扣分
-                                $fangfa_score = 1+$fangfa_score;
-                                $fangfa_arr[] = $em['pc_id'];
-                            }else{
-
-                            }
-                        }else{
-                            $fangfa_score = 1+$fangfa_score;
-                        }
+                        $fangfa_arr[] = $em['pc_id'];
+                    }
+                }
+                
+                //故障现象 分数 start
+                foreach ($partent_fault_id as $k1 =>$t){
+                    if(!in_array($t,$xianxian_arr)){
+                        $xianxian_score = 1+$xianxian_score;
+                        $xianxian_content[] = [
+                            'cx_id'=>$t,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t])->value('name'),
+                        ];
+                    }
+                }
+                foreach ($xianxian_arr as $k2 =>$t2){
+                    if(!in_array($t2,$partent_fault_id)){
+                        $xianxian_score = 1+$xianxian_score;
+                        $xianxian_content[] = [
+                            'cx_id'=>$t2,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t2])->value('name'),
+                        ];
+                    }
+                }
+                //故障现象 end
+              
+                
+                //故障部位 start
+                foreach ($fault_arr as $k11 =>$t11){
+                    if(!in_array($t11,$buwei_arr)){
+                        $buwei_score = 1+$buwei_score;
+                        $buwei_content[] = [
+                            'cx_id'=>$t11,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t11])->value('name'),
+                        ];
+                    }
+                }
+                foreach ($buwei_arr as $k12 =>$t12){
+                    if(!empty($t12) && !in_array($t12,$fault_arr)){
+                        //错写
+                        $buwei_score = 1+$buwei_score;
+                        $buwei_content[] = [
+                            'cx_id'=>$t12,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t12])->value('name'),
+                        ];
+                    }
+                }
+                //故障部位 end
+                
+                //排除方法 start
+                //循环固定的排除方法,匹配作答的排除方法
+                foreach ($paichu_arr as $k21 =>$t21){
+                    if(!in_array($t21,$fangfa_arr)){
+                        $fangfa_score = 1+$fangfa_score;
+                        $fangfa_content[] = [
+                            'cx_id'=>$t21,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t21])->value('name'),
+                        ];
+                    }
+                }
+                //循环作答的排除方法,,匹配固定的排除方法
+                foreach ($fangfa_arr as $k22 =>$t22){
+                    if(!empty($t22) && !in_array($t22,$paichu_arr)){
+                        $fangfa_score = 1+$fangfa_score;
+                        $fangfa_content[] = [
+                            'cx_id'=>$t22,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t22])->value('name'),
+                        ];
+                    }
+                }
+                //排除方法 end
+
+                //可能原因 start
+                //循环固定的可能原因,匹配作答的可能原因
+                foreach ($yy_arr as $k31 =>$t31){
+                    if(!in_array($t31,$yuanyin_arr)){
+                        $yuanyin_socre = 1+$yuanyin_socre;
+                        $yuanyin_content[] = [
+                            'cx_id'=>$t31,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t31])->value('name'),
+                        ];
                     }
                 }
-//                echo "<pre>";
-//                print_r($buwei_arr);
-//                echo '原因:'.$yuanyin_socre.'<br/>';
-//                echo '部位:'.$buwei_score.'<br/>';
-//                echo '现象:'.$xianxian_score;
-//                die();
+                //循环作答的排除方法,,匹配固定的排除方法
+                foreach ($yuanyin_arr as $k32 =>$t32){
+                    if(!empty($t32) && !in_array($t32,$yy_arr)){
+                        $yuanyin_socre = 1+$yuanyin_socre;
+                        $yuanyin_content[] = [
+                            'cx_id'=>$t32,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
+                        ];
+                    }
+                }
+                //可能原因 end
+                
+                
                 $weixiu_score = $xianxian_score+$yuanyin_socre+$buwei_score+$fangfa_score;
                 if($weixiu_score>15){
                     $weixiu_score = 15;
@@ -308,14 +360,17 @@ class Exercise extends Backend
                 $params['fault_three_score'] = $fault_three_score;//得分;
 
                 $params['xianxian_score'] = $xianxian_score;//得分;
-                $params['xianxian_content'] = !empty($xianxian_arr) ? json_encode($xianxian_arr):'';//错题;
+                $params['xianxian_content'] = json_encode($xianxian_content);//错题;
+
                 $params['yuanyin_socre'] = $yuanyin_socre;//得分;
-                $params['yuanyin_content'] = !empty($yuanyin_arr) ? json_encode($yuanyin_arr) : '';//错题;
+                $params['yuanyin_content'] = json_encode($yuanyin_content);//错题;
+
                 $params['buwei_score'] = $buwei_score;//得分;
-                $params['buwei_content'] = !empty($buwei_arr) ? json_encode($buwei_arr) :'';//错题;
+                $params['buwei_content'] = json_encode($buwei_content);//错题;
+
                 $params['fangfa_score'] = $fangfa_score;//得分;
-                $params['fangfa_content'] = !empty($fangfa_arr) ? json_encode($fangfa_arr):'';//错题;
-//                $params['jielun_score'] = $jielun_score;//得分;
+                $params['fangfa_content'] = json_encode($fangfa_content);//错题;
+//                
                 $params['overtime_score'] = $overtime_score;//得分;
                 Db::name('real_exam_score')->insert($params);
 
@@ -391,34 +446,25 @@ class Exercise extends Backend
         $row['fault_name_two'] = !empty($fault_list[1]['fault_id']) ? Fault::where('fault_id',$fault_list[1]['fault_id'])->value('name'):'';
         $row['fault_name_three'] = !empty($fault_list[2]['fault_id']) ? Fault::where('fault_id',$fault_list[2]['fault_id'])->value('name'):'';
 
-        if($row['xianxian_score']>0 && empty($row['xianxian_content']))
+        $row['xianxian_content_name'] = '';
+        if(!empty($row['xianxian_content']))
         {
-            $row['xianxian_content_name'] = '未选择';
-        }else{
-            $xianxian = Report::where(['xx_id'=>['in',json_decode($row['xianxian_content'],true)]])->group('xx_name')->column('xx_name');
-            $row['xianxian_content_name'] = !empty($xianxian) ? implode(',',$xianxian) :'不存在或未选择';
+            $row['xianxian_content_name'] = json_decode($row['xianxian_content'],true);
         }
-        if($row['yuanyin_socre']>0 && empty($row['yuanyin_content']))
+        $row['yuanyin_content_name'] = '';
+        if(!empty($row['yuanyin_content']))
         {
-            $row['yuanyin_content_name'] = '未选择';
-        }else{
-            $yuanyin = Report::where(['yy_id'=>['in',json_decode($row['yuanyin_content'],true)]])->group('yy_name')->column('yy_name');
-            $row['yuanyin_content_name'] = !empty($yuanyin) ? implode(',',$yuanyin) :'不存在或未选择';
+            $row['yuanyin_content_name'] = json_decode($row['yuanyin_content'],true);
         }
-
-        if($row['buwei_score']>0 &&empty($row['buwei_content']))
+        $row['buwei_content_name'] = '';
+        if(!empty($row['buwei_content']))
         {
-            $row['buwei_content_name'] = '未选择';
-        }else{
-            $buwei = Report::where(['bw_id'=>['in',json_decode($row['buwei_content'],true)]])->group('bw_name')->column('bw_name');
-            $row['buwei_content_name'] = !empty($buwei) ? implode(',',$buwei) :'不存在或未选择';
+            $row['buwei_content_name'] = json_decode($row['buwei_content'],true);
         }
-        if($row['fangfa_score']>0 && empty($row['fangfa_content']))
+        $row['fangfa_content_name'] = '';
+        if(!empty($row['fangfa_content']))
         {
-            $row['fangfa_content_name'] = '未选择';
-        }else{
-            $fangfa = Report::where(['pc_id'=>['in',json_decode($row['fangfa_content'],true)]])->group('pc_name')->column('pc_name');
-            $row['fangfa_content_name'] = !empty($fangfa) ? implode(',',$fangfa) :'不存在或未选择';
+            $row['fangfa_content_name'] = json_decode($row['fangfa_content'],true);
         }
 
 

+ 153 - 106
application/admin/controller/student/Practice.php

@@ -165,16 +165,25 @@ class Practice extends Backend
             $fault_two_score = 25;
             $fault_three_score = 25;
 
+            //故障现象
             $xianxian_score = 0;
-            $yuanyin_socre= 0;
+            $xianxian_arr = [];
+            $xianxian_content = [];
+
+            //故障部位
             $buwei_score= 0;
-            $fangfa_score= 0;
+            $buwei_arr = [];
+            $buwei_content = [];
 
-            $xianxian_arr = [];
+            //可能原因
+            $yuanyin_socre= 0;
             $yuanyin_arr = [];
-            $buwei_arr = [];
+            $yuanyin_content = [];
+
+            //排除方法
+            $fangfa_score= 0;
             $fangfa_arr = [];
-            $jielun_score = 0;
+            $fangfa_content = [];
 
 
             Db::startTrans();
@@ -205,7 +214,6 @@ class Practice extends Backend
                     }
                 }
 
-
                 //计算得分,故障是否有扣分  扣分制
                 $fault_right_list = Db::name('real_exam_fault')->where(['exam_id'=>$ids,'flag'=>1,'answer_right'=>['>',0]])->select();
                 if(!empty($fault_right_list)){
@@ -218,93 +226,137 @@ class Practice extends Backend
                     if($fault_right_list[2]['answer_right']==1){
                         $fault_three_score = 0;
                     }
+                }
+                $fault_right_list = Db::name('real_exam_fault')->where(['exam_id'=>$ids,'flag'=>1])->select();
 
-                    //根据故障部位,查找故障现象
-                    $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
-                    $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
-
-                    //故障保存的是部位,需要查找故障现象
-                    $other_report = json_decode($params['other_report'],true);
-                    if(count($other_report)<3){
-                        $xianxian_score = 15-5*count($other_report)+$xianxian_score;
-                        $buwei_score = 3-1*count($other_report)+$buwei_score;
-                        $yuanyin_socre = 3-1*count($other_report)+$yuanyin_socre;
-                        $fangfa_score = 3-1*count($other_report)+$fangfa_score;
-                    }
+                //根据故障部位,查找故障现象
+                $fault_arr = [$fault_right_list[0]['fault_id'],$fault_right_list[1]['fault_id'],$fault_right_list[2]['fault_id']];
+                
+                //根据故障部位查找,匹配的排除方法
+                $paichu_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('pc_id');
+                //根据故障部位查找,匹配可能原因
+                $yy_arr = Report::where(['bw_id'=>['in',$fault_arr]])->column('yy_id');
+
+                $partent_fault_id = Fault::where(['fault_id'=>['in',$fault_arr]])->column('parent_fault_id');
 
+                //获取数组
+                $other_report = json_decode($params['other_report'],true);
+                if(!empty($other_report)){
                     foreach ($other_report as $key => $em){
                         //故障现象
-                        if(!in_array($em['xx_id'],$partent_fault_id)){
-                            $xianxian_score = 5+$xianxian_score;
-                            $xianxian_arr[] = $em['xx_id'];
-                        }
-
+                        $xianxian_arr[] = $em['xx_id'];
                         //故障部位
-                        if(!empty($em['bw_id'])){
-                            $report_xx_id = Report::where(['bw_id'=>['in',$em['bw_id']]])->column('xx_id');
-                            if(!in_array($em['xx_id'],$report_xx_id)){ //现象不对,直接扣分
-                                $buwei_score = 1+$buwei_score;
-                                $buwei_arr[] = $em['bw_id'];
-                            }else{
-                                //现象正确,判断是不是正确的选项
-                                foreach (explode(',',$em['bw_id']) as $s => $bs){
-                                    if(!in_array($bs,$fault_arr)){
-                                        $buwei_score = 1+$buwei_score;
-                                        $buwei_arr[] = $bs;
-                                    }
-                                }
-                            }
-                        }else{
-                            //部位为空 +1
-                            $buwei_score = 1+ $buwei_score;
-                        }
-
-
+                        $buwei_arr[] = $em['bw_id'];
                         //可能原因
-                        if(!empty($em['yy_id'])){
-                            $report_bw_id = Report::where(['yy_id'=>['in',$em['yy_id']]])->column('bw_id');
-                            if(!in_array($em['bw_id'],$report_bw_id)){ //现象不对,直接扣分
-                                $yuanyin_socre = 1+$yuanyin_socre;
-                                $yuanyin_arr[] = $em['yy_id'];
-                            }else{
-
-                            }
-                        }else{
-                            //部位为空 +1
-                            $yuanyin_socre = 1+$yuanyin_socre;
-                        }
-
+                        $yuanyin_arr[] = $em['yy_id'];
                         //排除方法
-                        if(!empty($em['pc_id'])){
-                            $report_pc_id = Report::where(['pc_id'=>['in',$em['pc_id']]])->column('bw_id');
-                            if(!in_array($em['bw_id'],$report_pc_id)){ //现象不对,直接扣分
-                                $fangfa_score = 1+$fangfa_score;
-                                $fangfa_arr[] = $em['pc_id'];
-                            }else{
-
-                            }
-                        }else{
-                            $fangfa_score = 1+$fangfa_score;
-                        }
+                        $fangfa_arr[] = $em['pc_id'];
+                    }
+                }
+                
+                //故障现象 分数 start
+                foreach ($partent_fault_id as $k1 =>$t){
+                    if(!in_array($t,$xianxian_arr)){
+                        $xianxian_score = 1+$xianxian_score;
+                        $xianxian_content[] = [
+                            'cx_id'=>$t,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t])->value('name'),
+                        ];
+                    }
+                }
+                foreach ($xianxian_arr as $k2 =>$t2){
+                    if(!in_array($t2,$partent_fault_id)){
+                        $xianxian_score = 1+$xianxian_score;
+                        $xianxian_content[] = [
+                            'cx_id'=>$t2,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t2])->value('name'),
+                        ];
+                    }
+                }
+                //故障现象 end
+              
+                
+                //故障部位 start
+                foreach ($fault_arr as $k11 =>$t11){
+                    if(!in_array($t11,$buwei_arr)){
+                        $buwei_score = 1+$buwei_score;
+                        $buwei_content[] = [
+                            'cx_id'=>$t11,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t11])->value('name'),
+                        ];
+                    }
+                }
+                foreach ($buwei_arr as $k12 =>$t12){
+                    if(!empty($t12) && !in_array($t12,$fault_arr)){
+                        //错写
+                        $buwei_score = 1+$buwei_score;
+                        $buwei_content[] = [
+                            'cx_id'=>$t12,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t12])->value('name'),
+                        ];
+                    }
+                }
+                //故障部位 end
+                
+                //排除方法 start
+                //循环固定的排除方法,匹配作答的排除方法
+                foreach ($paichu_arr as $k21 =>$t21){
+                    if(!in_array($t21,$fangfa_arr)){
+                        $fangfa_score = 1+$fangfa_score;
+                        $fangfa_content[] = [
+                            'cx_id'=>$t21,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t21])->value('name'),
+                        ];
+                    }
+                }
+                //循环作答的排除方法,,匹配固定的排除方法
+                foreach ($fangfa_arr as $k22 =>$t22){
+                    if(!empty($t22) && !in_array($t22,$paichu_arr)){
+                        $fangfa_score = 1+$fangfa_score;
+                        $fangfa_content[] = [
+                            'cx_id'=>$t22,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t22])->value('name'),
+                        ];
+                    }
+                }
+                //排除方法 end
+
+                //可能原因 start
+                //循环固定的可能原因,匹配作答的可能原因
+                foreach ($yy_arr as $k31 =>$t31){
+                    if(!in_array($t31,$yuanyin_arr)){
+                        $yuanyin_socre = 1+$yuanyin_socre;
+                        $yuanyin_content[] = [
+                            'cx_id'=>$t31,
+                            'cx_type'=>'少写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t31])->value('name'),
+                        ];
                     }
                 }
-//                echo "<pre>";
-//                print_r($buwei_arr);
-//                echo '原因:'.$yuanyin_socre.'<br/>';
-//                echo '部位:'.$buwei_score.'<br/>';
-//                echo '现象:'.$xianxian_score;
-//                die();
+                //循环作答的排除方法,,匹配固定的排除方法
+                foreach ($yuanyin_arr as $k32 =>$t32){
+                    if(!empty($t32) && !in_array($t32,$yy_arr)){
+                        $yuanyin_socre = 1+$yuanyin_socre;
+                        $yuanyin_content[] = [
+                            'cx_id'=>$t32,
+                            'cx_type'=>'错写',
+                            'cx_name'=>Fault::where(['fault_id'=>$t32])->value('name'),
+                        ];
+                    }
+                }
+                //可能原因 end
+
                 $weixiu_score = $xianxian_score+$yuanyin_socre+$buwei_score+$fangfa_score;
                 if($weixiu_score>15){
                     $weixiu_score = 15;
                 }
-//                $xianxian_score = rand(1,3);
-//                $yuanyin_socre= rand(1,3);
-//                $buwei_score= rand(1,3);
-//                $fangfa_score= rand(1,3);
-//                if(empty($params['other_jielun'])){
-//                    $jielun_score = rand(1,3);
-//                }
+
                 //是否超时
                 $overtime_fen = intval((time()-$info['endtime']) / 60);
                 if($overtime_fen>=10){
@@ -324,14 +376,18 @@ class Practice extends Backend
                 $params['fault_three_score'] = $fault_three_score;//得分;
 
                 $params['xianxian_score'] = $xianxian_score;//得分;
-                $params['xianxian_content'] = !empty($xianxian_arr) ? json_encode($xianxian_arr):'';//错题;
+                $params['xianxian_content'] = json_encode($xianxian_content);//错题;
+
                 $params['yuanyin_socre'] = $yuanyin_socre;//得分;
-                $params['yuanyin_content'] = !empty($yuanyin_arr) ? json_encode($yuanyin_arr) : '';//错题;
+                $params['yuanyin_content'] = json_encode($yuanyin_content);//错题;
+
                 $params['buwei_score'] = $buwei_score;//得分;
-                $params['buwei_content'] = !empty($buwei_arr) ? json_encode($buwei_arr) :'';//错题;
+                $params['buwei_content'] = json_encode($buwei_content);//错题;
+
                 $params['fangfa_score'] = $fangfa_score;//得分;
-                $params['fangfa_content'] = !empty($fangfa_arr) ? json_encode($fangfa_arr):'';//错题;
-//                $params['jielun_score'] = $jielun_score;//得分;
+                $params['fangfa_content'] = json_encode($fangfa_content);//错题;
+
+
                 $params['overtime_score'] = $overtime_score;//得分;
                 Db::name('real_exam_score')->insert($params);
 
@@ -417,34 +473,25 @@ class Practice extends Backend
         $row['fault_name_two'] = !empty($fault_list[1]['fault_id']) ? Fault::where('fault_id',$fault_list[1]['fault_id'])->value('name'):'';
         $row['fault_name_three'] = !empty($fault_list[2]['fault_id']) ? Fault::where('fault_id',$fault_list[2]['fault_id'])->value('name'):'';
 
-        if($row['xianxian_score']>0 && empty($row['xianxian_content']))
+        $row['xianxian_content_name'] = '';
+        if(!empty($row['xianxian_content']))
         {
-            $row['xianxian_content_name'] = '未选择';
-        }else{
-            $xianxian = Report::where(['xx_id'=>['in',json_decode($row['xianxian_content'],true)]])->group('xx_name')->column('xx_name');
-            $row['xianxian_content_name'] = !empty($xianxian) ? implode(',',$xianxian) :'不存在或未选择';
+            $row['xianxian_content_name'] = json_decode($row['xianxian_content'],true);
         }
-        if($row['yuanyin_socre']>0 && empty($row['yuanyin_content']))
+        $row['yuanyin_content_name'] = '';
+        if(!empty($row['yuanyin_content']))
         {
-            $row['yuanyin_content_name'] = '未选择';
-        }else{
-            $yuanyin = Report::where(['yy_id'=>['in',json_decode($row['yuanyin_content'],true)]])->group('yy_name')->column('yy_name');
-            $row['yuanyin_content_name'] = !empty($yuanyin) ? implode(',',$yuanyin) :'不存在或未选择';
+            $row['yuanyin_content_name'] = json_decode($row['yuanyin_content'],true);
         }
-
-        if($row['buwei_score']>0 &&empty($row['buwei_content']))
+        $row['buwei_content_name'] = '';
+        if(!empty($row['buwei_content']))
         {
-            $row['buwei_content_name'] = '未选择';
-        }else{
-            $buwei = Report::where(['bw_id'=>['in',json_decode($row['buwei_content'],true)]])->group('bw_name')->column('bw_name');
-            $row['buwei_content_name'] = !empty($buwei) ? implode(',',$buwei) :'不存在或未选择';
+            $row['buwei_content_name'] = json_decode($row['buwei_content'],true);
         }
-        if($row['fangfa_score']>0 && empty($row['fangfa_content']))
+        $row['fangfa_content_name'] = '';
+        if(!empty($row['fangfa_content']))
         {
-            $row['fangfa_content_name'] = '未选择';
-        }else{
-            $fangfa = Report::where(['pc_id'=>['in',json_decode($row['fangfa_content'],true)]])->group('pc_name')->column('pc_name');
-            $row['fangfa_content_name'] = !empty($fangfa) ? implode(',',$fangfa) :'不存在或未选择';
+            $row['fangfa_content_name'] = json_decode($row['fangfa_content'],true);
         }
 
 

+ 21 - 3
application/admin/controller/teacher/Practice.php

@@ -114,13 +114,13 @@ class Practice extends Backend
                 //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
                 $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
                 if($params['question_setting_method']==1){ //系统随机
-                    $fault_key = array_rand($fault_list, 3);
+                    // $fault_key = array_rand($fault_list, 3);
+                    $fault_key = $this->rand_fault($fault_list);
                 }else if($params['question_setting_method']==2){//教师自选
                     $question_ids = $params['question_ids'];
                 }else if($params['question_setting_method']==3){ //任务自选
                     $task_ids = Db::name('task_fault')->where(['task_id'=>['in',$params['task_id']]])->column('fault_id');
                 }
-//                halt($question_ids);
                 foreach ($fault_list as $key=> $item1){
                     $flag = 0;
                     if(!empty($fault_key) && in_array($key,$fault_key)){
@@ -228,7 +228,8 @@ class Practice extends Backend
                     //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
                     $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
                     if($params['question_setting_method']==1){ //系统随机
-                        $fault_key = array_rand($fault_list, 3);
+                        // $fault_key = array_rand($fault_list, 3);
+                        $fault_key = $this->rand_fault($fault_list);
                     }else if($params['question_setting_method']==2){//教师自选
                         $question_ids = $params['question_ids'];
                     }else if($params['question_setting_method']==3){ //任务自选
@@ -449,6 +450,23 @@ class Practice extends Backend
         return json($result);
     }
 
+    public function rand_fault($fault_list = null){
+
+        // $fault_key = array_rand($fault_list,3);
+        // $fault_key1 = array_rand($fault_list);
+        // $fault_key2 = array_rand($fault_list);
+        // $fault_key3 = array_rand($fault_list);
+        // if($fault_list[$fault_key1]['parent_fault_id']==$fault_list[$fault_key2]['parent_fault_id']){
+        //     $fault_key2 = array_rand($fault_list);
+        // }
+        // if($fault_list[$fault_key2]['parent_fault_id']==$fault_list[$fault_key3]['parent_fault_id']){
+        //     $fault_key3 = array_rand($fault_list);
+        // }
+        // $arr = [$fault_key1,$fault_key2,$fault_key3];
+        $arr = [1,5,7];
+        return $arr;
+    }
+
 //    public function start($ids = null){
 ////        $row = $this->model->get($ids);
 ////        if (!$row) {

+ 28 - 19
application/admin/view/student/exercise/analysis.html

@@ -99,36 +99,53 @@
                             <td>故障现象少写或错写1条扣1分</td>
                             <td>{$row.xianxian_score|htmlentities}</td>
                             <td>{if $row.xianxian_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                            <td>{$row.xianxian_content_name|htmlentities}</td>
+                            <td>
+                                {if $row.xianxian_content_name}
+                                {volist name="row.xianxian_content_name" id="vo" }
+                                <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;<br/>
+                                {/volist}
+                                {/if}
+                            </td>
                         </tr>
                         <tr>
                             <td>2</td>
                             <td>可能原因少写或错写1条扣1分</td>
                             <td>{$row.yuanyin_socre|htmlentities}</td>
                             <td>{if $row.yuanyin_socre eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                            <td>{$row.yuanyin_content_name|htmlentities}</td>
+                            <td>
+                                {if $row.yuanyin_content_name}
+                                {volist name="row.yuanyin_content_name" id="vo" }
+                                <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                                {/volist}
+                                {/if}
+                            </td>
                         </tr>
                         <tr>
                             <td>3</td>
                             <td>故障部位少写或错写1条扣1分</td>
                             <td>{$row.buwei_score|htmlentities}</td>
                             <td>{if $row.buwei_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                            <td>{$row.buwei_content_name|htmlentities}</td>
+                            <td>
+                                {if $row.buwei_content_name}
+                                {volist name="row.buwei_content_name" id="vo" }
+                                <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                                {/volist}
+                                {/if}
+                            </td>
                         </tr>
                         <tr>
                             <td>4</td>
                             <td>排除方法少写或错写1条扣1分</td>
                             <td>{$row.fangfa_score|htmlentities}</td>
                             <td>{if $row.fangfa_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                            <td>{$row.fangfa_content_name|htmlentities}</td>
+                            <td>
+                                {if $row.fangfa_content_name}
+                                {volist name="row.fangfa_content_name" id="vo" }
+                                <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                                {/volist}
+                                {/if}
+                            </td>
                         </tr>
-                        <!--                    <tr>-->
-                        <!--                        <td>5</td>-->
-                        <!--                        <td>修复结论错扣2分</td>-->
-                        <!--                        <td></td>-->
-                        <!--                        <td></td>-->
-                        <!--                        <td></td>-->
-                        <!--                    </tr>-->
                         <tr>
                             <td colspan="5" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
                         </tr>
@@ -136,18 +153,10 @@
                             <td colspan="2">按没超过1分钟扣1分的比例扣分</td>
                             <td colspan="3">{$row.overtime_score|htmlentities}</td>
                         </tr>
-                        <!--                    <tr>-->
-                        <!--                        <td colspan="2">扣分小计</td>-->
-                        <!--                        <td colspan="3">超时</td>-->
-                        <!--                    </tr>-->
                         <tr>
                             <td colspan="2">五.成绩</td>
                             <td colspan="3">{$row.total|htmlentities}</td>
                         </tr>
-                        <!--                    <tr>-->
-                        <!--                        <td colspan="2">说明</td>-->
-                        <!--                        <td colspan="3"></td>-->
-                        <!--                    </tr>-->
                     </table>
                 </div>
 

+ 7 - 32
application/admin/view/student/exercise/examing.html

@@ -116,6 +116,7 @@
                                     <script type="text/html" id="other_suppliertpl">
                                         <dd class="form-inline">
                                             <select class="form-control" name="unwin[<%=index%>][name]" style="width: 600px;">
+                                                <option value="" >请选择</option>
                                                 {foreach name="departmentdata" item="vo"}
                                                 <option value="{$vo.fault_id}" >{$vo.name}</option>
                                                 {/foreach}
@@ -127,6 +128,12 @@
                                     </script>
                                 </div>
                             </div>
+                            <div class="form-group">
+                                <div class="col-xs-9 col-sm-9" style="margin-left:44%;margin-bottom:7%;margin-top:-4%">
+                                    <button type="button" class="btn btn-success btn-replace" style="text-align: center;width: 13%;margin-top: 5%">
+                                        {:__('提交申请')}</button>
+                                </div>
+                            </div>
                         </div>
 
                         <div class="col-xs-12 col-sm-12">
@@ -168,42 +175,10 @@
                                 </div>
 
                                 <textarea name="row[other_report]" style="margin-top:9px" class="form-control hide other_report" cols="30" rows="5">{$row.other_report}</textarea>
-<!--                                <div class="col-xs-9 col-sm-9">-->
-<!--                                    <dl class="fieldlist" data-name="row[other_report]" data-template="other_suppliertpl1" id="second-fieldlist">-->
-<!--                                        <dd>-->
-<!--                                            <ins style="width: 250px;">故障现象</ins>-->
-<!--                                            <ins style="width: 250px;">可能原因</ins>-->
-<!--                                            <ins style="width: 250px;">故障部位</ins>-->
-<!--                                            <ins style="width: 250px;">排除方法</ins>-->
-
-<!--                                        </dd>-->
-<!--                                        <dd>-->
-<!--                                            <a href="javascript:;" class="btn btn-sm btn-info btn-append"><i class="fa fa-plus"></i> 追加</a>-->
-<!--                                        </dd>-->
-<!--                                        <textarea name="row[other_report]" class="form-control hide other_report" cols="30" rows="5" data-rule="required">{$row.other_report}</textarea>-->
-<!--                                    </dl>-->
-<!--                                    &lt;!&ndash;定义模板,模板语法使用Art-Template模板语法&ndash;&gt;-->
-<!--                                    <script type="text/html" id="other_suppliertpl1">-->
-<!--                                        <dd class="form-inline">-->
-<!--                                            <select class="form-control" name="unwin[<%=index%>][xx_id]" style="width: 260px;">-->
-<!--                                                <option value="" >请选择</option>-->
-<!--                                                {foreach name="xianxiang" item="vo"}-->
-<!--                                                <option value="{$vo.fault_id}" <%if(row.xx_id =='{$vo.fault_id}'){%> selected <% }%> >{$vo.name}</option>-->
-<!--                                                {/foreach}-->
-<!--                                            </select>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][yy_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"2","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.yy_id%>"/>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][bw_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"3","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.bw_id%>"/>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][pc_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"4","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.pc_id%>"/>-->
-
-<!--                                            <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>-->
-<!--                                        </dd>-->
-<!--                                    </script>-->
-<!--                                </div>-->
                             </div>
                         </div>
                     </div>
                     <div class="form-group" style="text-align: center;">
-                        <button type="button" class="btn btn-success btn-replace" style="text-align: center;width: 10%;margin-top: 5%">{:__('暂存')}</button>
                         <button type="submit" class="btn btn-info" style="text-align: center;width: 10%;margin-top: 5%">{:__('交卷')}</button>
                     </div>
                 </form>

+ 28 - 19
application/admin/view/student/practice/analysis.html

@@ -99,36 +99,53 @@
                         <td>故障现象少写或错写1条扣1分</td>
                         <td>{$row.xianxian_score|htmlentities}</td>
                         <td>{if $row.xianxian_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                        <td>{$row.xianxian_content_name|htmlentities}</td>
+                        <td>
+                            {if $row.xianxian_content_name}
+                            {volist name="row.xianxian_content_name" id="vo" }
+                            <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;<br/>
+                            {/volist}
+                            {/if}
+                        </td>
                     </tr>
                     <tr>
                         <td>2</td>
                         <td>可能原因少写或错写1条扣1分</td>
                         <td>{$row.yuanyin_socre|htmlentities}</td>
                         <td>{if $row.yuanyin_socre eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                        <td>{$row.yuanyin_content_name|htmlentities}</td>
+                        <td>
+                            {if $row.yuanyin_content_name}
+                            {volist name="row.yuanyin_content_name" id="vo" }
+                            <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                            {/volist}
+                            {/if}
+                        </td>
                     </tr>
                     <tr>
                         <td>3</td>
                         <td>故障部位少写或错写1条扣1分</td>
                         <td>{$row.buwei_score|htmlentities}</td>
                         <td>{if $row.buwei_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                        <td>{$row.buwei_content_name|htmlentities}</td>
+                        <td>
+                            {if $row.buwei_content_name}
+                            {volist name="row.buwei_content_name" id="vo" }
+                            <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                            {/volist}
+                            {/if}
+                        </td>
                     </tr>
                     <tr>
                         <td>4</td>
                         <td>排除方法少写或错写1条扣1分</td>
                         <td>{$row.fangfa_score|htmlentities}</td>
                         <td>{if $row.fangfa_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                        <td>{$row.fangfa_content_name|htmlentities}</td>
+                        <td>
+                            {if $row.fangfa_content_name}
+                            {volist name="row.fangfa_content_name" id="vo" }
+                            <span class="text-danger">{$vo.cx_type}:{$vo.cx_name}</span>&nbsp;&nbsp;&nbsp;
+                            {/volist}
+                            {/if}
+                        </td>
                     </tr>
-<!--                    <tr>-->
-<!--                        <td>5</td>-->
-<!--                        <td>修复结论错扣2分</td>-->
-<!--                        <td></td>-->
-<!--                        <td></td>-->
-<!--                        <td></td>-->
-<!--                    </tr>-->
                     <tr>
                         <td colspan="5" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
                     </tr>
@@ -136,18 +153,10 @@
                         <td colspan="2">按没超过1分钟扣1分的比例扣分</td>
                         <td colspan="3">{$row.overtime_score|htmlentities}</td>
                     </tr>
-<!--                    <tr>-->
-<!--                        <td colspan="2">扣分小计</td>-->
-<!--                        <td colspan="3">超时</td>-->
-<!--                    </tr>-->
                     <tr>
                         <td colspan="2">五.成绩</td>
                         <td colspan="3">{$row.total|htmlentities}</td>
                     </tr>
-<!--                    <tr>-->
-<!--                        <td colspan="2">说明</td>-->
-<!--                        <td colspan="3"></td>-->
-<!--                    </tr>-->
                 </table>
             </div>
 

+ 6 - 31
application/admin/view/student/practice/examing.html

@@ -126,6 +126,12 @@
                                     </script>
                                 </div>
                             </div>
+                            <div class="form-group">
+                                <div class="col-xs-9 col-sm-9" style="margin-left:44%;margin-bottom:7%;margin-top:-4%">
+                                    <button type="button" class="btn btn-success btn-replace" style="text-align: center;width: 13%;margin-top: 5%">
+                                        {:__('提交申请')}</button>
+                                </div>
+                            </div>
                         </div>
                         <div class="col-xs-12 col-sm-12">
                             <div class="form-group">
@@ -167,40 +173,9 @@
                                 </div>
 
                                 <textarea name="row[other_report]" style="margin-top:9px" class="form-control hide other_report" cols="30" rows="5">{$row.other_report}</textarea>
-<!--                                <div class="col-xs-9 col-sm-9">-->
-<!--                                    <dl class="fieldlist" data-name="row[other_report]" data-template="other_suppliertpl1" id="second-fieldlist">-->
-<!--                                        <dd >-->
-<!--                                            <ins style="width: 250px;">故障现象</ins>-->
-<!--                                            <ins style="width: 250px;">可能原因</ins>-->
-<!--                                            <ins style="width: 250px;">故障部位</ins>-->
-<!--                                            <ins style="width: 250px;">排除方法</ins>-->
-<!--                                        </dd>-->
-<!--                                        <dd style="margin-right: 87%">-->
-<!--                                            <a href="javascript:;" class="btn btn-sm btn-info btn-append"><i class="fa fa-plus"></i> 追加</a>-->
-<!--                                        </dd>-->
-<!--                                        &lt;!&ndash;                                        hide&ndash;&gt;-->
-<!--                                        <textarea name="row[other_report]" class="form-control hide other_report" cols="30" rows="5">{$row.other_report}</textarea>-->
-<!--                                    </dl>-->
-<!--                                    <script type="text/html" id="other_suppliertpl1">-->
-<!--                                        <dd class="form-inline">-->
-<!--                                            <select class="form-control" name="unwin[<%=index%>][xx_id]" style="width: 260px;">-->
-<!--                                                <option value="" >请选择</option>-->
-<!--                                                {foreach name="xianxiang" item="vo"}-->
-<!--                                                <option value="{$vo.fault_id}" <%if(row.xx_id =='{$vo.fault_id}'){%> selected <% }%> >{$vo.name}</option>-->
-<!--                                                {/foreach}-->
-<!--                                            </select>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][yy_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"2","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.yy_id%>"/>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][bw_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"3","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.bw_id%>"/>-->
-<!--                                            <input style="width: 250px;" type="text" name="<%=unwin%>[<%=index%>][pc_id]" class="form-control selectpage" data-source="fault/selectpage" data-multiple="true" data-primary-key="fault_id"  data-field="name" data-params='{"custom[fault_type]":"4","custom[sim_type]":"{$row.sim_type}"}' value="<%=row.pc_id%>"/>-->
-
-<!--                                            <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>-->
-<!--                                        </dd>-->
-<!--                                    </script>-->
-<!--                                </div>-->
                             </div>
                         </div>
                         <div class="form-group" style="text-align: center">
-                            <button type="button" class="btn btn-success btn-replace" style="text-align: center;width: 10%;margin-top: 5%">{:__('暂存')}</button>
                             <button type="submit" class="btn btn-info" style="text-align: center;width: 10%;margin-top: 5%">{:__('交卷')}</button>
                         </div>
                     </form>

+ 45 - 0
public/assets/js/backend/student/exercise.js

@@ -31,6 +31,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
             $(document).on('click', '.btn-replace', function () {
                 console.log($(".other_replace").val());
+                if($(".other_replace").val()=='[{"fault_id":"","request_status":"0"}]'){
+                    Layer.alert('请先填写更换件');
+                    return false;
+                }
                 $.ajax({
                     url: "student/collection/replace/ids/"+Config.ids,
                     type: 'post',
@@ -49,7 +53,48 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 });
             });
 
+            //追加记录
+            $(document).on('click', '.btn-addlog', function () {
+                var ids = Config.ids;
+                var other_report_count = Config.other_report_count;
+                if(other_report_count==3){
+                    Layer.alert('维修报告最多允许增加三条');
+                    return false;
+                }
+                Fast.api.open('student/collection/addreport/ids/'+ids, __("维修报告"), {area: ["95%", "85%"], maxmin: true, moveOut: false});
+            });
+            //编辑记录
+            $(document).on('click', '.btnedit', function () {
+                var ids = Config.ids;
+                var xh_id = $(this).attr('xh_id');
+                Fast.api.open('student/collection/editreport/ids/'+ids+'/xh_id/'+xh_id, __("维修报告"), {area: ["95%", "85%"], maxmin: true, moveOut: false});
+            });
+            //移除记录
+            $(document).on('click', '.btnmove', function () {
+                var ids = Config.ids;
+                var xh_id = $(this).attr('xh_id');
+                Layer.confirm(
+                    __('确定要移除此条记录吗?', ids.length),
+                    {icon:3, title: __('Warning'), shadeClose: true, btn: [__('OK'), __('Cancel')]},
+                    function (index) {
+                        var url = 'student/collection/delreport/ids/'+ids;
+                        options = {url: url, data: {xh_id: xh_id}};
+                        Fast.api.ajax(options, function (data, ret) {
+                            window.location.reload();
+                        }, function (data, ret) {
+                            var error = $(that).data("error") || $.noop;
+                            if (typeof error === 'function') {
+                                if (false === error.call(that, data, ret)) {
+                                    return false;
+                                }
+                            }
+                        });
+                        Layer.close(index);
+                    }
+                );
 
+            });
+            
             $(document).on("fa.event.appendfieldlist", "#second-fieldlist .btn-append", function (e, obj) {
                 //绑定动态下拉组件
                 Form.events.selectpage(obj);

+ 46 - 0
public/assets/js/backend/student/practice.js

@@ -152,6 +152,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
             $(document).on('click', '.btn-replace', function () {
                 console.log($(".other_replace").val());
+                if($(".other_replace").val()=='[{"fault_id":"","request_status":"0"}]'){
+                    Layer.alert('请先填写更换件');
+                    return false;
+                }
                 $.ajax({
                     url: "student/collection/replace/ids/"+Config.ids,
                     type: 'post',
@@ -170,6 +174,48 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 });
             });
 
+            //追加记录
+            $(document).on('click', '.btn-addlog', function () {
+                var ids = Config.ids;
+                var other_report_count = Config.other_report_count;
+                if(other_report_count==3){
+                    Layer.alert('维修报告最多允许增加三条');
+                    return false;
+                }
+                Fast.api.open('student/collection/addreport/ids/'+ids, __("维修报告"), {area: ["95%", "85%"], maxmin: true, moveOut: false});
+            });
+            //编辑记录
+            $(document).on('click', '.btnedit', function () {
+                var ids = Config.ids;
+                var xh_id = $(this).attr('xh_id');
+                Fast.api.open('student/collection/editreport/ids/'+ids+'/xh_id/'+xh_id, __("维修报告"), {area: ["95%", "85%"], maxmin: true, moveOut: false});
+            });
+            //移除记录
+            $(document).on('click', '.btnmove', function () {
+                var ids = Config.ids;
+                var xh_id = $(this).attr('xh_id');
+                Layer.confirm(
+                    __('确定要移除此条记录吗?', ids.length),
+                    {icon:3, title: __('Warning'), shadeClose: true, btn: [__('OK'), __('Cancel')]},
+                    function (index) {
+                        var url = 'student/collection/delreport/ids/'+ids;
+                        options = {url: url, data: {xh_id: xh_id}};
+                        Fast.api.ajax(options, function (data, ret) {
+                            window.location.reload();
+                        }, function (data, ret) {
+                            var error = $(that).data("error") || $.noop;
+                            if (typeof error === 'function') {
+                                if (false === error.call(that, data, ret)) {
+                                    return false;
+                                }
+                            }
+                        });
+                        Layer.close(index);
+                    }
+                );
+
+            });
+
             $(document).on("fa.event.appendfieldlist", "#second-fieldlist .btn-append", function (e, obj) {
                 //绑定动态下拉组件
                 Form.events.selectpage(obj);