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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容