贾小兵 пре 3 месеци
родитељ
комит
58e23c749f

+ 20 - 4
application/admin/controller/Fault.php

@@ -17,7 +17,7 @@ class Fault extends Backend
      * @var \app\admin\model\Fault
      */
     protected $model = null;
-    protected $noNeedRight = ['getdatlist'];
+    protected $noNeedRight = ['getdatalist'];
 
     public function _initialize()
     {
@@ -36,10 +36,26 @@ class Fault extends Backend
      */
 
     //根据 模拟器类型,选择模拟器二级和三级列表
-    public function getdatlist($type = null)
+    public function getdatalist()
     {
-        $selectData = [];
-        return $selectData;
+        $simtype = input('simtype','simtype');
+        if(!$simtype){
+            $this->error('模拟器类型有误');
+        }
+        $where = [
+            'sim_type' => $simtype,
+            'fault_type' => 1,
+            'fault_state'=>0
+        ];
+        $selectData = $this->model->where($where)->select();
+        foreach ($selectData as $key => $value){
+            $children = $this->model->where(['parent_fault_id'=>$value['fault_id'],'fault_state'=>0])->select();
+            $selectData[$key]['children'] = $children;
+        }
+        unset($value);
+        $selectData = collection($selectData)->toArray();
+        $result = array("code" => 1,"msg" => '获取成功', "data" => $selectData);
+        return json($result);
     }
 
 }

+ 22 - 12
application/admin/controller/department/Admin.php

@@ -42,7 +42,8 @@ class Admin extends Backend
 
         $this->dadminModel = new DepartmentAdminModel;
         $departmentList = [];
-        $this->allDepartment = \app\admin\model\department\Admin::getAllDepartmentsArray($this->auth->id,($this->auth->isSuperAdmin()||$this->auth->data_scope)?true:false);
+//        $this->allDepartment = \app\admin\model\department\Admin::getAllDepartmentsArray($this->auth->id,($this->auth->isSuperAdmin()||$this->auth->data_scope)?true:false);
+        $this->allDepartment = \app\admin\model\department\Admin::getAllDepartmentsArray($this->auth->id,true);
         $this->allDepartment=collection($this->allDepartment)->toArray();
 
         $departmentdata = [];
@@ -107,10 +108,11 @@ class Admin extends Backend
                 }
                 $admin_ids = $this->dadminModel->where('department_id', 'in', $department_id)->column('admin_id');
                 $filter_w['id'] = ['in', $admin_ids];
-            }else if ($this->auth->data_scope!=1&&!$this->auth->isSuperAdmin()){
-                $this->childrenAdminIds = \app\admin\model\department\Admin::getChildrenAdminIds($this->auth->id, true);
-                $filter_w['admin_id']=['in',$this->childrenAdminIds];
             }
+//            else if ($this->auth->data_scope!=1&&!$this->auth->isSuperAdmin()){
+//                $this->childrenAdminIds = \app\admin\model\department\Admin::getChildrenAdminIds($this->auth->id, true);
+//                $filter_w['admin_id']=['in',$this->childrenAdminIds];
+//            }
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
             $total = $this->model
                 ->where($where)
@@ -168,10 +170,14 @@ class Admin extends Backend
                         exception(__("组织不能为空"));
                     }
                     $d_list = $departmentModel->where('id', 'in', $department_id)->select();
-
                     if (!$d_list) {
                         exception(__("组织不能为空"));
                     }
