From a48591e5079823f3eba07a60c5b690066b67e696 Mon Sep 17 00:00:00 2001
From: jiannibang <271381693@qq.com>
Date: Fri, 9 Dec 2022 14:57:20 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=AF=B9=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 4 +-
src/components/DefaultPopup/DefaultPopup.js | 2 +-
src/components/HeadBar/HeadBar.scss | 4 +-
src/components/NavBottom/NavBottom.js | 10 -
src/components/Popup/Popup.js | 3 -
src/js/helpers/data-helper.js | 217 ++++++--------
src/pages/Activities/Activities.js | 138 ---------
src/pages/Activities/Activities.scss | 264 -----------------
src/pages/Activities/back.svg | 4 -
src/pages/Activities/clock.svg | 3 -
src/pages/Activities/close.png | Bin 1354 -> 0 bytes
src/pages/Activities/detail.png | Bin 1646 -> 0 bytes
src/pages/Coupons/ApplyModal/ApplyModal.js | 102 -------
src/pages/Coupons/ApplyModal/ApplyModal.scss | 118 --------
src/pages/Coupons/ApplyModal/back.svg | 4 -
src/pages/Coupons/CouponList/CouponList.js | 163 -----------
src/pages/Coupons/CouponList/CouponList.scss | 268 ------------------
src/pages/Coupons/CouponList/bg0.svg | 34 ---
src/pages/Coupons/CouponList/bg1.svg | 32 ---
src/pages/Coupons/CouponList/bg2.svg | 32 ---
src/pages/Coupons/CouponList/close.svg | 3 -
src/pages/Coupons/CouponList/noData.png | Bin 48466 -> 0 bytes
src/pages/Coupons/CouponList/tri.svg | 3 -
src/pages/Coupons/Coupons.js | 55 ----
src/pages/Coupons/Coupons.scss | 69 -----
src/pages/Coupons/ListEnd/ListEnd.js | 4 -
src/pages/Coupons/ListEnd/ListEnd.scss | 5 -
src/pages/Coupons/ListEnd/bg.svg | 4 -
src/pages/Coupons/Qrcode/Qrcode.js | 25 --
src/pages/Coupons/Qrcode/Qrcode.scss | 0
src/pages/Coupons/ScanModal/ScanModal.js | 59 ----
src/pages/Coupons/ScanModal/ScanModal.scss | 72 -----
src/pages/Coupons/ScanModal/back.svg | 4 -
src/pages/Coupons/ScanModal/border.svg | 3 -
src/pages/Coupons/ScanModal/close.svg | 4 -
src/pages/Coupons/ScanModal/scaner.svg | 9 -
src/pages/Coupons/ShopManager/ShopManager.js | 130 ---------
.../Coupons/ShopManager/ShopManager.scss | 132 ---------
src/pages/Coupons/ShopManager/noDataPic.png | Bin 42810 -> 0 bytes
src/pages/Coupons/ShopTabs/ShopTabs.js | 26 --
src/pages/Coupons/ShopTabs/ShopTabs.scss | 32 ---
src/pages/Coupons/ShopTabs/card.svg | 3 -
src/pages/Coupons/ShopTabs/cardActive.svg | 3 -
src/pages/Coupons/ShopTabs/ticket.svg | 3 -
src/pages/Coupons/ShopTabs/ticketActive.svg | 3 -
.../Coupons/WriteOffModal/WriteOffModal.js | 148 ----------
.../Coupons/WriteOffModal/WriteOffModal.scss | 162 -----------
src/pages/Coupons/WriteOffModal/back.svg | 4 -
src/pages/Coupons/WriteOffModal/scan.svg | 5 -
src/pages/Coupons/WriteOffModal/search.svg | 4 -
src/pages/Coupons/notMember.png | Bin 63742 -> 0 bytes
src/pages/Index/Index.js | 241 +---------------
src/pages/ShopCoupons/ShopCoupons.js | 121 --------
src/pages/ShopCoupons/ShopCoupons.scss | 144 ----------
src/pages/ShopCoupons/arrow.svg | 9 -
src/pages/ShopCoupons/back.svg | 3 -
56 files changed, 93 insertions(+), 2801 deletions(-)
delete mode 100644 src/pages/Activities/Activities.js
delete mode 100644 src/pages/Activities/Activities.scss
delete mode 100644 src/pages/Activities/back.svg
delete mode 100644 src/pages/Activities/clock.svg
delete mode 100644 src/pages/Activities/close.png
delete mode 100644 src/pages/Activities/detail.png
delete mode 100644 src/pages/Coupons/ApplyModal/ApplyModal.js
delete mode 100644 src/pages/Coupons/ApplyModal/ApplyModal.scss
delete mode 100644 src/pages/Coupons/ApplyModal/back.svg
delete mode 100644 src/pages/Coupons/CouponList/CouponList.js
delete mode 100644 src/pages/Coupons/CouponList/CouponList.scss
delete mode 100644 src/pages/Coupons/CouponList/bg0.svg
delete mode 100644 src/pages/Coupons/CouponList/bg1.svg
delete mode 100644 src/pages/Coupons/CouponList/bg2.svg
delete mode 100644 src/pages/Coupons/CouponList/close.svg
delete mode 100644 src/pages/Coupons/CouponList/noData.png
delete mode 100644 src/pages/Coupons/CouponList/tri.svg
delete mode 100644 src/pages/Coupons/Coupons.js
delete mode 100644 src/pages/Coupons/Coupons.scss
delete mode 100644 src/pages/Coupons/ListEnd/ListEnd.js
delete mode 100644 src/pages/Coupons/ListEnd/ListEnd.scss
delete mode 100644 src/pages/Coupons/ListEnd/bg.svg
delete mode 100644 src/pages/Coupons/Qrcode/Qrcode.js
delete mode 100644 src/pages/Coupons/Qrcode/Qrcode.scss
delete mode 100644 src/pages/Coupons/ScanModal/ScanModal.js
delete mode 100644 src/pages/Coupons/ScanModal/ScanModal.scss
delete mode 100644 src/pages/Coupons/ScanModal/back.svg
delete mode 100644 src/pages/Coupons/ScanModal/border.svg
delete mode 100644 src/pages/Coupons/ScanModal/close.svg
delete mode 100644 src/pages/Coupons/ScanModal/scaner.svg
delete mode 100644 src/pages/Coupons/ShopManager/ShopManager.js
delete mode 100644 src/pages/Coupons/ShopManager/ShopManager.scss
delete mode 100644 src/pages/Coupons/ShopManager/noDataPic.png
delete mode 100644 src/pages/Coupons/ShopTabs/ShopTabs.js
delete mode 100644 src/pages/Coupons/ShopTabs/ShopTabs.scss
delete mode 100644 src/pages/Coupons/ShopTabs/card.svg
delete mode 100644 src/pages/Coupons/ShopTabs/cardActive.svg
delete mode 100644 src/pages/Coupons/ShopTabs/ticket.svg
delete mode 100644 src/pages/Coupons/ShopTabs/ticketActive.svg
delete mode 100644 src/pages/Coupons/WriteOffModal/WriteOffModal.js
delete mode 100644 src/pages/Coupons/WriteOffModal/WriteOffModal.scss
delete mode 100644 src/pages/Coupons/WriteOffModal/back.svg
delete mode 100644 src/pages/Coupons/WriteOffModal/scan.svg
delete mode 100644 src/pages/Coupons/WriteOffModal/search.svg
delete mode 100644 src/pages/Coupons/notMember.png
delete mode 100644 src/pages/ShopCoupons/ShopCoupons.js
delete mode 100644 src/pages/ShopCoupons/ShopCoupons.scss
delete mode 100644 src/pages/ShopCoupons/arrow.svg
delete mode 100644 src/pages/ShopCoupons/back.svg
diff --git a/package.json b/package.json
index 2566f28..55c8240 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "qmplaza",
+ "name": "qmgo",
"version": "0.1.0",
"private": true,
"homepage": "./",
@@ -29,7 +29,7 @@
},
"scripts": {
"start": "react-scripts start",
- "build": "react-scripts build && coscmd config -a AKIDjS6at7fjTAVgggDNCrogRiZTSL304DPR -s FPPGCXr4xgZRLKDC8tZGp7HTZXlqx0gU -b lg-cjdqwkbo-1256266248 -r ap-shanghai && coscmd delete qmplaza -f && coscmd upload -r build qmplaza",
+ "build": "react-scripts build && coscmd config -a AKIDjS6at7fjTAVgggDNCrogRiZTSL304DPR -s FPPGCXr4xgZRLKDC8tZGp7HTZXlqx0gU -b lg-cjdqwkbo-1256266248 -r ap-shanghai && coscmd delete qmgo -f && coscmd upload -r build qmgo",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
diff --git a/src/components/DefaultPopup/DefaultPopup.js b/src/components/DefaultPopup/DefaultPopup.js
index f2e481b..b3dc99d 100644
--- a/src/components/DefaultPopup/DefaultPopup.js
+++ b/src/components/DefaultPopup/DefaultPopup.js
@@ -201,7 +201,7 @@ const DefaultPopup = ({
setState(STATES.init);
onClick(e);
}}
- wingHeight="calc(100vh - 400px)"
+ wingHeight="calc(100vh - 310px)"
>
)}
diff --git a/src/components/HeadBar/HeadBar.scss b/src/components/HeadBar/HeadBar.scss
index d0d6437..420bdd9 100644
--- a/src/components/HeadBar/HeadBar.scss
+++ b/src/components/HeadBar/HeadBar.scss
@@ -127,8 +127,8 @@
.label {
display: inline-block;
- flex: 0 0 20px;
- text-align: center;
+ flex: 0 0 30px;
+ text-align: right;
margin-left: 8px;
font-style: normal;
font-weight: bold;
diff --git a/src/components/NavBottom/NavBottom.js b/src/components/NavBottom/NavBottom.js
index 726f337..c16ec4a 100644
--- a/src/components/NavBottom/NavBottom.js
+++ b/src/components/NavBottom/NavBottom.js
@@ -107,16 +107,6 @@ const NavBottom = ({
}}
/>
)}
-
{
- !paused && puaseOrResume();
- handleAR(end);
- }}
- >
-

