From 04be125365bfd254166072f75da87e406f633ba3 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 09 一月 2025 18:36:56 +0800
Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/operation_pc-v2
---
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