From cf9a8ed8dcd2c509d63a0bd3f683f65c2df96888 Mon Sep 17 00:00:00 2001
From: mayf <m13160102112@163.com>
Date: 星期五, 18 十月 2024 10:42:53 +0800
Subject: [PATCH] 财务报表调整

---
 pages/marketing/coupon/activity/index.vue |  112 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 79 insertions(+), 33 deletions(-)

diff --git a/pages/marketing/coupon/activity/index.vue b/pages/marketing/coupon/activity/index.vue
index 71db735..7f65ee6 100644
--- a/pages/marketing/coupon/activity/index.vue
+++ b/pages/marketing/coupon/activity/index.vue
@@ -11,6 +11,7 @@
   getActivityReceiveTime,
   getImageUrlRules,
   couponColumn,
+  dateTimeRules,
 } from '@/utils/coupon-form'
 export default {
   data() {
@@ -40,9 +41,8 @@
           if (!isNew) {
             row.usageTypeStr = getActivityEffectiveTime(row)
             row.getStartDateStr = getActivityReceiveTime(row)
-            getImageUrlRules(row,this.tableConfig.form)
+            getImageUrlRules(row, this.tableConfig.form)
           }
-          
         },
         columns: [
           ...couponColumn(),
@@ -102,7 +102,8 @@
         searchForm: [
           {
             type: 'row',
-            items: [...couponSearchForm(),
+            items: [
+              ...couponSearchForm(),
               {
                 label: '领取渠道:',
                 id: 'getType',
@@ -114,7 +115,6 @@
               },
             ],
           },
-
         ],
         form: [
           ...couponForm(),
@@ -130,17 +130,25 @@
             strKey: 'getTypeName',
             rules: { required: true, message: '请选择领取渠道' },
             on: {
-              change: (e, updateForm,obj) => {
-    
-                if(e[0]==='home'){
+              change: (e, updateForm, obj) => {
+                if (e[0] === 'home') {
                   // 如果是首页领取的话,则图片为必传递
-                  this.updateImageUrlRules(this.tableConfig.form,"imageUrl",true,"图片为必填项目")
-                }else{
-                  this.updateImageUrlRules(this.tableConfig.form,"imageUrl",false,"请输入图片")
+                  this.updateImageUrlRules(
+                    this.tableConfig.form,
+                    'imageUrl',
+                    true,
+                    '图片为必填项目'
+                  )
+                } else {
+                  this.updateImageUrlRules(
+                    this.tableConfig.form,
+                    'imageUrl',
+                    false,
+                    '请输入图片'
+                  )
                 }
               },
             },
-
           },
           {
             label: '优惠券图片:',
@@ -173,6 +181,7 @@
             commonRules: true,
             commonFormat: true,
             commonFormatProps: ['getStartDate', 'getEndDate'],
+            rules: dateTimeRules(),
           },
           {
             label: '使用时间:',
@@ -209,6 +218,31 @@
             commonFormatProps: ['usageStartDate', 'usageEndDate'],
             hidden: (row, item, mode) =>
               row.usageType !== 'fixed' || mode === 'view',
+            rules: (row) => {
+              return [
+                dateTimeRules(),
+                {
+                  validator: (rule, value, callback) => {
+                    if (
+                      Array.isArray(row.getStartDate) &&
+                      row.getStartDate.filter((i) => !!i).length === 2 &&
+                      Array.isArray(value) &&
+                      value.filter((i) => !!i).length === 2
+                    ) {
+                      if (value[0] < row.getStartDate[0]) {
+                        callback(new Error('使用开始时间不能小于领取开始时间'))
+                      } else if (value[1] < row.getStartDate[1]) {
+                        callback(new Error('使用结束时间不能小于领取结束时间'))
+                      } else {
+                        callback()
+                      }
+                    } else {
+                      callback()
+                    }
+                  },
+                },
+              ]
+            },
           },
           {
             label: '领取后有效时间:',
@@ -259,32 +293,46 @@
               controls: false,
             },
             unit: '张',
-            rules: {
-              required: true,
-              message: '请输入每人限领',
-              trigger: 'blur',
-            },
+            rules: (row) => [
+              {
+                required: true,
+                message: '请输入每人限领',
+                trigger: 'blur',
+              },
+              {
+                validator: (rule, value, callback) => {
+                  if (value > row.couponAmount) {
+                    callback(new Error('每人限领不能大于发放数量'))
+                  } else {
+                    callback()
+                  }
+                },
+                trigger: 'blur',
+              },
+            ],
           },
         ],
         extraButtons: [
           {
             text: '发布',
-            show: (row) =>{
+            show: (row) => {
               // row.status === 'inactive' || row.status === 'expired'
               // const now = new Date(); // 获取当前时间
               // const startDate = new Date(row.getStartDate); // 获取开始时间
               // const endDate = new Date(row.getEndDate); // 获取结束时间
               // // 判断当前时间是否在开始时间和结束时间之间
               // const isInTimeRange = now >= startDate && now <= endDate;
-              const now = new Date(); // 获取当前时间
-              const endDate = new Date(row.getEndDate); // 获取结束时间
+              const now = new Date() // 获取当前时间
+              const endDate = new Date(row.getEndDate) // 获取结束时间
               // 判断当前时间是否已经超过领取结束时间
-              const isAfterEndDate = now <= endDate;
-              if (isAfterEndDate && (row.status === 'inactive' || row.status === 'expired')) {
-                  return true;
+              const isAfterEndDate = now <= endDate
+              if (
+                isAfterEndDate &&
+                (row.status === 'inactive' || row.status === 'expired')
+              ) {
+                return true
               }
-              return false;
-          
+              return false
             },
             atClick: async (row) => {
               try {
@@ -329,16 +377,14 @@
     }
   },
   methods: {
-    updateImageUrlRules(form,id,required,message) {
-      const curField =form.find(
-        (field) => field.id === id
-      );
+    updateImageUrlRules(form, id, required, message) {
+      const curField = form.find((field) => field.id === id)
       if (curField && curField.rules && required) {
-        curField.rules.required = true;
-        curField.rules.message = message;
-      }else if(curField && curField.rules){
-        curField.rules.required = false;
-        curField.rules.message = message;
+        curField.rules.required = true
+        curField.rules.message = message
+      } else if (curField && curField.rules) {
+        curField.rules.required = false
+        curField.rules.message = message
       }
     },
   },

--
Gitblit v1.9.3