<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<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" />
    <link rel="stylesheet" type="text/css" href="${ctx}/page/umeditor/themes/default/css/umeditor.css">
    <script type="text/javascript" src="${ctx}/page/umeditor/third-party/template.min.js"></script>
    <script type="text/javascript" src="${ctx}/page/umeditor/umeditor.config.js"></script>
    <script type="text/javascript" src="${ctx}/page/umeditor/umeditor.min.js"></script>
    <script type="text/javascript" src="${ctx}/page/umeditor/lang/zh-cn/zh-cn.js"></script>
    <style>
        .layui-input,.layui-textarea{
            border-color:#606060;
        }
    </style>
</head>
<body>
<form class="layui-form" action="" style="width: 70%">
    <input name="id" value="${officialGoods.id}" hidden/>

    <div class="layui-form-item">
        <label class="layui-form-label">商品名称</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <input name="goodName" value="${officialGoods.goodName}" maxlength="25" lay-verify="required" autocomplete="off" placeholder="请输入商品名称" class="layui-input"/>
            </div>
        </div>
    </div>

     <div class="layui-form-item">
        <label class="layui-form-label">商品价格</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <input name="goodPrice" type="number" maxlength="10" value="${officialGoods.goodPrice}" lay-verify="required" autocomplete="off" placeholder="请输入商品价格" class="layui-input"/>
            </div>
        </div>
    </div>

    <div class="layui-form-item" id="isPostage">
        <label class="layui-form-label">是否包邮</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <select name="isPostage" lay-filter="isPostage" data-elem="postageFee">
                    <option value="">请选择</option>
                    <option value="0" ${officialGoods.isPostage == 0 ? 'selected' : ''}>不包邮</option>
                    <option value="1" ${officialGoods.isPostage == 1 ? 'selected' : ''}>包邮</option>
                </select>
            </div>
        </div>
    </div>

    <div class="layui-form-item" id="postageFee" style="display:${empty officialGoods or officialGoods.isPostage eq 0 ? 'black' : 'none'}">
        <label class="layui-form-label">邮费</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <input type="number" name="postageFee"  value="${officialGoods.postageFee}" maxlength="10" autocomplete="off" placeholder="请输入商品邮费" class="layui-input"/>
            </div>
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">商品类型</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <select name="deductRule" lay-filter="deductRule" data-elem="deductRule">
                    <option value="">请选择</option>
                    <option value="0" ${officialGoods.deductRule == 0 ? 'selected' : ''}>积分</option>
                    <option value="1" ${officialGoods.deductRule == 1 ? 'selected' : ''}>积分+现金</option>
                </select>
            </div>
        </div>
    </div>

    <div class="layui-form-item" id="deductRule" style="display:${empty officialGoods or officialGoods.deductRule eq 0 ? 'none' : 'black'}">
        <label class="layui-form-label">金额</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <input type="number" name="deductValue" value="${officialGoods.deductValue}" maxlength="10" autocomplete="off" placeholder="请输入需要额外支付的金额" class="layui-input"/>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">链接地址</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <input name="toImgUrl" value="${officialGoods.toImgUrl}" placeholder="请输入链接地址" class="layui-input" autocomplete="off"/>
            </div>
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">商品图片</label>
        <div class="layui-input-block" style="display: flex;justify-content: flex-start">
            <input name="fileKey" id="fileKey" hidden/>
            <input name="imgUrl" id="url" value="${officialGoods.imgUrl}" hidden/>
            <input name="chooseFile" id="chooseFile" placeholder="浏览..." class="layui-input layui-col-xs6" style="cursor:hand" readonly/>
            <button type="button" class="layui-btn layui-btn-normal layui-col-xs3"  id="uploadBtn">
                上传
            </button>
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">商品描述</label>
        <div class="layui-input-block" style="margin-left:0px">
            <div class="layui-input-block">
                <textarea id="goodDesc" name="goodDesc" lay-verify="goodDesc"  placeholder="请输入商品描述"
                          class="layui-textarea">${officialGoods.goodDesc}</textarea>
            </div>
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
            <button type="button" id="close" class="layui-btn layui-btn-primary">关闭</button>
        </div>
    </div>

    <div id="uploadLoadingDiv" style="display: none;">
        <div class="layui-progress" lay-showpercent="true" lay-filter="js_upload_progress" style="margin: 10px;margin-top: 20px;">
            <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div>
        </div>
    </div>
</form>

<form id="ajaxForm" class="layui-form" style="width: 70%" >
    <input type="hidden" name="OSSAccessKeyId" id="accessid" value="${uploadParam.accessid}">
    <input type="hidden" name="policy" id="policy" value="${uploadParam.policy}">
    <input type="hidden" name="signature" id="signature" value="${uploadParam.signature}">
    <input type="hidden" name="expire" id="expire" value="${uploadParam.expire}">
    <input type="hidden" name="success_action_status" id="success_action_status" value="200">
    <input type="hidden" name="key" id="key" value="${uploadParam.key}">
    <input type="hidden" name="callBack" id="key2_callBack" value="${uploadParam.callBack}">
    <input type="file" style="display: none" name="file" id="file" onchange="document.getElementById('fileName').value=this.files[0].name">
