浏览代码

20250112 调整

贾小兵 3 月之前
父节点
当前提交
be57ec6fd6

+ 169 - 63
application/admin/controller/teacher/Practice.php

@@ -6,6 +6,7 @@ use app\admin\model\Fault;
 use app\common\controller\Backend;
 use app\common\model\Config as ConfigModel;
 use think\Db;
+use think\Env;
 use think\exception\PDOException;
 use think\exception\ValidateException;
 use app\admin\model\teacher\Exams;
@@ -22,6 +23,7 @@ class Practice extends Backend
      * @var \app\admin\model\teacher\Collection
      */
     protected $model = null;
+    protected $exam_model = null;
 
     protected $whereExtend = null;
 
@@ -29,6 +31,7 @@ class Practice extends Backend
     {
         parent::_initialize();
         $this->model = new \app\admin\model\teacher\Collection;
+        $this->exam_model = new \app\admin\model\teacher\Exams;
         $this->assignConfig('sim_sim_type', ConfigModel::getSimTypeList());
         $this->assignConfig('sim_question_setting_method', ConfigModel::getSimQuestionList());
 
@@ -61,7 +64,7 @@ class Practice 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('出题方式为任务自选,请选择任务');
             }
         }
@@ -75,6 +78,10 @@ class Practice extends Backend
         Db::startTrans();
         try {
             $depart_ids = $params['depart_ids'];
+            if($params['question_setting_method']==3 && !empty($params['fault_name'])){
+                $params['question_name'] = $params['fault_name'];
+                unset($params['fault_name']);
+            }
             $result = $this->model->allowField(true)->save($params);
             foreach(explode(',',$depart_ids) as $item){
                 if(!empty($item)){
@@ -99,33 +106,38 @@ class Practice extends Backend
                     'user_nickname' => $it['nickname'],
                     'user_id' => $it['id'],
                     'user_depart_id' => $it['depart_id'],
-                    'seat_id'=>01,
-                    'sim_id'=>intval($params['sim_type']),
                     'create_time'=>date('Y-m-d H:i:s'),
                     'update_time' => date('Y-m-d H:i:s'),
                 ];
                 $examid = Db::name('real_exam')->insertGetId($arr1);
                 //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
+                $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
                 if($params['question_setting_method']==1){ //系统随机
-                    $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
+                    $fault_key = array_rand($fault_list, 3);
                 }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();
+                    $question_ids = $params['question_ids'];
                 }else if($params['question_setting_method']==3){ //任务自选
-                    $fault_list = Db::name('task_fault')->where(['task_id'=>['in',$params['question_ids']]])->select();
+                    $task_ids = Db::name('task_fault')->where(['task_id'=>['in',$params['task_id']]])->column('fault_id');
                 }
-                $fault_key = array_rand($fault_list, 3);
+//                halt($question_ids);
                 foreach ($fault_list as $key=> $item1){
                     $flag = 0;
-                    if(in_array($key,$fault_key)){
+                    if(!empty($fault_key) && in_array($key,$fault_key)){
+                        $flag = 1;
+                    }
+                    if(!empty($question_ids) && in_array($item1['fault_id'],explode(',',$question_ids))){
+                        $flag = 1;
+                    }
+                    if(!empty($task_ids) && in_array($item1['fault_id'],$task_ids)){
                         $flag = 1;
                     }
                     $add= [
                         'exam_id'=>$examid,
-                        'fault_id'=>$item1->fault_id,
+                        'fault_id'=>$item1['fault_id'],
                         'ref_type'=>2,
                         'flag'=>$flag,
                         'ref_state'=>3,
-                        'sim_fault_question_value'=>'0000000'.rand(1,2),
+//                        'sim_fault_question_value'=>'0000000'.rand(1,2),
                         'createtime'=>time(),
                         'updatetime'=>time(),
                         'create_time'=>date('Y-m-d H:i:s'),
@@ -166,7 +178,7 @@ class Practice 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('出题方式为任务自选,请选择任务');
             }
         }
@@ -175,7 +187,12 @@ class Practice extends Backend
         Db::startTrans();
         try {
             $depart_ids = $params['depart_ids'];
+            if($params['question_setting_method']==3 && !empty($params['fault_name'])){
+                $params['question_name'] = $params['fault_name'];
+                unset($params['fault_name']);
+            }
             $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)){
@@ -187,57 +204,65 @@ class Practice extends Backend
                     Db::name('real_exam_collection_dept')->insert($arr);
                 }
             }
