瀏覽代碼

标准管理

huangsanjia 2 年之前
父節點
當前提交
304be63ef8

+ 185 - 1
application/admin/controller/item/Check.php

@@ -3,7 +3,8 @@
 namespace app\admin\controller\item;
 
 use app\common\controller\Backend;
-
+use \think\Session;
+use \think\Db;
 /**
  * 检测项目管理
  *
@@ -34,5 +35,188 @@ class Check extends Backend
      * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
      */
 
+    /**
+     * 添加
+     *
+     * @return string
+     * @throws \think\Exception
+     */
+    public function add()
+    {
+        if (false === $this->request->isPost()) {
+            return $this->view->fetch();
+        }
+        $baseData = $this->request->post('baseData/a');
+        $data = $this->request->post('data/a');
+        if (empty($baseData)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        //基础数据
+        $params['name'] = $baseData[0];
+        $params['check_no'] = $baseData[1];
+        $params['check_name'] = $baseData[2];
+        $params['unit'] = $baseData[3];
+        $params['check_max'] = $baseData[4];
+        $params['check_min'] = $baseData[5];
+        $params['class'] = $baseData[6];
+        $params['scope'] = $baseData[7];
+        $params['status'] = $baseData[8];
+        $params['remark'] = $baseData[9];
+        $params['is_child'] = $baseData[10];
+        $params['create'] = $baseData[11];
+        $params['userid'] = Session::get('admin')['id'];
+        $validate =  $this->validate($params,'admin/item/Check.add');
+        if (true !== $validate){
+            $this->error($validate);
+        }
+        if ($params['is_child'] == 0 && ($params['check_max'] == '' || $params['check_min'] == '')){
+            $this->error('没有子项,检出限和定量限不能为空');
+        }
+        $result = true;
+        Db::startTrans();
+        try {
+            $pid = Db::name('item_check')->insertGetId($params);
+            if (!$pid){
+                $result = false;
+            }
+            if ($params['is_child'] == 1 && !empty($data)){
+                $childData = [];
+                foreach ($data as $key => $value){
+                    $childData[$key]['pid'] = $pid;
+                    $childData[$key]['p_name'] = $value[0];
+                    $childData[$key]['name'] = $value[1];
+                    $childData[$key]['unit'] = $value[2];
+                    $childData[$key]['check_max'] = $value[3];
+                    $childData[$key]['check_min'] = $value[4];
+                    $childData[$key]['create'] = date('Y-m-d H:i:s');
+                }
+                $res = Db::name('item_check_detail')->insertAll($childData);
+                if (!$res){
+                    $result = false;
+                }
+            }
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if ($result === false) {
+            $this->error(__('No rows were inserted'));
+        }
+        $this->success();
+    }
+
+    /**
+     * 编辑
+     *
+     * @param $ids
+     * @return string
+     * @throws DbException
+     * @throws \think\Exception
+     */
+    public function edit($ids = null)
+    {
+        if (false === $this->request->isPost()) {
+            $row = $this->model->get($ids);
+            if (!$row) {
+                $this->error(__('No Results were found'));
+            }
+            $adminIds = $this->getDataLimitAdminIds();
+            if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {
+                $this->error(__('You have no permission'));
+            }
+            if ($row['is_child'] == 1){
+                $childData = Db::name('item_check_detail')->where('pid',$row['id'])->where('status',1)->select();
+                $this->view->assign('childData', $childData);
+            }
+            $this->view->assign('row', $row);
+            return $this->view->fetch();
+        }
+
+        $baseData = $this->request->post('baseData/a');
+        $data = $this->request->post('data/a');
+
+        if (empty($baseData)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        //基础数据
+        $params['name'] = $baseData[0];
+        $params['check_no'] = $baseData[1];
+        $params['check_name'] = $baseData[2];
+        $params['unit'] = $baseData[3];
+        $params['check_max'] = $baseData[4];
+        $params['check_min'] = $baseData[5];
+        $params['class'] = $baseData[6];
+        $params['scope'] = $baseData[7];
+        $params['status'] = $baseData[8];
+        $params['remark'] = $baseData[9];
+        $params['is_child'] = $baseData[10];
+        $params['update'] = date('Y-m-d H:i:s');
+        $pid = $baseData[12];//主键id
+        $validate =  $this->validate($params,'admin/item/Check.edit');
+        if (true !== $validate){
+            $this->error($validate);
+        }
+        if ($params['is_child'] == 0 && ($params['check_max'] == '' || $params['check_min'] == '')){
+            $this->error('没有子项,检出限和定量限不能为空');
+        }
+        $insertData = [];  //新增的子项
+        $updateData = []; //修改的子项
+        $idList = []; //删除的子项id
+        if ($params['is_child'] == 1 && !empty($data)){
+            foreach ($data as $key => $value){
+                if ($value[5] == 0){
+                    $insertData[$key]['pid'] = $pid;
+                    $insertData[$key]['p_name'] = $value[0];
+                    $insertData[$key]['name'] = $value[1];
+                    $insertData[$key]['unit'] = $value[2];
+                    $insertData[$key]['check_max'] = $value[3];
+                    $insertData[$key]['check_min'] = $value[4];
+                    $insertData[$key]['create'] = date('Y-m-d H:i:s');
+                }else{
+                    $updateData[$key]['p_name'] = $value[0];
+                    $updateData[$key]['name'] = $value[1];
+                    $updateData[$key]['unit'] = $value[2];
+                    $updateData[$key]['check_max'] = $value[3];
+                    $updateData[$key]['check_min'] = $value[4];
+                    $updateData[$key]['id'] = $value[5];
+                    $idList[$key] = $value[5];
+                }
+            }
+        }
+
+        $result = true;
+        Db::startTrans();
+        try {
+            Db::name('item_check')->where('id',$pid)->update($params);
+            if (!empty($idList)){
+                $idRes = Db::name('item_check_detail')->where('pid',$pid)->where('id','not in',$idList)->setField('status',0);
+            }
+            if (!empty($insertData)){
+                $insertRes =  Db::name('item_check_detail')->insertAll($insertData);
+                if (!$insertRes){
+                    $result = false;
+                }
+            }
+            if (!empty($updateData)){
+                foreach ($updateData as $k=>$v){
+                    Db::name('item_check_detail')->where('id',$v['id'])->update($v);
+                }
+            }
+            //如果修改成没有子项,删除其关联子项
+            if ($params['is_child'] == 0){
+                Db::name('item_check_detail')->where('pid',$pid)->setField('status',0);
+            }
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if (false === $result) {
+            $this->error(__('No rows were updated'));
+        }
+        $this->success();
+    }
+
 
 }

+ 13 - 3
application/admin/validate/item/Check.php

@@ -10,18 +10,28 @@ class Check extends Validate
      * 验证规则
      */
     protected $rule = [
+        'name' => 'require',
+        'check_no' => 'require',
+        'check_name' => 'require',
+        'class'    => 'require',
+        'scope'   => 'require',
     ];
     /**
      * 提示消息
      */
-    protected $message = [
+    protected $message  =   [
+        'name.require' => '项目名称不能为空',
+        'check_no.require'     => '检测标准编号不能为空',
+        'check_name.require'   => '检测标准名称不能为空',
+        'class.require'  => '标准类别不能为空',
+        'scope.require'        => '认证范围不能为空',
     ];
     /**
      * 验证场景
      */
     protected $scene = [
-        'add'  => [],
-        'edit' => [],
+        'add'  => ['name', 'check_no', 'check_name', 'class', 'scope'],
+        'edit' => ['name', 'check_no', 'check_name', 'class', 'scope'],
     ];
     
 }

+ 12 - 24
application/admin/view/item/check/add.html

@@ -8,17 +8,17 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
         <div class="col-xs-12 col-sm-3">
-            <input id="c-name" class="form-control" name="row[name]" type="text">
+            <input id="c-name" class="form-control" name="row[name]" type="text" data-rule="required" data-msg-required="项目名称不能为空" value="">
         </div>
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_no')}:</label>
         <div class="col-xs-12 col-sm-3">
-            <input id="c-check_no" class="form-control" name="row[check_no]" type="text">
+            <input id="c-check_no" class="form-control" name="row[check_no]" type="text" data-rule="required" data-msg-required="检测标准编号不能为空">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_name')}:</label>
         <div class="col-xs-12 col-sm-3">
-            <input id="c-check_name" class="form-control" name="row[check_name]" type="text">
+            <input id="c-check_name" class="form-control" name="row[check_name]" type="text" data-rule="required" data-msg-required="检测标准名称不能为空">
         </div>
         <label class="control-label col-xs-12 col-sm-2">{:__('Unit')}:</label>
         <div class="col-xs-12 col-sm-3">
@@ -36,22 +36,16 @@
             <input id="c-check_min" class="form-control" name="row[check_min]" type="text">
         </div>
     </div>
-<!--    <div class="form-group">-->
-<!--        -->
-<!--    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Class')}:</label>
         <div class="col-xs-12 col-sm-3">
-            <input id="c-class" class="form-control" name="row[class]" type="text">
+            <input id="c-class" class="form-control" name="row[class]" type="text" data-rule="required" data-msg-required="标准类别不能为空">
         </div>
         <label class="control-label col-xs-12 col-sm-2">{:__('Scope')}:</label>
         <div class="col-xs-12 col-sm-3">
-            <input id="c-scope" class="form-control" name="row[scope]" type="text">
+            <input id="c-scope" class="form-control" name="row[scope]" type="text" data-rule="required" data-msg-required="认证范围不能为空">
         </div>
     </div>
-<!--    <div class="form-group">-->
-<!--       -->
-<!--    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
         <div class="col-xs-12 col-sm-3">
@@ -66,9 +60,6 @@
             <input id="c-remark" class="form-control" name="row[remark]" type="text">
         </div>
     </div>
-<!--    <div class="form-group">-->
-<!--       -->
-<!--    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Is_child')}:</label>
         <div class="col-xs-12 col-sm-3">
@@ -83,11 +74,8 @@
             <input id="c-create" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create]" type="text" value="{:date('Y-m-d H:i:s')}">
         </div>
     </div>
-<!--    <div class="form-group">-->
-
-<!--    </div>-->
     <div id="detail" style="display: none">
-        <label class="control-label col-xs-12 col-sm-2" style="color: green">子项目:</label>
+        <label class="control-label col-xs-12 col-sm-2" style="color: indianred;font-size: larger;"><b>子项目:</b></label>
         <div class="col-xs-12 col-sm-8" style="">
             <table class="col-xs-12 col-sm-12 gridtable" id="check_child">
                 <thead>
@@ -102,11 +90,11 @@
                 </thead>
                 <tbody>
                     <tr>
-                        <td><input class="form-control p_name" name="row[remark]" type="text"></td>
-                        <td><input class="form-control name" name="row[remark]" type="text"></td>
-                        <td><input class="form-control unit" name="row[remark]" type="text"></td>
-                        <td><input class="form-control check_max" name="row[remark]" type="text"></td>
-                        <td><input class="form-control check_min" name="row[remark]" type="text"></td>
+                        <td><input class="form-control p_name" name="p_name" type="text"></td>
+                        <td><input class="form-control child_name" name="child_name" type="text"></td>
+                        <td><input class="form-control child_unit" name="child_unit" type="text"></td>
+                        <td><input class="form-control child_check_max" name="child_check_max" type="text"></td>
+                        <td><input class="form-control child_check_min" name="child_check_min" type="text"></td>
                         <td style="text-align: center">
                             <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp;
                             <button type="button" class="btn btn-danger del">删除</button>
@@ -119,7 +107,7 @@
     <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>
+            <button type="submit" class="btn btn-primary btn-embossed disabled submit">{:__('OK')}</button>
             <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
         </div>
     </div>

+ 88 - 47
application/admin/view/item/check/edit.html

@@ -1,111 +1,152 @@
+<style type="text/css">
+    table.gridtable { font-family: verdana,arial,sans-serif; font-size:11px; color:#333333; border-width: 1px; border-color: #666666; border-collapse: collapse; }
+    table.gridtable th { border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #dedede;text-align: center }
+    table.gridtable td { border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #ffffff; }
+</style>
 <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
-
     <div class="form-group">
+        <input type="hidden" id="pid" value="{$row.id}">
         <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
         </div>
-    </div>
-    <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_no')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-check_no" class="form-control" name="row[check_no]" type="text" value="{$row.check_no|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_name')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-check_name" class="form-control" name="row[check_name]" type="text" value="{$row.check_name|htmlentities}">
         </div>
-    </div>
-    <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Unit')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-unit" class="form-control" name="row[unit]" type="text" value="{$row.unit|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_max')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-check_max" class="form-control" name="row[check_max]" type="text" value="{$row.check_max|htmlentities}">
         </div>
-    </div>
-    <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Check_min')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-check_min" class="form-control" name="row[check_min]" type="text" value="{$row.check_min|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Class')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-class" class="form-control" name="row[class]" type="text" value="{$row.class|htmlentities}">
         </div>
-    </div>
-    <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Scope')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-scope" class="form-control" name="row[scope]" type="text" value="{$row.scope|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            
+        <div class="col-xs-12 col-sm-3">
             <div class="radio">
             {foreach name="statusList" item="vo"}
             <label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label> 
             {/foreach}
             </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">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-remark" class="form-control" name="row[remark]" type="text" value="{$row.remark|htmlentities}">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Is_child')}:</label>
-        <div class="col-xs-12 col-sm-8">
-                        
+        <div class="col-xs-12 col-sm-3">
             <select  id="c-is_child" class="form-control selectpicker" name="row[is_child]">
                 {foreach name="isChildList" item="vo"}
                     <option value="{$key}" {in name="key" value="$row.is_child"}selected{/in}>{$vo}</option>
                 {/foreach}
             </select>
-
         </div>
-    </div>
-    <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Create')}:</label>
-        <div class="col-xs-12 col-sm-8">
+        <div class="col-xs-12 col-sm-3">
             <input id="c-create" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[create]" type="text" value="{$row.create}">
         </div>
     </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Update')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-update" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[update]" type="text" value="{$row.update}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Userid')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-userid" class="form-control" name="row[userid]" type="number" value="{$row.userid|htmlentities}">
-        </div>
-    </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Path')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-path" class="form-control" name="row[path]" type="text" value="{$row.path|htmlentities}">
+    {if condition="$row.is_child eq 1"}
+        <div id="detail" style="">
+            <label class="control-label col-xs-12 col-sm-2" style="color: indianred;font-size: larger;"><b>子项目:</b></label>
+            <div class="col-xs-12 col-sm-8" style="">
+                <table class="col-xs-12 col-sm-12 gridtable" id="check_child">
+                    <thead>
+                    <tr>
+                        <th class="col-xs-12 col-sm-2">项目名称</th>
+                        <th class="col-xs-12 col-sm-2">子项目名称</th>
+                        <th class="col-xs-12 col-sm-2">单位</th>
+                        <th class="col-xs-12 col-sm-2">检出限</th>
+                        <th class="col-xs-12 col-sm-2">定量限</th>
+                        <th class="col-xs-12 col-sm-2">操作</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    {foreach name="childData" id="vo"}
+                    <tr>
+                        <td><input class="form-control p_name" name="p_name" type="text" value="{$vo.p_name}"></td>
+                        <td><input class="form-control child_name" name="child_name" type="text" value="{$vo.name}"></td>
+                        <td><input class="form-control child_unit" name="child_unit" type="text" value="{$vo.unit}"></td>
+                        <td><input class="form-control child_check_max" name="child_check_max" type="text" value="{$vo.check_max}"></td>
+                        <td><input class="form-control child_check_min" name="child_check_min" type="text" value="{$vo.check_min}"></td>
+                        <td style="text-align: center">
+                            <input type="hidden" value="{$vo.id}">
+                            <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp;
+                            <button type="button" class="btn btn-danger del">删除</button>
+                        </td>
+                    </tr>
+                    {/foreach}
+                    </tbody>
+                </table>
+            </div>
         </div>
-    </div>
+    {else /}
+    <div id="detail_zero" style="display: none">
+        <label class="control-label col-xs-12 col-sm-2" style="color: green">子项目:</label>
+        <div class="col-xs-12 col-sm-8" style="">
+            <table class="col-xs-12 col-sm-12 gridtable" id="check_child_zero">
+                <thead>
+                <tr>
+                    <th class="col-xs-12 col-sm-2">项目名称</th>
+                    <th class="col-xs-12 col-sm-2">子项目名称</th>
+                    <th class="col-xs-12 col-sm-2">单位</th>
+                    <th class="col-xs-12 col-sm-2">检出限</th>
+                    <th class="col-xs-12 col-sm-2">定量限</th>
+                    <th class="col-xs-12 col-sm-2">操作</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr>
+                    <td><input class="form-control p_name" name="p_name" type="text" value=""></td>
+                    <td><input class="form-control child_name" name="child_name" type="text" value=""></td>
+                    <td><input class="form-control child_unit" name="child_unit" type="text" value=""></td>
+                    <td><input class="form-control child_check_max" name="child_check_max" type="text" value=""></td>
+                    <td><input class="form-control child_check_min" name="child_check_min" type="text" value=""></td>
+                    <td style="text-align: center">
+                        <input type="hidden" value="">
+                        <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp;
+                        <button type="button" class="btn btn-danger del">删除</button>
+                    </td>
+                </tr>
+                </tbody>
+            </table>
+        </div>
+    </div>
+    {/if}
+
+
+
     <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>
+            <button type="submit" class="btn btn-primary btn-embossed disabled submit">{:__('OK')}</button>
             <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
         </div>
     </div>

+ 272 - 10
public/assets/js/backend/item/check.js

@@ -27,7 +27,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'id', title: __('Id')},
+                        {field: 'id', title: '序号'},
                         {field: 'name', title: __('Name'), operate: 'LIKE'},
                         {field: 'check_no', title: __('Check_no'), operate: 'LIKE'},
                         {field: 'check_name', title: __('Check_name'), operate: 'LIKE'},
