Merge branch 'dev' of ssh://git.online.zzfzyc.com:10022/mp/spider_cloud_warehouse into 订单页
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { usePropsValue } from '@/use/useCommon'
|
||||
import { View } from '@tarojs/components'
|
||||
import classnames from 'classnames'
|
||||
import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'
|
||||
import React, { forwardRef, SetStateAction, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'
|
||||
import IconFont from '../iconfont/iconfont'
|
||||
import styles from './index.module.scss'
|
||||
|
||||
@@ -37,7 +38,25 @@ export default forwardRef((props: params, ref) => {
|
||||
customTextClass = '',
|
||||
hiddenCheckboxIcon = false,
|
||||
} = props
|
||||
const [selected, SetSelected] = useState(false)
|
||||
console.log('Rerender component: checkbox', status)
|
||||
const [selected, setSelected] = usePropsValue({
|
||||
value: status,
|
||||
defaultValue: false
|
||||
})
|
||||
// const selectedRef = useRef(status)
|
||||
// if (status !== undefined){
|
||||
// selectedRef.current = status
|
||||
// }
|
||||
// const [, setForceUpdate] = useState({})
|
||||
// const setSelected = useCallback((v: SetStateAction<boolean>) => {
|
||||
// const nextValue = typeof v === 'function' ? (v as (prevValue: boolean) => boolean)(selectedRef.current) : v
|
||||
// console.log('对比',nextValue, selectedRef.current)
|
||||
// if (nextValue === selectedRef.current) return
|
||||
// selectedRef.current = nextValue
|
||||
// console.log('强制刷新', nextValue, selectedRef.current)
|
||||
// setForceUpdate({})
|
||||
// }, [])
|
||||
|
||||
const onSelectEven = () => {
|
||||
if (disabled) return false
|
||||
let res = !selected
|
||||
@@ -46,11 +65,12 @@ export default forwardRef((props: params, ref) => {
|
||||
} else {
|
||||
onClose?.()
|
||||
}
|
||||
SetSelected(res)
|
||||
console.log('res', res)
|
||||
setSelected(res)
|
||||
}
|
||||
|
||||
const handleClickChildren = (event) => {
|
||||
if (!triggerLabel){
|
||||
const handleClickChildren = event => {
|
||||
if (!triggerLabel) {
|
||||
return event.stopPropagation()
|
||||
}
|
||||
}
|
||||
@@ -76,9 +96,9 @@ export default forwardRef((props: params, ref) => {
|
||||
useImperativeHandle(ref, () => ({
|
||||
onSelectEven,
|
||||
}))
|
||||
useEffect(() => {
|
||||
SetSelected(status)
|
||||
}, [status])
|
||||
// useEffect(() => {
|
||||
// setSelected(status)
|
||||
// }, [status])
|
||||
return (
|
||||
<View className={classnames(customClassName, styles.checkbox)} style={customStyles} onClick={onSelectEven}>
|
||||
{!hiddenCheckboxIcon && (
|
||||
|
||||
@@ -15,6 +15,7 @@ type params = {
|
||||
disable?: boolean, //是否禁用
|
||||
}
|
||||
export default ({minNum = 0, maxNum = 10000, step=1, digits = 0, defaultNum = 0, onChange, onBlue, onClickBtn, unit = '', disable = false}: params) => {
|
||||
console.log('Rerender component: Counter');
|
||||
const [value, setValue] = useState<any>({count:defaultNum})
|
||||
|
||||
const onPlus = (event) => {
|
||||
@@ -65,22 +66,26 @@ export default ({minNum = 0, maxNum = 10000, step=1, digits = 0, defaultNum = 0,
|
||||
if(res === '') {
|
||||
setValue({...value, count:minNum})
|
||||
onChange?.(minNum)
|
||||
return minNum
|
||||
}
|
||||
else if(!isNaN(Number(res))) {
|
||||
let count = formatDigits(res)
|
||||
count = checkData(count)
|
||||
setValue({...value, count})
|
||||
onChange?.(parseFloat(count as string))
|
||||
return count
|
||||
} else {
|
||||
let num = parseFloat(res)
|
||||
if(!isNaN(num)) {
|
||||
let count = formatDigits(num)
|
||||
count = checkData(count)
|
||||
setValue({...value, count})
|
||||
onChange?.(count as number)
|
||||
if (!isNaN(num)) {
|
||||
let count = formatDigits(num)
|
||||
count = checkData(count)
|
||||
setValue({ ...value, count })
|
||||
onChange?.(count as number)
|
||||
return count
|
||||
} else {
|
||||
setValue({...value, count:defaultNum})
|
||||
onChange?.(defaultNum)
|
||||
setValue({ ...value, count: defaultNum })
|
||||
onChange?.(defaultNum)
|
||||
return defaultNum
|
||||
}
|
||||
|
||||
}
|
||||
@@ -88,14 +93,16 @@ export default ({minNum = 0, maxNum = 10000, step=1, digits = 0, defaultNum = 0,
|
||||
|
||||
const onBluerEven = () => {
|
||||
let num = parseFloat(value.count)
|
||||
if(!isNaN(num)) {
|
||||
let count = formatDigits(num)
|
||||
count = checkData(count)
|
||||
setValue({...value, count})
|
||||
onBlue?.(count as number)
|
||||
if (!isNaN(num)) {
|
||||
let count = formatDigits(num)
|
||||
count = checkData(count)
|
||||
setValue({ ...value, count })
|
||||
onBlue?.(count as number)
|
||||
return count
|
||||
} else {
|
||||
setValue({...value, count:defaultNum})
|
||||
onBlue?.(defaultNum)
|
||||
setValue({ ...value, count: defaultNum })
|
||||
onBlue?.(defaultNum)
|
||||
return defaultNum
|
||||
}
|
||||
}
|
||||
const noop = (e) => {
|
||||
|
||||
Reference in New Issue
Block a user