-            Db::name('real_exam')->where(['exam_collection_id'=>$row->exam_collection_id])->delete();
+
+            Db::name('real_exam')->where(['exam_collection_id'=>$row->exam_collection_id,'starttime'=>0])->delete();
             //匹配的学员自动加入  mx_real_exam 考试表  总分
             $admin_list = Db::name('admin')->where('depart_id','in',$depart_ids)->select();
             foreach ($admin_list as $it){
-                $arr1 = [
-                    'exam_collection_id' => $row->exam_collection_id,
-                    'exam_collection_name' => $params['exam_collection_name'],
-                    'exam_collection_type' => $row['exam_collection_type'],
-                    'sim_type' => $params['sim_type'],
-                    'user_username' => $it['username'],
-                    'user_nickname' => $it['nickname'],
-                    'user_id' => $it['id'],
-                    'user_depart_id' => $it['depart_id'],
-                    'seat_id'=>01,
-                    'sim_id'=>intval($params['sim_type']),
-                    'create_time'=>date('Y-m-d H:i:s'),
-                    'update_time' => date('Y-m-d H:i:s'),
-                ];
-                $examid = Db::name('real_exam')->insertGetId($arr1);
-                //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
-                if($params['question_setting_method']==1){ //系统随机
-                    $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
-                }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();
-                }
-                Db::name('real_exam_fault')->where(['exam_id'=>$examid])->delete();
-                $fault_key = array_rand($fault_list, 3);
-                foreach ($fault_list as $key=> $item1){
-                    $flag = 0;
-                    if(in_array($key,$fault_key)){
-                        $flag = 1;
-                    }
-                    $add= [
-                        'exam_id'=>$examid,
-                        'fault_id'=>$item1['fault_id'],
-                        'ref_type'=>2,
-                        'flag'=>$flag,
-                        'ref_state'=>3,
-                        'sim_fault_question_value'=>'0000000'.rand(1,2),
-                        'createtime'=>time(),
-                        'updatetime'=>time(),
+                $real_exam = Db::name('real_exam')->where(['exam_collection_id'=>$row->exam_collection_id,'user_id'=>$it['id']])->find();
+                if(empty($real_exam)){
+                    $arr1 = [
+                        'exam_collection_id' => $row->exam_collection_id,
+                        'exam_collection_name' => $params['exam_collection_name'],
+                        'exam_collection_type' => $row['exam_collection_type'],
+                        'sim_type' => $params['sim_type'],
+                        'user_username' => $it['username'],
+                        'user_nickname' => $it['nickname'],
+                        'user_id' => $it['id'],
+                        'user_depart_id' => $it['depart_id'],
                         'create_time'=>date('Y-m-d H:i:s'),
-                        'update_time'=>date('Y-m-d H:i:s'),
+                        'update_time' => date('Y-m-d H:i:s'),
                     ];
-                    Db::name('real_exam_fault')->insert($add);
+                    $examid = Db::name('real_exam')->insertGetId($arr1);
+                    //匹配的学员自动加入  mx_real_exam_fault 考试故障关联表
+                    $fault_list = Fault::where(['sim_type' => $params['sim_type'], 'fault_state' => 0,'fault_type'=>3])->select();
+                    if($params['question_setting_method']==1){ //系统随机
+                        $fault_key = array_rand($fault_list, 3);
+                    }else if($params['question_setting_method']==2){//教师自选
+                        $question_ids = $params['question_ids'];
+                    }else if($params['question_setting_method']==3){ //任务自选
+                        $task_ids = Db::name('task_fault')->where(['task_id'=>['in',$params['task_id']]])->column('fault_id');
+                    }
+                    Db::name('real_exam_fault')->where(['exam_id'=>$examid])->delete();
+
+                    foreach ($fault_list as $key=> $item1){
+                        $flag = 0;
+                        if(!empty($fault_key) && in_array($key,$fault_key)){
+                            $flag = 1;
+                        }
+                        if(!empty($question_ids) && in_array($item1['fault_id'],explode(',',$question_ids))){
+                            $flag = 1;
+                        }
+                        if(!empty($task_ids) && in_array($item1['fault_id'],$task_ids)){
+                            $flag = 1;
+                        }
+                        $add= [
+                            'exam_id'=>$examid,
+                            'fault_id'=>$item1['fault_id'],
+                            'ref_type'=>2,
+                            'flag'=>$flag,
+                            'ref_state'=>3,
+//                        'sim_fault_question_value'=>'0000000'.rand(1,2),
+                            'createtime'=>time(),
+                            'updatetime'=>time(),
+                            'create_time'=>date('Y-m-d H:i:s'),
+                            'update_time'=>date('Y-m-d H:i:s'),
+                        ];
+                        Db::name('real_exam_fault')->insert($add);
+                    }
+                    unset($item1);
                 }
-                unset($item1);
             }
-
             Db::commit();
         } catch (ValidateException|PDOException|Exception $e) {
             Db::rollback();
@@ -250,6 +275,61 @@ class Practice extends Backend
     }
 
 
