贾小兵 3 mesiacov pred
rodič
commit
aa2b6b84ad

+ 7 - 2
application/admin/controller/student/Collection.php

@@ -125,7 +125,8 @@ class Collection extends Backend
         if(!empty($info)){
             $this->exam_model->where('exam_id',$info['exam_id'])->update(['seat_id'=>$this->auth->seat_id]);
             $info['seat_id'] = $this->auth->seat_id;
-            $sim = Db::name('sim')->where('seat_id',$this->auth->seat_id)->find();
+//            $sim = Db::name('sim')->where('seat_id',$this->auth->seat_id)->find();
+            $sim = Db::name('sim')->where('sim_type',$info['sim_type'])->find();
             $sim_text = '';
             if(!empty($sim)){
                 if($sim['sim_state']==1){
@@ -225,7 +226,11 @@ class Collection extends Backend
                         $answer_right = 0;
                         if(!empty($t['sim_fault_question_value']) && !empty($t['sim_fault_answer_value'])){
                             if($t['sim_fault_question_value']!=$t['sim_fault_answer_value']){
-                                $answer_right=1;
+                                if($t['sim_fault_answer_value']!='00000000'){
+                                    $answer_right=1;
+                                }else{
+                                    $answer_right=2;
+                                }
                             }else{
                                 $answer_right=2;
                             }

+ 40 - 5
application/admin/controller/student/Exercise.php

@@ -2,6 +2,7 @@
 
 namespace app\admin\controller\student;
 
+use app\admin\model\Fault;
 use app\admin\model\Report;
 use app\common\controller\Backend;
 use app\common\model\Config as ConfigModel;
@@ -100,11 +101,6 @@ class Exercise extends Backend
         if(!$row){
             $this->error('未找到记录');
         }
-        $this->assignConfig('timer', 60*$this->model->where(['exam_collection_id'=>$row['exam_collection_id']])->value('limit_duration'));
-        $this->view->assign('row', $row);
-
-        $departmentdata = [];
-        $departmentdata = Report::where(['level'=>4,'is_replace'=>1])->select();
         if ($this->request->isPost()) {
             $params = $this->request->post('row/a');
             $row->end_time = date('Y-m-d H:i:s');
@@ -113,7 +109,46 @@ class Exercise extends Backend
             $row->save();
             $this->success('交卷成功','/ZQOtIMLKud.php/student/exercise/analysis/ids/'.$row['exam_id']);
         }
+
+//        if(empty($row->starttime)){
+//            $row->start_time = date('Y-m-d H:i:s');
+//            $row->starttime = time();
+//            $row->exam_status = 4;
+//            $row->save();
+//        }
+        $isloading =1;
+        if(empty($row->other_replace)){
+            $isloading = 0;
+            $row->other_replace = '[{"fault_id":"","request_status":"0"}]';
+        }
+
+        if(empty($row->other_report)){
+            $row->other_report = '[{"xx_id":"","yy_id":"","bw_id":"","pc_id":""}]';
+        }
+
+        $row->limit_duration = $this->model->where(['exam_collection_id'=>$row['exam_collection_id']])->value('limit_duration');
+        if(empty($row->starttime)){
+            $timer = 60*$row->limit_duration;
+        }else{
+            $timer = $row->limit_duration*60 - abs(time() - $row->starttime);
+        }
+
+
+        $departmentdata = [];
+        $departmentdata = Fault::where(['replace_part'=>1,'sim_type'=>$row->sim_type])->order('fault_id asc')->select();
+
+
         $this->view->assign('departmentdata', $departmentdata);
+        //故障现象
+        $xianxiang = Fault::where(['fault_type'=>1,'sim_type'=>$row->sim_type])->select();
+        $this->view->assign('xianxiang', $xianxiang);
+
+        $row->replace_list =Db::name('real_exam_comp_request')->where(['exam_id'=>$ids])->select();
+        $this->assignConfig('ids',$ids);
+        $this->assignConfig('timer',$timer);
+        $this->assignConfig('isloading',$isloading);
+
+        $this->view->assign('row', $row);
         return $this->view->fetch();
     }
 

+ 9 - 11
application/admin/controller/teacher/Exams.php

@@ -265,12 +265,6 @@ class Exams extends Backend
         //设置过滤方法
         $this->request->filter(['strip_tags', 'trim']);
         if (false === $this->request->isAjax()) {
-
-//            $examlist = $this->model->select();
-//            foreach ($examlist as $k => $v){
-//                $examlist[$k]['score'] = Db::name('real_exam_score')->where('exam_id',$v['exam_id'])->find();
-//            }
-//            $this->view->assign('examlist', $examlist);
             $this->assignConfig('ids', $ids);
             return $this->view->fetch();
         }
@@ -278,9 +272,10 @@ class Exams extends Backend
         if ($this->request->request('keyField')) {
             return $this->selectpage();
         }
+        $exam_ids = $this->model->where('exam_collection_id',$ids)->column('exam_id');
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
         $list = Db::name('real_exam_comp_request')->where('exam_collection_type',3)
-            ->where($where)
+            ->where($where)->where('exam_id','in',$exam_ids)
             ->order($sort, $order)
             ->paginate($limit);
         unset($v);
@@ -289,11 +284,12 @@ class Exams extends Backend
     }
 
 
-    public function examing()
+    public function examing($ids = null)
     {
         //设置过滤方法
         $this->request->filter(['strip_tags', 'trim']);
         if (false === $this->request->isAjax()) {
+            $this->assignConfig('ids', $ids);
             return $this->view->fetch();
         }
         //如果发送的来源是 Selectpage,则转发到 Selectpage
@@ -302,26 +298,28 @@ class Exams extends Backend
         }
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
         $list = $this->model
-            ->where($where)->where($this->whereExtend)->with($this->relationtTable)
+            ->where($where)->where('exam_collection_id',$ids)->where($this->whereExtend)->with($this->relationtTable)
             ->order($sort, $order)
             ->paginate($limit);
         $result = ['total' => $list->total(), 'rows' => $list->items()];
         return json($result);
     }
 
-    public function score()
+    public function score($ids = null)
     {
         //设置过滤方法
         $this->request->filter(['strip_tags', 'trim']);
         if (false === $this->request->isAjax()) {
+            $this->assignConfig('ids', $ids);
             return $this->view->fetch();
         }
         //如果发送的来源是 Selectpage,则转发到 Selectpage
         if ($this->request->request('keyField')) {
             return $this->selectpage();
         }
+        $exam_ids = $this->model->where('exam_collection_id',$ids)->column('exam_id');
         [$where, $sort, $order, $offset, $limit] = $this->buildparams();
-        $list = ExamsScore::where($where)
+        $list = ExamsScore::where($where)->where('exam_id','in',$exam_ids)
             ->order($sort, $order)
             ->paginate($limit);
         foreach ($list as $k => $v){

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

@@ -3,6 +3,7 @@
 namespace app\admin\model\teacher;
 
 use think\Model;
+use think\Db;
 use traits\model\SoftDelete;
 
 
@@ -26,7 +27,12 @@ class Exams extends Model
 
     // 追加属性
     protected $append = [
-        'sim_type_text'
+        'sim_type_text',
+        'fault_names',
+        'xianxiang_names',
+        'yuanyin_names',
+        'buwei_names',
+        'fangfa_names',
     ];
 
     protected static function init()
@@ -62,11 +68,49 @@ class Exams extends Model
         return $sim_type_text;
     }
 
+    public function getFaultNamesAttr($value, $data)
+    {
+        $fault_name = '';
+        $fault_ids = \app\admin\model\teacher\ExamsFault::where(['exam_id'=>$data['exam_id'],'flag'=>1])->column('fault_id');
+        $fault_name = Db::name('fault')->where('fault_id','in',$fault_ids)->column('name');
+        return !empty($fault_name)? implode(',',$fault_name):'';
+    }
+
+    //现象
+    public function getXianxiangNamesAttr($value, $data)
+    {
+        $xianxiang_name = '';
+        return $xianxiang_name;
+    }
+    //原因
+    public function getYuanyinNamesAttr($value, $data)
+    {
+        $yuanyin_name = '';
+        return $yuanyin_name;
+    }
+
+    //部位
+    public function getBuweiNamesAttr($value, $data)
+    {
+        $buwei_name = '';
+        return $buwei_name;
+    }
+
+    //方法
+    public function getFangfaNamesAttr($value, $data)
+    {
+        $fangfa_name = '';
+        return $fangfa_name;
+    }
+
+
     public function collection() {
         return $this->belongsTo('Collection', 'exam_collection_id');
     }
 
-
+    public function fault(){
+        return $this->hasMany('app\admin\model\teacher\ExamsFault','exam_id','exam_id');
+    }
 
 
 

+ 39 - 0
application/admin/model/teacher/ExamsFault.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace app\admin\model\teacher;
+
+use think\Model;
+
+
+class ExamsFault extends Model
+{
+
+
+
+
+    // 表名
+    protected $name = 'real_exam_fault';
+    
+    // 自动写入时间戳字段
+    protected $autoWriteTimestamp = 'int';
+
+    // 定义时间戳字段名
+    protected $createTime = 'createtime';
+    protected $updateTime = 'updatetime';
+    protected $deleteTime = '';
+
+    // 追加属性
+    protected $append = [
+
+    ];
+
+
+    
+
+
+
+
+
+
+
+}

+ 4 - 3
application/admin/view/student/collection/examing.html

@@ -125,10 +125,10 @@
                                     </dd>
                                     <textarea name="row[other_replace]" class="form-control hide other_replace" cols="30" rows="5">{$row.other_replace}</textarea>
                                 </dl>
-                                <!--定义模板,模板语法使用Art-Template模板语法-->
+                                <!--定义模板,模板语法使用Art-Template模板语法 <span class="btn btn-sm btn-success btn-replace" title="保存"><i class="fa fa-check"></i></span>-->
                                 <script type="text/html" id="other_suppliertpl">
                                     <dd class="form-inline">
-                                        <select class="form-control" name="unwin[<%=index%>][fault_id]" style="width: 550px;">
+                                        <select class="form-control" name="unwin[<%=index%>][fault_id]" style="width: 600px;">
                                             <option value="" >请选择</option>
                                             {foreach name="departmentdata" item="vo"}
                                             <option value="{$vo.fault_id}" <%if(row.fault_id =='{$vo.fault_id}'){%> selected <% }%> >{$vo.replace_name}</option>
@@ -136,7 +136,7 @@
                                         </select>
                                         <input type="text" class="form-control" readonly name="unwin[<%=index%>][request_status]" value="<%if(row["request_status"]==1){%>已申请<%}else if(row["request_status"]==2){ %>已送达<%}else if(row["request_status"]==3){%>驳回<%}else{%>未申请<%}%>" style="width: 430px;">
                                         <span class="btn btn-sm btn-danger btn-remove" title="移除"><i class="fa fa-times"></i></span>
-                                        <span class="btn btn-sm btn-success btn-replace" title="保存"><i class="fa fa-check"></i></span>
+
                                     </dd>
                                 </script>
                             </div>
@@ -202,6 +202,7 @@
                         </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>

+ 20 - 37
application/admin/view/student/exercise/examing.html

@@ -125,27 +125,19 @@
                                         <dd>
                                             <a href="javascript:;" class="btn btn-sm btn-info btn-append"><i class="fa fa-plus"></i> 追加</a>
                                         </dd>
-                                        <textarea name="row[other_supplier]" class="form-control hide" cols="30" rows="5" data-rule="required"></textarea>
+                                        <textarea name="row[other_supplier]" class="form-control hide other_replace" cols="30" rows="5" data-rule="required">{$row.other_replace}</textarea>
                                     </dl>
                                     <!--定义模板,模板语法使用Art-Template模板语法-->
                                     <script type="text/html" id="other_suppliertpl">
                                         <dd class="form-inline">
-<!--                                            <input type="text" name="unwin[<%=index%>][name]"-->
-<!--                                                   class="form-control" value="<%=row['name']%>" style="width: 450px;" >-->
-                                            <select class="form-control" name="unwin[<%=index%>][name]" style="width: 550px;">
+                                            <select class="form-control" name="unwin[<%=index%>][name]" style="width: 600px;">
                                                 {foreach name="departmentdata" item="vo"}
-                                                <option value="{$vo.report_id}" >{$vo.name}</option>
+                                                <option value="{$vo.fault_id}" >{$vo.name}</option>
                                                 {/foreach}
                                             </select>
-                                            <select class="form-control" name="unwin[<%=index%>][states]" style="width: 420px;">
-                                                <option value="0">未送</option>
-                                                <option value="0">已送</option>
-                                            </select>
-<!--                                            <input type="text" name="unwin[<%=index%>][price]"-->
-<!--                                                   style="width: 300px;"-->
-<!--                                                   class="form-control" value="<%=row['price']%>" >-->
+                                            <input type="text" class="form-control" readonly name="unwin[<%=index%>][request_status]" value="<%if(row["request_status"]==1){%>已申请<%}else if(row["request_status"]==2){ %>已送达<%}else if(row["request_status"]==3){%>驳回<%}else{%>未申请<%}%>" style="width: 430px;">
                                             <span class="btn btn-sm btn-danger btn-remove" title="移除"><i class="fa fa-times"></i></span>
-                                            <span class="btn btn-sm btn-success btn-save" title="保存"><i class="fa fa-check"></i></span>
+<!--                                            <span class="btn btn-sm btn-success btn-save" title="保存"><i class="fa fa-check"></i></span>-->
                                         </dd>
                                     </script>
                                 </div>
@@ -154,9 +146,9 @@
 
                         <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 addRedStar">{:__('维修报告列表')}:</label>
                                 <div class="col-xs-9 col-sm-9">
-                                    <dl class="fieldlist" data-name="row[other_supplier1]" data-template="other_suppliertpl1">
+                                    <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>
@@ -167,40 +159,31 @@
                                         <dd>
                                             <a href="javascript:;" class="btn btn-sm btn-info btn-append"><i class="fa fa-plus"></i> 追加</a>
                                         </dd>
-                                        <textarea name="row[other_supplier1]" class="form-control hide" cols="30" rows="5" data-rule="required"></textarea>
+                                        <textarea name="row[other_report]" class="form-control hide other_report" cols="30" rows="5" data-rule="required">{$row.other_report}</textarea>
                                     </dl>
                                     <!--定义模板,模板语法使用Art-Template模板语法-->
                                     <script type="text/html" id="other_suppliertpl1">
                                         <dd class="form-inline">
-                                            <input type="text" name="unwin[<%=index%>][name]"
-                                                   class="form-control" value="<%=row['name']%>" style="width: 250px;" >
-                                            <input type="text" name="unwin[<%=index%>][price]"
-                                                   style="width: 250px;"
-                                                   class="form-control" value="<%=row['price']%>" >
-                                            <input type="text" name="unwin[<%=index%>][price]"
-                                                   style="width: 250px;"
-                                                   class="form-control" value="<%=row['price']%>" >
-                                            <input type="text" name="unwin[<%=index%>][price]"
-                                                   style="width: 250px;"
-                                                   class="form-control" value="<%=row['price']%>" >
+                                            <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="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>
+                        <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>
             </div>

+ 4 - 3
application/admin/view/student/practice/examing.html

@@ -125,10 +125,10 @@
                                         </dd>
                                         <textarea name="row[other_replace]" class="form-control hide other_replace" cols="30" rows="5">{$row.other_replace}</textarea>
                                     </dl>
-                                    <!--定义模板,模板语法使用Art-Template模板语法-->
+                                    <!--定义模板,模板语法使用Art-Template模板语法 <span class="btn btn-sm btn-success btn-replace" title="保存"><i class="fa fa-check"></i></span>-->
                                     <script type="text/html" id="other_suppliertpl">
                                         <dd class="form-inline">
-                                            <select class="form-control" name="unwin[<%=index%>][fault_id]" style="width: 550px;">
+                                            <select class="form-control" name="unwin[<%=index%>][fault_id]" style="width: 600px;">
                                                 <option value="" >请选择</option>
                                                 {foreach name="departmentdata" item="vo"}
                                                 <option value="{$vo.fault_id}" <%if(row.fault_id =='{$vo.fault_id}'){%> selected <% }%> >{$vo.replace_name}</option>
@@ -136,7 +136,7 @@
                                             </select>
                                             <input type="text" class="form-control" readonly name="unwin[<%=index%>][request_status]" value="<%if(row["request_status"]==1){%>已申请<%}else if(row["request_status"]==2){ %>已送达<%}else if(row["request_status"]==3){%>驳回<%}else{%>未申请<%}%>" style="width: 430px;">
                                             <span class="btn btn-sm btn-danger btn-remove" title="移除"><i class="fa fa-times"></i></span>
-                                            <span class="btn btn-sm btn-success btn-replace" title="保存"><i class="fa fa-check"></i></span>
+
                                         </dd>
                                     </script>
                                 </div>
@@ -179,6 +179,7 @@
                             </div>
                         </div>
                         <div class="form-group" style="text-align: center">
+                            <button type="button" class="btn btn-success btn-save" 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>

+ 1 - 17
application/admin/view/teacher/collection/edit.html

@@ -20,24 +20,12 @@
                 </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">{:__('Limit_duration')}:</label>
             <div class="col-xs-12 col-sm-7">
                 <div class="input-group input-groupp-sm">
-                    <input id="c-limit_duration" class="form-control" {if $row.starttime>0} readonly {/if} type="number" name="row[limit_duration]" type="number" value="{$row.limit_duration|htmlentities}">
+                    <input id="c-limit_duration" class="form-control" min="0" {if $row.starttime>0} readonly {/if} type="number" name="row[limit_duration]" type="number" value="{$row.limit_duration|htmlentities}">
                     <span class="input-group-addon">分钟</span>
                 </div>
             </div>
@@ -72,8 +60,6 @@
             </div>
         </div>
 
-
-
     </div>
     <div class="panel panel-default panel-intro">
         <div class="panel-body">
@@ -81,8 +67,6 @@
             <div class="panel-success">
                 <div>本次考试区队数量:<span class="qudui_total">0</span><input type="hidden" name="row[qudui_count]" value="0" class="qudui_input" />‌</div>
                 <div>计划参加考试学员数量:<span class="xueyuan_total">0</span><input type="hidden" name="row[xueyuan_count]" value="0" class="xueyuan_input" /></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">

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

@@ -60,7 +60,6 @@
         </div>
 
 
-
     </div>
 
     <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="" data-rule="required">
@@ -77,10 +76,7 @@
                             <td style="width:25%">型号</td>
                             <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>-->
-                            </td>
+                            <td style="width:15%"></td>
                         </tr>
                     </thead>
                     <tbody class="task_list">

+ 35 - 2
application/admin/view/teacher/task/edit.html

@@ -71,8 +71,6 @@
                         <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>-->
                         </td>
                     </tr>
                     </thead>
@@ -141,6 +139,41 @@
                                 }
                                 echo "</tr>";
                             }
