193 lines
7.7 KiB
HTML
193 lines
7.7 KiB
HTML
{% extends 'base.html' %}
|
|
|
|
{% block css %}
|
|
<style>
|
|
body {
|
|
background-color: #f8f9fa;
|
|
font-family: Arial, sans-serif;
|
|
}
|
|
|
|
.container {
|
|
max-width: 800px;
|
|
margin: 50px auto;
|
|
}
|
|
|
|
h1 {
|
|
margin-bottom: 30px;
|
|
color: #333;
|
|
}
|
|
|
|
.setting-form {
|
|
background-color: white;
|
|
padding: 30px;
|
|
border-radius: 10px;
|
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.form-group {
|
|
margin-bottom: 25px;
|
|
}
|
|
|
|
.preview-section {
|
|
background-color: #e9ecef;
|
|
padding: 20px;
|
|
border-radius: 5px;
|
|
margin-top: 30px;
|
|
}
|
|
|
|
.preview-title {
|
|
margin-bottom: 20px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.color-preview {
|
|
display: inline-block;
|
|
width: 30px;
|
|
height: 30px;
|
|
border-radius: 50%;
|
|
margin-left: 10px;
|
|
vertical-align: middle;
|
|
border: 1px solid #dee2e6;
|
|
}
|
|
|
|
.btn-primary {
|
|
padding: 12px 30px;
|
|
font-size: 16px;
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container">
|
|
<h1>活动设置</h1>
|
|
|
|
<div class="setting-form">
|
|
<form method="post" enctype="multipart/form-data">
|
|
{% csrf_token %}
|
|
|
|
<div class="form-group">
|
|
{{ form.background_image.label_tag }}
|
|
{{ form.background_image }}
|
|
{% if form.background_image.errors %}
|
|
<div class="text-danger">{{ form.background_image.errors }}</div>
|
|
{% endif %}
|
|
{% if setting.background_image %}
|
|
<div class="mt-2">
|
|
<small class="text-muted">当前背景图片:</small>
|
|
<img src="{{ setting.background_image.url }}" alt="当前背景图片" style="max-width: 200px; max-height: 100px; border-radius: 5px;">
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
{{ form.background_video.label_tag }}
|
|
{{ form.background_video }}
|
|
{% if form.background_video.errors %}
|
|
<div class="text-danger">{{ form.background_video.errors }}</div>
|
|
{% endif %}
|
|
{% if setting.background_video %}
|
|
<div class="mt-2">
|
|
<small class="text-muted">当前背景视频:{{ setting.background_video.name }}</small>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
{{ form.qr_code_image.label_tag }}
|
|
{{ form.qr_code_image }}
|
|
{% if form.qr_code_image.errors %}
|
|
<div class="text-danger">{{ form.qr_code_image.errors }}</div>
|
|
{% endif %}
|
|
{% if setting.qr_code_image %}
|
|
<div class="mt-2">
|
|
<small class="text-muted">当前二维码:</small>
|
|
<img src="{{ setting.qr_code_image.url }}" alt="当前二维码" style="max-width: 100px; max-height: 100px; border-radius: 5px;">
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
{{ form.qr_code_position.label_tag }}
|
|
{{ form.qr_code_position }}
|
|
{% if form.qr_code_position.errors %}
|
|
<div class="text-danger">{{ form.qr_code_position.errors }}</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="id_danmu_font_color">
|
|
弹幕字体颜色
|
|
<span class="color-preview" id="font-color-preview" style="background-color: {{ setting.danmu_font_color }};"></span>
|
|
</label>
|
|
{{ form.danmu_font_color }}
|
|
{% if form.danmu_font_color.errors %}
|
|
<div class="text-danger">{{ form.danmu_font_color.errors }}</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="id_danmu_bg_color">
|
|
弹幕背景颜色
|
|
<span class="color-preview" id="bg-color-preview" style="background-color: {{ setting.danmu_bg_color }};"></span>
|
|
</label>
|
|
{{ form.danmu_bg_color }}
|
|
{% if form.danmu_bg_color.errors %}
|
|
<div class="text-danger">{{ form.danmu_bg_color.errors }}</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="id_global_bg_color">
|
|
全局背景颜色
|
|
<span class="color-preview" id="global-color-preview" style="background-color: {{ setting.global_bg_color }};"></span>
|
|
</label>
|
|
{{ form.global_bg_color }}
|
|
{% if form.global_bg_color.errors %}
|
|
<div class="text-danger">{{ form.global_bg_color.errors }}</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary">保存设置</button>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="preview-section">
|
|
<div class="preview-title">预览效果:</div>
|
|
<div style="width: 100%; height: 200px; background-color: {{ setting.global_bg_color }}; border-radius: 5px; position: relative; overflow: hidden;">
|
|
{% if setting.background_image %}
|
|
<img src="{{ setting.background_image.url }}" alt="背景预览" style="width: 100%; height: 100%; object-fit: cover;">
|
|
{% endif %}
|
|
<div style="position: absolute; {{ setting.qr_code_position|safe }}: 10px; width: 80px; height: 80px;">
|
|
{% if setting.qr_code_image %}
|
|
<img src="{{ setting.qr_code_image.url }}" alt="二维码预览" style="width: 100%; height: 100%; border: 2px solid white; border-radius: 5px;">
|
|
{% else %}
|
|
<!-- 默认二维码预览 -->
|
|
<img src="https://api.qrserver.com/v1/create-qr-code/?size=80x80&data={{ request.build_absolute_uri }}{% url 'submit' %}" alt="二维码预览" style="width: 100%; height: 100%; border: 2px solid white; border-radius: 5px;">
|
|
{% endif %}
|
|
</div>
|
|
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 10px 20px; border-radius: 20px; font-size: 16px; font-weight: bold; color: {{ setting.danmu_font_color }}; background-color: {{ setting.danmu_bg_color }}; opacity: 0.8;">
|
|
示例弹幕
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block js %}
|
|
<script>
|
|
$(document).ready(function() {
|
|
// 实时更新颜色预览
|
|
$('#id_danmu_font_color').on('input', function() {
|
|
$('#font-color-preview').css('background-color', $(this).val());
|
|
});
|
|
|
|
$('#id_danmu_bg_color').on('input', function() {
|
|
$('#bg-color-preview').css('background-color', $(this).val());
|
|
});
|
|
|
|
$('#id_global_bg_color').on('input', function() {
|
|
$('#global-color-preview').css('background-color', $(this).val());
|
|
});
|
|
});
|
|
</script>
|
|
{% endblock %} |