+    public function del($ids = null)
+    {
+        if (false === $this->request->isPost()) {
+            $this->error(__("Invalid parameters"));
+        }
+        $ids = $ids ?: $this->request->post("ids");
+        if (empty($ids)) {
+            $this->error(__('Parameter %s can not be empty', 'ids'));
+        }
+        $pk = $this->model->getPk();
+        $adminIds = $this->getDataLimitAdminIds();
+        if (is_array($adminIds)) {
+            $this->model->where($this->dataLimitField, 'in', $adminIds);
+        }
+        $list = $this->model->where($pk, 'in', $ids)->select();
+
+        $count = 0;
+        Db::startTrans();
+        try {
+            //删除考试集合  mx_real_exam_collection
+            foreach ($list as $item) {
+                if($item['yikao_count']>0){
+                    $this->error('已有学生参加考试,无法删除');
+                }
+                $count += $item->delete();
+            }
+            //删除学员考试 mx_real_exam
+            $exam_list = $this->exam_model->where('exam_collection_id',$ids)->select();
+            if(!empty($exam_list)){
+                foreach ($exam_list as $k=>$it)
+                {
+                    //删除学员考试故障表 mx_real_exam_fault
+                    Db::name('real_exam_fault')->where('exam_id',$it['exam_id'])->delete();
+                    $it->delete();
+                }
+
+            }
+            //删除考试关联区队表 mx_real_exam_collection_dept
+            Db::name('real_exam_collection_dept')->where('exam_collection_id',$ids)->delete();
+
+
+            Db::commit();
+        } catch (PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if ($count) {
+            $this->success();
+        }
+        $this->error(__('No rows were deleted'));
+    }
+
+
+
+
     public function multi($ids = null)
     {
         if (false === $this->request->isPost()) {
@@ -273,15 +353,41 @@ class Practice extends Backend
         if (is_array($adminIds)) {
             $this->model->where($this->dataLimitField, 'in', $adminIds);
         }
-//        if(!empty($values['exam_collection_state'])){
-//            if($values['exam_collection_state']==2){
-//                $state_count = $this->model->where(['exam_collection_state'=>$values['exam_collection_state'],'exam_collection_type'=>1])->count();
-//                if($state_count>0){
-//                    $this->error('已有启用的考试,请先关闭原来的考试');
-//                }
-//            }
-//        }
         $count = 0;
+        if(!empty($values['exam_collection_state'])){
+            //开始考试集合
+            if($values['exam_collection_state']==2){
+                //触发Java端后台的接口数据,
+                //dev-api/sim/real-exam-collection/teacher/exam/open/{examcollectionId}  $ids  put
+                if(Env::get('app.is_fault')){
+                    $url = config('site.url_type').'/sim/real-exam-collection/teacher/exam/open/'.$ids;
+                    $ret = json_decode(send_post($url),true);
+                    if($ret['code']!=200){
+                        $this->error($ret['msg']);
+                    }
+                }else{
+//                    $state_count = $this->model->where(['exam_collection_state'=>$values['exam_collection_state'],'exam_collection_type'=>1])->count();
+//                    if($state_count>0){
+//                        $this->error('已有启用的考试,请先关闭原来的考试');
+//                    }
+                }
+                $count = 1;
+            }
+            //关闭
+            if($values['exam_collection_state']==3){
+                //触发Java端后台的接口数据,
+                //dev-api/sim/real-exam-collection/teacher/exam/open/{examcollectionId}  $ids  put
+                if(Env::get('app.is_fault')){
+                    $url = config('site.url_type').'/sim/real-exam-collection/teacher/exam/close/'.$ids;
+                    $ret = json_decode(send_post($url),true);
+                    if($ret['code']!=200){
+                        $this->error($ret['msg']);
+                    }
+                }
+                $count = 1;
+            }
+        }
+
         Db::startTrans();
         try {
             $list = $this->model->where($this->model->getPk(), 'in', $ids)->select();

+ 41 - 14
application/admin/view/teacher/practice/add.html

@@ -6,6 +6,11 @@
         <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">
             <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Exam_collection_name')}:</label>
             <div class="col-xs-12 col-sm-7">
@@ -23,18 +28,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>
@@ -56,12 +61,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;left: 48%">
+            <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="hidden">
+                <input id="c-fault_name" readonly class="form-control" name="row[fault_name]" type="text">
+            </div>
+        </div>
+
+        <div class="form-group col-sm-6 questions" style="display:none;left: 48%">
+            <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><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">
                     <div class="widget-body no-padding">

+ 38 - 15
application/admin/view/teacher/practice/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,34 @@
                     {/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" {else} style="left: 48%" {/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;" {else} style="left: 48%"  {/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="hidden"  value="{$row.task_name|htmlentities}">
+                <input id="c-fault_name" readonly class="form-control" name="row[fault_name]" type="text"  value="{$row.question_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><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">
                     <div class="widget-body no-padding">

+ 1 - 1
application/admin/view/teacher/practice/index.html

@@ -9,7 +9,7 @@
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('teacher/collection/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
                         <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('teacher/practice/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
-<!--                        <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('teacher/practice/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
+                        <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('teacher/practice/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
 
 
 <!--                        <a href="javascript:;" class="btn btn-warning btn-start btn-disabled disabled {:$auth->check('teacher/practice/start')?'':'hide'}" title="{:__('开始练习')}" ><i class="fa fa-play-circle"></i> {:__('开始练习')}</a>-->

+ 81 - 25
public/assets/js/backend/teacher/practice.js

@@ -53,6 +53,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         // {field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                         // {field: 'create_user_id', title: __('Create_user_id')},
                         {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
+                        {field: 'qudui_count', title: __('区队数量'), operate: false},
+                        {field: 'xueyuan_count', title: __('应考人数'), operate: false},
+                        {field: 'yikao_count', title: __('已考人数'), operate: false},
                         {field: 'createtime', title: __('Create_time'),  operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter: Table.api.formatter.datetime},
                         // {field: 'update_by', title: __('Update_by'), operate: 'LIKE'},
                         // {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
@@ -63,7 +66,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                             buttons: [
                                 {
                                     name: 'dispatch',
-                                    text: '',
+                                    text: '编辑',
                                     icon: 'fa fa-pencil',
                                     title: '编辑',
                                     classname: 'btn btn-success btn-xs btn-magic btn-dialog',
@@ -72,7 +75,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                 },
                                 {
                                     name: 'dispatch',
-                                    text: '',
+                                    text: '进入练习',
                                     icon: 'fa fa-hand-pointer-o',
                                     title: '进入练习',
                                     visible: function (rr) {
@@ -84,22 +87,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     classname: 'btn btn-info btn-xs btn-magic btn-addtabs',
                                     url: 'teacher/practice/persent',
                                 },
-                                // {
-                                //     name: 'dispatch',
-                                //     text: '',
-                                //     icon: 'fa fa-trash',
-                                //     title: '删除',
-                                //     classname: 'btn btn-danger btn-xs btn-magic btn-ajax',
-                                //     url: 'teacher/practice/del',
-                                //     confirm: '确定要删除吗?',
-                                //     success: function (data, ret) {
-                                //         $(".btn-refresh").trigger("click");
-                                //     },
-                                //     error: function (data, ret) {
-                                //         Layer.alert(ret.msg);
-                                //         return false;
-                                //     }
-                                // }
+                                {
+                                    name: 'dispatch',
+                                    text: '删除',
+                                    icon: 'fa fa-trash',
+                                    title: '删除',
+                                    classname: 'btn btn-danger btn-xs btn-magic btn-ajax',
+                                    url: 'teacher/practice/del',
+                                    confirm: '确定要删除吗?',
+                                    success: function (data, ret) {
+                                        $(".btn-refresh").trigger("click");
+                                    },
+                                    error: function (data, ret) {
+                                        Layer.alert(ret.msg);
+                                        return false;
+                                    }
+                                }
                             ],
                         }
                     ]
@@ -250,6 +253,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,
@@ -280,7 +285,20 @@ 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);
+                        $(".qudui_input").val(qudui_total);
+                        $(".xueyuan_input").val(xueyuan_total);
+                    },
                 });
 
                 // 为表格绑定事件
@@ -290,32 +308,57 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     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) {
+                        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 () {
                     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-fault_name").val('');
+                    $("#c-question_name").val('');
+                    $(".tasks,.questions").css('display','none')
                 });
                 //考题
                 $(document).on('click', '.btn-sm', function () {
@@ -331,9 +374,14 @@ 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('');
+                                $("#c-fault_name").val('');
                             }
                         }
                     });
@@ -347,13 +395,20 @@ 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) {
+                            console.log(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);
+                                $("#c-fault_name").val(value.fault_name);
+                                $(".questions").css('display','none')
+                                $(".question_ids").val(0);
+                                $("#c-question_name").val('');
                             }
                         }
                     });
@@ -364,6 +419,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]"));
             }