Procházet zdrojové kódy

整改基本完成

Huanyi před 12 hodinami
rodič
revize
d40234fcf6
37 změnil soubory, kde provedl 79 přidání a 47 odebrání
  1. 3 3
      manifest.json
  2. 7 3
      pages/home/index.vue
  3. 11 8
      pages/home/orderDetail/index.vue
  4. 2 1
      pages/home/work-status/index.vue
  5. 3 0
      pages/login/index.vue
  6. 4 0
      pages/mine/index.vue
  7. 1 1
      pages/mine/level/index.vue
  8. 1 0
      pages/mine/message/index.vue
  9. 2 1
      pages/mine/message/order/index.vue
  10. 2 1
      pages/mine/message/system/index.vue
  11. 4 2
      pages/mine/order-stats/index.vue
  12. 1 0
      pages/mine/points/detail/index.vue
  13. 2 0
      pages/mine/points/index.vue
  14. 1 0
      pages/mine/rewards-all/index.vue
  15. 2 0
      pages/mine/rewards/index.vue
  16. 2 0
      pages/mine/settings/auth/edit/index.vue
  17. 1 0
      pages/mine/settings/index.vue
  18. 1 1
      pages/mine/settings/profile/edit-name/index.vue
  19. 1 1
      pages/mine/settings/security/change-password/index.vue
  20. 1 1
      pages/mine/settings/security/change-phone/index.vue
  21. 2 1
      pages/mine/settings/security/index.vue
  22. 1 0
      pages/mine/wallet/bill/index.vue
  23. 3 2
      pages/orders/appeal/index.vue
  24. 9 9
      pages/orders/detail/index.vue
  25. 5 5
      pages/recruit/auth/index.vue
  26. 1 1
      pages/recruit/form/index.vue
  27. 4 4
      pages/recruit/qualifications/index.vue
  28. binární
      unpackage/cache/apk/__UNI__76F5C47_cm.apk
  29. 1 1
      unpackage/cache/apk/apkurl
  30. 0 0
      unpackage/cache/apk/cmManifestCache.json
  31. 1 1
      unpackage/cache/wgt/__UNI__76F5C47/app-config-service.js
  32. 0 0
      unpackage/cache/wgt/__UNI__76F5C47/app-service.js
  33. 0 0
      unpackage/cache/wgt/__UNI__76F5C47/manifest.json
  34. 0 0
      unpackage/cache/wgt/__UNI__76F5C47/pages/home/orderDetail/index.css
  35. 0 0
      unpackage/cache/wgt/__UNI__76F5C47/pages/mine/settings/auth/edit/index.css
  36. 0 0
      unpackage/cache/wgt/__UNI__76F5C47/pages/orders/appeal/index.css
  37. binární
      unpackage/release/apk/__UNI__76F5C47__20260414222409.apk

+ 3 - 3
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "履约守护",
+    "name" : "履约守护(测试版)",
     "appid" : "__UNI__76F5C47",
     "description" : "履约端",
-    "versionName" : "2.0.0",
-    "versionCode" : 20000,
+    "versionName" : "1.0.2t",
+    "versionCode" : 3,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 7 - 3
pages/home/index.vue