</form>

<script>
    layui.use(['form', 'upload','element','layer','layedit'], function(){
        var form = layui.form;
        var upload = layui.upload;
        var layer = layui.layer;
        var element = layui.element;
        var layedit = layui.layedit;
        element.init();

        var um = UM.getEditor('goodDesc');
        um.setWidth("100%");

        $('#close').click(function() {
            parent.layer.closeAll();
        });

        //创建监听函数
        var xhrOnProgress=function(fun) {
            xhrOnProgress.onprogress = fun; //绑定监听
            //使用闭包实现监听绑
            return function() {
                //通过$.ajaxSettings.xhr();获得XMLHttpRequest对象
                var xhr = $.ajaxSettings.xhr();
                //判断监听函数是否为函数
                if (typeof xhrOnProgress.onprogress !== 'function')
                    return xhr;
                //如果有监听函数并且xhr对象支持绑定时就把监听函数绑定上去
                if (xhrOnProgress.onprogress && xhr.upload) {
                    xhr.upload.onprogress = xhrOnProgress.onprogress;
                }
                return xhr;
            }
        }
        var openIndex = "";
        upload.render({
            elem: '#chooseFile', // 文件选择
            accept:'images',
            acceptMime:'image/*',
            url: '${uploadParam.host}',
            exts: 'jpg|png|gif|bmp|jpeg',
            method:'POST',
            auto: false, // 设置不自动提交
            bindAction: '#uploadBtn', // 提交按钮
            before:function(){
                element.progress('js_upload_progress', '0%');//设置页面进度条
                openIndex = layer.open({
                    type: 1,
                    title: '上传进度',
                    closeBtn: 1, //不显示关闭按钮
                    area: ['300px', '130px'],
                    shadeClose: false, //开启遮罩关闭
                    content: $("#uploadLoadingDiv").html(),
                    offset: '100px'
                });
            }
            ,xhr:xhrOnProgress
            ,progress:function(value){//上传进度回调 value进度值
                element.progress('js_upload_progress', value+'%');//设置页面进度条
            }
            ,choose: function(obj) {
                var loading = layer.load(1,{shade: [0.1,'#000'] });
                var data = {};
                obj.preview(function(index, file, result) {
                    var fileName = file.name;
                    $("#chooseFile").val(fileName);
                    var suffix = fileName.substring(fileName.lastIndexOf('.') + 1, fileName.length);
                    var key = '${uploadParam.key}'+"."+suffix;
                    $("#key").val(key);
                    $("#fileKey").val(key);
                    data.OSSAccessKeyId = $('#accessid').val();
                    data.policy = $('#policy').val();
                    data.signature = $('#signature').val();
                    data.expire = $('#expire').val();
                    data.success_action_status = $('#success_action_status').val();
                    data.callBack = $("#key2_callBack").val();
                    data.key = key;
                    layer.close(loading);
                });
                this.data = data;
            },
            done: function(res) {
                layer.close(openIndex);
                if (res.code == 200){
                    layer.msg("上传成功！")
                    $("#url").val(res.url);
                }else{
                    layer.msg("上传失败！")
                }
            },
            error: function(res) {
                layer.msg(res.msg);
            }
        });

        //关闭进度条提示
        $(document).on('click','.js_upload_progress_bar_sure',function(){
            layer.close(layer.index);
        });

            //监听提交
        form.on('submit(formDemo)', function(data){
            var params = data.field;
            if(params.isPostage == 0 && !params.postageFee){
                return layer.msg("邮费不能为空!");
            }
            params.goodDesc = um.getContent();
            // data.field.goodDesc = layedit.getContent(editIndex);
            var index = layer.load(1,{shade: [0.1,'#000'] });
            $.ajax({
                url: '${ctx}/officialGoods/saveOrUpdate',
                method: 'post',
                data: JSON.stringify(data.field),
                dataType: 'JSON',
                contentType:"application/json",
                success: function(res) {
                    layer.close(index);
                    if(res.code == 200) {
                        layer.alert(res.data,function(){
                             parent.location.reload();
                        })
                    } else {
                        layer.msg(res.message, {
                            icon: 5
                        });
                    }
                }
            })
            return false;
        });

        form.on('select(isPostage)', function(data){
            let domVal = data.elem.dataset.elem;
            if(data.value == 0){
                $("#"+domVal).show();
            }else{
                $("#"+domVal).hide();
            }
        })

        form.on('select(deductRule)', function(data){
            let domVal = data.elem.dataset.elem;
            if(data.value == 1){
                $("#"+domVal).show();
            }else{
                $("#"+domVal).hide();
            }
        })
    });
</script>
</body>
</html>
