Forráskód Böngészése

赛事专区bug修复

wengan01 2 hete
szülő
commit
2e0e7cdb7d
1 módosított fájl, 22 hozzáadás és 5 törlés
  1. 22 5
      src/views/content/travelRecommendation/index.vue

+ 22 - 5
src/views/content/travelRecommendation/index.vue

@@ -104,8 +104,8 @@
 
         <!-- 置顶排序 -->
         <el-form-item label="置顶" prop="sortOrder">
-          <el-input-number v-model="form.sortOrder" :min="1" controls-position="right" style="width: 200px" />
-          <span style="margin-left: 10px; font-size: 12px; color: #909399;">最小为1,数字越小越置顶,不可重复</span>
+          <el-input-number v-model="form.sortOrder" :min="1" :value-on-clear="null" placeholder="留空自动排到最后" controls-position="right" style="width: 200px" />
+          <span style="margin-left: 10px; font-size: 12px; color: #909399;">数字越小越置顶,不可重复;新增时留空则自动排到最后</span>
         </el-form-item>
 
         <!-- 封面图片 -->
@@ -319,15 +319,31 @@ const initForm = {
   contactPhone: '',
   openTime: '',
   content: '',
-  sortOrder: 1,
+  // 留空由后端自动分配为「当前最大值+1」,避免默认值与已有记录撞车导致新增失败
+  sortOrder: null,
   status: '0',
   contentImages: []
 };
 const form = ref({ ...initForm, contentImages: [] });
 const openTimeRange = ref(null);
 
+// 置顶排序校验:新增允许留空(后端自动排到最后),修改必须是一个不小于1的有效值
+// 后端 updateByBo 对 null/小于1 会直接抛「置顶排序最小为1」,这里提前拦住,避免保存时才报错
+function validateSortOrder(rule, value, callback) {
+  const empty = value === null || value === undefined || value === '';
+  if (empty) {
+    if (!form.value.id) return callback();
+    return callback(new Error('请填写置顶排序值,最小为1且不可与其他记录重复'));
+  }
+  if (Number(value) < 1) {
+    return callback(new Error('置顶排序最小为1'));
+  }
+  callback();
+}
+
 const rules = {
-  title: [{ required: true, message: '标题不能为空', trigger: 'blur' }]
+  title: [{ required: true, message: '标题不能为空', trigger: 'blur' }],
+  sortOrder: [{ validator: validateSortOrder, trigger: 'blur' }]
 };
 
 // ========== 地图相关 ==========
@@ -663,7 +679,8 @@ async function handleUpdate(row) {
       contactPhone: data.contactPhone || '',
       openTime: data.openTime || '',
       content: data.content || '',
-      sortOrder: data.sortOrder || 0,
+      // 库里若为 0/NULL 这类无效值,保持为空强制用户重填,不能兜底成 0(后端会拒绝保存)
+      sortOrder: data.sortOrder && data.sortOrder >= 1 ? data.sortOrder : null,
       status: data.status || '0',
       contentImages: (data.imageList || []).map(img => img.imageUrl)
     };