@@ -504,6 +504,7 @@ export default {
                 this.profile = data
             } catch (err) {
                 console.error('获取个人信息失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             } finally {
                 this.profileLoading = false
             }
@@ -514,6 +515,7 @@ export default {
                 this.serviceList = res.data || []
             } catch (err) {
                 console.error('获取服务类型失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             }
         },
         async loadOrderStats() {
@@ -522,6 +524,7 @@ export default {
                 this.orderStats = res.data || { total: 0, reject: 0, completed: 0, fulfillmentCommission: 0 }
             } catch (err) {
                 console.error('获取订单统计失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             }
         },
         async fetchUnreadNotice() {
@@ -535,6 +538,7 @@ export default {
                 this.unreadCount = Number(res.total) || 0;
             } catch (err) {
                 console.error('获取未读消息失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         startNoticePolling() {
@@ -633,7 +637,7 @@ export default {
                 this.loadOrderStats();
             } catch (err) {
                 console.error('拒绝接单失败:', err);
-                uni.showToast({ title: err.message || err.msg || '拒绝接单失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 uni.hideLoading();
             }
@@ -658,7 +662,7 @@ export default {
                 this.loadOrderStats()
             } catch (err) {
                 console.error('接单失败:', err)
-                uni.showToast({ title: err.message || err.msg || '接单失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         openNavigation(item, pointType) {
@@ -756,7 +760,7 @@ export default {
                 this.taskList = (res.rows || []).map(item => this.transformOrder(item))
             } catch (err) {
                 console.error('获取订单列表失败:', err)
-                uni.showToast({ title: err.message || err.msg || '加载失败', icon: 'none' })
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
                 this.taskList = []
             }
         },

+ 11 - 8
pages/home/orderDetail/index.vue

@@ -44,31 +44,32 @@
           </view>
         </view>
 
-        <!-- 用户档案卡片 -->
+        <!-- 用户档案卡片(待接单状态脱敏) -->
         <view class="white-card user-profile-card">
           <view class="tl-title-row">
             <view class="orange-bar"></view>
             <text class="tl-title">用户档案</text>
+            <text class="tl-hint">接单后可查看完整信息</text>
           </view>
           <view class="bi-row">
             <image class="bi-icon" src="/static/icons/user.svg"></image>
             <view class="bi-content">
               <text class="bi-label">联系人</text>
-              <text class="bi-val">{{ orderDetail.ownerName || '匿名用户' }}</text>
+              <text class="bi-val bi-blur">接单后可见</text>
             </view>
           </view>
           <view class="bi-row">
             <image class="bi-icon" src="/static/icons/phone.svg"></image>
             <view class="bi-content">
               <text class="bi-label">联系电话</text>
-              <text class="bi-val">{{ orderDetail.ownerPhone || '接单后可见' }}</text>
+              <text class="bi-val bi-blur">接单后可见</text>
             </view>
           </view>
           <view class="bi-row no-border">
             <image class="bi-icon" src="/static/icons/location.svg"></image>
             <view class="bi-content">
               <text class="bi-label">详细地址</text>
-              <text class="bi-val">{{ orderDetail.endAddress || '暂无详细地址' }}</text>
+              <text class="bi-val bi-blur">接单后可见</text>
             </view>
           </view>
         </view>
@@ -268,7 +269,7 @@ export default {
             try {
                 const res = await listAllService()
                 this.serviceList = res.data || []
-            } catch (err) { console.error('获取服务类型失败:', err) }
+            } catch (err) { console.error('获取服务类型失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         async loadOrderDetail() {
             if (!this.orderId) return
@@ -307,7 +308,7 @@ export default {
                 }
                 // 2. 加载时间轴日志
                 this.loadLogs()
-            } catch (err) { console.error('获取详情失败:', err) }
+            } catch (err) { console.error('获取详情失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         async loadPetInfo(petId) {
           try {
@@ -320,7 +321,7 @@ export default {
               this.orderDetail.petPersonality = pet.personality || '暂无标签'
               this.orderDetail.petNotes = pet.remark || '暂无说明'
             }
-          } catch (err) { console.error('获取宠物详情失败:', err) }
+          } catch (err) { console.error('获取宠物详情失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         async loadLogs() {
           try {
@@ -331,7 +332,7 @@ export default {
               time: item.createTime || '',
               content: item.content || ''
             }))
-          } catch (err) { console.error('获取日志失败:', err) }
+          } catch (err) { console.error('获取日志失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         showPetProfile() { this.showPetModal = true },
         closePetProfile() { this.showPetModal = false },
@@ -426,6 +427,7 @@ export default {
             flex: 1;
             .bi-label { font-size: 24rpx; color: #999; margin-bottom: 4rpx; display: block; }
             .bi-val { font-size: 28rpx; color: #333; font-weight: 500; }
+            &.bi-blur { color: #bbb; font-weight: normal; }
         }
     }
 }
@@ -464,6 +466,7 @@ export default {
 .tl-title-row { display: flex; align-items: center; margin-bottom: 30rpx; }
 .orange-bar { width: 8rpx; height: 32rpx; background-color: #FF9800; margin-right: 16rpx; border-radius: 4rpx; }
 .tl-title { font-size: 30rpx; font-weight: bold; color: #333; }
+.tl-hint { font-size: 22rpx; color: #FF9800; margin-left: auto; }
 .tl-list { padding-left: 10rpx; }
 .tl-item { display: flex; position: relative; padding-bottom: 40rpx; }
 .tl-item:last-child { padding-bottom: 0; }

+ 2 - 1
pages/home/work-status/index.vue

@@ -62,6 +62,7 @@ export default {
                 }
             } catch (err) {
                 console.error('获取状态失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         async toggleStatus() {
@@ -86,7 +87,7 @@ export default {
             } catch (err) {
                 uni.hideLoading();
                 console.error('切换状态失败:', err);
-                uni.showToast({ title: err.message || '操作失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }

+ 3 - 0
pages/login/index.vue

@@ -192,6 +192,7 @@ export default {
         }
       } catch (err) {
         console.error('获取应用配置失败:', err);
+        uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
       }
     },
     /**
@@ -207,6 +208,7 @@ export default {
         this.showAgreementModal = true;
       } catch (err) {
         console.error('获取协议详情失败:', err);
+        uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
       } finally {
         uni.hideLoading();
       }
@@ -304,6 +306,7 @@ export default {
       } catch (err) {
         // 错误已在 request.js 中统一处理
         console.error('登录失败:', err);
+        uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
       } finally {
         this.loginLoading = false;
         uni.hideLoading();

+ 4 - 0
pages/mine/index.vue

@@ -245,6 +245,7 @@ export default {
                 this.totalUnread = Number(res.total) || 0;
             } catch (err) {
                 console.error('获取总未读数失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         async loadProfile() {
@@ -255,6 +256,7 @@ export default {
                 this.profile = res.data || null
             } catch (err) {
                 console.error('获取个人信息失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             } finally {
                 this.profileLoading = false
             }
@@ -265,6 +267,7 @@ export default {
                 this.levelConfigs = res.data || []
             } catch (err) {
                 console.error('加载等级配置失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             }
         },
         async fetchCustomerServiceSetting() {
@@ -275,6 +278,7 @@ export default {
                 }
             } catch (err) {
                 console.error('获取客服配置失败:', err)
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             }
         },
         navToSettings() {

+ 1 - 1
pages/mine/level/index.vue

@@ -155,7 +155,7 @@ export default {
                 }
             } catch (err) {
                 console.error('初始化等级页面失败:', err);
-                uni.showToast({ title: err.message || '数据加载失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.pageLoading = false;
                 uni.hideLoading();

+ 1 - 0
pages/mine/message/index.vue

@@ -106,6 +106,7 @@ export default {
                 this.systemUnread = Number(systemUnreadRes.total) || 0;
             } catch (err) {
                 console.error('加载消息概览失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         navBack() {

+ 2 - 1
pages/mine/message/order/index.vue

@@ -97,7 +97,7 @@ export default {
                 this.loadMoreStatus = this.notices.length >= this.total ? 'noMore' : 'more';
             } catch (err) {
                 console.error('获取消息失败:', err);
-                uni.showToast({ title: '加载失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }
@@ -109,6 +109,7 @@ export default {
                 item.readFlag = true;
             } catch (err) {
                 console.error('标记已读失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         navBack() {

+ 2 - 1
pages/mine/message/system/index.vue

@@ -101,7 +101,7 @@ export default {
                 this.loadMoreStatus = this.notices.length >= this.total ? 'noMore' : 'more';
             } catch (err) {
                 console.error('获取消息失败:', err);
-                uni.showToast({ title: '加载失败', icon: 'none' });
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }
@@ -113,6 +113,7 @@ export default {
                 item.readFlag = true;
             } catch (err) {
                 console.error('标记已读失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         navBack() {

+ 4 - 2
pages/mine/order-stats/index.vue

@@ -64,7 +64,7 @@
                         <text class="pet-name">{{ order.petName }}</text>
                         <text class="pet-breed">品种: {{ order.petBreed }}</text>
                     </view>
-                    <text class="pet-price">¥{{ order.price }}</text>
+                    <text class="pet-price">¥{{ order.fulfillmentCommission }}</text>
                 </view>
 
                 <!-- 路线信息 -->
@@ -159,6 +159,7 @@ export default {
                 this.serviceList = res.data || [];
             } catch (err) {
                 console.error('获取服务类型失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         async fetchStats() {
@@ -200,6 +201,7 @@ export default {
                 }
             } catch (err) {
                 console.error('获取订单列表失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }
@@ -232,7 +234,7 @@ export default {
                 petName: order.petName || '未知',
                 petBreed: order.breed || '未知',
                 petAvatar: order.petAvatarUrl || '/static/dog.png',
-                price: (order.price / 100).toFixed(2),
+                fulfillmentCommission: (order.fulfillmentCommission / 100).toFixed(2),
                 startName: order.fromAddress || '',
                 startAddr: order.fromAddress || '',
                 endName: (order.customerName || '') + ' ' + (order.customerPhone || ''),

+ 1 - 0
pages/mine/points/detail/index.vue

@@ -172,6 +172,7 @@ export default {
                 }
             } catch (error) {
                 console.error('获取积分明细记录失败', error);
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             }
         },
         onDateChange(e) {

+ 2 - 0
pages/mine/points/index.vue

@@ -119,6 +119,7 @@ export default {
                 }
             } catch (error) {
                 console.error('获取当前积分失败', error);
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             }
         },
         async fetchList(reset = false) {
@@ -162,6 +163,7 @@ export default {
                 }
             } catch (error) {
                 console.error('获取积分明细失败', error);
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }

+ 1 - 0
pages/mine/rewards-all/index.vue

@@ -149,6 +149,7 @@ export default {
                 }];
             } catch (err) {
                 console.error('获取奖惩明细失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             } finally {
                 this.loading = false;
             }

+ 2 - 0
pages/mine/rewards/index.vue

@@ -181,6 +181,7 @@ export default {
                 }
             } catch (err) {
                 console.error('获取奖惩统计失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         async fetchList(params) {
@@ -216,6 +217,7 @@ export default {
                 }
             } catch (err) {
                 console.error('获取奖惩列表失败:', err);
+                uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
         },
         switchTab(idx) { this.activeTab = idx; },

+ 2 - 0
pages/mine/settings/auth/edit/index.vue

@@ -133,6 +133,7 @@ export default {
         }))
       } catch (e) {
         console.error('加载服务类型失败', e)
+        uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' })
       }
     },
     async loadAuthInfo() {
@@ -261,6 +262,7 @@ export default {
             } catch (err) {
               uni.hideLoading()
               console.error('上传资质图片失败:', err)
+              uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' })
             }
           }
         }

+ 1 - 0
pages/mine/settings/index.vue

@@ -138,6 +138,7 @@ export default {
                             this.getCacheSize();
                         } catch (err) {
                             console.error('清理缓存失败:', err);
+                            uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
                         }
                     }
                 }

+ 1 - 1
pages/mine/settings/profile/edit-name/index.vue

@@ -92,7 +92,7 @@ export default {
                 }
             } catch (error) {
                 console.error('修改姓名失败:', error);
-                uni.showToast({ title: '网络错误', icon: 'none' });
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             } finally {
                 uni.hideLoading();
             }

+ 1 - 1
pages/mine/settings/security/change-password/index.vue

@@ -107,7 +107,7 @@ export default {
                 }
             } catch (error) {
                 console.error('修改密码失败:', error);
-                uni.showToast({ title: '网络错误', icon: 'none' });
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             } finally {
                 uni.hideLoading();
             }

+ 1 - 1
pages/mine/settings/security/change-phone/index.vue

@@ -137,7 +137,7 @@ export default {
                 }
             } catch (error) {
                 console.error('修改手机号失败:', error);
-                uni.showToast({ title: '网络错误', icon: 'none' });
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             } finally {
                 uni.hideLoading();
             }

+ 2 - 1
pages/mine/settings/security/index.vue

@@ -67,6 +67,7 @@ export default {
                 }
             } catch (e) {
                 console.error('加载个人信息失败', e)
+                uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' })
             }
         },
         maskPhone(phone) {
@@ -101,7 +102,7 @@ export default {
                             }
                         } catch (e) {
                             console.error('注销账号失败', e)
-                            uni.showToast({ title: '注销失败', icon: 'none' })
+                            uni.showToast({ title: e.message || e.msg || '注销失败', icon: 'none' })
                         }
                     }
                 }

+ 1 - 0
pages/mine/wallet/bill/index.vue

@@ -173,6 +173,7 @@ export default {
                 }
             } catch (error) {
                 console.error('获取账单记录失败', error);
+                uni.showToast({ title: error.message || error.msg || '请求失败', icon: 'none' });
             }
         },
         onDateChange(e) {

+ 3 - 2
pages/orders/appeal/index.vue

@@ -145,6 +145,7 @@ export default {
         this.serviceOptions = res.data || [];
       } catch (err) {
         console.error('获取服务项失败:', err);
+        uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
       }
     },
     navBack() {
@@ -178,7 +179,7 @@ export default {
             } catch (err) {
               uni.hideLoading();
               console.error('上传凭证失败:', err);
-              uni.showToast({ title: '上传失败', icon: 'none' });
+              uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' });
             }
           }
         }
@@ -244,7 +245,7 @@ export default {
       } catch (err) {
         uni.hideLoading();
         console.error('提交失败详情:', err);
-        uni.showToast({ title: '网络请求失败,请检查网络链接', icon: 'none', duration: 2000 });
+        uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none', duration: 2000 });
       }
     }
   }

+ 9 - 9
pages/orders/detail/index.vue

@@ -561,7 +561,7 @@ export default {
             try {
                 const res = await listAllService()
                 this.serviceList = res.data || []
-            } catch (err) { console.error('获取服务类型失败:', err) }
+            } catch (err) { console.error('获取服务类型失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         loadServiceDetail(serviceId) {
             const serviceInfo = (this.serviceList || []).find(s => s.id === serviceId)
@@ -610,7 +610,7 @@ export default {
                     this.currentStep = stepIndex >= 0 ? stepIndex + 1 : Number(latestStep)
                 } else { this.currentStep = 0 }
                 this.updateCurrentClockIn()
-            } catch (err) { console.error('获取订单日志失败:', err) }
+            } catch (err) { console.error('获取订单日志失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         updateCurrentClockIn() {
             this.currentClockIn = this.currentStep < this.clockInSteps.length ? this.clockInSteps[this.currentStep] : null
@@ -622,7 +622,7 @@ export default {
             this.orderStatus = order.status || 2
             this.orderDetail = {
                 type: this.orderType,
-                fulfillmentCommission: (order.price / 100).toFixed(2),
+                fulfillmentCommission: (order.fulfillmentCommission / 100).toFixed(2),
                 timeLabel: isRoundTrip ? '取货时间' : '服务时间',
                 time: order.serviceTime || '',
                 petAvatar: '/static/dog.png',
@@ -659,7 +659,7 @@ export default {
                     this.orderDetail.petBreed = pet.breed || this.orderDetail.petBreed
                     this.orderDetail.ownerName = pet.ownerName || this.orderDetail.ownerName
                 }
-            } catch (err) { console.error('获取宠物档案失败:', err) }
+            } catch (err) { console.error('获取宠物档案失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         async loadAnomalyList() {
             if (!this.orderId) return
@@ -670,13 +670,13 @@ export default {
                     const dict = this.anomalyTypeDict.find(d => d.value === item.type)
                     return { ...item, typeLabel: dict ? dict.label : item.type, photoUrls: item.photoUrls || [] }
                 })
-            } catch (err) { console.error('获取异常列表失败:', err) }
+            } catch (err) { console.error('获取异常列表失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         async loadAnomalyTypeDict() {
             try {
                 const res = await getDictDataByType('flf_anamaly_type')
                 this.anomalyTypeDict = res.data.map(item => ({ label: item.dictLabel, value: item.dictValue }))
-            } catch (err) { console.error('获取异常字典失败:', err) }
+            } catch (err) { console.error('获取异常字典失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         openAnomalyModal() { this.showAnomalyModal = true; this.loadAnomalyList() },
         closeAnomalyModal() { this.showAnomalyModal = false },
@@ -717,7 +717,7 @@ export default {
                 this.currentPetInfo.petLogs = logs.map(item => ({
                     date: item.createTime || '', content: item.content || '', recorder: item.operatorName || '未知'
                 }))
-            } catch (err) { console.error('获取宠物备注列表失败:', err) }
+            } catch (err) { console.error('获取宠物备注列表失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         closePetProfile() { this.showPetModal = false },
         openPetRemarkInput() { this.petRemarkText = ''; this.showPetRemarkInput = true },
@@ -730,7 +730,7 @@ export default {
                 await apiSubmitPetRemark({ petId: this.petId, content: this.petRemarkText });
                 uni.hideLoading(); uni.showToast({ title: '备注已添加', icon: 'success' });
                 this.closePetRemarkInput(); this.loadPetChangeLogs(this.petId);
-            } catch (err) { uni.hideLoading(); console.error('提交宠物备注失败:', err) }
+            } catch (err) { uni.hideLoading(); console.error('提交宠物备注失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) }
         },
         goToAnomaly() {
             uni.navigateTo({ url: '/pages/orders/anomaly/index?orderId=' + (this.orderId || '') });
@@ -775,7 +775,7 @@ export default {
                 uni.showLoading({ title: '获取当前位置...', mask: true });
                 reportGps(true).then(res => {
                     uni.hideLoading(); navigateTo(res.latitude, res.longitude, name, address);
-                }).catch(err => { uni.hideLoading(); console.error('获取地理位置失败:', err) });
+                }).catch(err => { uni.hideLoading(); console.error('获取地理位置失败:', err); uni.showToast({ title: err.message || err.msg || '请求失败', icon: 'none' }) });
             }
         },
         openUploadModal() { this.modalMediaList = []; this.modalRemark = ''; this.showUploadModal = true },

+ 5 - 5
pages/recruit/auth/index.vue

@@ -132,7 +132,7 @@ export default {
   onLoad(options) {
     if (options.services) {
       try { this.serviceType = JSON.parse(decodeURIComponent(options.services)); }
-      catch (e) { console.error('Parse services failed', e); }
+      catch (e) { console.error('Parse services failed', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     }
     this.initDateData(); this.restoreAuthData();
   },
@@ -173,7 +173,7 @@ export default {
           this.idCardFront = d.idCardFront || ''; this.idCardBack = d.idCardBack || '';
           this.idCardFrontOssId = d.idCardFrontOssId || ''; this.idCardBackOssId = d.idCardBackOssId || '';
         }
-      } catch (e) { console.error('恢复认证数据失败', e); }
+      } catch (e) { console.error('恢复认证数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     saveAuthData() {
       try {
@@ -182,13 +182,13 @@ export default {
           idCardFront: this.idCardFront, idCardBack: this.idCardBack,
           idCardFrontOssId: this.idCardFrontOssId, idCardBackOssId: this.idCardBackOssId
         }));
-      } catch (e) { console.error('保存认证数据失败', e); }
+      } catch (e) { console.error('保存认证数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     resetFormData() {
       this.formData.name = ''; this.formData.idNumber = ''; this.formData.expiryDate = '';
       this.idCardFront = ''; this.idCardBack = '';
       this.idCardFrontOssId = ''; this.idCardBackOssId = '';
-      try { uni.removeStorageSync('recruit_auth_data'); } catch (e) { console.error('清除缓存失败', e); }
+      try { uni.removeStorageSync('recruit_auth_data'); } catch (e) { console.error('清除缓存失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     chooseImage(side) {
       this.isChoosingImage = true;
@@ -245,7 +245,7 @@ export default {
           data.idCardFrontOssId = this.idCardFrontOssId; data.idCardBackOssId = this.idCardBackOssId;
           uni.setStorageSync('recruit_form_data', JSON.stringify(data));
         }
-      } catch (e) { console.error('保存认证数据失败', e); }
+      } catch (e) { console.error('保存认证数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
       const services = JSON.stringify(this.serviceType);
       uni.navigateTo({ url: `/pages/recruit/qualifications/index?services=${encodeURIComponent(services)}` });
     }

+ 1 - 1
pages/recruit/form/index.vue

@@ -257,7 +257,7 @@ export default {
             if (last) this.loadStations(last.id);
           }
         }
-      } catch (e) { console.error('恢复表单数据失败', e); }
+      } catch (e) { console.error('恢复表单数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     initDateData() {
       const currentYear = new Date().getFullYear();

+ 4 - 4
pages/recruit/qualifications/index.vue

@@ -55,20 +55,20 @@ export default {
           this.qualifications[item.name] = this.qualifications[item.name] || [];
           this.qualOssIds[item.name] = this.qualOssIds[item.name] || [];
         });
-      } catch (e) { console.error('Parse services failed', e); }
+      } catch (e) { console.error('Parse services failed', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     }
     this.restoreQualData();
   },
   methods: {
     saveQualData() {
       try { uni.setStorageSync('recruit_qual_data', JSON.stringify({ qualifications: this.qualifications, qualOssIds: this.qualOssIds })); }
-      catch (e) { console.error('保存资质数据失败', e); }
+      catch (e) { console.error('保存资质数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     restoreQualData() {
       try {
         const saved = uni.getStorageSync('recruit_qual_data');
         if (saved) { const d = JSON.parse(saved); this.qualifications = d.qualifications || {}; this.qualOssIds = d.qualOssIds || {}; this.$forceUpdate(); }
-      } catch (e) { console.error('恢复资质数据失败', e); }
+      } catch (e) { console.error('恢复资质数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
     },
     chooseImage(serviceName) {
       uni.chooseImage({
@@ -100,7 +100,7 @@ export default {
     async submit() {
       let recruitData = {};
       try { const stored = uni.getStorageSync('recruit_form_data'); if (stored) recruitData = JSON.parse(stored); }
-      catch (e) { console.error('读取招募表单数据失败', e); }
+      catch (e) { console.error('读取招募表单数据失败', e); uni.showToast({ title: e.message || e.msg || '请求失败', icon: 'none' }); }
       const allQualOssIds = [];
       Object.values(this.qualOssIds).forEach(ids => allQualOssIds.push(...ids));
       const auditData = {

binární
unpackage/cache/apk/__UNI__76F5C47_cm.apk


+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://app.liuyingyong.cn/build/download/99ef12e0-380d-11f1-8b46-818db5eefbd6
+https://app.liuyingyong.cn/build/download/0c548b40-3956-11f1-8f62-d7c85a09b15d

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
unpackage/cache/wgt/__UNI__76F5C47/app-config-service.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__76F5C47/app-service.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__76F5C47/manifest.json


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__76F5C47/pages/home/orderDetail/index.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__76F5C47/pages/mine/settings/auth/edit/index.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__76F5C47/pages/orders/appeal/index.css


binární
unpackage/release/apk/__UNI__76F5C47__20260414222409.apk


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů