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