Explorar el Código

20250106 调整

贾小兵 hace 3 meses
padre
commit
73804fe0af

+ 6 - 5
application/admin/controller/student/Collection.php

@@ -227,9 +227,9 @@ class Collection extends Backend
                 $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);
-                }
+//                if(empty($params['other_jielun'])){
+//                    $jielun_score = rand(1,3);
+//                }
                 //是否超时
                 $overtime_fen = intval((time()-$info['endtime']) / 60);
                 if($overtime_fen>=10){
@@ -239,7 +239,7 @@ class Collection extends Backend
                 }else{
                     $overtime_score =0;
                 }
-                $fault_score = $score-$fault_one_score-$fault_two_score-$fault_three_score-$xianxian_score-$yuanyin_socre-$buwei_score-$fangfa_score-$jielun_score-$overtime_score;
+                $fault_score = $score-$fault_one_score-$fault_two_score-$fault_three_score-$xianxian_score-$yuanyin_socre-$buwei_score-$fangfa_score-$overtime_score;
 
                 //更新考试结果表
                 $params['exam_id'] = $ids;
@@ -247,11 +247,12 @@ class Collection extends Backend
                 $params['fault_one_score'] = $fault_one_score;//得分;
                 $params['fault_two_score'] = $fault_two_score;//得分;
                 $params['fault_three_score'] = $fault_three_score;//得分;
+
                 $params['xianxian_score'] = $xianxian_score;//得分;
                 $params['yuanyin_socre'] = $yuanyin_socre;//得分;
                 $params['buwei_score'] = $buwei_score;//得分;
                 $params['fangfa_score'] = $fangfa_score;//得分;
-                $params['jielun_score'] = $jielun_score;//得分;
+//                $params['jielun_score'] = $jielun_score;//得分;
                 $params['overtime_score'] = $overtime_score;//得分;
                 Db::name('real_exam_score')->insert($params);
 

+ 12 - 12
application/admin/controller/teacher/Collection.php

@@ -64,7 +64,7 @@ class Collection extends Backend
             if($params['question_setting_method']==2 && empty($params['question_ids'])){
                 $this->error('出题方式为考题自选,请选择考题');
             }
-            if($params['question_setting_method']==3 && empty($params['question_ids'])){
+            if($params['question_setting_method']==3 && empty($params['task_id'])){
                 $this->error('出题方式为任务自选,请选择任务');
             }
         }
@@ -109,7 +109,7 @@ class Collection extends Backend
                 }else if($params['question_setting_method']==2){//教师自选
                     $fault_list = Fault::where(['sim_type' => $params['sim_type'],'fault_id'=>['in',$params['question_ids']], 'fault_state' => 0,'fault_type'=>3])->select();
                 }else if($params['question_setting_method']==3){ //任务自选
-                    $fault_list = Db::name('task_fault')->where(['task_id'=>['in',$params['question_ids']]])->select();
+                    $fault_list = Db::name('task_fault')->where(['task_id'=>['in',$params['task_id']]])->select();
                 }
                 $fault_key = array_rand($fault_list, 3);
                 foreach ($fault_list as $key=> $item1){
@@ -119,7 +119,7 @@ class Collection extends Backend
                     }
                     $add= [
                         'exam_id'=>$examid,
-                        'fault_id'=>$item1->fault_id,
+                        'fault_id'=>$item1['fault_id'],
                         'ref_type'=>2,
                         'flag'=>$flag,
                         'ref_state'=>3,
@@ -169,7 +169,7 @@ class Collection extends Backend
             if($params['question_setting_method']==2 && empty($params['question_ids'])){
                 $this->error('出题方式为考题自选,请选择考题');
             }
-            if($params['question_setting_method']==3 && empty($params['question_ids'])){
+            if($params['question_setting_method']==3 && empty($params['task_id'])){
                 $this->error('出题方式为任务自选,请选择任务');
             }
         }
@@ -180,7 +180,6 @@ class Collection extends Backend
             $depart_ids = $params['depart_ids'];
             $result = $row->allowField(true)->save($params);
 
-
             Db::name('real_exam_collection_dept')->where(['exam_collection_id'=>$row->exam_collection_id])->delete();
             foreach(explode(',',$depart_ids) as $item){
                 if(!empty($item)){
@@ -218,7 +217,7 @@ class Collection extends Backend
                 }else if($params['question_setting_method']==2){//教师自选
                     $fault_list = Fault::where(['sim_type' => $params['sim_type'],'fault_id'=>['in',$params['question_ids']], 'fault_state' => 0,'fault_type'=>3])->select();
                 }else if($params['question_setting_method']==3){ //任务自选
-                    $fault_list = Db::name('task_fault')->where(['task_id'=>['in',$params['question_ids']]])->select();
+                    $fault_list = Db::name('task_fault')->where(['task_id'=>['in',$params['task_id']]])->select();
                 }
                 Db::name('real_exam_fault')->where(['exam_id'=>$examid])->delete();
                 $fault_key = array_rand($fault_list, 3);
@@ -366,12 +365,13 @@ class Collection extends Backend
     老师开启考试
      */
     public function start($ids = null){
-//        $row = $this->model->get($ids);
-//        if (!$row) {
-//            $this->error(__('No Results were found'));
-//        }
-//        $params['starttime'] = time();
-//        $result = $row->allowField(true)->save($params);
+        $row = $this->model->get($ids);
+        if (!$row) {
+            $this->error(__('No Results were found'));
+        }
+        $params['start_time'] = date('Y-m-d H:i:s');
+        $params['starttime'] = time();
+        $result = $row->allowField(true)->save($params);
         $this->success('开始成功');
     }
 }

+ 3 - 1
application/admin/controller/teacher/Exams.php

@@ -27,6 +27,8 @@ class Exams extends Backend
         $this->model = new \app\admin\model\teacher\Exams;
         $this->whereExtend['exam_collection_type'] = 3;
         $this->whereExtend['starttime'] = ['>',0];
+
+        $this->relationtTable = 'collection';
     }
 
 
@@ -138,7 +140,7 @@ class Exams extends Backend
         }
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
         $list = $this->model
-            ->where($where)->where($this->whereExtend)
+            ->where($where)->where($this->whereExtend)->with($this->relationtTable)
             ->order($sort, $order)
             ->paginate($limit);
         $result = ['total' => $list->total(), 'rows' => $list->items()];

+ 14 - 8
application/admin/controller/teacher/Task.php

