fix: 修复可选链操作符和移除未使用的数据参数
修复多处可选链操作符(?.)的使用问题,并移除微信步数同步中未使用的data参数
Showing
3 changed files
with
13 additions
and
14 deletions
| ... | @@ -79,7 +79,7 @@ const isCollecting = ref(false) // 是否正在收集,防止重复触发 | ... | @@ -79,7 +79,7 @@ const isCollecting = ref(false) // 是否正在收集,防止重复触发 |
| 79 | */ | 79 | */ |
| 80 | const dynamicFontSize = computed(() => { | 80 | const dynamicFontSize = computed(() => { |
| 81 | const pointsStr = animatedTotalPoints.value + '分' | 81 | const pointsStr = animatedTotalPoints.value + '分' |
| 82 | - const length = pointsStr.length | 82 | + const length = pointsStr?.length |
| 83 | 83 | ||
| 84 | // 基础字体大小36rpx,超过6位数开始缩小 | 84 | // 基础字体大小36rpx,超过6位数开始缩小 |
| 85 | if (length <= 6) { | 85 | if (length <= 6) { |
| ... | @@ -107,7 +107,7 @@ const sourceTypeMap = { | ... | @@ -107,7 +107,7 @@ const sourceTypeMap = { |
| 107 | * 根据pending_points数据生成漂浮积分项并分配随机位置 | 107 | * 根据pending_points数据生成漂浮积分项并分配随机位置 |
| 108 | */ | 108 | */ |
| 109 | const generatePointsData = () => { | 109 | const generatePointsData = () => { |
| 110 | - if (!props.pendingPoints || props.pendingPoints.length === 0) { | 110 | + if (!props.pendingPoints || props.pendingPoints?.length === 0) { |
| 111 | return []; | 111 | return []; |
| 112 | } | 112 | } |
| 113 | 113 | ||
| ... | @@ -211,7 +211,7 @@ const generatePointsData = () => { | ... | @@ -211,7 +211,7 @@ const generatePointsData = () => { |
| 211 | */ | 211 | */ |
| 212 | const getItemStyle = (item) => { | 212 | const getItemStyle = (item) => { |
| 213 | const baseSize = 90; // 增大基础尺寸从80到90 | 213 | const baseSize = 90; // 增大基础尺寸从80到90 |
| 214 | - const maxValue = Math.max(...(floatingItems.value.map(i => i.points).length > 0 ? floatingItems.value.map(i => i.points) : [1])); | 214 | + const maxValue = Math.max(...(floatingItems.value.map(i => i.points)?.length > 0 ? floatingItems.value.map(i => i.points) : [1])); |
| 215 | const sizeRatio = item.points / maxValue; | 215 | const sizeRatio = item.points / maxValue; |
| 216 | const size = baseSize + (sizeRatio * 50); // 增大最大额外尺寸从40到50 | 216 | const size = baseSize + (sizeRatio * 50); // 增大最大额外尺寸从40到50 |
| 217 | 217 | ||
| ... | @@ -222,7 +222,7 @@ const getItemStyle = (item) => { | ... | @@ -222,7 +222,7 @@ const getItemStyle = (item) => { |
| 222 | 222 | ||
| 223 | // 根据圆圈大小和文字长度计算合适的字体大小 | 223 | // 根据圆圈大小和文字长度计算合适的字体大小 |
| 224 | const labelLength = item.sourceLabel?.length || 0; | 224 | const labelLength = item.sourceLabel?.length || 0; |
| 225 | - const pointsLength = (item.points + '分').length; | 225 | + const pointsLength = (item.points + '分')?.length; |
| 226 | 226 | ||
| 227 | // 优化字体计算:根据圆圈大小和文字长度动态调整 | 227 | // 优化字体计算:根据圆圈大小和文字长度动态调整 |
| 228 | let dynamicFontSize = Math.max( | 228 | let dynamicFontSize = Math.max( |
| ... | @@ -286,7 +286,7 @@ const collectItem = async (item) => { | ... | @@ -286,7 +286,7 @@ const collectItem = async (item) => { |
| 286 | animateNumber(animatedTotalPoints.value, newTotal); | 286 | animateNumber(animatedTotalPoints.value, newTotal); |
| 287 | 287 | ||
| 288 | floatingItems.value = floatingItems.value.filter(i => i.id !== item.id); | 288 | floatingItems.value = floatingItems.value.filter(i => i.id !== item.id); |
| 289 | - if (floatingItems.value.length === 0) { | 289 | + if (floatingItems.value?.length === 0) { |
| 290 | emit('collection-complete', newTotal); | 290 | emit('collection-complete', newTotal); |
| 291 | } | 291 | } |
| 292 | }, 800); // 动画时长 | 292 | }, 800); // 动画时长 |
| ... | @@ -332,7 +332,7 @@ const collectAll = async () => { | ... | @@ -332,7 +332,7 @@ const collectAll = async () => { |
| 332 | }, index * 80); // 依次触发动画 | 332 | }, index * 80); // 依次触发动画 |
| 333 | }); | 333 | }); |
| 334 | 334 | ||
| 335 | - const totalAnimationTime = itemsToCollect.length * 80 + 800; | 335 | + const totalAnimationTime = itemsToCollect?.length * 80 + 800; |
| 336 | setTimeout(() => { | 336 | setTimeout(() => { |
| 337 | // 使用接口返回的最新积分总数 | 337 | // 使用接口返回的最新积分总数 |
| 338 | const newTotal = data.new_total_points; | 338 | const newTotal = data.new_total_points; | ... | ... |
| ... | @@ -174,17 +174,17 @@ const getWeRunData = async () => { | ... | @@ -174,17 +174,17 @@ const getWeRunData = async () => { |
| 174 | // 同步微信步数 - 直接调用原始API以获取完整响应 | 174 | // 同步微信步数 - 直接调用原始API以获取完整响应 |
| 175 | try { | 175 | try { |
| 176 | const response = await fetch.post('/srv/?a=point&t=sync_wx_step', { encryptedData: weRunRes.encryptedData, iv: weRunRes.iv }); | 176 | const response = await fetch.post('/srv/?a=point&t=sync_wx_step', { encryptedData: weRunRes.encryptedData, iv: weRunRes.iv }); |
| 177 | - const { code, data, msg } = response.data; | 177 | + const { code, msg } = response.data; |
| 178 | 178 | ||
| 179 | if (code == 1) { | 179 | if (code == 1) { |
| 180 | // 提示获取步数成功 | 180 | // 提示获取步数成功 |
| 181 | - console.warn('同步微信步数成功', data); | 181 | + console.warn('同步微信步数成功'); |
| 182 | 182 | ||
| 183 | // 同步成功,隐藏手动更新按钮 | 183 | // 同步成功,隐藏手动更新按钮 |
| 184 | showManualUpdate.value = false; | 184 | showManualUpdate.value = false; |
| 185 | 185 | ||
| 186 | // 触发步数同步完成事件,通知父组件 | 186 | // 触发步数同步完成事件,通知父组件 |
| 187 | - emit('steps-synced', data); | 187 | + emit('steps-synced'); |
| 188 | 188 | ||
| 189 | isLoading.value = false | 189 | isLoading.value = false |
| 190 | } else { | 190 | } else { | ... | ... |
| ... | @@ -280,10 +280,9 @@ const handleAuthChange = (authorized) => { | ... | @@ -280,10 +280,9 @@ const handleAuthChange = (authorized) => { |
| 280 | 280 | ||
| 281 | /** | 281 | /** |
| 282 | * 处理微信步数同步完成事件 | 282 | * 处理微信步数同步完成事件 |
| 283 | - * @param {Object} data - 同步返回的数据 | ||
| 284 | */ | 283 | */ |
| 285 | -const handleStepsSynced = async (data) => { | 284 | +const handleStepsSynced = async () => { |
| 286 | - console.log('微信步数同步完成:', data) | 285 | + console.log('微信步数同步完成') |
| 287 | // 步数同步完成后,重新获取家庭数据 | 286 | // 步数同步完成后,重新获取家庭数据 |
| 288 | await initPageData() | 287 | await initPageData() |
| 289 | } | 288 | } |
| ... | @@ -342,7 +341,7 @@ const initPageData = async () => { | ... | @@ -342,7 +341,7 @@ const initPageData = async () => { |
| 342 | // 获取今日家庭总步数 | 341 | // 获取今日家庭总步数 |
| 343 | familyMembers.value = data.step_ranking || []; | 342 | familyMembers.value = data.step_ranking || []; |
| 344 | // 根据是否有待收集积分决定显示模式 | 343 | // 根据是否有待收集积分决定显示模式 |
| 345 | - showTotalPointsOnly.value = !data.pending_points.length; | 344 | + showTotalPointsOnly.value = !data.pending_points?.length; |
| 346 | // 总积分数量从接口获取 | 345 | // 总积分数量从接口获取 |
| 347 | finalTotalPoints.value = data.family.total_points || 0; | 346 | finalTotalPoints.value = data.family.total_points || 0; |
| 348 | // 获取用户信息 | 347 | // 获取用户信息 |
| ... | @@ -362,7 +361,7 @@ useDidShow(async () => { | ... | @@ -362,7 +361,7 @@ useDidShow(async () => { |
| 362 | const { code, data } = await getMyFamiliesAPI() | 361 | const { code, data } = await getMyFamiliesAPI() |
| 363 | if (code) { | 362 | if (code) { |
| 364 | // 如果没有加入家庭 | 363 | // 如果没有加入家庭 |
| 365 | - if (!data.length) { | 364 | + if (!data?.length) { |
| 366 | Taro.redirectTo({ url: '/pages/Welcome/index' }); | 365 | Taro.redirectTo({ url: '/pages/Welcome/index' }); |
| 367 | return; // 直接返回,不执行后续逻辑 | 366 | return; // 直接返回,不执行后续逻辑 |
| 368 | } else { | 367 | } else { | ... | ... |
-
Please register or login to post a comment