Browse Source

feat:导出号码布zip、生成二维码、增加权限校验

wenkai 6 days ago
parent
commit
94ada099a7
1 changed files with 21 additions and 29 deletions
  1. 21 29
      src/views/system/gameEvent/index.vue

+ 21 - 29
src/views/system/gameEvent/index.vue

@@ -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;