Browse Source

更新仓库

Huanyi 1 tuần trước cách đây
mục cha
commit
d5cca2c200
56 tập tin đã thay đổi với 118 bổ sung55 xóa
  1. BIN
      certificate/DistributionCer.p12
  2. BIN
      certificate/merchant.mobileprovision
  3. 8 4
      manifest.json
  4. 6 5
      pages/login/index.vue
  5. 1 0
      pages/my/agreement/detail/index.vue
  6. 1 0
      pages/my/complaint/list/index.vue
  7. 1 1
      pages/my/complaint/submit/index.vue
  8. 2 0
      pages/my/fee/statistics/index.vue
  9. 2 0
      pages/my/index.vue
  10. 4 3
      pages/my/pet/add/index.vue
  11. 1 0
      pages/my/pet/detail/index.vue
  12. 4 2
      pages/my/pet/edit/index.vue
  13. 2 0
      pages/my/pet/list/index.vue
  14. 1 1
      pages/my/settings/account-delete/index.vue
  15. 1 0
      pages/my/settings/change-password/index.vue
  16. 3 0
      pages/my/settings/profile/index.vue
  17. 4 3
      pages/my/user/add/index.vue
  18. 1 0
      pages/my/user/detail/index.vue
  19. 3 2
      pages/my/user/edit/index.vue
  20. 5 3
      pages/my/user/list/index.vue
  21. 9 3
      pages/order/apply/index.vue
  22. 8 2
      pages/order/detail/index.vue
  23. 4 1
      pages/order/list/index.vue
  24. 2 1
      pages/service/all/index.vue
  25. BIN
      unpackage/cache/apk/__UNI__F19BBAD_cm.apk
  26. 1 1
      unpackage/cache/apk/apkurl
  27. 0 0
      unpackage/cache/apk/cmManifestCache.json
  28. 20 0
      unpackage/cache/appleConfig.ini
  29. 3 0
      unpackage/cache/certdataios
  30. 1 1
      unpackage/cache/wgt/__UNI__F19BBAD/app-config-service.js
  31. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/app-service.js
  32. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/manifest.json
  33. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/login/index.css
  34. 1 1
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/agreement/detail/index.css
  35. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/complaint/list/index.css
  36. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/complaint/submit/index.css
  37. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/fee/statistics/index.css
  38. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/index.css
  39. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/add/index.css
  40. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/detail/index.css
  41. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/edit/index.css
  42. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/list/index.css
  43. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/account-delete/index.css
  44. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/change-password/index.css
  45. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/profile/index.css
  46. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/add/index.css
  47. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/detail/index.css
  48. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/edit/index.css
  49. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/list/index.css
  50. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/order/apply/index.css
  51. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/order/detail/index.css
  52. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/order/list/index.css
  53. 0 0
      unpackage/cache/wgt/__UNI__F19BBAD/pages/service/all/index.css
  54. BIN
      unpackage/release/apk/__UNI__F19BBAD__20260513192424.apk
  55. 2 1
      utils/config.js
  56. 17 20
      utils/request.js

BIN
certificate/DistributionCer.p12


BIN
certificate/merchant.mobileprovision


+ 8 - 4
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "好萌友(测试版)",
+    "name" : "好萌友",
     "appid" : "__UNI__F19BBAD",
     "description" : "宠物服务商家端",