@@ -43,6 +43,8 @@ class Task extends Backend
     public function add()
     {
         if (false === $this->request->isPost()) {
+            $this->assignConfig('rel_Ids', []);
+            $this->assignConfig('rel_Names', []);
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');
@@ -52,8 +54,10 @@ class Task extends Backend
         if(empty($params['fault_id'])){
             $this->error('请选择任务故障');
         }
+        if(count(explode(',',$params['fault_id']))!=3){
+            $this->error('故障部位必须为3个');
+        }
         $params = $this->preExcludeFields($params);
-
         if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
             $params[$this->dataLimitField] = $this->auth->id;
         }
@@ -112,6 +116,8 @@ class Task extends Backend
         $row['fault_id_arr'] = !empty($row['fault_id']) ? explode(',',$row['fault_id']):'';
         if (false === $this->request->isPost()) {
             $this->view->assign('row', $row);
+            $this->assignConfig('rel_Ids',explode(',',$row->fault_id));
+            $this->assignConfig('rel_Names',explode(',',$row->fault_name));
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');
@@ -121,24 +127,21 @@ class Task extends Backend
         if(empty($params['fault_id'])){
             $this->error('请选择任务故障');
         }
+        if(count(explode(',',$params['fault_id']))!=3){
+            $this->error('故障部位必须为3个');
+        }
         $params = $this->preExcludeFields($params);
         $result = false;
         Db::startTrans();
         try {
             $fult_ids = $params['fault_id'];
-            //是否采用模型验证
-            if ($this->modelValidate) {
-                $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
-                $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
-                $row->validateFailException()->validate($validate);
-            }
             $result = $row->allowField(true)->save($params);
             foreach(explode(',',$fult_ids) as $item){
                 if(!empty($item)){
                     $isset = Db::name('task_fault')->where(['task_id'=>$row->task_id,'fault_id'=>$item])->find();
                     if(empty($isset)){
                         $arr = [
-                            'task_id' => $this->model->task_id,
+                            'task_id' => $row->task_id,
                             'fault_id' => $item,
                             'flag' => 1,
                             'update_time' => date('Y-m-d H:i:s'),
@@ -147,6 +150,8 @@ class Task extends Backend
                     }
                 }
             }
+            //删除任务和故障关联表中  编辑后不存在的数据
+            Db::name('task_fault')->where(['task_id'=>$row->task_id,'fault_id'=>['not in',$params['fault_id']]])->delete();
             Db::commit();
         } catch (ValidateException|PDOException|Exception $e) {
             Db::rollback();
@@ -158,5 +163,6 @@ class Task extends Backend
         $this->success();
     }
 
+    //删除的时候,同步删除好几个表
 
 }

+ 17 - 2
application/admin/model/teacher/Exams.php

@@ -26,7 +26,7 @@ class Exams extends Model
 
     // 追加属性
     protected $append = [
-
+        'sim_type_text'
     ];
 
     protected static function init()
@@ -49,7 +49,22 @@ class Exams extends Model
         });
     }
 
-    
+    public function getSimTypeTextAttr($value, $data)
+    {
+        $sim_type_text = '';
+        if($data['sim_type']=='0001'){
+            $sim_type_text = 'FZD04B型侦毒器';
+        }else if ($data['sim_type']=='0002'){
+            $sim_type_text = 'FZB006型毒剂报警器';
+        }else if ($data['sim_type']=='0003'){
+            $sim_type_text = '防化兵用毒剂报警器';
+        }
+        return $sim_type_text;
+    }
+
+    public function collection() {
+        return $this->belongsTo('Collection', 'exam_collection_id');
+    }
 
 
 

+ 2 - 1
application/admin/view/index/login.html

@@ -5,7 +5,8 @@
     <style>
         body{
             background-image: url(/assets/img/login-background.jpg);
-            background-size: 100%;
+            /*background-size: 100%;*/
+            background-position-y:90%
         }
         .container {
             background-color: #ffffff;

+ 35 - 12
application/admin/view/student/collection/examing.html

@@ -106,6 +106,29 @@
         <div class="box box-primary">
             <div class="panel-body">
                     <div class="panel-heading">
+                        {:__('基本信息')}
+                    </div>
+                    <div class="box-body box-profile">
+                        <div class="row">
+                            <div class="form-group col-sm-6">
+                                <label class="control-label">{:__('考试名称')}:</label>
+                                <input type="text" class="form-control" value="{$row.exam_collection_name|htmlentities}" readonly/>
+                            </div>
+                            <div class="form-group col-sm-6">
+                                <label class="control-label">{:__('考试时长')}:</label>
+                                <input type="text" class="form-control"  value="{$row.limit_duration|htmlentities}" readonly/>
+                            </div>
+                            <div class="form-group col-sm-6">
+                                <label class="control-label">{:__('模拟器类型')}:</label>
+                                <input type="text" class="form-control" value="{$row.sim_type_text|htmlentities}" readonly/>
+                            </div>
+                            <div class="form-group col-sm-6">
+                                <label class="control-label">{:__('学员座号')}:</label>
+                                <input type="text" class="form-control"  value="{$row.seat_id|htmlentities}" readonly/>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="panel-heading">
                         <div class="readme">正在考试中,考试时间 {$row.limit_duration} 分钟</div>
                         <div class="djs">距离考试结束还有 <span id="timer"></span> </div>
                     </div>
@@ -113,7 +136,7 @@
                         <form id="update-form" role="form" data-toggle="validator" method="POST" action="">
                         <div class="col-xs-12 col-sm-12">
                             <div class="form-group">
-                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('更换件列表')}:</label>
+                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3">{:__('更换件列表')}:</label>
                                 <div class="col-xs-9 col-sm-9">
                                     <dl class="fieldlist" data-name="row[other_replace]" data-template="other_suppliertpl">
                                         <dd>
@@ -123,7 +146,7 @@
                                         <dd>
                                             <a href="javascript:;" class="btn btn-sm btn-info btn-append"><i class="fa fa-plus"></i> 追加</a>
                                         </dd>
-                                        <textarea name="row[other_replace]" class="form-control hide other_replace" cols="30" rows="5" data-rule="required">{$row.other_replace}</textarea>
+                                        <textarea name="row[other_replace]" class="form-control hide other_replace" cols="30" rows="5">{$row.other_replace}</textarea>
                                     </dl>
                                     <!--定义模板,模板语法使用Art-Template模板语法-->
                                     <script type="text/html" id="other_suppliertpl">
@@ -148,7 +171,7 @@
                         </div>
                         <div class="col-xs-12 col-sm-12">
                             <div class="form-group">
-                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('维修报告列表')}:</label>
+                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3">{:__('维修报告列表')}:</label>
                                 <div class="col-xs-9 col-sm-9">
                                     <dl class="fieldlist" data-name="row[other_report]" data-template="other_suppliertpl1">
                                         <dd>
@@ -160,7 +183,7 @@
                                         <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" cols="30" rows="5" data-rule="required">{$row.other_report}</textarea>
+                                        <textarea name="row[other_report]" class="form-control hide" cols="30" rows="5">{$row.other_report}</textarea>
                                     </dl>
                                     <!--定义模板,模板语法使用Art-Template模板语法-->
                                     <script type="text/html" id="other_suppliertpl1">