+                        }else if($row['sim_type']=='0003'){
+                            foreach($row['selectData'] as $key=>$vo){
+                                if($key == 0){
+                                    echo '<tr><td rowspan="15">防化兵用毒剂报警器</td>';
+                                }
+                                if($key < 4){
+                                    echo '<td rowspan="2">'.$vo['name'].'</td>';
+                                }else if($key==4){
+                                    echo '<td rowspan="3">'.$vo['name'].'</td>';
+                                }else if($key==5){
+                                    echo '<td rowspan="2">'.$vo['name'].'</td>';
+                                }else{
+                                    echo '<td rowspan="1">'.$vo['name'].'</td>';
+                                }
+                                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.' 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>";
+                            }
                         }
                     ?>
                     </tbody>

+ 7 - 10
public/assets/js/backend/student/collection.js

@@ -72,6 +72,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         into: function () {
             $(document).on('click', '.btn-startexam', function () {
+                // var index = Layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
+                var index =  Layer.load(0, {
+                    shade: [0.5,'#393D49'],
+                    // content: '考试加载中...', // 这里是加载的文字
+                });
+                $(this).removeClass('btn-info');
+                $(this).addClass('btn-primary');
                 if(Config.is_fault){
                     $.ajax({
                         url: Config.url_type+"/sim/real-exam/student/exam/start/"+Config.exam_id,
@@ -90,15 +97,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     window.location.href = '/ZQOtIMLKud.php/student/collection/examing/ids/'+Config.exam_id;
                 }
             });
-            // Controller.api.bindevent();
-            // Form.api.bindevent($("form[role=form]"), function(data, ret) {
-            //     if(ret.code==1){
-            //         Backend.api.addtabs( ret.url,'正在考试');
-            //     }
-            // });
         },
         examing: function () {
-
             $(document).ready(function() {
                 var countdownTime = Config.timer; // 倒计时时间,单位为秒
                 var display = $('#timer');
@@ -164,9 +164,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 Form.events.selectpage(obj);
 
             });
-            // Form.api.bindevent($("form[role=form]"), function (data, ret) {
-            //     Layer.alert(data.data);
-            // });
 
             Form.api.bindevent($("form[role=form]"), function(data, ret) {
                 if(ret.code==1){

+ 3 - 31
public/assets/js/backend/student/exam.js

@@ -27,8 +27,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         // {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: 'user_username', title: __('学员学号'),operate: false},
+                        {field: 'user_nickname', title: __('学员姓名'),operate: false},
                         {
                             field: 'user_depart_id',
                             title: __('Department'),
@@ -38,38 +38,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                             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},
-                        // {field: 'login_time', title: __('Login_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        // {field: 'logout_time', title: __('Logout_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        // {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
-                        // {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        // {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: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+
                     ]
                 ]
             });

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

@@ -28,6 +28,34 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     }
                 }, 1000);
             });