-    "versionName" : "1.0.36t",
-    "versionCode" : 37,
+    "versionName" : "1.1.4",
+    "versionCode" : 42,
     "transformPx" : false,
     "app-plus" : {
         "usingComponents" : true,
@@ -41,7 +41,11 @@
                 ]
             },
             "ios" : {
-                "dSYMs" : false
+                "dSYMs" : false,
+                "privacyDescription" : {
+                    "NSUserTrackingUsageDescription" : ""
+                },
+                "idfa" : false
             },
             "sdkConfigs" : {
                 "payment" : {

+ 6 - 5
pages/login/index.vue

@@ -134,9 +134,10 @@ const onSubmit = async () => {
 				if (userRes && userRes.user && userRes.user.tenantId) {
 					uni.setStorageSync('tenantId', userRes.user.tenantId)
 				}
-			} catch (e) {
-				console.error('获取用户信息失败', e)
-			}
+	} catch (e) {
+		console.error('获取用户信息失败', e)
+		uni.showToast({ title: typeof e === 'string' ? e : '请求失败', icon: 'none' })
+	}
 			
 			uni.showToast({ title: '登录成功', icon: 'success' })
 			setTimeout(() => {
@@ -147,7 +148,7 @@ const onSubmit = async () => {
 		}
 	} catch (error) {
 		console.error('Login error:', error)
-		// 注意这里的提示也可以通过request.js自带去提示,这里静默或者输出
+		uni.showToast({ title: typeof error === 'string' ? error : '登录失败', icon: 'none' })
 	} finally {
 		uni.hideLoading()
 	}
@@ -168,7 +169,7 @@ const showAgreement = async (agreementId) => {
 		}
 	} catch (error) {
 		console.error('获取协议失败:', error)
-		uni.showToast({ title: '加载失败,请稍后重试', icon: 'none' })
+		uni.showToast({ title: typeof error === 'string' ? error : '加载失败,请稍后重试', icon: 'none' })
 	} finally {
 		uni.hideLoading()
 	}

+ 1 - 0
pages/my/agreement/detail/index.vue

@@ -50,6 +50,7 @@ const fetchAgreement = async (id) => {
 		}
 	} catch (error) {
 		console.error('获取协议详情失败', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '获取协议详情失败', icon: 'none' })
 	} finally {
 		loading.value = false
 	}

+ 1 - 0
pages/my/complaint/list/index.vue

@@ -72,6 +72,7 @@ const loadData = async (isLoadMore = false) => {
 		hasMore.value = historyList.value.length < (res.total || 0)
 	} catch (error) {
 		console.error('加载投诉记录失败', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载投诉记录失败', icon: 'none' })
 	} finally {
 		uni.hideNavigationBarLoading()
 		uni.stopPullDownRefresh()

+ 1 - 1
pages/my/complaint/submit/index.vue

@@ -187,7 +187,7 @@ const handleConfirmSubmit = async () => {
 		}, 1500)
 	} catch (error) {
 		console.error('提交失败:', error)
-		// 500提示已经在全局处理
+		uni.showToast({ title: typeof error === 'string' ? error : '提交失败', icon: 'none' })
 	} finally {
 		submitting.value = false
 	}

+ 2 - 0
pages/my/fee/statistics/index.vue

@@ -120,6 +120,7 @@ const getList = async () => {
 		
 	} catch (e) {
 		console.error(e)
+		uni.showToast({ title: typeof e === 'string' ? e : '加载费用统计失败', icon: 'none' })
 	} finally {
 		uni.hideLoading()
 	}
@@ -155,6 +156,7 @@ const getServices = async () => {
         }
     } catch (e) {
         console.error('获取服务类型失败', e)
+        uni.showToast({ title: typeof e === 'string' ? e : '获取服务类型失败', icon: 'none' })
     }
 }
 

+ 2 - 0
pages/my/index.vue

@@ -169,6 +169,7 @@ export default {
 					}
 				} catch (error) {
 					console.error('获取用户信息失败', error)
+					uni.showToast({ title: typeof error === 'string' ? error : '获取用户信息失败', icon: 'none' })
 				}
 			} else {
 				this.userInfo = null
@@ -184,6 +185,7 @@ export default {
 				}
 			} catch (error) {
 				console.error('获取客服配置失败', error)
+				uni.showToast({ title: typeof error === 'string' ? error : '获取客服配置失败', icon: 'none' })
 			}
 		},
 		// 跳转到登录页(未登录时)

+ 4 - 3
pages/my/pet/add/index.vue

@@ -227,7 +227,7 @@ const fetchCustomers = async () => {
             name: item.name || item.customerName,
             phone: item.phone || item.contactPhoneNumber || item.phone
         }))
