ソースを参照

优化判定标准删除功能

liuhairui 2 年 前
コミット
e7f76fe5c3

+ 44 - 8
application/admin/controller/item/Judge.php

@@ -249,15 +249,51 @@ class Judge extends Backend
 
 
     /**
-     * 删除 判断标准数据和子项目
+     * 删除 判断标准数据
      */
-//    public function del($ids = null){
-//        $id = $this->request->post('ids');
-//        $item_judge = Db::name('item_judge')->where('id',$id)->delete();
-//        $item_judge_detail = Db::name('item_judge_detail')->where('pid',$item_judge['id'])->select();
-//        foreach ($item_judge_detail as $k => $v){
-//            Db::name('item_judge_detail')->where('pid',$item_judge['id'])->delete($v['id']);
-//        }
+    public function del($ids = null){
+        if (false === $this->request->isPost()) {
+            $this->error(__("Invalid parameters"));
+        }
+        $ids = $ids ?: $this->request->post("ids");
+        if (empty($ids)) {
+            $this->error(__('Parameter %s can not be empty', 'ids'));
+        }
+        $result = true;
+        Db::startTrans();
+        try {
+            $id = explode(',', $ids);
+            $item_judge = \app\admin\model\item\Judge::destroy($id);
+            if (!$item_judge){
+                $result = false;
+            }
+            $data =Db::name('item_judge_detail')
+                ->whereIn('pid',$id)
+                ->update(['deletetime'=>date('Y-m-d H:i:s')]);
+            if (!$data){
+                $result = false;
+            }
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        }
+        if (false === $result) {
+            $this->error(__('No rows were updated'));
+        }
+        $this->success();
+
+    }
+
+    /**
+     * 回收站
+     */
+//    public function restore($ids = null){
+//        $item_judge = Db::name('item_judge')->select();
+//        echo "<pre>";
+//        print_r($item_judge);
+//        echo "</pre>";
+//        return $this->view->fetch();
 //    }
 
 }

+ 3 - 2
application/admin/model/item/Judge.php

@@ -3,12 +3,13 @@
 namespace app\admin\model\item;
 
 use think\Model;
+use traits\model\SoftDelete;
 
 
 class Judge extends Model
 {
 
-    
+    use SoftDelete;
 
     
 
@@ -21,7 +22,7 @@ class Judge extends Model
     // 定义时间戳字段名
     protected $createTime = false;
     protected $updateTime = false;
-    protected $deleteTime = false;
+    protected $deleteTime = 'delete';
 
     // 追加属性
     protected $append = [

+ 3 - 3
application/admin/view/item/judge/index.html

@@ -9,8 +9,8 @@
                         <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('item/judge/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('item/judge/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('item/judge/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
-                        
+                        <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('item/judge/del')?'':'hide'}" title="删除" ><i class="fa fa-trash"></i> 删除</a>
+
 
                         <div class="dropdown btn-group {:$auth->check('item/judge/multi')?'':'hide'}">
                             <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
@@ -20,7 +20,7 @@
                             </ul>
                         </div>
 
-                        
+                        <!--<a href="item/judge/restore" class="btn btn-success btn-restore btn-dialog {:$auth->check('item/judge/restore')?'':'hide'}" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                            data-operate-edit="{:$auth->check('item/judge/edit')}"

+ 58 - 0
public/assets/js/backend/item/judge.js

@@ -266,6 +266,64 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 });
             });
         },
+        restore: function () {
+            // 初始化表格参数配置
+            Table.api.init({
+                extend: {
+                    'dragsort_url': '',
+                }
+            });
+
+            var table = $("#table");
+            // 初始化表格
+            table.bootstrapTable({
+                url: 'item/judge/restore' + location.search,
+                pk: 'id',
+                sortName: 'id',
+                columns: [
+                    [
+                        {checkbox: true},
+                        {field: 'id', title: '序号'},
+                        {field: 'name', title: __('Name'), operate: 'LIKE'},
+                        {
+                            field: 'delete',
+                            title: __('Delete'),
+                            operate: 'RANGE',
+                            addclass: 'datetimerange',
+                            formatter: Table.api.formatter.datetime
+                        },
+                        {
+                            field: 'operate',
+                            width: '140px',
+                            title: __('Operate'),
+                            table: table,
+                            events: Table.api.events.operate,
+                            buttons: [
+                                {
+                                    name: 'Restore',
+                                    text: __('Restore'),
+                                    classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
+                                    icon: 'fa fa-rotate-left',
+                                    url: 'item/check/restore',
+                                    refresh: true
+                                },
+                                {
+                                    name: 'Destroy',
+                                    text: __('Destroy'),
+                                    classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
+                                    icon: 'fa fa-times',
+                                    url: 'item/check/destroy',
+                                    refresh: true
+                                }
+                            ],
+                            formatter: Table.api.formatter.operate
+                        }
+                    ]
+                ]
+            });
+            // 为表格绑定事件
+            Table.api.bindevent(table);
+        },
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));