From e06e563a554ee12b752e20e3a1aa5f26839fda63 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 17 十月 2024 14:45:57 +0800 Subject: [PATCH] add:销售合计统计运费+打包费;售后扣平台款字段,增加增加统计售后“打包运费(散户)”字段 --- pages/marketing/coupon/activity/index.vue | 147 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 138 insertions(+), 9 deletions(-) diff --git a/pages/marketing/coupon/activity/index.vue b/pages/marketing/coupon/activity/index.vue index 631647f..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,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, @@ -53,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 }, ], // 页面上要到分,后端要传到秒 @@ -89,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: [ @@ -105,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: '领取时间:', @@ -119,6 +181,7 @@ commonRules: true, commonFormat: true, commonFormatProps: ['getStartDate', 'getEndDate'], + rules: dateTimeRules(), }, { label: '使用时间:', @@ -155,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: '领取后有效时间:', @@ -205,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('确定要发布吗?') @@ -259,5 +376,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