From b921bcaa074f973ff3fd739cf3b0d6c10bda21a5 Mon Sep 17 00:00:00 2001 From: czm <2192718639@qq.com> Date: Wed, 1 Jun 2022 20:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/share.ts | 11 +++ src/app.tsx | 12 +++ src/common/constant.js | 4 +- src/common/enum.ts | 15 ++++ src/components/orderBtns/index.tsx | 1 - src/components/shopCart/index.tsx | 2 +- src/constants/userInfo.ts | 4 +- src/pages/details/components/swiper/index.tsx | 11 ++- src/pages/details/index.config.ts | 3 +- src/pages/details/index.tsx | 36 ++++---- src/pages/index/index.tsx | 2 +- src/pages/order/comfirm.tsx | 2 +- src/pages/order/components/kindList/index.tsx | 84 +++++++++++-------- src/pages/order/components/payment/index.tsx | 15 ++-- src/pages/order/index.tsx | 14 ++-- src/pages/searchList/searchList.tsx | 2 +- src/pages/user/index.tsx | 4 +- src/reducers/userInfo.ts | 22 ++++- src/use/useHttp.ts | 1 - src/use/useLogin.ts | 25 +++--- src/use/useUserInfo.ts | 9 +- 21 files changed, 183 insertions(+), 96 deletions(-) create mode 100644 src/api/share.ts diff --git a/src/api/share.ts b/src/api/share.ts new file mode 100644 index 0000000..0761cfa --- /dev/null +++ b/src/api/share.ts @@ -0,0 +1,11 @@ +import { useRequest } from "@/use/useHttp" + +/** + * 分享短码 + */ + export const GetShortCodeApi = () => { + return useRequest({ + url: `/v1/mall/shortCode/add`, + method: "post", + }) +} diff --git a/src/app.tsx b/src/app.tsx index c5cff86..3a3c559 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -4,9 +4,21 @@ import { Provider } from 'react-redux' import configStore from './store' import './app.scss' +import { useShareAppMessage } from '@tarojs/taro' +import { useSelector } from './reducers/hooks' const store = configStore() const App:FC = ({children}) => { + //转发分享 + // const userObj = useSelector(state => state.userInfo) + useShareAppMessage(res => { + return { + title: '电子商城', + path: `/pages/details/index`, + imageUrl:'', + } + }) + return ( diff --git a/src/common/constant.js b/src/common/constant.js index 234c97f..40b4cdc 100644 --- a/src/common/constant.js +++ b/src/common/constant.js @@ -5,11 +5,11 @@ // export const BASE_URL = `http://192.168.0.89:40001/lymarket` // export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞 // export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境 -export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发 +// export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发 // export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境 // export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境 // export const BASE_URL = `http://192.168.1.4:40001/lymarket` // 王霞 -// export const BASE_URL = `http://192.168.1.224:50002/lymarket` // 添 +export const BASE_URL = `http://192.168.1.224:50001/lymarket` // 添 // export const BASE_URL = `http://192.168.1.15:50001/lymarket` // 杰 // CDN diff --git a/src/common/enum.ts b/src/common/enum.ts index 138aedf..8972e0a 100644 --- a/src/common/enum.ts +++ b/src/common/enum.ts @@ -11,4 +11,19 @@ export const ORDER_STATUS = { SaleOrderStatusComplete : {value:4, label:'已完成'}, // 已完成 SaleOrderStatusRefund : {value:6, label:'已退款'}, // 已退款 SaleOrderStatusCancel : {value:5, label:'已取消'}, // 已取消 +} + +//支付方式 +export const PAYMENT_METHOD = { + PaymentMethodPreDeposit: {value:1, label:'预存款'}, + PaymentMethodAccountPeriod : {value:2, label:'账期'}, + PaymentMethodofflineRemittance: {value:3, label:'线下汇款'}, + PaymentMethodScanCodeToPay: {value:4, label:'扫码支付'}, + PaymentMethodCashOnDelivery: {value:5, label:'货到付款'}, +} + +//分享场景枚举 +export const SHARE_SCENE = { + ShareDetail: {value:1, label:'详情分享'}, + SharePage : {value:2, label:'页面分享'}, } \ No newline at end of file diff --git a/src/components/orderBtns/index.tsx b/src/components/orderBtns/index.tsx index 6f6f4c6..4fc67dd 100644 --- a/src/components/orderBtns/index.tsx +++ b/src/components/orderBtns/index.tsx @@ -70,7 +70,6 @@ export default memo(({orderInfo, onClick}:Param) => { //判断是否显示该按钮 const orderBtnsShow = useCallback((item) => { if(orderInfo) { - // console.log('orderInfo::',item.value.includes(orderInfo.status)) if(item.id == 1) { //取消订单按钮 return( orderInfo.actual_amount == 0 && item.value.includes(orderInfo.status)) //在代发货之前没有付过款 diff --git a/src/components/shopCart/index.tsx b/src/components/shopCart/index.tsx index 3caff3d..1ca3aa5 100644 --- a/src/components/shopCart/index.tsx +++ b/src/components/shopCart/index.tsx @@ -224,7 +224,7 @@ export default ({show = false, onClose}: param) => { {loading&&} - {!loading&&list?.length > 0&& + {!loading&&list?.length > 0&& {list?.map((item, index) => { return diff --git a/src/constants/userInfo.ts b/src/constants/userInfo.ts index b2f5338..88982c6 100644 --- a/src/constants/userInfo.ts +++ b/src/constants/userInfo.ts @@ -2,7 +2,9 @@ export const SET_USERINFO = 'setUserInfo' export const SET_ADMINUSERINFO = 'setAdminUserInfo' export const SET_TOKEN = 'setToken' export const SET_SESSIONKEY = 'setSessionkey' +export const SET_SORTCODE = 'setSortCode' export const CLEAR_TOKEN = 'clearToken' export const CLEAR_SESSIONKEY = 'clearSessionkey' export const CLEAR_USERINFO = 'clearUserInfo' -export const CLEAR_ADMINUSERINFO = 'clearAdminUserInfo' \ No newline at end of file +export const CLEAR_ADMINUSERINFO = 'clearAdminUserInfo' +export const CLEAR_SORTCODE = 'clearSortCode' \ No newline at end of file diff --git a/src/pages/details/components/swiper/index.tsx b/src/pages/details/components/swiper/index.tsx index be07358..a0cb48e 100644 --- a/src/pages/details/components/swiper/index.tsx +++ b/src/pages/details/components/swiper/index.tsx @@ -4,12 +4,11 @@ import { useMemo, useRef, useState } from "react" import styles from './index.module.scss' type item = {title:string, img:string, url:string, id:number} - type params = { list?: item[] } + export default ({list = []}: params) => { - const [pageIndex, setPageIndex] = useState(1) const pageRef = useRef(null) @@ -26,13 +25,13 @@ export default ({list = []}: params) => { swiperChange(e)}> {list.map((item) => { return - - - + + + })} - {pageIndex+'/'+pageCount} + {(list.length > 0)&&{pageIndex+'/'+pageCount}} ) } \ No newline at end of file diff --git a/src/pages/details/index.config.ts b/src/pages/details/index.config.ts index f0757fd..20c0853 100644 --- a/src/pages/details/index.config.ts +++ b/src/pages/details/index.config.ts @@ -1,5 +1,6 @@ export default { navigationBarTitleText: '详情', enablePullDownRefresh: true, - backgroundTextStyle: 'dark' + backgroundTextStyle: 'dark', + enableShareAppMessage: true } diff --git a/src/pages/details/index.tsx b/src/pages/details/index.tsx index c845f9e..9234816 100644 --- a/src/pages/details/index.tsx +++ b/src/pages/details/index.tsx @@ -1,5 +1,5 @@ -import { Button, CustomWrapper, Image, RichText, ScrollView, Swiper, SwiperItem, Text, View } from '@tarojs/components' +import { Button, CustomWrapper, Image, RichText, Text, View } from '@tarojs/components' import Taro, { useDidShow, usePullDownRefresh, useRouter, useShareAppMessage } from '@tarojs/taro'; import classnames from "classnames"; import DesSwiper from './components/swiper'; @@ -7,13 +7,11 @@ import OrderCount from './components/orderCount'; import ShopCart from '@/components/shopCart'; import Preview,{colorItem} from './components/preview'; import styles from './index.module.scss' -import { useEffect, useMemo, useState } from 'react'; +import { useEffect, useMemo, useRef, useState } from 'react'; import {formatHashTag, formatImgUrl} from '@/common/fotmat' -import useManualPullDownRefresh from '@/use/useManualPullDownRefresh'; -import { goLink } from '@/common/common'; -import useUserInfo from '@/use/useUserInfo'; import {GetProductDetailApi} from '@/api/material' import useLogin from '@/use/useLogin'; +import { useSelector } from '@/reducers/hooks'; type item = {title:string, img:string, url:string, id:number} @@ -49,14 +47,12 @@ export default (props:params) => { },[productInfo]) const [showCart, setShowCart] = useState(false) - const [showOrderCount, setShowOrderCount] = useState(false) - const html = ` ` - + //弹窗提示 const [colorInfo, setColorInfo] = useState() const [showPreview, setShowPreview] = useState(false) const getColorItem = (item) => { @@ -67,6 +63,7 @@ export default (props:params) => { setShowPreview(true) } + //收藏功能 const [collectStatus, setCollectStatus] = useState(false) const changeCollect = () => { setCollectStatus(!collectStatus) @@ -77,18 +74,26 @@ export default (props:params) => { }) } + //转发分享 + const userObj = useSelector(state => state.userInfo) useShareAppMessage(res => { + let path = '' + let title = '' + let imageUrl = '' if (res.from === 'button') { - // 来自页面内转发按钮 - console.log(res.target) + path = `/pages/details/index?id=${userObj.sort_code.shareShortDetail}` + title = productName as string + // imageUrl = + } else { + path = `/pages/details/index?id=${userObj.sort_code.shareShortPage}` + title = '陆盈电子商城' } return { - title: '自定义转发标题', - path: '/pages/details/index?id=10', - imageUrl: '' + title, + path, + imageUrl, } }) - //开始下单 const placeOrder = async (e:any) => { @@ -108,7 +113,6 @@ export default (props:params) => { //页面下拉刷新 usePullDownRefresh(() => { getProductDetail() - }) @@ -123,13 +127,11 @@ export default (props:params) => { 分享 - changeCollect()}> 收藏 - diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index de0e0b0..43fd1b5 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -96,7 +96,7 @@ export default () => { //数据加载状态 const statusMore = useMemo(() => { return dataLoadingStatus({list:productData.list, total: productData.total, status: productState.loading}) - }, [productData]) + }, [productData, productState.loading]) return ( setShowShopCart(!showShopCart)}> diff --git a/src/pages/order/comfirm.tsx b/src/pages/order/comfirm.tsx index 3dd3e12..368873a 100644 --- a/src/pages/order/comfirm.tsx +++ b/src/pages/order/comfirm.tsx @@ -163,7 +163,7 @@ import SubmitOrderBtn from "./components/submitOrderBtn"; getAddress(e)} defaultValue={defaultAddress}/> - + setShowDesc(true)}> 订单备注 { diff --git a/src/pages/order/components/kindList/index.tsx b/src/pages/order/components/kindList/index.tsx index cf6717a..e93be35 100644 --- a/src/pages/order/components/kindList/index.tsx +++ b/src/pages/order/components/kindList/index.tsx @@ -22,21 +22,26 @@ type OrderParam = { actual_amount: number //实付金额 } -export default memo(({value}:{value:OrderParam}) => { +type Param = { + order: OrderParam, + comfirm?: boolean //是否是确认订单页面使用 +} + +export default memo(({order, comfirm = false}:Param) => { //对应数量 const formatCount = useCallback((item) => { - return value?.sale_mode == 0? item.roll : Number(item.length / 100) - }, [value]) + return order?.sale_mode == 0? item.roll : Number(item.length / 100) + }, [order]) //对应单价 const standardPrice = useCallback(price => { - return formatPriceDiv(price).toLocaleString() + '/' + (value?.sale_mode == 1?'m':'kg') - }, [value]) + return formatPriceDiv(price).toLocaleString() + '/' + (order?.sale_mode == 1?'m':'kg') + }, [order]) //数量格式 const numText = useMemo(() => { - if(value) - return `${value?.total_fabrics}种面料,${value?.total_colors}种颜色,共${value?.total_number}${value?.unit}` - }, [value]) + if(order) + return `${order?.total_fabrics}种面料,${order?.total_colors}种颜色,共${order?.total_number}${order?.unit}` + }, [order]) const { SaleOrderStatusBooking, // 待接单 @@ -56,68 +61,79 @@ export default memo(({value}:{value:OrderParam}) => { { id:1, value:[SaleOrderStatusBooking.value, SaleOrderStatusArranging.value], - label:'预估金额' + label:'预估金额', + field: 'estimate_amount' }, { id:2, value:[SaleOrderStatusArranged.value, SaleOrderStatusWaitingPayment.value, SaleOrderStatusWaitingDelivery.value, SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value], - label:'合计金额' + label:'合计金额', + field: 'total_sale_price' }, { id:3, - value:[SaleOrderStatusArranged.value, SaleOrderStatusWaitingPayment.value, SaleOrderStatusWaitingDelivery.value, SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value], - label:'空差优惠' + value:[SaleOrderStatusWaitingPayment.value, SaleOrderStatusWaitingDelivery.value, SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value], + label:'空差优惠', + field: 'total_weight_error_discount' }, { id:4, value:[ SaleOrderStatusWaitingPayment.value], - label:'应付金额' + label:'应付金额', + field: 'total_should_collect_money' }, { id:5, value:[SaleOrderStatusWaitingDelivery.value, SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value], - label:'实付金额' + label:'实付金额', + field: 'actual_amount' } ] + //是否显示价格 + const showPrice = useCallback((priceInfo, status) => { + return priceInfo.value.includes(status) + }, [order]) + const priceConDom = useMemo(() => { - if(!value) return - console.log('value:::', value) + if(!order) return + //确认订单 + if(comfirm == true) { + return + } //订单为取消订单状态 - if(value?.status == 9) { + if(order?.status == SaleOrderStatusCancel.value) { return ( <> - {(priceList[1].value.includes(value?.the_previous_status))&&} - {(priceList[2].value.includes(value?.the_previous_status))&&} - {(priceList[3].value.includes(value?.the_previous_status))&&} - {(priceList[4].value.includes(value?.the_previous_status))&&} - {/* {(priceList[5].value.includes(value?.the_previous_status))&&} */} + { + priceList.map(item => { + return <>{showPrice(item, order?.the_previous_status)&&} + }) + } ) } else { return ( <> - {(priceList[1].value.includes(value?.status))&&} - {(priceList[2].value.includes(value?.status))&&} - {(priceList[3].value.includes(value?.status))&&} - {(priceList[4].value.includes(value?.status))&&} - {/* {(priceList[5].value.includes(value?.status))&&} */} + { + priceList.map(item => { + return <>{showPrice(item, order?.status)&&} + }) + } ) - } - - - }, [value]) + } + }, [order]) return ( <> {numText} { - value?.list?.map(item => { + order?.list?.map(item => { return - {value.sale_mode_name} + {order.sale_mode_name} {formatHashTag(item.code, item.name)} 共{item?.product_colors.length}种 @@ -131,7 +147,7 @@ export default memo(({value}:{value:OrderParam}) => { ¥{standardPrice(colorItem.sale_price)} - ×{formatCount(colorItem)}{value.unit} + ×{formatCount(colorItem)}{order.unit} ¥{formatPriceDiv(colorItem.estimate_amount).toLocaleString()} diff --git a/src/pages/order/components/payment/index.tsx b/src/pages/order/components/payment/index.tsx index 4f35d49..a452f95 100644 --- a/src/pages/order/components/payment/index.tsx +++ b/src/pages/order/components/payment/index.tsx @@ -1,5 +1,5 @@ import { Text, View } from "@tarojs/components"; -import { memo, useEffect, useMemo, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useState } from "react"; import AmountShow from "../amountShow"; import classnames from "classnames"; import styles from './index.module.scss' @@ -11,6 +11,7 @@ import ScanPay from "../scanPay"; import { GetOrderPayApi, SubmitOrderPayApi } from "@/api/orderPay"; import { formatPriceDiv } from "@/common/fotmat"; import {alert} from "@/common/common" +import { PAYMENT_METHOD } from "@/common/enum"; type Param = { show?: true|false, @@ -61,9 +62,10 @@ export default memo(({show = false, onClose, orderId = 0, onSubmitSuccess}:Param }, [show, orderId]) //预存款选择 - const advanceSelectData = (val) => { + const advanceSelectData = useCallback((val) => { setSubmitData((e) => ({...e, payment_method:val})) - } + }, []) + //账期选择 const periodSelectData = (val) => { setSubmitData((e) => ({...e, payment_method:val})) @@ -93,6 +95,9 @@ export default memo(({show = false, onClose, orderId = 0, onSubmitSuccess}:Param ) }, [payInfo]) + //支付方式枚举 + const {PaymentMethodPreDeposit, PaymentMethodAccountPeriod} = PAYMENT_METHOD + return ( @@ -126,7 +131,7 @@ export default memo(({show = false, onClose, orderId = 0, onSubmitSuccess}:Param {advance_payment} - advanceSelectData(0)} onClose={() => advanceSelectData(null)}/> + advanceSelectData(PaymentMethodPreDeposit.value)} onClose={() => advanceSelectData(null)}/> @@ -136,7 +141,7 @@ export default memo(({show = false, onClose, orderId = 0, onSubmitSuccess}:Param 可用额度 ¥{payInfo?.account_period_credit_available_line} - periodSelectData(1)} onClose={() => periodSelectData(null)}/> + periodSelectData(PaymentMethodAccountPeriod.value)} onClose={() => periodSelectData(null)}/> diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx index 43979d0..a625aeb 100644 --- a/src/pages/order/index.tsx +++ b/src/pages/order/index.tsx @@ -5,6 +5,7 @@ import { } from "@/api/order"; import { GetOrderPayApi } from "@/api/orderPay"; import { alert, goLink } from "@/common/common"; +import { ORDER_STATUS } from "@/common/enum"; import { formatDateTime, formatPriceDiv } from "@/common/fotmat"; import OrderBtns from "@/components/orderBtns"; import Popup from "@/components/popup"; @@ -23,10 +24,8 @@ import styles from './index.module.scss' export default () => { const [showDesc, setShowDesc] = useState(false) - const router = useRouter() const orderId = useRef(Number(router.params.id)) - useDidShow(() => { getSaleOrderPreView() }) @@ -169,22 +168,25 @@ import styles from './index.module.scss' return { status: orderDetail?.status, //订单状态 orderId: orderDetail?.id, - settle_mode: orderDetail?.settle_mode, //支付方式 -1 还没支付 0:全额现结,1:定期付款,2:货到付款 + settle_mode: orderDetail?.settle_mode, actual_amount: orderDetail?.actual_amount, //实付金额 wait_pay_amount: orderDetail?.wait_pay_amount, //待付金额 } }, [orderDetail]) + //订单状态枚举 + const {SaleOrderStatusCancel} = ORDER_STATUS + return ( {/* */} - + - + 订单信息 @@ -208,7 +210,7 @@ import styles from './index.module.scss' } - {(orderDetail?.status)&& + {(orderDetail?.status != SaleOrderStatusCancel.value)&& } setShowDesc(false)} > diff --git a/src/pages/searchList/searchList.tsx b/src/pages/searchList/searchList.tsx index 2fe2769..7acb9fe 100644 --- a/src/pages/searchList/searchList.tsx +++ b/src/pages/searchList/searchList.tsx @@ -64,7 +64,7 @@ export default () => { //数据加载状态 const statusMore = useMemo(() => { return dataLoadingStatus({list:materialList.list, total: materialList.total, status: materialState.loading}) - }, [materialList]) + }, [materialList, materialState]) //输入了搜索关键字 const getSearchData = useCallback((e) => { diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index 4ad2158..fe4f517 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -2,6 +2,7 @@ import { View, Image, Text, Navigator } from "@tarojs/components" import { memo } from "react" import styles from './index.module.scss' import classnames from "classnames"; +import { goLink } from "@/common/common"; export default () => { @@ -12,7 +13,6 @@ export default () => { ) } - // 头部 | 订单 const Header = memo(() => { let menu = [{ text: "待配布", icon: "icon-daipeibu" }, { text: "待付款", icon: "icon-daifukuan" }, @@ -45,7 +45,7 @@ const Header = memo(() => { 订单 - 全部 + goLink('/pages/orderList/index')}>全部 { diff --git a/src/reducers/userInfo.ts b/src/reducers/userInfo.ts index 5fbd4db..a23c93f 100644 --- a/src/reducers/userInfo.ts +++ b/src/reducers/userInfo.ts @@ -5,10 +5,12 @@ import { SET_ADMINUSERINFO, SET_TOKEN, SET_SESSIONKEY, + SET_SORTCODE, CLEAR_TOKEN, CLEAR_USERINFO, CLEAR_SESSIONKEY, CLEAR_ADMINUSERINFO, + CLEAR_SORTCODE } from '../constants/userInfo' export type UserParam = { @@ -36,14 +38,20 @@ export type UserAdminParam = { user_name?: string, wechat_user_open_id?: number is_authorize_name?: false|true, - is_authorize_phone?: false|true + is_authorize_phone?: false|true, +} + +export type SortCodeParam = { + shareShortDetail?: string, //详情分享页面短码 + shareShortPage?: string, //右上角分享页面短码 } export type DataParam = { token?: string session_key?: string, userInfo: UserParam, - adminUserInfo: UserAdminParam + adminUserInfo: UserAdminParam, + sort_code: SortCodeParam } type Action = { @@ -52,14 +60,16 @@ type Action = { } - const INIT_USER = { userInfo: Taro.getStorageSync('userInfo')?JSON.parse(Taro.getStorageSync('userInfo')):null, adminUserInfo: Taro.getStorageSync('adminUserInfo')?JSON.parse(Taro.getStorageSync('adminUserInfo')):null, token: Taro.getStorageSync('token')||'', session_key: Taro.getStorageSync('session_key')||'', + sort_code: Taro.getStorageSync('sort_code')?JSON.parse(Taro.getStorageSync('sort_code')):null, } + + export default function counter (state = INIT_USER, action: Action) { const {type, data} = action switch (type) { @@ -75,6 +85,9 @@ export default function counter (state = INIT_USER, action: Action) { case SET_SESSIONKEY: Taro.setStorageSync('session_key',data?.session_key) return {...state,...data} + case SET_SORTCODE: + Taro.setStorageSync('sort_code',JSON.stringify(data?.sort_code)) + return {...state,...data} case CLEAR_TOKEN: Taro.removeStorageSync('token') return {...state, token:''} @@ -87,6 +100,9 @@ export default function counter (state = INIT_USER, action: Action) { case CLEAR_ADMINUSERINFO: Taro.removeStorageSync('adminUserInfo') return {...state, adminUserInfo: null} + case CLEAR_SORTCODE: + Taro.removeStorageSync('sort_code') + return {...state, sortCode: null} default: return state } diff --git a/src/use/useHttp.ts b/src/use/useHttp.ts index ead24a2..2663ab8 100644 --- a/src/use/useHttp.ts +++ b/src/use/useHttp.ts @@ -168,7 +168,6 @@ export const useRequest = (options:option = { msg, data } = result.data - console.log(code, msg, data, statusCode); if (statusCode === 200) { stateRef.current.success = (code === 0 ? true : false) stateRef.current.code = code diff --git a/src/use/useLogin.ts b/src/use/useLogin.ts index aa662d7..8c3217d 100644 --- a/src/use/useLogin.ts +++ b/src/use/useLogin.ts @@ -1,18 +1,12 @@ -import { useEffect, useState } from "react" -import {BASE_URL, WX_APPID } from "@/common/constant" import useUserInfo from "./useUserInfo" import Taro, { useRouter } from "@tarojs/taro" -import { LoginApi } from "@/api/login" import { GetWxUserInfoApi, GetAdminUserInfoApi, GetPhoneNumberApi } from "@/api/user" -import qs from 'qs'; import useLoginRequest from "./useLoginRequest" +import { SHARE_SCENE } from "@/common/enum" +import { GetShortCodeApi } from "@/api/share" export default () => { - const {setUserInfo, setAdminUserInfo, userInfo} = useUserInfo() - - useEffect(() => { - console.log('userInfo::',userInfo.token) - }, [userInfo]) + const {setUserInfo, setAdminUserInfo, setSortCode, userInfo} = useUserInfo() //登录请求 (调用这个就不能再useHttp中使用,当前这个hook, 否则会死循环内存溢出) // const {fetchData} = LoginApi() @@ -33,6 +27,7 @@ export default () => { const getAdminUserInfo = async () => { let res = await useFetchData() setAdminUserInfo(res.data) + getShortCode(res.data.user_id) } //登录加checkLogin检查 @@ -45,7 +40,7 @@ export default () => { Taro.checkSession({ success: async () => { reslove(true) - if(!userInfo.adminUserInfo) getAdminUserInfo() + if(!userInfo.adminUserInfo) getAdminUserInfo() }, fail: async () => { await wxLogin() @@ -84,7 +79,6 @@ export default () => { } else { reject(user_res.msg) } - }, fail:(e) => { reject(e) @@ -115,6 +109,15 @@ export default () => { }) } + //获取分享转码 + const {ShareDetail, SharePage} = SHARE_SCENE + const {fetchData: fetchDataShortCode} = GetShortCodeApi() + const getShortCode = async (user_id) => { + const {data: resDetail} = await fetchDataShortCode({"share_user_id": user_id, type:ShareDetail.value}) + const {data: resPage} = await fetchDataShortCode({"share_user_id": user_id, type:SharePage.value}) + setSortCode({shareShortDetail: resDetail.md5_key, shareShortPage: resPage.md5_key}) + } + return { checkLogin, wxLogin, diff --git a/src/use/useUserInfo.ts b/src/use/useUserInfo.ts index 9e03fc7..025bef6 100644 --- a/src/use/useUserInfo.ts +++ b/src/use/useUserInfo.ts @@ -1,6 +1,6 @@ import { useDispatch, useSelector } from 'react-redux' -import { CLEAR_SESSIONKEY, SET_USERINFO, SET_TOKEN, SET_SESSIONKEY, CLEAR_USERINFO, CLEAR_TOKEN, SET_ADMINUSERINFO} from '@/constants/userInfo' -import {DataParam, UserParam, UserAdminParam} from '@/reducers/userInfo' +import { CLEAR_SESSIONKEY, SET_USERINFO, SET_TOKEN, SET_SESSIONKEY, CLEAR_USERINFO, CLEAR_TOKEN, SET_ADMINUSERINFO, SET_SORTCODE} from '@/constants/userInfo' +import {DataParam, UserParam, UserAdminParam, SortCodeParam} from '@/reducers/userInfo' export default () => { const userInfo = useSelector((state:DataParam) => state.userInfo) as DataParam const dispatch = useDispatch() @@ -21,6 +21,10 @@ export default () => { dispatch({type:SET_ADMINUSERINFO, data:{adminUserInfo}}) } + const setSortCode = (sortCode:SortCodeParam) => { + dispatch({type:SET_SORTCODE, data:{sort_code:sortCode}}) + } + const removeUserInfo = () => { dispatch({type:CLEAR_USERINFO}) } @@ -41,6 +45,7 @@ export default () => { removeUserInfo, removeToken, removeSessionKey, + setSortCode, userInfo, //响应式数据返回 } } \ No newline at end of file