Browse Source

20241231 调整

贾小兵 5 tháng trước cách đây
mục cha
commit
0bffd2eda4

+ 39 - 1
application/admin/controller/department/Admin.php

@@ -32,7 +32,7 @@ class Admin extends Backend
      * @var array
      */
     protected $allDepartment = [];//
-    protected $noNeedRight=['selectpage','getDepartmentIds'];
+    protected $noNeedRight=['selectpage','getDepartmentIds','departadmintotal'];
 
 
     public function _initialize()
@@ -644,6 +644,44 @@ class Admin extends Backend
     }
 
 
+    public function departadmintotal()
+    {
+        //设置过滤方法
+        $this->request->filter(['strip_tags', 'trim']);
+        if (false === $this->request->isAjax()) {
+            return $this->view->fetch();
+        }
+        //如果发送的来源是 Selectpage,则转发到 Selectpage
+        if ($this->request->request('keyField')) {
+            return $this->selectpage();
+        }
+        [$where, $sort, $order, $offset, $limit] = $this->buildparams();
+        $departmentModel = new DepartmentModel();
+        $list = $departmentModel
+            ->where($where)->where(['level'=>5])
+            ->order($sort, $order)
+            ->paginate($limit);
+        foreach ($list as $k => $v){
+            $v->department_name = '';
+            if(!empty($v->parent_id)){
+                $row = $departmentModel->where(['id'=>$v->parent_id])->find();
+                if(!empty($row->parent_id)){
+                    $row2 = $departmentModel->where(['id'=>$row->parent_id])->find();
+                    if(!empty($row2->parent_id)){
+                        $row3 = $departmentModel->where(['id'=>$row2->parent_id])->find();
+                        if(!empty($row3->parent_id)) {
+                            $row4 = $departmentModel->where(['id' => $row3->parent_id])->find();
+                            $v->department_name = $row4['name'].">>".$row3['name'].">>".$row2['name'].">>".$row['name'].">>".$v['name'];
+                        }
+                    }
+                }
+            }
+            $v->department_admin_count = Db::name('admin')->where(['depart_id'=>$v['id']])->count();
+        }
+        unset($v);
+        $result = ['total' => $list->total(), 'rows' => $list->items()];
+        return json($result);
+    }
 
 
 }

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

