Parcourir la source

检测所有项,重新布局

lizhen_gitee il y a 6 mois
Parent
commit
29c2a277b6

+ 74 - 2
application/admin/controller/Jianceproject.php

@@ -3,6 +3,11 @@
 namespace app\admin\controller;
 
 use app\common\controller\Backend;
+use think\Db;
+use Exception;
+use think\exception\DbException;
+use think\exception\PDOException;
+use think\exception\ValidateException;
 
 /**
  * 检测所有项
@@ -17,6 +22,7 @@ class Jianceproject extends Backend
      * @var \app\admin\model\Jianceproject
      */
     protected $model = null;
+    protected $noNeedRight = ['addchild'];
 
     public function _initialize()
     {
@@ -51,14 +57,15 @@ class Jianceproject extends Backend
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
 
             $list = $this->model
-                    ->with(['company'])
+                    ->with(['company','pj'])
                     ->where($where)
-                    ->order($sort, $order)
+                    ->order('pid asc,weigh asc')
                     ->paginate($limit);
 
             foreach ($list as $row) {
                 
                 $row->getRelation('company')->visible(['companyname']);
+                $row->getRelation('pj')->visible(['title']);
             }
 
             $result = array("total" => $list->total(), "rows" => $list->items());
@@ -68,4 +75,69 @@ class Jianceproject extends Backend
         return $this->view->fetch();
     }
 
+    /**
+     * 添加
+     *
+     * @return string
+     * @throws \think\Exception
+     */
+    public function addchild()
+    {
+        if (false === $this->request->isPost()) {
+            $company_id = input('company_id');
+            $pid = input('pid');
+
+            $this->assign('company_id',$company_id);
+            $this->assign('pid',$pid);
+            return $this->view->fetch();
+        }
+        $params = $this->request->post('row/a');
+        if (empty($params)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        $params = $this->preExcludeFields($params);
+
+        if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
+            $params[$this->dataLimitField] = $this->auth->id;
+        }
+        $result = false;
+        Db::startTrans();
+        try {
+            //是否采用模型验证
+            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);
+            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 del($ids = "")
+    {
+        if (!$this->request->isPost()) {
+            $this->error(__("Invalid parameters"));
+        }
+        $ids = $ids ? $ids : $this->request->post("ids");
+        if ($ids) {
+
+            $count = $this->model->where('id', '=', $ids)->update(['deletetime'=>time()]);
+            $count = $this->model->where('pid','=', $ids)->update(['deletetime'=>time()]);
+
+            $this->success();
+        }
+        $this->error();
+    }
+
 }

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

@@ -6,6 +6,7 @@ return [
     'Pid'                 => '上级ID',
     'Title'               => '维保项',
     'Type'                => '类型',
+    'Type 0'              => '-',
     'Type 1'              => '技术要求',
     'Type 2'              => '维护要求',
     'Info'                => '检测方法和要求',

+ 6 - 1
application/admin/model/Jianceproject.php

@@ -40,7 +40,7 @@ class Jianceproject extends Model
     
     public function getTypeList()
     {
-        return ['1' => __('Type 1'), '2' => __('Type 2')];
+        return ['0' => __('Type 0'),'1' => __('Type 1'), '2' => __('Type 2')];
     }
 
 
@@ -58,4 +58,9 @@ class Jianceproject extends Model
     {
         return $this->belongsTo('Company', 'company_id', 'id', [], 'LEFT')->setEagerlyType(0);
     }
+
+    public function pj()
+    {
+        return $this->belongsTo('jianceproject', 'pid', 'id', [], 'LEFT')->setEagerlyType(0);
+    }
 }

+ 4 - 4
application/admin/view/jianceproject/add.html

@@ -6,19 +6,19 @@
             <input id="c-company_id" data-rule="required" data-source="company/index" data-field="companyname" class="form-control selectpage" name="row[company_id]" type="text" value="">
         </div>
     </div>
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-pid" class="form-control" name="row[pid]" type="number" value="0">
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-title" class="form-control" name="row[title]" type="text" value="">
         </div>
     </div>
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
         <div class="col-xs-12 col-sm-8">
                         
@@ -35,7 +35,7 @@
         <div class="col-xs-12 col-sm-8">
             <input id="c-info" class="form-control" name="row[info]" type="text" value="">
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 51 - 0
application/admin/view/jianceproject/addchild.html

@@ -0,0 +1,51 @@
+<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">{:__('Company_id')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-company_id" disabled data-rule="required" data-source="company/index" data-field="companyname" class="form-control selectpage" name="row[company_id]" type="text" value="{$company_id}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-pid" disabled data-rule="required" data-source="jianceproject/index" data-field="title" class="form-control selectpage" name="row[pid]" type="text" value="{$pid}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-title" class="form-control" name="row[title]" type="text" value="">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
+        <div class="col-xs-12 col-sm-8">
+                        
+            <select  id="c-type" class="form-control selectpicker" name="row[type]">
+                {foreach name="typeList" item="vo"}
+                    <option value="{$key}" {in name="key" value="1"}selected{/in}>{$vo}</option>
+                {/foreach}
+            </select>
+
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Info')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-info" class="form-control" name="row[info]" type="text" value="">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
+        </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>

+ 4 - 2
application/admin/view/jianceproject/edit.html

@@ -1,6 +1,6 @@
 <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
 
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Company_id')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-company_id" data-rule="required" data-source="company/index" data-field="companyname" class="form-control selectpage" name="row[company_id]" type="text" value="{$row.company_id|htmlentities}">
@@ -11,13 +11,14 @@
         <div class="col-xs-12 col-sm-8">
             <input id="c-pid" class="form-control" name="row[pid]" type="number" value="{$row.pid|htmlentities}">
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-title" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
         </div>
     </div>
+    <?php if($row['pid'] != 0){ ?>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -36,6 +37,7 @@
             <input id="c-info" class="form-control" name="row[info]" type="text" value="{$row.info|htmlentities}">
         </div>
     </div>
+    <?php } ?>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 2 - 2
application/admin/view/jianceproject/index.html

@@ -8,8 +8,8 @@
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('jianceproject/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('jianceproject/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
-                        <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('jianceproject/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
+                        <!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('jianceproject/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
+                        <!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('jianceproject/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
                         
 
                         

+ 2 - 2
application/company/controller/Jianceproject.php

@@ -38,7 +38,7 @@ class Jianceproject extends Apic
 
         if($data['pid'] == 0){
             $data['info'] = '';
-            $data['type'] = 1;
+            $data['type'] = 0;
         }
 
         $id = Db::name($this->table)->insertGetId($data);
@@ -74,7 +74,7 @@ class Jianceproject extends Apic
 
         if($info['pid'] == 0){
             $data['info'] = '';
-            $data['type'] = 1;
+            $data['type'] = 0;
         }
 
         Db::name($this->table)->where('id',$id)->update($data);

+ 33 - 8
public/assets/js/backend/jianceproject.js

@@ -21,20 +21,42 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             table.bootstrapTable({
                 url: $.fn.bootstrapTable.defaults.extend.index_url,
                 pk: 'id',
-                sortName: 'weigh',
+                search: false,
                 columns: [
                     [
                         {checkbox: true},
-                        {field: 'id', title: __('Id')},
-                        {field: 'company_id', title: __('Company_id')},
+                        {field: 'id', title: __('Id'),operate:false},
+//                        {field: 'company_id', title: __('Company_id')},
                         {field: 'company.companyname', title: __('Company.companyname'), operate: 'LIKE'},
-                        {field: 'pid', title: __('Pid')},
+//                        {field: 'pid', title: __('Pid')},
+                        {field: 'pj.title', title: '上级',operate:'LIKE'},
                         {field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
-                        {field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('Type 2')}, formatter: Table.api.formatter.normal},
-                        {field: 'info', title: __('Info'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'type', title: __('Type'), searchList: {"0":__('Type 0'),"1":__('Type 1'),"2":__('Type 2')}, formatter: Table.api.formatter.normal},
+                        {field: 'info', title: __('Info'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content},
                         {field: 'weigh', title: __('Weigh'), operate: false},
-                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
-                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+                        {field: 'createtime', title: __('Createtime'), operate:false, addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'operate', title: __('Operate'), table: table,
+                            buttons:[
+                                {
+                                    name:'addchild',
+                                    text:'添加',
+                                    title:'添加',
+                                    icon:'fa fa-exclamation-circle',
+                                    classname:'btn btn-xs btn-info btn-dialog btn-addchild',
+                                    url:function(row){
+                                        return 'jianceproject/addchild/company_id/'+ row.company_id +'/pid/'+ row.id +'?dialog=1'
+                                    },
+                                    target:'_self',
+                                    hidden:function(row){
+                                        if(row.pid == 0){
+                                            return false;
+                                        }
+                                        return true;
+                                    },
+                                    refresh:true,
+                                },
+                            ],
+                            events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                     ]
                 ]
             });
@@ -103,6 +125,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             Table.api.bindevent(table);
         },
 
+        addchild: function () {
+            Controller.api.bindevent();
+        },
         add: function () {
             Controller.api.bindevent();
         },