+
+            $(document).on('click', '.btn-replace', function () {
+                console.log($(".other_replace").val());
+                $.ajax({
+                    url: "student/collection/replace/ids/"+Config.ids,
+                    type: 'post',
+                    data: {
+                        other_replace: $(".other_replace").val(),
+                        other_report: $(".other_report").val(),
+                    },
+                    success: function (data) {
+                        if(data.code==1){
+                            window.location.reload();
+                        }
+                        if(data.code==0){
+                            Layer.alert(data.msg);
+                        }
+                    }
+                });
+            });
+
+
+            $(document).on("fa.event.appendfieldlist", "#second-fieldlist .btn-append", function (e, obj) {
+                //绑定动态下拉组件
+                Form.events.selectpage(obj);
+
+            });
+
             Form.api.bindevent($("form[role=form]"), function(data, ret) {
                 if(ret.code==1){
                     Backend.api.addtabs( ret.url,'得分分析');

+ 63 - 40
public/assets/js/backend/teacher/collection.js

@@ -177,6 +177,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 url: $.fn.bootstrapTable.defaults.extend.index_url,
                 pk: 'fault_id',
                 sortName: 'fault_id',
+                sortOrder:'asc',
                 fixedColumns: true,
                 fixedRightNumber: 1,
                 searchFormVisible:false,
@@ -275,51 +276,77 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         $(".qudui_input").val(qudui_total);
                         $(".xueyuan_input").val(xueyuan_total);
                     },
-                });
-
-                // 为表格绑定事件
-                Table.api.bindevent(table);
-
+                    // 点击每一个单选框时触发的操作
+                    onCheck:function(row){
+                        rel_Ids.push(row.id);
+                        qudui_total = qudui_total+1;
+                        xueyuan_total = xueyuan_total+row.department_admin_count;
 
-                table.on('click-row.bs.table', function (e, row, element) {
-                    console.log(rel_Ids)
-                    // console.log('row')
-                    if(!$.inArray(row.id,rel_Ids)){
-                        if(Config.row_info.starttime>0){
-                            Layer.alert('考试正在进行中,只可增加区队不可取消区队');
-                            return false;
-                        }
-                        arr = $.grep(rel_Ids, function(value) {
-                            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){
-                        if(Config.row_info.starttime>0){
-                            Layer.alert('考试正在进行中,只可增加区队不可取消区队');
-                            return false;
-                        }
+                        $(".depart_ids").val(rel_Ids.join());
+                        $(".qudui_total").html(qudui_total);
+                        $(".xueyuan_total").html(xueyuan_total);
+                        $(".qudui_input").val(qudui_total);
+                        $(".xueyuan_input").val(xueyuan_total);
+                    },
+                    // 取消每一个单选框时对应的操作;
+                    onUncheck:function(row){
                         var index = rel_Ids.indexOf(row.id);
                         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);
+
+                        $(".depart_ids").val(rel_Ids.join());
+                        $(".qudui_total").html(qudui_total);
+                        $(".xueyuan_total").html(xueyuan_total);
+                        $(".qudui_input").val(qudui_total);
+                        $(".xueyuan_input").val(xueyuan_total);
                     }
-                    console.log(qudui_total);
-                    console.log(xueyuan_total);
-                    $(".depart_ids").val(rel_Ids.join());
-                    $(".qudui_total").html(qudui_total);
-                    $(".xueyuan_total").html(xueyuan_total);
-                    $(".qudui_input").val(qudui_total);
-                    $(".xueyuan_input").val(xueyuan_total);
                 });
 
+                // 为表格绑定事件
+                Table.api.bindevent(table);
+
+                //点击每一行
+                // table.on('click-row.bs.table', function (e, row, element) {
+                //     console.log(rel_Ids)
+                //     // console.log('row')
+                //     if(!$.inArray(row.id,rel_Ids)){
+                //         if(Config.row_info.starttime>0){
+                //             Layer.alert('考试正在进行中,只可增加区队不可取消区队');
+                //             return false;
+                //         }
+                //         arr = $.grep(rel_Ids, function(value) {
+                //             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){
+                //         if(Config.row_info.starttime>0){
+                //             Layer.alert('考试正在进行中,只可增加区队不可取消区队');
+                //             return false;
+                //         }
+                //         var index = rel_Ids.indexOf(row.id);
+                //         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);
+                //     $(".qudui_input").val(qudui_total);
+                //     $(".xueyuan_input").val(xueyuan_total);
+                // });
 
 
                 $(document).on('change', '#c-question_setting_method', function () {
@@ -392,11 +419,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         }
                     });
                 });
