Browse Source

feat: 使用原生小程序的扫码进行核销

master
jiannibang 3 years ago
parent
commit
d28dc8fec7
  1. 17
      src/pages/Coupons/Coupons.js
  2. 12
      src/pages/Coupons/ShopManager/ShopManager.js
  3. 9
      src/pages/Coupons/WriteOffModal/WriteOffModal.js
  4. 8
      src/pages/Index/Index.js

17
src/pages/Coupons/Coupons.js

@ -6,9 +6,16 @@ import ShopTabs from "./ShopTabs/ShopTabs";
import CouponList from "./CouponList/CouponList";
import ShopManager from "./ShopManager/ShopManager";
const Coupons = ({ show, memberID, isShop = false, mall }) => {
const Coupons = ({
show,
memberID,
isShop = false,
mall,
showWriteOff,
setShowWriteOff,
}) => {
const isNotMember = !memberID;
const [showCoupons, setShowCoupons] = useState(true);
const [showCoupons, setShowCoupons] = useState(showWriteOff ? false : true);
return (
<Modal
isOpen={show}
@ -68,7 +75,11 @@ const Coupons = ({ show, memberID, isShop = false, mall }) => {
<CouponList memberID={memberID}></CouponList>
)}
{isShop && !showCoupons && (
<ShopManager memberID={memberID}></ShopManager>
<ShopManager
memberID={memberID}
showWriteOff={showWriteOff}
setShowWriteOff={setShowWriteOff}
></ShopManager>
)}
</>
)}

12
src/pages/Coupons/ShopManager/ShopManager.js

@ -2,7 +2,7 @@ import "./ShopManager.scss";
import noDataPic from "./noDataPic.png";
import { post } from "../../../js/helpers/data-helper";
import InfiniteScroll from "react-infinite-scroller";
import { useState, useRef, useCallback } from "react";
import { useState, useRef, useCallback, useEffect } from "react";
import ListEnd from "../ListEnd/ListEnd";
import ApplyModal from "../ApplyModal/ApplyModal";
import WriteOffModal from "../WriteOffModal/WriteOffModal";
@ -13,13 +13,15 @@ const stateMap = {
2: "已拒绝",
};
const ShopManager = ({ memberID }) => {
const ShopManager = ({ memberID, showWriteOff, setShowWriteOff }) => {
const [list, setList] = useState([]);
const [nextPageIndex, setNextPageIndex] = useState(1);
const [loading, setLoading] = useState(false);
const [showApplyModal, setShowApplyModal] = useState(false);
const [showWriteOffModal, setShowWriteOffModal] = useState(false);
const [showWriteOffModal, setShowWriteOffModal] = useState(
showWriteOff ? true : false
);
const listRef = useRef();
const showNoData = !loading && list.length === 0;
const showListEnd = !loading && list.length > 0;
@ -53,6 +55,10 @@ const ShopManager = ({ memberID }) => {
setLoading(false);
}
}, [list, loading, nextPageIndex]);
useEffect(() => {
setShowWriteOff(false);
}, []);
return (
<div className="ShopManager">
<div className="btns">

9
src/pages/Coupons/WriteOffModal/WriteOffModal.js

@ -98,7 +98,14 @@ const WriteOffModal = ({ onBack, memberID }) => {
onChange={(e) => setOrderNo(e.target.value)}
></input>
</div>
<div className="scan" onClick={() => setShowScanModal(true)}></div>
<div
className="scan"
onClick={() => {
window.wx.miniProgram.redirectTo({
url: `/pages/scanCode/index`,
});
}}
></div>
{!!orderNo && (
<div className="btn" onClick={() => submitFromBtn(orderNo)}>
确认核销

8
src/pages/Index/Index.js

@ -23,9 +23,9 @@ import Activities from "../Activities/Activities";
import Coupons from "../Coupons/Coupons";
import TabMap from "./tabs/Tabs";
import ShopCoupons from "../ShopCoupons/ShopCoupons";
import VConsole from "vconsole";
export const MallCode = React.createContext(null);
// const vConsole = new window.VConsole();
// const vConsole = new VConsole();
let focusdDevice;
let memberID;
let isShop;
@ -79,6 +79,7 @@ const Index = () => {
const [tab, setTab] = useState("地图");
const [couponShop, setCouponShop] = useState(null);
const [initActivity, setInitActivity] = useState(null);
const [showWriteOff, setShowWriteOff] = useState(endId === "writeoff");
const showShopCoupons = !!couponShop;
const hasTab = mall && mall.menu.length > 1;
@ -134,6 +135,7 @@ const Index = () => {
if (!endId) return;
if (endId === "findcar") return setShowFindCar(true);
if (endId === "me") return setTab("我的");
if (endId === "writeoff") return setTab("我的");
if (endId.startsWith && endId.startsWith("activities")) {
setTab("活动");
if (endId === "activities") return;
@ -643,6 +645,8 @@ const Index = () => {
show={showCoupon}
memberID={memberID}
isShop={isShop}
showWriteOff={showWriteOff}
setShowWriteOff={setShowWriteOff}
mall={mall}
></Coupons>
<div className={"hud " + (isTyping ? "bg" : "")}>

Loading…
Cancel
Save