模板配置
@@ -171,7 +175,7 @@ function TemplateConfig(props) {
分享图片
{/*
*/}
-
-
请输入手机号领取收费券
-
-
请输入手机号
-
获取验证码
+
+
+
请输入手机号领取收费券
+
+
请输入短信验证码
+
+
立即领取
+
+
+
+
活动说明
+
{formData.description}
-
请输入短信验证码
-
立即领取
-
活动说明
-
{formData.description}
diff --git a/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/index.scss b/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/index.scss
index 1ca7e4e..3cc6eb2 100644
--- a/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/index.scss
+++ b/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/index.scss
@@ -45,6 +45,7 @@ $color-primary: var(--color-primary);
}
.right-wrapper{
width: 50%;
+
.review-page{
height: 600px;
width: 340px;
@@ -52,6 +53,8 @@ $color-primary: var(--color-primary);
padding: 10px;
display: flex;
flex-direction: column;
+ background: url(../../../../../assets/images/template_bg.jpg) center center no-repeat;
+ background-size: 100% 100%;
}
.image-wrapper{
width: 320px;
@@ -72,13 +75,14 @@ $color-primary: var(--color-primary);
display: flex;
margin-bottom: 10px;
margin-top: 10px;
+ padding-left: 23px;
.input-tel{
background-color: #fff;
border: 1px solid #cdd3df;
- height: 40px;
- line-height: 40px;
+ height: 30px;
+ line-height: 30px;
// margin-left: 10px;
- width: 190px;
+ width: 170px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
padding-left: 10px;
@@ -86,10 +90,10 @@ $color-primary: var(--color-primary);
.btn{
// background-color: #ebf40e;
color: #323232;
- height: 40px;
- line-height: 40px;
+ height: 30px;
+ line-height: 30px;
display: inline-block;
- width: 100px;
+ width: 80px;
text-align: center;
border: 1px solid #cdd3df;
border-top-right-radius: 5px;
@@ -100,25 +104,54 @@ $color-primary: var(--color-primary);
background-color: #fff;
color: #ccddff;
border: 1px solid #cdd3df;
- width: 290px;
+ width: 250px;
+ margin-left: 23px;
// margin-left: 10px;
- height: 40px;
- line-height: 40px;
+ height: 30px;
+ line-height: 30px;
border-radius: 5px;
margin-bottom: 10px;
padding-left: 10px;
}
.get-btn{
- background-color: #fea12a;
- color: #fff;
- height: 50px;
+ background-color: #ffe4aa;
+ color: #9f2b13;
+ font-weight: 700;
+ height: 40px;
width: 200px;
- margin-left: 60px;
- line-height: 50px;
+ margin-left: 50px;
+ margin-top: 50px;
+ line-height: 40px;
text-align: center;
- border-radius: 5px;
- font-size: 20px;
+ border-radius: 10px;
+ font-size: 16px;
margin-bottom: 40px;
}
+ .red-pack-wrapper{
+ background: url(../../../../../assets/images/red_package.png);
+ background-size: 100% 100%;
+ height: 230px;
+ padding-top: 10px;
+ }
+ .activity-desc{
+ background-color: #fff;
+ height: 120px;
+ margin-top:20px;
+ border-radius: 5px;
+ }
+ .desc-title{
+ color: #9f2b13;
+ margin: 0 auto;
+ width: 100px;
+ font-weight: 700;
+ border-radius: 5px;
+ text-align: center;
+ background-color: #ffffba;
+ }
+ .desc-content{
+ color: #6a4c3a;
+ padding: 0 10px;
+ font-size: 12px;
+ }
}
}
diff --git a/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/loadable.jsx b/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/loadable.jsx
index 173883f..a74aa40 100644
--- a/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/loadable.jsx
+++ b/src/pages/OperationCenter/OperationSales/CouponMgm/ActivitySpecificTopic/loadable.jsx
@@ -146,7 +146,12 @@ function ActivitySpecificTopic() {
const [addModal, setAddModal] = useState({
visible: false,
record: {},
- close: () => setAddModal({ ...addModal, visible: false }),
+ close: () => {
+ setAddModal({ ...addModal, visible: false })
+ if(tableRef.current){
+ tableRef.current.fetch()
+ }
+ },
});
const [templateModal, setTemplateModal] = useState({
diff --git a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/index.scss b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/index.scss
index e99b87e..4590b0b 100644
--- a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/index.scss
+++ b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/index.scss
@@ -149,6 +149,9 @@ $color-primary : var(--color-primary);
.ant-form-horizontal .ant-form-item-label label{
width: 105px;
}
+ .ant-space-horizontal{
+ align-items: flex-start;
+ }
}
.detail-container{
diff --git a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx
index 8c4baf8..3353c34 100644
--- a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx
+++ b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx
@@ -23,7 +23,7 @@ function CouponDistribute(props) {
})
const parameter = {
pn: 1,
- size: Number(pageSizeOptions[0]), // 每页条数
+ page_size: Number(pageSizeOptions[0]), // 每页条数
activity_name: "",
}
const [formData, setFormData] = useState(parameter)
@@ -127,10 +127,10 @@ function CouponDistribute(props) {
}
//切换每页条数
const changeLength = (pn, length) => {
- setFormData(Object.assign({}, formData, { pn: 1, size: length }))
- setLastFormData(Object.assign({}, lastFormData, { pn: 1, size: length }))
- lastFormDataRef.current = Object.assign({}, lastFormData, { pn: 1, size: length })
- getData(Object.assign({}, lastFormData, { pn: 1, size: length }))
+ setFormData(Object.assign({}, formData, { pn: 1, page_size: length }))
+ setLastFormData(Object.assign({}, lastFormData, { pn: 1, page_size: length }))
+ lastFormDataRef.current = Object.assign({}, lastFormData, { pn: 1, page_size: length })
+ getData(Object.assign({}, lastFormData, { pn: 1, page_size: length }))
}
//检索数据
const getSearchData = (data = formData) => {
@@ -210,7 +210,7 @@ function CouponDistribute(props) {
showTotal={() => `共 ${resultData.total} 条`}
total={resultData.total}
current={lastFormData.pn}
- pageSize={lastFormData.size}
+ pageSize={lastFormData.page_size}
pageSizeOptions={pageSizeOptions}
onChange={changePn}
onShowSizeChange={changeLength}
diff --git a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponRules/loadable.jsx b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponRules/loadable.jsx
index a51aa94..f9c661d 100644
--- a/src/pages/OperationCenter/OperationSales/CouponMgm/CouponRules/loadable.jsx
+++ b/src/pages/OperationCenter/OperationSales/CouponMgm/CouponRules/loadable.jsx
@@ -27,8 +27,8 @@ function CouponRules() {
const [formData, setFormData] = useSetState({
name: defaultParams ? defaultParams.name : '',
- status: defaultParams ? defaultParams.status : '',
- coupon_type: defaultParams ? defaultParams.coupon_type : '',
+ status: defaultParams ? defaultParams.status : '0',
+ coupon_type: defaultParams ? defaultParams.coupon_type : '0',
})
const [operatorOptions, setOperatorOptions] = useState([]) // 运营商下拉框
const [departOptions, setDepartOptions] = useState([])
@@ -43,7 +43,7 @@ function CouponRules() {
const [loading, setLoading] = useState(false) // 等待状态
const [pageData, setPageData] = useSetState({ // 分页参数
pn: defaultParams?.pn || 1,
- size:defaultParams?.page_size || 20,
+ page_size:defaultParams?.page_size || 20,
})
const [dataSource, setDataSource] = useState([])
@@ -136,6 +136,7 @@ function CouponRules() {
if (res.status == 20000) {
message.success(res.message)
setIsTakedownModalOpen(false)
+ getCouponList(params.current)
} else {
message.error(res.message)
}
@@ -151,6 +152,7 @@ function CouponRules() {
if (res.status == 20000) {
message.success(res.message)
setDeleteModalOpen(false)
+ getCouponList(params.current)
} else {
message.error(res.message)
}
@@ -230,7 +232,7 @@ function CouponRules() {
}
setPageData({
pn: pn,
- size: pageSize,
+ page_size: pageSize,
})
}
@@ -239,7 +241,7 @@ function CouponRules() {
// console.log(current,pageSize)
setPageData({
pn: current,
- size: pageSize,
+ page_size: pageSize,
})
}
@@ -247,7 +249,7 @@ function CouponRules() {
const search = () => {
setPageData({
pn: 1,
- size: 20
+ page_size: 20
})
}
@@ -277,7 +279,7 @@ function CouponRules() {
return
}
let submitData = {...currentCouponInfo}
- if(submitData.effective_date == 2 ){
+ if(submitData.effective_date == 2 ){ // 领取之日起
if(customDay== 0 && customHour == 0 && customMinute == 0){
message.error('有效日期需要设置时间范围')
return
@@ -287,7 +289,7 @@ function CouponRules() {
}
if(currentCouponId){ // 编辑
- ajax.handleCouponEdit({...currentCouponInfo ,id: currentCouponId }).then(res => {
+ ajax.handleCouponEdit({...submitData ,id: currentCouponId }).then(res => {
if (res.status == 20000) {
message.success(res.message)
setShowEdit(false)
@@ -303,7 +305,7 @@ function CouponRules() {
})
}else{ // 新增
- ajax.handleCouponInsert(currentCouponInfo).then(res => {
+ ajax.handleCouponInsert(submitData).then(res => {
if (res.status == 20000) {
message.success(res.message)
// getCouponList()
@@ -324,25 +326,64 @@ function CouponRules() {
const validateParams = ()=>{
let flag = true
- for(let key in validateRules){
- if(!currentCouponInfo[key] && !validateRules[key].relation){
- message.error(validateRules[key].tip)
- flag =false
- break
- }else if(validateRules[key].relation){ // 受制约的字段
- if(currentCouponInfo[validateRules[key].relation] == validateRules[key].value && !currentCouponInfo[key]){
- message.error(validateRules[key].tip)
- flag =falsesetcurrentCouponId
- break
- }
- }
+ // for(let key in validateRules){
+ // if(!currentCouponInfo[key] && !validateRules[key].relation){
+ // message.error(validateRules[key].tip)
+ // flag =false
+ // break
+ // }else if(validateRules[key].relation){ // 受制约的字段
+ // if(currentCouponInfo[validateRules[key].relation] == validateRules[key].value && !currentCouponInfo[key]){
+ // message.error(validateRules[key].tip)
+ // flag =falsesetcurrentCouponId
+ // break
+ // }
+ // }
+ // }
+ // name: {tip: "优惠券名称不能为空"},
+ // mode: {tip: "模式不能为空"},
+ // type: {tip: "优惠券类型不能为空"},
+ // // value: {tip: "面值不能为空"},
+ // // value_condition: {tip: "使用条件不能为空"},
+ // hour : {tip: "欠费时长不能为空"},
+ // effective_date: {tip: "有效日期不能为空"},
+ // effctive_value: {tip: "固定日期不能为空", relation: 'effective_date' , value: 1},
+ // // effctive_value2: {tip: "自领取日起时间范围不能为空", relation: 'effective_date' , value: 2 },
+ // terminal: {tip: "终端不能为空"},
+ // // use_scope: {tip: "使用范围不能为空",condition: ''},
+ // // use_content: {tip: "路段不能为空" , condition : ''},
+ // illustrate: {tip: "使用说明不能为空"}
+ if(!currentCouponInfo.name){
+ message.error('优惠券名称不能为空')
+ return false
+ }
+ if(!currentCouponInfo.mode){
+ message.error('模式不能为空')
+ return false
+ }
+
+ if(currentCouponInfo.mode == '2' && !currentCouponInfo.partner){
+ message.error('合作方不能为空')
+ return false
+ }
+
+ if(!currentCouponInfo.type){
+ message.error('优惠券类型不能为空')
+ return false
}
+
+ if(!currentCouponInfo.hour){
+ message.error('欠费时长不能为空')
+ return false
+ }
+
+
+
if(currentCouponInfo.use_scope == 1 && currentCouponInfo.use_content == ''){
message.error('路段不能为空')
- flag =false
+ return false
}else if(currentCouponInfo.use_scope == 2 && currentCouponInfo.use_content == ''){
message.error('商户不能为空')
- flag =false
+ return false
}
return flag
}
@@ -351,11 +392,15 @@ function CouponRules() {
setCurrentCouponInfo({})
setSelectedKeys([])
setTargetKeys([])
+ setCustomDay(0)
+ setCustomHour(0)
+ setCustomMinute(0)
}
const hideRightPanel = ()=>{
setShowEdit(false);
- setCurrentCouponInfo({})
+ // setCurrentCouponInfo({})
+ resetCurrentCouponInfo()
setCurrentCouponId('')
setJustCheck(false)
}
@@ -588,7 +633,7 @@ function CouponRules() {
{clickDropDown("2",record)}}>修改
{clickDropDown("3",record)}}>下架
- }else{ // 关联活动了
+ }else{ // 没有关联活动 可以删除
content =
{clickDropDown("1",record)}}>查看
{clickDropDown("2",record)}}>修改
@@ -619,7 +664,7 @@ function CouponRules() {
// showTotal={() => `共 ${total_records} 条`}
total={resultData.total}
current={pageData.pn}
- pageSize={pageData.size}
+ pageSize={pageData.page_size}
pageSizeOptions={dictionary?.pageSizeOptions}
onChange={onChangePn}
onShowSizeChange={onShowSizeChange}
@@ -674,7 +719,7 @@ function CouponRules() {
required={true}
disabled={justCheck}
yisaData={sysConfig.coupon?.length ? sysConfig.coupon.slice(1,4) : []}
- defaultValue={ currentCouponInfo.type || null }
+ defaultValue={ currentCouponInfo.type || '1' }
placeholder=""
hasUnlimited={ false }
showClose={true}
@@ -804,7 +849,7 @@ function CouponRules() {
disabled={justCheck}
yisaData={[{label: '全部', value: 0},{label: '按车场', value: 1},{label: '按商户', value: 2}]}
// defaultValue={ currentCouponInfo.use_scope || null }
- defaultValue={ 1 }
+ defaultValue={ 0 }
placeholder=""
hasUnlimited={ false }
showClose={true}
diff --git a/src/services/OperationCenter/OperationSales/index.js b/src/services/OperationCenter/OperationSales/index.js
index d4baa14..6ce243c 100644
--- a/src/services/OperationCenter/OperationSales/index.js
+++ b/src/services/OperationCenter/OperationSales/index.js
@@ -261,5 +261,6 @@ export default {
yardDiscountDown,
yardDiscountDelete,
handleCouponDown,
- handleAuditTemplate
+ handleAuditTemplate,
+ handleCouponEdit
};