🎈 perf(优化):

This commit is contained in:
czm 2022-12-01 20:53:38 +08:00
parent d973905bbe
commit 461744054e
11 changed files with 120 additions and 79 deletions

View File

@ -22,7 +22,7 @@ module.exports = {
terserOptions: { terserOptions: {
// compress: true, // 默认使用terser压缩 // compress: true, // 默认使用terser压缩
compress: { compress: {
drop_console: true, // 去掉打印 // drop_console: true, // 去掉打印
}, // 默认使用terser压缩 }, // 默认使用terser压缩
// mangle: false, // mangle: false,
keep_classnames: true, // 不改变class名称 keep_classnames: true, // 不改变class名称

View File

@ -13,7 +13,7 @@ export const BASE_URL = CURRENT_BASE_URL
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境 // export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
// export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞 // export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞
// export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添 // export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
// export const BASE_URL = `http://192.168.1.22:50002/lymarket` // 婷 // export const BASE_URL = `http://192.168.1.28:50002/lymarket` // 婷
// export const BASE_URL = `http://192.168.1.42:50002/lymarket` // 杰 // export const BASE_URL = `http://192.168.1.42:50002/lymarket` // 杰
// CDN // CDN

View File

@ -1,4 +1,3 @@
//订单状态枚举 //订单状态枚举
export const ORDER_STATUS = { export const ORDER_STATUS = {
SaleorderstatusWaitingPrePayment: { value: 10, label: '预付款' }, // 预付款 SaleorderstatusWaitingPrePayment: { value: 10, label: '预付款' }, // 预付款
@ -36,13 +35,13 @@ export const PAYMENT_METHOD = {
PaymentMethodCashOnDelivery: { value: 5, label: '货到付款' }, PaymentMethodCashOnDelivery: { value: 5, label: '货到付款' },
} }
//订单类型 //订单类型
export const SALE_MODE = { export const SALE_MODE = {
SaLeModeBulk: { value: 0, label: '大货' }, SaLeModeBulk: { value: 0, label: '大货' },
SaleModeLengthCut: { value: 1, label: '剪版' }, SaleModeLengthCut: { value: 1, label: '剪版' },
SaLeModeWeightCut: { value: 2, label: '散剪' }, SaLeModeWeightCut: { value: 2, label: '散剪' },
} }
export type saleModeType = 0 | 1 | 2
//分享场景枚举 //分享场景枚举
export const SHARE_SCENE = { export const SHARE_SCENE = {
@ -54,7 +53,7 @@ export const SHARE_SCENE = {
export const SUBSCRIPTION_MESSAGE_SCENE = { export const SUBSCRIPTION_MESSAGE_SCENE = {
SubmitOrder: { value: 1, label: '确认下单' }, SubmitOrder: { value: 1, label: '确认下单' },
ToPay: { value: 2, label: '去付款' }, ToPay: { value: 2, label: '去付款' },
ApplyGoods: {value:3, label: '申请退款'} ApplyGoods: { value: 3, label: '申请退款' },
} }
//应收单退款状态枚举 //应收单退款状态枚举

View File

@ -13,13 +13,26 @@ type params = {
onClickBtn?: (val: number) => void onClickBtn?: (val: number) => void
unit?: string unit?: string
disabled?: true | false //是否禁用 disabled?: true | false //是否禁用
returnZero?: true | false //少于最小值时是否归0
} }
export default memo((props: params) => { export default memo((props: params) => {
return <Counter {...props}></Counter> return <Counter {...props}></Counter>
}) })
const Counter = memo((props: params) => { const Counter = memo((props: params) => {
let { minNum = 0, maxNum = 10000, step = 1, digits = 0, defaultNum = 0, onChange, onBlue, onClickBtn, unit = '', disabled = false } = props let {
minNum = 0,
maxNum = 10000,
step = 1,
digits = 0,
defaultNum = 0,
onChange,
onBlue,
onClickBtn,
returnZero = false,
unit = '',
disabled = false,
} = props
const [value, setValue] = useState<any>({ count: defaultNum }) const [value, setValue] = useState<any>({ count: defaultNum })
useEffect(() => { useEffect(() => {
setValue({ count: defaultNum }) setValue({ count: defaultNum })
@ -38,7 +51,11 @@ const Counter = memo((props: params) => {
if (disabled) return false if (disabled) return false
let count = value.count let count = value.count
let num_res = Big(count).minus(step).toNumber() let num_res = Big(count).minus(step).toNumber()
if (returnZero) {
num_res = num_res < minNum ? 0 : num_res
} else {
num_res = num_res < minNum ? minNum : num_res num_res = num_res < minNum ? minNum : num_res
}
setValue({ ...value, count: num_res }) setValue({ ...value, count: num_res })
onChange?.(parseFloat(num_res)) onChange?.(parseFloat(num_res))
onClickBtn?.(parseFloat(num_res)) onClickBtn?.(parseFloat(num_res))

View File

@ -303,6 +303,11 @@ export default ({ show = false, onClose, intoStatus = 'shop', default_sale_mode
setShowLabImage(() => false) setShowLabImage(() => false)
}, []) }, [])
const goShop = useCallback(() => {
onClose?.()
goLink('/pages/index/index', null, 'switchTab')
}, [])
return ( return (
<View className={styles.shop_cart_main}> <View className={styles.shop_cart_main}>
<Popup showTitle={false} show={showPopup} onClose={() => closePopup()}> <Popup showTitle={false} show={showPopup} onClose={() => closePopup()}>
@ -341,7 +346,7 @@ export default ({ show = false, onClose, intoStatus = 'shop', default_sale_mode
{!loading && listData?.length == 0 && ( {!loading && listData?.length == 0 && (
<View className={styles.empty}> <View className={styles.empty}>
<View className={styles.title}></View> <View className={styles.title}></View>
<View className={styles.btn} onClick={() => goLink('/pages/index/index', null, 'switchTab')}> <View className={styles.btn} onClick={goShop}>
</View> </View>
</View> </View>

View File

@ -55,7 +55,8 @@ export default () => {
const onScanCode = () => { const onScanCode = () => {
Taro.scanCode({ Taro.scanCode({
success: (res) => { success: (res) => {
setSubmitData(() => ({ invitation_code: res.result })) let val = res.result.match(/InviteCode:([a-zA-Z0-9]{4})/)
setSubmitData(() => ({ invitation_code: val ? val![1] : '' }))
}, },
}) })
} }

View File

@ -31,7 +31,19 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param
const [selectList, _] = useState([ const [selectList, _] = useState([
{ id: 0, step: 1, digits: 0, maxNum: 100000, defaultNum: 1, title: '大货', unit: '条', eunit: 'kg', priceField: 'bulk_price' }, { id: 0, step: 1, digits: 0, maxNum: 100000, defaultNum: 1, title: '大货', unit: '条', eunit: 'kg', priceField: 'bulk_price' },
{ id: 1, step: 1, digits: 2, maxNum: 9.99, defaultNum: 1, title: '剪板', unit: '米', eunit: 'm', priceField: 'length_cut_price' }, { id: 1, step: 1, digits: 2, maxNum: 9.99, defaultNum: 1, title: '剪板', unit: '米', eunit: 'm', priceField: 'length_cut_price' },
{ id: 2, step: 1, digits: 2, minNum: 3, maxNum: 100000, defaultNum: 3, title: '散剪', unit: '米', eunit: 'kg', priceField: 'weight_cut_price' }, {
id: 2,
step: 1,
digits: 2,
minNum: 3,
maxNum: 100000,
defaultNum: 3,
returnZero: true,
title: '散剪',
unit: '米',
eunit: 'kg',
priceField: 'weight_cut_price',
},
]) ])
const [selectIndex, setSelectIndex] = useState(0) const [selectIndex, setSelectIndex] = useState(0)
const selectProduct = (index: number) => { const selectProduct = (index: number) => {
@ -246,6 +258,7 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param
unit={selectList[selectIndex].unit} unit={selectList[selectIndex].unit}
minNum={selectList[selectIndex].minNum} minNum={selectList[selectIndex].minNum}
maxNum={selectList[selectIndex].maxNum} maxNum={selectList[selectIndex].maxNum}
returnZero={selectList[selectIndex].returnZero}
/> />
</View> </View>
)} )}

View File

@ -5,17 +5,15 @@ import classnames from 'classnames'
type Param = { type Param = {
list: { id: number; name: string }[] list: { id: number; name: string }[]
defaultId?: number | null defaultId?: number
onSelect?: (val: number) => void onSelect?: (val: number) => void
} }
export default memo(({ list = [], defaultId = null, onSelect }: Param) => { export default memo(({ list = [], defaultId = -1, onSelect }: Param) => {
const [selectInfo, setSelectInfo] = useState({ const [selectInfo, setSelectInfo] = useState({
selected: -1, //当前选中的id selected: -1, //当前选中的id
tabId: '', //需要滚动到的id tabId: '', //需要滚动到的id
}) })
useEffect(() => { useEffect(() => {
if (defaultId) {
console.log('defaultId:::', defaultId)
const index = list?.findIndex((item) => { const index = list?.findIndex((item) => {
return item.id == defaultId return item.id == defaultId
}) })
@ -23,8 +21,7 @@ export default memo(({ list = [], defaultId = null, onSelect }: Param) => {
const num = index > 0 ? index - 1 : 0 const num = index > 0 ? index - 1 : 0
setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString() })) setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString() }))
} }
} setSelectInfo((e) => ({ ...e, selected: defaultId }))
setSelectInfo((e) => ({ ...e, selected: defaultId || -1 }))
}, [defaultId]) }, [defaultId])
const clickEvent = ({ item, index }: { item: any; index: number }) => { const clickEvent = ({ item, index }: { item: any; index: number }) => {
const num = index > 0 ? index - 1 : 0 const num = index > 0 ? index - 1 : 0

View File

@ -1,7 +1,7 @@
import Search from '@/components/search' import Search from '@/components/search'
import useLogin from '@/use/useLogin' import useLogin from '@/use/useLogin'
import { View } from '@tarojs/components' import { View } from '@tarojs/components'
import Taro, { useDidShow, useRouter } from '@tarojs/taro' import Taro, { useDidHide, useDidShow, useRouter, useUnload } from '@tarojs/taro'
import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import styles from './index.module.scss' import styles from './index.module.scss'
import Order from './components/order' import Order from './components/order'
@ -30,7 +30,12 @@ export default () => {
} else { } else {
setSearchField((e) => ({ ...e, status: -1 })) setSearchField((e) => ({ ...e, status: -1 }))
} }
}, [router]) getOrderStatusList()
}, [])
useDidHide(() => {
setSearchField((e) => ({ ...e, status: -1 }))
})
//搜索参数 //搜索参数
const [searchField, setSearchField] = useState<{ status: number | null; page: number; size: number; name: string }>({ const [searchField, setSearchField] = useState<{ status: number | null; page: number; size: number; name: string }>({
@ -42,14 +47,11 @@ export default () => {
//获取订单状态 //获取订单状态
const { fetchData: orderStatusListFetchData } = OrderStatusListApi() const { fetchData: orderStatusListFetchData } = OrderStatusListApi()
const [statusList, setStatusList] = useState<any[]>([{ id: -1, name: '全部' }]) const [statusList, setStatusList] = useState<any[]>([])
const getOrderStatusList = async () => { const getOrderStatusList = async () => {
let res = await orderStatusListFetchData() let res = await orderStatusListFetchData()
setStatusList((e) => [...e, ...res.data.list]) setStatusList(() => [{ id: -1, name: '全部' }, ...res.data.list])
} }
useEffect(() => {
getOrderStatusList()
}, [])
//获取订单列表 //获取订单列表
const { fetchData: listFetchData, state: orderState } = GetOrderListApi() const { fetchData: listFetchData, state: orderState } = GetOrderListApi()
@ -139,10 +141,10 @@ export default () => {
setPayMentShow(() => false) setPayMentShow(() => false)
}, []) }, [])
//支付成功 //支付成功
const onPaySuccess = useCallback(() => { const onPaySuccess = () => {
getOrderList() getOrderList()
closePayShow() closePayShow()
}, []) }
//添加购物车 //添加购物车
const [showCart, setShowCart] = useState(false) const [showCart, setShowCart] = useState(false)
@ -200,7 +202,7 @@ export default () => {
<View className={styles.order_list_main}> <View className={styles.order_list_main}>
<View className={styles.title}> <View className={styles.title}>
<Search placeIcon='out' placeholder='搜索商品/名称/颜色/订单号' showBtn={true} changeOnSearch={getSearchData} debounceTime={300} /> <Search placeIcon='out' placeholder='搜索商品/名称/颜色/订单号' showBtn={true} changeOnSearch={getSearchData} debounceTime={300} />
<OrderStatusList list={statusList} onSelect={changeStatus} defaultId={router?.params.status as unknown as number} /> <OrderStatusList list={statusList} onSelect={changeStatus} defaultId={searchField.status as unknown as number} />
</View> </View>
<View className={styles.order_list}> <View className={styles.order_list}>
<InfiniteScroll <InfiniteScroll

View File

@ -34,14 +34,11 @@ type ListParam = {
} }
export default memo(({ show = true, onClose, orderInfo }: Param) => { export default memo(({ show = true, onClose, orderInfo }: Param) => {
const [detail, setDetail] = useState<any>() const [detail, setDetail] = useState<any>()
useEffect(() => { useEffect(() => {
console.log('detail:::', detail)
if (show && detail) { if (show && detail) {
getCore() getCore()
} }
}, [show, detail]) }, [show, detail])
const product_list = useMemo(() => { const product_list = useMemo(() => {
return orderInfo?.is_quality_check ? orderInfo?.quality_check_pass_product : orderInfo?.product_list return orderInfo?.is_quality_check ? orderInfo?.quality_check_pass_product : orderInfo?.product_list
}, [orderInfo]) }, [orderInfo])

View File

@ -34,6 +34,9 @@ type Param = {
accessory_url: string[] //物流图片 accessory_url: string[] //物流图片
take_goods_remark: string //物流备注 take_goods_remark: string //物流备注
quality_check_pass_product: any[] quality_check_pass_product: any[]
quality_check_pass_number: number
quality_check_pass_fabrics: number
quality_check_pass_colors: number
} }
onClickBtn?: (val: { status: number; orderInfo: Param['value'] }) => void onClickBtn?: (val: { status: number; orderInfo: Param['value'] }) => void
} }
@ -77,8 +80,15 @@ export default memo(({ value, onClickBtn }: Param) => {
} = REFUND_STATUS_ORDER } = REFUND_STATUS_ORDER
const numText = useMemo(() => { const numText = useMemo(() => {
if (!value?.is_quality_check) {
let total_number_new = value?.sale_mode == 0 ? value?.total_number : value?.total_number / 100 let total_number_new = value?.sale_mode == 0 ? value?.total_number : value?.total_number / 100
return `${value?.total_fabrics} 种面料,${value?.total_colors} 种颜色,共 ${total_number_new}${value?.sale_mode == 0 ? ' 条' : ' 米'}` return `${value?.total_fabrics} 种面料,${value?.total_colors} 种颜色,共 ${total_number_new}${value?.sale_mode == 0 ? ' 条' : ' 米'}`
} else {
let total_number_new = value?.sale_mode == 0 ? value?.quality_check_pass_number : value?.quality_check_pass_number / 100
return `${value?.quality_check_pass_fabrics} 种面料,${value?.quality_check_pass_colors} 种颜色,共 ${total_number_new}${
value?.sale_mode == 0 ? ' 条' : ' 米'
}`
}
}, [value]) }, [value])
//售后单状态 //售后单状态