@@ -192,14 +215,14 @@
                                 </div>
                             </div>
                         </div>
-                        <div class="col-xs-12 col-sm-12">
-                            <div class="form-group">
-                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>
-                                <div class="col-xs-9 col-sm-9">
-                                    <textarea class="form-control" data-rule="required" name="row[other_jielun]" style="width: 91%"></textarea>
-                                </div>
-                            </div>
-                        </div>
+<!--                        <div class="col-xs-12 col-sm-12">-->
+<!--                            <div class="form-group">-->
+<!--                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>-->
+<!--                                <div class="col-xs-9 col-sm-9">-->
+<!--                                    <textarea class="form-control" data-rule="required" name="row[other_jielun]" style="width: 91%"></textarea>-->
+<!--                                </div>-->
+<!--                            </div>-->
+<!--                        </div>-->
                         <div class="form-group" style="text-align: center">
                             <button type="submit" class="btn btn-info" style="text-align: center;width: 10%;margin-top: 5%">{:__('交卷')}</button>
                         </div>

+ 6 - 6
application/admin/view/student/exam/view.html

@@ -116,12 +116,12 @@
                         <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>
                     </tr>
-                    <tr>
-                        <td>5</td>
-                        <td>修复结论错扣2分</td>
-                        <td>{$row.jielun_score|htmlentities}</td>
-                        <td>{if $row.jielun_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                    </tr>
+<!--                    <tr>-->
+<!--                        <td>5</td>-->
+<!--                        <td>修复结论错扣2分</td>-->
+<!--                        <td>{$row.jielun_score|htmlentities}</td>-->
+<!--                        <td>{if $row.jielun_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>-->
+<!--                    </tr>-->
                     <tr>
                         <td colspan="4" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
                     </tr>

+ 8 - 8
application/admin/view/student/exercise/examing.html

@@ -190,14 +190,14 @@
                             </div>
                         </div>
 
-                        <div class="col-xs-12 col-sm-12">
-                            <div class="form-group">
-                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>
-                                <div class="col-xs-9 col-sm-9">
-                                    <textarea class="form-control" data-rule="required" name="row[jielun]" style="width: 91%"></textarea>
-                                </div>
-                            </div>
-                        </div>
+<!--                        <div class="col-xs-12 col-sm-12">-->
+<!--                            <div class="form-group">-->
+<!--                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>-->
+<!--                                <div class="col-xs-9 col-sm-9">-->
+<!--                                    <textarea class="form-control" data-rule="required" name="row[jielun]" style="width: 91%"></textarea>-->
+<!--                                </div>-->
+<!--                            </div>-->
+<!--                        </div>-->
                     </div>
                     <div class="form-group" style="text-align: center;">
                         <button type="submit" class="btn btn-info" style="text-align: center;width: 10%">{:__('交卷')}</button>

+ 8 - 8
application/admin/view/student/practice/examing.html

@@ -190,14 +190,14 @@
                             </div>
                         </div>
 
-                        <div class="col-xs-12 col-sm-12">
-                            <div class="form-group">
-                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>
-                                <div class="col-xs-9 col-sm-9">
-                                    <textarea class="form-control" data-rule="required" name="row[jielun]" style="width: 91%"></textarea>
-                                </div>
-                            </div>
-                        </div>
+<!--                        <div class="col-xs-12 col-sm-12">-->
+<!--                            <div class="form-group">-->
+<!--                                <label  style=" width: 10%;" class="control-label col-xs-3 col-sm-3 addRedStar">{:__('修复结论')}:</label>-->
+<!--                                <div class="col-xs-9 col-sm-9">-->
+<!--                                    <textarea class="form-control" data-rule="required" name="row[jielun]" style="width: 91%"></textarea>-->
+<!--                                </div>-->
+<!--                            </div>-->
+<!--                        </div>-->
                     </div>
                     <div class="form-group" style="text-align: center;">
                         <button type="submit" class="btn btn-info" style="text-align: center;width: 10%">{:__('交卷')}</button>

+ 37 - 16
application/admin/view/teacher/collection/add.html

@@ -6,7 +6,7 @@
         <input class="form-control" name="row[create_by]" type="hidden" value="{$auth->nickname}">
         <input class="form-control depart_ids" name="row[depart_ids]" type="hidden" value="">
         <input class="form-control question_ids" name="row[question_ids]" type="hidden" value="0">
-
+        <input class="form-control task_id" name="row[task_id]" type="hidden" value="0">
         <input class="form-control depart_ids" name="row[depart_ids]" type="hidden" value="0">
 
         <div class="form-group col-sm-6">
@@ -26,18 +26,18 @@
                 </select>
             </div>
         </div>
-        <div class="form-group col-sm-6">
-            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Start_time')}:</label>
-            <div class="col-xs-12 col-sm-7">
-                <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[start_time]" type="text" value="">
-            </div>
-        </div>
-        <div class="form-group col-sm-6">
-            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('End_time')}:</label>
-            <div class="col-xs-12 col-sm-7">
-                <input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[end_time]" type="text" value="">
-            </div>
-        </div>
+<!--        <div class="form-group col-sm-6">-->
+<!--            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Start_time')}:</label>-->
+<!--            <div class="col-xs-12 col-sm-7">-->
+<!--                <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[start_time]" type="text" value="">-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="form-group col-sm-6">-->
+<!--            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('End_time')}:</label>-->
+<!--            <div class="col-xs-12 col-sm-7">-->
+<!--                <input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[end_time]" type="text" value="">-->
+<!--            </div>-->
+<!--        </div>-->
 
         <div class="form-group col-sm-6">
             <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Limit_duration')}:</label>
@@ -59,13 +59,34 @@
                     {/foreach}
                 </select>
             </div>
-            <button class="btn btn-info btn-sm" style="display: none">自选考题编辑</button>
-            <button class="btn btn-info btn-task" style="display: none">自选任务编辑</button>
+            <div class="btn btn-info btn-sm" style="display: none">自选考题编辑</div>
+            <div class="btn btn-info btn-task" style="display: none">自选任务编辑</div>
+        </div>
+
+        <div class="form-group col-sm-6 tasks" style="display:none;">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('任务名称')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <input id="c-task_name" readonly class="form-control" name="row[task_name]" type="text">
+            </div>
+        </div>
+
+        <div class="form-group col-sm-6 questions" style="display:none;">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('故障名称')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <input id="c-question_name" readonly  class="form-control" name="row[question_name]" type="text">
+            </div>
         </div>
 
     </div>
     <div class="panel panel-default panel-intro">
         <div class="panel-body">
