From e556c51d397f8783d8b180aa4421d8acd1e657d6 Mon Sep 17 00:00:00 2001 From: mayf <m13160102112@163.com> Date: 星期五, 20 九月 2024 09:27:25 +0800 Subject: [PATCH] fix开始时间大于结束时间问题 --- pages/marketing/coupon/activity/index.vue | 90 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 86 insertions(+), 4 deletions(-) diff --git a/pages/marketing/coupon/activity/index.vue b/pages/marketing/coupon/activity/index.vue index a8dd591..08f9178 100644 --- a/pages/marketing/coupon/activity/index.vue +++ b/pages/marketing/coupon/activity/index.vue @@ -9,7 +9,9 @@ couponSearchForm, getActivityEffectiveTime, getActivityReceiveTime, + getImageUrlRules, couponColumn, + dateTimeRules, } from '@/utils/coupon-form' export default { data() { @@ -39,10 +41,21 @@ if (!isNew) { row.usageTypeStr = getActivityEffectiveTime(row) row.getStartDateStr = getActivityReceiveTime(row) + getImageUrlRules(row, this.tableConfig.form) } }, columns: [ ...couponColumn(), + { + label: '优惠券图片', + formatter: (row) => ( + <el-bus-image + style="width:50px;height:50px" + lazy={true} + src={row.imageUrl} + /> + ), + }, { label: '领取时间', formatter: getActivityReceiveTime, @@ -89,7 +102,8 @@ searchForm: [ { type: 'row', - items: [...couponSearchForm(), + items: [ + ...couponSearchForm(), { label: '领取渠道:', id: 'getType', @@ -101,7 +115,6 @@ }, ], }, - ], form: [ ...couponForm(), @@ -116,6 +129,44 @@ str: true, strKey: 'getTypeName', rules: { required: true, message: '请选择领取渠道' }, + on: { + change: (e, updateForm, obj) => { + if (e[0] === 'home') { + // 如果是首页领取的话,则图片为必传递 + this.updateImageUrlRules( + this.tableConfig.form, + 'imageUrl', + true, + '图片为必填项目' + ) + } else { + this.updateImageUrlRules( + this.tableConfig.form, + 'imageUrl', + false, + '请输入图片' + ) + } + }, + }, + }, + { + label: '优惠券图片:', + id: 'imageUrl', + type: 'bus-upload', + el: { + listType: 'picture-card', + limit: 1, + limitSize: 2, + tipText: '大小不超过2M', + valueType: 'string', + }, + forceDisabled: true, + rules: { + required: true, + message: '请上传商品图片', + trigger: 'blur', + }, }, { label: '领取时间:', @@ -130,6 +181,7 @@ commonRules: true, commonFormat: true, commonFormatProps: ['getStartDate', 'getEndDate'], + rules: dateTimeRules, }, { label: '使用时间:', @@ -166,6 +218,7 @@ commonFormatProps: ['usageStartDate', 'usageEndDate'], hidden: (row, item, mode) => row.usageType !== 'fixed' || mode === 'view', + rules: dateTimeRules, }, { label: '领取后有效时间:', @@ -226,8 +279,25 @@ extraButtons: [ { text: '发布', - show: (row) => - row.status === 'inactive' || row.status === 'expired', + 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 isAfterEndDate = now <= endDate + if ( + isAfterEndDate && + (row.status === 'inactive' || row.status === 'expired') + ) { + return true + } + return false + }, atClick: async (row) => { try { await this.$elBusUtil.confirm('确定要发布吗?') @@ -270,5 +340,17 @@ title: '活动优惠券', } }, + methods: { + 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 + } + }, + }, } </script> -- Gitblit v1.9.3