-    } catch(e) { console.error('获取主人列表失败', e) }
+    } catch(e) { console.error('获取主人列表失败', e); uni.showToast({ title: typeof e === 'string' ? e : '获取主人列表失败', icon: 'none' }) }
 }
 
 onLoad(async () => {
@@ -236,7 +236,7 @@ onLoad(async () => {
 		const dictRes = await getDicts('sys_pet_breed')
 		const list = Array.isArray(dictRes) ? dictRes : (dictRes?.data || [])
 		breedCandidates.value = list.map(item => item.dictLabel || item.dictValue || item.label || item.value)
-	} catch(e) { console.error('获取宠物品种字典失败', e) }
+	} catch(e) { console.error('获取宠物品种字典失败', e); uni.showToast({ title: typeof e === 'string' ? e : '获取宠物品种失败', icon: 'none' }) }
 })
 
 const form = reactive({
@@ -321,6 +321,7 @@ const handleChooseAvatar = () => {
             } catch (e) {
                 uni.hideLoading();
                 console.error('上传头像失败', e);
+                uni.showToast({ title: typeof e === 'string' ? e : '上传头像失败', icon: 'none' });
             }
         }
     });
@@ -348,7 +349,7 @@ const onSave = async () => {
       setTimeout(() => uni.navigateBack(), 1000)
   } catch (error) {
       uni.hideLoading()
-      uni.showToast({ title: '保存失败', icon: 'none' })
+      uni.showToast({ title: typeof error === 'string' ? error : '保存失败', icon: 'none' })
   }
 }
 </script>

+ 1 - 0
pages/my/pet/detail/index.vue

@@ -150,6 +150,7 @@ const fetchDetail = async () => {
 	} catch (e) {
 		uni.hideLoading()
 		console.error('获取详情失败', e)
+		uni.showToast({ title: typeof e === 'string' ? e : '获取详情失败', icon: 'none' })
 	}
 }
 

+ 4 - 2
pages/my/pet/edit/index.vue

@@ -241,7 +241,7 @@ const initData = async () => {
         }))
 		const dictList = Array.isArray(dictRes) ? dictRes : (dictRes?.data || [])
 		breedCandidates.value = dictList.map(item => item.dictLabel || item.dictValue || item.label || item.value)
-	} catch(e) { console.error('初始化数据失败', e) }
+	} catch(e) { console.error('初始化数据失败', e); uni.showToast({ title: typeof e === 'string' ? e : '初始化数据失败', icon: 'none' }) }
 }
 
 const fetchDetail = async () => {
@@ -255,6 +255,7 @@ const fetchDetail = async () => {
 		}
 	} catch (e) {
 		console.error('获取宠物详情失败', e)
+		uni.showToast({ title: typeof e === 'string' ? e : '获取宠物详情失败', icon: 'none' })
 	} finally {
 		loading.value = false
 	}
@@ -307,6 +308,7 @@ const handleChooseAvatar = () => {
             } catch (e) {
                 uni.hideLoading();
                 console.error('上传头像失败', e);
+                uni.showToast({ title: typeof e === 'string' ? e : '上传头像失败', icon: 'none' });
             }
         }
     });
@@ -335,7 +337,7 @@ const onSave = async () => {
 		uni.hideLoading()
 		uni.showToast({ title: '保存成功', icon: 'success' })
 		setTimeout(() => uni.navigateBack(), 1000)
-	} catch (error) { uni.hideLoading() }
+	} catch (error) { uni.hideLoading(); uni.showToast({ title: typeof error === 'string' ? error : '保存失败', icon: 'none' }) }
 }
 </script>
 

+ 2 - 0
pages/my/pet/list/index.vue

@@ -70,6 +70,7 @@ const loadPets = async (isLoadMore = false) => {
 		hasMore.value = pets.value.length < (res?.total || 0)
 	} catch (error) {
 		console.error('获取宠物列表失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '获取宠物列表失败', icon: 'none' })
 	} finally {
 		uni.hideNavigationBarLoading()
 		uni.stopPullDownRefresh()
@@ -121,6 +122,7 @@ const onDelete = (pet) => {
 					loadPets()
 				} catch (error) {
 					uni.hideLoading()
+					uni.showToast({ title: typeof error === 'string' ? error : '删除失败', icon: 'none' })
 				}
 			}
 		}