+            <div class="tableTitle success" style="font-size: 16px;margin: 10px 0">统计情况</div>
+            <div class="panel-success">
+                <div>本次考试区队数量:<span class="qudui_total">0</span>‌</div>
+                <div>计划参加考试学员数量:<span class="xueyuan_total">0</span></div>
+                <div>每批次考试学员数量:<span>0</span></div>
+                <div>计划考试批次:<span>0</span> </div>
+            </div>
             <div id="myTabContent" class="tab-content">
                 <div class="tab-pane fade active in" id="one">
                     <div class="widget-body no-padding">
@@ -79,8 +100,8 @@
                         </table>
                     </div>
                 </div>
-
             </div>
+
         </div>
     </div>
 

+ 40 - 15
application/admin/view/teacher/collection/edit.html

@@ -1,7 +1,8 @@
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     <div class="row">
-        <input class="form-control question_ids" name="row[question_ids]" type="hidden" value="{$row.question_ids|htmlentities}">
         <input class="form-control depart_ids" name="row[depart_ids]" type="hidden" value="{$row.depart_ids|htmlentities}">
+        <input class="form-control question_ids" name="row[question_ids]" type="hidden" value="{$row.question_ids|htmlentities}">
+        <input class="form-control task_id" name="row[task_id]" type="hidden" value="{$row.task_id|htmlentities}">
         <div class="form-group col-sm-6">
             <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Exam_collection_name')}:</label>
             <div class="col-xs-12 col-sm-7">
@@ -19,18 +20,18 @@
                 </select>
             </div>
         </div>
-        <div class="form-group col-sm-6">
-            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Start_time')}:</label>
-            <div class="col-xs-12 col-sm-7">
-                <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[start_time]" type="text" value="{$row.start_time|htmlentities}">
-            </div>
-        </div>
-        <div class="form-group col-sm-6">
-            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('End_time')}:</label>
-            <div class="col-xs-12 col-sm-7">
-                <input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[end_time]" type="text" value="{$row.end_time|htmlentities}">
-            </div>
-        </div>
+<!--        <div class="form-group col-sm-6">-->
+<!--            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Start_time')}:</label>-->
+<!--            <div class="col-xs-12 col-sm-7">-->
+<!--                <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[start_time]" type="text" value="{$row.start_time|htmlentities}">-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="form-group col-sm-6">-->
+<!--            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('End_time')}:</label>-->
+<!--            <div class="col-xs-12 col-sm-7">-->
+<!--                <input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[end_time]" type="text" value="{$row.end_time|htmlentities}">-->
+<!--            </div>-->
+<!--        </div>-->
 
         <div class="form-group col-sm-6">
             <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Limit_duration')}:</label>
@@ -52,12 +53,36 @@
                     {/foreach}
                 </select>
             </div>
-            <div class="btn btn-info btn-sm" {if $row.question_setting_method neq 2}style="display: none"{/if}>自选考题编辑</div>
-            <div class="btn btn-info btn-task" {if $row.question_setting_method neq 3}style="display: none"{/if}>自选任务编辑</div>
+            <div class="btn btn-info btn-sm" {if $row.question_setting_method neq 2}style="display: none"{/if} >自选考题编辑</div>
+            <div class="btn btn-info btn-task" {if $row.question_setting_method neq 3}style="display: none"{/if} >自选任务编辑</div>
+        </div>
+
+        <div class="form-group col-sm-6 questions" {if $row.question_setting_method neq 2}style="display: none"{/if}>
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('故障名称')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <input id="c-question_name" readonly  class="form-control" name="row[question_name]" type="text" value="{$row.question_name|htmlentities}">
+            </div>
         </div>
+
+        <div class="form-group col-sm-6 tasks" {if $row.question_setting_method neq 3}style="display:none;" {/if}>
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('任务名称')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <input id="c-task_name" readonly class="form-control" name="row[task_name]" type="text"  value="{$row.task_name|htmlentities}">
+            </div>
+        </div>
+
+
+
     </div>
     <div class="panel panel-default panel-intro">
         <div class="panel-body">
+            <div class="tableTitle success" style="font-size: 16px;margin: 10px 0">统计情况</div>
+            <div class="panel-success">
+                <div>本次考试区队数量:<span class="qudui_total">0</span>‌</div>
+                <div>计划参加考试学员数量:<span class="xueyuan_total">0</span></div>
+                <div>每批次考试学员数量:<span>0</span></div>
+                <div>计划考试批次:<span>0</span> </div>
+            </div>
             <div id="myTabContent" class="tab-content">
                 <div class="tab-pane fade active in" id="one">
                     <div class="widget-body no-padding">

+ 3 - 3
application/admin/view/teacher/exams/edit.html

@@ -93,9 +93,9 @@
                     <tr>
                         <td>排除方法少写或错写1条扣1分</td><td><input type="text" name="row[fangfa_score]" value="{$row.fangfa_score|htmlentities}"></td>
                     </tr>
-                    <tr>
-                        <td>修复结论错扣2分</td><td><input type="text" name="row[jielun_score]" value="{$row.jielun_score|htmlentities}"></td>
-                    </tr>
+<!--                    <tr>-->
+<!--                        <td>修复结论错扣2分</td><td><input type="text" name="row[jielun_score]" value="{$row.jielun_score|htmlentities}"></td>-->
+<!--                    </tr>-->
                     <tr>
                         <td colspan="2">三.维修时间(10分)</td>
                     </tr>

+ 49 - 0
application/admin/view/teacher/exams/index.html

@@ -23,6 +23,55 @@
                 </div>
             </div>
 
+
         </div>
+        <div class="tableTitle success" style="font-size: 16px;margin: 10px 0">成绩分析</div>
+        <table style="width: 100%" class="table table-striped table-bordered table-hover table-nowrap panel-success">
+            <tbody>
+            <tr class="success">
+                <td>平均成绩</td>
+                <td>111</td>
+                <td>最高成绩</td>
+                <td>222</td>
+                <td>最低成绩</td>
+                <td>3333</td>
+            </tr>
+            </tbody>
+        </table>
+
+        <div class="tableTitle success" style="font-size: 16px;margin: 10px 0">错误率统计</div>
+        <table style="width: 100%" class="table table-striped table-bordered table-hover table-nowrap panel-success">
+            <tbody>
+            <tr class="success" style="text-align: center">
+                <td colspan="2">模拟器A</td>
+                <td colspan="2">模拟器B</td>
+                <td colspan="2">模拟器C</td>
+            </tr>
+            <tr class="success">
+                <td>故障名称</td>
+                <td>错误率</td>
+                <td>故障名称</td>
+                <td>错误率</td>
+                <td>故障名称</td>
+                <td>错误率</td>
+            </tr>
+            <tr class="success">
+                <td>111</td>
+                <td>111</td>
+                <td>222</td>
+                <td>222</td>
+                <td>333</td>
+                <td>333</td>
+            </tr>
+            <tr class="success">
+                <td>111</td>
+                <td>111</td>
+                <td>222</td>
+                <td>222</td>
+                <td>333</td>
+                <td>333</td>
+            </tr>
+            </tbody>
+        </table>
     </div>
 </div>

