|
@@ -356,6 +356,7 @@
|
|
|
<i-ep-upload-filled />
|
|
|
</el-icon>
|
|
|
<div class="el-upload__text">拖拽背景图片到此处,或<em>点击上传</em></div>
|
|
|
+ <div class="el-upload__tip">建议尺寸:842×595px (横向A4比例)</div>
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -365,17 +366,18 @@
|
|
|
<i-ep-upload-filled />
|
|
|
</el-icon>
|
|
|
<div class="el-upload__text">拖拽Logo图片到此处,或<em>点击上传</em></div>
|
|
|
+ <div class="el-upload__tip">建议尺寸:80×80px</div>
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="字体设置">
|
|
|
- <div style="display: flex; gap: 15px; align-items: center;">
|
|
|
- <el-select v-model="bibForm.fontName" placeholder="字体" style="width: 100px;">
|
|
|
+ <div style="display: flex; gap: 15px; align-items: center">
|
|
|
+ <el-select v-model="bibForm.fontName" placeholder="字体" style="width: 100px">
|
|
|
<el-option label="黑体" value="simhei"></el-option>
|
|
|
<el-option label="宋体" value="simsun"></el-option>
|
|
|
<el-option label="微软雅黑" value="microsoft-yahei"></el-option>
|
|
|
</el-select>
|
|
|
- <el-input-number v-model="bibForm.fontSize" :min="38" :max="198" placeholder="字体大小" style="width: 140px;"></el-input-number>
|
|
|
+ <el-input-number v-model="bibForm.fontSize" :min="38" :max="198" placeholder="字体大小" style="width: 140px"></el-input-number>
|
|
|
<el-color-picker v-model="bibForm.fontColor" @change="handleFontColorChange"></el-color-picker>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
@@ -1125,7 +1127,6 @@ const dragState = reactive({
|
|
|
|
|
|
// 生成参赛证按钮处理
|
|
|
const handleGenerateBib = () => {
|
|
|
-
|
|
|
// 强制设置默认值,不使用条件判断(像素单位)
|
|
|
bibForm.logoX = bibForm.logoX || 50;
|
|
|
bibForm.logoY = bibForm.logoY || 50;
|
|
@@ -1154,7 +1155,6 @@ const handleCloseBibDialog = () => {
|
|
|
|
|
|
// 重置表单
|
|
|
const resetBibForm = () => {
|
|
|
-
|
|
|
// 设置默认值(像素单位)
|
|
|
bibForm.logoX = 50;
|
|
|
bibForm.logoY = 50;
|
|
@@ -1176,7 +1176,6 @@ const resetBibForm = () => {
|
|
|
if (logoUploadRef.value) {
|
|
|
logoUploadRef.value.clearFiles();
|
|
|
}
|
|
|
-
|
|
|
};
|
|
|
|
|
|
// 背景图片改变处理
|
|
@@ -1347,7 +1346,6 @@ const handleGenerateBibFile = async () => {
|
|
|
console.warn('qRCodeY值异常,使用默认值200px');
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 获取预览容器的高度用于坐标转换
|
|
|
const containerHeight = previewContainer.value?.clientHeight || 400;
|
|
|
|
|
@@ -1366,15 +1364,15 @@ const handleGenerateBibFile = async () => {
|
|
|
// 二维码坐标(左上角)
|
|
|
const qrCoords = convertCoordinatesWithScale(qRCodeX, qRCodeY);
|
|
|
|
|
|
- const bibParams = {
|
|
|
- logoX: logoCoords.x,
|
|
|
- logoY: logoCoords.y,
|
|
|
- qRCodeX: qrCoords.x,
|
|
|
- qRCodeY: qrCoords.y,
|
|
|
- fontName: bibForm.fontName || 'simhei',
|
|
|
- fontSize: Math.round((bibForm.fontSize || 36) * 0.75), // 字体大小转换为PDF点并四舍五入为整数
|
|
|
- fontColor: parseInt((bibForm.fontColor || '#000000').replace('#', ''), 16)
|
|
|
- };
|
|
|
+ const bibParams = {
|
|
|
+ logoX: logoCoords.x,
|
|
|
+ logoY: logoCoords.y,
|
|
|
+ qRCodeX: qrCoords.x,
|
|
|
+ qRCodeY: qrCoords.y,
|
|
|
+ fontName: bibForm.fontName || 'simhei',
|
|
|
+ fontSize: Math.round((bibForm.fontSize || 36) * 0.75), // 字体大小转换为PDF点并四舍五入为整数
|
|
|
+ fontColor: parseInt((bibForm.fontColor || '#000000').replace('#', ''), 16)
|
|
|
+ };
|
|
|
|
|
|
// 最后一次检查,确保二维码坐标不为null
|
|
|
if (bibParams.qRCodeX === null || bibParams.qRCodeY === undefined) {
|
|
@@ -1411,19 +1409,6 @@ onMounted(() => {
|
|
|
// 获取默认赛事信息
|
|
|
gameEventStore.fetchDefaultEvent();
|
|
|
getList();
|
|
|
- generateNumberTable();
|
|
|
-
|
|
|
- // 强制确保bibForm的值正确初始化
|
|
|
-
|
|
|
- // 使用nextTick确保在下一个tick执行
|
|
|
- nextTick(() => {
|
|
|
- if (bibForm.qRCodeX === null || bibForm.qRCodeX === undefined) {
|
|
|
- bibForm.qRCodeX = 100; // 像素单位
|
|
|
- }
|
|
|
- if (bibForm.qRCodeY === null || bibForm.qRCodeY === undefined) {
|
|
|
- bibForm.qRCodeY = 200; // 像素单位
|
|
|
- }
|
|
|
- });
|
|
|
});
|
|
|
|
|
|
// 监听路由变化,当从编辑页返回时检查是否需要刷新列表
|
|
@@ -1472,6 +1457,13 @@ onActivated(() => {
|
|
|
padding: 20px;
|
|
|
}
|
|
|
|
|
|
+.bib-generator .el-upload__tip {
|
|
|
+ color: #909399;
|
|
|
+ font-size: 12px;
|
|
|
+ margin-top: 8px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
.preview-container {
|
|
|
border: 2px dashed #ddd;
|
|
|
border-radius: 8px;
|