+ 1 - 1
pages/my/settings/account-delete/index.vue

@@ -48,7 +48,7 @@ const onDelete = () => {
 					uni.removeStorageSync('token')
 					setTimeout(() => uni.reLaunch({ url: '/pages/login/index' }), 1500)
 				} catch (error) {
-					// 错误处理由 request.js 统一提示
+					uni.showToast({ title: typeof error === 'string' ? error : '注销失败', icon: 'none' })
 				}
 			}
 		}

+ 1 - 0
pages/my/settings/change-password/index.vue

@@ -107,6 +107,7 @@ const submit = async () => {
 	} catch (err) {
 		uni.hideLoading()
 		console.log('请求失败', err)
+		uni.showToast({ title: typeof err === 'string' ? err : '修改密码失败', icon: 'none' })
 	}
 }
 </script>

+ 3 - 0
pages/my/settings/profile/index.vue

@@ -78,6 +78,7 @@ onLoad(async () => {
         }
     } catch (e) {
         console.error('获取个人信息失败', e)
+        uni.showToast({ title: typeof e === 'string' ? e : '获取个人信息失败', icon: 'none' })
     } finally {
         loading.value = false
     }
@@ -109,6 +110,7 @@ const handleChooseAvatar = () => {
             } catch (e) {
                 uni.hideLoading();
                 console.error('上传头像失败', e);
+                uni.showToast({ title: typeof e === 'string' ? e : '上传头像失败', icon: 'none' });
             }
         }
     });
@@ -150,6 +152,7 @@ const submit = async () => {
 	} catch (err) {
 		uni.hideLoading()
 		console.log('保存失败', err)
+		uni.showToast({ title: typeof err === 'string' ? err : '保存失败', icon: 'none' })
 	}
 }
 </script>

+ 4 - 3
pages/my/user/add/index.vue

@@ -217,11 +217,11 @@ onLoad(async () => {
     try {
         const stationRes = await listAreaStation()
         allStationNodes.value = Array.isArray(stationRes) ? stationRes : (stationRes?.data || [])
-    } catch (err) { console.error('获取站点失败', err) }
+    } catch (err) { console.error('获取站点失败', err); uni.showToast({ title: typeof err === 'string' ? err : '获取站点失败', icon: 'none' }) }
     try {
         const res = await listRegionTree()
         regionTree.value = Array.isArray(res) ? res : []
-    } catch (err) { console.error('获取地区数据失败', err) }
+    } catch (err) { console.error('获取地区数据失败', err); uni.showToast({ title: typeof err === 'string' ? err : '获取地区数据失败', icon: 'none' }) }
 })
 
 const openStationModal = () => {
@@ -336,6 +336,7 @@ const chooseAvatar = () => {
             } catch (err) {
                 uni.hideLoading()
                 console.error('头像上传失败', err)
+                uni.showToast({ title: typeof err === 'string' ? err : '头像上传失败', icon: 'none' })
             }
         }
     })
@@ -356,7 +357,7 @@ const onSave = async () => {
         await addCustomer(submitData)
         uni.showToast({ title: '新增成功', icon: 'success' })
         setTimeout(() => uni.navigateBack(), 1000)
-    } catch(err) { } finally { saving.value = false }
+    } catch(err) { uni.showToast({ title: typeof err === 'string' ? err : '新增用户失败', icon: 'none' }) } finally { saving.value = false }
 }
 </script>
 

+ 1 - 0
pages/my/user/detail/index.vue

@@ -77,6 +77,7 @@ const loadDetail = async (id) => {
         user.value = data
     } catch(err) {
         console.error(err)
+        uni.showToast({ title: typeof err === 'string' ? err : '加载用户详情失败', icon: 'none' })
     } finally {
         uni.hideLoading()
     }

+ 3 - 2
pages/my/user/edit/index.vue

