🎈 perf(优化商城):
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Input, View } from '@tarojs/components'
|
||||
import { CustomWrapper, Input, View } from '@tarojs/components'
|
||||
import { memo, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import Big from 'big.js'
|
||||
import styles from './index.module.scss'
|
||||
@@ -109,7 +109,7 @@ const Counter = memo((props: params) => {
|
||||
-
|
||||
</View>
|
||||
<View className={styles.input}>
|
||||
<Input type='digit' value={String(value.count)} onInput={onInputEven} onBlur={onBluerEven} disabled={disabled} alwaysEmbed={true} cursorSpacing={150} />
|
||||
<Input type='digit' value={value.count} onInput={onInputEven} onBlur={onBluerEven} disabled={disabled} alwaysEmbed={true} cursorSpacing={150} />
|
||||
<View className={styles.unit}>{unit}</View>
|
||||
</View>
|
||||
<View className={styles.plus} onClick={() => onPlus()}>
|
||||
|
||||
@@ -60,8 +60,8 @@ export default memo((props: param) => {
|
||||
return sale_model != item.sale_mode
|
||||
}, [item])
|
||||
return (
|
||||
<View className={classnames(styles.product_item, model_status && styles.no_product_item_select)} onClick={clickProduct}>
|
||||
<View className={styles.checkbox} catchMove>
|
||||
<View className={classnames(styles.product_item, model_status && styles.no_product_item_select)}>
|
||||
<View className={styles.checkbox}>
|
||||
<MCheckbox status={item.selected} onSelect={selectCallBack} onClose={colseCallBack} disabled={model_status} />
|
||||
</View>
|
||||
<View className={styles.img}>
|
||||
|
||||
@@ -5,7 +5,7 @@ import MCheckbox from '@/components/checkbox'
|
||||
import LoadingCard from '@/components/loadingCard'
|
||||
import InfiniteScroll from '@/components/infiniteScroll'
|
||||
import styles from './index.module.scss'
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { useCallback, useEffect, useMemo, useRef, useState, useTransition } from 'react'
|
||||
import Taro from '@tarojs/taro'
|
||||
import { alert, goLink } from '@/common/common'
|
||||
import { GetShoppingCartApi, DelShoppingCartApi, UpdateShoppingCartApi } from '@/api/shopCart'
|
||||
@@ -45,22 +45,28 @@ export default ({ show = false, onClose, intoStatus = 'shop', default_sale_mode
|
||||
{ value: 2, title: '散剪', unit: '米', eunit: 'kg', step: 1, digits: 2, minNum: 3, maxNum: 100000, defaultNum: 3 },
|
||||
]
|
||||
|
||||
const [isPending, startTransition] = useTransition()
|
||||
|
||||
//切换面料类型
|
||||
const [selectIndex, setSelectIndex] = useState<saleModeType>(default_sale_mode || 0)
|
||||
const selectProduct = (index: 0 | 1 | 2) => {
|
||||
setSelectIndex(index)
|
||||
}
|
||||
useEffect(() => {
|
||||
setSelectIndex(() => default_sale_mode!)
|
||||
if (!isPending) {
|
||||
setSelectIndex(() => default_sale_mode!)
|
||||
}
|
||||
}, [default_sale_mode])
|
||||
|
||||
useEffect(() => {
|
||||
resetList()
|
||||
setSelectStatus(true)
|
||||
startTransition(() => {
|
||||
resetList()
|
||||
setSelectStatus(true)
|
||||
})
|
||||
}, [selectIndex])
|
||||
|
||||
//获取购物车数据数量
|
||||
const { setShopCount } = useCommonData()
|
||||
const { getShopCount } = useCommonData()
|
||||
|
||||
//获取所有数据数据
|
||||
const [list, setList] = useState<{ [id: number]: any }>({})
|
||||
@@ -193,6 +199,7 @@ export default ({ show = false, onClose, intoStatus = 'shop', default_sale_mode
|
||||
const res = await delShopFetchData({ id: selectIds.current })
|
||||
if (res.success) {
|
||||
getShoppingCart()
|
||||
getShopCount()
|
||||
Taro.showToast({
|
||||
title: '成功',
|
||||
icon: 'success',
|
||||
@@ -321,8 +328,8 @@ export default ({ show = false, onClose, intoStatus = 'shop', default_sale_mode
|
||||
})}
|
||||
</View>
|
||||
<View className={styles.con}>
|
||||
{loading && <LoadingCard />}
|
||||
{!loading && listData?.length > 0 && (
|
||||
{(loading || isPending) && <LoadingCard />}
|
||||
{!loading && !isPending && listData?.length > 0 && (
|
||||
<InfiniteScroll moreStatus={false}>
|
||||
<View className={styles.product_list}>
|
||||
{listData?.map((item) => {
|
||||
|
||||
Reference in New Issue
Block a user