- AR导航
-
{showNav ? (
![]()
setEnd()}>

导航动画
- handleAR(shop)}>
-

AR实时导航
-
)}
diff --git a/src/js/helpers/data-helper.js b/src/js/helpers/data-helper.js
index 90ea32f..8738f7a 100644
--- a/src/js/helpers/data-helper.js
+++ b/src/js/helpers/data-helper.js
@@ -1,10 +1,10 @@
import axios from "axios";
import icons from "./image-helper";
let mallInfos = new Map();
-export const cdnUrl = "https://cdn.1000my.cn";
-export const code = "b4a45cf0-85ce-4123-99f0-e4ddce2731de";
-export const baseUrl = "https://test.ar.1000my.com";
-export const post = async (url = "", data = {}) => {
+
+export const code = "project-200";
+export const baseUrl = "https://project-iot.test.1000my.com";
+export const get = async (url = "", data = {}) => {
const response = await fetch(baseUrl + url, {
method: "POST",
headers: {
@@ -14,24 +14,12 @@ export const post = async (url = "", data = {}) => {
});
return response.json();
};
-const getMallInfo = async ({ memberID }) => {
- const { name, city, groundFloorOrder, floors, scale, offsetToNorth } = {
- name: "千目广场",
+const getMallInfo = async () => {
+ const { name, city, groundFloorOrder, scale, offsetToNorth } = {
+ name: "桥北万象",
city: "南京",
- groundFloorOrder: 1,
+ groundFloorOrder: 2,
scale: 0.15,
- floors: [
- {
- name: "F1",
- floorOrder: 0,
- url: null,
- },
- {
- name: "F2",
- floorOrder: 1,
- url: true,
- },
- ],
offsetToNorth: 0,
};
document.title = name;
@@ -43,121 +31,74 @@ const getMallInfo = async ({ memberID }) => {
groundFloorIndex: groundFloorOrder,
needSpotLight: false,
scale,
- floors,
isNew: true,
cloud: "1000my",
offsetToNorth,
};
const config = {
- mapDataUrl: `${cdnUrl}/test-projects/${code}/Aeditor/Aeditor.json?t=${new Date().getTime()}`,
- shopInfoUrl: `${cdnUrl}/test-projects/${code}/QueryShopListForMap/QueryShopListForMap.json?t=${new Date().getTime()}`,
+ mapDataUrl: `${baseUrl}/api/guide/v1/web/getMallMapData/${code}/Aeditor`,
+ shopInfoUrl: `${baseUrl}/api/guide/v1/web/getMapInfo?projectCode=${code}`,
};
- try {
- const {
- data: { mapUrl, shopUrl },
- } = await axios.get(
- `${cdnUrl}/test-projects/${code}/config.json?t=${new Date().getTime()}`
- );
- if (mapUrl) config.mapDataUrl = mapUrl;
- if (shopUrl) config.shopInfoUrl = shopUrl;
- } catch (error) {
- console.log("获取config失败");
- }
-
- const [
- mapDataJSON,
- serverShopInfo,
- facs,
- activities,
- pois,
- menu,
- shopCouponMap,
- ] = await Promise.all([
- (async () => {
- try {
- const {
- data: {
- data: { mapData: mapDataJSON },
- },
- } = await axios.get(config.mapDataUrl);
- return mapDataJSON;
- } catch (error) {
- console.error(error);
- return {};
- }
- })(),
- (async () => {
- try {
- const {
- data: { data: serverShopInfo },
- } = await axios.get(config.shopInfoUrl);
- return serverShopInfo;
- } catch (error) {
- console.error(error);
- return {};
- }
- })(),
- (async () => {
- try {
- const { data: facs } = await post(`/Api/Cdn/FacilityInfo`);
- return facs;
- } catch (error) {
- console.error(error);
- return [];
- }
- })(),
- (async () => {
- try {
- const { data: activities } = await post(`/Api/Operation/MallActList`, {
- memberID,
- });
- return activities;
- } catch (error) {
- console.error(error);
- return [];
- }
- })(),
- (async () => {
- try {
- const { data: pois } = await post(`/api/Operation/GetPoiList`);
- return pois;
- } catch (error) {
- console.error(error);
- return [];
- }
- })(),
- (async () => {
- try {
- const { data: menu } = await post(`/Api/AppModule/MallAppModules`);
- return menu;
- } catch (error) {
- console.error(error);
- return [];
- }
- })(),
- (async () => {
- try {
- const {
- data: { shopDetailShowCoupon },
- } = await post(`/Api/Operation/MiniproBasicData`, {
- memberID,
- });
- const shopCouponMap = shopDetailShowCoupon.reduce(
- (acc, nxt) => ({ ...acc, [nxt]: true }),
- {}
- );
- return shopCouponMap;
- } catch (error) {
- console.error(error);
- return {};
- }
- })(),
- ]);
+ const [cdnUrl, mapDataJSON, [buildingList, serverShopInfo], facs] =
+ await Promise.all([
+ (async () => {
+ try {
+ const {
+ data: { data: cdnUrl },
+ } = await axios.get(`${baseUrl}/api/info/v1/web/getUploadUrl`);
+ return cdnUrl;
+ } catch (error) {
+ console.error(error);
+ return {};
+ }
+ })(),
+ (async () => {
+ try {
+ const {
+ data: {
+ data: { mapData: mapDataJSON },
+ },
+ } = await axios.get(config.mapDataUrl);
+ return mapDataJSON;
+ } catch (error) {
+ console.error(error);
+ return {};
+ }
+ })(),
+ (async () => {
+ try {
+ const {
+ data: {
+ data: { buildingList, shopList: serverShopInfo },
+ },
+ } = await axios.get(config.shopInfoUrl);
+ return [buildingList, serverShopInfo];
+ } catch (error) {
+ console.error(error);
+ return {};
+ }
+ })(),
+ (async () => {
+ try {
+ const {
+ data: { data: facs },
+ } = await axios.get(
+ `${baseUrl}/api/guide/v1/web/getProjectUsedIconList?projectCode=${code}`
+ );
+ return facs;
+ } catch (error) {
+ console.error(error);
+ return [];
+ }
+ })(),
+ ]);
const mapData = JSON.parse(mapDataJSON)[0];
- mall.activities = activities;
- mall.pois = pois;
- const poiMap = pois.reduce((acc, nxt) => ({ ...acc, [nxt.code]: nxt }), {});
+ mall.floors = buildingList[0].floorList.map(({ floor, floorOrder }) => ({
+ name: floor,
+ floorOrder,
+ url: true,
+ }));
mall.facilityTypeMap = facs.reduce(
(acc, nxt) => ({
...acc,
@@ -165,11 +106,25 @@ const getMallInfo = async ({ memberID }) => {
}),
{}
);
- const shopInfo = serverShopInfo;
+ const shopInfo = serverShopInfo
+ .filter(({ buildingOrder }) => buildingOrder === 0)
+ .map((iot) => ({
+ ...iot,
+ name: iot.shopName,
+ houseNum: iot.houseNumber,
+ nameEn: iot.shopNameEn,
+ logoPath: cdnUrl + iot.logoUrl,
+ shopFormat: iot.industryFatherName,
+ }))
+ .reduce((acc, nxt) => {
+ if (!acc[nxt.floorOrder]) acc[nxt.floorOrder] = [nxt];
+ else acc[nxt.floorOrder] = [...acc[nxt.floorOrder], nxt];
+ return acc;
+ }, [])
+ .map((shopList, floorOrder) => ({ floorOrder, shopList }));
+ console.log(shopInfo);
shopInfo.forEach(({ shopList }) =>
shopList.forEach((shop) => {
- if (shopCouponMap[shop.code]) shop.hasCoupon = true;
- else shop.hasCoupon = false;
shop.initialsCn = shop.name
.split(" ")
.filter((t) => t)
@@ -204,8 +159,6 @@ const getMallInfo = async ({ memberID }) => {
acc[floorOrder] = [url, name];
return acc;
}, new Array()),
- poiMap,
- menu,
});
const mallInfo = { mall, shopInfo, images };
mallInfos.set(mall.code, mallInfo);
diff --git a/src/pages/Activities/Activities.js b/src/pages/Activities/Activities.js
deleted file mode 100644
index edde4a0..0000000
--- a/src/pages/Activities/Activities.js
+++ /dev/null
@@ -1,138 +0,0 @@
-import React, { useEffect, useState } from "react";
-import "./Activities.scss";
-import back from "./back.svg";
-import clock from "./clock.svg";
-import detail from "./detail.png";
-import { post } from "../../js/helpers/data-helper";
-
-const Activities = ({
- initActivity,
- setInitActivity,
- onGo,
- mall: { activities, pois },
- facilities,
- memberID,
-}) => {
- const [activity, setActivity] = useState(null);
- const [receiving, setReceiving] = useState(false);
- const poiMap = pois.reduce((acc, nxt) => ({ ...acc, [nxt.code]: nxt }), {});
- const getFacByAct = (activity) => {
- if (!activity) return null;
- const poiCode = activity.poiList.find((code) => poiMap[code]);
- const poi = poiCode ? poiMap[poiCode] : null;
- if (!poi) return null;
- const actFacs = facilities ? facilities["活动"] : [];
- if (!actFacs) return null;
- const actFac = actFacs.find(({ title }) => title === poi.name);
- return actFac;
- };
-
- const reject = () => {
- window.weui.toast("该活动即将上线,敬请期待!", {
- className: "toast",
- });
- };
- const receive = async (activity) => {
- setReceiving(true);
- try {
- const { code, data, msg } = await post("/Api/Coupon/CouponReceive", {
- activityCode: activity.code,
- memberID,
- });
- window.weui.toast(msg, {
- className: "toast",
- });
- if (code === "200") {
- activity.isReceived = true;
- }
- } catch (error) {
- console.warn(error);
- } finally {
- setReceiving(false);
- }
- };
- useEffect(() => {
- if (initActivity) {
- setActivity(initActivity);
- setInitActivity(null);
- }
- }, [initActivity]);
-
- return (
-
-
活动
-
- {activities &&
- activities.map((act) => (
-
-

-
-
setActivity(act)}>
-

查看详情
-
-
{
- const fac = getFacByAct(act);
- if (!fac) return reject();
- return onGo && onGo(fac);
- }}
- >
- GO
-
-
-
- ))}
-
- {activity && (
-
-
![]()
setActivity(null)}
- src={back}
- >
-

-
-
{activity.name}
-
-

- {activity.beginTime.split(" ")[0]}至
- {activity.endTime.split(" ")[0]}
-
-
-
活动介绍
- {activity.intro}
-
{
- const fac = getFacByAct(activity);
- if (!fac) return reject();
- return onGo && onGo(fac);
- }}
- >
- 开始导航
-
- {activity.defaultAwardTitle && (
-
-
{activity.defaultAwardTitle}
-
活动奖励
-
- !activity.isReceived && !receiving && receive(activity)
- }
- className={`btn ${
- activity.isReceived || receiving ? "disabled" : ""
- }`}
- >
- 领取奖励
-
-
- )}
-
-
-
- )}
-
- );
-};
-export default Activities;
diff --git a/src/pages/Activities/Activities.scss b/src/pages/Activities/Activities.scss
deleted file mode 100644
index 65d2aa0..0000000
--- a/src/pages/Activities/Activities.scss
+++ /dev/null
@@ -1,264 +0,0 @@
-.activities {
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- display: flex;
- flex-direction: column;
- background: #f0f0f0;
-
- pointer-events: auto;
- .header {
- position: absolute;
- height: 25px;
- left: 24px;
- top: 24px;
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 600;
- font-size: 18px;
- line-height: 25px;
- display: flex;
- align-items: center;
- color: #353230;
- }
- .list-container {
- position: absolute;
- top: 64px;
- left: 17px;
- right: 17px;
- bottom: 0;
- overflow-x: hidden;
- overflow-y: auto;
- .card {
- display: inline-flex;
- flex-direction: column;
- background: #ffffff;
- border-radius: 10px;
- overflow: hidden;
- .card-header {
- width: calc(100vw - 34px);
- height: calc((100vw - 34px) / 321 * 180);
- border-radius: 10px;
- object-fit: cover;
- }
- .card-content {
- display: flex;
- height: 72px;
- padding-left: 24px;
- padding-right: 16px;
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 600;
- font-size: 16px;
- line-height: 22px;
- color: #353230;
- align-items: center;
- justify-content: space-between;
- .detail {
- display: inline-flex;
- align-items: center;
- img {
- width: 20px;
- height: 20px;
- margin-right: 8px;
- }
- }
- .btn {
- display: flex;
- width: 80px;
- height: 40px;
- background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%);
- box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2);
- border-radius: 8px;
- font-family: "HarmonyOS Sans SC";
- font-style: normal;
- font-weight: 700;
- font-size: 16px;
- line-height: 19px;
- text-align: right;
- color: #ffffff;
- justify-content: center;
- align-items: center;
- }
- }
- }
- .card + .card {
- margin-top: 16px;
- }
- }
- .activity {
- position: absolute;
- top: 0;
- bottom: -98px;
- left: 0;
- right: 0;
- background: #f0f0f0;
- z-index: 1;
- border-radius: 18px;
- .back {
- position: absolute;
- width: 40px;
- height: 40px;
- left: 16px;
- top: 8px;
- z-index: 2;
- }
- .r1 {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- height: 56vw;
- width: 100vw;
- z-index: 1;
- border-radius: 10px 10px 0 0;
- object-fit: cover;
- }
- .r2 {
- position: absolute;
- top: 192px;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: 2;
- background: linear-gradient(
- 180.18deg,
- #ffffff 17.3%,
- rgba(255, 255, 255, 0) 99.84%
- );
- border-radius: 16px 16px 0 0;
- display: flex;
- flex-direction: column;
- .rr1 {
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 600;
- font-size: 16px;
- line-height: 22px;
- margin-top: 16px;
- margin-bottom: 8px;
- color: #353230;
- padding-left: 24px;
- }
- .rr2 {
- display: inline-flex;
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 400;
- font-size: 12px;
- line-height: 17px;
- color: #68655e;
- align-items: center;
- padding-left: 24px;
- img {
- width: 16px;
- height: 16px;
- margin-right: 8px;
- }
- }
- .r3 {
- position: absolute;
- top: 97px;
- left: 10px;
- right: 10px;
- bottom: 0;
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 400;
- font-size: 14px;
- line-height: 22px;
- color: #9d988f;
- overflow-x: hidden;
- overflow-y: auto;
- background: #f9f9fb;
- border-radius: 16px 16px 0px 0px;
- padding: 16px 14px;
- .title {
- font-family: "PingFang SC";
- font-style: normal;
- font-weight: 600;
- font-size: 14px;
- line-height: 20px;
- color: #353230;
- margin-bottom: 4px;
- }
- }
- .r4 {
- display: flex;
- position: absolute;
- height: 56px;
- left: 18px;
- right: 18px;
- bottom: 56px;
- margin: auto;
- background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%);
- box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2);
- border-radius: 16px;
- font-family: "HarmonyOS Sans SC";
- font-style: normal;
- font-weight: 600;
- font-size: 16px;
- line-height: 22px;
- align-items: center;
- justify-content: center;
- color: #ffffff;
- }
- .r5 {
- position: absolute;
- bottom: 139px;
- left: 14px;
- right: 14px;
- height: 80px;
- background: rgba(255, 255, 255, 0.7);
- box-shadow: 0px 12px 16px rgba(104, 110, 127, 0.08);
- border-radius: 10px;
- .t1 {
- position: absolute;
- top: 19px;
- left: 20px;
- font-weight: 600;
- font-size: 17px;
- line-height: 22px;
- color: #437af7;
- width: 174px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- .meta {
- position: absolute;
- top: 45px;
- left: 20px;
- font-weight: 600;
- font-size: 12px;
- line-height: 16px;
- color: #a1a5b3;
- }
- .btn {
- position: absolute;
- display: flex;
- width: 80px;
- height: 40px;
- top: 19px;
- right: 12px;
- background: #ffffff;
- box-shadow: 0px 12px 16px rgba(104, 110, 127, 0.08);
- border-radius: 10px;
- font-weight: 600;
- font-size: 15px;
- line-height: 20px;
- color: #437af7;
- justify-content: center;
- align-items: center;
- border: 1px solid rgba(80, 138, 247, 0.6);
- &.disabled {
- color: #a1a5b3;
- border: 1px solid #a1a5b3;
- }
- }
- }
- }
- }
-}
diff --git a/src/pages/Activities/back.svg b/src/pages/Activities/back.svg
deleted file mode 100644
index 604f25a..0000000
--- a/src/pages/Activities/back.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/pages/Activities/clock.svg b/src/pages/Activities/clock.svg
deleted file mode 100644
index 7a90929..0000000
--- a/src/pages/Activities/clock.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/src/pages/Activities/close.png b/src/pages/Activities/close.png
deleted file mode 100644
index 6ab2b1fcdb09571700eacb88d0f0d7b3060ac02c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1354
zcmV-Q1-1H#P)XWWDWr~21y9a_uf4v
z7^Kt3>F@MI06hW`LlMM6?u5*QL?pmMg>NBy7E0L(`3i#I8+t+j4#5a}5b^|NlG=v|FRZxAZ~>k|Db#>56&Zn~?P2{DlQjTDtaGn<}L3eM>BDB(EkHiY{ysz(?g6ea7
zB#xOp1*;^oh(}4Df<~g5ykg!}F>l%)LMv_Ex;U71JXKdEf*S#msJb{W&<0v0gX`yY
z1!n!k_Qr$R$U-^w=A-;)N&h&VU~WSMdO#lOv7&SrP8*O4MH&<03wfF@
zYi^FcI1ic-;}dzLPu}grd=|=j3w%bQT7rBdkMxa5hqTzD^oTP=c|{)SS|IQU@Bj@-
z^ukMi;>{-lB`%QY%@l)D=m$*bhN%d*124iU{e1^L0*BRzF@>AbxeTb!cTOk)
zFRfl<#W;ou1z?laYnV@QI_p#q1+4LSK6g_%Sz#Hxdc#Yr*Cs10gVlY@CO3!dfp*)R
zMg(MgX4*V-epUL&fyG@5*LBiarTGpw3e0__*K>d-b}SAU*mbj^u}B68&3L+vuQB(&
zrnf*Mn%roJTi4hDO=<47dEy2`Tf)>$RUa)-l
z*x>q!*w^7>ni8suBe5QWHBx=|&h%dOTAyRSS4|ZIZx%u7Kwl4wq$17Vsw6T7Pk@;}
zFJby6UX~WDK7{rOdO`(pUYC#)FmuYLy5cV0I_AeP^Yjns=on^W!0Pjyl~u|WVaE2Q
zkfl`}#BH58S4Y9iX+T+&=h{#FDEPgQzjSS{&$}|~RY$+yL-kScYL5FIXa*=;LDq
z>O%xEnEe=mT;H=5vK!sU2wAj9o2Pzu@=0}(z7R!IV_J@_1U}At@_FKH%9I+I1
zZ}>i0xZY$957*~W(Rl*(A~G;0!($`~Q2y732p5co>dn6oLL4<^BY?~djv3(Ir3y|A
z@L2O{i-=~;!d^3?Nig^N5p&P*lqy=_DGBJFQv67(d}CZdczIUN=I0a6q{Yj#&~@Tz6(&)$8=K880I}
zww3^z1Yw{-M1z;)M;r-${O-c^5?_|akS9R-(r~|oVsIt~=ig&eMuS?cGm#C(rr2f%
z>!4#(08p_5*|{bN^)p2oMUj<3vqr|sy$9WJ(r9~BFpkF_zbY8#KKSQPHHL1TC?8)8}
z_6BU?+++!ok^~9C*g+fu&ul+EQknt$8HQmbIVH9sM?ZmhJMON#1c7bYYxU1vg(L3*t%AVn4Ip;X0
zS2w0BjdsJO8(q?CRm*SX!RS;ZwHT$YLdhpR$Cir~$1HFz>#o
zTs|K#D!k0A?&UOfWcP66P$1uG&o?$MxF~taul7e#C@=IuWm_vr^-(5BxWBXc(Hn>)
z*)V4(gC-DN+v-~}^lg~E&qhU29yHoExgb#DFJ~)TF>#N7Iw7-042>>l!d8k<(<-f7=t$B
zOBbhGZ;#F{Cw_QZvqqs&qqmGehA-(=ET-o(mw!zxpc
z=2}$U(ChUCIICJK=-zHrI%&Q-^Ht)F8V&T??e|hgOJ(N-fsuJf+{~(iSHTl*lBG7_
zX^W+|nCT}L!$(NfQiKoQ{PD?rnr}Draj$z%P2)oYHV|U_!JHZ0+JulV4tW!!^Mj0u
z&C$``*|wd~JA3JsB0hds-A!SdQU1)7tx}k31Jo7(Z52W1hv6=H^s04EpBW_NdK%-;
z(tKq2?8)!J%9-gTSRyM#&_PbNo2l}~%a=NLtke|l@@8YabIHmUd??M1*fH-!&iAvu
zn94ucLSlCFtVx0Z^Er&ukNB!m2()FIQJh%CiH!?VeJ<S%|09S7t}Po3rETn;Q>UMlHShjBm)9O4&~gU>jQk|B*v{m_`i%BwtU$
zbyB`a9tSV8cJuVqtHJ)W00)D(!6sO9p-eDpJN%k1*j(?4gh>P8LtHr~KL)PM*=E3Y
zL+<=y=gKBK!(n_hi)YhFc {
- const [title, setTitle] = useState("");
- const [totalCount, setTotalCount] = useState("");
- const [beginTime, setBeginTime] = useState("");
- const [endTime, setEndTime] = useState("");
- const [couponRules, setCouponRules] = useState("");
- const toast = (text) =>
- window.weui.toast(text, {
- className: "toast",
- });
- const submit = async () => {
- if (!title) return toast("请输入礼券标题");
- if (!totalCount) return toast("请输入发放数量");
- if (!beginTime) return toast("请选择开始时间");
- if (!endTime) return toast("请选择结束时间");
- try {
- const { code, msg } = await post("/api/coupon/ApplyCoupon", {
- title,
- totalCount,
- beginTime,
- endTime,
- memberID,
- couponRules,
- });
- if (code === "200") {
- toast("已提交申请,审核中!");
- onBack && onBack();
- } else {
- toast(msg);
- }
- } catch (error) {}
- };
- return (
-
- onBack && onBack()}>
- 申请发券
-
-
-
礼券标题
-
setTitle(e.target.value)}
- >
-
-
-
发放数量
-
setTotalCount(e.target.value)}
- >
-
-
-
-
- 免费申请
-
-
-
- );
-};
-export default ApplyModal;
diff --git a/src/pages/Coupons/ApplyModal/ApplyModal.scss b/src/pages/Coupons/ApplyModal/ApplyModal.scss
deleted file mode 100644
index 14c7b80..0000000
--- a/src/pages/Coupons/ApplyModal/ApplyModal.scss
+++ /dev/null
@@ -1,118 +0,0 @@
-.ApplyModal {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background: #f6f6f6;
- overflow: hidden;
- .back {
- position: absolute;
- top: 10px;
- left: 10px;
- width: 60px;
- height: 60px;
- background: center / cover no-repeat url(./back.svg);
- }
- .title {
- position: absolute;
- top: 28px;
- right: 16px;
- font-style: normal;
- font-weight: 600;
- font-size: 20px;
- line-height: 25px;
- color: #000000;
- }
- .content {
- position: absolute;
- top: 92px;
- left: 10px;
- right: 10px;
- bottom: 34px;
- background: #ffffff;
- border-radius: 18px;
- padding: 32px 24px;
- .item {
- height: 58px;
- border-bottom: 1px solid rgba(218, 215, 209, 0.4);
- .label {
- font-weight: 600;
- font-size: 17px;
- line-height: 22px;
- color: #353230;
- margin-bottom: 8px;
- }
- .inputText {
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
- color: #68655e;
- border: none;
- outline: none;
- opacity: 0.8;
- &::placeholder {
- color: #dad7d1;
- }
- }
- .inputTextArea {
- width: 100%;
- background: #f9f9fb;
- border-radius: 8px;
- height: 152px;
- padding: 16px;
- border: none;
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
- outline: none;
- color: #68655e;
- &::placeholder {
- color: #dad7d1;
- }
- }
- .dates {
- display: flex;
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
- color: #353230;
-
- input {
- flex: 1;
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
- color: #68655e;
- border: none;
- outline: none;
- opacity: 0.8;
- overflow: hidden;
- &::placeholder {
- color: #dad7d1;
- }
- }
- }
- }
- .item + .item {
- margin-top: 24px;
- }
- .btn {
- position: absolute;
- left: 18px;
- right: 18px;
- bottom: 18px;
- height: 56px;
- background: linear-gradient(180deg, #508af7 0%, #5ea5f9 100%);
- box-shadow: 0px 6px 12px rgba(93, 172, 249, 0.2);
- border-radius: 10px;
- font-weight: 600;
- font-size: 16px;
- line-height: 22px;
- color: #ffffff;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- }
-}
diff --git a/src/pages/Coupons/ApplyModal/back.svg b/src/pages/Coupons/ApplyModal/back.svg
deleted file mode 100644
index 3a2dcd6..0000000
--- a/src/pages/Coupons/ApplyModal/back.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/pages/Coupons/CouponList/CouponList.js b/src/pages/Coupons/CouponList/CouponList.js
deleted file mode 100644
index 13e948d..0000000
--- a/src/pages/Coupons/CouponList/CouponList.js
+++ /dev/null
@@ -1,163 +0,0 @@
-import "./CouponList.scss";
-import { useState, useRef, useEffect, useCallback } from "react";
-import ListEnd from "../ListEnd/ListEnd";
-import noData from "./noData.png";
-import Qrcode from "../Qrcode/Qrcode";
-import Modal from "react-modal";
-import { post } from "../../../js/helpers/data-helper";
-import InfiniteScroll from "react-infinite-scroller";
-
-const stateMap = {
- 0: "未使用",
- 1: "已使用",
- 2: "已失效",
-};
-const stateList = [0, 1, 2];
-const CouponList = ({ memberID }) => {
- const [state, setState] = useState(stateList[0]);
- const [list, setList] = useState([]);
- const [nextPageIndex, setNextPageIndex] = useState(1);
- const [loading, setLoading] = useState(false);
- const hasMore = nextPageIndex !== null;
-
- const [modalCoupon, setModalCoupon] = useState(null);
- const listRef = useRef();
- const showNoData = list !== null && list.length === 0;
- const showListEnd = list !== null && list.length > 0;
- const showCouponModal = !!modalCoupon;
-
- const loadMore = useCallback(async () => {
- if (loading || nextPageIndex === null || !memberID) return;
- setLoading(true);
- try {
- const { code, data, msg } = await post("/api/coupon/UserCouponList", {
- paging: 1,
- state,
- pageIndex: nextPageIndex,
- pageSize: 10,
- memberID,
- });
- if (code === "200") {
- setList([...list, ...data.list]);
- setNextPageIndex(
- nextPageIndex + 1 > data.allPage ? null : nextPageIndex + 1
- );
- } else {
- setNextPageIndex(null);
- window.weui.toast(msg, {
- className: "toast",
- });
- }
- } catch (error) {
- setNextPageIndex(null);
- } finally {
- setLoading(false);
- }
- }, [list, loading, nextPageIndex]);
-
- useEffect(() => {
- if (listRef.current) listRef.current.scrollTop = 0;
- setNextPageIndex(1);
- setList([]);
- }, [state]);
-
- return (
-
-
- {stateList.map((item) => (
-
setState(item)}
- >
- {stateMap[item]}
-
- ))}
-
-
-
listRef && listRef.current}
- >
- {showNoData && (
-
-

-
-
{}}>
- 参加AR
-
- 活动,可领取优惠券!
-
-
- )}
- {list !== null &&
- list.map((coupon) => (
- setModalCoupon(coupon)}
- >
- {coupon.logoUrl ? (
-

- ) : (
-
- )}
-
{coupon.title}
-
{coupon.showNo}
-
- 使用期限
- {coupon.beginTime}至{coupon.endTime}
-
-
- ))}
-
- {showListEnd && }
-
-
- {showCouponModal && (
-
- setModalCoupon(null)}>
-
-
-
{modalCoupon.title}
-
{modalCoupon.showNo}
-
使用期限
-
- {modalCoupon.beginTime}至{modalCoupon.endTime}
-
- {modalCoupon.couponRules && (
- <>
-
礼券规则
-
{modalCoupon.couponRules}
- >
- )}
-
-
- )}
-
- );
-};
-export default CouponList;
diff --git a/src/pages/Coupons/CouponList/CouponList.scss b/src/pages/Coupons/CouponList/CouponList.scss
deleted file mode 100644
index c713a64..0000000
--- a/src/pages/Coupons/CouponList/CouponList.scss
+++ /dev/null
@@ -1,268 +0,0 @@
-.CouponList {
- flex: 1;
- display: flex;
- flex-direction: column;
- background: linear-gradient(
- 180deg,
- #f2f2f2 0%,
- rgba(249, 249, 249, 0) 20.18%
- );
- border-radius: 18px 18px 0 0;
- padding-top: 10px;
- width: 100vw;
- align-items: center;
- overflow: hidden;
- .CouponTabs {
- display: flex;
- flex: 0 0 56px;
- width: calc(100vw - 20px);
- background: #ffffff;
- border-radius: 10px;
-
- .tab {
- position: relative;
- display: flex;
- flex: 1;
- font-weight: 400;
- font-size: 15px;
- line-height: 20px;
- color: #9d988f;
- justify-content: center;
- align-items: center;
- &.active {
- color: #508af7;
- &::before {
- content: "";
- position: absolute;
- bottom: 10px;
- left: 0;
- right: 0;
- margin: auto;
- width: 4px;
- height: 4px;
- background: #508af7;
- border-radius: 50%;
- }
- &::after {
- content: "";
- position: absolute;
- width: 30px;
- height: 6px;
- bottom: 0;
- left: 0;
- right: 0;
- margin: auto;
- background: center / cover no-repeat url(./tri.svg);
- }
- }
- }
- }
- .list-container {
- flex: 1;
- overflow-x: hidden;
- overflow-y: scroll;
- padding-top: 16px;
- text-align: center;
- scroll-behavior: smooth;
-
- &::-webkit-scrollbar {
- display: none;
- }
- .coupon {
- position: relative;
- width: calc(100vw - 20px);
- height: calc((100vw - 20px) / 355 * 134);
- &.bg0 {
- background: center / cover no-repeat url(./bg0.svg);
- }
- &.bg1 {
- background: center / cover no-repeat url(./bg1.svg);
- }
- &.bg2 {
- background: center / cover no-repeat url(./bg2.svg);
- }
- .logo {
- position: absolute;
- top: 5.333vw;
- left: 5.333vw;
- border-radius: 4px;
- object-fit: cover;
- }
- .title {
- position: absolute;
- top: 8vw;
- left: 27.733vw;
- right: 2.667vw;
- font-weight: 600;
- font-size: 4.533vw;
- line-height: 5.867vw;
- color: #353230;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- text-align: left;
- }
- .meta {
- position: absolute;
- top: 14.933vw;
- left: 27.733vw;
- font-weight: 600;
- font-size: 3.467vw;
- line-height: 4.8vw;
- color: #68655e;
- opacity: 0.8;
- }
- .duration {
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- height: 9.067vw;
- font-weight: 400;
- font-size: 3.2vw;
- line-height: 4.267vw;
- text-align: center;
- color: #9d988f;
- display: flex;
- justify-content: center;
- align-items: center;
- .sep {
- width: 0.267vw;
- height: 2.667vw;
- opacity: 0.3;
- border-left: 0.267vw solid #68655e;
- margin-left: 3.2vw;
- margin-right: 3.2vw;
- }
- }
- .time-left {
- position: absolute;
- height: 3.467vw;
- top: 2.133vw;
- right: 1.067vw;
- font-weight: 600;
- font-size: 2.933vw;
- line-height: 3.467vw;
- color: #c1a672;
- opacity: 0.8;
- }
- .qrcode {
- position: absolute;
- top: 5.333vw;
- left: 5.333vw;
- }
- }
- .coupon + .coupon {
- margin-top: 8px;
- }
- .noData {
- display: flex;
- flex-direction: column;
- width: calc(100vw - 20px);
- height: 396px;
- border-radius: 18px;
- background: #ffffff;
- align-items: center;
- .bg {
- margin: auto;
- width: 250px;
- height: 250px;
- margin-top: 16px;
- }
- .meta {
- width: calc(100vw - 46px);
- flex: 0 0 90px;
- border-top: 1px solid #f5f5f5;
- display: flex;
- font-weight: 400;
- font-size: 17px;
- line-height: 22px;
- color: #9d988f;
- height: 90px;
- justify-content: center;
- align-items: center;
- .btn {
- color: #508af7;
- }
- }
- }
- }
-}
-.CouponModal {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- width: 326px;
- height: 416px;
- margin: auto;
- background: #f9f9fb;
- border-radius: 16px;
- .close {
- position: absolute;
- top: 16px;
- right: 16px;
- width: 24px;
- height: 24px;
- background: center / cover no-repeat url(./close.svg);
- }
- .qrcode {
- position: absolute;
- top: 52px;
- left: 0;
- right: 0;
- margin: auto;
- }
- .content {
- position: absolute;
- bottom: 8px;
- left: 8px;
- right: 8px;
- background: #f3f4f8;
- border-radius: 10px;
- height: 192px;
- display: flex;
- justify-content: center;
- align-items: flex-start;
- flex-direction: column;
- padding: 24px 16px 0 16px;
- .title {
- font-weight: 600;
- font-size: 17px;
- line-height: 22px;
- color: #323337;
- }
- .coupon-code {
- font-weight: 600;
- font-size: 13px;
- line-height: 18px;
- color: #437af7;
- opacity: 0.8;
- margin-top: 4px;
- padding-bottom: 8px;
- border-bottom: 1px dashed #c9cbd1;
- margin-bottom: 17px;
- width: 100%;
- }
- .meta {
- font-weight: 400;
- font-size: 12px;
- line-height: 16px;
- color: #7a7e8d;
- opacity: 0.8;
- margin-bottom: 2px;
- }
- .value {
- font-weight: 600;
- font-size: 12px;
- line-height: 16px;
- color: #474a56;
- opacity: 0.8;
- margin-bottom: 8px;
- min-height: 16px;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- }
-}
diff --git a/src/pages/Coupons/CouponList/bg0.svg b/src/pages/Coupons/CouponList/bg0.svg
deleted file mode 100644
index 113f3c2..0000000
--- a/src/pages/Coupons/CouponList/bg0.svg
+++ /dev/null
@@ -1,34 +0,0 @@
-
diff --git a/src/pages/Coupons/CouponList/bg1.svg b/src/pages/Coupons/CouponList/bg1.svg
deleted file mode 100644
index 4a71ccd..0000000
--- a/src/pages/Coupons/CouponList/bg1.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
diff --git a/src/pages/Coupons/CouponList/bg2.svg b/src/pages/Coupons/CouponList/bg2.svg
deleted file mode 100644
index dacd570..0000000
--- a/src/pages/Coupons/CouponList/bg2.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
diff --git a/src/pages/Coupons/CouponList/close.svg b/src/pages/Coupons/CouponList/close.svg
deleted file mode 100644
index 579a117..0000000
--- a/src/pages/Coupons/CouponList/close.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/src/pages/Coupons/CouponList/noData.png b/src/pages/Coupons/CouponList/noData.png
deleted file mode 100644
index 54ebaaf25aafad7a0053bea5182b32a034205c57..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 48466
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 d+E&3MM)n4fc3p
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