@@ -222,7 +222,7 @@ onLoad(async (options) => {
                 resolveRegionByCode()
             }
         }
-    } catch(err) { console.error(err) } finally { loading.value = false }
+    } catch(err) { console.error(err); uni.showToast({ title: typeof err === 'string' ? err : '加载用户数据失败', icon: 'none' }) } finally { loading.value = false }
 })
 
 // 根据 ID 反查名称
@@ -359,6 +359,7 @@ const chooseAvatar = () => {
             } catch (err) {
                 uni.hideLoading()
                 console.error('头像上传失败', err)
+                uni.showToast({ title: typeof err === 'string' ? err : '头像上传失败', icon: 'none' })
             }
         }
     })
@@ -376,7 +377,7 @@ const onSave = async () => {
         await updateCustomer(form)
         uni.showToast({ title: '保存成功', icon: 'success' })
         setTimeout(() => uni.navigateBack(), 1000)
-    } catch(err) { } finally { saving.value = false }
+    } catch(err) { uni.showToast({ title: typeof err === 'string' ? err : '保存失败', icon: 'none' }) } finally { saving.value = false }
 }
 </script>
 

+ 5 - 3
pages/my/user/list/index.vue

@@ -103,9 +103,10 @@ const loadUsers = async (isLoadMore = false) => {
             users.value = rows
         }
         hasMore.value = users.value.length < (res?.total || 0)
-    } catch (error) {
-        console.error('获取用户列表失败', error)
-    } finally {
+	} catch (error) {
+		console.error('获取用户列表失败', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '获取用户列表失败', icon: 'none' })
+	} finally {
         uni.hideNavigationBarLoading()
         uni.stopPullDownRefresh()
     }
@@ -157,6 +158,7 @@ const onStatusChange = (e, user) => {
                     uni.showToast({ title: `已${text}`, icon: 'success' })
                 } catch(err) {
                     uni.hideLoading()
+                    uni.showToast({ title: typeof err === 'string' ? err : '操作失败', icon: 'none' })
                     // 恢复源数据渲染,利用 setTimeout 强制触发 vue 的重算
                     user.status = targetStatus
                     setTimeout(() => { user.status = originalStatus }, 50)

+ 9 - 3
pages/order/apply/index.vue

@@ -466,6 +466,8 @@ const fetchShops = (loadMore = false) => {
 		}
 		shopPage.finished = rows.length < shopPage.pageSize
 		shopPage.pageNum++
+	}).catch(e => {
+		uni.showToast({ title: typeof e === 'string' ? e : '加载门店失败', icon: 'none' })
 	}).finally(() => { shopPage.loading = false })
 }
 
@@ -486,10 +488,12 @@ const fetchUsers = (reset = false) => {
 		}
 		userPage.finished = rows.length < userPage.pageSize
 		userPage.pageNum++
+	}).catch(e => {
+		uni.showToast({ title: typeof e === 'string' ? e : '加载宠主失败', icon: 'none' })
 	}).finally(() => { userPage.loading = false })
 }
-const fetchPets = (uid) => listPetByUser(uid).then(res => { petList.value = Array.isArray(res) ? res : (res.rows || []) })
-const fetchRegionTree = () => listRegionTree().then(res => { regionTree.value = res || [] })
+const fetchPets = (uid) => listPetByUser(uid).then(res => { petList.value = Array.isArray(res) ? res : (res.rows || []) }).catch(e => { uni.showToast({ title: typeof e === 'string' ? e : '加载宠物列表失败', icon: 'none' }) })
+const fetchRegionTree = () => listRegionTree().then(res => { regionTree.value = res || [] }).catch(e => { uni.showToast({ title: typeof e === 'string' ? e : '加载区域数据失败', icon: 'none' }) })
 
 const onShopSelect = (shop) => { selectedShop.value = shop; showShopSelect.value = false }
 const onShopSearch = (keyword) => { shopSearchKey.value = keyword; fetchShops(false) }
