美文网首页
[PHP高可用后端]①⑨--修改状态功能开发

[PHP高可用后端]①⑨--修改状态功能开发

作者: 子木同 | 来源:发表于2017-11-13 16:36 被阅读20次
    image.png

    common.php

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: 流年 <liu21st@gmail.com>
    // +----------------------------------------------------------------------
    
    // 应用公共文件
    //function pagination($obj)
    //{
    //    if (!$obj) {
    //        return '';
    //    }
    //    $param = request()->param();
    //    return '<div class="imooc-app">' . $obj->appends($param)->render() . '</div>';
    //}
    
    function getCatName($catId)
    {
        if (!$catId) {
            return '';
        }
        $cats = config('cat.list');
        return !empty($cats[$catId] ? $cats[$catId] : '');
    }
    
    function isYesNo($str)
    {
        return $str ? '<span style="color:red">是</span>' : '<span>否</span>';
    }
    
    /**
     * 状态
     * @param $id
     * @param $status
     */
    function status($id, $status)
    {
        $controller = request()->controller();
        $sta = $status == 1 ? 0 : 1;
        // /index.php/admin/news/status/id/4/status/1.html
        $url = url($controller . '/status', ['id' => $id, 'status' => $sta]);
        if ($status === 1) {
            $str = "<a href='javascript:;' title='修改状态' status_url='" . $url . "'
    onclick='app_status(this)'><span class='label label-success radius'>正常</span></a>";
        } else if ($status === 0) {
            $str = "<a href='javascript:;' title='修改状态' status_url='" . $url . "'
    onclick='app_status(this)'><span class='label label-danger radius'>待审</span></a>";
        }
        return $str;
    }
    
    /**
     * 状态
     * @param $id
     * @param $status
     */
    function status($id, $status)
    {
        $controller = request()->controller();
        $sta = $status == 1 ? 0 : 1;
        // /index.php/admin/news/status/id/4/status/1.html
        $url = url($controller . '/status', ['id' => $id, 'status' => $sta]);
        if ($status === 1) {
            $str = "<a href='javascript:;' title='修改状态' status_url='" . $url . "'
    onclick='app_status(this)'><span class='label label-success radius'>正常</span></a>";
        } else if ($status === 0) {
            $str = "<a href='javascript:;' title='修改状态' status_url='" . $url . "'
    onclick='app_status(this)'><span class='label label-danger radius'>待审</span></a>";
        }
        return $str;
    }
    

    index.html

    <!--header-->
    {include file="public/_meta" title="娱乐资讯"/}
    
    <nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页 <span class="c-gray en">></span> 资讯管理 <span
            class="c-gray en">></span> 资讯列表 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px"
                                               href="javascript:location.replace(location.href);" title="刷新"><i
            class="Hui-iconfont"></i></a></nav>
    <div class="page-container">
        <div class="text-c">
            <form action="{:url('news/index')}" method="get">
       <span class="select-box inline">
        <select name="catid" class="select">
              <option value="0">全部分类</option>
                {volist name="cats" id="vo"}
              <option value="{$key}" {if condition="$key eq $catid" } selected="selected" {/if}>{$vo}</option>
            {/volist}
            </select>
        </span> 日期范围:
                <input type="text" name="start_time" class="input-text" id="countTimestart" onfocus="selecttime(1)"
                       value="{$start_time}"
                       style="width:120px;">
                -
                <input type="text" name="end_time" class="input-text" id="countTimestart" onfocus="selecttime(1)"
                       value="{$end_time}"
                       style="width:120px;">
    
                <input type="text" name="title" id="" value="{$title}" placeholder=" 资讯名称" style="width:250px"
                       class="input-text">
                <button name="" id="" class="btn btn-success" type="submit"><i class="Hui-iconfont"></i> 搜资讯</button>
            </form>
        </div>
    
        <div class="mt-20">
            <table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
                <thead>
                <tr class="text-c">
                    <th width="25"><input type="checkbox" name="" value=""></th>
                    <th width="80">ID</th>
                    <th>标题</th>
                    <th width="80">分类</th>
                    <th width="80">缩图</th>
                    <th width="120">更新时间</th>
                    <th width="40">是否推荐</th>
                    <th width="60">发布状态</th>
                    <th width="120">操作</th>
                </tr>
                </thead>
                <tbody>
    
                {volist name="news" id="vo"}
                <tr class="text-c">
                    <td><input type="checkbox" value="" name=""></td>
                    <td>{$vo.id}</td>
                    <td class="text-l"><u style="cursor:pointer" class="text-primary" title="查看">{$vo.title}</u></td>
                    <td>{$vo.catid|getCatName}</td>
                    <td><img width="60" height="60" class="picture-thumb" src="{$vo.image}"></td>
                    <td>{$vo.update_time}</td>
                    <td>{$vo.is_position|isYesNo}</td>
                    <td class="td-status">{$vo.status|status=$vo.id,###}</td>
                    <td class="f-14 td-manage"><a style="text-decoration:none" class="ml-5"
                                                  onClick="article_edit('资讯编辑','article-add.html','10001')"
                                                  href="javascript:;" title="编辑"><i class="Hui-iconfont"></i></a> <a
                            style="text-decoration:none" class="ml-5" onClick="app_del(this)" href="javascript:;" title="删除"
                            del_url="{:url('news/delete',['id'=>$vo.id])}"><i class="Hui-iconfont"></i></a></td>
                </tr>
                {/volist}
                </tbody>
            </table>
            <div id="laypage"></div>
        </div>
    
    </div>
    <!--header-->
    {include file="public/_footer" /}
    
    <!--请在下方写此页面业务相关的脚本-->
    <script type="text/javascript" src="__STATIC__/hadmin/lib/My97DatePicker/4.8/WdatePicker.js"></script>
    <script type="text/javascript" src="__STATIC__/hadmin/lib/laypage/1.2/laypage.js"></script>
    <script type="text/javascript">
        var url = '{url("news/index")}' + '?{$query}';
        //alert(url);
        laypage({
            cont: 'laypage',
            pages: '{$pageTotal}',
            skin: '#5FB878',
            curr: '{$curr}',
            jump: function (e, first) {
                if (!first) {
                    location.href = url + '&page=' + e.curr;
                }
            }
        });
    
    
    </script>
    <style>
        .imooc-app .pagination li {
            display: inline;
            padding-left: 10px;
        }
    
        .pagination .active {
            color: red
        }
    
        .pagination .disabled {
            color: #888888
        }
    </style>
    </body>
    </html>
    
    <td class="td-status">{$vo.status|status=$vo.id,###}</td>
    

    common.js

    function singwaapp_save(form) {
        var data = $(form).serialize();
        url = $(form).attr('url');
        $.post(url, data, function (result) {
            if (result.code == 0) {
                layer.msg(result.msg, {icon: 5, time: 2000});
            } else if (result.code == 1) {
                self.location = result.data.jump_url;
            }
        }, 'JSON');
    
    }
    
    function selecttime(flag) {
        if (flag == 1) {
            var endTime = $("#countTimeend").val();
            if (endTime != "") {
                WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm', maxDate: endTime})
            } else {
                WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm'})
            }
        } else {
            var startTime = $("#countTimestart").val();
            if (startTime != "") {
                WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm', minDate: startTime})
            } else {
                WdatePicker({dateFmt: 'yyyy-MM-dd HH:mm'})
            }
        }
    }
    
    function app_del(obj) {
        url = $(obj).attr('del_url');
        layer.confirm('确认要删除吗?', function (index) {
            $.ajax({
                type: 'POST',
                url: url,
                dataType: 'json',
                success: function (data) {
                    if (data.code == 1) {
                        self.location = data.data.jump_url;
                    } else if (data.code == 0) {
                        layer.msg(data.msg, {icon: 2, time: 2000});
                    }
                },
                error: function (data) {
                    console.log(data.msg);
                }
            });
        });
    }
    
    function app_status(obj) {
        url = $(obj).attr('status_url');
    
        layer.confirm('确认要修改吗?', function (index) {
            $.ajax(
                {
                    type: 'POST',
                    url: url,
                    dataType: 'json',
                    success: function (data) {
                        if (data.code == 1) {
                            self.location = data.data.jump_url;
                        } else if (data.code == 0) {
                            layer.msg(data.msg, {icon: 2, time: 2000});
                        }
                    },
                    error: function (data) {
                        console.log(data.msg);
                    }
                }
            )
        });
    }
    
    function app_status(obj) {
        url = $(obj).attr('status_url');
    
        layer.confirm('确认要修改吗?', function (index) {
            $.ajax(
                {
                    type: 'POST',
                    url: url,
                    dataType: 'json',
                    success: function (data) {
                        if (data.code == 1) {
                            self.location = data.data.jump_url;
                        } else if (data.code == 0) {
                            layer.msg(data.msg, {icon: 2, time: 2000});
                        }
                    },
                    error: function (data) {
                        console.log(data.msg);
                    }
                }
            )
        });
    }
    

    Base.php

    <?php
    /**
     * Created by PhpStorm.
     * User: tong
     * Date: 2017/11/10
     * Time: 11:11
     */
    
    namespace app\admin\controller;
    
    use think\Controller;
    
    class Base extends Controller
    {
        public $page = "";
    
        public $size = "";
    
        public $from = 0;
    
        public $model = '';
    
    
        protected function _initialize()
        {
            $isLogin = $this->isLogin();
            if (!$isLogin) {
                $this->redirect('login/index');
            }
        }
    
        public function isLogin()
        {
            $user = session(config('admin.session_user'), '', config('admin.session_user_scope'));
            if ($user && $user->id) {
                return true;
            }
            return false;
        }
    
        public function getPageAndSize($data)
        {
            $this->page = !empty($data['page']) ? $data['page'] : 1;
            $this->size = !empty($data['size']) ? $data['size'] : config('paginate.list_rows');
            $this->from = ($this->page - 1) * $this->size;
        }
    
        public function delete($id = 0)
        {
            if (!intval($id)) {
                return $this->result('', 0, 'ID不合法');
            }
            $model = $this->model ? $this->model : request()->controller();
    
            try {
                $res = model($model)->save(['status' => -1], ['id' => $id]);
            } catch (\Exception $e) {
                $this->result('', 0, $e->getMessage());
            }
            if ($res) {
                return $this->result(['jump_url' => $_SERVER['HTTP_REFERER']], 1, 'OK');
            }
            return $this->result('', 0, '删除失败');
        }
    
        /**
         * 通用化修改状态
         */
        public function status()
        {
            $data = input('param.');
            //tp5 validate 机制校验 自行完成 id status
            //通过id 去库中查询是否存在
    
            $id = model('News')->get(['id' => $data['id']]);
            if (!$id) {
                return $this->result('', 0, 'id不存在');
            }
            $model = $this->model ? $this->model : request()->controller();
    
            try {
                $res = model($model)->save(['status' => $data['status']], ['id' => $data['id']]);
            } catch (\Exception $e) {
                return $this->result('', 0, $e->getMessage());
            }
            if ($res) {
                return $this->result(['jump_url' => $_SERVER['HTTP_REFERER']], 1, 'OK');
            }
            return $this->result('', 0, '失败');
        }
    }
    
     /**
         * 通用化修改状态
         */
        public function status()
        {
            $data = input('param.');
            //tp5 validate 机制校验 自行完成 id status
            //通过id 去库中查询是否存在
    
            $id = model('News')->get(['id' => $data['id']]);
            if (!$id) {
                return $this->result('', 0, 'id不存在');
            }
            $model = $this->model ? $this->model : request()->controller();
    
            try {
                $res = model($model)->save(['status' => $data['status']], ['id' => $data['id']]);
            } catch (\Exception $e) {
                return $this->result('', 0, $e->getMessage());
            }
            if ($res) {
                return $this->result(['jump_url' => $_SERVER['HTTP_REFERER']], 1, 'OK');
            }
            return $this->result('', 0, '失败');
        }
    }
    
    image.png

    相关文章

      网友评论

          本文标题:[PHP高可用后端]①⑨--修改状态功能开发

          本文链接:https://www.haomeiwen.com/subject/orlmmxtx.html