mayf
2024-09-20 e556c51d397f8783d8b180aa4421d8acd1e657d6
fix开始时间大于结束时间问题
已修改2个文件
83 ■■■■■ 文件已修改
pages/marketing/coupon/activity/index.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/coupon-form.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,7 @@
            commonFormatProps: ['usageStartDate', 'usageEndDate'],
            hidden: (row, item, mode) =>
              row.usageType !== 'fixed' || mode === 'view',
            rules: dateTimeRules,
          },
          {
            label: '领取后有效时间:',
@@ -269,22 +279,24 @@
        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 +341,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
      }
    },
  },
utils/coupon-form.js
@@ -187,3 +187,20 @@
    curField.rules.message = message
  }
}
export const dateTimeRules = (format = 'YYYY-MM-DD HH:mm') => {
  return {
    validator: (rule, value, callback) => {
      if (
        Array.isArray(value) &&
        value.filter((i) => !!i).length === 2 &&
        utils.formatDate(value[0], 'YYYY-MM-DD HH:mm') >
          utils.formatDate(value[1], 'YYYY-MM-DD HH:mm')
      ) {
        callback(new Error('开始时间不能大于结束时间'))
      } else {
        callback()
      }
    },
  }
}