@@ -530,7 +534,9 @@ const onSubmit = async () => {
 		await createOrder(payload)
 		uni.showToast({ title: '成功', icon: 'success' })
 		setTimeout(() => uni.reLaunch({ url: '/pages/order/list/index' }), 1000)
-	} catch (e) { } finally { uni.hideLoading() }
+	} catch (e) {
+		uni.showToast({ title: typeof e === 'string' ? e : '下单失败', icon: 'none' })
+	} finally { uni.hideLoading() }
 }
 </script>
 

+ 8 - 2
pages/order/detail/index.vue

@@ -447,7 +447,7 @@ const loadOrderDetail = async (id) => {
 		}
 	} catch (error) {
 		console.error('加载订单详情失败:', error)
-		uni.showToast({ title: '加载失败', icon: 'none' })
+		uni.showToast({ title: typeof error === 'string' ? error : '请求失败', icon: 'none' })
 	} finally {
 		loading.value = false
 	}
@@ -471,6 +471,7 @@ const loadPetInfo = async (petId) => {
 		}
 	} catch (error) {
 		console.error('加载宠物信息失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载宠物信息失败', icon: 'none' })
 	}
 }
 
@@ -487,6 +488,7 @@ const loadCustomerInfo = async (customerId) => {
 		}
 	} catch (error) {
 		console.error('加载客户信息失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载客户信息失败', icon: 'none' })
 	}
 }
 
@@ -503,6 +505,7 @@ const loadFulfillerInfo = async (fulfillerId) => {
 		}
 	} catch (error) {
 		console.error('加载履约者信息失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载履约者信息失败', icon: 'none' })
 	}
 }
 
@@ -514,6 +517,7 @@ const loadOrderLogs = async (id) => {
 		fulfillerLogsData.value = list.filter(i => Number(i?.logType) === 1)
 	} catch (error) {
 		console.error('加载订单日志失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载订单日志失败', icon: 'none' })
 		orderLogsData.value = []
 		fulfillerLogsData.value = []
 	}
@@ -525,6 +529,7 @@ const loadComplaints = async (id) => {
 		complaintList.value = res || []
 	} catch (error) {
 		console.error('加载投诉记录失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载投诉记录失败', icon: 'none' })
 		complaintList.value = []
 	}
 }
@@ -535,6 +540,7 @@ const loadServiceChanges = async (id) => {
 		serviceChangeList.value = res || []
 	} catch (error) {
 		console.error('加载服务变更记录失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载服务变更记录失败', icon: 'none' })
 		serviceChangeList.value = []
 	}
 }
@@ -778,7 +784,7 @@ const confirmCancelOrder = async () => {
 	} catch (error) {
 		uni.hideLoading()
 		console.error('取消订单失败:', error)
-		uni.showToast({ title: '取消失败', icon: 'none' })
+		uni.showToast({ title: typeof error === 'string' ? error : '取消失败', icon: 'none' })
 	}
 }
 

+ 4 - 1
pages/order/list/index.vue

@@ -198,6 +198,7 @@ const loadServiceTypes = async () => {
 		}
 	} catch (error) {
 		console.error('加载服务类型失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载服务类型失败', icon: 'none' })
 	}
 }
 
@@ -217,6 +218,7 @@ const loadAreaStations = async () => {
 		}
 	} catch (error) {
 		console.error('加载区域站点失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载区域站点失败', icon: 'none' })
 	}
 }
 
@@ -326,6 +328,7 @@ const loadOrders = async () => {
 		}
 	} catch (error) {
 		console.error('加载订单列表失败:', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '加载订单列表失败', icon: 'none' })
 	} finally {
 		loading.value = false
 	}
@@ -402,7 +405,7 @@ const confirmCancelOrder = async () => {
 	} catch (error) {
 		uni.hideLoading()
 		console.error('取消订单失败:', error)
-		uni.showToast({ title: '取消失败', icon: 'none' })
+		uni.showToast({ title: typeof error === 'string' ? error : '取消失败', icon: 'none' })
 	}
 }
 

+ 2 - 1
pages/service/all/index.vue

