From daa0b51b0b3609c683da3066c2815d3e9eb42b3f Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期三, 18 十二月 2024 09:39:46 +0800
Subject: [PATCH] 1.订单管理的异常订单
---
pages/marketing/coupon/activity/index.vue | 125 +++++++++++++++++++++++++++++++++--------
1 files changed, 100 insertions(+), 25 deletions(-)
diff --git a/pages/marketing/coupon/activity/index.vue b/pages/marketing/coupon/activity/index.vue
index e9564a1..7f65ee6 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,6 +41,7 @@
if (!isNew) {
row.usageTypeStr = getActivityEffectiveTime(row)
row.getStartDateStr = getActivityReceiveTime(row)
+ getImageUrlRules(row, this.tableConfig.form)
}
},
columns: [
@@ -63,10 +66,10 @@
formatter: getActivityEffectiveTime,
minWidth: 320,
},
+ { label: '领取渠道', prop: 'getTypeName', minWidth: 120 },
{ label: '已领取总数', prop: 'getNum', minWidth: 150 },
{ label: '剩余未领取总数', prop: 'unGetNum', minWidth: 150 },
{ label: '状态', prop: 'statusName', minWidth: 120 },
- { label: '领取渠道', prop: 'getTypeName', minWidth: 120 },
{ label: '操作人', prop: 'createByName', minWidth: 120 },
],
// 页面上要到分,后端要传到秒
@@ -99,7 +102,18 @@
searchForm: [
{
type: 'row',
- items: [...couponSearchForm()],
+ items: [
+ ...couponSearchForm(),
+ {
+ label: '领取渠道:',
+ id: 'getType',
+ type: 'bus-select-dict',
+ el: {
+ code: 'COUPON_GET_TYPE',
+ style: 'width:100%',
+ },
+ },
+ ],
},
],
form: [
@@ -116,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: '优惠券图片:',
@@ -159,6 +181,7 @@
commonRules: true,
commonFormat: true,
commonFormatProps: ['getStartDate', 'getEndDate'],
+ rules: dateTimeRules(),
},
{
label: '使用时间:',
@@ -195,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: '领取后有效时间:',
@@ -245,18 +293,47 @@
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) =>
- 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('确定要发布吗?')
@@ -300,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