修复部分bug
This commit is contained in:
parent
d3a7fd9913
commit
3637447ab6
@ -67,3 +67,25 @@ export const DelFavoriteProductApi = () => {
|
|||||||
method: "delete",
|
method: "delete",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取收藏夹商品详情
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const DetailFavoriteProductApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/favorite`,
|
||||||
|
method: "get",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移动收藏夹商品
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const MoveFavoriteProductApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/favorite/product`,
|
||||||
|
method: "put",
|
||||||
|
})
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
import { CAP_HTML_TO_IMAGE_BASE_URL } from "@/common/constant"
|
||||||
import { useRequest } from "@/use/useHttp"
|
import { useRequest } from "@/use/useHttp"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -5,8 +6,8 @@ import { useRequest } from "@/use/useHttp"
|
|||||||
*/
|
*/
|
||||||
export const GetPayCode = () => {
|
export const GetPayCode = () => {
|
||||||
return useRequest({
|
return useRequest({
|
||||||
url: `/`,
|
url: `/xima-caphtml/caphtml`,
|
||||||
base_url: 'http://192.168.1.127:8081/caphtml',
|
base_url: CAP_HTML_TO_IMAGE_BASE_URL,
|
||||||
method: "post",
|
method: "post",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,10 @@ export const UPLOAD_CDN_URL = `https://v0.api.upyun.com/`
|
|||||||
// cdn
|
// cdn
|
||||||
export const IMG_CND_Prefix = CURRENT_ENV.includes('development')? "https://test.cdn.zzfzyc.com":"https://cdn.zzfzyc.com"
|
export const IMG_CND_Prefix = CURRENT_ENV.includes('development')? "https://test.cdn.zzfzyc.com":"https://cdn.zzfzyc.com"
|
||||||
|
|
||||||
|
//在线支付图片baseUrl
|
||||||
|
export const CAP_HTML_TO_IMAGE_BASE_URL = CURRENT_ENV.includes('development')? "https://test.zzfzyc.com":"https://www.zzfzyc.com"
|
||||||
|
|
||||||
|
|
||||||
// 上传图片视频
|
// 上传图片视频
|
||||||
export const CDN_UPLOAD_IMG = `${UPLOAD_CDN_URL || ''}`;
|
export const CDN_UPLOAD_IMG = `${UPLOAD_CDN_URL || ''}`;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import classnames from "classnames";
|
|||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import { AddShoppingCartApi } from "@/api/shopCart"
|
import { AddShoppingCartApi } from "@/api/shopCart"
|
||||||
import { ApplyRefundApi } from "@/api/salesAfterOrder"
|
import { ApplyRefundApi } from "@/api/salesAfterOrder"
|
||||||
import { UseSubscriptionMessage } from "@/use/useCommonData"
|
import { UseSubscriptionMessage } from "@/use/useCommon"
|
||||||
import { throttle } from "@/common/util"
|
import { throttle } from "@/common/util"
|
||||||
|
|
||||||
type Param = {
|
type Param = {
|
||||||
@ -52,7 +52,9 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
|
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
value: [SaleOrderStatusBooking.value,
|
value: [
|
||||||
|
SaleorderstatusWaitingPrePayment.value,
|
||||||
|
SaleOrderStatusBooking.value,
|
||||||
SaleOrderStatusArranging.value,
|
SaleOrderStatusArranging.value,
|
||||||
SaleOrderStatusArranged.value,
|
SaleOrderStatusArranged.value,
|
||||||
SaleOrderStatusWaitingPayment.value,
|
SaleOrderStatusWaitingPayment.value,
|
||||||
@ -96,7 +98,6 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
//判断是否显示该按钮
|
//判断是否显示该按钮
|
||||||
const orderBtnsShow = (item) => {
|
const orderBtnsShow = (item) => {
|
||||||
if(orderInfo) {
|
if(orderInfo) {
|
||||||
@ -104,7 +105,7 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
//取消订单按钮
|
//取消订单按钮
|
||||||
return( orderInfo.actual_amount == 0 && item.value.includes(orderInfo.status)) //在待发货之前没有付过款
|
return( orderInfo.actual_amount == 0 && item.value.includes(orderInfo.status)) //在待发货之前没有付过款
|
||||||
} else if (item.id == 2) {
|
} else if (item.id == 2) {
|
||||||
//去付款按钮
|
//去付款按钮(这里后端偷偷改了逻辑)
|
||||||
return( orderInfo.wait_pay_amount != 0 && item.value.includes(orderInfo.status)) //只要没有付完款就显示
|
return( orderInfo.wait_pay_amount != 0 && item.value.includes(orderInfo.status)) //只要没有付完款就显示
|
||||||
} else if(item.id == 3 ) {
|
} else if(item.id == 3 ) {
|
||||||
//申请退款, 只有大货才有
|
//申请退款, 只有大货才有
|
||||||
|
@ -41,7 +41,7 @@ const PictureItem:FC<ImageParam> = memo(({onChange, defaultList, onlyRead = fals
|
|||||||
|
|
||||||
//预览图片
|
//预览图片
|
||||||
const showImage = () => {
|
const showImage = () => {
|
||||||
let list = imageList.map(item => {
|
let list = imageList?.map(item => {
|
||||||
return formatImgUrl(item, '!w800')
|
return formatImgUrl(item, '!w800')
|
||||||
})
|
})
|
||||||
Taro.previewImage({
|
Taro.previewImage({
|
||||||
@ -52,7 +52,7 @@ const PictureItem:FC<ImageParam> = memo(({onChange, defaultList, onlyRead = fals
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.image_main}>
|
<View className={styles.image_main}>
|
||||||
{imageList.map((item, index) =>
|
{imageList?.map((item, index) =>
|
||||||
<View className={styles.ImgItem}>
|
<View className={styles.ImgItem}>
|
||||||
<Image mode="aspectFill" src={formatImgUrl(item)} onClick={showImage}></Image>
|
<Image mode="aspectFill" src={formatImgUrl(item)} onClick={showImage}></Image>
|
||||||
{!onlyRead && <View onClick={() => delImage(index)} className={classnames(styles.miconfont_close, 'iconfont icon-qingkong')}></View>}
|
{!onlyRead && <View onClick={() => delImage(index)} className={classnames(styles.miconfont_close, 'iconfont icon-qingkong')}></View>}
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
export const SET_COMMON = 'setCommon'
|
export const SET_SHOPCOUNT = 'set_shopCount'
|
||||||
export const CLEAR_COMMON = 'clearCommon'
|
export const CLEAR_SHOPCOUNT = 'clear_shopCount'
|
@ -1,4 +1,4 @@
|
|||||||
import { CreateFavoriteApi, DelFavoriteApi, FavoriteListApi, UpdateFavoriteApi } from "@/api/favorite";
|
import { CreateFavoriteApi, DelFavoriteApi, DelFavoriteProductApi, DetailFavoriteProductApi, FavoriteListApi, MoveFavoriteProductApi, UpdateFavoriteApi } from "@/api/favorite";
|
||||||
import { alert } from "@/common/common";
|
import { alert } from "@/common/common";
|
||||||
import { getFilterData } from "@/common/util";
|
import { getFilterData } from "@/common/util";
|
||||||
import Product from "../components/product";
|
import Product from "../components/product";
|
||||||
@ -6,7 +6,7 @@ import Search from "@/components/search"
|
|||||||
import { Text, View } from "@tarojs/components"
|
import { Text, View } from "@tarojs/components"
|
||||||
import Taro, { useRouter } from "@tarojs/taro";
|
import Taro, { useRouter } from "@tarojs/taro";
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { useCallback, useEffect, useRef, useState } from "react";
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
||||||
import CreatePopup from "../components/createPopup";
|
import CreatePopup from "../components/createPopup";
|
||||||
import UpdatePopup from "../components/updatePopup";
|
import UpdatePopup from "../components/updatePopup";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
@ -19,24 +19,33 @@ export default () => {
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
//获取收藏夹面料
|
//获取收藏夹面料
|
||||||
const [list, setList] = useState<any[]>([])
|
const {fetchData: fetchDataDetailFavoriteProduct} = DetailFavoriteProductApi()
|
||||||
const getFavoriteInfo = () => {
|
const [colorInfo, setColorInfo] = useState<any>({})
|
||||||
let arr:any[] = []
|
const getFavoriteInfo = async () => {
|
||||||
new Array(10).fill("").map((item, index) => {
|
let res = await fetchDataDetailFavoriteProduct(searchData)
|
||||||
arr.push({id:index, code: index})
|
if(res.success) {
|
||||||
})
|
setColorInfo(res.data)
|
||||||
setList(arr)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取搜索数据
|
//获取搜索数据
|
||||||
const [searchData, setSearchData] = useState('')
|
const [searchData, setSearchData] = useState({id:0, key: ''})
|
||||||
const onSearch = useCallback((e) => {
|
const onSearch = useCallback((e) => {
|
||||||
setSearchData(() => e)
|
setSearchData(() => e)
|
||||||
}, [])
|
}, [])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getFavoriteInfo()
|
let id = router.params.id || 0
|
||||||
|
if(id) setSearchData((e) => ({...e, id: parseInt(id as string)}))
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if(searchData.id) getFavoriteInfo()
|
||||||
}, [searchData])
|
}, [searchData])
|
||||||
|
|
||||||
|
const productList = useMemo(() => {
|
||||||
|
return colorInfo.product_color_list
|
||||||
|
}, [colorInfo])
|
||||||
|
|
||||||
|
|
||||||
//获取选中的id
|
//获取选中的id
|
||||||
const [ids, setIds] = useState<number[]>([])
|
const [ids, setIds] = useState<number[]>([])
|
||||||
@ -57,11 +66,11 @@ export default () => {
|
|||||||
|
|
||||||
const [selectStatus, setSelectStatus] = useState<1|2|3>(3)
|
const [selectStatus, setSelectStatus] = useState<1|2|3>(3)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(list.length) {
|
if(colorInfo.product_color_list?.length) {
|
||||||
if(ids.length == list.length) {
|
if(ids.length == colorInfo.product_color_list.length) {
|
||||||
setSelectStatus(1)
|
setSelectStatus(1)
|
||||||
setAllSelectStatus(true)
|
setAllSelectStatus(true)
|
||||||
} else if ( 0 < ids.length && ids.length < list.length){
|
} else if ( 0 < ids.length && ids.length < colorInfo.product_color_list.length){
|
||||||
setSelectStatus(2)
|
setSelectStatus(2)
|
||||||
setAllSelectStatus(false)
|
setAllSelectStatus(false)
|
||||||
} else {
|
} else {
|
||||||
@ -69,7 +78,7 @@ export default () => {
|
|||||||
setAllSelectStatus(false)
|
setAllSelectStatus(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [ids, list])
|
}, [ids, colorInfo])
|
||||||
|
|
||||||
|
|
||||||
const [collectionShow, setCollectionShow] = useState(false)
|
const [collectionShow, setCollectionShow] = useState(false)
|
||||||
@ -77,8 +86,25 @@ export default () => {
|
|||||||
setCollectionShow(false)
|
setCollectionShow(false)
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
const onAdd = () => {
|
//移动面料
|
||||||
|
const {fetchData: fetchDataMoveFavoriteProduct} = MoveFavoriteProductApi()
|
||||||
|
const onAdd = async () => {
|
||||||
|
let res = await fetchDataMoveFavoriteProduct({favorite_id: searchData.id, product_id:ids})
|
||||||
|
if(res.success) {
|
||||||
|
getFavoriteInfo()
|
||||||
|
alert.success('修改成功')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消收藏
|
||||||
|
const {fetchData: delFavoriteProductFetchData} = DelFavoriteProductApi()
|
||||||
|
const delCollectioin = async () => {
|
||||||
|
if(ids.length == 0) return alert.none('请选择要取消面料')
|
||||||
|
let res = await delFavoriteProductFetchData({favorite_id: searchData.id, product_id:ids})
|
||||||
|
if(res.success) {
|
||||||
|
getFavoriteInfo()
|
||||||
|
alert.none('已取消收藏')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -93,11 +119,11 @@ export default () => {
|
|||||||
</View>
|
</View>
|
||||||
<View className={styles.operation_check_right}>
|
<View className={styles.operation_check_right}>
|
||||||
<Text className={styles.operation_check_move} onClick={() => setCollectionShow(true)}>移动到</Text>
|
<Text className={styles.operation_check_move} onClick={() => setCollectionShow(true)}>移动到</Text>
|
||||||
<Text className={styles.operation_check_cancel}>取消收藏</Text>
|
<Text className={styles.operation_check_cancel} onClick={delCollectioin}>取消收藏</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.class_list}>
|
<View className={styles.class_list}>
|
||||||
<Product productList={list} onSelectIds={getSelectIds} selectStatus={selectStatus} openCheckBox={true}/>
|
<Product productList={productList} onSelectIds={getSelectIds} selectStatus={selectStatus} openCheckBox={true}/>
|
||||||
</View>
|
</View>
|
||||||
<AddCollection show={collectionShow} onAdd={onAdd} onClose={closeCollection}/>
|
<AddCollection show={collectionShow} onAdd={onAdd} onClose={closeCollection}/>
|
||||||
</View>
|
</View>
|
||||||
|
@ -13,12 +13,13 @@ type Params = {
|
|||||||
selectStatus?: 1|2|3, //1全选,2不做处理,3全清空
|
selectStatus?: 1|2|3, //1全选,2不做处理,3全清空
|
||||||
openCheckBox?: true|false //是否开启选择
|
openCheckBox?: true|false //是否开启选择
|
||||||
}
|
}
|
||||||
export default ({productList = [], onSelectIds, selectStatus = 2, openCheckBox = false}:Params) => {
|
export default ({productList, onSelectIds, selectStatus = 2, openCheckBox = false}:Params) => {
|
||||||
const [list, setList] = useState<any[]>([])
|
const [list, setList] = useState<any[]>([])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setList(() => [...productList])
|
setList(() => productList||[])
|
||||||
},[productList])
|
},[productList])
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(list.length && selectStatus != 2) {
|
if(list.length && selectStatus != 2) {
|
||||||
list.map(item => {
|
list.map(item => {
|
||||||
@ -51,7 +52,7 @@ export default ({productList = [], onSelectIds, selectStatus = 2, openCheckBox =
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let ids: number[] = []
|
let ids: number[] = []
|
||||||
list.map(item => {
|
list.map(item => {
|
||||||
if(item.check) ids.push(item.id)
|
if(item.check) ids.push(item.product_id)
|
||||||
})
|
})
|
||||||
onSelectIds?.(ids)
|
onSelectIds?.(ids)
|
||||||
}, [list])
|
}, [list])
|
||||||
|
@ -113,14 +113,16 @@ export default () => {
|
|||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.success('编辑成功')
|
alert.success('编辑成功')
|
||||||
getFavoriteList()
|
getFavoriteList()
|
||||||
|
closeUpdate()
|
||||||
} else {
|
} else {
|
||||||
alert.error('编辑失败')
|
alert.error('编辑失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const onBatchManagement = useCallback(() => {
|
const onBatchManagement = useCallback(() => {
|
||||||
// goLink('pages/collection/collectionClass/index', {id: })
|
goLink('/pages/collection/collectionClass/index', {id: initData.id})
|
||||||
}, [])
|
closeUpdate()
|
||||||
|
}, [initData])
|
||||||
|
|
||||||
//操作文件夹
|
//操作文件夹
|
||||||
const onCreatSuccess = (submitData) => {
|
const onCreatSuccess = (submitData) => {
|
||||||
|
@ -14,7 +14,7 @@ import SubmitOrderBtn from "./components/submitOrderBtn";
|
|||||||
import AddressInfoDetail from "./components/addressInfoDetail";
|
import AddressInfoDetail from "./components/addressInfoDetail";
|
||||||
import { SubscriptionMessageApi } from "@/api/user";
|
import { SubscriptionMessageApi } from "@/api/user";
|
||||||
import { SUBSCRIPTION_MESSAGE_SCENE } from "@/common/enum";
|
import { SUBSCRIPTION_MESSAGE_SCENE } from "@/common/enum";
|
||||||
import { UseSubscriptionMessage } from "@/use/useCommonData";
|
import { UseSubscriptionMessage } from "@/use/useCommon";
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import AddressList from "@/components/AddressList";
|
|||||||
import Popup from "@/components/popup";
|
import Popup from "@/components/popup";
|
||||||
import { Text, View } from "@tarojs/components"
|
import { Text, View } from "@tarojs/components"
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } from "react";
|
import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
|
|
||||||
export type AddressInfoParam = {
|
export type AddressInfoParam = {
|
||||||
@ -62,8 +62,6 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, orderInfo, stat
|
|||||||
}, [orderInfo])
|
}, [orderInfo])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//打开地址列表
|
//打开地址列表
|
||||||
const [showAddressList, setShowAddressList] = useState(false)
|
const [showAddressList, setShowAddressList] = useState(false)
|
||||||
const changeShow = () => {
|
const changeShow = () => {
|
||||||
@ -84,8 +82,9 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, orderInfo, stat
|
|||||||
if(limitEdit()) changeReceivingStatus(value)
|
if(limitEdit()) changeReceivingStatus(value)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeReceivingStatus = debounce(async (value) => {
|
const changeReceivingStatus = debounce(async (value) => {
|
||||||
if(!orderInfo) return false
|
if(!orderInfo || value == receivingStatus) return false
|
||||||
if(status == 1) {
|
if(status == 1) {
|
||||||
onChangeShipmentMode?.(value)
|
onChangeShipmentMode?.(value)
|
||||||
setReceivingStatus(value)
|
setReceivingStatus(value)
|
||||||
@ -142,9 +141,8 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, orderInfo, stat
|
|||||||
|
|
||||||
|
|
||||||
//根据订单状态判断是否显示物流
|
//根据订单状态判断是否显示物流
|
||||||
const logisticsShowList = [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value]
|
const logisticsShowList = [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value]
|
||||||
const logisticsShow = useMemo(() => {
|
const logisticsShow = useMemo(() => {
|
||||||
console.log('aa:',orderInfo?.status)
|
|
||||||
return logisticsShowList.includes(orderInfo?.status as number)
|
return logisticsShowList.includes(orderInfo?.status as number)
|
||||||
}, [orderInfo])
|
}, [orderInfo])
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import { memo, useEffect, useMemo, useRef, useState } from "react";
|
|||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useTimeCountDown } from "@/use/useCommonData";
|
import { useTimeCountDown } from "@/use/useCommon";
|
||||||
import { ORDER_STATUS, PAYMENT_METHOD, PAYMENT_METHOD_PARAM } from "@/common/enum";
|
import { ORDER_STATUS, PAYMENT_METHOD, PAYMENT_METHOD_PARAM } from "@/common/enum";
|
||||||
|
|
||||||
type List = {
|
type List = {
|
||||||
|
@ -23,12 +23,12 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(orderId) {
|
console.log('show&&orderId::', show)
|
||||||
|
if(show&&orderId) {
|
||||||
submitData.current.sale_order_id = orderId
|
submitData.current.sale_order_id = orderId
|
||||||
refundExplain()
|
refundExplain()
|
||||||
}
|
}
|
||||||
|
}, [orderId, show])
|
||||||
}, [orderId])
|
|
||||||
|
|
||||||
//申请退款
|
//申请退款
|
||||||
const {fetchData} = ApplyRefundApi()
|
const {fetchData} = ApplyRefundApi()
|
||||||
@ -48,7 +48,7 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
const {fetchData: refundExplainFetchdata} = RefundExplainApi()
|
const {fetchData: refundExplainFetchdata} = RefundExplainApi()
|
||||||
const refundExplain = async () => {
|
const refundExplain = async () => {
|
||||||
let res = await refundExplainFetchdata()
|
let res = await refundExplainFetchdata()
|
||||||
setList(res.data.list)
|
setList(() => res.data.list)
|
||||||
}
|
}
|
||||||
const [reason, setReason] = useState({id:0, name:''})
|
const [reason, setReason] = useState({id:0, name:''})
|
||||||
const reasonSelect = useCallback((e) => {
|
const reasonSelect = useCallback((e) => {
|
||||||
@ -87,7 +87,7 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Popup show={show} title="申请退款" onClose={onClose} >
|
<Popup show={show} title="申请退款33" onClose={onClose} >
|
||||||
<View className={styles.apply_after_sales_con}>
|
<View className={styles.apply_after_sales_con}>
|
||||||
<View className={styles.returnSaleInput_item}>
|
<View className={styles.returnSaleInput_item}>
|
||||||
<View className={styles.title}>退款说明</View>
|
<View className={styles.title}>退款说明</View>
|
||||||
|
@ -102,7 +102,7 @@ export default memo(({order, comfirm = false}:Param) => {
|
|||||||
return (item.value.includes(order.status)|| order.sale_mode == 1)
|
return (item.value.includes(order.status)|| order.sale_mode == 1)
|
||||||
} else if (item.id == 3) {
|
} else if (item.id == 3) {
|
||||||
//空差优惠只有大货才有
|
//空差优惠只有大货才有
|
||||||
return (item.value.includes(order.status) && order.sale_mode == 1 )
|
return (item.value.includes(order.status) && order.sale_mode == 0 )
|
||||||
} else {
|
} else {
|
||||||
return (item.value.includes(order.status) && order.sale_mode != 1 )
|
return (item.value.includes(order.status) && order.sale_mode != 1 )
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import { GetOrderPayApi, SubmitOrderPayApi, GetPrepayOrderPayApi, SubmitPrepayOr
|
|||||||
import { formatPriceDiv } from "@/common/fotmat";
|
import { formatPriceDiv } from "@/common/fotmat";
|
||||||
import {alert} from "@/common/common"
|
import {alert} from "@/common/common"
|
||||||
import { ORDER_STATUS, PAYMENT_METHOD, PAYMENT_METHOD_PARAM, SUBSCRIPTION_MESSAGE_SCENE } from "@/common/enum";
|
import { ORDER_STATUS, PAYMENT_METHOD, PAYMENT_METHOD_PARAM, SUBSCRIPTION_MESSAGE_SCENE } from "@/common/enum";
|
||||||
import { UseSubscriptionMessage } from "@/use/useCommonData";
|
import { UseSubscriptionMessage } from "@/use/useCommon";
|
||||||
|
|
||||||
type Param = {
|
type Param = {
|
||||||
show?: true|false,
|
show?: true|false,
|
||||||
|
@ -242,13 +242,16 @@ import styles from './index.module.scss'
|
|||||||
|
|
||||||
//查看物流
|
//查看物流
|
||||||
const getLogistics = useCallback(() => {
|
const getLogistics = useCallback(() => {
|
||||||
const list = orderDetail?.delivery_appendix_url.map(item => {
|
if (orderDetail?.delivery_appendix_url) {
|
||||||
|
const list = orderDetail?.delivery_appendix_url?.map(item => {
|
||||||
return formatImgUrl(item)
|
return formatImgUrl(item)
|
||||||
})
|
})
|
||||||
Taro.previewImage({
|
Taro.previewImage({
|
||||||
current: list[0], // 当前显示
|
current: list[0], // 当前显示
|
||||||
urls: list // 需要预览的图片http链接列表
|
urls: list // 需要预览的图片http链接列表
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}, [orderDetail])
|
}, [orderDetail])
|
||||||
|
|
||||||
//添加购物车
|
//添加购物车
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
|
|
||||||
.apply_after_sales_con{
|
|
||||||
padding: 20px;
|
|
||||||
.returnSaleInput_item{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding-bottom: 50px;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
.title{
|
|
||||||
font-size: $font_size;
|
|
||||||
font-weight: 700;
|
|
||||||
width: 119px;
|
|
||||||
}
|
|
||||||
.select{
|
|
||||||
flex:1;
|
|
||||||
height: 60px;
|
|
||||||
border: 2px solid #e6e6e6;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-left: 20px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 0 20px;
|
|
||||||
font-size: 26px;
|
|
||||||
color: $color_font_two;
|
|
||||||
.miconfont{
|
|
||||||
font-size: 30px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.upload_image{
|
|
||||||
flex:1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.btns_con{
|
|
||||||
width: 100%;
|
|
||||||
bottom:0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin-top: 50px;
|
|
||||||
.btns_two{
|
|
||||||
display: flex;
|
|
||||||
height: 82px;
|
|
||||||
// border: 1PX solid #007aff;
|
|
||||||
font-size: $font_size_big;
|
|
||||||
border-radius: 40px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
.rest_btn{
|
|
||||||
flex:1;
|
|
||||||
border: 1PX solid #007aff;
|
|
||||||
border-radius: 40px 0 0 40px;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 82px;
|
|
||||||
color: $color_main;
|
|
||||||
background-color: #fff;
|
|
||||||
|
|
||||||
}
|
|
||||||
.verify_btn{
|
|
||||||
flex:1;
|
|
||||||
border-radius: 0 40px 40px 0;
|
|
||||||
background: #007aff;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 82px;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
import Popup from "@/components/popup";
|
|
||||||
import TextareaEnhance from "@/components/textareaEnhance";
|
|
||||||
import { ScrollView, Text, View } from "@tarojs/components";
|
|
||||||
import { memo, useCallback, useEffect, useRef, useState } from "react";
|
|
||||||
import styles from './index.module.scss'
|
|
||||||
import classnames from "classnames";
|
|
||||||
import { ApplyRefundApi } from "@/api/salesAfterOrder";
|
|
||||||
import { alert } from "@/common/common";
|
|
||||||
import ReasonPopup from "@/pages/order/components/reasonPopup";
|
|
||||||
|
|
||||||
type Param = {
|
|
||||||
show?: true|false,
|
|
||||||
onClose?: () => void,
|
|
||||||
orderId?: number
|
|
||||||
}
|
|
||||||
export default memo(({show, onClose, orderId}:Param) => {
|
|
||||||
|
|
||||||
//提交的数据
|
|
||||||
const submitData = useRef({
|
|
||||||
return_explain: 1,
|
|
||||||
sale_order_id: 0,
|
|
||||||
reason_describe: ''
|
|
||||||
})
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if(orderId)
|
|
||||||
submitData.current.sale_order_id = orderId
|
|
||||||
}, [orderId])
|
|
||||||
|
|
||||||
//申请退款
|
|
||||||
const {fetchData} = ApplyRefundApi()
|
|
||||||
const getApplyRefund = async () => {
|
|
||||||
let res = await fetchData(submitData.current)
|
|
||||||
if(!submitData.current.return_explain) return alert.error('请选择说明原因')
|
|
||||||
if(res.success) {
|
|
||||||
alert.error('申请成功')
|
|
||||||
} else {
|
|
||||||
alert.error('申请失败')
|
|
||||||
}
|
|
||||||
onClose?.()
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取说明数据
|
|
||||||
const [list, setList] = useState<any[]>([])
|
|
||||||
|
|
||||||
|
|
||||||
//备注
|
|
||||||
const getOtherReason = useCallback((val) => {
|
|
||||||
submitData.current.reason_describe = val
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
|
|
||||||
//显示说明
|
|
||||||
const [showReason, setShowReason] = useState(false)
|
|
||||||
const closeReason = useCallback(() => {
|
|
||||||
setShowReason(false)
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
|
|
||||||
//提交
|
|
||||||
const onSubmit = (val) => {
|
|
||||||
if(val == 2) {
|
|
||||||
getApplyRefund()
|
|
||||||
} else {
|
|
||||||
onClose?.()
|
|
||||||
submitData.current = {
|
|
||||||
return_explain: 0,
|
|
||||||
sale_order_id: 0,
|
|
||||||
reason_describe: ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<Popup show={show} title="申请退款" onClose={onClose} >
|
|
||||||
<View className={styles.apply_after_sales_con}>
|
|
||||||
<View className={styles.returnSaleInput_item}>
|
|
||||||
<View className={styles.title}>退款说明</View>
|
|
||||||
<View className={styles.select} onClick={() => setShowReason(true)}>
|
|
||||||
<Text>请选择</Text>
|
|
||||||
<Text className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></Text>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
<TextareaEnhance onChange={getOtherReason} title='备注' placeholder="请输入退款备注"/>
|
|
||||||
<View className={styles.btns_con}>
|
|
||||||
<View className={styles.btns_two}>
|
|
||||||
<View className={styles.rest_btn} onClick={() => onSubmit(1)}>取消</View>
|
|
||||||
<View className={styles.verify_btn } onClick={() => onSubmit(2)}>确认</View>
|
|
||||||
</View >
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</Popup>
|
|
||||||
<ReasonPopup show={showReason} onClose={closeReason} list={list} title="退款说明"/>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
})
|
|
@ -12,9 +12,9 @@ import OrderStatusList from "./components/orderStatusList"
|
|||||||
import Payment from "../order/components/payment"
|
import Payment from "../order/components/payment"
|
||||||
import { AddShoppingCartApi } from "@/api/shopCart"
|
import { AddShoppingCartApi } from "@/api/shopCart"
|
||||||
import ShopCart from "@/components/shopCart"
|
import ShopCart from "@/components/shopCart"
|
||||||
import ApplyRefund from "./components/applyRefund"
|
|
||||||
import { alert } from "@/common/common"
|
import { alert } from "@/common/common"
|
||||||
import { useRouter } from "@tarojs/runtime"
|
import { useRouter } from "@tarojs/runtime"
|
||||||
|
import ApplyRefund from "../order/components/applyRefund"
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const {checkLogin} = useLogin()
|
const {checkLogin} = useLogin()
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
//公共数据,什么都可往里面传,可用于临时传参
|
//公共数据,什么都可往里面传,可用于临时传参
|
||||||
import Taro from '@tarojs/taro'
|
import Taro from '@tarojs/taro'
|
||||||
import {
|
import {
|
||||||
SET_COMMON,
|
SET_SHOPCOUNT,
|
||||||
CLEAR_COMMON
|
CLEAR_SHOPCOUNT
|
||||||
} from '../constants/common'
|
} from '../constants/common'
|
||||||
|
|
||||||
export type DataParam = {
|
export type DataParam = {
|
||||||
common: any
|
shopCount: number
|
||||||
}
|
}
|
||||||
|
|
||||||
type Action = {
|
type Action = {
|
||||||
@ -17,18 +17,18 @@ type Action = {
|
|||||||
|
|
||||||
|
|
||||||
const INIT = {
|
const INIT = {
|
||||||
common: Taro.getStorageSync('common')?JSON.parse(Taro.getStorageSync('common')):null,
|
shopCount: Taro.getStorageSync('shopCount')?JSON.parse(Taro.getStorageSync('shopCount')):null,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function counter (state = INIT, action: Action) {
|
export default function counter (state = INIT, action: Action) {
|
||||||
const {type, data} = action
|
const {type, data} = action
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SET_COMMON:
|
case SET_SHOPCOUNT:
|
||||||
Taro.setStorageSync('common',JSON.stringify(data))
|
Taro.setStorageSync('shopCount',JSON.stringify(data))
|
||||||
return {...state,...data}
|
return {...state,...data}
|
||||||
case CLEAR_COMMON:
|
case CLEAR_SHOPCOUNT:
|
||||||
Taro.removeStorageSync('common')
|
Taro.removeStorageSync('shopCount')
|
||||||
return {...state, common: null}
|
return {...state, shopCount: null}
|
||||||
default:
|
default:
|
||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
92
src/use/useCommon.ts
Normal file
92
src/use/useCommon.ts
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
import { SubscriptionMessageApi } from "@/api/user"
|
||||||
|
import Taro from "@tarojs/taro"
|
||||||
|
import dayjs from "dayjs"
|
||||||
|
import { useEffect, useRef, useState } from "react"
|
||||||
|
|
||||||
|
//倒计时hook
|
||||||
|
export const useTimeCountDown = () => {
|
||||||
|
const [showTime, setShowTime] = useState({
|
||||||
|
DD: '',
|
||||||
|
HH: '',
|
||||||
|
MM: '',
|
||||||
|
SS: ''
|
||||||
|
})
|
||||||
|
const [timeStatus, setTimeStatus] = useState<0|1|2>(0) //倒计时状体 0:倒计时未开始 1:倒计时中, 2:倒计时已结束
|
||||||
|
const timeObj:any = useRef()
|
||||||
|
const endTime = useRef('')
|
||||||
|
const onStart = (val = '') => {
|
||||||
|
console.log('time:::', val)
|
||||||
|
endTime.current = val
|
||||||
|
if(endTime.current) {
|
||||||
|
clearInterval(timeObj.current)
|
||||||
|
timeObj.current = setInterval(() => {
|
||||||
|
count_down()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
return () => {
|
||||||
|
clearInterval(timeObj.current)
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
const count_down = () => {
|
||||||
|
var startData = dayjs();
|
||||||
|
var endDate = dayjs(endTime.current);
|
||||||
|
setTimeStatus(() => 1)
|
||||||
|
if(startData >= endDate) {
|
||||||
|
clearInterval(timeObj.current)
|
||||||
|
setShowTime((e) => ({...e, DD:'00', HH:'00', MM:'00', SS:'00'}))
|
||||||
|
setTimeStatus(() => 2)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
var _dd = endDate.diff(startData,'day');
|
||||||
|
var _hh = endDate.diff(startData,'hour');
|
||||||
|
var _mm = endDate.diff(startData,'minute');
|
||||||
|
var _ss = endDate.diff(startData,'second');
|
||||||
|
// 转换
|
||||||
|
var hh = _hh - (_dd*24);
|
||||||
|
var mm = _mm - (_hh*60);
|
||||||
|
var ss = _ss - (_mm*60);
|
||||||
|
// 格式化
|
||||||
|
var DD = ('00'+_dd).slice(-2);
|
||||||
|
var HH = ('00'+hh).slice(-2);
|
||||||
|
var MM = ('00'+mm).slice(-2);
|
||||||
|
var SS = ('00'+ss).slice(-2);
|
||||||
|
console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
|
||||||
|
setShowTime((e) => ({...e, DD, HH, MM, SS}))
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
showTime,
|
||||||
|
onStart,
|
||||||
|
timeStatus
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//订阅消息hook
|
||||||
|
export const UseSubscriptionMessage = () => {
|
||||||
|
const {fetchData: fetchDataMessage} = SubscriptionMessageApi()
|
||||||
|
const openSubscriptionMessage = ({orderId = 0, scenes = 0}:{orderId?: number, scenes: number}) => {
|
||||||
|
return new Promise(async (resolve) => {
|
||||||
|
let params:{sale_order_id?: number, scenes?: number} = {}
|
||||||
|
orderId&&(params.sale_order_id = orderId)
|
||||||
|
params.scenes = scenes
|
||||||
|
let res = await fetchDataMessage(params)
|
||||||
|
if(res.success&&res.data.TemplateID&&res.data.TemplateID.length > 0) {
|
||||||
|
Taro.requestSubscribeMessage({
|
||||||
|
tmplIds: res.data.TemplateID,
|
||||||
|
complete: function (res) {
|
||||||
|
resolve(res)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
resolve(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
openSubscriptionMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,92 +1,51 @@
|
|||||||
import { SubscriptionMessageApi } from "@/api/user"
|
import { useDispatch, useSelector } from 'react-redux'
|
||||||
import Taro from "@tarojs/taro"
|
import {SET_SHOPCOUNT, CLEAR_SHOPCOUNT} from '@/constants/common'
|
||||||
import dayjs from "dayjs"
|
import {DataParam} from '@/reducers/commonData'
|
||||||
import { useEffect, useRef, useState } from "react"
|
export default () => {
|
||||||
|
const commonObj = useSelector((state:DataParam) => state) as DataParam
|
||||||
|
const dispatch = useDispatch()
|
||||||
|
|
||||||
//倒计时hook
|
// const setToken = (shopCount: number) => {
|
||||||
export const useTimeCountDown = () => {
|
// dispatch({type:SET_SHOPCOUNT, data:{shopCount}})
|
||||||
const [showTime, setShowTime] = useState({
|
// }
|
||||||
DD: '',
|
|
||||||
HH: '',
|
|
||||||
MM: '',
|
|
||||||
SS: ''
|
|
||||||
})
|
|
||||||
const [timeStatus, setTimeStatus] = useState<0|1|2>(0) //倒计时状体 0:倒计时未开始 1:倒计时中, 2:倒计时已结束
|
|
||||||
const timeObj:any = useRef()
|
|
||||||
const endTime = useRef('')
|
|
||||||
const onStart = (val = '') => {
|
|
||||||
console.log('time:::', val)
|
|
||||||
endTime.current = val
|
|
||||||
if(endTime.current) {
|
|
||||||
clearInterval(timeObj.current)
|
|
||||||
timeObj.current = setInterval(() => {
|
|
||||||
count_down()
|
|
||||||
}, 1000)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
useEffect(() => {
|
|
||||||
return () => {
|
|
||||||
clearInterval(timeObj.current)
|
|
||||||
}
|
|
||||||
}, [])
|
|
||||||
const count_down = () => {
|
|
||||||
var startData = dayjs();
|
|
||||||
var endDate = dayjs(endTime.current);
|
|
||||||
setTimeStatus(() => 1)
|
|
||||||
if(startData >= endDate) {
|
|
||||||
clearInterval(timeObj.current)
|
|
||||||
setShowTime((e) => ({...e, DD:'00', HH:'00', MM:'00', SS:'00'}))
|
|
||||||
setTimeStatus(() => 2)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
var _dd = endDate.diff(startData,'day');
|
|
||||||
var _hh = endDate.diff(startData,'hour');
|
|
||||||
var _mm = endDate.diff(startData,'minute');
|
|
||||||
var _ss = endDate.diff(startData,'second');
|
|
||||||
// 转换
|
|
||||||
var hh = _hh - (_dd*24);
|
|
||||||
var mm = _mm - (_hh*60);
|
|
||||||
var ss = _ss - (_mm*60);
|
|
||||||
// 格式化
|
|
||||||
var DD = ('00'+_dd).slice(-2);
|
|
||||||
var HH = ('00'+hh).slice(-2);
|
|
||||||
var MM = ('00'+mm).slice(-2);
|
|
||||||
var SS = ('00'+ss).slice(-2);
|
|
||||||
console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
|
|
||||||
setShowTime((e) => ({...e, DD, HH, MM, SS}))
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
showTime,
|
|
||||||
onStart,
|
|
||||||
timeStatus
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// const setSessionKey = (sessionkey: string) => {
|
||||||
|
// dispatch({type:SET_SESSIONKEY, data:{session_key: sessionkey}})
|
||||||
|
// }
|
||||||
|
|
||||||
//订阅消息hook
|
// const setUserInfo = (userInfo: UserParam) => {
|
||||||
export const UseSubscriptionMessage = () => {
|
// dispatch({type:SET_USERINFO, data:{userInfo}})
|
||||||
const {fetchData: fetchDataMessage} = SubscriptionMessageApi()
|
// }
|
||||||
const openSubscriptionMessage = ({orderId = 0, scenes = 0}:{orderId?: number, scenes: number}) => {
|
|
||||||
return new Promise(async (resolve) => {
|
|
||||||
let params:{sale_order_id?: number, scenes?: number} = {}
|
|
||||||
orderId&&(params.sale_order_id = orderId)
|
|
||||||
params.scenes = scenes
|
|
||||||
let res = await fetchDataMessage(params)
|
|
||||||
if(res.success&&res.data.TemplateID&&res.data.TemplateID.length > 0) {
|
|
||||||
Taro.requestSubscribeMessage({
|
|
||||||
tmplIds: res.data.TemplateID,
|
|
||||||
complete: function (res) {
|
|
||||||
resolve(res)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
resolve(true)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
// const setAdminUserInfo = (adminUserInfo: UserAdminParam) => {
|
||||||
openSubscriptionMessage
|
// dispatch({type:SET_ADMINUSERINFO, data:{adminUserInfo}})
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
// const setSortCode = (sortCode:SortCodeParam) => {
|
||||||
|
// dispatch({type:SET_SORTCODE, data:{sort_code:sortCode}})
|
||||||
|
// }
|
||||||
|
|
||||||
|
// const removeUserInfo = () => {
|
||||||
|
// dispatch({type:CLEAR_USERINFO})
|
||||||
|
// }
|
||||||
|
|
||||||
|
// const removeToken = () => {
|
||||||
|
// dispatch({type:CLEAR_TOKEN})
|
||||||
|
// }
|
||||||
|
|
||||||
|
// const removeSessionKey = () => {
|
||||||
|
// dispatch({type:CLEAR_SESSIONKEY})
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return {
|
||||||
|
// setToken,
|
||||||
|
// setUserInfo,
|
||||||
|
// setAdminUserInfo,
|
||||||
|
// setSessionKey,
|
||||||
|
// removeUserInfo,
|
||||||
|
// removeToken,
|
||||||
|
// removeSessionKey,
|
||||||
|
// setSortCode,
|
||||||
|
// userInfo, //响应式数据返回
|
||||||
|
// }
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user