@@ -99,6 +99,7 @@ const fetchMyServiceIds = async () => {
 		console.log('我的可用服务ID:', myServiceIds.value)
 	} catch (error) {
 		console.error('获取可用服务列表失败,将展示全部服务', error)
+		uni.showToast({ title: typeof error === 'string' ? error : '获取可用服务失败', icon: 'none' })
 		myServiceIds.value = []
 	}
 }
@@ -136,7 +137,7 @@ const loadData = async () => {
 		console.log('最终数据结构:', allData.value)
 	} catch (error) {
 		console.error('加载服务数据失败:', error)
-		uni.showToast({ title: '加载失败', icon: 'none' })
+		uni.showToast({ title: typeof error === 'string' ? error : '加载失败', icon: 'none' })
 	}
 }
 

BIN
unpackage/cache/apk/__UNI__F19BBAD_cm.apk


+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://app.liuyingyong.cn/build/download/0b622d70-3ee7-11f1-8303-55599e2b379a
+https://app.liuyingyong.cn/build/download/128eef30-42d4-11f1-84d7-c775162fe5be

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


+ 20 - 0
unpackage/cache/appleConfig.ini

@@ -0,0 +1,20 @@
+[appleAppid]
+appleAppid=pet.hoomeng.merchant
+
+[appstore]
+appstore=
+
+[iosStyle]
+iosStyle=
+
+[universalLinks]
+universalLinks=
+spaceid=
+
+[universalLinks_qq]
+universalLinks_qq=
+spaceid_qq=
+
+[universalLinks_weibo]
+universalLinks_weibo=
+spaceid_weibo=

+ 3 - 0
unpackage/cache/certdataios

@@ -0,0 +1,3 @@
+iosProfile=E:/CodeProjects/Yingpaipay/Pet System/pet-system-merchant-app/certificate/merchant.mobileprovision
+ioscertFile=E:/CodeProjects/Yingpaipay/Pet System/pet-system-merchant-app/certificate/DistributionCer.p12
+ioscertPassword=hcFdg96LpDRMooDdSsdBGw==

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
unpackage/cache/wgt/__UNI__F19BBAD/app-config-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/app-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/manifest.json


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/login/index.css


+ 1 - 1
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/agreement/detail/index.css