+ 6 - 6
application/admin/view/teacher/exams/view.html

@@ -116,12 +116,12 @@
                         <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>
                     </tr>
-                    <tr>
-                        <td>5</td>
-                        <td>修复结论错扣2分</td>
-                        <td>{$row.jielun_score|htmlentities}</td>
-                        <td>{if $row.jielun_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>
-                    </tr>
+<!--                    <tr>-->
+<!--                        <td>5</td>-->
+<!--                        <td>修复结论错扣2分</td>-->
+<!--                        <td>{$row.jielun_score|htmlentities}</td>-->
+<!--                        <td>{if $row.jielun_score eq 0 }<span class="text-success">已排除</span> {else} <span class="text-danger">未排除</span>{/if}</td>-->
+<!--                    </tr>-->
                     <tr>
                         <td colspan="4" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
                     </tr>

+ 5 - 2
application/admin/view/teacher/task/add.html

@@ -60,10 +60,13 @@
     </div>
 
     <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="" data-rule="required">
+    <input class="form-control fault_names" name="row[fault_name]" type="hidden" value="" data-rule="required">
+
 
     <div class="col-lg-12" style="margin: 20px 10px 0 10px">
         <div class="tab-content">
             <div class="tab-pane tab_log1" style="display: block">
+                <span class="text-danger">各模拟器类型的故障有且只允许选择3个</span>
                 <table class="new_table">
                     <thead>
                         <tr style="height: 3.5rem">
@@ -71,8 +74,8 @@
                             <td style="width:30%">故障现象</td>
                             <td style="width:30%">故障部位</td>
                             <td style="width:15%">
-                                <a class="btn-xs btn-success btnselectall">选中全部</a>
-                                <a class="btn-xs btn-primary cancelselectall">取消选择</a>
+<!--                                <a class="btn-xs btn-success btnselectall">选中全部</a>-->
+<!--                                <a class="btn-xs btn-primary cancelselectall">取消选择</a>-->
                             </td>
                         </tr>
                     </thead>

+ 29 - 26
application/admin/view/teacher/task/edit.html

@@ -56,10 +56,12 @@
         </div>
     </div>
     <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="{$row.fault_id|htmlentities}" data-rule="required">
+    <input class="form-control fault_names" name="row[fault_name]" type="hidden" value="{$row.fault_name|htmlentities}" data-rule="required">
 
     <div class="col-lg-12" style="margin: 20px 10px 0 10px">
         <div class="tab-content">
             <div class="tab-pane tab_log1" style="display: block">
+                <span class="text-danger">各模拟器类型的故障有且只允许选择3个</span>
                 <table class="new_table">
                     <thead>
                     <tr style="height: 3.5rem">
@@ -67,9 +69,8 @@
                         <td style="width:30%">故障现象</td>
                         <td style="width:30%">故障部位</td>
                         <td style="width:15%">
-                            <!--                                <input name="btSelectAll" type="checkbox" class="btAll">-->
-                            <a class="btn-xs btn-success btnselectall">选中全部</a>
-                            <a class="btn-xs btn-primary cancelselectall">取消选择</a>
+<!--                            <a class="btn-xs btn-success btnselectall">选中全部</a>-->
+<!--                            <a class="btn-xs btn-primary cancelselectall">取消选择</a>-->
                         </td>
                     </tr>
                     </thead>
@@ -88,19 +89,20 @@
                                 }
                                 foreach($vo['children'] as $k=>$v){
                                     $id = $v['fault_id'];
+                                    $name = $v['name'];
                                     if($k>0){
                                         echo '</tr><tr><td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
                                         }else{
-                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
                                         }
                                     }else{
                                         echo '<td>'.$v['name'].'</td>';
                                         if(in_array($id,$fault_id_arr)){
-                                        echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                        echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
                                         }else{
-                                        echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                        echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
                                         }
                                     }
                                 }
@@ -109,30 +111,31 @@
                         }else if($row['sim_type']=='0002'){
                             foreach($row['selectData'] as $key=>$vo){
                                 if($key == 0){
-                                echo '<tr><td rowspan="15">FZB006型毒剂报警器</td>';
+                                    echo '<tr><td rowspan="15">FZB006型毒剂报警器</td>';
                                 }
                                 if($key < 5){
-                                echo '<td rowspan="2">'.$vo['name'].'</td>';
+                                    echo '<td rowspan="2">'.$vo['name'].'</td>';
                                 }else{
-                                echo '<td rowspan="1">'.$vo['name'].'</td>';
+                                    echo '<td rowspan="1">'.$vo['name'].'</td>';
                                 }
                                 foreach($vo['children'] as $k=>$v){
-                                $id = $v['fault_id'];
-                                if($k>0){
-                                echo '</tr><tr><td>'.$v['name'].'</td>';
-                                if(in_array($id,$fault_id_arr)){
-                                echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
-                                }else{
-                                echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
-                                }
-                                }else{
-                                echo '<td>'.$v['name'].'</td>';
-                                if(in_array($id,$fault_id_arr)){
-                                echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
-                                }else{
-                                echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
-                                }
-                                }
+                                    $id = $v['fault_id'];
+                                    $name = $v['name'];
+                                    if($k>0){
+                                        echo '</tr><tr><td>'.$v['name'].'</td>';
+                                        if(in_array($id,$fault_id_arr)){
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                        }else{
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                        }
+                                    }else{
+                                        echo '<td>'.$v['name'].'</td>';
+                                        if(in_array($id,$fault_id_arr)){
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.' vname='.$name.'></td>';
+                                        }else{
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.' vname='.$name.'></td>';
+                                        }
+                                    }
                                 }
                                 echo "</tr>";
                             }

+ 81 - 39
public/assets/js/backend/teacher/collection.js

@@ -17,7 +17,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             });
 
             var table = $("#table");