@@ -39,14 +39,16 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"0":__('Status 0')}, formatter: Table.api.formatter.status},
                         {field: 'remark', title: __('Remark'), operate: 'LIKE'},
                         {field: 'is_child', title: __('Is_child'), searchList: {"0":__('Is_child 0'),"1":__('Is_child 1')}, formatter: Table.api.formatter.normal},
-                        {field: 'create', title: __('Create'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
-                        // {field: 'update', title: __('Update'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+                        // {field: 'create', title: __('Create'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                         {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                 ]
             });
             $(".btn-add").data("area", ["100%","100%"]);
-
+            $(".btn-edit").data("area", ["100%","100%"]);
+            table.on('post-body.bs.table', function (e, settings, json, xhr) {
+                $(".btn-editone").data("area", ["100%", "100%"]);
+            });
             // 为表格绑定事件
             Table.api.bindevent(table);
         },
@@ -114,7 +116,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         add: function () {
             $('#c-is_child').change(function () {
                 var is_child = $('#c-is_child option:selected').val();
-                console.log(is_child)
+                var name = $('#c-name').val();
+                $('.p_name').val(name);
                 if (is_child == 1){
                     document.getElementById("detail").style.display="block";//显示
                 }else{
@@ -123,12 +126,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             })
             //增加一行
             $(document).on('click','.add',function () {
+                var name = $('#c-name').val();
                 var html = '';
-                html += '<tr><td><input class="form-control p_name" name="row[remark]" type="text"></td>';
-                html += '<td><input class="form-control name" name="row[remark]" type="text"></td>';
-                html += '<td><input class="form-control unit" name="row[remark]" type="text"></td>';
-                html += '<td><input class="form-control check_max" name="row[remark]" type="text"></td>';
-                html += '<td><input class="form-control check_min" name="row[remark]" type="text"></td>';
+                html += '<tr><td><input class="form-control p_name" name="row[][p_name]" type="text" value="'+name+'"></td>';
+                html += '<td><input class="form-control child_name" name="row[][child_name]" type="text"></td>';
+                html += '<td><input class="form-control child_unit" name="row[][child_unit]" type="text"></td>';
+                html += '<td><input class="form-control child_check_max" name="row[][child_check_max]" type="text"></td>';
+                html += '<td><input class="form-control child_check_min" name="row[][child_check_min]" type="text"></td>';
                 html += '<td style="text-align: center"> <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp; <button type="button" class="btn btn-danger del">删除</button></td>';
                 html += '</tr>'
                 $('#check_child').append(html);
@@ -144,9 +148,267 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 }
             });
             Controller.api.bindevent();
+            $(document).on('click','.submit',function () {
+                Form.api.bindevent($("form[role=form]"), function(data, ret){
+                    Toastr.success('111');//成功
+                }, function(data, ret){
+                    Toastr.success("222");
+                }, function(success, error){
+                    //项目名称
+                    var name = $('#c-name').val();
+                    if (name == '' || name== undefined) {
+                        layer.confirm("项目名称不能为空");return false;
+                    }
+                    //检测标准编码
+                    var check_no = $('#c-check_no').val();
+                    if (check_no == '' || check_no== undefined) {
+                        layer.confirm("检测标准编号不能为空");return false;
+                    }
+                    //检测标准名称
+                    var check_name = $('#c-check_name').val();
+                    if (check_name == '' || check_name== undefined) {
+                        layer.confirm("检测标准名称不能为空");return false;
+                    }
+                    var unit = $('#c-unit').val();       //单位
+                    var check_max = $('#c-check_max').val();       //检出限
+                    var check_min = $('#c-check_min').val();       //定量限
+                    //标准类别
+                    var c_class = $('#c-class').val();
+                    if (c_class == '' || c_class== undefined) {
+                        layer.confirm("标准类别不能为空");return false;
+                    }
+                    //认证范围
+                    var scope = $('#c-scope').val();
+                    if (scope == '' || scope== undefined) {
+                        layer.confirm("认证范围不能为空");return false;
+                    }
+                    var status = $("input[name='row[status]']:checked").val();       //状态
+                    var remark = $('#c-remark').val();       //备注
+                    var is_child = $('#c-is_child option:selected').val();       //是否有子项
+                    var create = $('#c-create').val();       //创建时间
+                    if (is_child == 0 && (check_min == '' || check_max == '')){
+                        layer.confirm("没有子项,检出限和定量限不能为空");return false;
+                    }
+                    //基础数据
+                    var baseData = [];
+                    baseData.push(name);
+                    baseData.push(check_no);
+                    baseData.push(check_name);
+                    baseData.push(unit);
+                    baseData.push(check_max);
+                    baseData.push(check_min);
+                    baseData.push(c_class);
+                    baseData.push(scope);
+                    baseData.push(status);
+                    baseData.push(remark);
+                    baseData.push(is_child);
+                    baseData.push(create);
+                    //检测子项数据
+                    var data = [];
+                    if (is_child == 1){//有检测子项就传递数据
+                        var formulaTrList = $("#check_child").find("tr");//行数
+                        for (var i = 1; i < formulaTrList.length; i++) {
+                            var formulaData = [];
+                            var formulaTrArr=formulaTrList.eq(i);
+                            var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
+                            var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
+                            var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
+                            var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
+                            var tdFiv = formulaTrArr.children("td").eq(4).find("input").val();
+                            if (tdOne == '' || tdTwo == '' || tdThr == '' || tdFou == '' || tdFiv == '' ){
+                                layer.confirm('检测子项信息不能为空!');return false;
+                            }
+                            formulaData.push(tdOne);
+                            formulaData.push(tdTwo);
+                            formulaData.push(tdThr);
+                            formulaData.push(tdFou);
+                            formulaData.push(tdFiv);
+                            data.push(formulaData);
+                        }
+                    }
+                    console.log("到这里了");
+                    console.log(baseData);
+                    console.log(data);
+                    // return false;
+                    Fast.api.ajax({
+                        url:'item/check/add',
+                        data:{baseData:baseData,data:data}
+                    },function (data,ret) {
+                        //成功回调
+                        parent.Toastr.success("添加成功");
+                        Fast.api.close();
+                        parent.Fast.api.refreshmenu();
+                        return false;
+                    },function (data,ret) {
+                        parent.Toastr.error("添加失败");
+                        Fast.api.close();
+                        return false;
+                    });
+                    return false;
+                });
+            });
         },
         edit: function () {
+            $('#c-is_child').change(function () {
+                var is_child = $('#c-is_child option:selected').val();
+                var name = $('#c-name').val();
+                var detail = document.getElementById("detail");
+                $('.p_name').val(name);
+                if (is_child == 1){
+                    if (detail == null || detail == 'undefined'){
+                        document.getElementById("detail_zero").style.display="block";//显示
+                    }else{
+                        document.getElementById("detail").style.display="block";//显示
+                    }
+                }else{
+                    if (detail == null || detail == 'undefined'){
+                        document.getElementById("detail_zero").style.display="none";//隐藏
+                    }else{
+                        document.getElementById("detail").style.display="none";//隐藏
+                    }
+                }
+            })
+            //增加一行
+            $(document).on('click','.add',function () {
+                var name = $('#c-name').val();
+                var html = '';
+                html += '<tr><td><input class="form-control p_name" name="row[][p_name]" type="text" value="'+name+'"></td>';
+                html += '<td><input class="form-control child_name" name="row[][child_name]" type="text"></td>';
+                html += '<td><input class="form-control child_unit" name="row[][child_unit]" type="text"></td>';
+                html += '<td><input class="form-control child_check_max" name="row[][child_check_max]" type="text"></td>';
+                html += '<td><input class="form-control child_check_min" name="row[][child_check_min]" type="text"></td>';
+                html += '<td style="text-align: center"><input type="hidden" value=""> <button type="button" class="btn btn-success add">添加</button>&nbsp;&nbsp; <button type="button" class="btn btn-danger del">删除</button></td>';
+                html += '</tr>'
+                var detail = document.getElementById("detail");
+                if (detail == null || detail == 'undefined'){
+                    $('#check_child_zero').append(html);
+                }else{
+                    $('#check_child').append(html);
+                }
+            })
+            //删除一行
+            $(document).on('click','.del',function () {
+                var detail = document.getElementById("detail");
+                if (detail == null || detail == 'undefined'){
+                    var num = document.getElementById("check_child_zero").getElementsByTagName("tr").length;
+                }else{
+                    var num = document.getElementById("check_child").getElementsByTagName("tr").length;
+                }
+                console.log(num)
+                if (num <= 2){
+                    layer.confirm('已经是最后一行了');
+                }else{
+                    $(this).parent().parent().remove();
+                }
+            });
             Controller.api.bindevent();
+            $(document).on('click','.submit',function () {
+                Form.api.bindevent($("form[role=form]"), function(data, ret){
+                    Toastr.success('111');//成功
+                }, function(data, ret){
+                    Toastr.success("222");
+                }, function(success, error){
+                    //项目名称
+                    var name = $('#c-name').val();
+                    if (name == '' || name== undefined) {
+                        layer.confirm("项目名称不能为空");return false;
+                    }
+                    //检测标准编码
+                    var check_no = $('#c-check_no').val();
+                    if (check_no == '' || check_no== undefined) {
+                        layer.confirm("检测标准编号不能为空");return false;
+                    }
+                    //检测标准名称
+                    var check_name = $('#c-check_name').val();
+                    if (check_name == '' || check_name== undefined) {
+                        layer.confirm("检测标准名称不能为空");return false;
+                    }
+                    var unit = $('#c-unit').val();       //单位
+                    var check_max = $('#c-check_max').val();       //检出限
+                    var check_min = $('#c-check_min').val();       //定量限
+                    //标准类别
+                    var c_class = $('#c-class').val();
+                    if (c_class == '' || c_class== undefined) {
+                        layer.confirm("标准类别不能为空");return false;
+                    }
+                    //认证范围
+                    var scope = $('#c-scope').val();
+                    if (scope == '' || scope== undefined) {
+                        layer.confirm("认证范围不能为空");return false;
+                    }
+                    var status = $("input[name='row[status]']:checked").val();       //状态
+                    var remark = $('#c-remark').val();       //备注
+                    var is_child = $('#c-is_child option:selected').val();       //是否有子项
+                    var create = $('#c-create').val();       //创建时间
+                    var id = $('#pid').val();
+                    if (is_child == 0 && (check_min == '' || check_max == '')){
+                        layer.confirm("没有子项,检出限和定量限不能为空");return false;
+                    }
+                    //基础数据
+                    var baseData = [];
+                    baseData.push(name);
+                    baseData.push(check_no);
+                    baseData.push(check_name);
+                    baseData.push(unit);
+                    baseData.push(check_max);
+                    baseData.push(check_min);
+                    baseData.push(c_class);
+                    baseData.push(scope);
+                    baseData.push(status);
+                    baseData.push(remark);
+                    baseData.push(is_child);
+                    baseData.push(create);
+                    baseData.push(id);
+                    //检测子项数据
+                    var data = [];
+                    if (is_child == 1){//有检测子项就传递数据
+                        var formulaTrList = $("#check_child").find("tr");//行数
+                        for (var i = 1; i < formulaTrList.length; i++) {
+                            var formulaData = [];
+                            var formulaTrArr=formulaTrList.eq(i);
+                            var tdOne = formulaTrArr.children("td").eq(0).find("input").val();
+                            var tdTwo = formulaTrArr.children("td").eq(1).find("input").val();
+                            var tdThr = formulaTrArr.children("td").eq(2).find("input").val();
+                            var tdFou = formulaTrArr.children("td").eq(3).find("input").val();
+                            var tdFiv = formulaTrArr.children("td").eq(4).find("input").val();
+                            var tdSix= formulaTrArr.children("td").eq(5).find("input").val();
+                            if (tdSix == '' || tdSix == 'undefined'){
+                                tdSix = 0;
+                            }
+                            if (tdOne == '' || tdTwo == '' || tdThr == '' || tdFou == '' || tdFiv == '' ){
+                                layer.confirm('检测子项信息不能为空!');return false;
+                            }
+                            formulaData.push(tdOne);
+                            formulaData.push(tdTwo);
+                            formulaData.push(tdThr);
+                            formulaData.push(tdFou);
+                            formulaData.push(tdFiv);
+                            formulaData.push(tdSix);
+                            data.push(formulaData);
+                        }
+                    }
+                    console.log("到这里了");
+                    console.log(baseData);
+                    console.log(data);
+                    // return false;
+                    Fast.api.ajax({
+                        url:'item/check/edit',
+                        data:{baseData:baseData,data:data}
+                    },function (data,ret) {
+                        //成功回调
+                        parent.Toastr.success("添加成功");
+                        Fast.api.close();
+                        parent.Fast.api.refreshmenu();
+                        return false;
+                    },function (data,ret) {
+                        parent.Toastr.error("添加失败");
+                        Fast.api.close();
+                        return false;
+                    });
+                    return false;
+                });
+            });
+
         },
         api: {
             bindevent: function () {