123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <!DOCTYPE html>
- <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
- <head>
- <th:block th:include="include :: header('修改赛事发布')" />
- <th:block th:include="include :: datetimepicker-css" />
- <th:block th:include="include :: summernote-css" />
- <th:block th:include="include :: bootstrap-fileinput-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-competition-edit" th:object="${competition}">
- <input name="id" th:field="*{id}" type="hidden">
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">赛事标题:</label>
- <div class="col-sm-4">
- <input name="competitionTitle" th:field="*{competitionTitle}" class="form-control" type="text" maxlength="50" required>
- </div>
- <label class="col-sm-2 control-label is-required">赛事类型:</label>
- <div class="col-sm-4">
- <select name="competitionType" class="form-control" th:with="type=${@dict.getType('competition_type')}">
- <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{competitionType}"></option>
- </select>
- </div>
- </div>
- </div>
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">最大人数/团队数:</label>
- <div class="col-sm-4">
- <input name="teamMax" th:field="*{teamMax}" class="form-control" type="text" required>
- </div>
- <label class="col-sm-2 control-label">场地:</label>
- <div class="col-sm-4">
- <input name="competitionPlace" th:field="*{competitionPlace}" class="form-control" type="text" maxlength="50">
- </div>
- </div>
- </div>
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">报名费用:</label>
- <div class="col-sm-4">
- <input name="competitionExpense" th:field="*{competitionExpense}" class="form-control" type="text" required>
- </div>
- <label class="col-sm-2 control-label is-required">观看费用:</label>
- <div class="col-sm-4">
- <input name="viewingTicket" th:field="*{viewingTicket}" class="form-control" type="text" required>
- </div>
- </div>
- </div>
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">赛事开始时间:</label>
- <div class="col-sm-4">
- <div class="input-group date">
- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
- <input name="applyStartTime" th:value="${#dates.format(competition.applyStartTime, 'yyyy-MM-dd HH:mm')}" type="text" class="form-control" id="applyStartTime" placeholder="年-月-日 时:分" required>
- </div>
- </div>
- <label class="col-sm-2 control-label is-required">赛事结束时间:</label>
- <div class="col-sm-4">
- <div class="input-group date">
- <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
- <input name="applyEndTime" th:value="${#dates.format(competition.applyEndTime, 'yyyy-MM-dd HH:mm')}" type="text" class="form-control" id="applyEndTime" placeholder="年-月-日 时:分" required>
- </div>
- </div>
- </div>
- </div>
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">取消报名截至时间:</label>
- <div class="col-sm-4">
- <select th:field="*{applyBeforeTime}" name="applyBeforeTime" class="form-control">
- <option value="1">赛事开始前1小时</option>
- <option value="2">赛事开始前2小时</option>
- <option value="3">赛事开始前3小时</option>
- <option value="6">赛事开始前6小时</option>
- <option value="12">赛事开始前12小时</option>
- <option value="24">赛事开始前24小时</option>
- <option value="48">赛事开始前48小时</option>
- </select>
- </div>
- </div>
- </div>
- <div class="col-xs-12">
- <div class="form-group">
- <label class="col-sm-2 control-label is-required">赛事详情:</label>
- <div class="col-sm-4">
- <input type="hidden" class="form-control" th:field="*{competitionDetails}" required>
- <div class="summernote" id="competitionDetails"></div>
- </div>
- <label class="col-sm-2 control-label">报名须知:</label>
- <div class="col-sm-4">
- <input type="hidden" class="form-control" th:field="*{registrationNotes}">
- <div class="summernote" id="registrationNotes"></div>
- </div>
- </div>
- </div>
- <div class="form-group">
- <label class="col-sm-2 control-label">图片:</label>
- <div class="col-sm-10">
- <input type="hidden" name="noticeImg" th:field="*{competitionImg}">
- <div class="file-loading">
- <input class="form-control file-upload" id="competitionImg" name="file" type="file" >
- </div>
- </div>
- </div>
- </form>
- </div>
- <th:block th:include="include :: footer" />
- <th:block th:include="include :: datetimepicker-js" />
- <th:block th:include="include :: summernote-js" />
- <th:block th:include="include :: bootstrap-fileinput-js"/>
- <script th:inline="javascript">
- var prefix = ctx + "competition";
- $("#form-competition-edit").validate({
- focusCleanup: true
- });
- function submitHandler() {
- if ($.validate.form()) {
- $.operate.save(prefix + "/edit", $('#form-competition-edit').serialize());
- }
- }
- $("input[name='applyStartTime']").datetimepicker({
- format: "yyyy-mm-dd hh:ii",
- autoclose: true
- });
- $("input[name='applyEndTime']").datetimepicker({
- format: "yyyy-mm-dd hh:ii",
- autoclose: true
- });
- $(function() {
- console.log()
- $('.summernote').each(function(i) {
- $('#' + this.id).summernote({
- lang: 'zh-CN',
- dialogsInBody: true,
- height: 400,
- callbacks: {
- onChange: function(contents, $edittable) {
- $("input[name='" + this.id + "']").val(contents);
- },
- onImageUpload: function(files) {
- var obj = this;
- var data = new FormData();
- data.append("file", files[0]);
- $.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.id).summernote('insertImage', result.url);
- } else {
- $.modal.alertError(result.msg);
- }
- },
- error: function(error) {
- $.modal.alertWarning("图片上传失败。");
- }
- });
- }
- }
- });
- var content = $("input[name='" + this.id + "']").val();
- $('#' + this.id).summernote('code', content);
- })
- });
- $(".file-upload").each(function (i) {
- var inputName = this.id;
- var val = $("input[name='" + inputName + "']").val();
- // 将已上传的图片路径分割成数组
- var initialPreview = val ? val.split(',') : [];
- $(this).fileinput({
- uploadUrl: ctx + 'common/upload',
- initialPreviewAsData: true,
- initialPreview: initialPreview,
- maxFileCount: 1,
- allowedFileExtensions: ['jpg', 'png'],
- maxFileSize: 10240,
- multiple: false,
- }).on('fileuploaded', function (event, data, previewId, index) {
- var inputName = event.currentTarget.id;
- var existingValue = $("input[name='" + inputName + "']").val();
- var fullUrl = data.response.url; // 获取完整的URL
- var urlObject = new URL(fullUrl);
- var relativePath = urlObject.pathname; // 获取路径部分
- // var newBaseUrl = "http://192.168.4.27"; // 新的基URL
- var newBaseUrl = "http://localhost"; // 新的基URL
- var absoluteUrl = newBaseUrl + relativePath; // 拼接完整的URL
- // 如果已经存在值,则替换为新值
- $("input[name='" + inputName + "']").val(absoluteUrl);
- }).on('fileremoved', function (event, id, index) {
- var inputName = event.currentTarget.id;
- $("input[name='" + inputName + "']").val(''); // 移除后清空输入框
- });
- $(this).fileinput('_initFileActions');
- });
- </script>
- </body>
- </html>
|