Explorar el Código

fix: 修改bug

sgc hace 2 meses
padre
commit
6c2b3bf1a5

+ 1 - 1
src/views/operationManagement/activityDetail.vue

@@ -344,7 +344,7 @@ const getStatusLabel = (status: number) => {
 const getAuditStatusLabel = (status: number) => {
   const auditStatusMap: Record<number, string> = {
     1: "待审核",
-    2: "待审核",
+    2: "未开始",
     3: "审核驳回",
     5: "审核通过",
     8: "审核通过"

+ 67 - 17
src/views/operationManagement/newActivity.vue

@@ -76,7 +76,7 @@
               <el-form-item class="activity-time-item" label="报名时间" prop="signupTimeRange">
                 <el-date-picker
                   v-model="activityModel.signupTimeRange"
-                  :disabled-date="disabledDate"
+                  :disabled-date="disabledSignupDate"
                   class="form-input"
                   end-placeholder="结束日期"
                   format="YYYY/MM/DD"
@@ -428,19 +428,25 @@ const rules = reactive({
             callback(new Error("报名开始时间必须早于报名结束时间"));
             return;
           }
-          // 检查报名结束时间是否在活动开始时间之前
+          // 检查报名时间是否在活动开始时间之前
           if (
             activityModel.value.activityTimeRange &&
             Array.isArray(activityModel.value.activityTimeRange) &&
             activityModel.value.activityTimeRange.length === 2
           ) {
-            const [activityStartTime] = activityModel.value.activityTimeRange;
-            if (activityStartTime) {
-              const activityStart = new Date(activityStartTime);
-              if (end >= activityStart) {
-                callback(new Error("报名结束时间必须在活动开始时间之前"));
-                return;
-              }
+            const activityStartTime = new Date(activityModel.value.activityTimeRange[0]);
+            activityStartTime.setHours(0, 0, 0, 0);
+            start.setHours(0, 0, 0, 0);
+            end.setHours(0, 0, 0, 0);
+
+            // 报名开始时间和结束时间都必须在活动开始时间之前(不能等于)
+            if (start >= activityStartTime) {
+              callback(new Error("报名开始时间必须在活动开始时间之前"));
+              return;
+            }
+            if (end >= activityStartTime) {
+              callback(new Error("报名结束时间必须在活动开始时间之前"));
+              return;
             }
           }
         }
@@ -561,6 +567,27 @@ const disabledDate = (time: Date) => {
   return time.getTime() < today.getTime();
 };
 
+// 禁用报名日期(不能早于今天,且不能晚于或等于活动开始时间)
+const disabledSignupDate = (time: Date) => {
+  const today = new Date();
+  today.setHours(0, 0, 0, 0);
+
+  // 不能早于今天
+  if (time.getTime() < today.getTime()) {
+    return true;
+  }
+
+  // 如果已选择活动时间,报名时间不能晚于或等于活动开始时间
+  if (activityModel.value.activityTimeRange && activityModel.value.activityTimeRange.length === 2) {
+    const activityStartTime = new Date(activityModel.value.activityTimeRange[0]);
+    activityStartTime.setHours(0, 0, 0, 0);
+    // 报名时间必须早于活动开始时间(不能等于)
+    return time.getTime() >= activityStartTime.getTime();
+  }
+
+  return false;
+};
+
 // ==================== 图片参数转换函数 ====================
 
 /**
@@ -1018,21 +1045,44 @@ watch(
 );
 
 /**
- * 监听活动时间变化,重新验证报名时间
+ * 监听活动时间变化,如果报名时间不符合要求则清空并提示
  */
 watch(
   () => activityModel.value.activityTimeRange,
-  () => {
-    // 当活动时间改变时,如果已设置报名时间,重新验证报名时间
+  (newVal, oldVal) => {
+    // 初始化时不处理
+    if (oldVal === undefined || oldVal === null) return;
+
+    // 只有营销活动才需要检查报名时间
+    if (activityModel.value.activityType !== 1) return;
+
+    // 如果活动时间已选择且报名时间已选择
     if (
-      activityModel.value.activityType === 1 &&
+      newVal &&
+      newVal.length === 2 &&
       activityModel.value.signupTimeRange &&
-      Array.isArray(activityModel.value.signupTimeRange) &&
       activityModel.value.signupTimeRange.length === 2
     ) {
-      nextTick(() => {
-        ruleFormRef.value?.validateField("signupTimeRange");
-      });
+      const activityStartTime = new Date(newVal[0]);
+      activityStartTime.setHours(0, 0, 0, 0);
+      const signupStartTime = new Date(activityModel.value.signupTimeRange[0]);
+      signupStartTime.setHours(0, 0, 0, 0);
+      const signupEndTime = new Date(activityModel.value.signupTimeRange[1]);
+      signupEndTime.setHours(0, 0, 0, 0);
+
+      // 如果报名开始时间或结束时间晚于或等于活动开始时间,清空报名时间并提示
+      if (signupStartTime >= activityStartTime || signupEndTime >= activityStartTime) {
+        activityModel.value.signupTimeRange = [];
+        nextTick(() => {
+          ruleFormRef.value?.clearValidate("signupTimeRange");
+          ElMessage.warning("活动时间已调整,报名时间必须在活动开始时间之前,请重新选择报名时间");
+        });
+      } else {
+        // 如果报名时间符合要求,重新验证
+        nextTick(() => {
+          ruleFormRef.value?.validateField("signupTimeRange");
+        });
+      }
     }
   }
 );

+ 1 - 3
src/views/operationManagement/personnel.vue

@@ -90,9 +90,7 @@ const getTableList = async (params: any) => {
     };
 
     // 如果有状态筛选,添加状态参数(注意:搜索字段名是 status)
-    if (params.status) {
-      newParams.status = params.status;
-    }
+    newParams.status = params.status;
 
     // 如果有活动类型筛选,添加活动类型参数
     if (params.activityType) {

+ 1 - 1
src/views/ticketManagement/couponDetail.vue

@@ -43,7 +43,7 @@
           <div class="detail-item">
             <div class="detail-label">有效期</div>
             <div class="detail-value">
-              {{ couponModel.specifiedDay ? `购买后${couponModel.specifiedDay}天` : "--" }}
+              {{ couponModel.specifiedDay ? `${couponModel.specifiedDay}天` : "--" }}
             </div>
           </div>
           <!-- 库存 -->