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

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

@ -98,7 +98,14 @@ const WriteOffModal = ({ onBack, memberID }) => {
onChange={(e) => setOrderNo(e.target.value)} onChange={(e) => setOrderNo(e.target.value)}
></input> ></input>
</div> </div>
<div className="scan" onClick={() => setShowScanModal(true)}></div>
<div
className="scan"
onClick={() => {
window.wx.miniProgram.redirectTo({
url: `/pages/scanCode/index`,
});
}}
></div>
{!!orderNo && ( {!!orderNo && (
<div className="btn" onClick={() => submitFromBtn(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 Coupons from "../Coupons/Coupons";
import TabMap from "./tabs/Tabs"; import TabMap from "./tabs/Tabs";
import ShopCoupons from "../ShopCoupons/ShopCoupons"; import ShopCoupons from "../ShopCoupons/ShopCoupons";
import VConsole from "vconsole";
export const MallCode = React.createContext(null); export const MallCode = React.createContext(null);
// const vConsole = new window.VConsole();
// const vConsole = new VConsole();
let focusdDevice; let focusdDevice;
let memberID; let memberID;
let isShop; let isShop;
@ -79,6 +79,7 @@ const Index = () => {
const [tab, setTab] = useState("地图"); const [tab, setTab] = useState("地图");
const [couponShop, setCouponShop] = useState(null); const [couponShop, setCouponShop] = useState(null);
const [initActivity, setInitActivity] = useState(null); const [initActivity, setInitActivity] = useState(null);
const [showWriteOff, setShowWriteOff] = useState(endId === "writeoff");
const showShopCoupons = !!couponShop; const showShopCoupons = !!couponShop;
const hasTab = mall && mall.menu.length > 1; const hasTab = mall && mall.menu.length > 1;
@ -134,6 +135,7 @@ const Index = () => {
if (!endId) return; if (!endId) return;
if (endId === "findcar") return setShowFindCar(true); if (endId === "findcar") return setShowFindCar(true);
if (endId === "me") return setTab("我的"); if (endId === "me") return setTab("我的");
if (endId === "writeoff") return setTab("我的");
if (endId.startsWith && endId.startsWith("activities")) { if (endId.startsWith && endId.startsWith("activities")) {
setTab("活动"); setTab("活动");
if (endId === "activities") return; if (endId === "activities") return;
@ -643,6 +645,8 @@ const Index = () => {
show={showCoupon} show={showCoupon}
memberID={memberID} memberID={memberID}
isShop={isShop} isShop={isShop}
showWriteOff={showWriteOff}
setShowWriteOff={setShowWriteOff}
mall={mall} mall={mall}
></Coupons> ></Coupons>
<div className={"hud " + (isTyping ? "bg" : "")}> <div className={"hud " + (isTyping ? "bg" : "")}>

Loading…
Cancel
Save