@@ -1 +1 @@
-.nav-bar[data-v-ad1d7ee4]{position:-webkit-sticky;position:sticky;top:0;z-index:999;width:100%}.nav-content[data-v-ad1d7ee4]{height:44px;display:flex;align-items:center;padding:0 1rem;position:relative}.left-box[data-v-ad1d7ee4]{position:absolute;left:1rem;z-index:10;padding:.625rem 1.25rem .625rem 0}.back-arrow[data-v-ad1d7ee4]{width:.6875rem;height:.6875rem;border-left:.125rem solid;border-top:.125rem solid;transform:rotate(-45deg);background:transparent}.title-box[data-v-ad1d7ee4]{flex:1;display:flex;justify-content:center;align-items:center}.title-text[data-v-ad1d7ee4]{font-size:1rem;font-weight:700}.right-box[data-v-ad1d7ee4]{position:absolute;right:1rem}.agreement-detail-page[data-v-dcb64685]{min-height:100vh;background:#f7f8fa;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.content-card[data-v-dcb64685]{background:#fff;margin:.75rem;border-radius:.75rem;padding:1.25rem 1rem;box-shadow:0 .125rem .375rem rgba(0,0,0,.03)}.title[data-v-dcb64685]{display:block;font-size:1.125rem;font-weight:800;color:#333;margin-bottom:1rem;position:relative;padding-bottom:.75rem;border-bottom:.0625rem solid #EEEEEE}.rich-content[data-v-dcb64685]{display:block;font-size:.875rem;color:#555;line-height:1.8;word-break:break-all}.loading-state[data-v-dcb64685]{text-align:center;padding:3.125rem 0;color:#999;font-size:.875rem}
+.nav-bar[data-v-ad1d7ee4]{position:-webkit-sticky;position:sticky;top:0;z-index:999;width:100%}.nav-content[data-v-ad1d7ee4]{height:44px;display:flex;align-items:center;padding:0 1rem;position:relative}.left-box[data-v-ad1d7ee4]{position:absolute;left:1rem;z-index:10;padding:.625rem 1.25rem .625rem 0}.back-arrow[data-v-ad1d7ee4]{width:.6875rem;height:.6875rem;border-left:.125rem solid;border-top:.125rem solid;transform:rotate(-45deg);background:transparent}.title-box[data-v-ad1d7ee4]{flex:1;display:flex;justify-content:center;align-items:center}.title-text[data-v-ad1d7ee4]{font-size:1rem;font-weight:700}.right-box[data-v-ad1d7ee4]{position:absolute;right:1rem}.agreement-detail-page[data-v-cd03e75b]{min-height:100vh;background:#f7f8fa;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.content-card[data-v-cd03e75b]{background:#fff;margin:.75rem;border-radius:.75rem;padding:1.25rem 1rem;box-shadow:0 .125rem .375rem rgba(0,0,0,.03)}.title[data-v-cd03e75b]{display:block;font-size:1.125rem;font-weight:800;color:#333;margin-bottom:1rem;position:relative;padding-bottom:.75rem;border-bottom:.0625rem solid #EEEEEE}.rich-content[data-v-cd03e75b]{display:block;font-size:.875rem;color:#555;line-height:1.8;word-break:break-all}.loading-state[data-v-cd03e75b]{text-align:center;padding:3.125rem 0;color:#999;font-size:.875rem}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/complaint/list/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/complaint/submit/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/fee/statistics/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/add/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/detail/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/edit/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/pet/list/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/account-delete/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/change-password/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/settings/profile/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/add/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/detail/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/edit/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/my/user/list/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/order/apply/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/order/detail/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/order/list/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__F19BBAD/pages/service/all/index.css


BIN
unpackage/release/apk/__UNI__F19BBAD__20260427180258.apk → unpackage/release/apk/__UNI__F19BBAD__20260513192424.apk


+ 2 - 1
utils/config.js

@@ -2,7 +2,8 @@
 
 // 接口基础地址
 // export const BASE_URL = 'http://192.168.1.118:8080'
-export const BASE_URL = 'http://111.228.46.254/api'
+export const BASE_URL = 'http://www.hoomeng.pet/api'
+// export const BASE_URL = 'http://111.228.46.254/api'
 // export const BASE_URL = 'http://192.168.1.205:8080'
 
 // 请求超时时间(毫秒)

+ 17 - 20
utils/request.js

@@ -18,27 +18,24 @@ const request = (options = {}) => {
 				...options.header
 			},
 			timeout: TIMEOUT,
-			success: (res) => {
-				if (res.statusCode !== 200) {
-					uni.showToast({ title: '网络请求异常', icon: 'none' })
-					return reject(res)
-				}
-				const { code, msg, data, total, rows } = res.data
-				if (code === 200) {
-					resolve(rows !== undefined ? { total, rows } : data)
-				} else if (code === 401) {
-					uni.removeStorageSync('token')
-					uni.reLaunch({ url: '/pages/login/index' })
-					reject(res.msg)
-				} else {
-					uni.showToast({ title: msg || '操作失败', icon: 'none' })
-					reject(res.msg)
-				}
-			},
-			fail: (err) => {
-				uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' })
-				reject(err)
+		success: (res) => {
+			if (res.statusCode !== 200) {
+				return reject(res.data?.msg || res.data?.message || '网络请求异常')
+			}
+			const { code, msg, data, total, rows } = res.data
+			if (code === 200) {
+				resolve(rows !== undefined ? { total, rows } : data)
+			} else if (code === 401) {
+				uni.removeStorageSync('token')
+				uni.reLaunch({ url: '/pages/login/index' })
+				reject(msg || '未登录,请重新登录')
+			} else {
+				reject(msg || '操作失败')
 			}
+		},
+		fail: (err) => {
+			reject(err?.errMsg || err?.message || '网络异常,请稍后重试')
+		}
 		})
 	})
 }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác