hookehuyr

fix: 修复可选链操作符和移除未使用的数据参数

修复多处可选链操作符(?.)的使用问题,并移除微信步数同步中未使用的data参数
...@@ -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 {
......