<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <th:block th:include="include :: header('新增通知公告')"/>
    <th:block th:include="include :: summernote-css"/>
    <th:block th:include="include :: image-upload-css"/>
    <!-- 自定义 CSS -->
    <style>
        /* 修改文本域的背景颜色和文字颜色 */
        .note-editable {
            background-color: black !important; /* 黑色背景 */
            color: white !important; /* 白色文字 */
        }

    </style>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
    <form class="form-horizontal m" id="form-notice-add">
        <div class="form-group">
            <label class="col-sm-2 control-label is-required">公告标题：</label>
            <div class="col-sm-10">
                <input id="noticeTitle" name="noticeTitle" class="form-control" type="text" required>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label is-required">排序：</label>
            <div class="col-sm-10">
                <input id="sort" name="sort" class="form-control" type="text" required>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">公告类型：</label>
            <div class="col-sm-10">
                <select name="noticeType" class="form-control m-b" th:with="type=${@dict.getType('sys_notice_type')}">
                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">置顶：</label>
            <div class="col-sm-10">
                <select name="topped" class="form-control m-b" th:with="type=${@dict.getType('sys_yes_no')}">
                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">公告内容：</label>
            <div class="col-sm-10">
                <input id="noticeContent" name="noticeContent" type="hidden">
                <div class="summernote"></div>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">公告状态：</label>
            <div class="col-sm-10">
                <div class="radio-box" th:each="dict : ${@dict.getType('sys_notice_status')}">
                    <input type="radio" th:id="${dict.dictCode}" name="status" th:value="${dict.dictValue}"
                           th:checked="${dict.default}">
                    <label th:for="${dict.dictCode}" th:text="${dict.dictLabel}"></label>
                </div>
            </div>
        </div>
        <div class="form-group">
            <label class="col-sm-2 control-label">图片：</label>
            <div class="col-sm-10">
                <div id="image-upload-container"></div>
            </div>
        </div>
    </form>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: summernote-js"/>
<th:block th:include="include :: image-upload-js"/>
<script type="text/javascript">
    var prefix = ctx + "system/notice";

    $('.summernote').summernote({
        placeholder: '请输入公告内容',
        height: 192,
        lang: 'zh-CN',
        followingToolbar: false,
        dialogsInBody: true,
        callbacks: {
            onImageUpload: function (files) {
                sendFile(files[0], this);
            }
        }
    });

    // 初始化图片上传组件
    $('#image-upload-container').imageUpload({
        uploadUrl: ctx + "common/upload",
        maxFiles: 1,
        maxSize: 5 * 1024 * 1024,
        allowedTypes: ['image/jpeg', 'image/png'],
        previewWidth: 200,
        previewHeight: 150,
        inputName: 'noticeImg'
    });

    // 上传文件
    function sendFile(file, obj) {
        var data = new FormData();
        data.append("file", file);
        debugger
        $.ajax({
            type: "POST",
            url: ctx + "common/upload",
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            dataType: 'json',
            success: function (result) {
                if (result.code == web_status.SUCCESS) {
                    $(obj).summernote('editor.insertImage', result.url, result.fileName);
                } else {
                    $.modal.alertError(result.msg);
                }
            },
            error: function (error) {
                $.modal.alertWarning("图片上传失败。");
            }
        });
    }

    $("#form-notice-add").validate({
        focusCleanup: true,
        rules: {
            sort: {
                digits: true
            },
        },
    });

    function submitHandler() {
        var uploadInstance = $('#image-upload-container').data('imageUpload');

        // 检查是否有上传组件实例
        if (uploadInstance) {
            var uploadedFiles = uploadInstance.getFiles();
            console.log('已上传的图片:', uploadedFiles);

            // 如果需要封面必填
            if (uploadedFiles.length === 0) {
                $.modal.alertWarning("请上传封面图片");
                return false;
            }

            // 将图片URL数组转换为逗号分隔的字符串
            var imageUrls = uploadedFiles.join(',');
            console.log('图片URL字符串:', imageUrls);

            // 注意：图片上传组件已经通过 addHiddenField 方法添加了隐藏字段
            // 我们不需要再次添加，只需要确保所有图片都已被收集
            // 组件会自动处理隐藏字段
        } else {
            // 如果没有上传组件实例，直接检查是否有隐藏字段
            var existingImages = $('#form-competition-add input[name="noticeImg"]').map(function() {
                return $(this).val();
            }).get().filter(function(val) {
                return val && val.trim() !== '';
            });

            if (existingImages.length === 0) {
                $.modal.alertWarning("请上传封面图片");
                return false;
            }
        }
        if ($.validate.form()) {
            var sHTML = $('.summernote').summernote('code');
            $("#noticeContent").val(sHTML);
            $.operate.save(prefix + "/add", $('#form-notice-add').serialize());
        }
    }

</script>
</body>
</html>