-
             // 初始化表格
             table.bootstrapTable({
                 url: $.fn.bootstrapTable.defaults.extend.index_url,
@@ -31,14 +30,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'exam_collection_id', title: __('编号')},
+                        {field: 'exam_collection_id', title: __('编号'),operate: false},
                         {field: 'exam_collection_name', title: __('Exam_collection_name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
                         {field: 'question_setting_method', title: __('Question_setting_method'),searchList:{"1":"系统随机","2":"教师自选","3":"任务自选"},formatter: Table.api.formatter.simmethod},
-                        {field: 'exam_collection_type', title: __('Exam_collection_type'),operate: false,formatter: function (value, row, index) {
-                                return '考试';
-                            }
-                        },
                         {
                             field: 'exam_collection_state',searchList:{"2":"打开","3":"关闭"},
                             title: __('Exam_collection_state'),
@@ -49,8 +44,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
                         // {field: 'task_id', title: __('Task_id')},
                         {field: 'limit_duration', title: __('Limit_duration')},
-                        {field: 'start_time', title: __('Start_time'), operate:false, addclass:'datetimerange', autocomplete:false},
-                        {field: 'end_time', title: __('End_time'), operate:false, addclass:'datetimerange', autocomplete:false},
+                        // {field: 'start_time', title: __('Start_time'), operate:false, addclass:'datetimerange', autocomplete:false},
+                        // {field: 'end_time', title: __('End_time'), operate:false, addclass:'datetimerange', autocomplete:false},
                         // {field: 'create_user_id', title: __('Create_user_id')},
                         {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
                         {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime},
@@ -115,6 +110,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     url: "teacher/collection/start/ids/"+ids,
                     type: "post",
                 }, function () {
+                    Layer.alert('开始成功');
                     table.bootstrapTable('refresh');
                     Layer.close(index);
                 });
@@ -139,24 +135,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 fixedRightNumber: 1,
                 singleSelect : true,
                 searchFormVisible:true,
+                search: false,
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'task_id', title: __('Task_id')},
-                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
-                        // {field: 'task_type', title: __('Task_type'),operate: false,formatter: function (value, row, index) {
-                        //         return '教师创建';
-                        //     }
-                        // },
+                        {field: 'task_id', title: __('Task_id'),operate: false},
                         {field: 'name', title: __('任务名称'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {field: 'xianxiang_count', title: __('故障现象数量'),operate: false},
-                        {field: 'buwei_count', title: __('故障部位数量'),operate: false},
-                        {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
+                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
+                        {field: 'fault_name', title: __('故障内容'),formatter: Table.api.formatter.faultname},
                         {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime},
                         {
                             field: 'operate', title: __('Operate'), width: 85, events: {
                                 'click .btn-chooseone': function (e, value, row, index) {
-                                    Fast.api.close({url: row.url, multiple: multiple,task_id:row.task_id});
+                                    Fast.api.close({url: row.url, multiple: multiple,task_id:row.task_id,task_name:row.name});
                                 },
                             }, formatter: function () {
                                 return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
@@ -185,22 +176,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 sortName: 'fault_id',
                 fixedColumns: true,
                 fixedRightNumber: 1,
-                searchFormVisible:true,
+                searchFormVisible:false,
+                showExport:false,
+                search:false,
                 columns: [
                     [
                         {checkbox: true},
                         {field: 'sim_type', title: __('模拟器类型'),operate:false,searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
-                        {field: 'parent_name', title: __('故障现象'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {field: 'name', title: __('故障部位'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {
-                            field: 'operate', title: __('Operate'), width: 85, events: {
-                                'click .btn-chooseone': function (e, value, row, index) {
-                                    Fast.api.close({url: row.url, multiple: multiple,task_id:row.fault_id});
-                                },
-                            }, formatter: function () {
-                                return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
-                            }
-                        }
+                        // {field: 'parent_name', title: __('故障现象'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'name', title: __('故障内容'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        // {
+                        //     field: 'operate', title: __('Operate'), width: 85, events: {
+                        //         'click .btn-chooseone': function (e, value, row, index) {
+                        //             Fast.api.close({url: row.url, multiple: multiple,task_id:row.fault_id});
+                        //         },
+                        //     }, formatter: function () {
+                        //         return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
+                        //     }
+                        // }
                     ]
                 ]
             });
@@ -210,10 +203,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             // 选中多个
             $(document).on("click", ".btn-choose-multi", function () {
                 var ids = Table.api.selectedids(table);
-                Fast.api.close({url: '', multiple: multiple, task_id:ids});
+                if(ids.length!=3){
+                    Layer.alert('故障内容只允许选择3个');
+                    return false
+                }
+                var taskname = [];
+                var datas = $("#table").bootstrapTable('getSelections');
+                $.each(datas,function (index,val) {
+                    taskname.push(val.name)
+                })
+                Fast.api.close({url: '', multiple: multiple, task_id:ids,task_name:taskname});
             });
-        },
 
+            $("button[name=commonSearch]").css('display','none');
+        },
         add: function () {
             Controller.api.bindevent();
         },
@@ -223,6 +226,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         api: {
             bindevent: function () {
                 var rel_Ids = [];
+                var qudui_total = 0;
+                var xueyuan_total = 0;
                 Table.api.init({
                     extend: {
                         index_url: 'department/admin/departadmintotal' + location.search,
@@ -253,7 +258,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                             {field: 'department_name', title: __('区队名称'), operate: false,width: '400px', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                             {field: 'department_admin_count', title: __('全部人员数量'),operate: false},
                         ]
-                    ]
+                    ],
+                    onLoadSuccess: function(data) {
+                        $.each(data.rows, function(index, row) {
+                            if(Config.row_info != undefined && Config.row_info.depart_ids.indexOf(row.id)>-1){
+                                qudui_total = qudui_total+1;
+                                xueyuan_total = xueyuan_total+row.department_admin_count;
+                            }
+
+                        });
+                        $(".qudui_total").html(qudui_total);
+                        $(".xueyuan_total").html(xueyuan_total);
+                    },
                 });
 
                 // 为表格绑定事件
@@ -268,28 +284,44 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                             return value != row["id"];
                         });
                         rel_Ids = arr;
+                        qudui_total = qudui_total-1;
+                        xueyuan_total = xueyuan_total-row.department_admin_count;
                     }else if(rel_Ids.indexOf(row.id)>-1){
                         var index = rel_Ids.indexOf(row.id);
-                        if (index > -1) {
+                        if(index > -1) {
                             rel_Ids.splice(index, 1);
                         }
+                        qudui_total = qudui_total-1;
+                        xueyuan_total = xueyuan_total-row.department_admin_count;
                     }else{
+                        qudui_total = qudui_total+1;
+                        xueyuan_total = xueyuan_total+row.department_admin_count;
                         rel_Ids.push(row.id);
                     }
+                    console.log(qudui_total);
+                    console.log(xueyuan_total);
                     $(".depart_ids").val(rel_Ids.join());
+                    $(".qudui_total").html(qudui_total);
+                    $(".xueyuan_total").html(xueyuan_total);
                 });
 
+
+
                 $(document).on('change', '#c-question_setting_method', function () {
                     if($(this).val()==1){
                         $(".btn-sm,.btn-task").css('display','none');
                     }else if($(this).val()==2){
-                        $(".btn-sm").css('display','block');
+                        $(".btn-sm").show();
                         $(".btn-task").css('display','none');
                     }else if($(this).val()==3){
                         $(".btn-sm").css('display','none');
-                        $(".btn-task").css('display','block');
+                        $(".btn-task").show();
                     }
                     $(".question_ids").val(0);
+                    $(".task_id").val(0);
+                    $("#c-task_name").val('');
+                    $("#c-question_name").val('');
+                    $(".tasks,.questions").css('display','none')
                 });
                 //考题
                 $(document).on('click', '.btn-sm', function () {
@@ -305,9 +337,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         moveOut: false,
                         offset: ['40px'],
                         callback: function(value) {
-                            console.log(value)
                             if (value.task_id) {
+                                $(".questions").css('display','block')
                                 $(".question_ids").val(value.task_id);
+                                $("#c-question_name").val(value.task_name);
+                                $(".tasks").css('display','none')
+                                $(".task_id").val(0);
+                                $("#c-task_name").val('');
                             }
                         }
                     });
@@ -321,13 +357,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     }
                     var title = '选择任务';
                     parent.Fast.api.open(Fast.api.fixurl("teacher/collection/task/type/"+simtype), title, {
-                        area: ["85%", "85%"],
+                        area: ["65%", "70%"],
                         maxmin: true,
                         moveOut: false,
                         offset: ['40px'],
                         callback: function(value) {
                             if (value.task_id) {
-                                $(".question_ids").val(value.task_id);
+                                $(".tasks").css('display','block')
+                                $(".task_id").val(value.task_id);
+                                $("#c-task_name").val(value.task_name);
+                                $(".questions").css('display','none')
+                                $(".question_ids").val(0);
+                                $("#c-question_name").val('');
                             }
                         }
                     });
@@ -337,6 +378,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 //     console.log(ids);
                 //     $(".depart_ids").val(ids);
                 // });
+                $("button[name=commonSearch]").css('display','none');
                 $("input[name='btSelectAll']").css('display','none');
                 Form.api.bindevent($("form[role=form]"));
             }

+ 9 - 27
public/assets/js/backend/teacher/exams.js

@@ -30,11 +30,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'exam_id', title: __('Exam_id')},
-                        {field: 'exam_collection_name', title: __('考试名称')},
-                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
                         {field: 'user_username', title: __('学员学号')},
                         {field: 'user_nickname', title: __('学员姓名')},
+                        {field: 'exam_status', title: __('Exam_status'),searchList: {"0":"未登录","1":"已登录","2":"模拟器检查并下发故障中","3":"模拟器正常","4":"答题中","5":"已交卷","6":"计算成绩中","7":"获取到成绩报告","80":"教师标记缺考","81":"登录未开始答题","90":"模拟器异常结束"},formatter: Table.api.formatter.simexamstatus},
+                        {field: 'total_score', title: __('Total_score')},
+                        {field: 'exam_collection_name', title: __('考试名称')},
+                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
                         {
                             field: 'user_depart_id',
                             title: __('Department'),
@@ -44,27 +45,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
                             operate: Config.groupIds !=8 ? 'in':false,
                             formatter: Table.api.formatter.search
                         },
-                        // {
-                        //     field: 'dadmin',
-                        //     title: __('Department'),
-                        //     formatter: function (value, row, index) {
-                        //         if (value.length == 0)
-                        //             return '-' ;
-                        //         var department="";
-                        //         $.each(value,function(i,v){  //arrTmp数组数据
-                        //             if (v.department){
-                        //                 department+=department?','+v.department.name:v.department.name;
-                        //             }
-                        //         });
-                        //         return  Table.api.formatter.flag.call(this, department, row, index);
-                        //     }, operate:false
-                        // },
-                        // {field: 'exam_collection_id', title: __('Exam_collection_id')},
-                        // {field: 'user_id', title: __('User_id')},
-                        // {field: 'seat_id', title: __('Seat_id')},
-                        // {field: 'sim_id', title: __('Sim_id')},
-                        {field: 'exam_status', title: __('Exam_status'),searchList: {"0":"未登录","1":"已登录","2":"模拟器检查并下发故障中","3":"模拟器正常","4":"答题中","5":"已交卷","6":"计算成绩中","7":"获取到成绩报告","80":"教师标记缺考","81":"登录未开始答题","90":"模拟器异常结束"},formatter: Table.api.formatter.simexamstatus},
-                        {field: 'total_score', title: __('Total_score')},
                         // {field: 'deduction_total_score', title: __('Deduction_total_score')},
                         {field: 'starttime', title: __('Start_time'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
                         {field: 'endtime', title: __('End_time'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
@@ -222,9 +202,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
                             }
                         },
                         {field: 'total_score', title: __('考试成绩')},
-                        // {field: '', title: __('故障现象')},
-                        // {field: '', title: __('故障部位')},
-                        // {field: '', title: __('排除方法')},
+                        {field: '', title: __('出题题目')},
+                        {field: '', title: __('故障现象')},
+                        {field: '', title: __('可能原因')},
+                        {field: '', title: __('故障部位')},
+                        {field: '', title: __('排除方法')},
                         // {field: 'operate', title: __('Operate'), table: table1,
                         //     events: Table.api.events.operate,
                         //     // formatter: Table.api.formatter.operate

+ 62 - 66
public/assets/js/backend/teacher/task.js

@@ -30,17 +30,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'task_id', title: __('Task_id')},
-                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
-                        {field: 'task_type', title: __('Task_type'),operate: false,formatter: function (value, row, index) {
-                                return '教师创建';
-                            }
-                        },
+                        {field: 'task_id', title: __('Task_id'),operate: false,width:'80px'},
                         {field: 'name', title: __('Name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {field: 'xianxiang_count', title: __('故障现象数量')},
-                        {field: 'buwei_count', title: __('故障部位数量')},
-                        {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
-                        {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime},
+                        {field: 'sim_type', title: __('Sim_type'),searchList:{"0001":"FZD04B型侦毒器","0002":"FZB006型毒剂报警器","0003":"防化兵用毒剂报警器"},formatter: Table.api.formatter.simtype},
+                        // {field: 'task_type', title: __('Task_type'),operate: false,formatter: function (value, row, index) {
+                        //         return '教师创建';
+                        //     }
+                        // },
+                        // {field: 'xianxiang_count', title: __('故障现象数量')},
+                        {field: 'fault_name', title: __('故障内容'),formatter: Table.api.formatter.faultname},
+                        // {field: 'buwei_count', title: __('故障部位数量')},
+                        // {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
+                        // {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime,width:'120px'},
                         // {field: 'update_by', title: __('Update_by'), operate: 'LIKE'},
                         // {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                         // {field: 'remark', title: __('Remark'), operate: false, table: table, class: 'autocontent'},
@@ -90,8 +91,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         api: {
             bindevent: function () {
+                var rel_Ids = [];
+                var rel_Names = [];
+                if(Config.rel_Ids){
+                    $.each(Config.rel_Ids, function(index, value) {
+                        rel_Ids.push(value);
+                    });
+                    $.each(Config.rel_Names, function(index, value) {
+                        rel_Names.push(value);
+                    });
+                }
                 $('select[name="row[sim_type]"]').change(function () {
                     $(".fault_ids").val('');
+                    $(".fault_names").val('');
+                    rel_Ids = [];
+                    rel_Names = [];
                     console.log($(this).val());
                     console.log( $(this).find("option:selected").text())
                     var xinghao = $(this).find("option:selected").text();
@@ -120,10 +134,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             var ret1 = ret[i].children;
                                             if(j>0){
                                                 task_tr += '    </tr><tr><td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
                                             }else{
                                                 task_tr += '    <td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
                                             }
                                         }
                                         task_tr += '</tr>';
@@ -141,14 +155,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                             var ret1 = ret[i].children;
                                             if(j>0){
                                                 task_tr += '    </tr><tr><td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
                                             }else{
                                                 task_tr += '    <td>'+ret1[j].name+'</td>';
-                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'" vname="'+ret1[j].name+'"></td>';
                                             }
                                         }
                                     }else if(ret[0].sim_type == '0003'){
-
+                                        //003 暂缺
                                     }
                                 }
                                 $(".task_list").html(task_tr);
@@ -157,80 +171,62 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     });
                 });
 
-                var rel_Ids = [];
+
+                //只允许选择三个故障
                 $(document).on('click', "input[type='checkbox']", function () {
-                    // console.log($(this).val());
                     if ($(this).attr("checked")) {
-                        $(this).removeAttr("checked");
                         var index = rel_Ids.indexOf($(this).val());
                         if (index > -1) {
                             rel_Ids.splice(index, 1);
+                            rel_Names.splice(rel_Names.indexOf($(this).attr('vname')), 1);
                         }
                         $(".fault_ids").val(rel_Ids.join(','));
+                        $(".fault_names").val(rel_Names.join(','));
                     } else {
+                        if(rel_Ids.length>2){
+                            Layer.alert('故障内容只允许选择3个');
+                            return false
+                        }
                         $(this).attr("checked", "true");
                         rel_Ids.push($(this).val());
-                       $(".fault_ids").val(rel_Ids.join())
+                        $(".fault_ids").val(rel_Ids.join())
+                        rel_Names.push($(this).attr('vname'));
+                        $(".fault_names").val(rel_Names.join(','));
                    }
                 });
 
-
                 // 选中全部
-                $(document).on('click', ".btnselectall", function () {
-                    rel_Ids = [];
-                    $("input[name='checkbox']").each(function (){
-                        $(this).attr( "checked" , "true");
-                        // console.log(rel_Ids+'####')
-                        // if(!$.inArray($(this).val(),rel_Ids)){
-                        //     var index = rel_Ids.indexOf($(this).val());
-                        //     if (index > -1) {
-                        //         rel_Ids.splice(index, 1);
-                        //     }
-                        //     // $(".fault_ids").val(rel_Ids.join(','));
-                        //     // rel_Ids = arr;
-                        // }else{
-                        //     rel_Ids.push($(this).val());
-                        // }
-                        // //
-                        rel_Ids.push($(this).val());
-                        $(".fault_ids").val(rel_Ids);
-                    });
-                });
-                //取消选择
-                $(document).on('click', ".cancelselectall", function () {
-                    $("input[name='checkbox']").each(function (){
-                        var index = rel_Ids.indexOf($(this).val());
-                        if (index > -1) {
-                            rel_Ids.splice(index, 1);
-                        }
-                        $(".fault_ids").val(rel_Ids.join(','));
-                        $(this).removeAttr("checked");
-                    });
-                });
-
-                // $(".btnselectall").click(function () {
+                // $(document).on('click', ".btnselectall", function () {
+                //     rel_Ids = [];
                 //     $("input[name='checkbox']").each(function (){
-                //         console.log( $( this ).val());
-                //         // if ($( this ).attr( "checked" )) {
-                //         //     $(this).removeAttr( "checked" );
-                //         // } else {
-                //             $(this).attr( "checked" , "true" );
-                //             $(".fault_ids").val($(this).val()+','+$(".fault_ids").val());
+                //         $(this).attr( "checked" , "true");
+                //         // console.log(rel_Ids+'####')
+                //         // if(!$.inArray($(this).val(),rel_Ids)){
+                //         //     var index = rel_Ids.indexOf($(this).val());
+                //         //     if (index > -1) {
+                //         //         rel_Ids.splice(index, 1);
+                //         //     }
+                //         //     // $(".fault_ids").val(rel_Ids.join(','));
+                //         //     // rel_Ids = arr;
+                //         // }else{
+                //         //     rel_Ids.push($(this).val());
                 //         // }
+                //         // //
+                //         rel_Ids.push($(this).val());
+                //         $(".fault_ids").val(rel_Ids);
                 //     });
                 // });
                 // //取消选择
-                // $(".cancelselectall").click(function () {
+                // $(document).on('click', ".cancelselectall", function () {
                 //     $("input[name='checkbox']").each(function (){
-                //         console.log( $( this ).val());
-                //         if ($( this ).attr( "checked" )) {
-                //              $(this).removeAttr( "checked" );
-                //             $(".fault_ids").val('');
+                //         var index = rel_Ids.indexOf($(this).val());
+                //         if (index > -1) {
+                //             rel_Ids.splice(index, 1);
                 //         }
+                //         $(".fault_ids").val(rel_Ids.join(','));
+                //         $(this).removeAttr("checked");
                 //     });
                 // });
-
-
                 Form.api.bindevent($("form[role=form]"));
             }
         }

+ 31 - 0
public/assets/js/require-table.js

@@ -809,6 +809,37 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
                     this.custom = custom;
                     return Table.api.formatter.normal.call(this, value, row, index);
                 },
+                faultname:function(value, row, index){
+                    if (!value || value.trim() === '-') {
+                        // 当值为空或为 '-' 时,显示红色文本
+                        return `<span class="text-danger"></span>`;
+                    }
+                    // 生成随机渐变颜色
+                    function randomGradient() {
+                        var color1 = `#${Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0')}`;
+                        var color2 = `#${Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0')}`;
+                        return `linear-gradient(45deg, ${color1}, ${color2})`;
+                    }
+
+                    // 将逗号分隔的内容转换为带渐变背景的按钮
+                    var items = value.split(',').map(function (item) {
+                        var gradient = randomGradient();
+                        return `<span class="btn btn-xs m-1"
+                            style="
+                                display: inline-block;
+                                background: ${gradient};
+                                color: white;
+                                border: none;
+                                padding: 5px 10px;
+                                border-radius: 4px;
+                                white-space: nowrap;
+                                font-size: 12px;
+                            ">
+                            ${item.trim()}
+                        </span>`;
+                    });
+                    return items.join(' ');
+                },
                 collectonstate: function (value, row, index) {
                     var table = this.table;
                     var options = table ? table.bootstrapTable('getOptions') : {};