🐞 fix(色卡): 修复偶然不能禁用复选按钮的问题

This commit is contained in:
xuan 2023-03-06 17:35:49 +08:00
parent 5d5b809942
commit bfec69d10e
3 changed files with 44 additions and 21 deletions

View File

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

View File

@ -82,9 +82,14 @@ const AddColorCard = () => {
} }
// 添加色卡 // 添加色卡
const handleAddColorCard = () => { const handleAddColorCard = () => {
Taro.setStorageSync('colorCardCache', JSON.stringify(order)) Taro.setStorage({
key: 'colorCardCache',
goLink('/pages/getColorCard/colorCardList/index', { isGoBack: true }) data: JSON.stringify(order),
success: () => {
goLink('/pages/getColorCard/colorCardList/index', { isGoBack: true })
},
})
// Taro.setStorageSync('colorCardCache', JSON.stringify(order))
} }
const { fetchData } = SubmitColorCardOrder() const { fetchData } = SubmitColorCardOrder()
@ -276,13 +281,13 @@ const AddColorCard = () => {
} }
setAddressInfo(val => ({ setAddressInfo(val => ({
...val, ...val,
province_name: defaultAddress.province_name || '', province_name: defaultAddress?.province_name || '',
address_id: defaultAddress.id || '', address_id: defaultAddress?.id || '',
city_name: defaultAddress.city_name || '', city_name: defaultAddress?.city_name || '',
address_detail: defaultAddress.address_detail || '', address_detail: defaultAddress?.address_detail || '',
district_name: defaultAddress.district_name || '', district_name: defaultAddress?.district_name || '',
target_user_name: defaultAddress.name || '', target_user_name: defaultAddress?.name || '',
purchaser_phone: defaultAddress.phone || '', purchaser_phone: defaultAddress?.phone || '',
})) }))
currPage.data.addressObj = defaultAddress currPage.data.addressObj = defaultAddress
} }

View File

@ -83,13 +83,31 @@ const ColorCardList = () => {
const selectedList = useRef<number[]>([]) const selectedList = useRef<number[]>([])
const isAdd = useRef<number[]>([])
useDidShow(() => { useDidShow(() => {
const cache = Taro.getStorageSync('colorCardCache') Taro.getStorage({
if (cache) { key: 'colorCardCache',
// 已选的列入 selectedList success: (res) => {
selectedList.current = JSON.parse(cache).map(item => item.id) console.log('cache', res.data)
setSearchField(val => ({ ...val, color_card_ids: selectedList.current })) if (res.data) {
} const temp = JSON.parse(res.data).map(item => item.id)
// 已选的列入 selectedList
selectedList.current = temp
isAdd.current = temp
setSearchField(val => ({ ...val, color_card_ids: selectedList.current }))
}
},
fail: () => {
console.log('colorCardCache fail')
},
})
// const cache = Taro.getStorageSync('colorCardCache')
// if (cache) {
// // 已选的列入 selectedList
// selectedList.current = JSON.parse(cache).map(item => item.id)
// setSearchField(val => ({ ...val, color_card_ids: selectedList.current }))
// }
}) })
// 上拉加载数据 // 上拉加载数据
@ -168,9 +186,9 @@ const ColorCardList = () => {
}) })
const isDisabled = (currentId: number) => { const isDisabled = (currentId: number) => {
console.log('selectedList', selectedList.current) console.log('selectedList, isAdd', selectedList.current, isAdd.current)
if (selectedList.current.includes(currentId)) { if (isAdd.current.includes(currentId)) {
return false return true
} }
return selectedList.current.length >= limit return selectedList.current.length >= limit
} }
@ -216,7 +234,7 @@ const ColorCardList = () => {
{/* multipleSelection.current.some(mul => mul.id === item.id) 确保加载新数据时保持选中状态 */} {/* multipleSelection.current.some(mul => mul.id === item.id) 确保加载新数据时保持选中状态 */}
<MCheckbox <MCheckbox
disabled={item.is_add || isDisabled(item.id)} disabled={item.is_add || isDisabled(item.id)}
status={item.is_add || item.status || multipleSelection.current.some(mul => mul.id === item.id)} status={isAdd.current.includes(item.id) || item.status || multipleSelection.current.some(mul => mul.id === item.id)}
onSelect={() => onSelect(item)} onSelect={() => onSelect(item)}
onClose={() => onUnSelect(item)} onClose={() => onUnSelect(item)}
/> />