<%@ page language="java" 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"/>
    <style>
        .layui-input, .layui-textarea {
            border-color: #606060;
        }
    </style>
</head>
<body>
<form class="layui-form" action="" style="width: 80%;margin-top: 20px">
    <input name="id" value="${helpVideo.id}" hidden/>
    <input name="videoUrl" value="${helpVideo.videoUrl}" 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="name" value="${helpVideo.name}" 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="content" value="${helpVideo.content}" 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="type" value="${helpVideo.type}" 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="sort" type="number" value="${helpVideo.sort == null? helpVideo.sort: 1}" placeholder="序号" class="layui-input"/>
            </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="videoUrl" value="${helpVideo.videoUrl}" id="url" hidden/>
            <input name="chooseFile" id="chooseFile" placeholder="浏览..." class="layui-input layui-col-xs6" readonly/>
            <button type="button" class="layui-btn layui-btn-normal layui-col-xs3" id="uploadBtn">
                上传
            </button>
        </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}">
</form>

<script type="text/javascript">
    layui.use(['form', 'upload', 'element', 'layer'], function () {
        var form = layui.form;
        var upload = layui.upload;
        var layer = layui.layer
        var element = layui.element;
        element.init();
        $('#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: 'video',
            url: '${uploadParam.host}',
            exts: 'rm|mp4|rmvb|avi|wmv|flv|mov|mtv|3gp',
            acceptMime: 'video/*',
            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 index = layer.load(1, {shade: [0.1, '#000']});
            $.ajax({
                url: '${ctx}/helpVideo/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.data, {
                            icon: 5
                        });
                    }
                }
            })
            return false;
        });
    });
</script>
</body>
</html>