diff --git a/src/components/CouponModal/HeadCouponModal.css b/src/components/CouponModal/HeadCouponModal.css index 2f6624d..4a89d0f 100644 --- a/src/components/CouponModal/HeadCouponModal.css +++ b/src/components/CouponModal/HeadCouponModal.css @@ -124,13 +124,14 @@ .content-button { width: 94px; height: 32px; - background: #1677FF; + background: #d3d3d3; border-radius: 10px; font-size: 16px; color: #FFFFFF; text-align: center; line-height: 32px; cursor: pointer; + } .content-projName { @@ -143,6 +144,10 @@ height: 30px; line-height: 30px; border-top: 1px dashed #DCDCDC; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } .noDatebox { diff --git a/src/components/CouponModal/HeadCouponModal.tsx b/src/components/CouponModal/HeadCouponModal.tsx index 411b795..67cbd1f 100644 --- a/src/components/CouponModal/HeadCouponModal.tsx +++ b/src/components/CouponModal/HeadCouponModal.tsx @@ -1,8 +1,9 @@ import { useEffect, useState } from 'react' import './HeadCouponModal.css' -import { get, - // getCouponUrl - } from '../../util/AjaxUtils' +import { + get, + getCouponUrl +} from '../../util/AjaxUtils' import { Pagination, message, @@ -17,12 +18,12 @@ import overdueImg from '../../static/coupon/overdueImg.png' export default function HeadCouponModal(props: any) { const [messageApi, contextHolder] = message.useMessage(); const [loading, setLoading] = useState(false) - const [title, setTitle] = useState('未使用') + const [title, setTitle] = useState('可用') // 分页 const [page, setPage] = useState(1) const [total, setTotal] = useState(0) // 是否有效 - const [isEffective, setisEffective] = useState(1) + const [isEffective, setisEffective] = useState(null) const [isUsed, setisUsed] = useState(0) // 展示的优惠券数组 const [couponArray, setCouponArray] = useState([]) @@ -62,34 +63,34 @@ export default function HeadCouponModal(props: any) {
{contextHolder}
-
{ - setTitle('未使用') + setTitle('可用') setisUsed(0) setisEffective(1) setPage(1) }} - >未使用
+ >可用
{ setTitle('已使用') setisUsed(1) - setisEffective(1) + setisEffective(null) setPage(1) }} >已使用
-
{ - setTitle('已过期') + setTitle('不可用') setisUsed(0) setisEffective(0) setPage(1) }} - >已过期
+ >不可用
-
+
{/*
@@ -148,16 +149,36 @@ export default function HeadCouponModal(props: any) {
-
- 可购买平台内任意软著时使用 +
+
+ 可购买平台内任意软著时使用 +
+
{ + // window.open('https://www.aimzhu.com/CouponRule.html') + + getCouponUrl() + }}> + 使用规则 +
- 有效期:{item.coupon.gmtStart} 至 {item.coupon.gmtEnd} + 有效期 : {item.coupon.useGmtStart} 至 {item.coupon.useGmtEnd}
-
{ - props.closeModal() - }}> +
{ + if (item.coupon.isEffective) { + props.closeModal() + } + }} + title={item.coupon.isEffective ? '' : '不在有效期'} + > 去使用
@@ -181,7 +202,7 @@ export default function HeadCouponModal(props: any) {
- +
@@ -207,11 +228,11 @@ export default function HeadCouponModal(props: any) {
- 有效期:{item.coupon.gmtStart} 至 {item.coupon.gmtEnd} + 有效期 : {item.coupon.useGmtStart} 至 {item.coupon.useGmtEnd}
-
+
{/* 使用的产品 */} {item.productName}
@@ -239,7 +260,7 @@ export default function HeadCouponModal(props: any) {
-
+
{couponArray.map((item) => { return (
@@ -256,22 +277,31 @@ export default function HeadCouponModal(props: any) {
-
- 可购买平台内任意软著时使用 +
+
+ 可购买平台内任意软著时使用 +
+
- 有效期至:{item.coupon.gmtEnd} + 有效期 : {item.coupon.useGmtStart} 至 {item.coupon.useGmtEnd}
+
-
- -
+ +
+
+
- -
+ ) })}
10 ? 'unset' : 'none' }}> diff --git a/src/components/CouponModal/SelectCouponModal.tsx b/src/components/CouponModal/SelectCouponModal.tsx index d9ee118..5b1f993 100644 --- a/src/components/CouponModal/SelectCouponModal.tsx +++ b/src/components/CouponModal/SelectCouponModal.tsx @@ -102,7 +102,7 @@ export default function SelectCouponModal(props: any) { {item.coupon.title}
- 有效期至{item.coupon.gmtEnd} + 有效期 : {item.coupon.useGmtStart} 至 {item.coupon.useGmtEnd}
diff --git a/src/route/index/Index.tsx b/src/route/index/Index.tsx index dcd3297..a6d4d3f 100644 --- a/src/route/index/Index.tsx +++ b/src/route/index/Index.tsx @@ -33,7 +33,7 @@ import { CloseOutlined } from '@ant-design/icons'; import { useLocation } from 'react-router-dom'; -import { get, downloadUrl, post } from '../../util/AjaxUtils.ts' +import { get, downloadUrl, post, getCouponUrl } from '../../util/AjaxUtils.ts' import { setMenuActive } from '../../util/cache.ts' import gpsImg from '../../static/right/gps.png' import backImg from '../../static/right/back.png' @@ -485,6 +485,10 @@ export default function Index() { const [correctionSearchBox, setCorrectionSearchBox] = useState(false) // 优惠券遮罩层是否i西安市 const [coupon, setCoupon] = useState(false) + // 获取优惠券弹出层是否显示 + const [getCouponModal, setGetCouponModal] = useState(false) + // 优惠券数组 + const [couponArray, setCouponArray] = useState([]) //优惠券id const [couponId, setCouponId] = useState('') // 优惠券图片 const imgSrc = `${Axios.defaults?.baseURL}/route/file/v2/download/true/${data.data.couponId}`; @@ -493,7 +497,7 @@ export default function Index() { const getCoupon = () => { get({ messageApi, - url: `/api/coupon/get-can-claim`, + url: `/api/coupon/list-can-claim`, // url: `/api/proj/refund/apply/listpage?applyStatus=${state.type}`, config: { params: { @@ -505,11 +509,20 @@ export default function Index() { }, onSuccess(data: any) { // console.log(data.data); - if (data.data.couponId) { - setCouponId(data.data.couponId) - setCouponImg(data.data.logo) + // if (data.data.couponId) { + // setCouponId(data.data.couponId) + // setCouponImg(data.data.logo) + // setCoupon(true) + // } + setCouponArray(data.data) + if (data.data.length == 1) { + setCouponId((data.data)[0].couponId) + setCouponImg((data.data)[0].logo) setCoupon(true) } + if (data.data.length > 1) { + setGetCouponModal(true) + } }, onFinally() { @@ -517,7 +530,7 @@ export default function Index() { }, }) } - // 领取优惠券 + // 领取优惠券单张 const receiveCoupon = () => { post({ messageApi, @@ -540,6 +553,52 @@ export default function Index() { } }) } + // 领取优惠券(多张) + const receiveCoupons = (id: string) => { + post({ + messageApi, + url: `/api/coupon/user/save`, + body: { + couponId: id + }, + onBefore() { + + }, + onSuccess() { + messageApi.success('领取成功') + //更新列表 + get({ + messageApi, + url: `/api/coupon/list-can-claim`, + // url: `/api/proj/refund/apply/listpage?applyStatus=${state.type}`, + config: { + params: { + + } + }, + onBefore() { + + }, + onSuccess(data: any) { + setCouponArray(data.data) + if (data.data.length == 0) { + setTimeout(() => { + setGetCouponModal(false) + // getCoupon() + }, 500) + } + + }, + onFinally() { + + }, + }) + }, + onFinally() { + + } + }) + } useEffect(() => { // const nowname = sessionStorage.getItem('now') if (location.pathname == '/') { @@ -1575,22 +1634,74 @@ export default function Index() { setMenuActive('ALL') }}> - {/* { // setCouponModal(false) // setUnRead(0) - + setGetCouponModal(false) }}> - 嘻嘻嘻 - */} -
-
+
+ {couponArray.map((item: any) => { + return ( +
+
+
+
+
+ + {item.amount / 100} +
+ +
+
+
+
+
+ 可购买平台内任意软著时使用 +
+
{ + // window.open('https://www.aimzhu.com/CouponRule.html') + + getCouponUrl() + }}> + 使用规则 +
+
+
+
+ 有效期:{item.useGmtStart} 至 {item.useGmtEnd} +
+ +
{ + // props.closeModal() + receiveCoupons(item.couponId) + + }}> + 立即领取 +
+
+
+ +
+ +
+ ) + + })} +
+ +
+ +
{ @@ -1612,6 +1723,8 @@ export default function Index() {
+ + ) } \ No newline at end of file diff --git a/src/static/coupon/overdueImg.png b/src/static/coupon/overdueImg.png index ff46026..b6d9c0e 100644 Binary files a/src/static/coupon/overdueImg.png and b/src/static/coupon/overdueImg.png differ