From 3aeff7959b49b8cdc99dcfdbbe7df3694f64cbf2 Mon Sep 17 00:00:00 2001 From: yangwenhua <1289978696@qq.com> Date: Wed, 12 Oct 2022 14:35:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B9=B0=E6=BB=A1=E9=80=81=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/FreeGoodsMoney/index.jsx | 404 +++++++++++++++++- 1 file changed, 395 insertions(+), 9 deletions(-) diff --git a/src/pages/activity/activityStart/components/FreeGoodsMoney/index.jsx b/src/pages/activity/activityStart/components/FreeGoodsMoney/index.jsx index 8722f24..bc448b9 100644 --- a/src/pages/activity/activityStart/components/FreeGoodsMoney/index.jsx +++ b/src/pages/activity/activityStart/components/FreeGoodsMoney/index.jsx @@ -1,9 +1,85 @@ -import React, { useState } from "react"; -import { Form, Button, Input, Image, Select, DatePicker, Upload, InputNumber } from 'antd'; +import React, { useState, useEffect } from "react"; +import { Form, Button, Input, Image, Select, DatePicker, Upload, InputNumber, message, Checkbox, Row, Col } from 'antd'; import styles from "../../index.less"; import { MinusCircleOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons'; import startAPI from "../../service"; import axios from 'axios'; +import moment from "moment"; + +const activityConfigArray = [ + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "2B0F88D6-EDA0-4AAC-BB0B-DD34F3245C17", + "configurationName": "日参与次数限制", + "configurationRule": "每日参与次数", + "valueType": 1, + "configurationValueCount": 1 + }, + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "8AC2A2BA-BB6E-4566-B147-ACF798146BBD", + "configurationName": "星期限制", + "configurationRule": "包含的星期", + "valueType": 2, + "configurationValueCount": 1 + }, + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "9620CCF9-679E-44B1-B8FF-9B6F511208FA", + "configurationName": "消费金额", + "configurationRule": "单笔订单消费金额", + "valueType": 1, + "configurationValueCount": 1 + }, + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "AF62B336-15A6-453B-AD4A-61EB7D43B99B", + "configurationName": "商品种类限制", + "configurationRule": "包含的商品种类", + "valueType": 2, + "configurationValueCount": 1 + }, + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "ECBACC1C-6BA8-498E-BDE4-6A012881E0E7", + "configurationName": "门店限制", + "configurationRule": "包含的门店", + "valueType": 2, + "configurationValueCount": 1 + }, + { + "configId": null, + "operator": null, + "value1": [], + "value2": null, + "activity_Id": null, + "configuration_Id": "F06DEAD8-DDB8-4B27-94E9-389DE9AC155D", + "configurationName": "总参与次数限制", + "configurationRule": "总参与次数", + "valueType": 1, + "configurationValueCount": 1 + } +] /** * 买满赠送(商品) @@ -11,7 +87,58 @@ import axios from 'axios'; */ const FreeGoodsMoney = () => { - const [couponInfo, SetCouponInfo] = useState([]); + /** 适用商品范围 */ + const [applyGood, setApplyGood] = useState([]); + /** + * 获取商品 + */ + const onFetchGoods = async (goodsType = -1) => { + const response = await startAPI.GetGoodsById(goodsType); + if (response.statusCode === 200) { + const array = []; + Object.keys(response.data).forEach(item => { + array.push({ + id: item, + name: response.data[item] + }) + }); + setApplyGood(array) + } + } + + /** 适用商品类型范围 */ + const [applyGoodType, setApplyGoodType] = useState([]); + + /** + * 适用商品范围 + */ + const onFetchGoodsType = async () => { + const response = await startAPI.GetGoodsType(); + if (response.statusCode === 200) { + const array = []; + Object.keys(response.data).forEach(item => { + array.push({ + id: item, + name: response.data[item] + }) + }) + setApplyGoodType(array); + } + } + + /** 适用门店范围 */ + const [applicableStore, setApplicableStore] = useState([]); + + /** + * 获取适用店铺 + */ + const GetStores = async () => { + const response = await startAPI.GetStores(); + if (response.statusCode === 200) { + setApplicableStore(response.data); + } + } + const [couponForm] = Form.useForm(); const [imgurl, setimgUrl] = useState(null); @@ -74,6 +201,86 @@ const FreeGoodsMoney = () => { }, }; + /** + * 提交 + * @param {*} values + */ + const onSubmitActivity = async (values) => { + values.activityType = 5; + values.activityRewards.forEach(item => { + item.id = ""; + item.activityInfo_Id = ""; + }) + values.activityStartTime = moment(values.activityStartAndEndTime[0]).format('YYYY-MM-DD'); + values.activityEndTime = moment(values.activityStartAndEndTime[1]).format('YYYY-MM-DD'); + values.status = 0; + values.isShow = 1; + values.isDeleted = 0; + values.consumptionType = 0; + values.isGiftGoodsParticipate = 0; + values.activityConfiguration = []; + values.activityConfig.forEach(config => { + const findConfig = activityConfigArray.find(item => item.configuration_Id === config); + if (findConfig) { + findConfig.configId = [findConfig.configuration_Id]; + if (findConfig.configurationName === '日参与次数限制') { + findConfig.operator = values.dayOperator; + findConfig.value1 = values.dayValue; + } else if (findConfig.configurationName === '星期限制') { + findConfig.operator = values.weekOperator; + findConfig.value1 = values.weekValue; + } else if (findConfig.configurationName === '消费金额') { + findConfig.operator = values.amountOperator; + findConfig.value1 = values.amountValue; + } else if (findConfig.configurationName === '商品种类限制') { + findConfig.operator = values.goodsTypeOperator; + findConfig.value1 = values.goodsTypeValue; + } else if (findConfig.configurationName === '门店限制') { + findConfig.operator = values.storeOperator; + findConfig.value1 = values.storeValue; + } else if (findConfig.configurationName === '总参与次数限制') { + findConfig.operator = values.totalOperator; + findConfig.value1 = values.totalValue; + } + values.activityConfiguration.push(findConfig); + } + }); + delete values.activityConfig; + delete values.activityStartAndEndTime; + + delete values.amountOperator; + delete values.amountValue; + + delete values.dayOperator; + delete values.dayValue; + + delete values.goodsTypeOperator; + delete values.goodsTypeValue; + + delete values.storeOperator; + delete values.storeValue; + + delete values.totalOperator; + delete values.totalValue; + + delete values.weekOperator; + delete values.weekValue; + const response = await startAPI.FastAddActivity(values); + if (response.statusCode === 200) { + message.success('新建活动成功!'); + couponForm.resetFields(); + } else { + message.error(response.errors || '创建失败 请重试!'); + } + } + + + useEffect(() => { + onFetchGoods(); + onFetchGoodsType(); + GetStores(); + }, []); + return
{ remember: true, }} onFinish={(values) => { - console.log('values', values); + onSubmitActivity(values); }} layout="vertical" autoComplete="off" @@ -116,15 +323,15 @@ const FreeGoodsMoney = () => { fieldKey={[fieldKey, 'rewardValue']} rules={[{ required: true, message: '请输入消费金额' }]} > - +
赠送商品:
@@ -160,7 +373,7 @@ const FreeGoodsMoney = () => { @@ -189,6 +402,179 @@ const FreeGoodsMoney = () => { + + + + + + + + { + activityConfigArray.map((config, index) => { + return + {config.configurationName}:{config.configurationRule} + {index === 0 && ( + <> + + + + + + + + )} + {index === 1 && ( + <> + + + + + + + + )} + {index === 2 && ( + <> + + + + + + + + )} + {index === 3 && ( + <> + + + + + + + + )} + {index === 4 && ( + <> + + + + + + + + )} + {index === 5 && ( + <> + + + + + + + + )} + + }) + } + + + +