@@ -6,6 +6,8 @@ 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\department\Department as DepartmentModel;
 
 /**
  * sim-考试集合管理
@@ -40,6 +42,55 @@ class Collection 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['depart_ids'])){
+            $this->error('请选择区队名称');
+        }
+        $params = $this->preExcludeFields($params);
+
+        if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
+            $params[$this->dataLimitField] = $this->auth->id;
+        }
+        $result = false;
+        Db::startTrans();
+        try {
+            $depart_ids = $params['depart_ids'];
+            //是否采用模型验证
+            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(',',$depart_ids) as $item){
+                if(!empty($item)){
+                    $arr = [
+                        'exam_collection_id' => $this->model->exam_collection_id,
+                        'dept_id' => $item,
+                        'update_time' => date('Y-m-d H:i:s'),
+                    ];
+                    Db::name('real_exam_collection_dept')->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 multi($ids = null)
     {
         if (false === $this->request->isPost()) {

+ 4 - 0
application/admin/controller/teacher/Practice.php

@@ -27,6 +27,10 @@ class Practice extends Backend
         $this->model = new \app\admin\model\teacher\Collection;
         $this->assignConfig('sim_sim_type', ConfigModel::getSimTypeList());
         $this->assignConfig('sim_question_setting_method', ConfigModel::getSimQuestionList());
+
+        $this->assign('sim_sim_type', ConfigModel::getSimTypeList());
+        $this->assign('sim_question_setting_method', ConfigModel::getSimQuestionList());
+
         $this->whereExtend['exam_collection_type'] = 1;
     }
 

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

@@ -8,7 +8,7 @@ return [
     'Exam_collection_state'   => '状态',//:[0]-初始化,[2]-打开,[3]-关闭
     'Exam_collection_name'    => '练习名称',
     'Task_id'                 => '任务ID',
-    'Limit_duration'          => '限制时长(分钟)',
+    'Limit_duration'          => '练习时长(分钟)',
     'Start_time'              => '练习开始时间',
     'End_time'                => '练习结束时间',
     'Create_user_id'          => '创建教师ID/用户ID',

+ 1 - 1
application/admin/view/teacher/collection/add.html

@@ -4,7 +4,7 @@
         <input class="form-control" name="row[exam_collection_type]" type="hidden" value="3">
         <input class="form-control" name="row[create_user_id]" type="hidden" value="{$auth->id}">
         <input class="form-control" name="row[create_by]" type="hidden" value="{$auth->nickname}">
-        <input class="form-control banjiid" name="row[banjiid]" type="text" value="0">
+        <input class="form-control depart_ids" name="row[depart_ids]" type="text" 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">

+ 7 - 108
application/admin/view/teacher/collection/edit.html

@@ -3,7 +3,7 @@
         <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">
-                <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" type="text">
+                <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" value="{$row.exam_collection_name|htmlentities}" type="text">
             </div>
         </div>
         <div class="form-group col-sm-6">
@@ -12,7 +12,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}" {if $row.sim_type eq $key} selected {/if}>{$vo}</option>
                     {/foreach}
                 </select>
             </div>
@@ -20,13 +20,13 @@
         <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="">
+                <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="">
+                <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>
 
@@ -34,7 +34,7 @@
             <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Limit_duration')}:</label>
             <div class="col-xs-12 col-sm-7">
                 <div class="input-group input-groupp-sm">
-                    <input id="c-limit_duration" class="form-control"  type="number"  name="row[limit_duration]" type="number">
+                    <input id="c-limit_duration" class="form-control"  type="number"  name="row[limit_duration]" type="number" value="{$row.limit_duration|htmlentities}">
                     <span class="input-group-addon">分钟</span>
                 </div>
             </div>
@@ -46,7 +46,7 @@
                 <select id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]">
                     <option value="">请选择</option>
                     {foreach name="sim_question_setting_method" item="vo"}
-                    <option value="{$key}" >{$vo}</option>
+                    <option value="{$key}" {if $row.question_setting_method eq $key} selected {/if}>{$vo}</option>
                     {/foreach}
                 </select>
             </div>
@@ -61,7 +61,7 @@
                         <div id="toolbar" class="toolbar">
                             {:build_toolbar('refresh')}
                         </div>
-                        <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
+                        <table id="table1" class="table table-striped table-bordered table-hover table-nowrap"
                                data-operate-edit="{:$auth->check('category/edit')}"
                                data-operate-del="{:$auth->check('category/del')}" data-show-export="false" data-search="false"
                                width="100%">
@@ -80,104 +80,3 @@
         </div>
     </div>
 </form>
-
-
-
-<!--<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">{:__('Sim_type')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-sim_type" data-rule="required" class="form-control" name="row[sim_type]" type="text" value="{$row.sim_type|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Question_setting_method')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]" type="text" value="{$row.question_setting_method|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_type')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-exam_collection_type" data-rule="required" class="form-control" name="row[exam_collection_type]" type="text" value="{$row.exam_collection_type|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_state')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-exam_collection_state" data-rule="required" class="form-control" name="row[exam_collection_state]" type="text" value="{$row.exam_collection_state|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_name')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" type="text" value="{$row.exam_collection_name|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Task_id')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-task_id" data-rule="required" data-source="task/index" class="form-control selectpage" name="row[task_id]" type="text" value="{$row.task_id|htmlentities}">-->
-<!--        </div>-->
-<!--    </div>-->
-<!--    <div class="form-group">-->
-<!--        <label class="control-label col-xs-12 col-sm-2">{:__('Limit_duration')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-limit_duration" class="form-control" name="row[limit_duration]" type="number" value="{$row.limit_duration|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">{:__('Create_user_id')}:</label>-->
-<!--        <div class="col-xs-12 col-sm-8">-->
-<!--            <input id="c-create_user_id" data-rule="required" data-source="create/user/index" class="form-control selectpage" name="row[create_user_id]" type="text" value="{$row.create_user_id|htmlentities}">-->
-<!--        </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}">-->
-<!--        </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">-->
-<!--            <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>-->
-<!--        </div>-->
-<!--    </div>-->
-<!--</form>-->

+ 75 - 87
application/admin/view/teacher/practice/add.html

@@ -1,95 +1,83 @@
 <form id="add-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">{:__('Sim_type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-sim_type" data-rule="required" class="form-control" name="row[sim_type]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Question_setting_method')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_type" data-rule="required" class="form-control" name="row[exam_collection_type]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_state')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_state" data-rule="required" class="form-control" name="row[exam_collection_state]" type="text" value="">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" type="text">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Task_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-task_id" data-rule="required" data-source="task/index" class="form-control selectpage" name="row[task_id]" type="text" value="">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Limit_duration')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-limit_duration" class="form-control" name="row[limit_duration]" type="number">
-        </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="{:date('Y-m-d H:i:s')}">
+    <div class="row">
+        <input class="form-control" name="row[exam_collection_state]" type="hidden" value="3">
+        <input class="form-control" name="row[exam_collection_type]" type="hidden" value="3">
+        <input class="form-control" name="row[create_user_id]" type="hidden" value="{$auth->id}">
+        <input class="form-control" name="row[create_by]" type="hidden" value="{$auth->nickname}">
+        <input class="form-control depart_ids" name="row[depart_ids]" type="text" 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">
+                <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" type="text">
+            </div>
+        </div>
+        <div class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Sim_type')}:</label>
+            <div class="col-xs-12 col-sm-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>
+                    {/foreach}
+                </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>
-    <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="{:date('Y-m-d H:i:s')}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Create_user_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-create_user_id" data-rule="required" data-source="create/user/index" class="form-control selectpage" name="row[create_user_id]" type="text" value="">
-        </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">
-        </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="{:date('Y-m-d H:i:s')}">
-        </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">
-        </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="{:date('Y-m-d H:i:s')}">
+
+        <div class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Limit_duration')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <div class="input-group input-groupp-sm">
+                    <input id="c-limit_duration" class="form-control"  type="number"  name="row[limit_duration]" type="number">
+                    <span class="input-group-addon">分钟</span>
+                </div>
+            </div>
         </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">
+
+        <div class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Question_setting_method')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <select id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]">
+                    <option value="">请选择</option>
+                    {foreach name="sim_question_setting_method" item="vo"}
+                    <option value="{$key}" >{$vo}</option>
+                    {/foreach}
+                </select>
+            </div>
+            <button class="btn btn-info btn-sm" style="display: none">自选考题编辑</button>
+        </div>
+    </div>
+    <div class="panel panel-default panel-intro">
+        <div class="panel-body">
+            <div id="myTabContent" class="tab-content">
+                <div class="tab-pane fade active in" id="one">
+                    <div class="widget-body no-padding">
+                        <div id="toolbar" class="toolbar">
+                            {:build_toolbar('refresh')}
+                        </div>
+                        <table id="table1" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('category/edit')}"
+                               data-operate-del="{:$auth->check('category/del')}" data-show-export="false" data-search="false"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+
+            </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">

+ 71 - 88
application/admin/view/teacher/practice/edit.html

@@ -1,95 +1,78 @@
-<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">{:__('Sim_type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-sim_type" data-rule="required" class="form-control" name="row[sim_type]" type="text" value="{$row.sim_type|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Question_setting_method')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]" type="text" value="{$row.question_setting_method|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_type')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_type" data-rule="required" class="form-control" name="row[exam_collection_type]" type="text" value="{$row.exam_collection_type|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_state')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_state" data-rule="required" class="form-control" name="row[exam_collection_state]" type="text" value="{$row.exam_collection_state|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Exam_collection_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" type="text" value="{$row.exam_collection_name|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Task_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-task_id" data-rule="required" data-source="task/index" class="form-control selectpage" name="row[task_id]" type="text" value="{$row.task_id|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Limit_duration')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-limit_duration" class="form-control" name="row[limit_duration]" type="number" value="{$row.limit_duration|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}">
+<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">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Exam_collection_name')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <input id="c-exam_collection_name" data-rule="required" class="form-control" name="row[exam_collection_name]" value="{$row.exam_collection_name|htmlentities}" type="text">
+            </div>
+        </div>
+        <div class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Sim_type')}:</label>
+            <div class="col-xs-12 col-sm-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}" {if $row.sim_type eq $key} selected {/if}>{$vo}</option>
+                    {/foreach}
+                </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>
-    <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">{:__('Create_user_id')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-create_user_id" data-rule="required" data-source="create/user/index" class="form-control selectpage" name="row[create_user_id]" type="text" value="{$row.create_user_id|htmlentities}">
-        </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 class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Limit_duration')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <div class="input-group input-groupp-sm">
+                    <input id="c-limit_duration" class="form-control"  type="number"  name="row[limit_duration]" type="number" value="{$row.limit_duration|htmlentities}">
+                    <span class="input-group-addon">分钟</span>
+                </div>
+            </div>
         </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}">
+
+        <div class="form-group col-sm-6">
+            <label class="control-label col-xs-12 col-sm-3 addRedStar">{:__('Question_setting_method')}:</label>
+            <div class="col-xs-12 col-sm-7">
+                <select id="c-question_setting_method" data-rule="required" class="form-control" name="row[question_setting_method]">
+                    <option value="">请选择</option>
+                    {foreach name="sim_question_setting_method" item="vo"}
+                    <option value="{$key}" {if $row.question_setting_method eq $key} selected {/if}>{$vo}</option>
+                    {/foreach}
+                </select>
+            </div>
+            <button class="btn btn-info btn-sm" style="display: none">自选考题编辑</button>
+        </div>
+    </div>
+    <div class="panel panel-default panel-intro">
+        <div class="panel-body">
+            <div id="myTabContent" class="tab-content">
+                <div class="tab-pane fade active in" id="one">
+                    <div class="widget-body no-padding">
+                        <div id="toolbar" class="toolbar">
+                            {:build_toolbar('refresh')}
+                        </div>
+                        <table id="table1" class="table table-striped table-bordered table-hover table-nowrap"
+                               data-operate-edit="{:$auth->check('category/edit')}"
+                               data-operate-del="{:$auth->check('category/del')}" data-show-export="false" data-search="false"
+                               width="100%">
+                        </table>
+                    </div>
+                </div>
+
+            </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">

+ 105 - 37
public/assets/js/backend/teacher/collection.js

@@ -49,15 +49,44 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
                         // {field: 'task_id', title: __('Task_id')},
                         {field: 'limit_duration', title: __('Limit_duration')},
-                        {field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        {field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+                        {field: 'start_time', title: __('Start_time'), operate:false, addclass:'datetimerange', autocomplete:false},
+                        {field: 'end_time', title: __('End_time'), operate:false, addclass:'datetimerange', autocomplete:false},
                         // {field: 'create_user_id', title: __('Create_user_id')},
                         {field: 'create_by', title: __('Create_by'), operate: 'LIKE'},
-                        {field: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+                        {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},
                         // {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=\'["85%","85%"]\'',
+                                    url: 'teacher/collection/edit',
+                                },{
+                                    name: 'dispatch',
+                                    text: '',
+                                    icon: 'fa fa-trash',
+                                    title: '删除',
+                                    classname: 'btn btn-danger btn-xs btn-magic btn-ajax',
+                                    url: 'teacher/collection/del',
+                                    confirm: '确定要删除吗?',
+                                    success: function (data, ret) {
+                                        $(".btn-refresh").trigger("click");
+                                    },
+                                    error: function (data, ret) {
+                                        Layer.alert(ret.msg);
+                                        return false;
+                                    }
+                                }
+                            ],
+                        }
                     ]
                 ]
             });
@@ -66,41 +95,48 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             Table.api.bindevent(table);
         },
         add: function () {
-            Table.api.init({
-                extend: {
-                    index_url: 'teacher/collection/index' + location.search,
-                }
-            });
-
-            var table = $("#table1");
+            // Table.api.init({
+            //     extend: {
+            //         index_url: 'department/admin/departadmintotal' + location.search,
+            //     }
+            // });
+            // var table = $("#table1");
+            // // 初始化表格
+            // table.bootstrapTable({
+            //     url: $.fn.bootstrapTable.defaults.extend.index_url,
+            //     pk: 'id',
+            //     sortName: 'id',
+            //     fixedColumns: true,
+            //     fixedRightNumber: 1,
+            //     searchFormVisible:false,
+            //     Search:false,
+            //     columns: [
+            //         [
+            //             {checkbox: true},
+            //             {field: 'department_name', title: __('区队名称'), operate: false,width: '400px', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+            //             {field: 'department_admin_count', title: __('全部人员数量'),operate: false},
+            //         ]
+            //     ]
+            // });
+            //
+            // // 为表格绑定事件
+            // Table.api.bindevent(table);
 
-            // 初始化表格
-            table.bootstrapTable({
-                url: $.fn.bootstrapTable.defaults.extend.index_url,
-                pk: 'exam_collection_id',
-                sortName: 'exam_collection_id',
-                fixedColumns: true,
-                fixedRightNumber: 1,
-                searchFormVisible:false,
-                Search:false,
-                columns: [
-                    [
-                        {checkbox: true},
-                        {field: 'exam_collection_name', title: __('区队名称'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {field: 'exam_collection_id', title: __('全部人员数量'),operate: false},
-                    ]
-                ]
+            //全选
+            $("input[name='btSelectAll']").click(function () {
+                var ids = Table.api.selectedids(table);
+                console.log(ids);
+                $(".depart_ids").val(ids);
             });
-
-            // 为表格绑定事件
-            Table.api.bindevent(table);
-
-            var ids = Table.api.selectedids(table);
-            $(".banjiid").val(ids);
-
-            console.log(ids);
-            // return;
-
+            //单个选择
+            // $("#table1>.selected>.bs-checkbox>input[name='btSelectItem']").click(function () {
+            //     alert('111111')
+            //     console.log('asdfasdf')
+            //     console.log($("#table").bootstrapTable('getSelections'));
+            //     console.log('asdfasdf')
+            //     // var ids =  Table.api.selectedids(table);
+            //     // $(".banjiid").val(ids);
+            // });
             Controller.api.bindevent();
         },
         edit: function () {
@@ -108,7 +144,39 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         api: {
             bindevent: function () {
+                Table.api.init({
+                    extend: {
+                        index_url: 'department/admin/departadmintotal' + location.search,
+                    }
+                });
+                var table = $("#table1");
+                // 初始化表格
+                table.bootstrapTable({
+                    url: $.fn.bootstrapTable.defaults.extend.index_url,
+                    pk: 'id',
+                    sortName: 'id',
+                    fixedColumns: true,
+                    fixedRightNumber: 1,
+                    searchFormVisible:false,
+                    Search:false,
+                    columns: [
+                        [
+                            {checkbox: true},
+                            {field: 'department_name', title: __('区队名称'), operate: false,width: '400px', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                            {field: 'department_admin_count', title: __('全部人员数量'),operate: false},
+                        ]
+                    ]
+                });
+
+                // 为表格绑定事件
+                Table.api.bindevent(table);
+
 
+                $("input[name='btSelectAll']").click(function () {
+                    var ids = Table.api.selectedids(table);
+                    console.log(ids);
+                    $(".depart_ids").val(ids);
+                });
 
                 Form.api.bindevent($("form[role=form]"));
             }

+ 76 - 10
public/assets/js/backend/teacher/practice.js

@@ -1,16 +1,19 @@
 define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
 
     var Controller = {
+
         index: function () {
+            $('.btn-add').data('area',['85%','85%']);
+            $('.btn-edit').data('area',['85%','85%']);
             // 初始化表格参数配置
             Table.api.init({
                 extend: {
-                    index_url: 'teacher/collection/index' + location.search,
-                    add_url: 'teacher/collection/add',
-                    edit_url: 'teacher/collection/edit',
-                    del_url: 'teacher/collection/del',
-                    multi_url: 'teacher/collection/multi',
-                    import_url: 'teacher/collection/import',
+                    index_url: 'teacher/practice/index' + location.search,
+                    add_url: 'teacher/practice/add',
+                    edit_url: 'teacher/practice/edit',
+                    del_url: 'teacher/practice/del',
+                    multi_url: 'teacher/practice/multi',
+                    import_url: 'teacher/practice/import',
                     table: 'teacher_collection',
                 }
             });
@@ -49,11 +52,40 @@ 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: 'createtime', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete: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},
                         // {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=\'["85%","85%"]\'',
+                                    url: 'teacher/practice/edit',
+                                },{
+                                    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;
+                                    }
+                                }
+                            ],
+                        }
                     ]
                 ]
             });
@@ -156,8 +188,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 
             // 为表格绑定事件
             Table.api.bindevent(table1);
-
-
         },
         add: function () {
             Controller.api.bindevent();
@@ -167,6 +197,42 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         },
         api: {
             bindevent: function () {
+
+                Table.api.init({
+                    extend: {
+                        index_url: 'department/admin/departadmintotal' + location.search,
+                    }
+                });
+                var table = $("#table1");
+                // 初始化表格
+                table.bootstrapTable({
+                    url: $.fn.bootstrapTable.defaults.extend.index_url,
+                    pk: 'id',
+                    sortName: 'id',
+                    fixedColumns: true,
+                    fixedRightNumber: 1,
+                    searchFormVisible:false,
+                    Search:false,
+                    columns: [
+                        [
+                            {checkbox: true},
+                            {field: 'department_name', title: __('区队名称'), operate: false,width: '400px', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                            {field: 'department_admin_count', title: __('全部人员数量'),operate: false},
+                        ]
+                    ]
+                });
+
+                // 为表格绑定事件
+                Table.api.bindevent(table);
+
+
+                $("input[name='btSelectAll']").click(function () {
+                    var ids = Table.api.selectedids(table);
+                    console.log(ids);
+                    $(".depart_ids").val(ids);
+                });
+
+
                 Form.api.bindevent($("form[role=form]"));
             }
         }