import utils from 'el-business-utils' // 优惠券表单公共字段 export const couponForm = () => { return [ { label: '优惠券名称:', id: 'couponName', type: 'input', rules: { required: true, message: '请输入优惠券名称', trigger: 'blur', }, }, { label: '优惠券类型:', id: 'couponDiscountType', type: 'bus-select-dict', el: { code: 'COUPON_TYPE', style: 'width:100%', }, on: { change: (e, updateForm, obj) => { if (e[0] === 'zero') { updateForm({ minOrderAmount: 0 }) obj.elBusForm .getComponentById('minOrderAmount') .$parent.clearValidate() } else { updateForm({ minOrderAmount: undefined }) } }, }, rules: { required: true, message: '请选择优惠券类型' }, str: true, strKey: 'couponDiscountTypeName', }, { label: '使用规则:', id: 'couponDescription', type: 'input', el: { type: 'textarea', rows: 6, }, default: '此券每人限领1张。仅限用于花满芫鲜花交易平台鲜切花花款满额使用,不可与其他优惠同享、不可叠加使用', rules: { required: true, message: '请输入使用规则', trigger: 'blur', }, }, { label: '优惠券使用条件:', id: 'minOrderAmount', type: 'input-number', el: (row) => ({ min: row.couponDiscountType === 'discount' ? 0.01 : 0, max: 99999999, precision: 2, controls: false, }), prefix: '满', unit: '元', rules: { required: true, message: '请输入优惠券使用条件', trigger: 'blur', }, disabled: (row) => row.couponDiscountType === 'zero', }, { label: '优惠券面值:', id: 'couponDiscountValue', type: 'input-number', el: { min: 0.01, max: 99999999, precision: 2, controls: false, }, unit: '元', rules: (row) => { return [ { required: true, message: '请输入优惠券面值', trigger: 'blur', }, { validator: (rule, value, callback) => { if (value && row.minOrderAmount && value > row.minOrderAmount) { callback(new Error('优惠券面值不能大于优惠券使用条件')) } else { callback() } }, trigger: 'blur', }, ] }, }, ] } export const couponSearchForm = () => { return [ { label: '优惠券类型', id: 'couponDiscountType', type: 'bus-select-dict', el: { code: 'COUPON_TYPE', style: 'width:100%', clearable: true, }, }, { label: '优惠券名称', id: 'name', type: 'input', }, ] } export const getActivityEffectiveTime = (row) => { if (row.usageType === 'get') { return `${utils.formatDate(row.getStartDate, 'YYYY-MM-DD HH:mm') || ''} ~ ${ utils.formatDate(row.getEndDate, 'YYYY-MM-DD HH:mm') || '' }` } else if (row.usageType === 'fixed') { return `${ utils.formatDate(row.usageStartDate, 'YYYY-MM-DD HH:mm') || '' } ~ ${utils.formatDate(row.usageEndDate, 'YYYY-MM-DD HH:mm') || ''}` } else if (row.usageType === 'get_after_time') { return `领取后${row.usageTimeNum}${row.usageTimeTypeName || ''}` } return '' } export const getActivityReceiveTime = (row) => { return `${utils.formatDate( row.getStartDate, 'YYYY-MM-DD HH:mm' )} ~ ${utils.formatDate(row.getEndDate, 'YYYY-MM-DD HH:mm')}` } // 优惠券列表公共字段 export const couponColumn = () => { return [ { label: '序号', type: 'index', minWidth: 60, fixed: 'left' }, { label: '优惠券名称', prop: 'couponName', minWidth: 150, fixed: 'left' }, { label: '优惠券类型', prop: 'couponDiscountTypeName', minWidth: 120 }, { label: '使用条件', formatter: (row) => `满${row.minOrderAmount}`, minWidth: 120, }, { label: '优惠券面值', prop: 'couponDiscountValue', minWidth: 120 }, ] } // 优惠券领取/发放记录 export const couponRecordColumn = (timeName) => { return [ { label: '序号', type: 'index' }, { label: '店铺名称', prop: 'customerName' }, { label: '联系方式', prop: 'tel' }, { label: timeName, prop: 'createTime' }, { label: '状态', prop: 'statusName' }, { label: '使用时间', prop: 'usedTime' }, { label: '订单号', prop: 'orderNo' }, ] } export const recordTableConfig = (couponId) => { return { url: 'flower/v2/coupon-record/page', hasNew: false, hasOperation: false, saveQuery: false, extraQuery: { couponId, }, } } export const getImageUrlRules = (row, form) => { const id = 'imageUrl' let required = false let message = '' if (row.getType === 'home') { required = true 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 } } 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() } }, } }