+                    foreach ($d_list as $d_row){
+                        if ($d_row['level']!=5){
+                            exception(__("学员请选择到区队"));
+                        }
+                    }
 
                     if (!Validate::is($params['password'], '\S{6,16}')) {
                         exception(__("Please input correct password"));
@@ -242,15 +248,15 @@ class Admin extends Backend
         if (!$row) {
             $this->error(__('No Results were found'));
         }
-        if (!\app\admin\model\department\Admin::checkDataAuth($this->auth,$row,'id')){
-            $this->error(__('You have no permission'));
-        }
+//        if (!\app\admin\model\department\Admin::checkDataAuth($this->auth,$row,'id')){
+//            $this->error(__('You have no permission'));
+//        }
         if ($this->request->isPost()) {
 
             //判断是不是超级管理员编辑
-            if (!$this->auth->isSuperAdmin() && DepartmentAdminModel::isSuperAdmin($row->id)) {
-                $this->error("您无权操作超级管理员");
-            }
+//            if (!$this->auth->isSuperAdmin() && DepartmentAdminModel::isSuperAdmin($row->id)) {
+//                $this->error("您无权操作超级管理员");
+//            }
 
             $params = $this->request->post("row/a");
 
@@ -267,7 +273,11 @@ class Admin extends Backend
                     if (!$d_list) {
                         exception(__("Department can't null"));
                     }
-
+                    foreach ($d_list as $d_row){
+                        if ($d_row['level']!=5){
+                            exception(__("学员请选择到区队"));
+                        }
+                    }
                     if ($params['password']) {
                         if (!Validate::is($params['password'], '\S{6,16}')) {
                             exception(__("Please input correct password"));

+ 1 - 0
application/admin/controller/teacher/Collection.php

@@ -30,6 +30,7 @@ class Collection extends Backend
         $this->assign('sim_sim_type', ConfigModel::getSimTypeList());
         $this->assignConfig('sim_question_setting_method', ConfigModel::getSimQuestionList());
         $this->assign('sim_question_setting_method', ConfigModel::getSimQuestionList());
+        $this->whereExtend['exam_collection_type'] = 3;
     }
 
 

+ 15 - 0
application/admin/controller/teacher/Exams.php

@@ -32,5 +32,20 @@ class Exams extends Backend
      * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
      */
 
+    public function view($ids = null)
+    {
+        $row = $this->model->get($ids);
+        if(!$row){
+            $this->error('未找到记录');
+        }
+
+        $this->view->assign('row', $row);
+        return $this->view->fetch();
+    }
 
+    //正在考试
+    public function persent()
+    {
+        return $this->view->fetch();
+    }
 }

+ 7 - 1
application/admin/controller/teacher/Practice.php

@@ -19,12 +19,15 @@ class Practice extends Backend
      */
     protected $model = null;
 
+    protected $whereExtend = null;
+
     public function _initialize()
     {
         parent::_initialize();
         $this->model = new \app\admin\model\teacher\Collection;
         $this->assignConfig('sim_sim_type', ConfigModel::getSimTypeList());
         $this->assignConfig('sim_question_setting_method', ConfigModel::getSimQuestionList());
+        $this->whereExtend['exam_collection_type'] = 1;
     }
 
 
@@ -35,5 +38,8 @@ class Practice extends Backend
      * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
      */
 
-
+    public function persent()
+    {
+        return $this->view->fetch();
+    }
 }

+ 123 - 0
application/admin/controller/teacher/Task.php

@@ -4,6 +4,11 @@ namespace app\admin\controller\teacher;
 
 use app\common\controller\Backend;
 use app\common\model\Config as ConfigModel;
+use think\Db;
+use think\exception\PDOException;
+use think\exception\ValidateException;
+use app\admin\model\Fault;
+
 /**
  * sim-任务管理
  *
@@ -35,5 +40,123 @@ class Task extends Backend
      * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
      */
 
+    public function add()
+    {
+        if (false === $this->request->isPost()) {
+            return $this->view->fetch();
+        }
+        $params = $this->request->post('row/a');
+        if (empty($params)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        if(empty($params['fault_id'])){
+            $this->error('请选择任务故障');
+        }
+        $params = $this->preExcludeFields($params);
+
+        if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
+            $params[$this->dataLimitField] = $this->auth->id;
+        }
+        $result = false;
+        Db::startTrans();
+        try {
+            $fult_ids = $params['fault_id'];
+            //是否采用模型验证
+            if ($this->modelValidate) {
+                $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
+                $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
+                $this->model->validateFailException()->validate($validate);
+            }
+            $result = $this->model->allowField(true)->save($params);
+            foreach(explode(',',$fult_ids) as $item){
+                if(!empty($item)){
+                    $arr = [
+                        'task_id' => $this->model->task_id,
+                        'fault_id' => $item,
+                        'flag' => 1,
+                        'update_time' => date('Y-m-d H:i:s'),
+                    ];
+                    Db::name('task_fault')->insert($arr);
+                }
+            }
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if ($result === false) {
+            $this->error(__('No rows were inserted'));
+        }
+        $this->success();
+    }
+
+    public function edit($ids = null)
+    {
+        $row = $this->model->get($ids);
+        if (!$row) {
+            $this->error(__('No Results were found'));
+        }
+        $where = [
+            'sim_type' => $row->sim_type,
+            'fault_type' => 1,
+            'fault_state'=>0
+        ];
+        $selectData = Fault::where($where)->select();
+        foreach ($selectData as $key => $value){
+            $children = Fault::where(['parent_fault_id'=>$value['fault_id'],'fault_state'=>0])->select();
+            $selectData[$key]['children'] = $children;
+        }
+        unset($value);
+        $selectData = collection($selectData)->toArray();
+        $row['selectData'] = $selectData;
+        $row['fault_id_arr'] = !empty($row['fault_id']) ? explode(',',$row['fault_id']):'';
+        if (false === $this->request->isPost()) {
+            $this->view->assign('row', $row);
+            return $this->view->fetch();
+        }
+        $params = $this->request->post('row/a');
+        if (empty($params)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        if(empty($params['fault_id'])){
+            $this->error('请选择任务故障');
+        }
+        $params = $this->preExcludeFields($params);
+        $result = false;
+        Db::startTrans();
+        try {
+            $fult_ids = $params['fault_id'];
+            //是否采用模型验证
+            if ($this->modelValidate) {
+                $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
+                $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
+                $row->validateFailException()->validate($validate);
+            }
+            $result = $row->allowField(true)->save($params);
+            foreach(explode(',',$fult_ids) as $item){
+                if(!empty($item)){
+                    $isset = Db::name('task_fault')->where(['task_id'=>$row->task_id,'fault_id'=>$item])->find();
+                    if(empty($isset)){
+                        $arr = [
+                            'task_id' => $this->model->task_id,
+                            'fault_id' => $item,
+                            'flag' => 1,
+                            'update_time' => date('Y-m-d H:i:s'),
+                        ];
+                        Db::name('task_fault')->insert($arr);
+                    }
+                }
+            }
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if (false === $result) {
+            $this->error(__('No rows were updated'));
+        }
+        $this->success();
+    }
+
 
 }

+ 1 - 0
application/admin/lang/zh-cn/teacher/exams.php

@@ -6,6 +6,7 @@ return [
     'User_id'               => '学员ID/用户ID',
     'Seat_id'               => '座ID',
     'Sim_id'                => '模拟器ID',
+    'Sim_type'              => '模拟器类型',
     //状态:[0]-未登录,[1]-已登录,[2]-模拟器检查并下发故障中,[3]:模拟器检查OK可开考,[4]-答题中,[5]-已交卷,[6]-计算成绩中,[7]-获取到成绩报告,[80]-教师标记缺考,[81]-登录未开始答题,[90]-模拟器异常结束
     'Exam_status'           => '考试状态',
     'Total_score'           => '总分',//:累加扣分和计算出总分

+ 112 - 92
application/admin/view/teacher/exams/edit.html

@@ -1,101 +1,121 @@
-<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: center;
+        width: 100%;
+        font-size: 12px;
+    }
 
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_id" data-rule="required" data-source="exam/collection/index" class="form-control selectpage" name="row[exam_collection_id]" type="text" value="{$row.exam_collection_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
-        </div>
-    </div>
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 2.5em;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+
+    .span_show {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+
+    .span_hide {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+    .task_list input{border: 0px}
+</style>
+<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value="{$row.seat_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Sim_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-sim_id" data-rule="required" data-source="sim/index" class="form-control selectpage" name="row[sim_id]" type="text" value="{$row.sim_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_status')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_status" class="form-control" name="row[exam_status]" type="text" value="{$row.exam_status|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Total_score')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-total_score" class="form-control" name="row[total_score]" type="number" value="{$row.total_score|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Deduction_total_score')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-deduction_total_score" class="form-control" name="row[deduction_total_score]" type="number" value="{$row.deduction_total_score|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{$row.start_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('End_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_time]" type="text" value="{$row.end_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Login_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-login_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[login_time]" type="text" value="{$row.login_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Logout_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-logout_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[logout_time]" type="text" value="{$row.logout_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Create_by')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-create_by" class="form-control" name="row[create_by]" type="text" value="{$row.create_by|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Create_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-create_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create_time]" type="text" value="{$row.create_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Update_by')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-update_by" class="form-control" name="row[update_by]" type="text" value="{$row.update_by|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Update_time')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-update_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[update_time]" type="text" value="{$row.update_time}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-remark" class="form-control" name="row[remark]" type="text" value="{$row.remark|htmlentities}">
+            <input class="form-control" type="text" value="{$row.seat_id|htmlentities}" readonly>
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('姓名')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input class="form-control"type="text" value="{$row.user_nickname|htmlentities}" readonly>
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('学号')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input class="form-control" type="text" value="{$row.user_username|htmlentities}" readonly>
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('区队')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input class="form-control" type="text" value="{$row.user_depart_id|htmlentities}" readonly>
+        </div>
+    </div>
+    <div class="col-lg-12" style="margin: 20px 10px 0 10px">
+        <div class="tab-content">
+            <div class="tab-pane tab_log1" style="display: block">
+                <table class="new_table">
+                    <thead>
+                    <tr style="height: 3.5rem">
+                        <td >评分标准</td>
+                        <td >得分</td>
+                    </tr>
+                    </thead>
+                    <tbody class="task_list">
+                    <tr>
+                        <td colspan="2">一.排除故障(75分)</td>
+                    </tr>
+                    <tr>
+                        <td>故障一未排除扣25分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>故障二未排除扣25分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>故障三未排除扣25分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">二.维修报告表(15分)</td>
+                    </tr>
+                    <tr>
+                        <td>故障现象少写或错写1条扣1分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>可能原因少写或错写1条扣1分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>故障部位少写或错写1条扣1分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>排除方法少写或错写1条扣1分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td>修复结论错扣2分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">三.维修时间(10分)</td>
+                    </tr>
+                    <tr>
+                        <td>按每超过1分钟扣1分的比例扣分</td><td><input type="text" name="row[guzhang_score]" value="0"></td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
         </div>
     </div>
+
+
+
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>
         <div class="col-xs-12 col-sm-8">

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

@@ -7,10 +7,13 @@
                 <div class="tableTitle" style="font-size: 16px;margin: 10px 0">成绩列表</div>
                 <div class="widget-body no-padding">
                     <div id="toolbar" class="toolbar">
-<!--                        <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/exams/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
+                        <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/exams/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/exams/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/exams/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/exams/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
+
+                        <a href="javascript:;" class="btn btn-info btn-view btn-disabled disabled {:$auth->check('teacher/exams/view')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-eye"></i> {:__('成绩详情')}</a>
+
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                            data-operate-edit="{:$auth->check('teacher/exams/edit')}"

+ 245 - 0
application/admin/view/teacher/exams/persent.html

@@ -0,0 +1,245 @@
+
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: left;
+        width: 100%;
+        font-size: 12px;
+    }
+
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 3.5em;
+        padding-left: 1%;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+    .new_table input{background-color:#f2f2f2;;border: 0px solid #cad9ea;}
+</style>
+
+<div class="row">
+    <div class="panel panel-default panel-intro">
+        {:build_heading()}
+        <div class="panel-body">
+            <div id="myTabContent" class="tab-content">
+                <div class="tab-pane fade active in" id="one">
+                    <div class="tableTitle" style="font-size: 16px;margin: 10px 0">更换件列表</div>
+                    <div class="widget-body no-padding">
+                        <div id="toolbar" class="toolbar">
+                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
+                        </div>
+                        <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('teacher/exams/edit')}"
+                               data-operate-del="{:$auth->check('teacher/exams/del')}"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+            <div id="" class="tab-content">
+                <div class="tab-pane fade active in" id="two">
+                    <div class="tableTitle" style="font-size: 16px;margin: 10px 0">考试列表</div>
+                    <div class="widget-body no-padding">
+                        <div id="toolbar1" class="toolbar">
+                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
+                        </div>
+                        <table id="table1" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('teacher/exams/edit')}"
+                               data-operate-del="{:$auth->check('teacher/exams/del')}"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+    <div class="col-lg-12" style="margin: 10px 10px 0 10px">
+        <form id="update-form" role="form" data-toggle="validator" method="POST" action="">
+            <div class="tab-content" style="margin-top:5px;">
+                <div class="tab-pane tab_log1" style="display: block">
+                    <table class="new_table">
+                        <tr>
+                            <td style="width:15%">座号</td>
+                            <td>坐席1</td>
+                            <td>坐席2</td>
+                            <td>坐席3</td>
+                            <td>坐席4</td>
+                            <td>坐席5</td>
+                            <td>坐席6</td>
+                            <td>坐席7</td>
+                            <td>坐席8</td>
+                            <td>坐席9</td>
+                            <td>坐席10</td>
+                        </tr>
+                        <tr>
+                            <td>姓名</td>
+                            <td></td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                            <td>姓名</td>
+                        </tr>
+                        <tr>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                            <td>学号</td>
+                        </tr>
+                        <tr>
+                            <td colspan="11" style="text-align: left;padding-left: 1%">一.故障排除(75分)</td>
+                        </tr>
+                        <tr>
+                            <td>故障一未排除扣25分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>故障二未排除扣25分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>故障三未排除扣25分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td colspan="11" style="text-align: left;padding-left: 1%">二.修理报告表(15分)</td>
+                        </tr>
+                        <tr>
+                            <td>故障现象少写或错写1条扣1分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>可能原因少写或错写1条扣1分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>故障部位少写或错写1条扣1分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>排除方法少写或错写1条扣1分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td>修复结论错扣2分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                        <tr>
+                            <td colspan="11" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
+                        </tr>
+                        <tr>
+                            <td>按没超过1分钟扣1分的比例扣分</td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                            <td><input type="text" name="row[guzhang_score]" value="0"></td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <div class="form-group layer-footer" style="margin-top: 3%;text-align: center">
+                <label class="control-label col-xs-12 col-sm-2"></label>
+                <div class="col-xs-12 col-sm-8">
+                    <button type="submit" class="btn btn-info">{:__('确认成绩并结束本批次考试')}</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>

+ 149 - 0
application/admin/view/teacher/exams/view.html

@@ -0,0 +1,149 @@
+<link href="/assets/libs/font-awesome/css/font-awesome.min.css?v=Math.random()" rel="stylesheet">
+<link href="/assets/css/bootstrap.css?v=Math.random()" rel="stylesheet">
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: left;
+        width: 100%;
+        font-size: 12px;
+    }
+
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 3.5em;
+        padding-left: 1%;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+     .djs{
+         margin-right: 5%;
+         text-align: center;
+         line-height:8px;
+         font-size:20px;
+         margin-top: 50px;
+         margin-bottom:3%
+     }
+</style>
+
+<div class="row">
+    <div class="djs">20 年 装备维修评分标准</div>
+    <div class="col-lg-12" style="margin: 10px 10px 0 10px">
+        <table class="new_table">
+            <tr>
+                <td>考号</td>
+                <td>88888</td>
+                <td>姓名</td>
+                <td>88888</td>
+                <td>区队</td>
+                <td>1111</td>
+            </tr>
+            <tr>
+                <td>规定考试时间</td>
+                <td>50</td>
+                <td>实际作业时间</td>
+                <td>23</td>
+                <td>成绩</td>
+                <td>36</td>
+            </tr>
+        </table>
+        <form id="update-form" role="form" data-toggle="validator" method="POST" action="">
+        <div class="tab-content" style="margin-top:5px;">
+            <div class="tab-pane tab_log1" style="display: block">
+                <table class="new_table">
+                    <tr>
+                        <td style="width:15%">序号</td>
+                        <td style="width:20%">评分标准</td>
+                        <td style="width:15%">扣分</td>
+                        <td style="width:15%">维修情况</td>
+                    </tr>
+                    <tr>
+                        <td colspan="4" style="text-align: left;padding-left: 1%">一.故障排除(75分)</td>
+                    </tr>
+                    <tr>
+                        <td>1</td>
+                        <td>故障一未排除扣25分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>2</td>
+                        <td>故障二未排除扣25分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>2</td>
+                        <td>故障三未排除扣25分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td style="width:15%">序号</td>
+                        <td style="width:20%">评分标准</td>
+                        <td style="width:15%">扣分</td>
+                        <td style="width:15%">报告情况</td>
+                    </tr>
+                    <tr>
+                        <td colspan="5" style="text-align: left;padding-left: 1%">二.修理报告表(15分)</td>
+                    </tr>
+                    <tr>
+                        <td>1</td>
+                        <td>故障现象少写或错写1条扣1分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>2</td>
+                        <td>可能原因少写或错写1条扣1分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>3</td>
+                        <td>故障部位少写或错写1条扣1分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>4</td>
+                        <td>排除方法少写或错写1条扣1分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td>5</td>
+                        <td>修复结论错扣2分</td>
+                        <td></td>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <td colspan="4" style="text-align: left;padding-left: 1%">三.维修时间(10分)</td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">按没超过1分钟扣1分的比例扣分</td>
+                        <td colspan="2"></td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">扣分小计</td>
+                        <td colspan="2">超时</td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">五.成绩</td>
+                        <td colspan="2"></td>
+                    </tr>
+                    <tr>
+                        <td colspan="2">说明</td>
+                        <td colspan="2"></td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+        </form>
+    </div>
+</div>

+ 74 - 0
application/admin/view/teacher/practice/persent.html

@@ -0,0 +1,74 @@
+
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: left;
+        width: 100%;
+        font-size: 12px;
+    }
+
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 3.5em;
+        padding-left: 1%;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+    .new_table input{background-color:#f2f2f2;;border: 0px solid #cad9ea;}
+</style>
+
+<div class="row">
+    <div class="panel panel-default panel-intro">
+        {:build_heading()}
+        <div class="panel-body">
+            <div id="myTabContent" class="tab-content">
+                <div class="tab-pane fade active in" id="one">
+                    <div class="tableTitle" style="font-size: 16px;margin: 10px 0">更换件列表</div>
+                    <div class="widget-body no-padding">
+                        <div id="toolbar" class="toolbar">
+                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
+                        </div>
+                        <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('teacher/exams/edit')}"
+                               data-operate-del="{:$auth->check('teacher/exams/del')}"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+            <div id="" class="tab-content">
+                <div class="tab-pane fade active in" id="two">
+                    <div class="tableTitle" style="font-size: 16px;margin: 10px 0">考试列表</div>
+                    <div class="widget-body no-padding">
+                        <div id="toolbar1" class="toolbar">
+                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
+                        </div>
+                        <table id="table1" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('teacher/exams/edit')}"
+                               data-operate-del="{:$auth->check('teacher/exams/del')}"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+    <div class="col-lg-12" style="margin: 10px 10px 0 10px">
+        <form id="update-form" role="form" data-toggle="validator" method="POST" action="">
+            <div class="form-group layer-footer" style="margin-top: 3%;text-align: center">
+                <label class="control-label col-xs-12 col-sm-2"></label>
+                <div class="col-xs-12 col-sm-8">
+                    <button type="submit" class="btn btn-info">{:__('关闭')}</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>

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

@@ -1,3 +1,40 @@
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: center;
+        width: 100%;
+        font-size: 12px;
+    }
+
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 2.5em;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+
+    .span_show {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+
+    .span_hide {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+</style>
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     <div class="row">
         <input class="form-control" name="row[task_type]" type="hidden" value="1">
@@ -9,7 +46,7 @@
                 <select id="c-sim_type" data-rule="required" class="form-control" name="row[sim_type]">
                     <option value="">请选择</option>
                     {foreach name="sim_sim_type" item="vo"}
-                    <option value="{$key}" >{$vo}</option>
+                    <option value="{$key}" text="{$vo}">{$vo}</option>
                     {/foreach}
                 </select>
             </div>
@@ -22,6 +59,33 @@
         </div>
     </div>
 
+    <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="" data-rule="required">
+
+    <div class="col-lg-12" style="margin: 20px 10px 0 10px">
+        <div class="tab-content">
+            <div class="tab-pane tab_log1" style="display: block">
+                <table class="new_table">
+                    <thead>
+                        <tr style="height: 3.5rem">
+                            <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>
+                        </tr>
+                    </thead>
+                    <tbody class="task_list">
+                        <tr>
+                            <td colspan="4">暂无记录</td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
+
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>
         <div class="col-xs-12 col-sm-8">

+ 125 - 0
application/admin/view/teacher/task/edit.html

@@ -1,3 +1,40 @@
+<style type="text/css">
+    .new_table {
+        border-collapse: collapse;
+        margin: 0 auto;
+        text-align: center;
+        width: 100%;
+        font-size: 12px;
+    }
+
+    .new_table td,
+    table th {
+        border: 1px solid #cad9ea;
+        color: #666;
+        height: 2.5em;
+    }
+
+    .new_table thead th {
+        background-color: #CCE8EB;
+        width: 100px;
+    }
+
+    .span_show {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+
+    .span_hide {
+        float: left;
+        margin-left: 15px;
+        font-size: 11px;
+        color: #0a84ff;
+        cursor: pointer;
+    }
+</style>
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
     <div class="row">
         <div class="form-group col-sm-6">
@@ -18,6 +55,94 @@
             </div>
         </div>
     </div>
+    <input class="form-control fault_ids" name="row[fault_id]" type="hidden" value="{$row.fault_id|htmlentities}" data-rule="required">
+
+    <div class="col-lg-12" style="margin: 20px 10px 0 10px">
+        <div class="tab-content">
+            <div class="tab-pane tab_log1" style="display: block">
+                <table class="new_table">
+                    <thead>
+                    <tr style="height: 3.5rem">
+                        <td style="width:25%">型号</td>
+                        <td style="width:30%">故障现象</td>
+                        <td style="width:30%">故障部位</td>
+                        <td style="width:15%">
+                            <!--                                <input name="btSelectAll" type="checkbox" class="btAll">-->
+                            <a class="btn-xs btn-success btnselectall">选中全部</a>
+                            <a class="btn-xs btn-primary cancelselectall">取消选择</a>
+                        </td>
+                    </tr>
+                    </thead>
+                    <tbody class="task_list">
+                    <?php
+                        $fault_id_arr = $row['fault_id_arr'];
+                        if($row['sim_type']=='0001'){
+                            foreach($row['selectData'] as $key=>$vo){
+                                if($key == 0){
+                                    echo '<tr><td rowspan="10">FZD04B型侦毒器</td>';
+                                }
+                                if($key < 4){
+                                    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'];
+                                    if($k>0){
+                                        echo '</tr><tr><td>'.$v['name'].'</td>';
+                                        if(in_array($id,$fault_id_arr)){
+                                            echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                        }else{
+                                            echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                        }
+                                    }else{
+                                        echo '<td>'.$v['name'].'</td>';
+                                        if(in_array($id,$fault_id_arr)){
+                                        echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                        }else{
+                                        echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                        }
+                                    }
+                                }
+                                echo "</tr>";
+                           }
+                        }else if($row['sim_type']=='0002'){
+                            foreach($row['selectData'] as $key=>$vo){
+                                if($key == 0){
+                                echo '<tr><td rowspan="15">FZB006型毒剂报警器</td>';
+                                }
+                                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'];
+                                if($k>0){
+                                echo '</tr><tr><td>'.$v['name'].'</td>';
+                                if(in_array($id,$fault_id_arr)){
+                                echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                }else{
+                                echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                }
+                                }else{
+                                echo '<td>'.$v['name'].'</td>';
+                                if(in_array($id,$fault_id_arr)){
+                                echo '<td><input type="checkbox" name="checkbox" checked value='.$id.'></td>';
+                                }else{
+                                echo '<td><input type="checkbox" name="checkbox" value='.$id.'></td>';
+                                }
+                                }
+                                }
+                                echo "</tr>";
+                            }
+                        }
+                    ?>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
 
     <div class="form-group layer-footer">
         <label class="control-label col-xs-12 col-sm-2"></label>

+ 5 - 5
application/admin/view/teacher/task/index.html

@@ -7,9 +7,9 @@
                 <div class="widget-body no-padding">
                     <div id="toolbar" class="toolbar">
                         <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.task/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.task/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.task/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
+                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('teacher/task/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/task/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/task/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
                         
 
                         
@@ -17,8 +17,8 @@
                         
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
-                           data-operate-edit="{:$auth->check('teacher.task/edit')}"
-                           data-operate-del="{:$auth->check('teacher.task/del')}"
+                           data-operate-edit="{:$auth->check('teacher/task/edit')}"
+                           data-operate-del="{:$auth->check('teacher/task/del')}"
                            width="100%">
                     </table>
                 </div>

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

@@ -2,6 +2,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
     var Controller = {
         index: function () {
+            $('.btn-edit').data('area',['55%','95%']);
             // 初始化表格参数配置
             Table.api.init({
                 extend: {
@@ -29,29 +30,176 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     [
                         {checkbox: true},
                         {field: 'exam_id', title: __('Exam_id')},
-                        {field: 'exam_collection_id', title: __('Exam_collection_id')},
-                        {field: 'user_id', title: __('User_id')},
-                        {field: 'seat_id', title: __('Seat_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_depart_id',
+                            title: __('Department'),
+                            visible: false,
+                            addclass: 'selectpage',
+                            extend: 'data-source="department/index/index" data-field="name"',
+                            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')},
+                        {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: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        {field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        {field: 'login_time', title: __('Login_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+                        {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: '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}
+                        {field: 'operate', title: __('Operate'), table: table,
+                            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',
+                                }
+                            ],
+                        }
                     ]
                 ]
             });
 
             // 为表格绑定事件
             Table.api.bindevent(table);
+
+            $(document).on('click', '.btn-view', function () {
+                var ids = Table.api.selectedids(table);
+                var title = '成绩详情';
+                Fast.api.open(Fast.api.fixurl("teacher/exams/view/ids/"+ids), title, { area: ["60%", "95%"] });
+            });
+        },
+        persent: function () {
+            Table.api.init({
+                extend: {
+                    index_url: 'teacher/exams/persent' + location.search,
+                    indexed_url: 'teacher/exams/index' + location.search,
+                    table: 'teacher_exams',
+                }
+            });
+
+            var table = $("#table");
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'exam_id',
+                sortName: 'exam_id',
+                toolbar: '#toolbar',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                searchFormVisible:false,
+                columns: [
+                    [
+                        // {checkbox: true},
+                        {field: '', title: __('更换件')},
+                        {field: '', title: __('学员姓名')},
+                        {field: '', title: __('状态')},
+                        {field: 'endtime', title: __('申请时间'), formatter: Table.api.formatter.datetime, operate: false, addclass: 'datetimerange', sortable: true},
+                        {field: 'operate', title: __('Operate'), table: table,
+                            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',
+                                // }
+                            ],
+                        }
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table);
+
+
+
+            var table1 = $("#table1");
+            // 初始化表格
+            table1.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.indexed_url,
+                pk: 'exam_id',
+                sortName: 'exam_id',
+                toolbar: '#toolbar1',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                searchFormVisible:false,
+                columns: [
+                    [
+                        // {checkbox: true},
+                        {field: '', title: __('座号')},
+                        {field: '', title: __('模拟器状态')},
+                        {field: '', title: __('学员学号')},
+                        {field: '', title: __('学员姓名')},
+                        {field: '', title: __('考试状态')},
+                        {field: '', title: __('考试成绩')},
+                        {field: '', title: __('故障现象')},
+                        {field: '', title: __('故障部位')},
+                        {field: '', title: __('排除方法')},
+                        {field: 'operate', title: __('Operate'), table: table1,
+                            events: Table.api.events.operate,
+                            // formatter: Table.api.formatter.operate
+                            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',
+                                // }
+                            ],
+                        }
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table1);
+
+
         },
         add: function () {
             Controller.api.bindevent();

+ 98 - 0
public/assets/js/backend/teacher/practice.js

@@ -61,6 +61,104 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             // 为表格绑定事件
             Table.api.bindevent(table);
         },
+        persent: function () {
+            Table.api.init({
+                extend: {
+                    index_url: 'teacher/practice/persent' + location.search,
+                    indexed_url: 'teacher/practice/index' + location.search,
+                    table: 'teacher_exams',
+                }
+            });
+
+            var table = $("#table");
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'exam_id',
+                sortName: 'exam_id',
+                toolbar: '#toolbar',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                searchFormVisible:false,
+                columns: [
+                    [
+                        // {checkbox: true},
+                        {field: '', title: __('更换件')},
+                        {field: '', title: __('学员姓名')},
+                        {field: '', title: __('状态')},
+                        {field: 'endtime', title: __('申请时间'), formatter: Table.api.formatter.datetime, operate: false, addclass: 'datetimerange', sortable: true},
+                        {field: 'operate', title: __('Operate'), table: table,
+                            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',
+                                // }
+                            ],
+                        }
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table);
+
+
+
+            var table1 = $("#table1");
+            // 初始化表格
+            table1.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.indexed_url,
+                pk: 'exam_collection_id',
+                sortName: 'exam_collection_id',
+                toolbar: '#toolbar1',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                searchFormVisible:false,
+                columns: [
+                    [
+                        // {checkbox: true},
+                        {field: '', title: __('座号')},
+                        {field: '', title: __('模拟器状态')},
+                        {field: '', title: __('学员学号')},
+                        {field: '', title: __('学员姓名')},
+                        {field: '', title: __('考试状态')},
+                        {field: '', title: __('考试成绩')},
+                        {field: '', title: __('故障现象')},
+                        {field: '', title: __('故障部位')},
+                        {field: '', title: __('排除方法')},
+                        {field: 'operate', title: __('Operate'), table: table1,
+                            events: Table.api.events.operate,
+                            // formatter: Table.api.formatter.operate
+                            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',
+                                // }
+                            ],
+                        }
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table1);
+
+
+        },
         add: function () {
             Controller.api.bindevent();
         },

+ 89 - 0
public/assets/js/backend/teacher/task.js

@@ -90,6 +90,95 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         api: {
             bindevent: function () {
+                // 选中全部
+                $(".btnselectall").click(function () {
+                    $("input[name='checkbox']").each(function (){
+                        console.log( $( this ).val());
+                        // if ($( this ).attr( "checked" )) {
+                        //     $(this).removeAttr( "checked" );
+                        // } else {
+                            $(this).attr( "checked" , "true" );
+                            $(".fault_ids").val($(this).val()+','+$(".fault_ids").val());
+                        // }
+                    });
+                });
+                //取消选择
+                $(".cancelselectall").click(function () {
+                    $("input[name='checkbox']").each(function (){
+                        console.log( $( this ).val());
+                        if ($( this ).attr( "checked" )) {
+                             $(this).removeAttr( "checked" );
+                            $(".fault_ids").val('');
+                        }
+                    });
+                });
+
+                $('select[name="row[sim_type]"]').change(function () {
+                    $(".fault_ids").val('');
+                    console.log($(this).val());
+                    console.log( $(this).find("option:selected").text())
+                    var xinghao = $(this).find("option:selected").text();
+                    $.ajax({
+                        url: "fault/getdatalist",
+                        type: 'post',
+                        data: {
+                            simtype: $(this).val(),
+                        },
+                        success: function (data) {
+                            if(data.code==1){
+                                var task_tr = '';
+                                var ret = data.data;
+                                for (var i = 0; i < ret.length; i++) {
+                                    if(ret[0].sim_type == '0001'){
+                                        task_tr += '<tr>';
+                                        if(i==0){
+                                            task_tr += '    <td rowspan="11">'+xinghao+'</td>';
+                                        }
+                                        if(i<4){
+                                            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+'"></td>';
+                                            }else{
+                                                task_tr += '    <td>'+ret1[j].name+'</td>';
+                                                task_tr += '    <td><input type="checkbox" name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                            }
+                                        }
+                                        task_tr += '</tr>';
+                                    }else if(ret[0].sim_type == '0002'){
+                                        task_tr += '<tr>';
+                                        if(i==0){
+                                            task_tr += '    <td rowspan="15">'+xinghao+'</td>';
+                                        }
+                                        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+'"></td>';
+                                            }else{
+                                                task_tr += '    <td>'+ret1[j].name+'</td>';
+                                                task_tr += '    <td><input type="checkbox"  name="checkbox" value="'+ret1[j].fault_id+'"></td>';
+                                            }
+                                        }
+                                    }else if(ret[0].sim_type == '0003'){
+
+                                    }
+                                }
+                                $(".task_list").html(task_tr);
+                            }
+                        }
+                    });
+                });
                 Form.api.bindevent($("form[role=form]"));
             }
         }