<%@ page contentType="text/html; charset=utf-8"
         pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="renderer" content="webkit">
    <!-- 移动设备 viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <jsp:include page="../../common.jsp" />
</head>
<body>
<div class="row animated fadeInRight" style="margin: 0;">
    <div class="wrapper wrapper-content mt5 right-content ml5 mr5">
        <div class="toolbar-panel bdd">
            <div class="toolbar-box">
                <div class="toolbar-head clearfix lgraybg pt5 pb10 pl10 bdbd">
                    <!-- 顶部按钮 -->
                    <div class="fl">
                        查询条件
                    </div>
                    <div class="tools fr">
                        <a href="javascript:void(0);" class="collapse dblock f14 dgray mr5">
                            <i class="fa-2x fa fa-angle-double-up"></i>
                        </a>
                    </div>
                </div>
            </div>
            <!--搜索条件 -->
            <div class="toolbar-body">
                <form class="layui-form" action="" style="margin-top: 10px">
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <label class="layui-form-label">商品名称</label>
                            <div class="layui-input-block">
                                <input type="text" name="goodName" id="goodName" placeholder="请输入商品名称" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">商品状态</label>
                            <div class="layui-input-block">
                                <select name="status" id="status">
                                    <option value="">请选择</option>
                                    <option value="1">未上架</option>
                                    <option value="2">上架中</option>
                                    <option value="3">已下架</option>
                                </select>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <!-- 表单数据 -->
    <div class="mb50 mt10">
        <div class="whitebg pl10 pr10">
            <table class="layui-hide" id="officialGoodsTab" lay-filter="officialGoodsTab"></table>

        </div>
    </div>
</div>

<script type="text/html" id="leftBar">
    <button type="button" class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe608;</i>新增</button>
    <button type="button" class="layui-btn layui-btn-sm" lay-event="up"><i class="layui-icon">&#xe62f;</i>上架</button>
    <button type="button" class="layui-btn layui-btn-sm" lay-event="down"><i class="layui-icon">&#xe601;</i>下架</button>
    <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del"><i class="layui-icon">&#xe640;</i>删除</button>
    <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="search"><i class="layui-icon">&#xe615;</i>查询</button>
</script>

<script type="text/html" id="toolBar">
    <button type="button" class="layui-btn layui-btn-sm" lay-event="edit"><i class="layui-icon">&#xe642;</i>编辑</button>
    <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del"><i class="layui-icon">&#xe640;</i>删除</button>
</script>

<script>
    layui.use(['table', 'layer'], function(){
        var table = layui.table;
        var layer = layui.layer;

        var tableIns = table.render({
            elem: '#officialGoodsTab'
            ,url:'${ctx}/officialGoods/page'
            ,id: 'officialGoods'
            ,response: {
                statusName: 'code' //数据状态的字段名称，默认：code
                ,countName: 'count' //数据总数的字段名称，默认：count
                ,dataName: 'data' //默数据列表的字段名称，认：data
                ,statusCode : 200
            }
            ,parseData: function(res){ //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.records //解析数据列表
                };
            }
            ,toolbar: '#leftBar' //开启头部工具栏，并为其绑定左侧模板
            , defaultToolbar: ['filter']
            ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
                title: '提示'
                ,layEvent: 'LAYTABLE_TIPS'
                ,icon: 'layui-icon-tips'
            }]
            ,title: '活动商品信息表'
            ,cols: [[
                {type: 'checkbox', fixed: 'left', hidden: true}
                ,{field:'numbers', title:'序号', fixed: 'left', unresize: true, width:80, type:'numbers'}
                ,{field:'goodName', title:'商品名称'}
                ,{field:'goodPrice', title:'商品积分'}
                ,{field:'deductRule', title:'商品类型',templet:function (d){
                    if(d.deductRule == 0){
                        return "积分";
                    }else if(d.deductRule == 1){
                        return "积分+现金";
                    }else{
                        return "未知";
                    }
                 }}
                ,{field:'deductValue', title:'商品价格'}
                ,{field:'toImgUrl', title:'跳转地址'}
                ,{field:'goodDesc', title:'商品描述'}
                ,{field:'imgUrl', title:'商品图片',templet:function (d) {
                    return "<a href='javascript:void(0)' onclick='openImg(this)' >"+d.imgUrl+"</a>";
                    }}
                ,{field:'status', title:'商品状态',templet:function(d){
                    if(d.status == '1'){
                        return '<span>未上架</span>';
                    }else if(d.status == '2'){
                        return '<span style="color: green">上架中</span>';
                    }else{
                        return '<span style="color: red">已下架</span>';
                    }
                 }}
                ,{field: 'endTime', title: '创建时间', width: 160,templet : "<div>{{layui.util.toDateString(d.createTime,'yyyy-MM-dd HH:mm:ss')}}</div>"}
                ,{fixed: 'right', title:'操作', width: 200, toolbar: '#toolBar'}
            ]]
            ,request: {
                pageName: 'current' //页码的参数名称，默认：page
                ,limitName: 'size' //每页数据量的参数名，默认：limit
            }
            ,page: true
        });
        table.on('tool(officialGoodsTab)', function(obj){ //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            if(layEvent === 'del'){ //删除
                layer.confirm('真的删除么?',{icon:3},function(index){
                    obj.del(); //删除对应行（tr）的DOM结构，并更新缓存
                    layer.close(index);
                    var idArr = new Array();
                    idArr.push(data.id);
                    del(idArr);
                    //向服务端发送删除指令
                });
            } else if(layEvent === 'edit'){ //编辑
                //do something
                toAdd(obj.data);
                //同步更新缓存对应的值
                // obj.update({
                //     username: '123'
                //     ,title: 'xxx'
                // });
            }
        });

        //监听头工具栏事件
        table.on('toolbar(officialGoodsTab)', function (obj) {
            switch (obj.event) {
                case 'add':
                    // 添加
                    toAdd();
                    break;
                case 'up':
                    var checkStatus = table.checkStatus('officialGoods'); //idTest 即为基础参数 id 对应的值
                    if(checkStatus.data.length == 0){
                        layer.msg("至少选中一条数据!",{icon:5});
                        return;
                    }
                    if(checkStatus.data.length > 1){
                        layer.msg("最多选择一条数据!",{icon:5});
                        return;
                    }
                    if(checkStatus.data[0].status === '2'){
                        layer.msg("当前商品正在上架中!",{icon:5});
                        return;
                    }
                    var obj = {};
                    obj.id = checkStatus.data[0].id;
                    obj.status = '2';
                    // 发布
                    e(obj);
                    break;
                case 'down':
                    var checkStatus = table.checkStatus('officialGoods'); //idTest 即为基础参数 id 对应的值
                    if(checkStatus.data.length == 0){
                        layer.msg("至少选中一条数据!",{icon:5});
                        return;
                    }
                    if(checkStatus.data.length > 1){
                        layer.msg("最多选择一条数据!",{icon:5});
                        return;
                    }
                    var obj = {};
                    obj.id = checkStatus.data[0].id;
                    obj.status = '3';
                    // 下架
                    e(obj);
                    break;
                case 'search':
                    var params= serialize($('#form1'));
                    table.reload('officialGoods', {
                        where: params
                        , page: {
                            size: 10
                            , current: 1
                        }
                    });
                    break;
                case 'del':
                    var checkStatus = table.checkStatus('officialGoods'); //idTest 即为基础参数 id 对应的值
                    if(checkStatus.data.length == 0){
                        layer.msg("至少选中一条数据!",{icon:5});
                        return;
                    }
                    var idsArr = new Array();
                    $.each(checkStatus.data,function (k,v) {
                        idsArr.push(v.id);
                    })
                    layer.confirm('真的删除么？',{icon:3}, function (index) {
                        $("div.layui-table-body table tbody input[name='layTableCheckbox']:checked").each(function () { // 遍历选中的checkbox
                            n = $(this).parents("tbody tr").index();  // 获取checkbox所在行的顺序
                            //移除行
                            $("div.layui-table-body table tbody ").find("tr:eq(" + n + ")").remove();
                            //如果是全选移除，就将全选CheckBox还原为未选中状态
                            $("div.layui-table-header table thead div.layui-unselect.layui-form-checkbox").removeClass("layui-form-checked");
                        });
                        layer.close(index);
                        del(idsArr);
                    });
                    break;
            }
        });
        function e(obj) {
            layer.confirm('确定'+(obj.status === '2' ? '上架': '下架' )+'当前商品么？',{icon:3}, function (index) {
                var index = layer.load(1,{shade: [0.1,'#000'] });
                $.ajax({
                    url: '${ctx}/officialGoods/saveOrUpdate',
                    method: 'post',
                    data: JSON.stringify(obj),
                    dataType: 'JSON',
                    contentType:"application/json",
                    success: function(res) {
                        layer.close(index);
                        if(res.code == 200) {
                            layer.msg(res.message, {
                                icon: 1
                            });
                            tableIns.reload();
                        } else {
                            layer.msg(res.message, {
                                icon: 2
                            });
                        }
                    }
                })
            });
        }

        function toAdd(obj) {
            var url = '${ctx}/officialGoods/add';
            if(obj != undefined){
                url = "${ctx}/officialGoods/edit/"+obj.id
            }
            var index = layer.open({
                type: 2
                ,shade: 0.5
                ,maxmin: true
                , content: url
                , area: ['700px', '720px']
            });
        }
        function del(obj) {
            $.ajax({
                url: '${ctx}/officialGoods/batchDelete',
                method: 'post',
                data: JSON.stringify(obj),
                dataType: 'JSON',
                contentType:"application/json",
                success: function(res) {
                    if(res.code == 200) {
                        layer.msg(res.data, {
                            icon: 1
                        });

                    } else {
                        layer.msg(res.data, {
                            icon: 5
                        });
                    }
                }
            })
        }
    });

    function openImg(obj) {
        var url = $(obj).text();
        if(url){
            var img = new Image();
            img.src = url;
            //var height = img.height + 50; // 原图片大小
            //var width = img.width; //原图片大小
            var imgHtml = "<img src='" + url + "' width='500px' height='500px'/>";
            //弹出层
            layer.open({
                type: 1,
                shade: 0.8,
                offset: 'auto',
                area: [500 + 'px',550+'px'],  // area: [width + 'px',height+'px']  //原图显示
                shadeClose:true,
                scrollbar: false,
                title: "预览", //不显示标题
                content: imgHtml, //捕获的元素，注意：最好该指定的元素要存放在body最外层，否则可能被其它的相对元素所影响
                cancel: function () {
                    //layer.msg('捕获就是从页面已经存在的元素上，包裹layer的结构', { time: 5000, icon: 6 });
                }
            });
        }
    }
</script>
</body>
</html>
