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 | 66 +++++++++++++++++++--------------
utils/coupon-form.js | 17 ++++++++
2 files changed, 55 insertions(+), 28 deletions(-)
diff --git a/pages/marketing/coupon/activity/index.vue b/pages/marketing/coupon/activity/index.vue
index 71db735..08f9178 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,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
}
},
},
diff --git a/utils/coupon-form.js b/utils/coupon-form.js
index d3e1eea..431fe28 100644
--- a/utils/coupon-form.js
+++ b/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()
+ }
+ },
+ }
+}
--
Gitblit v1.9.3