-                // $("input[name='btSelectAll']").click(function () {
-                //     var ids = Table.api.selectedids(table);
-                //     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]"));

+ 42 - 26
public/assets/js/backend/teacher/exams.js

@@ -138,10 +138,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
         persent: function () {
             Table.api.init({
                 extend: {
-                    index_url: 'teacher/exams/persent' + location.search,
+                    index_url: 'teacher/exams/persent/ids/'+Config.ids + location.search,
                     edit_url: 'teacher/exams/editscore',
-                    indexed_url: 'teacher/exams/examing' + location.search,
-                    score_url: 'teacher/exams/score' + location.search,
+                    indexed_url: 'teacher/exams/examing/ids/'+Config.ids + location.search,
+                    score_url: 'teacher/exams/score/ids/'+Config.ids  + location.search,
                     table: 'teacher_exams',
                 }
             });
@@ -253,27 +253,27 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
                             }
                         },
                         {field: 'total_score', 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
-                        //     formatter: Table.api.formatter.buttons,
-                        //     buttons: [
-                        //         // {
-                        //         //     name: 'dispatch',
-                        //         //     text: '',
-                        //         //     icon: 'fa fa-pencil',
-                        //         //     title: '编辑',
-                        //         //     classname: 'btn btn-success btn-xs btn-magic btn-dialog',
-                        //         //     extend: 'data-area=\'["55%","95%"]\'',
-                        //         //     url: 'teacher/exams/edit',
-                        //         // }
-                        //     ],
-                        // }
+                        {field: 'fault_names', title: __('出题题目'),formatter: Table.api.formatter.faultname},
+                        {field: 'xianxiang_names', title: __('故障现象'),formatter: Table.api.formatter.faultname},
+                        {field: 'yuanyin_names', title: __('可能原因'),formatter: Table.api.formatter.faultname},
+                        {field: 'buwei_names', title: __('故障部位'),formatter: Table.api.formatter.faultname},
+                        {field: 'fangfa_names', title: __('排除方法'),formatter: Table.api.formatter.faultname},
+                        {field: 'operate', title: __('Operate'), table: table1,
+                            events: Table.api.events.operate,
+                            // formatter: Table.api.formatter.operate
+                            formatter: Table.api.formatter.buttons,
+                            buttons: [
+                                {
+                                    name: 'dispatch',
+                                    text: '成绩详情',
+                                    icon: 'fa fa-eye',
+                                    title: '成绩详情',
+                                    classname: 'btn btn-info btn-xs btn-magic btn-dialog',
+                                    extend: 'data-area=\'["55%","95%"]\'',
+                                    url: 'teacher/exams/view',
+                                }
+                            ],
+                        }
                     ]
                 ]
             });
@@ -311,8 +311,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function
                         {field: 'yuanyin_socre', title: __('可能原因扣分'),editable:true},
                         {field: 'buwei_score', title: __('故障部位扣分'),editable:true},
                         {field: 'fangfa_score', title: __('排除方法扣分'),editable:true},
-                        {field: 'jielun_score', title: __('修复结论扣分'),editable:true},
-                        {field: 'overtime_score', title: __('按每扣分'),editable:true},
+                        // {field: 'jielun_score', title: __('修复结论扣分'),editable:true},
+                        {field: 'overtime_score', title: __('超时扣分'),editable:true},
+                        {field: 'operate', title: __('Operate'), table: table1,
+                            events: Table.api.events.operate,
+                            // formatter: Table.api.formatter.operate
+                            formatter: Table.api.formatter.buttons,
+                            buttons: [
+                                {
+                                    name: 'dispatch',
+                                    text: '成绩详情',
+                                    icon: 'fa fa-eye',
+                                    title: '成绩详情',
+                                    classname: 'btn btn-info btn-xs btn-magic btn-dialog',
+                                    extend: 'data-area=\'["55%","95%"]\'',
+                                    url: 'teacher/exams/view',
+                                }
+                            ],
+                        }
                     ]
                 ]
             });

+ 26 - 48
public/assets/js/backend/teacher/task.js

@@ -2,8 +2,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
     var Controller = {
         index: function () {
-            $('.btn-add').data('area',['75%','65%']);
-            $('.btn-edit,.btn-editone').data('area',['75%','65%']);
+            $('.btn-add').data('area',['75%','75%']);
+            $('.btn-edit,.btn-editone').data('area',['75%','75%']);
             // 初始化表格参数配置
             Table.api.init({
                 extend: {
@@ -33,18 +33,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {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: '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'},
                         {field: 'operate', title: __('Operate'), table: table,
                             events: Table.api.events.operate,
                             // formatter: Table.api.formatter.operate,
@@ -56,7 +45,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     icon: 'fa fa-pencil',
                                     title: '编辑',
                                     classname: 'btn btn-success btn-xs btn-magic btn-dialog',
-                                    extend: 'data-area=\'["75%","65%"]\'',
+                                    extend: 'data-area=\'["75%","75%"]\'',
                                     url: 'teacher/task/edit',
                                 },{
                                     name: 'dispatch',
@@ -163,6 +152,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                         }
                                     }else if(ret[0].sim_type == '0003'){
                                         //003 暂缺
+                                        task_tr += '<tr>';
+                                        if(i==0){
+                                            task_tr += '    <td rowspan="15">'+xinghao+'</td>';
+                                        }
+                                        if(i<4){
+                                            task_tr += '    <td rowspan="2">'+ret[i].name+'</td>';
+                                        }else if(i==4){
+                                            task_tr += '    <td rowspan="3">'+ret[i].name+'</td>';
+                                        }else if(i==5){
+                                            task_tr += '    <td rowspan="2">'+ret[i].name+'</td>';
+                                        }else{
+                                            task_tr += '    <td rowspan="1">'+ret[i].name+'</td>';
+                                        }
+                                        for (var j = 0; j < ret[i].children.length; j++) {
+                                            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+'" 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+'" vname="'+ret1[j].name+'"></td>';
+                                            }
+                                        }
                                     }
                                 }
                                 $(".task_list").html(task_tr);
@@ -171,7 +183,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     });
                 });
 
-
                 //只允许选择三个故障
                 $(document).on('click', "input[type='checkbox']", function () {
                     if ($(this).attr("checked")) {
@@ -194,39 +205,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         $(".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");
-                //     });
-                // });
                 Form.api.bindevent($("form[role=form]"));
             }
         }