🐞 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: {
// compress: true, // 默认使用terser压缩
compress: {
drop_console: true, // 去掉打印
drop_console: false, // 去掉打印
}, // 默认使用terser压缩
// mangle: false,
keep_classnames: true, // 不改变class名称

View File

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

View File

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