diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773734622145.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773734622145.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773734622145.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735402189.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735402189.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735402189.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735626131.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735626131.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735626131.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735679673.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735679673.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735679673.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735854280.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735854280.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735854280.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735934893.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735934893.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735934893.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773735986659.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773735986659.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773735986659.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773736207583.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773736207583.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773736207583.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773736654977.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773736654977.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773736654977.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773737102792.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773737102792.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773737102792.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773737209038.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773737209038.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773737209038.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773805322131.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773805322131.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773805322131.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773806125077.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773806125077.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773806125077.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773806280580.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773806280580.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773806280580.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773806509028.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773806509028.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773806509028.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773807262780.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773807262780.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773807262780.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773815711277.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773815711277.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773815711277.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773815744161.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773815744161.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773815744161.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773815836943.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773815836943.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773815836943.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773816532749.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773816532749.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773816532749.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773816697404.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773816697404.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773816697404.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773817546156.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773817546156.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773817546156.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773817672367.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773817672367.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773817672367.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773817678653.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773817678653.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773817678653.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773818370904.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773818370904.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773818370904.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773818446712.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773818446712.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773818446712.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773819301511.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773819301511.kotlin_module deleted file mode 100644 index 070f7eb5..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773819301511.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/META-INF/main-1773819441039.kotlin_module b/unpackage/cache/.app-android/class/META-INF/main-1773819441039.kotlin_module deleted file mode 100644 index ef915de2..00000000 Binary files a/unpackage/cache/.app-android/class/META-INF/main-1773819441039.kotlin_module and /dev/null differ diff --git a/unpackage/cache/.app-android/class/ktClasss.ser b/unpackage/cache/.app-android/class/ktClasss.ser deleted file mode 100644 index 8cb40438..00000000 Binary files a/unpackage/cache/.app-android/class/ktClasss.ser and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddAddressParams.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddAddressParams.class deleted file mode 100644 index ee10d9d8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddAddressParams.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address.class deleted file mode 100644 index 2c2bfaa4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressForm.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressForm.class deleted file mode 100644 index 44f88816..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressForm.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressFormReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressFormReactiveObject.class deleted file mode 100644 index 7a321aa7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressFormReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItem.class deleted file mode 100644 index 74cff2c3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItemReactiveObject.class deleted file mode 100644 index 9c3886a3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressReactiveObject.class deleted file mode 100644 index 079d8a3d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressType.class deleted file mode 100644 index 135c585e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressTypeReactiveObject.class deleted file mode 100644 index 3b24f9d4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AddressTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address__1.class deleted file mode 100644 index e8d62ba0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Address__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$refreshTokenIfNeeded$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$refreshTokenIfNeeded$1.class deleted file mode 100644 index 09c09467..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$refreshTokenIfNeeded$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$doOnce$1$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$doOnce$1$1$1$1.class deleted file mode 100644 index b093ef92..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$doOnce$1$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$1.class deleted file mode 100644 index 5d63a87a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$2.class deleted file mode 100644 index 96523216..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1$invokeSuspend$lambda$3$lambda$2$$inlined$request$2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1.class deleted file mode 100644 index 3c825208..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$request$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$1.class deleted file mode 100644 index 6b7cc136..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$2.class deleted file mode 100644 index 53925917..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1$2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1.class deleted file mode 100644 index f9bb606a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion$upload$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion.class deleted file mode 100644 index 0f4762f3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq.class deleted file mode 100644 index d51c82e1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReq.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqOptions.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqOptions.class deleted file mode 100644 index 21485c85..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqOptions.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqResponse.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqResponse.class deleted file mode 100644 index ccd36b31..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqResponse.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqUploadOptions.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqUploadOptions.class deleted file mode 100644 index 6079ccbe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkReqUploadOptions.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$delete$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$delete$1.class deleted file mode 100644 index e6ff7de3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$delete$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$hydrateSessionFromStorage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$hydrateSessionFromStorage$1.class deleted file mode 100644 index 441d7cb2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$hydrateSessionFromStorage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$insert$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$insert$1.class deleted file mode 100644 index 792edc56..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$insert$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$refreshSession$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$refreshSession$1.class deleted file mode 100644 index dc0577ca..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$refreshSession$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$requestWithAutoRefresh$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$requestWithAutoRefresh$1.class deleted file mode 100644 index 0fdfbf4e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$requestWithAutoRefresh$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$resetPassword$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$resetPassword$1.class deleted file mode 100644 index 38069227..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$resetPassword$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$rpc$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$rpc$1.class deleted file mode 100644 index 5f9ee504..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$rpc$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select$1.class deleted file mode 100644 index 18652873..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select_uts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select_uts$1.class deleted file mode 100644 index 30f476e9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$select_uts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signIn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signIn$1.class deleted file mode 100644 index 3b94a023..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signIn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signOut$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signOut$1.class deleted file mode 100644 index f42d05ed..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signOut$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signUp$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signUp$1.class deleted file mode 100644 index 8a34e65e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$signUp$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$update$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$update$1.class deleted file mode 100644 index 074e6571..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$update$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$updateUserMetadata$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$updateUserMetadata$1.class deleted file mode 100644 index e115715c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa$updateUserMetadata$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa.class deleted file mode 100644 index 1c34c30e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupa.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaCondition.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaCondition.class deleted file mode 100644 index 7ea8a65c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaCondition.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$execute$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$execute$1.class deleted file mode 100644 index fc4a1dae..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$execute$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$1.class deleted file mode 100644 index 00d7c0ce..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$2.class deleted file mode 100644 index a2e517d8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$$inlined$parse$2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$1.class deleted file mode 100644 index 1b0534f0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$2.class deleted file mode 100644 index 50677f14..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1$invokeSuspend$lambda$0$$inlined$parse$2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1.class deleted file mode 100644 index efec3a3c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder$executeAs$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder.class deleted file mode 100644 index 121c97a0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaQueryBuilder.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1$1$payload$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1$1$payload$1.class deleted file mode 100644 index abfe5896..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1$1$payload$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1.class deleted file mode 100644 index bc823d25..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel$_checkUpdates$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel.class deleted file mode 100644 index b83d4992..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaRealtimeChannel.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSelectOptions.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSelectOptions.class deleted file mode 100644 index 2948d8cc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSelectOptions.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSessionInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSessionInfo.class deleted file mode 100644 index cea26a53..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSessionInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSignInResult.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSignInResult.class deleted file mode 100644 index edd25e1a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaSignInResult.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageApi.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageApi.class deleted file mode 100644 index ba71409e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageApi.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1$formData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1$formData$1.class deleted file mode 100644 index d9a10a15..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1$formData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1.class deleted file mode 100644 index 9dbcd093..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket$upload$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket.class deleted file mode 100644 index 0d267e47..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/AkSupaStorageBucket.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecord.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecord.class deleted file mode 100644 index 1eca6468..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecord.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecordReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecordReactiveObject.class deleted file mode 100644 index c2fc9ed8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BalanceRecordReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard.class deleted file mode 100644 index d5572668..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardForm.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardForm.class deleted file mode 100644 index 62dde096..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardForm.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardFormReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardFormReactiveObject.class deleted file mode 100644 index 228fde08..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardFormReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardReactiveObject.class deleted file mode 100644 index 0f04991d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCardReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1.class deleted file mode 100644 index a8e5d6d1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1ReactiveObject.class deleted file mode 100644 index 2ff78bfe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BankCard__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Brand.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Brand.class deleted file mode 100644 index 6dab4980..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Brand.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BrandReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BrandReactiveObject.class deleted file mode 100644 index 974312be..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BrandReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerType.class deleted file mode 100644 index ef0a7491..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerTypeReactiveObject.class deleted file mode 100644 index 87cc461d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/BuyerTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CalendarDay.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CalendarDay.class deleted file mode 100644 index a79b8e1d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CalendarDay.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo.class deleted file mode 100644 index d95fc8e2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfoReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfoReactiveObject.class deleted file mode 100644 index a511e677..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfoReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1.class deleted file mode 100644 index 8879a25d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1ReactiveObject.class deleted file mode 100644 index 8f1efad5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2.class deleted file mode 100644 index 9d850ada..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2ReactiveObject.class deleted file mode 100644 index ed16cb3d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__2ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3.class deleted file mode 100644 index 774e7ca8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3ReactiveObject.class deleted file mode 100644 index 79cfad9e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CapsuleButtonInfo__3ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartGroup.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartGroup.class deleted file mode 100644 index b15ffd5a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartGroup.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartItem.class deleted file mode 100644 index 4fcbc760..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CartItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Category.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Category.class deleted file mode 100644 index e54664ba..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Category.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CategoryReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CategoryReactiveObject.class deleted file mode 100644 index 683f638e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CategoryReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatMessage.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatMessage.class deleted file mode 100644 index a5d98d9d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatMessage.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatRoom.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatRoom.class deleted file mode 100644 index f14f1757..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ChatRoom.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemType.class deleted file mode 100644 index dd02c0d3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemTypeReactiveObject.class deleted file mode 100644 index 3995a235..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CheckoutItemTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConfirmReceiptResponse.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConfirmReceiptResponse.class deleted file mode 100644 index 2722588b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConfirmReceiptResponse.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsType.class deleted file mode 100644 index bf8493ed..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsTypeReactiveObject.class deleted file mode 100644 index ebf01c74..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ConsumptionStatsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Coupon.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Coupon.class deleted file mode 100644 index 2b3c861f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Coupon.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponReactiveObject.class deleted file mode 100644 index 599aa1cc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType.class deleted file mode 100644 index d3477ab6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateTypeReactiveObject.class deleted file mode 100644 index a5213a6b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1.class deleted file mode 100644 index c5dbe910..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1ReactiveObject.class deleted file mode 100644 index 133bed8e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTemplateType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponType.class deleted file mode 100644 index 537766f3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTypeReactiveObject.class deleted file mode 100644 index 3f40cac8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CouponTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CreateOrderParams.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/CreateOrderParams.class deleted file mode 100644 index ad88c720..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/CreateOrderParams.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoType.class deleted file mode 100644 index b66c8aae..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoTypeReactiveObject.class deleted file mode 100644 index d6173e0c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryInfoTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionType.class deleted file mode 100644 index 22607ba6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionTypeReactiveObject.class deleted file mode 100644 index 09c8691d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeliveryOptionTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfo.class deleted file mode 100644 index 165a7447..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfoReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfoReactiveObject.class deleted file mode 100644 index f86331db..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceInfoReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceState.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceState.class deleted file mode 100644 index f0675245..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceState.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceStateReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceStateReactiveObject.class deleted file mode 100644 index 2067e4a7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/DeviceStateReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecord.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecord.class deleted file mode 100644 index ea4cf233..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecord.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecordReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecordReactiveObject.class deleted file mode 100644 index 1499e305..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExchangeRecordReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetail.class deleted file mode 100644 index aeb7b7e1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetailReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetailReactiveObject.class deleted file mode 100644 index 4abd26cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExpiringDetailReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItem.class deleted file mode 100644 index 1094a5f7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItemReactiveObject.class deleted file mode 100644 index d079af85..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ExtraInfoItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteType.class deleted file mode 100644 index d7923ee2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteTypeReactiveObject.class deleted file mode 100644 index 093b8318..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FavoriteTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShop.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShop.class deleted file mode 100644 index 5c10741f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShop.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShopReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShopReactiveObject.class deleted file mode 100644 index 18b81739..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FollowedShopReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintGroup.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintGroup.class deleted file mode 100644 index 174596e0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintGroup.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintItemType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintItemType.class deleted file mode 100644 index 8b0ade16..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintItemType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintSaveType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintSaveType.class deleted file mode 100644 index 82395fdd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintSaveType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintType.class deleted file mode 100644 index c5314afe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintTypeReactiveObject.class deleted file mode 100644 index 5c25e137..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/FootprintTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$Companion.class deleted file mode 100644 index 4fa2a462..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$checkExistingSession$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$checkExistingSession$1.class deleted file mode 100644 index 2b2423be..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp$checkExistingSession$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp.class deleted file mode 100644 index 1dc86a5b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenApp.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index 624c4962..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$decreaseQuantity$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$decreaseQuantity$1$1.class deleted file mode 100644 index 3e32f058..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$decreaseQuantity$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$deleteSelectedItems$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$deleteSelectedItems$1$1.class deleted file mode 100644 index ceeb295f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$deleteSelectedItems$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$goToCheckout$1$selectedItems$2$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$goToCheckout$1$selectedItems$2$1.class deleted file mode 100644 index cb1167ba..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$goToCheckout$1$selectedItems$2$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$increaseQuantity$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$increaseQuantity$1$1.class deleted file mode 100644 index de18e3bd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$increaseQuantity$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$loadCartData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$loadCartData$1$1.class deleted file mode 100644 index 469750ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$loadCartData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$refreshRecommend$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$refreshRecommend$1$1.class deleted file mode 100644 index 84f7db1a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$refreshRecommend$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelect$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelect$1$1.class deleted file mode 100644 index cae2ef88..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelect$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelectAll$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelectAll$1$1.class deleted file mode 100644 index e932adbe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleSelectAll$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleShopSelect$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleShopSelect$1$1.class deleted file mode 100644 index 797d901d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion$setup$1$toggleShopSelect$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion.class deleted file mode 100644 index 0e5543e2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart.class deleted file mode 100644 index d9ea11b7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCart.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$addToCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$addToCart$1.class deleted file mode 100644 index 354bf43d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$addToCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_addToCart_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_addToCart_fn$1.class deleted file mode 100644 index 3ed86259..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_addToCart_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadCategories_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadCategories_fn$1.class deleted file mode 100644 index 9d85e35d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadCategories_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1$1.class deleted file mode 100644 index 88fb361f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1.class deleted file mode 100644 index cb50a885..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadProducts_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadSubCategories_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadSubCategories_fn$1.class deleted file mode 100644 index a492fb26..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_loadSubCategories_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectPrimaryCategory_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectPrimaryCategory_fn$1.class deleted file mode 100644 index d39029fc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectPrimaryCategory_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectSubCategory_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectSubCategory_fn$1.class deleted file mode 100644 index fde58a55..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$gen_selectSubCategory_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$getPrimaryItemBgColor$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$getPrimaryItemBgColor$1.class deleted file mode 100644 index 98131443..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$getPrimaryItemBgColor$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isPrimaryActive$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isPrimaryActive$1.class deleted file mode 100644 index b45f17cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isPrimaryActive$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isSubActive$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isSubActive$1.class deleted file mode 100644 index df37e0ec..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$isSubActive$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadCategories$1.class deleted file mode 100644 index 4398b184..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadMore$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadMore$1.class deleted file mode 100644 index c237cd92..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadMore$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadProducts$1.class deleted file mode 100644 index 129bd929..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadSubCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadSubCategories$1.class deleted file mode 100644 index ef01caee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$loadSubCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToCart$1.class deleted file mode 100644 index 3408f256..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToProduct$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToProduct$1.class deleted file mode 100644 index dc575ec7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToProduct$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToSearch$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToSearch$1.class deleted file mode 100644 index d51d4fab..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$navigateToSearch$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onCamera$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onCamera$1.class deleted file mode 100644 index aa503249..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onCamera$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onScan$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onScan$1.class deleted file mode 100644 index f4675be8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$onScan$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectPrimaryCategory$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectPrimaryCategory$1.class deleted file mode 100644 index 077166c4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectPrimaryCategory$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectSubCategory$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectSubCategory$1.class deleted file mode 100644 index fa574618..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion$setup$1$selectSubCategory$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion.class deleted file mode 100644 index c3b0fd66..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory.class deleted file mode 100644 index 5bff1744..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainCategory.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index f9e91005..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadHotProducts$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadHotProducts$1$1.class deleted file mode 100644 index 95120cda..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadHotProducts$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadRecommendedProducts$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadRecommendedProducts$1$1.class deleted file mode 100644 index bf77e0e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$doLoadRecommendedProducts$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$initData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$initData$1$1.class deleted file mode 100644 index 978eb8e6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$initData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadBrands$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadBrands$1$1.class deleted file mode 100644 index 4b1f2f9d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadBrands$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadCategories$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadCategories$1$1.class deleted file mode 100644 index 3df4f7bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadCategories$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotKeywords$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotKeywords$1$1.class deleted file mode 100644 index 2e863576..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotKeywords$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotProducts$1.class deleted file mode 100644 index 96d8adfc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadHotProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadMore$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadMore$1$1.class deleted file mode 100644 index 447b778a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadMore$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadRecommendedProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadRecommendedProducts$1.class deleted file mode 100644 index 3cc00365..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadRecommendedProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadSubCategories$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadSubCategories$1$1.class deleted file mode 100644 index 028af154..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$loadSubCategories$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onParentCategoryClick$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onParentCategoryClick$1$1.class deleted file mode 100644 index f9ad7016..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onParentCategoryClick$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onRefresh$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onRefresh$1$1.class deleted file mode 100644 index 5da31647..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion$setup$1$onRefresh$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion.class deleted file mode 100644 index 9762515e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex.class deleted file mode 100644 index 9217b1cf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$claimCoupon$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$claimCoupon$1$1.class deleted file mode 100644 index 3405ab5d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$claimCoupon$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$loadMessages$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$loadMessages$1$1.class deleted file mode 100644 index ab298358..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion$setup$1$loadMessages$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion.class deleted file mode 100644 index 42c5005e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages.class deleted file mode 100644 index c5037c17..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainMessages.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$Companion.class deleted file mode 100644 index 3cae11d4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$applyRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$applyRefund$1.class deleted file mode 100644 index 090458f1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$applyRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindEmail$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindEmail$1.class deleted file mode 100644 index 24aae9b7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindEmail$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindPhone$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindPhone$1.class deleted file mode 100644 index c19c1623..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$bindPhone$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$calculateLevel$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$calculateLevel$1.class deleted file mode 100644 index 25007940..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$calculateLevel$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$cancelOrderAction$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$cancelOrderAction$1.class deleted file mode 100644 index 11751ada..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$cancelOrderAction$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$changePassword$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$changePassword$1.class deleted file mode 100644 index 9230deff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$changePassword$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$confirmReceive$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$confirmReceive$1.class deleted file mode 100644 index 7e188cff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$confirmReceive$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactSeller$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactSeller$1.class deleted file mode 100644 index 716dd953..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactSeller$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactService$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactService$1.class deleted file mode 100644 index beb83497..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$contactService$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$deleteOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$deleteOrder$1.class deleted file mode 100644 index 63cde7da..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$deleteOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$editProfile$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$editProfile$1.class deleted file mode 100644 index 621ddc03..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$editProfile$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatDateTime$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatDateTime$1.class deleted file mode 100644 index a7e1f5cc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatDateTime$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatTime$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatTime$1.class deleted file mode 100644 index 9b717762..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$formatTime$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadOrders_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadOrders_fn$1.class deleted file mode 100644 index 4f9cc2f0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadOrders_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadUserProfile_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadUserProfile_fn$1.class deleted file mode 100644 index 240d1dfd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_loadUserProfile_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_updateCouponCount_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_updateCouponCount_fn$1.class deleted file mode 100644 index 9d38ee11..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$gen_updateCouponCount_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getMerchantIdFromOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getMerchantIdFromOrder$1.class deleted file mode 100644 index b0473386..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getMerchantIdFromOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderItemCount$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderItemCount$1.class deleted file mode 100644 index 1dc3204c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderItemCount$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderMainImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderMainImage$1.class deleted file mode 100644 index b1f2c96c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderMainImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSectionTitle$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSectionTitle$1.class deleted file mode 100644 index 8da9435f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSectionTitle$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderShopName$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderShopName$1.class deleted file mode 100644 index 90c70c37..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderShopName$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSpec$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSpec$1.class deleted file mode 100644 index 3430348d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderSpec$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusClass$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusClass$1.class deleted file mode 100644 index a19d2d4d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusClass$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusText$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusText$1.class deleted file mode 100644 index be86c8ac..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderStatusText$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderTitle$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderTitle$1.class deleted file mode 100644 index 8a9b760c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getOrderTitle$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getUserLevel$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getUserLevel$1.class deleted file mode 100644 index 4399eb76..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$getUserLevel$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goShopping$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goShopping$1.class deleted file mode 100644 index 1b762818..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goShopping$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToAddress$1.class deleted file mode 100644 index d12e6f7f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToBalance$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToBalance$1.class deleted file mode 100644 index 016ea221..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToBalance$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToCoupons$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToCoupons$1.class deleted file mode 100644 index d3e0454e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToCoupons$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFavorites$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFavorites$1.class deleted file mode 100644 index c1aff638..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFavorites$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFollowedShops$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFollowedShops$1.class deleted file mode 100644 index 290076b0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFollowedShops$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFootprint$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFootprint$1.class deleted file mode 100644 index 81933612..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToFootprint$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMember$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMember$1.class deleted file mode 100644 index 52b7a1d7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMember$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMessages$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMessages$1.class deleted file mode 100644 index b2f51729..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMessages$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMySubscriptions$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMySubscriptions$1.class deleted file mode 100644 index 4b52d1e7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToMySubscriptions$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrderReviews$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrderReviews$1.class deleted file mode 100644 index 520ab7d4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrderReviews$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrders$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrders$1.class deleted file mode 100644 index c29f96f4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToOrders$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToPoints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToPoints$1.class deleted file mode 100644 index 27eafbe5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToPoints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToProductFromOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToProductFromOrder$1.class deleted file mode 100644 index bf30e7e8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToProductFromOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToRefund$1.class deleted file mode 100644 index fdd6fb72..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToSettings$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToSettings$1.class deleted file mode 100644 index 9c73b61b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToSettings$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToShare$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToShare$1.class deleted file mode 100644 index 8441b0fb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToShare$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToWallet$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToWallet$1.class deleted file mode 100644 index 7b8df4f6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$goToWallet$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderAction$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderAction$1.class deleted file mode 100644 index 7cd10501..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderAction$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderUpdated$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderUpdated$1.class deleted file mode 100644 index 28091a15..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$handleOrderUpdated$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$initPage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$initPage$1.class deleted file mode 100644 index 09457f14..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$initPage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadConsumptionStats$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadConsumptionStats$1.class deleted file mode 100644 index 265332da..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadConsumptionStats$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadOrders$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadOrders$1.class deleted file mode 100644 index d99c9e97..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadOrders$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadUserProfile$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadUserProfile$1.class deleted file mode 100644 index 1ae87b4e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$loadUserProfile$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$payOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$payOrder$1.class deleted file mode 100644 index eac95463..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$payOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$refreshData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$refreshData$1.class deleted file mode 100644 index 1b8e93ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$refreshData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$remindShipping$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$remindShipping$1.class deleted file mode 100644 index d8f8a103..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$remindShipping$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$repurchase$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$repurchase$1.class deleted file mode 100644 index 78d5ed82..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$repurchase$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$reviewOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$reviewOrder$1.class deleted file mode 100644 index 69c21d4b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$reviewOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$showOrderMenu$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$showOrderMenu$1.class deleted file mode 100644 index 37fc90ac..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$showOrderMenu$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchOrderTab$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchOrderTab$1.class deleted file mode 100644 index e74413e7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchOrderTab$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchStatsPeriod$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchStatsPeriod$1.class deleted file mode 100644 index 0f9589f6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$switchStatsPeriod$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$updateCouponCount$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$updateCouponCount$1.class deleted file mode 100644 index 2763b595..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$updateCouponCount$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewLogistics$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewLogistics$1.class deleted file mode 100644 index 04001c39..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewLogistics$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewOrderDetail$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewOrderDetail$1.class deleted file mode 100644 index 6838e967..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewOrderDetail$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewRefundProgress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewRefundProgress$1.class deleted file mode 100644 index 45f6c4dc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile$viewRefundProgress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile.class deleted file mode 100644 index be1234ce..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMainProfile.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$loadAddress$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$loadAddress$1$1.class deleted file mode 100644 index e3e9892c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$loadAddress$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1$invokeSuspend$$inlined$assign$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1$invokeSuspend$$inlined$assign$1.class deleted file mode 100644 index 67a0bf1b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1$invokeSuspend$$inlined$assign$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1.class deleted file mode 100644 index 201a014c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion$setup$1$saveAddress$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion.class deleted file mode 100644 index 599ddc23..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit.class deleted file mode 100644 index e26acbdd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressEdit.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$loadAddresses$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$loadAddresses$1$1.class deleted file mode 100644 index 1e8f33e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$loadAddresses$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$selectAddress$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$selectAddress$1$1.class deleted file mode 100644 index 92b4db1d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion$setup$1$selectAddress$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion.class deleted file mode 100644 index f0a09719..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList.class deleted file mode 100644 index 74e1e009..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerAddressList.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$loadOrderInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$loadOrderInfo$1$1.class deleted file mode 100644 index e6ff33dc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$loadOrderInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1$result$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1$result$1.class deleted file mode 100644 index b54a6173..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1$result$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1.class deleted file mode 100644 index 4cf5b32d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion$setup$1$submitRefund$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion.class deleted file mode 100644 index 6cb05e6a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund.class deleted file mode 100644 index de82a177..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerApplyRefund.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadBalance$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadBalance$1$1.class deleted file mode 100644 index fd3b3d8f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadBalance$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index 3ebdcc8a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadRecords$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadRecords$1$1.class deleted file mode 100644 index dfa4c3a1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion$setup$1$loadRecords$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion.class deleted file mode 100644 index d9f577ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex.class deleted file mode 100644 index 802430ab..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBalanceIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion$setup$1$submit$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion$setup$1$submit$1$1.class deleted file mode 100644 index 55cd45c3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion$setup$1$submit$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion.class deleted file mode 100644 index f72432ae..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd.class deleted file mode 100644 index 6c13fbee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsAdd.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index 50e2ee32..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion.class deleted file mode 100644 index 3d2cbca2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex.class deleted file mode 100644 index a1f0ffd1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerBankCardsIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$doUploadImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$doUploadImage$1.class deleted file mode 100644 index 36c93bbc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$doUploadImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_doUploadImage_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_doUploadImage_fn$1.class deleted file mode 100644 index 84102e9b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_doUploadImage_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadChatHistory_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadChatHistory_fn$1.class deleted file mode 100644 index 7a0fdc76..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadChatHistory_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadMerchantInfo_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadMerchantInfo_fn$1.class deleted file mode 100644 index ebdb1ff2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_loadMerchantInfo_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_setupRealtimeSubscription_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_setupRealtimeSubscription_fn$1.class deleted file mode 100644 index 58da8a7a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$gen_setupRealtimeSubscription_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$getCurrentTime$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$getCurrentTime$1.class deleted file mode 100644 index 186561c4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$getCurrentTime$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$insertEmoji$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$insertEmoji$1.class deleted file mode 100644 index 6f690b18..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$insertEmoji$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadChatHistory$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadChatHistory$1.class deleted file mode 100644 index fe1635b9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadChatHistory$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadMerchantInfo$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadMerchantInfo$1.class deleted file mode 100644 index 92e3620b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$loadMerchantInfo$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$onScrollToUpper$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$onScrollToUpper$1.class deleted file mode 100644 index e9c2ad8d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$onScrollToUpper$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$previewImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$previewImage$1.class deleted file mode 100644 index ac6cf857..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$previewImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$scrollToBottom$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$scrollToBottom$1.class deleted file mode 100644 index cffded8a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$scrollToBottom$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$sendMessage$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$sendMessage$1$1.class deleted file mode 100644 index 487b3098..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$sendMessage$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$setupRealtimeSubscription$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$setupRealtimeSubscription$1.class deleted file mode 100644 index 158d5f42..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$setupRealtimeSubscription$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showEmojiPicker$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showEmojiPicker$1.class deleted file mode 100644 index f3e19fdc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showEmojiPicker$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showImagePicker$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showImagePicker$1.class deleted file mode 100644 index 36ff5f4a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showImagePicker$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreActions$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreActions$1.class deleted file mode 100644 index 775a461e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreActions$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreTools$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreTools$1.class deleted file mode 100644 index 87c35ebe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion$setup$1$showMoreTools$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion.class deleted file mode 100644 index 45e0c0ff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat.class deleted file mode 100644 index 6e0e4550..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerChat.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$formatSpecs$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$formatSpecs$1.class deleted file mode 100644 index 1e6dd0cc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$formatSpecs$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_initCheckoutData_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_initCheckoutData_fn$1.class deleted file mode 100644 index eb2fca25..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_initCheckoutData_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1$1$1.class deleted file mode 100644 index 4e6334ee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1.class deleted file mode 100644 index d566ebcb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadAddressList_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1$1$1.class deleted file mode 100644 index ac0a1596..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1.class deleted file mode 100644 index 9ce979fe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadDefaultAddress_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadFromLocalStorage_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadFromLocalStorage_fn$1.class deleted file mode 100644 index b5b9957d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$gen_loadFromLocalStorage_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getCurrentUserId$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getCurrentUserId$1.class deleted file mode 100644 index 00357307..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getCurrentUserId$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getObjectKeys$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getObjectKeys$1.class deleted file mode 100644 index 564dc82d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$getObjectKeys$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1$1$1.class deleted file mode 100644 index 4738c685..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1.class deleted file mode 100644 index a9fb1dd4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$handleSaveConfirm$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$initCheckoutData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$initCheckoutData$1.class deleted file mode 100644 index b42bf1d2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$initCheckoutData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadAddressList$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadAddressList$1.class deleted file mode 100644 index a992c325..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadAddressList$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadCheckoutData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadCheckoutData$1.class deleted file mode 100644 index c1ff50fe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadCheckoutData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadDefaultAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadDefaultAddress$1.class deleted file mode 100644 index be4bed0a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadDefaultAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadFromLocalStorage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadFromLocalStorage$1.class deleted file mode 100644 index 3c19bd0d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$loadFromLocalStorage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$onShow__1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$onShow__1$1.class deleted file mode 100644 index c6d1e21e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$onShow__1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1$1$1.class deleted file mode 100644 index 23fe2482..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1.class deleted file mode 100644 index e47189b5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$processCheckoutItems$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$saveNewAddress$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$saveNewAddress$1$1.class deleted file mode 100644 index 564dd81d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$saveNewAddress$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$1.class deleted file mode 100644 index 4cf0037d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$2$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$2$1.class deleted file mode 100644 index e249a517..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1$1$2$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1.class deleted file mode 100644 index 02dc9700..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion$setup$1$submitOrder$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion.class deleted file mode 100644 index 0def8009..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout.class deleted file mode 100644 index 39838e5d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCheckout.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion$setup$1$loadCoupons$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion$setup$1$loadCoupons$1$1.class deleted file mode 100644 index 74ae42eb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion$setup$1$loadCoupons$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion.class deleted file mode 100644 index cbdba73b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons.class deleted file mode 100644 index 9a6e7004..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerCoupons.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index 1a9a68ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$loadFavorites$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$loadFavorites$1$1.class deleted file mode 100644 index c58e3e2e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion$setup$1$loadFavorites$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion.class deleted file mode 100644 index ce2da1b0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites.class deleted file mode 100644 index 3c7e91f5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFavorites.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index 15398b9c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$loadFootprints$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$loadFootprints$1$1.class deleted file mode 100644 index 95e256a8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion$setup$1$loadFootprints$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion.class deleted file mode 100644 index da060a28..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint.class deleted file mode 100644 index c8dbced9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerFootprint.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion$setup$1$loadLogisticsInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion$setup$1$loadLogisticsInfo$1$1.class deleted file mode 100644 index e4fa36d6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion$setup$1$loadLogisticsInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion.class deleted file mode 100644 index ce672c65..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics.class deleted file mode 100644 index 8771aebe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerLogistics.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLevels$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLevels$1$1.class deleted file mode 100644 index b3b1409d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLevels$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLogs$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLogs$1$1.class deleted file mode 100644 index 87b86339..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadLogs$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadMemberInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadMemberInfo$1$1.class deleted file mode 100644 index 573ef657..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion$setup$1$loadMemberInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion.class deleted file mode 100644 index 66d79a3f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex.class deleted file mode 100644 index 532c2c8e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMemberIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion$setup$1$loadMessage$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion$setup$1$loadMessage$1$1.class deleted file mode 100644 index 0c719ca3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion$setup$1$loadMessage$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion.class deleted file mode 100644 index 0c11e22d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail.class deleted file mode 100644 index d52a2c7f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMessageDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$doDelete$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$doDelete$1$1.class deleted file mode 100644 index b09caf1c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$doDelete$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadPendingItems$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadPendingItems$1$1.class deleted file mode 100644 index afe91725..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadPendingItems$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadReviews$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadReviews$1$1.class deleted file mode 100644 index 7b0059d0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$loadReviews$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$submitAppend$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$submitAppend$1$1.class deleted file mode 100644 index d2d7fa06..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion$setup$1$submitAppend$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion.class deleted file mode 100644 index 7d8ff287..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews.class deleted file mode 100644 index e1080e55..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerMyReviews.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doApplyRefund$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doApplyRefund$1$1.class deleted file mode 100644 index 3f2fb151..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doApplyRefund$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doCancelOrder$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doCancelOrder$1$1.class deleted file mode 100644 index 70644bcd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doCancelOrder$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doConfirmReceive$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doConfirmReceive$1$1.class deleted file mode 100644 index ac54f569..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$doConfirmReceive$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$formatSpecs$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$formatSpecs$1.class deleted file mode 100644 index 0095c4bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$formatSpecs$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadOrderDetail$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadOrderDetail$1$1.class deleted file mode 100644 index 43da407d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadOrderDetail$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadShopInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadShopInfo$1$1.class deleted file mode 100644 index e5834fc6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$loadShopInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$rePurchase$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$rePurchase$1$1.class deleted file mode 100644 index 27497c0c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$rePurchase$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$remindDelivery$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$remindDelivery$1$1.class deleted file mode 100644 index 1f164300..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$remindDelivery$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$shareForFree$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$shareForFree$1$1.class deleted file mode 100644 index 8ca4b9a0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion$setup$1$shareForFree$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion.class deleted file mode 100644 index 8825ded4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail.class deleted file mode 100644 index fd76b428..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrderDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doCancelRefund$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doCancelRefund$1$1.class deleted file mode 100644 index b2119152..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doCancelRefund$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doConfirmReceipt$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doConfirmReceipt$1$1.class deleted file mode 100644 index 13a0d354..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$doConfirmReceipt$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$formatSpecObj$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$formatSpecObj$1.class deleted file mode 100644 index 045a27e5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$formatSpecObj$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$getCurrentOrderData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$getCurrentOrderData$1.class deleted file mode 100644 index 67a243f5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$getCurrentOrderData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadMerchantPromotionConfigs$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadMerchantPromotionConfigs$1$1.class deleted file mode 100644 index 7a675de7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadMerchantPromotionConfigs$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadOrders$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadOrders$1$1.class deleted file mode 100644 index 30b79894..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$loadOrders$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$parseSpecText$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$parseSpecText$1.class deleted file mode 100644 index 027c6fb4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$parseSpecText$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$remindShipping$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$remindShipping$1$1.class deleted file mode 100644 index 0d02836e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$remindShipping$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$shareForFree$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$shareForFree$1$1.class deleted file mode 100644 index 77a858e7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion$setup$1$shareForFree$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion.class deleted file mode 100644 index 9a91a30a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders.class deleted file mode 100644 index 644612d7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerOrders.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1$1.class deleted file mode 100644 index 52449021..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1.class deleted file mode 100644 index 95a91eaf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$cancelPayment$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1$1.class deleted file mode 100644 index de103bf2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1.class deleted file mode 100644 index 6945cb4a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$confirmPayment$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadOrderInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadOrderInfo$1$1.class deleted file mode 100644 index 3add2895..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadOrderInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadUserBalance$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadUserBalance$1$1.class deleted file mode 100644 index 98b059ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$loadUserBalance$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$verifyPassword$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$verifyPassword$1$1.class deleted file mode 100644 index e76d74b1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion$setup$1$verifyPassword$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion.class deleted file mode 100644 index 9b4ca6b2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment.class deleted file mode 100644 index fed03854..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPayment.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion$setup$1$loadOrderInfo$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion$setup$1$loadOrderInfo$1$1.class deleted file mode 100644 index d8d867ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion$setup$1$loadOrderInfo$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion.class deleted file mode 100644 index bacdc2a6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess.class deleted file mode 100644 index 3a9929f7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPaymentSuccess.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$confirmExchange$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$confirmExchange$1$1.class deleted file mode 100644 index 52059148..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$confirmExchange$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$loadProducts$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$loadProducts$1$1.class deleted file mode 100644 index c25ca99e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion$setup$1$loadProducts$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion.class deleted file mode 100644 index aa161ee9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange.class deleted file mode 100644 index ccbc9390..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchange.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion$setup$1$loadRecords$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion$setup$1$loadRecords$1$1.class deleted file mode 100644 index d7c7bb88..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion$setup$1$loadRecords$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion.class deleted file mode 100644 index 6fe6cfb0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords.class deleted file mode 100644 index 832e7c5e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsExchangeRecords.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index e02903b2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadExpiringPoints$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadExpiringPoints$1$1.class deleted file mode 100644 index 45a688ac..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadExpiringPoints$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadPoints$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadPoints$1$1.class deleted file mode 100644 index b1c99fc2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadPoints$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadRecords$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadRecords$1$1.class deleted file mode 100644 index 7678302b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadRecords$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadSigninStatus$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadSigninStatus$1$1.class deleted file mode 100644 index 3991d658..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion$setup$1$loadSigninStatus$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion.class deleted file mode 100644 index 4f2a12bd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex.class deleted file mode 100644 index 2ffc05fe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$doSignin$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$doSignin$1$1.class deleted file mode 100644 index 677ae321..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$doSignin$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$loadSigninData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$loadSigninData$1$1.class deleted file mode 100644 index 4bee9076..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion$setup$1$loadSigninData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion.class deleted file mode 100644 index 7cfb0977..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin.class deleted file mode 100644 index 7cf02b8c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerPointsSignin.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$1$1.class deleted file mode 100644 index 70ed8853..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$Companion.class deleted file mode 100644 index 081f29a0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$addToCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$addToCart$1.class deleted file mode 100644 index af16672a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$addToCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$buyNow$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$buyNow$1.class deleted file mode 100644 index e1fcf589..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$buyNow$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavorite$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavorite$1.class deleted file mode 100644 index 6123fcce..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavorite$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavoriteStatus$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavoriteStatus$1.class deleted file mode 100644 index a71b82c8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$checkFavoriteStatus$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$claimCoupon$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$claimCoupon$1.class deleted file mode 100644 index 831ec9c9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$claimCoupon$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$contactMerchant$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$contactMerchant$1.class deleted file mode 100644 index 870ecd5d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$contactMerchant$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$copyLink$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$copyLink$1.class deleted file mode 100644 index fc69f2f9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$copyLink$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$decreaseQuantity$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$decreaseQuantity$1.class deleted file mode 100644 index 0037bb46..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$decreaseQuantity$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$formatDate$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$formatDate$1.class deleted file mode 100644 index 2075b20f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$formatDate$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_addToCart_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_addToCart_fn$1.class deleted file mode 100644 index de33c6d1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_addToCart_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_checkFavorite_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_checkFavorite_fn$1.class deleted file mode 100644 index f76ce1e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_checkFavorite_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_claimCoupon_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_claimCoupon_fn$1.class deleted file mode 100644 index e9797aee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_claimCoupon_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadCoupons_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadCoupons_fn$1.class deleted file mode 100644 index 2ceb8732..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadCoupons_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMemberPrice_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMemberPrice_fn$1.class deleted file mode 100644 index fbfd4cf7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMemberPrice_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMerchantInfo_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMerchantInfo_fn$1.class deleted file mode 100644 index cb909ce6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadMerchantInfo_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1$1$specs$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1$1$specs$1.class deleted file mode 100644 index 517aab1e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1$1$specs$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1.class deleted file mode 100644 index 96276848..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_loadProductSkus_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_toggleFavorite_fn$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_toggleFavorite_fn$1.class deleted file mode 100644 index a022fabd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$gen_toggleFavorite_fn$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$generatePoster$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$generatePoster$1.class deleted file mode 100644 index 731b5879..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$generatePoster$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getAvailableStock$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getAvailableStock$1.class deleted file mode 100644 index 70b7a460..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getAvailableStock$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getMaxQuantity$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getMaxQuantity$1.class deleted file mode 100644 index c3cd608f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getMaxQuantity$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getParamsSummary$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getParamsSummary$1.class deleted file mode 100644 index b13a36a6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getParamsSummary$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuImage$1.class deleted file mode 100644 index dbb4dded..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuPrice$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuPrice$1.class deleted file mode 100644 index cf4276fa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuPrice$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuStock$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuStock$1.class deleted file mode 100644 index 9b110107..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSelectedSkuStock$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSkuSpecText$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSkuSpecText$1.class deleted file mode 100644 index 162850a3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$getSkuSpecText$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToCart$1.class deleted file mode 100644 index 47a07302..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToHome$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToHome$1.class deleted file mode 100644 index 907651a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToHome$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToShop$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToShop$1.class deleted file mode 100644 index 299d43b0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$goToShop$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideCouponModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideCouponModal$1.class deleted file mode 100644 index 4b362690..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideCouponModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideParamsModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideParamsModal$1.class deleted file mode 100644 index 9499b1a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideParamsModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSharePopup$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSharePopup$1.class deleted file mode 100644 index 12e3d36f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSharePopup$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSpecModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSpecModal$1.class deleted file mode 100644 index 48579d01..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$hideSpecModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$increaseQuantity$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$increaseQuantity$1.class deleted file mode 100644 index bb71c8e8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$increaseQuantity$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadCoupons$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadCoupons$1.class deleted file mode 100644 index 8e57a992..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadCoupons$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMemberPrice$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMemberPrice$1.class deleted file mode 100644 index dbf50950..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMemberPrice$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMerchantInfo$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMerchantInfo$1.class deleted file mode 100644 index 1dbe2e69..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadMerchantInfo$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductDetail$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductDetail$1.class deleted file mode 100644 index d86c15a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductDetail$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductSkus$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductSkus$1.class deleted file mode 100644 index cf018ecd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$loadProductSkus$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$onSwiperChange$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$onSwiperChange$1.class deleted file mode 100644 index 559ab267..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$onSwiperChange$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$previewImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$previewImage$1.class deleted file mode 100644 index 5051d0cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$previewImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveFootprint$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveFootprint$1.class deleted file mode 100644 index 8d498f38..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveFootprint$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveImage$1.class deleted file mode 100644 index e69b4a4a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$saveImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$selectSku$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$selectSku$1.class deleted file mode 100644 index c8d00c8b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$selectSku$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToMoments$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToMoments$1.class deleted file mode 100644 index 7474d11c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToMoments$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToQQ$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToQQ$1.class deleted file mode 100644 index dc70c052..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToQQ$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToWechat$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToWechat$1.class deleted file mode 100644 index cdfdf07f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$shareToWechat$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showCouponModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showCouponModal$1.class deleted file mode 100644 index be50fcd8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showCouponModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showParamsModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showParamsModal$1.class deleted file mode 100644 index 44651180..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showParamsModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSharePopup$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSharePopup$1.class deleted file mode 100644 index d3252502..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSharePopup$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSpecModal$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSpecModal$1.class deleted file mode 100644 index 80320a17..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$showSpecModal$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$toggleFavorite$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$toggleFavorite$1.class deleted file mode 100644 index 03c2e3b6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$toggleFavorite$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$validateQuantity$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$validateQuantity$1.class deleted file mode 100644 index d30b375e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail$validateQuantity$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail.class deleted file mode 100644 index 564fb70d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadReviews$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadReviews$1$1.class deleted file mode 100644 index 25c74823..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadReviews$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadStats$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadStats$1$1.class deleted file mode 100644 index 2d6c165a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$loadStats$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$toggleLike$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$toggleLike$1$1.class deleted file mode 100644 index 5751950d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion$setup$1$toggleLike$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion.class deleted file mode 100644 index f822a73e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews.class deleted file mode 100644 index 3dc0868a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerProductReviews.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index b75ade28..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion.class deleted file mode 100644 index 7438a665..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex.class deleted file mode 100644 index 405dba5e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRedPacketsIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1$result$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1$result$1.class deleted file mode 100644 index a9865c4e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1$result$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1.class deleted file mode 100644 index 94fafcfe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doCancelRefund$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doDeleteRefund$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doDeleteRefund$1$1.class deleted file mode 100644 index c27890e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$doDeleteRefund$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadRefunds$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadRefunds$1$1.class deleted file mode 100644 index 6ad53017..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadRefunds$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadTabCounts$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadTabCounts$1$1.class deleted file mode 100644 index 9864ab20..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion$setup$1$loadTabCounts$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion.class deleted file mode 100644 index 2d71a0db..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund.class deleted file mode 100644 index 4ac23ddc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefund.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview$Companion.class deleted file mode 100644 index 5a9c8618..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview.class deleted file mode 100644 index c42f816a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerRefundReview.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$loadOrderData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$loadOrderData$1$1.class deleted file mode 100644 index dc360443..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$loadOrderData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$submitReview$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$submitReview$1$1.class deleted file mode 100644 index a87cd3d8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$submitReview$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$uploadImage$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$uploadImage$1$1.class deleted file mode 100644 index 3fda85ec..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion$setup$1$uploadImage$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion.class deleted file mode 100644 index c1443e3a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview.class deleted file mode 100644 index bbbf1a29..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerReview.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index eb7c5f87..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$fetchSuggestions$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$fetchSuggestions$1$1.class deleted file mode 100644 index eefeb23f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$fetchSuggestions$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index 42ec32e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadMore$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadMore$1$1.class deleted file mode 100644 index 430164bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$loadMore$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$performSearch$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$performSearch$1$1.class deleted file mode 100644 index 75a6bf2f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion$setup$1$performSearch$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion.class deleted file mode 100644 index 600855c4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch.class deleted file mode 100644 index b50da3de..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSearch.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings$Companion.class deleted file mode 100644 index 8eed48cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings.class deleted file mode 100644 index f21a0343..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSettings.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion$setup$1$loadShareDetail$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion$setup$1$loadShareDetail$1$1.class deleted file mode 100644 index cef1051e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion$setup$1$loadShareDetail$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion.class deleted file mode 100644 index c66b4fe0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail.class deleted file mode 100644 index 65274ee3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion$setup$1$loadShares$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion$setup$1$loadShares$1$1.class deleted file mode 100644 index 1fe83316..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion$setup$1$loadShares$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion.class deleted file mode 100644 index aa7cd133..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex.class deleted file mode 100644 index 01fc95df..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShareIndex.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$addToCart$1$1.class deleted file mode 100644 index fb70ee11..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$checkFollowStatus$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$checkFollowStatus$1$1.class deleted file mode 100644 index 9bd26312..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$checkFollowStatus$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$claimCoupon$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$claimCoupon$1$1.class deleted file mode 100644 index e20ba9ff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$claimCoupon$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadCoupons$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadCoupons$1$1.class deleted file mode 100644 index 215b383a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadCoupons$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopData$1$1.class deleted file mode 100644 index 9b5c63be..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopProducts$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopProducts$1$1.class deleted file mode 100644 index 396a8556..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$loadShopProducts$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$toggleFollow$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$toggleFollow$1$1.class deleted file mode 100644 index 982d531b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion$setup$1$toggleFollow$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion.class deleted file mode 100644 index 32848854..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail.class deleted file mode 100644 index f7d2c1ae..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerShopDetail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$doUnfollow$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$doUnfollow$1$1.class deleted file mode 100644 index de89b526..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$doUnfollow$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$loadFollowedShops$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$loadFollowedShops$1$1.class deleted file mode 100644 index 7fe11ea0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$loadFollowedShops$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$unfollow$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$unfollow$1$1.class deleted file mode 100644 index 9bd377d2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion$setup$1$unfollow$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion.class deleted file mode 100644 index 4618d8a8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops.class deleted file mode 100644 index 715f8d57..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerSubscriptionFollowedShops.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$confirmRecharge$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$confirmRecharge$1$1.class deleted file mode 100644 index c0b292e1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$confirmRecharge$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadBalance$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadBalance$1$1.class deleted file mode 100644 index 57404b09..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadBalance$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadTransactions$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadTransactions$1$1.class deleted file mode 100644 index f7dd6c2e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadTransactions$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadWalletData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadWalletData$1$1.class deleted file mode 100644 index 7f076b4e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion$setup$1$loadWalletData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion.class deleted file mode 100644 index b78f0957..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet.class deleted file mode 100644 index b67be049..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWallet.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$loadData$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$loadData$1$1.class deleted file mode 100644 index 153c79ce..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$loadData$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$submitWithdraw$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$submitWithdraw$1$1.class deleted file mode 100644 index c9b4bd9c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion$setup$1$submitWithdraw$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion.class deleted file mode 100644 index 1e6401ff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw.class deleted file mode 100644 index 073242eb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesMallConsumerWithdraw.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$handleSubmit$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$handleSubmit$1$1.class deleted file mode 100644 index 260ed757..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$handleSubmit$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$sendCode$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$sendCode$1$1.class deleted file mode 100644 index de05f88a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion$setup$1$sendCode$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion.class deleted file mode 100644 index 94275e28..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail.class deleted file mode 100644 index 6e1107cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindEmail.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$handleSubmit$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$handleSubmit$1$1.class deleted file mode 100644 index 66e409dc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$handleSubmit$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$sendCode$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$sendCode$1$1.class deleted file mode 100644 index 3b970eed..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion$setup$1$sendCode$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion.class deleted file mode 100644 index 8f06095a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone.class deleted file mode 100644 index abac73bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBindPhone.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$Companion.class deleted file mode 100644 index 0ba39bc9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$checkAndRedirect$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$checkAndRedirect$1.class deleted file mode 100644 index 18a1d4e4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot$checkAndRedirect$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot.class deleted file mode 100644 index 7b8f3433..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserBoot.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion$setup$1$loadProfile$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion$setup$1$loadProfile$1$1.class deleted file mode 100644 index 4afeab38..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion$setup$1$loadProfile$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion.class deleted file mode 100644 index a5723bdb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter.class deleted file mode 100644 index cd0e4589..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserCenter.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion$setup$1$handleSubmit$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion$setup$1$handleSubmit$1$1.class deleted file mode 100644 index ce509432..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion$setup$1$handleSubmit$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion.class deleted file mode 100644 index 5e40a821..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword.class deleted file mode 100644 index c5e218c3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserChangePassword.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion$setup$1$handleResetRequest$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion$setup$1$handleResetRequest$1$1.class deleted file mode 100644 index 78322760..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion$setup$1$handleResetRequest$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion.class deleted file mode 100644 index d6166735..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword.class deleted file mode 100644 index 8d236604..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserForgotPassword.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$cssVars$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$cssVars$1.class deleted file mode 100644 index 826633f5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$cssVars$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$getCode$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$getCode$1$1.class deleted file mode 100644 index a1c058d1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$getCode$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$handleLogin$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$handleLogin$1$1.class deleted file mode 100644 index 5874b37b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion$setup$1$handleLogin$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion.class deleted file mode 100644 index e2f6b1ff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin.class deleted file mode 100644 index 8fb69468..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserLogin.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1$newProfile$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1$newProfile$1.class deleted file mode 100644 index 1aba6bec..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1$newProfile$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1.class deleted file mode 100644 index 855994c3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$loadProfile$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1$updateData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1$updateData$1.class deleted file mode 100644 index 441f6505..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1$updateData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1.class deleted file mode 100644 index 467b50e8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion$setup$1$saveProfile$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion.class deleted file mode 100644 index 74fb273b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile.class deleted file mode 100644 index 11791a90..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserProfile.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion$setup$1$handleRegister$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion$setup$1$handleRegister$1$1.class deleted file mode 100644 index cd4a0153..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion$setup$1$handleRegister$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion.class deleted file mode 100644 index 6a600111..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister.class deleted file mode 100644 index c82cf47f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserRegister.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$Companion.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$Companion.class deleted file mode 100644 index a9876400..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$Companion.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$goBack$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$goBack$1.class deleted file mode 100644 index c1ded171..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms$goBack$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms.class deleted file mode 100644 index d442387a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenPagesUserTerms.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenUniApp.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenUniApp.class deleted file mode 100644 index a60f8779..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GenUniApp.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemType.class deleted file mode 100644 index bd9bfcf3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemTypeReactiveObject.class deleted file mode 100644 index d9a015a5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/GuessItemTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemType.class deleted file mode 100644 index 504d10bc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemTypeReactiveObject.class deleted file mode 100644 index f9eefecc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/HotSearchItemTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nGlobal.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nGlobal.class deleted file mode 100644 index bb842c47..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nGlobal.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nInstance.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nInstance.class deleted file mode 100644 index 61efe943..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/I18nInstance.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ADDRESS_LABEL$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ADDRESS_LABEL$1.class deleted file mode 100644 index bd08a010..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ADDRESS_LABEL$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$COUPON_TYPE$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$COUPON_TYPE$1.class deleted file mode 100644 index 6a07885e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$COUPON_TYPE$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$DELIVERY_STATUS$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$DELIVERY_STATUS$1.class deleted file mode 100644 index 2c0c0d47..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$DELIVERY_STATUS$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$FAVORITE_TYPE$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$FAVORITE_TYPE$1.class deleted file mode 100644 index 6ff0f895..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$FAVORITE_TYPE$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$MALL_USER_TYPE$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$MALL_USER_TYPE$1.class deleted file mode 100644 index 6c6a6809..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$MALL_USER_TYPE$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ORDER_STATUS$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ORDER_STATUS$1.class deleted file mode 100644 index 2fb70f10..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ORDER_STATUS$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$PAYMENT_METHOD$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$PAYMENT_METHOD$1.class deleted file mode 100644 index acc33150..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$PAYMENT_METHOD$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_PERIOD$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_PERIOD$1.class deleted file mode 100644 index 4aa06f7f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_PERIOD$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_STATUS$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_STATUS$1.class deleted file mode 100644 index a6828da1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$SUBSCRIPTION_STATUS$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$VERIFICATION_STATUS$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$VERIFICATION_STATUS$1.class deleted file mode 100644 index f72905a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$VERIFICATION_STATUS$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1$1.class deleted file mode 100644 index 394c531c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1.class deleted file mode 100644 index b1a41309..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$ensureUserProfile$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$getCurrentUser$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$getCurrentUser$1.class deleted file mode 100644 index d8d6466a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt$getCurrentUser$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt.class deleted file mode 100644 index 32093eea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/IndexKt.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLog.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLog.class deleted file mode 100644 index 2ee09e7b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLog.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLogReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLogReactiveObject.class deleted file mode 100644 index a6e676d2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LevelLogReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItem.class deleted file mode 100644 index 572b296f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItemReactiveObject.class deleted file mode 100644 index b369eb6a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCartItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategory.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategory.class deleted file mode 100644 index 07350d16..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategory.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategoryReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategoryReactiveObject.class deleted file mode 100644 index a73dd77d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocalCategoryReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocaleWrapper.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocaleWrapper.class deleted file mode 100644 index c3125629..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/LocaleWrapper.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfo.class deleted file mode 100644 index 8850838b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfoReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfoReactiveObject.class deleted file mode 100644 index 68aeb168..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberInfoReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevel.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevel.class deleted file mode 100644 index ce386daa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevel.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevelReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevelReactiveObject.class deleted file mode 100644 index ba3919ac..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MemberLevelReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingType.class deleted file mode 100644 index 22de085c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingTypeReactiveObject.class deleted file mode 100644 index 64a2e6f8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantRatingTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType.class deleted file mode 100644 index 474f84b8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantTypeReactiveObject.class deleted file mode 100644 index 94bdf11e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1.class deleted file mode 100644 index b228663b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1ReactiveObject.class deleted file mode 100644 index f6d1f3a7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MerchantType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItem.class deleted file mode 100644 index 12739da5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItemReactiveObject.class deleted file mode 100644 index 42ba82f3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTab.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTab.class deleted file mode 100644 index c7cbeeb2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTab.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTabReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTabReactiveObject.class deleted file mode 100644 index c287c255..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTabReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageType.class deleted file mode 100644 index 92654fdf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTypeReactiveObject.class deleted file mode 100644 index 482c094c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MessageTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MockAddress.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MockAddress.class deleted file mode 100644 index 2ee518ee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MockAddress.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItem.class deleted file mode 100644 index a90e20e5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItemReactiveObject.class deleted file mode 100644 index b69705a1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/MyReviewItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressData.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressData.class deleted file mode 100644 index 4d2f9028..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressData.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressForm.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressForm.class deleted file mode 100644 index 921eb2ed..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressForm.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressFormReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressFormReactiveObject.class deleted file mode 100644 index e1500ab3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NewAddressFormReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Notification.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Notification.class deleted file mode 100644 index cf405d24..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Notification.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationType.class deleted file mode 100644 index 6f08c79d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationTypeReactiveObject.class deleted file mode 100644 index 00376cd6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/NotificationTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsType.class deleted file mode 100644 index 17bd51c7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsTypeReactiveObject.class deleted file mode 100644 index cc27c3a1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderCountsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItem.class deleted file mode 100644 index a6b08606..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemReactiveObject.class deleted file mode 100644 index 25767e43..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType.class deleted file mode 100644 index 319e7b74..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemTypeReactiveObject.class deleted file mode 100644 index 393f19f3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1.class deleted file mode 100644 index ae4f9db1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1ReactiveObject.class deleted file mode 100644 index fa1ab996..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2.class deleted file mode 100644 index 28746aee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2ReactiveObject.class deleted file mode 100644 index 5be76adc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderItemType__2ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderOptions.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderOptions.class deleted file mode 100644 index 9c35e68d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderOptions.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProduct.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProduct.class deleted file mode 100644 index 05f9a402..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProduct.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProductReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProductReactiveObject.class deleted file mode 100644 index dc5cfb4d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderProductReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItem.class deleted file mode 100644 index b9234ced..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItemReactiveObject.class deleted file mode 100644 index 447fc1c1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTabItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType.class deleted file mode 100644 index d26853b3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTypeReactiveObject.class deleted file mode 100644 index 896320a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1.class deleted file mode 100644 index 963fade1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1ReactiveObject.class deleted file mode 100644 index c43bfaff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/OrderType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaginatedResponse.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaginatedResponse.class deleted file mode 100644 index 85a57bd6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaginatedResponse.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodType.class deleted file mode 100644 index 93610e11..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodTypeReactiveObject.class deleted file mode 100644 index d4e3f388..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PaymentMethodTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItem.class deleted file mode 100644 index 7ab1e7c2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItemReactiveObject.class deleted file mode 100644 index 6bafb685..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PendingItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProduct.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProduct.class deleted file mode 100644 index 98d4dee2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProduct.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProductReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProductReactiveObject.class deleted file mode 100644 index 77d6d4bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointProductReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecord.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecord.class deleted file mode 100644 index 3cf1749d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecord.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecordReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecordReactiveObject.class deleted file mode 100644 index 96568470..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PointRecordReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyType.class deleted file mode 100644 index eac8d9f6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyTypeReactiveObject.class deleted file mode 100644 index c876f1f2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/PrivacyTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Product.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Product.class deleted file mode 100644 index 1630e840..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Product.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductReactiveObject.class deleted file mode 100644 index 61d6643f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSku.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSku.class deleted file mode 100644 index 27bfaee7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSku.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuType.class deleted file mode 100644 index 4318219b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuTypeReactiveObject.class deleted file mode 100644 index 60b7b4a5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductSkuTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductType.class deleted file mode 100644 index 199d48f5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductTypeReactiveObject.class deleted file mode 100644 index e14ecba4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProductTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileType.class deleted file mode 100644 index dc872f64..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileTypeReactiveObject.class deleted file mode 100644 index 7228d607..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ProfileTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProduct.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProduct.class deleted file mode 100644 index 033dd8cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProduct.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProductReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProductReactiveObject.class deleted file mode 100644 index 8b8171a4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RecommendProductReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacket.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacket.class deleted file mode 100644 index a1990397..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacket.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacketReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacketReactiveObject.class deleted file mode 100644 index 392f9b52..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RedPacketReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfo.class deleted file mode 100644 index 714bdd36..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfoReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfoReactiveObject.class deleted file mode 100644 index 102e808f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderInfoReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItem.class deleted file mode 100644 index baa366be..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItemReactiveObject.class deleted file mode 100644 index 90e47404..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundOrderItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfo.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfo.class deleted file mode 100644 index 172850fa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfo.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfoReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfoReactiveObject.class deleted file mode 100644 index fb10df4c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundProductInfoReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundResponse.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundResponse.class deleted file mode 100644 index e85c7727..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundResponse.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItem.class deleted file mode 100644 index 9a0a568a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItemReactiveObject.class deleted file mode 100644 index 91193052..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundStatusHistoryItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundType.class deleted file mode 100644 index 6017cedb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundTypeReactiveObject.class deleted file mode 100644 index b218b2b5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/RefundTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItem.class deleted file mode 100644 index 3835188b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItemReactiveObject.class deleted file mode 100644 index fbf7ca90..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ReviewItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultType.class deleted file mode 100644 index 9c02536c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultTypeReactiveObject.class deleted file mode 100644 index f3ed9677..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SearchResultTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsType.class deleted file mode 100644 index b20e56f2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsTypeReactiveObject.class deleted file mode 100644 index f099998c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ServiceCountsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecord.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecord.class deleted file mode 100644 index e3e3a950..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecord.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordReactiveObject.class deleted file mode 100644 index 3b96d0d3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordType.class deleted file mode 100644 index e18c624f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordTypeReactiveObject.class deleted file mode 100644 index 700342ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShareRecordTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Shop.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/Shop.class deleted file mode 100644 index 958fad98..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/Shop.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopGroupType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopGroupType.class deleted file mode 100644 index 662f5860..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopGroupType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderParams.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderParams.class deleted file mode 100644 index afa53053..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderParams.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderResponse.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderResponse.class deleted file mode 100644 index c8e7cf47..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopOrderResponse.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultType.class deleted file mode 100644 index 234d90f2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultTypeReactiveObject.class deleted file mode 100644 index 74404033..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/ShopResultTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SortTab.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SortTab.class deleted file mode 100644 index 9ce27f6f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SortTab.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/State.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/State.class deleted file mode 100644 index a2001f18..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/State.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StateReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StateReactiveObject.class deleted file mode 100644 index 1b90949d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StateReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodType.class deleted file mode 100644 index cbb333a9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodTypeReactiveObject.class deleted file mode 100644 index dc8b34a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsPeriodTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType.class deleted file mode 100644 index 67296fea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsTypeReactiveObject.class deleted file mode 100644 index 43371f82..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1.class deleted file mode 100644 index 9a547f3c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1ReactiveObject.class deleted file mode 100644 index acf332c2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/StatsType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1$response$1.class deleted file mode 100644 index 59d18657..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1.class deleted file mode 100644 index 74f1396f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addBankCard$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addBankCard$1.class deleted file mode 100644 index b95d99b6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addBankCard$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1$updateRes$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1$updateRes$1.class deleted file mode 100644 index 72d34649..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1$updateRes$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1.class deleted file mode 100644 index bb6681cd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addFootprint$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addPoints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addPoints$1.class deleted file mode 100644 index f08e3f1a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addPoints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1$1.class deleted file mode 100644 index 8ed271b4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1.class deleted file mode 100644 index f620446b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$addToCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$appendReview$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$appendReview$1.class deleted file mode 100644 index eb23f2c9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$appendReview$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1$response$1.class deleted file mode 100644 index bb417a00..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1.class deleted file mode 100644 index 74648560..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$applyRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchDeleteCartItems$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchDeleteCartItems$1.class deleted file mode 100644 index 18290ee5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchDeleteCartItems$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchUpdateCartItemSelection$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchUpdateCartItemSelection$1.class deleted file mode 100644 index cc9ac8ca..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$batchUpdateCartItemSelection$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1$response$1.class deleted file mode 100644 index 17fd44fc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1.class deleted file mode 100644 index 9b546262..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$orderUpdateResponse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$orderUpdateResponse$1.class deleted file mode 100644 index 21d50704..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$orderUpdateResponse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$refundUpdateResponse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$refundUpdateResponse$1.class deleted file mode 100644 index d383805e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1$refundUpdateResponse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1.class deleted file mode 100644 index 26abff53..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$cancelRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$checkFavorite$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$checkFavorite$1.class deleted file mode 100644 index 4ead0fd7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$checkFavorite$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimCoupon$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimCoupon$1.class deleted file mode 100644 index 7fe20481..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimCoupon$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$fallbackData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$fallbackData$1.class deleted file mode 100644 index 918961df..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$fallbackData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$insertData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$insertData$1.class deleted file mode 100644 index 8efe1aec..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1$insertData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1.class deleted file mode 100644 index 1d751172..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$claimShopCoupon$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearCart$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearCart$1.class deleted file mode 100644 index 32b81faf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearCart$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1$1.class deleted file mode 100644 index a88e8b2f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1.class deleted file mode 100644 index 4aa09816..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearDefaultAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearFootprints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearFootprints$1.class deleted file mode 100644 index 19911adb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$clearFootprints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1$response$1.class deleted file mode 100644 index 8921fbf9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1.class deleted file mode 100644 index a6509596..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmOrderReceived$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmReceipt$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmReceipt$1.class deleted file mode 100644 index 6c40bff9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$confirmReceipt$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrder$1.class deleted file mode 100644 index b1b782d5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrdersByShop$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrdersByShop$1.class deleted file mode 100644 index a7eefd10..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createOrdersByShop$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$payload$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$payload$1.class deleted file mode 100644 index f7d1d7d6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$payload$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$updateResponse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$updateResponse$1.class deleted file mode 100644 index 6583c31e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1$updateResponse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1.class deleted file mode 100644 index 68473bc6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createShareRecord$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createShareRecord$1.class deleted file mode 100644 index 9cd08271..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$createShareRecord$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deductPoints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deductPoints$1.class deleted file mode 100644 index ea2cbf6c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deductPoints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteAddress$1.class deleted file mode 100644 index 41448d5f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteBankCard$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteBankCard$1.class deleted file mode 100644 index 7bcb302b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteBankCard$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteCartItem$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteCartItem$1.class deleted file mode 100644 index 51c99543..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteCartItem$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprint$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprint$1.class deleted file mode 100644 index e5ad97b5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprint$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprints$1.class deleted file mode 100644 index d36d79d1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteFootprints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteOrder$1.class deleted file mode 100644 index 9be2e5e9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteRefund$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteRefund$1.class deleted file mode 100644 index e16fcd61..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteRefund$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteReview$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteReview$1.class deleted file mode 100644 index 3db74e5c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$deleteReview$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$ensureSession$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$ensureSession$1.class deleted file mode 100644 index 9c7d95f3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$ensureSession$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$exchangeProduct$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$exchangeProduct$1.class deleted file mode 100644 index 55fc6380..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$exchangeProduct$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$fetchShopCoupons$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$fetchShopCoupons$1.class deleted file mode 100644 index e744bd73..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$fetchShopCoupons$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1$res$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1$res$1.class deleted file mode 100644 index fd1638b4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1$res$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1.class deleted file mode 100644 index f7a46e12..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$followShop$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressById$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressById$1.class deleted file mode 100644 index 7aac817a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressById$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressList$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressList$1.class deleted file mode 100644 index c9c69310..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddressList$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddresses$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddresses$1.class deleted file mode 100644 index ac90997b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAddresses$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAvailableCoupons$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAvailableCoupons$1.class deleted file mode 100644 index 0beeab01..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getAvailableCoupons$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBalanceRecords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBalanceRecords$1.class deleted file mode 100644 index 6d09537a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBalanceRecords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBrands$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBrands$1.class deleted file mode 100644 index 90db2149..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getBrands$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCartItems$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCartItems$1.class deleted file mode 100644 index 68bcfb41..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCartItems$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategories$1.class deleted file mode 100644 index 66a45340..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategoryById$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategoryById$1.class deleted file mode 100644 index 99a7a40e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getCategoryById$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatMessages$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatMessages$1.class deleted file mode 100644 index 1caff2a4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatMessages$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatRooms$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatRooms$1.class deleted file mode 100644 index a1f761aa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getChatRooms$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getDiscountProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getDiscountProducts$1.class deleted file mode 100644 index 7aaa42b2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getDiscountProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExchangeRecords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExchangeRecords$1.class deleted file mode 100644 index b6079f88..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExchangeRecords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiringPoints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiringPoints$1.class deleted file mode 100644 index 22ad06fa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiringPoints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiryNotifications$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiryNotifications$1.class deleted file mode 100644 index f0d0af5a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getExpiryNotifications$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFavorites$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFavorites$1.class deleted file mode 100644 index a8a5da86..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFavorites$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFollowedShops$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFollowedShops$1.class deleted file mode 100644 index 760e34f7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFollowedShops$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFootprints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFootprints$1.class deleted file mode 100644 index d432bd6c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFootprints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFreeOrderRewards$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFreeOrderRewards$1.class deleted file mode 100644 index ae345e92..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getFreeOrderRewards$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1$KeywordEntry.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1$KeywordEntry.class deleted file mode 100644 index 3788b8fa..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1$KeywordEntry.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1.class deleted file mode 100644 index 765b750d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotKeywords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotProducts$1.class deleted file mode 100644 index 4f793035..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getHotProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevelLogs$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevelLogs$1.class deleted file mode 100644 index 853f33b5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevelLogs$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevels$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevels$1.class deleted file mode 100644 index edf5c259..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMemberLevels$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMerchantPromotionConfig$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMerchantPromotionConfig$1.class deleted file mode 100644 index 896cbe26..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMerchantPromotionConfig$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyReviews$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyReviews$1.class deleted file mode 100644 index 6028d622..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyReviews$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyShareRecords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyShareRecords$1.class deleted file mode 100644 index f57623ff..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getMyShareRecords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderById$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderById$1.class deleted file mode 100644 index a4f11f76..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderById$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderDetail$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderDetail$1.class deleted file mode 100644 index 3a94e5ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrderDetail$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrders$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrders$1.class deleted file mode 100644 index 539037df..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getOrders$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getParentCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getParentCategories$1.class deleted file mode 100644 index a5e697b4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getParentCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointProducts$1.class deleted file mode 100644 index 7ff03a0f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointRecords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointRecords$1.class deleted file mode 100644 index 6a0d7166..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointRecords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointsOverview$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointsOverview$1.class deleted file mode 100644 index 1302a82e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getPointsOverview$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductById$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductById$1.class deleted file mode 100644 index dbed8fc9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductById$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1$query$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1$query$1.class deleted file mode 100644 index 8d12880c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1$query$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1.class deleted file mode 100644 index 8fb663c0..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductReviews$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductSkus$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductSkus$1.class deleted file mode 100644 index 7e506af7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductSkus$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategories$1.class deleted file mode 100644 index b7b76a1a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1$response$1.class deleted file mode 100644 index e81465a8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1.class deleted file mode 100644 index ad83beee..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByCategory$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query$1.class deleted file mode 100644 index ea47c965..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query2$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query2$1.class deleted file mode 100644 index 17402e70..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1$query2$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1.class deleted file mode 100644 index b18f8dbc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByMerchantId$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByNewest$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByNewest$1.class deleted file mode 100644 index e7b27ca7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByNewest$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByPrice$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByPrice$1.class deleted file mode 100644 index a8113b3d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByPrice$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsBySales$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsBySales$1.class deleted file mode 100644 index 5f80c4a7..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsBySales$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query$1.class deleted file mode 100644 index e138f1e2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query2$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query2$1.class deleted file mode 100644 index 446c6508..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1$query2$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1.class deleted file mode 100644 index 8224e3b4..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getProductsByShopId$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRecommendedProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRecommendedProducts$1.class deleted file mode 100644 index a1aa34ab..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRecommendedProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRefunds$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRefunds$1.class deleted file mode 100644 index bbd9ea92..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getRefunds$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getReviewStats$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getReviewStats$1.class deleted file mode 100644 index b59202b8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getReviewStats$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShareDetail$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShareDetail$1.class deleted file mode 100644 index 3baab389..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShareDetail$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShopByMerchantId$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShopByMerchantId$1.class deleted file mode 100644 index 02c410f2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getShopByMerchantId$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSigninRecords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSigninRecords$1.class deleted file mode 100644 index dc8f1743..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSigninRecords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSmartRecommendations$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSmartRecommendations$1.class deleted file mode 100644 index f325dfbb..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSmartRecommendations$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSubCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSubCategories$1.class deleted file mode 100644 index 7a4f5198..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getSubCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTodaySigninStatus$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTodaySigninStatus$1.class deleted file mode 100644 index 0f26d349..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTodaySigninStatus$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTotalEarned$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTotalEarned$1.class deleted file mode 100644 index 5b126c46..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTotalEarned$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTransactions$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTransactions$1.class deleted file mode 100644 index b7885938..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getTransactions$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalance$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalance$1.class deleted file mode 100644 index 9b7fbda1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalance$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalanceNumber$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalanceNumber$1.class deleted file mode 100644 index 24d637c5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBalanceNumber$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBankCards$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBankCards$1.class deleted file mode 100644 index e0a6c8ac..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBankCards$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBrowseCategories$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBrowseCategories$1.class deleted file mode 100644 index 3f7abcea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserBrowseCategories$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserChatMessages$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserChatMessages$1.class deleted file mode 100644 index 8af0a21e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserChatMessages$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1$response$1.class deleted file mode 100644 index 6ffddc98..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1.class deleted file mode 100644 index d176ca67..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCouponCount$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCoupons$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCoupons$1.class deleted file mode 100644 index 02f5c9ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserCoupons$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserMemberInfo$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserMemberInfo$1.class deleted file mode 100644 index b50b805d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserMemberInfo$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserNotifications$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserNotifications$1.class deleted file mode 100644 index ef06920a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserNotifications$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserPoints$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserPoints$1.class deleted file mode 100644 index baddd4ad..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserPoints$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserProfile$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserProfile$1.class deleted file mode 100644 index 1b6fc9fe..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserProfile$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserRedPackets$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserRedPackets$1.class deleted file mode 100644 index b1092cc3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserRedPackets$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserSearchHistory$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserSearchHistory$1.class deleted file mode 100644 index 5959e002..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$getUserSearchHistory$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShareFreeEnabled$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShareFreeEnabled$1.class deleted file mode 100644 index 80c2f8e3..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShareFreeEnabled$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1$res$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1$res$1.class deleted file mode 100644 index c451c04a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1$res$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1.class deleted file mode 100644 index 6643306a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$isShopFollowed$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1$res$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1$res$1.class deleted file mode 100644 index e3405008..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1$res$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1.class deleted file mode 100644 index 09a466fd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markNotificationRead$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1$response$1.class deleted file mode 100644 index 15ee67ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1.class deleted file mode 100644 index 8bb9ee13..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$markRead$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$payOrder$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$payOrder$1.class deleted file mode 100644 index 7029da71..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$payOrder$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rePurchase$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rePurchase$1.class deleted file mode 100644 index 8b9ccd91..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rePurchase$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1$res$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1$res$1.class deleted file mode 100644 index 54abf7bf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1$res$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1.class deleted file mode 100644 index 4bd2979b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$rechargeBalance$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordBrowse$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordBrowse$1.class deleted file mode 100644 index 3095dd13..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordBrowse$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordSearch$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordSearch$1.class deleted file mode 100644 index a7adde11..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$recordSearch$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1$query$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1$query$1.class deleted file mode 100644 index 4977d733..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1$query$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1.class deleted file mode 100644 index 2bf4fa24..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProducts$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProductsByKeywords$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProductsByKeywords$1.class deleted file mode 100644 index 7cb927f5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchProductsByKeywords$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1$response$1.class deleted file mode 100644 index ee38220e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1.class deleted file mode 100644 index a481c747..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$searchShops$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendChatMessage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendChatMessage$1.class deleted file mode 100644 index b425c098..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendChatMessage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendMessage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendMessage$1.class deleted file mode 100644 index f9c0002b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$sendMessage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1$response$1.class deleted file mode 100644 index cee8189a..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1.class deleted file mode 100644 index e99f88d8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$setDefaultAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$signin$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$signin$1.class deleted file mode 100644 index d14ff4e1..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$signin$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$simulateServiceReply$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$simulateServiceReply$1.class deleted file mode 100644 index 1621152e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$simulateServiceReply$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitProductReviews$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitProductReviews$1.class deleted file mode 100644 index 16927c43..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitProductReviews$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitShopReview$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitShopReview$1.class deleted file mode 100644 index 79c26253..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$submitShopReview$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1$response$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1$response$1.class deleted file mode 100644 index fd7d8956..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1$response$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1.class deleted file mode 100644 index fdcb99a2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleFavorite$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleReviewLike$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleReviewLike$1.class deleted file mode 100644 index 127281e5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$toggleReviewLike$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$triggerPointsMaintenance$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$triggerPointsMaintenance$1.class deleted file mode 100644 index 8f1965ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$triggerPointsMaintenance$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$unfollowShop$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$unfollowShop$1.class deleted file mode 100644 index 94f1e2b5..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$unfollowShop$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1$updateData$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1$updateData$1.class deleted file mode 100644 index e28e3367..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1$updateData$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1.class deleted file mode 100644 index 08de2fe6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateAddress$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemQuantity$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemQuantity$1.class deleted file mode 100644 index f139c3ab..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemQuantity$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemSelection$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemSelection$1.class deleted file mode 100644 index fea34848..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateCartItemSelection$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateOrderStatus$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateOrderStatus$1.class deleted file mode 100644 index 17a9f2b2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$updateOrderStatus$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$uploadChatImage$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$uploadChatImage$1.class deleted file mode 100644 index 5f6a4870..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$uploadChatImage$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$validateShareCode$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$validateShareCode$1.class deleted file mode 100644 index 7169a06d..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$validateShareCode$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1$res$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1$res$1.class deleted file mode 100644 index e5ae2175..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1$res$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1.class deleted file mode 100644 index c42df9a6..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService$withdrawBalance$1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService.class deleted file mode 100644 index ffb268e2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/SupabaseService.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsType.class deleted file mode 100644 index 334d02cf..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsTypeReactiveObject.class deleted file mode 100644 index 03eb3fec..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TabCountsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TimelineStepType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TimelineStepType.class deleted file mode 100644 index 14ea2c66..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TimelineStepType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItem.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItem.class deleted file mode 100644 index dd70855f..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItem.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItemReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItemReactiveObject.class deleted file mode 100644 index cfa37532..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TrackItemReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionType.class deleted file mode 100644 index 4d6bf5ef..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionTypeReactiveObject.class deleted file mode 100644 index de30b88c..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/TransactionTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessage.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessage.class deleted file mode 100644 index 5f6f3d57..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessage.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessageReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessageReactiveObject.class deleted file mode 100644 index a2823b7e..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UiChatMessageReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UniAppConfig.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UniAppConfig.class deleted file mode 100644 index c02f45bc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UniAppConfig.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UpdateAddressParams.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UpdateAddressParams.class deleted file mode 100644 index 07a14acc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UpdateAddressParams.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserAddress.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserAddress.class deleted file mode 100644 index 4ca677ba..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserAddress.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCoupon.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCoupon.class deleted file mode 100644 index 35566912..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCoupon.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponType.class deleted file mode 100644 index 54219239..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponTypeReactiveObject.class deleted file mode 100644 index 058f96b9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserCouponTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfile.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfile.class deleted file mode 100644 index 8dfed106..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfile.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfileReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfileReactiveObject.class deleted file mode 100644 index 597a3cfd..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserProfileReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType.class deleted file mode 100644 index ca8c1be2..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsTypeReactiveObject.class deleted file mode 100644 index 1dad15fc..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1.class deleted file mode 100644 index 091a791b..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1ReactiveObject.class deleted file mode 100644 index e18890ad..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserStatsType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType.class deleted file mode 100644 index c6984029..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserTypeReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserTypeReactiveObject.class deleted file mode 100644 index 529e06f9..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserTypeReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1.class deleted file mode 100644 index fe4c61b8..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1.class and /dev/null differ diff --git a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1ReactiveObject.class b/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1ReactiveObject.class deleted file mode 100644 index dd3bc7ea..00000000 Binary files a/unpackage/cache/.app-android/class/uni/UNICONSUMER/UserType__1ReactiveObject.class and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/index/classes.dex b/unpackage/cache/.app-android/dex/index/classes.dex deleted file mode 100644 index 7b3ac2a5..00000000 Binary files a/unpackage/cache/.app-android/dex/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/main/cart/classes.dex b/unpackage/cache/.app-android/dex/pages/main/cart/classes.dex deleted file mode 100644 index b12607df..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/main/cart/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/main/category/classes.dex b/unpackage/cache/.app-android/dex/pages/main/category/classes.dex deleted file mode 100644 index d5dd9e80..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/main/category/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/main/index/classes.dex b/unpackage/cache/.app-android/dex/pages/main/index/classes.dex deleted file mode 100644 index cdf8cd92..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/main/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/main/messages/classes.dex b/unpackage/cache/.app-android/dex/pages/main/messages/classes.dex deleted file mode 100644 index 0fe16418..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/main/messages/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/main/profile/classes.dex b/unpackage/cache/.app-android/dex/pages/main/profile/classes.dex deleted file mode 100644 index c5158f4c..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/main/profile/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/address-edit/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/address-edit/classes.dex deleted file mode 100644 index 062eefe1..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/address-edit/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/address-list/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/address-list/classes.dex deleted file mode 100644 index 8e26b4ed..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/address-list/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/apply-refund/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/apply-refund/classes.dex deleted file mode 100644 index c2a78db2..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/apply-refund/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/balance/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/balance/index/classes.dex deleted file mode 100644 index a5b6efe4..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/balance/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/add/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/add/classes.dex deleted file mode 100644 index dfbc38bb..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/add/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/index/classes.dex deleted file mode 100644 index 93544a25..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/bank-cards/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/chat/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/chat/classes.dex deleted file mode 100644 index 4b1f139c..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/chat/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/checkout/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/checkout/classes.dex deleted file mode 100644 index dfcf4ced..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/checkout/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/coupons/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/coupons/classes.dex deleted file mode 100644 index d8dc45f9..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/coupons/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/favorites/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/favorites/classes.dex deleted file mode 100644 index 308fc540..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/favorites/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/footprint/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/footprint/classes.dex deleted file mode 100644 index 7ffac10d..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/footprint/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/logistics/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/logistics/classes.dex deleted file mode 100644 index 32781e22..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/logistics/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/member/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/member/index/classes.dex deleted file mode 100644 index 0cc864c9..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/member/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/message-detail/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/message-detail/classes.dex deleted file mode 100644 index c3ace297..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/message-detail/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/my-reviews/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/my-reviews/classes.dex deleted file mode 100644 index 92318787..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/my-reviews/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/order-detail/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/order-detail/classes.dex deleted file mode 100644 index 67573d43..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/order-detail/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/orders/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/orders/classes.dex deleted file mode 100644 index 2f0c5053..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/orders/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/payment-success/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/payment-success/classes.dex deleted file mode 100644 index c4ff4010..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/payment-success/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/payment/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/payment/classes.dex deleted file mode 100644 index f8582df0..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/payment/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange-records/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange-records/classes.dex deleted file mode 100644 index fec6edba..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange-records/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange/classes.dex deleted file mode 100644 index 17efe052..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/exchange/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/points/index/classes.dex deleted file mode 100644 index 5a5f33a6..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/signin/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/points/signin/classes.dex deleted file mode 100644 index 4ec89a71..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/points/signin/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/product-detail/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/product-detail/classes.dex deleted file mode 100644 index 05726209..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/product-detail/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/product-reviews/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/product-reviews/classes.dex deleted file mode 100644 index d873e999..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/product-reviews/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/red-packets/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/red-packets/index/classes.dex deleted file mode 100644 index ccaaaf33..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/red-packets/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/refund-review/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/refund-review/classes.dex deleted file mode 100644 index c281ba5e..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/refund-review/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/refund/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/refund/classes.dex deleted file mode 100644 index e84a07d5..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/refund/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/review/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/review/classes.dex deleted file mode 100644 index 79ee4046..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/review/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/search/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/search/classes.dex deleted file mode 100644 index 93f01d46..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/search/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/settings/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/settings/classes.dex deleted file mode 100644 index 41c973a6..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/settings/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/share/detail/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/share/detail/classes.dex deleted file mode 100644 index 51f5de3e..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/share/detail/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/share/index/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/share/index/classes.dex deleted file mode 100644 index 1e7eef74..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/share/index/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/shop-detail/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/shop-detail/classes.dex deleted file mode 100644 index d27d36ae..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/shop-detail/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/subscription/followed-shops/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/subscription/followed-shops/classes.dex deleted file mode 100644 index 9b031bab..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/subscription/followed-shops/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/wallet/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/wallet/classes.dex deleted file mode 100644 index fc0c87b5..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/wallet/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/mall/consumer/withdraw/classes.dex b/unpackage/cache/.app-android/dex/pages/mall/consumer/withdraw/classes.dex deleted file mode 100644 index 25b1fef1..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/mall/consumer/withdraw/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/bind-email/classes.dex b/unpackage/cache/.app-android/dex/pages/user/bind-email/classes.dex deleted file mode 100644 index 03ad78ef..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/bind-email/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/bind-phone/classes.dex b/unpackage/cache/.app-android/dex/pages/user/bind-phone/classes.dex deleted file mode 100644 index f8e8d495..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/bind-phone/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/boot/classes.dex b/unpackage/cache/.app-android/dex/pages/user/boot/classes.dex deleted file mode 100644 index e6278406..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/boot/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/center/classes.dex b/unpackage/cache/.app-android/dex/pages/user/center/classes.dex deleted file mode 100644 index 15a48017..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/center/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/change-password/classes.dex b/unpackage/cache/.app-android/dex/pages/user/change-password/classes.dex deleted file mode 100644 index db7bf167..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/change-password/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/forgot-password/classes.dex b/unpackage/cache/.app-android/dex/pages/user/forgot-password/classes.dex deleted file mode 100644 index 92e99933..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/forgot-password/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/login/classes.dex b/unpackage/cache/.app-android/dex/pages/user/login/classes.dex deleted file mode 100644 index b6a89142..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/login/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/profile/classes.dex b/unpackage/cache/.app-android/dex/pages/user/profile/classes.dex deleted file mode 100644 index 5378eac2..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/profile/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/register/classes.dex b/unpackage/cache/.app-android/dex/pages/user/register/classes.dex deleted file mode 100644 index d775135a..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/register/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/dex/pages/user/terms/classes.dex b/unpackage/cache/.app-android/dex/pages/user/terms/classes.dex deleted file mode 100644 index 7470b921..00000000 Binary files a/unpackage/cache/.app-android/dex/pages/user/terms/classes.dex and /dev/null differ diff --git a/unpackage/cache/.app-android/sourcemap/index.kt.map b/unpackage/cache/.app-android/sourcemap/index.kt.map deleted file mode 100644 index 6ea4e5e3..00000000 --- a/unpackage/cache/.app-android/sourcemap/index.kt.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../../../../../HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","uni_modules/ak-req/ak-req.uts","App.uvue","../../../../../../../HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","uni_modules/ak-req/interface.uts","ak/config.uts","uni_modules/i18n/index.uts","utils/utils.uts","components/supadb/aksupa.uts","components/supadb/aksupainstance.uts","types/mall-types.uts","pages/sense/types.uts","utils/sapi.uts","utils/store.uts","main.uts","utils/supabaseService.uts","pages/user/center.uvue","pages/main/index.uvue","pages/main/category.uvue","pages/main/messages.uvue","pages/main/cart.uvue","pages/main/profile.uvue","pages/mall/consumer/settings.uvue","pages/mall/consumer/wallet.uvue","pages/mall/consumer/withdraw.uvue","pages/mall/consumer/search.uvue","pages/mall/consumer/shop-detail.uvue","pages/mall/consumer/coupons.uvue","pages/mall/consumer/favorites.uvue","pages/mall/consumer/footprint.uvue","pages/mall/consumer/address-list.uvue","pages/mall/consumer/address-edit.uvue","pages/mall/consumer/checkout.uvue","pages/mall/consumer/payment.uvue","pages/mall/consumer/orders.uvue","pages/mall/consumer/order-detail.uvue","pages/mall/consumer/logistics.uvue","pages/mall/consumer/review.uvue","pages/mall/consumer/refund.uvue","pages/mall/consumer/chat.uvue","pages/mall/consumer/subscription/followed-shops.uvue","pages/mall/consumer/points/index.uvue","pages/mall/consumer/red-packets/index.uvue","pages/mall/consumer/bank-cards/index.uvue","pages/mall/consumer/bank-cards/add.uvue"],"sourcesContent":["/// \n// 之所以又写了一份,是因为外层的socket,connectSocket的时候必须传入multiple:true\n// 但是android又不能传入,目前代码里又不能写条件编译之类的。\nexport function initRuntimeSocket(\n hosts: string,\n port: string,\n id: string\n): Promise {\n if (hosts == '' || port == '' || id == '') return Promise.resolve(null)\n return hosts\n .split(',')\n .reduce>(\n (\n promise: Promise,\n host: string\n ): Promise => {\n return promise.then((socket): Promise => {\n if (socket != null) return Promise.resolve(socket)\n return tryConnectSocket(host, port, id)\n })\n },\n Promise.resolve(null)\n )\n}\n\nconst SOCKET_TIMEOUT = 500\nfunction tryConnectSocket(\n host: string,\n port: string,\n id: string\n): Promise {\n return new Promise((resolve, reject) => {\n const socket = uni.connectSocket({\n url: `ws://${host}:${port}/${id}`,\n fail() {\n resolve(null)\n },\n })\n const timer = setTimeout(() => {\n // @ts-expect-error\n socket.close({\n code: 1006,\n reason: 'connect timeout',\n } as CloseSocketOptions)\n resolve(null)\n }, SOCKET_TIMEOUT)\n\n socket.onOpen((e) => {\n clearTimeout(timer)\n resolve(socket)\n })\n socket.onClose((e) => {\n clearTimeout(timer)\n resolve(null)\n })\n socket.onError((e) => {\n clearTimeout(timer)\n resolve(null)\n })\n })\n}\n","import { AkReqUploadOptions, AkReqOptions, AkReqResponse, AkReqError } from './interface.uts';\r\nimport { SUPA_URL, SUPA_KEY, IS_TEST_MODE } from '@/ak/config.uts';\r\n\r\n// token 持久化 key\r\nconst ACCESS_TOKEN_KEY = 'akreq_access_token';\r\nconst REFRESH_TOKEN_KEY = 'akreq_refresh_token';\r\nconst EXPIRES_AT_KEY = 'akreq_expires_at';\r\n\r\n// 优化:用静态变量缓存 token,只有 set/clear 时同步 storage\r\nlet _accessToken : string | null = null;\r\nlet _refreshToken : string | null = null;\r\nlet _expiresAt : number | null = null;\r\n\r\nexport class AkReq {\r\n\tstatic setToken(token : string, refreshToken : string, expiresAt : number) {\r\n\t\t_accessToken = token;\r\n\t\t_refreshToken = refreshToken;\r\n\t\t_expiresAt = expiresAt;\r\n\t\tuni.setStorageSync(ACCESS_TOKEN_KEY, token);\r\n\t\tuni.setStorageSync(REFRESH_TOKEN_KEY, refreshToken);\r\n\t\tuni.setStorageSync(EXPIRES_AT_KEY, expiresAt);\r\n\t}\r\n\tstatic getToken() : string | null {\r\n\t\tif (_accessToken != null) return _accessToken;\r\n\t\tconst t = uni.getStorageSync(ACCESS_TOKEN_KEY) as string | null;\r\n\t\t_accessToken = t;\r\n\t\treturn t;\r\n\t}\r\n\tstatic getRefreshToken() : string | null {\r\n\t\tif (_refreshToken != null) return _refreshToken;\r\n\t\tconst t = uni.getStorageSync(REFRESH_TOKEN_KEY) as string | null;\r\n\t\t_refreshToken = t;\r\n\t\treturn t;\r\n\t} static getExpiresAt() : number | null {\r\n\t\tconst val = _expiresAt;\r\n\t\tif (val != null) return val;\r\n\t\tconst t = uni.getStorageSync(EXPIRES_AT_KEY) as number | null;\r\n\t\t_expiresAt = t;\r\n\t\treturn t;\r\n\t}\r\n\tstatic clearToken() {\r\n\t\t_accessToken = null;\r\n\t\t_refreshToken = null;\r\n\t\t_expiresAt = null;\r\n\t\tuni.removeStorageSync(ACCESS_TOKEN_KEY);\r\n\t\tuni.removeStorageSync(REFRESH_TOKEN_KEY);\r\n\t\tuni.removeStorageSync(EXPIRES_AT_KEY);\r\n\t}\t// 判断 token 是否即将过期(提前5分钟刷新)\r\n\tstatic isTokenExpiring() : boolean {\r\n\t\tconst expiresAt = this.getExpiresAt();\r\n\t\tif (expiresAt === null || expiresAt == 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tconst now = Math.floor(Date.now() / 1000);\r\n\t\treturn (expiresAt - now) < 300; // 提前5分钟刷新\r\n\t}\r\n\r\n\t// 自动刷新 token,返回 true=已刷新,false=未刷新\r\n\tstatic async refreshTokenIfNeeded(apikey ?: string) : Promise {\r\n\t\t// 没有 access_token 直接返回,不刷新\r\n\t\tconst accessToken = this.getToken();\r\n\t\tif (accessToken === null || accessToken === \"\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (!this.isTokenExpiring()) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst refreshToken = this.getRefreshToken();\r\n\t\tif (refreshToken === null || refreshToken === \"\") {\r\n\t\t\tthis.clearToken();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t// 构造 header,必须带 apikey\r\n\t\tlet headers = new UTSJSONObject();\r\n\t\tif (apikey !== null && apikey !== \"\") {\r\n\t\t\theaders.set('apikey', apikey)\r\n\t\t}\r\n\t\tconst reqData = new UTSJSONObject()\r\n\t\treqData.set('refresh_token', refreshToken)\r\n\t\ttry {\r\n\t\t\tconst res = await this.request({\r\n\t\t\t\turl: SUPA_URL + '/auth/v1/token?grant_type=refresh_token',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: reqData,\r\n\t\t\t\theaders: headers,\r\n\t\t\t\tcontentType: 'application/json'\r\n\t\t\t}, true); // skipRefresh=true,避免递归\r\n\t\t\tconst data = res.data as UTSJSONObject | null;\r\n\t\t\tlet accessToken : string | null = null;\r\n\t\t\tlet refreshTokenNew : string | null = null;\r\n\t\t\tlet expiresAt : number | null = null;\r\n\t\t\tif (data != null && typeof data.getString === 'function' && typeof data.getNumber === 'function') {\r\n\t\t\t\taccessToken = data.getString('access_token');\r\n\t\t\t\trefreshTokenNew = data.getString('refresh_token');\r\n\t\t\t\texpiresAt = data.getNumber('expires_at');\r\n\t\t\t}\r\n\t\t\tif (accessToken !== null && refreshTokenNew !== null && expiresAt !== null) {\r\n\t\t\t\tthis.setToken(accessToken, refreshTokenNew, expiresAt);\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.clearToken();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tthis.clearToken();\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\t// options: AkReqOptions, skipRefresh: boolean = false\r\n\tstatic async request(options : AkReqOptions, skipRefresh ?: boolean) : Promise> {\r\n\t\t// 自动刷新 token\r\n\t\tif (skipRefresh != true) {\r\n\t\t\tlet apikey : string | null = null;\r\n\t\t\tconst headersObj = options.headers;\r\n\t\t\tif (headersObj != null && typeof headersObj.getString === 'function') {\r\n\t\t\t\tapikey = headersObj.getString('apikey');\r\n\t\t\t}\r\n\t\t\tawait this.refreshTokenIfNeeded(apikey);\r\n\t\t}\r\n\r\n\t\t// 构建新的 headers 对象,确保所有字段都被正确传递\r\n\t\tconst newHeaders = new UTSJSONObject()\r\n\t\t\r\n\t\t// 首先复制原始 headers\r\n\t\tif (options.headers != null) {\r\n\t\t\tconst originalHeaders = options.headers\r\n\t\t\tif (typeof originalHeaders.getString === 'function') {\r\n\t\t\t\t// 复制 apikey\r\n\t\t\t\tconst apikeyStr = originalHeaders.getString('apikey')\r\n\t\t\t\tif (apikeyStr != null) {\r\n\t\t\t\t\tnewHeaders.set('apikey', apikeyStr)\r\n\t\t\t\t}\r\n\t\t\t\t// 复制 Content-Type\r\n\t\t\t\tconst contentType = originalHeaders.getString('Content-Type')\r\n\t\t\t\tif (contentType != null) {\r\n\t\t\t\t\tnewHeaders.set('Content-Type', contentType)\r\n\t\t\t\t}\r\n\t\t\t\t// 复制 Prefer\r\n\t\t\t\tconst prefer = originalHeaders.getString('Prefer')\r\n\t\t\t\tif (prefer != null) {\r\n\t\t\t\t\tnewHeaders.set('Prefer', prefer)\r\n\t\t\t\t}\r\n\t\t\t\t// 复制 Authorization(如果存在)\r\n\t\t\t\tconst auth = originalHeaders.getString('Authorization')\r\n\t\t\t\tif (auth != null) {\r\n\t\t\t\t\tnewHeaders.set('Authorization', auth)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 补齐 apikey (如果 headers 中没有,则直接使用 SUPA_KEY 补全)\r\n\t\tif (newHeaders.getString('apikey') == null) {\r\n\t\t\tif (SUPA_KEY != null && SUPA_KEY != \"\") {\r\n\t\t\t\tnewHeaders.set('apikey', SUPA_KEY)\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// 添加/更新 Authorization\r\n\t\tconst token = this.getToken();\r\n\t\tif (token != null && token != \"\") {\r\n\t\t\tnewHeaders.set('Authorization', `Bearer ${token}`)\r\n\t\t}\r\n\t\t\r\n\t\t// 确保 Content-Type 存在\r\n\t\tif (newHeaders.getString('Content-Type') == null) {\r\n\t\t\tconst contentType = options.contentType ?? 'application/json'\r\n\t\t\tif (contentType != null && contentType != \"\") {\r\n\t\t\t\tnewHeaders.set('Content-Type', contentType)\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// 添加 Accept\r\n\t\tnewHeaders.set('Accept', 'application/json')\r\n\t\t\r\n\t\t__f__('log','at uni_modules/ak-req/ak-req.uts:175','[AkReq.request] headers:', JSON.stringify(newHeaders))\r\n\t\t\r\n\t\tconst headers = newHeaders\r\n\r\n\t\tconst timeout = options.timeout ?? 10000;\r\n\t\tconst maxRetry = Math.max(0, options.retryCount ?? 0);\r\n\t\tconst baseDelay = Math.max(0, options.retryDelayMs ?? 300);\r\n\r\n\t\tconst doOnce = (): Promise> => {\r\n\t\t\treturn new Promise>((resolve) => {\r\n\t\t\t\tuni.request({\r\n\t\t\t\t\turl: options.url,\r\n\t\t\t\t\tmethod: options.method ?? 'GET',\r\n\t\t\t\t\tdata: options.data,\r\n\t\t\t\t\theader: headers,\r\n\t\t\t\t\ttimeout: timeout,\r\n\t\t\t\t\tsuccess: (res) => {\r\n\t\t\t\t\t\t// HEAD 请求特殊处理:没有响应体,只有 headers\r\n\t\t\t\t\t\tif (options.method == 'HEAD') {\r\n\t\t\t\t\t\t\tconst result = AkReq.createResponse(\r\n\t\t\t\t\t\t\t\tres.statusCode,\r\n\t\t\t\t\t\t\t\t[] as Array,\r\n\t\t\t\t\t\t\t\tres.header as UTSJSONObject\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// 兼容 res.data 可能为 string 或 UTSJSONObject 或 UTSArray\r\n\t\t\t\t\t\tlet data : UTSJSONObject | Array | null;\r\n\t\t\t\t\t\tif (typeof res.data == 'string') {\r\n\t\t\t\t\t\t\tconst strData = res.data as string;\r\n\t\t\t\t\t\t\tif (strData.length > 0 && /[^\\s]/.test(strData)) {\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tdata = JSON.parse(strData) as UTSJSONObject;\r\n\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t// 非 JSON 响应(例如纯文本/空响应/数字等),保持原始字符串,避免 JSON.parse 崩溃\r\n\t\t\t\t\t\t\t\t\tdata = new UTSJSONObject({ raw: strData });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdata = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (Array.isArray(res.data)) {\r\n\t\t\t\t\t\t\tdata = res.data as UTSJSONObject[];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconst objData = res.data as UTSJSONObject | null;\r\n\t\t\t\t\t\t\tdata = objData;\r\n\t\t\t\t\t\t\tif (objData != null) {\r\n\t\t\t\t\t\t\t\tconst accessToken = objData.getString('access_token');\r\n\t\t\t\t\t\t\t\tconst refreshTokenNew = objData.getString('refresh_token');\r\n\t\t\t\t\t\t\t\tconst expiresAt = objData.getNumber('expires_at');\r\n\t\t\t\t\t\t\t\tif (accessToken !== null && refreshTokenNew !== null && expiresAt !== null) {\r\n\t\t\t\t\t\t\t\t\tAkReq.setToken(accessToken, refreshTokenNew, expiresAt);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconst result = AkReq.createResponse(\r\n\t\t\t\t\t\t\tres.statusCode,\r\n\t\t\t\t\t\t\tdata ?? {},\r\n\t\t\t\t\t\t\tres.header as UTSJSONObject\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfail: (err) => {\r\n\t\t\t\t\t\tconst errStatus = (err.errCode != null && typeof err.errCode === 'number') ? err.errCode : 0;\r\n\t\t\t\t\t\tconst result = AkReq.createResponse(\r\n\t\t\t\t\t\t\terrStatus,\r\n\t\t\t\t\t\t\t{} as UTSJSONObject,\r\n\t\t\t\t\t\t\t{} as UTSJSONObject,\r\n\t\t\t\t\t\t\tnew UniError('uni-request', errStatus, err.errMsg ?? 'request fail')\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tlet attempt = 0;\r\n\t\tlet lastRes: AkReqResponse | null = null;\r\n\t\twhile (attempt <= maxRetry) {\r\n\t\t\tconst res = await doOnce();\r\n\t\t\tlastRes = res;\r\n\t\t\t// 仅网络失败/超时(errCode 非 0 且 status 非 2xx/3xx)时重试\r\n\t\t\tconst status = res.status ?? 0;\r\n\t\t\tconst isOk = status >= 200 && status < 400;\r\n\t\t\tif (isOk) return res;\r\n\t\t\tif (attempt === maxRetry) break;\r\n\t\t\t// 简单退避\r\n\t\t\tconst delay = baseDelay * Math.pow(2, attempt);\r\n await new Promise((r) => { setTimeout(() => { r(); }, delay); });\r\n\t\t\tattempt++;\r\n\t\t}\r\n\t\tconst finalRes = lastRes!!;\r\n\t\t// 全局处理 401 未授权:在非 refresh 场景下,清理 token。\r\n\t\t// 测试模式下不强制跳登录页,避免影响任意跳转调试。\r\n\t\tif ((finalRes.status === 401) && (skipRefresh !== true)) {\r\n\t\t\ttry {\r\n\t\t\t\tthis.clearToken();\r\n\t\t\t\tuni.showToast({ title: '未授权或登录已过期,请重新登录', icon: 'none' });\r\n\t\t\t} catch (e) {}\r\n\t\t\ttry {\r\n\t\t\t\t// 动态读取配置,避免 ak-req 模块与业务工程强耦合\r\n\t\t\t\t// const cfg = require('@/ak/config.uts') as any\r\n\t\t\t\t// const isTest = cfg != null ? (cfg.IS_TEST_MODE === true) : false\r\n const isTest = IS_TEST_MODE\r\n\t\t\t\t// if (!isTest) {\r\n\t\t\t\t// \tuni.reLaunch({ url: '/pages/user/login' });\r\n\t\t\t\t// }\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// try { uni.reLaunch({ url: '/pages/user/login' }); } catch (e2) {}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn finalRes;\r\n\t}\r\n\r\n\t// 新增 upload 方法,支持 uni.uploadFile,自动带 token/apikey\t\r\n\tstatic async upload(options : AkReqUploadOptions) : Promise> {\r\n\t\t// 上传前尝试刷新 token(若即将过期)。优先从 options.headers 或 apikey 字段获取 apikey\r\n\t\tlet apikey: string | null = null;\r\n\t\tconst hdr = options.headers;\r\n\t\tif (hdr != null && typeof hdr.getString === 'function') {\r\n\t\t\tapikey = hdr.getString('apikey');\r\n\t\t}\r\n if (apikey == null && options.apikey != null) apikey = options.apikey;\r\n await this.refreshTokenIfNeeded(apikey != null ? apikey : null);\r\n\r\n\t\tlet headers = options.headers ?? ({} as UTSJSONObject);\r\n\t\tconst token = this.getToken();\r\n\t\tif (token != null && token !== \"\") {\r\n\t\t\theaders = Object.assign({}, headers, { Authorization: `Bearer ${token}` }) as UTSJSONObject;\r\n\t\t}\r\n if (apikey != null && apikey !== \"\") {\r\n\t\t\theaders = Object.assign({}, headers, { apikey: apikey }) as UTSJSONObject;\r\n\t\t}\r\n\t\t// 默认 Accept\r\n\t\theaders = Object.assign({ Accept: 'application/json' } as UTSJSONObject, headers) as UTSJSONObject;\r\n\r\n\t\tconst timeout = options.timeout ?? 10000;\r\n\t\tconst maxRetry = Math.max(0, options.retryCount ?? 0);\r\n\t\tconst baseDelay = Math.max(0, options.retryDelayMs ?? 300);\r\n\r\n\t\tconst doOnce = (): Promise> => {\r\n\t\t\treturn new Promise>((resolve) => {\r\n\t\tconst task = uni.uploadFile({\r\n\t\t\turl: options.url,\r\n\t\t\tfilePath: options.filePath,\r\n\t\t\tname: options.name,\r\n\t\t\tformData: options.formData ?? {},\r\n\t\t\theader: headers,\r\n\t\t\ttimeout: timeout,\r\n\t\t\tsuccess: (res : UploadFileSuccess) => {\r\n\t\t\t\tlet parsed: UTSJSONObject | null = null;\r\n\t\t\t\ttry {\r\n\t\t\t\t\tparsed = JSON.parse(res.data) as UTSJSONObject;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tparsed = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\tconst accessToken = parsed.getString('access_token');\r\n\t\t\t\t\tconst refreshTokenNew = parsed.getString('refresh_token');\r\n\t\t\t\t\tconst expiresAt = parsed.getNumber('expires_at');\r\n\t\t\t\t\tif (accessToken !== null && refreshTokenNew !== null && expiresAt !== null) {\r\n\t\t\t\t\t\tAkReq.setToken(accessToken, refreshTokenNew, expiresAt);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst result = AkReq.createResponse(\r\n\t\t\t\t\tres.statusCode,\r\n\t\t\t\t\tparsed ?? {},\r\n\t\t\t\t\theaders\r\n\t\t\t\t);\r\n\t\t\t\tresolve(result);\r\n\t\t\t},\r\n\t\t\tfail: (err) => {\r\n\t\t\t\tconst errStatus = (err.errCode != null && typeof err.errCode === 'number') ? err.errCode : 0;\r\n\t\t\t\tconst result = AkReq.createResponse(\r\n\t\t\t\t\terrStatus,\r\n\t\t\t\t\t{} as UTSJSONObject,\r\n\t\t\t\t\t{} as UTSJSONObject,\r\n\t\t\t\t\tnew UniError('uni-upload', errStatus, err.errMsg ?? 'upload fail')\r\n\t\t\t\t);\r\n\t\t\t\tresolve(result);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (options.onProgress != null && task != null) {\r\n\t\t\tconst progressCallback = (res: OnProgressUpdateResult) => {\r\n\t\t\t\tconst percent = res.progress as number; // 0-100\r\n\t\t\t\tconst sent = res.totalBytesSent as number | null;\r\n\t\t\t\tconst expected = res.totalBytesExpectedToSend as number | null;\r\n\t\t\t\tif (options.onProgress != null) {\r\n\t\t\t\t\toptions.onProgress(percent, sent, expected);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\ttask.onProgressUpdate(progressCallback);\r\n\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tlet attempt = 0;\r\n\t\tlet lastRes: AkReqResponse | null = null;\r\n\t\twhile (attempt <= maxRetry) {\r\n\t\t\tconst res = await doOnce();\r\n\t\t\tlastRes = res;\r\n\t\t\tconst status = res.status ?? 0;\r\n\t\t\tconst isOk = status >= 200 && status < 400;\r\n\t\t\tif (isOk) return res;\r\n\t\t\tif (attempt === maxRetry) break;\r\n\t\t\tconst delay = baseDelay * Math.pow(2, attempt);\r\n\t\t\tawait new Promise((resolve) => {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tresolve();\r\n\t\t\t\t}, delay);\r\n\t\t\t});\r\n\t\t\tattempt++;\r\n\t\t}\r\n\t\treturn lastRes!!;\r\n\t}\r\n\t// 辅助方法:创建 AkReqResponse 对象,避免类型推断问题\r\n\tstatic createResponse(\r\n\t\tstatus: number,\r\n\t\tdata: T | Array ,\r\n\t\theaders: UTSJSONObject,\r\n\t\terror: UniError | null = null,\r\n\t\ttotal: number | null = null,\r\n\t\tpage: number | null = null,\r\n\t\tlimit: number | null = null,\r\n\t\thasmore: boolean | null = null,\r\n\t\torigin: any | null = null\r\n\t): AkReqResponse {\r\n\t\treturn {\r\n\t\t\tstatus,\r\n\t\t\tdata,\r\n\t\t\theaders,\r\n\t\t\terror,\r\n\t\t\ttotal,\r\n\t\t\tpage,\r\n\t\t\tlimit,\r\n\t\t\thasmore,\r\n\t\t\torigin\r\n\t\t};\r\n\t}\r\n\r\n}\r\n\r\nexport default AkReq;","\r\n\r\n\r\n","import { initRuntimeSocket } from './socket'\n\nexport function initRuntimeSocketService(): Promise {\n const hosts: string = process.env.UNI_SOCKET_HOSTS\n const port: string = process.env.UNI_SOCKET_PORT\n const id: string = process.env.UNI_SOCKET_ID\n if (hosts == '' || port == '' || id == '') return Promise.resolve(false)\n let socketTask: SocketTask | null = null\n __registerWebViewUniConsole(\n (): string => {\n return process.env.UNI_CONSOLE_WEBVIEW_EVAL_JS_CODE\n },\n (data: string) => {\n socketTask?.send({\n data,\n } as SendSocketMessageOptions)\n }\n )\n return Promise.resolve()\n .then((): Promise => {\n return initRuntimeSocket(hosts, port, id).then((socket): boolean => {\n if (socket == null) {\n return false\n }\n socketTask = socket\n return true\n })\n })\n .catch((): boolean => {\n return false\n })\n}\n\ninitRuntimeSocketService()\n","// ak-req 类型定义\r\nexport type AkReqOptions = {\r\n url: string;\r\n method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' |'HEAD';\r\n data?: UTSJSONObject | Array;\r\n headers?: UTSJSONObject;\r\n timeout?: number;\r\n contentType?: string; // 新增,支持顶级 contentType\r\n // 可选:重试设置(仅网络错误/超时触发)。默认重试 0 次\r\n retryCount?: number; // 最大重试次数,默认 0\r\n retryDelayMs?: number; // 首次重试延迟,默认 300ms,指数退避\r\n};\r\n// 上传参数类型定义\r\nexport type AkReqUploadOptions = {\r\n url: string,\r\n filePath: string,\r\n name: string,\r\n formData?: UTSJSONObject,\r\n headers?: UTSJSONObject,\r\n apikey?: string,\r\n timeout?: number,\r\n // 进度回调,0-100(注意:H5/APP 平台支持不同)\r\n onProgress?: (progress: number, transferredBytes?: number, totalBytes?: number) => void,\r\n // 可选:重试设置(仅网络错误/超时触发)。默认 0\r\n retryCount?: number,\r\n retryDelayMs?: number\r\n};\r\n\r\nexport type AkReqResponse = {\r\n status: number;\r\n data: T | Array | null; // 支持 null\r\n headers: UTSJSONObject;\r\n error: UniError | null;\r\n total:number |null;\r\n page: number |null;\r\n limit: number |null;\r\n hasmore:boolean |null;\r\n origin: any | null;\r\n};\r\n\r\nexport class AkReqError extends Error {\r\n code: number;\r\n constructor(message: string, code: number = 0) {\r\n super(message);\r\n this.code = code;\r\n this.name = 'AkReqError';\r\n }\r\n}\r\n","// Supabase 配置\r\n// 内网环境 - 本地部署的 Supabase\r\n// IP: 192.168.1.62\r\n// Kong HTTP Port: 8000\r\n\r\n//export const SUPA_URL: string = 'http://192.168.1.61:18000'\r\n//export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'\r\nexport const SUPA_URL: string = 'http://119.146.131.237:9126'\r\nexport const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'\r\n\r\n// WebSocket 实时连接(内网使用 ws:// 而非 wss://)\r\nexport const WS_URL: string = 'ws://119.146.131.237:9126/realtime/v1/websocket'\r\n//export const WS_URL: string = 'ws://localhost:18000/realtime/v1/websocket'\r\n\r\n// 备用配置(已注释,如需切换可取消注释)\r\n// 开发环境 - 其他内网地址\r\n// export const SUPA_URL: string = 'http://192.168.0.150:8080'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'ws://192.168.0.150:8080/realtime/v1/websocket'\r\n\r\n// 生产环境 - Supabase 云服务(已注释)\r\n// export const SUPA_URL: string = 'https://ak3.oulog.com'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'wss://ak3.oulog.com/realtime/v1/websocket'\r\n\r\n// 指向你的 Supabase 服务(开发/私有部署)\r\n// export const SUPA_URL: string = 'http://192.168.1.64:3000'\r\n// export const SUPA_KEY: string = 'your-anon-key'\r\n// export const WS_URL: string = 'ws://192.168.1.64:3000/realtime/v1'\r\n\r\n// 路由配置\r\nexport const HOME_REDIRECT: string = '/pages/main/index'\r\nexport const TABORPAGE: string = '/pages/main/index'\r\n\r\n// 测试模式:放开任意跳转(禁用启动页/登录/401 的强制重定向)\r\nexport const IS_TEST_MODE: boolean = true","// i18n 国际化配置\r\n// 这是一个简化的 i18n 实现,用于支持多语言切换\r\n\r\n// 语言资源\r\nconst messages: UTSJSONObject = new UTSJSONObject()\r\n\r\n// 默认语言\r\nconst defaultLocale = 'zh-CN'\r\n\r\n// 当前语言(响应式)\r\nlet currentLocale = defaultLocale\r\n\r\n// 翻译函数\r\nfunction t(key: string, values: UTSJSONObject | null = null, locale: string | null = null): string {\r\n\tconst targetLocale = locale ?? currentLocale\r\n\t// 这里应该从 messages 中获取翻译,简化实现直接返回 key\r\n\t// 实际项目中应该加载语言资源文件\r\n\treturn key\r\n}\r\n\r\n// 创建响应式 locale 对象\r\nclass LocaleWrapper {\r\n get value(): string {\r\n return currentLocale\r\n }\r\n set value(newLocale: string) {\r\n currentLocale = newLocale\r\n }\r\n}\r\nconst localeObj = new LocaleWrapper()\r\n\r\n// I18n Global Context\r\nclass I18nGlobal {\r\n\tt(key: string, values: UTSJSONObject | null = null, locale: string | null = null): string {\r\n\t\treturn t(key, values, locale)\r\n\t}\r\n\tlocale: LocaleWrapper = localeObj\r\n}\r\n\r\n// I18n Instance\r\nclass I18nInstance {\r\n\tglobal: I18nGlobal = new I18nGlobal()\r\n}\r\n\r\n// 导出 i18n 对象\r\nconst i18n = new I18nInstance()\r\nexport default i18n\r\n","// 通用 UTSJSONObject 转任意 type 的函数\r\n// UTS 2024\r\n\r\nimport i18n from '@/uni_modules/i18n/index.uts';\r\n\r\n/**\r\n * 切换应用语言设置\r\n * @param locale 语言代码,如 'zh-CN' 或 'en-US'\r\n */\r\nexport function switchLocale(locale: string) {\r\n // 设置存储\r\n uni.setStorageSync('uVueI18nLocale', locale);\r\n \r\n // 设置 i18n 语言\r\n try {\r\n if (i18n != null && i18n.global != null) {\r\n i18n.global.locale.value = locale;\r\n }\r\n } catch (err) {\r\n __f__('error','at utils/utils.uts:20','Failed to switch locale:', err);\r\n }\r\n}\r\n\r\n/**\r\n * 获取当前语言设置\r\n * @returns 当前语言代码\r\n */\r\nexport function getCurrentLocale(): string {\r\n const locale = uni.getStorageSync('uVueI18nLocale') as string;\r\n if (locale == null || locale == '') {\r\n return 'zh-CN';\r\n }\r\n return locale;\r\n}\r\n\r\n/**\r\n * 确保语言设置正确初始化\r\n */\r\nexport function ensureLocaleInitialized() {\r\n const currentLocale = getCurrentLocale();\r\n if (currentLocale == null || currentLocale == '') {\r\n switchLocale('zh-CN');\r\n }\r\n}\r\n/**\r\n * 将任意错误对象转换为标准的 UniError\r\n * @param error 任意类型的错误对象\r\n * @param defaultMessage 默认错误消息\r\n * @returns 标准化的 UniError 对象\r\n */\r\nexport function toUniError(error: any, defaultMessage: string = '操作失败'): UniError {\r\n // 如果已经是 UniError,直接返回\r\n if (error instanceof UniError) {\r\n return error\r\n }\r\n let errorMessage = defaultMessage\r\n let errorCode = -1\r\n \r\n try {\r\n // 如果是普通 Error 对象\r\n if (error instanceof Error) {\r\n errorMessage = error.message != null && error.message != '' ? error.message : defaultMessage\r\n }\r\n // 如果是字符串\r\n else if (typeof error === 'string') {\r\n errorMessage = error\r\n } // 如果是对象,尝试提取错误信息\r\n else if (error != null && typeof error === 'object') {\r\n const errorObj = error as UTSJSONObject\r\n let message: string = ''\r\n \r\n // 逐个检查字段,避免使用 || 操作符\r\n if (errorObj['message'] != null) {\r\n const msgValue = errorObj['message']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['errMsg'] != null) {\r\n const msgValue = errorObj['errMsg']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['error'] != null) {\r\n const msgValue = errorObj['error']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['details'] != null) {\r\n const msgValue = errorObj['details']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n } else if (errorObj['msg'] != null) {\r\n const msgValue = errorObj['msg']\r\n if (typeof msgValue === 'string') {\r\n message = msgValue\r\n }\r\n }\r\n \r\n if (message != '') {\r\n errorMessage = message\r\n }\r\n \r\n // 尝试提取错误码\r\n let code: number = 0\r\n if (errorObj['code'] != null) {\r\n const codeValue = errorObj['code']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n } else if (errorObj['errCode'] != null) {\r\n const codeValue = errorObj['errCode']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n } else if (errorObj['status'] != null) {\r\n const codeValue = errorObj['status']\r\n if (typeof codeValue === 'number') {\r\n code = codeValue\r\n }\r\n }\r\n \r\n if (code != 0) {\r\n errorCode = code\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/utils.uts:128','Error converting to UniError:', e)\r\n errorMessage = defaultMessage\r\n }\r\n // 创建标准 UniError\r\n const uniError = new UniError('AppError', errorCode, errorMessage)\r\n return uniError\r\n}\r\n\r\n/**\r\n * 响应式状态管理\r\n * @returns 响应式状态对象\r\n */\r\nexport function responsiveState() {\r\n const screenInfo = uni.getSystemInfoSync()\r\n const screenWidth = screenInfo.screenWidth\r\n \r\n return {\r\n isLargeScreen: screenWidth >= 768,\r\n isSmallScreen: screenWidth < 576,\r\n screenWidth: screenWidth,\r\n cardColumns: screenWidth >= 768 ? 3 : screenWidth >= 576 ? 2 : 1\r\n }\r\n}\r\n\r\nexport function goToLogin(redirectUrl?: string | null) {\r\n try {\r\n const target = redirectUrl != null && redirectUrl.length > 0 ? redirectUrl : ''\r\n if (target.length > 0) {\r\n const redirect = encodeURIComponent(target)\r\n uni.navigateTo({ url: `/pages/user/login?redirect=${redirect}` })\r\n } else {\r\n uni.navigateTo({ url: '/pages/user/login' })\r\n }\r\n } catch (e) {\r\n uni.navigateTo({ url: '/pages/user/login' })\r\n }\r\n}\r\n\r\n/**\r\n * 兼容 UTS Android 的剪贴板写入\r\n * @param text 要写入剪贴板的文本\r\n */\r\nexport function setClipboard(text: string): void {\r\n\r\n\r\n\r\n}\r\n\r\n/**\r\n * 格式化时间,显示为相对时间(如:刚刚,几小时前)\r\n * @param dateStr ISO 格式的日期字符串\r\n * @returns 格式化后的相对时间字符串\r\n */\r\nexport function formatTime(dateStr: string): string {\r\n if (dateStr == '') return ''\r\n try {\r\n const date = new Date(dateStr)\r\n const now = new Date()\r\n const diff = now.getTime() - date.getTime()\r\n const hours = Math.floor(diff / (1000 * 60 * 60))\r\n \r\n if (hours < 1) {\r\n return '刚刚'\r\n } else if (hours < 24) {\r\n return `${hours}小时前`\r\n } else {\r\n return `${Math.floor(hours / 24)}天前`\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/utils.uts:197','formatTime error:', e)\r\n return dateStr.replace('T', ' ').split('.')[0]\r\n }\r\n}\r\n\r\n","import { AkReqResponse, AkReqUploadOptions, AkReq } from '@/uni_modules/ak-req/index.uts'\r\nimport type { AkReqOptions } from '@/uni_modules/ak-req/index.uts'\r\nimport { toUniError } from '@/utils/utils.uts'\r\n\r\nexport type AkSupaSignInResult = {\r\n\taccess_token : string;\r\n\trefresh_token : string;\r\n\texpires_at : number;\r\n\tuser : UTSJSONObject | null;\r\n\ttoken_type ?: string;\r\n\texpires_in ?: number;\r\n\traw : UTSJSONObject;\r\n}\r\n\r\n// Count 选项枚举\r\nexport type CountOption = 'exact' | 'planned' | 'estimated';\r\n\r\n// 定义查询选项类型,兼容 UTS\r\nexport type AkSupaSelectOptions = {\r\n\tlimit ?: number;\r\n\torder ?: string;\r\n\tgetcount ?: string; // 保持向后兼容\r\n\tcount ?: CountOption; // 新增:更清晰的 count 选项\r\n\thead ?: boolean; // 新增:head 模式,只返回元数据\r\n\tcolumns ?: string;\r\n\tsingle ?: boolean; // 新增,支持 single-object\r\n\trangeFrom ?: number; // 新增:range 分页起始位置\r\n\trangeTo ?: number; // 新增:range 分页结束位置\r\n};\r\n\r\n// 新增:order方法参数类型\r\nexport type OrderOptions = {\r\n\tascending ?: boolean;\r\n};\r\n\r\n// 新增类型定义,便于 getSession 返回类型复用\r\nexport type AkSupaSessionInfo = {\r\n\tsession : AkSupaSignInResult | null;\r\n\tuser : UTSJSONObject | null;\r\n};\r\n\r\n// 链式请求构建器\r\n// 强类型条件定义\r\ntype AkSupaCondition = {\r\n\tfield : string; // 已经 encodeURIComponent 过\r\n\top : string;\r\n\tvalue : any;\r\n\tlogic : string; // 'and' | 'or'\r\n};\r\n\r\nexport class AkSupaQueryBuilder {\r\n\tprivate _supa : AkSupa;\r\n\tprivate _table : string;\r\n\tprivate _filter : UTSJSONObject | null = null;\r\n\tprivate _options : AkSupaSelectOptions = {};\r\n\tprivate _values : UTSJSONObject | Array | null = null;\r\n\tprivate _single : boolean = false;\r\n\tprivate _conditions : Array = [];\r\n\tprivate _nextLogic : string = 'and';\r\n\t// 新增:记录当前操作类型\r\n\tprivate _action : 'select' | 'insert' | 'update' | 'delete' | 'rpc' | null = null;\r\n\tprivate _orString : string | null = null; // 新增:支持 or 字符串\r\n\tprivate _rpcFunction : string | null = null;\r\n\tprivate _rpcParams : UTSJSONObject | null = null;\r\n\tprivate _page : number = 1; // 新增:当前页码\r\n\r\n\tconstructor(supa : AkSupa, table : string) {\r\n\t\tthis._supa = supa;\r\n\t\tthis._table = table;\r\n\t}\r\n\r\n\t// 链式条件方法\r\n\teq(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'eq', value); }\r\n\tneq(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'neq', value); }\r\n\tgt(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'gt', value); }\r\n\tgte(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'gte', value); }\r\n\tlt(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'lt', value); }\r\n\tlte(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'lte', value); }\r\n\tlike(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'like', value); }\r\n\tilike(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'ilike', value); }\r\n\tin(field : string, value : any[]) : AkSupaQueryBuilder { return this._addCond(field, 'in', value); }\r\n\tis(field : string, value : any | null) : AkSupaQueryBuilder { return this._addCond(field, 'is', value); }\r\n\tcontains(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'cs', value); }\r\n\tcontainedBy(field : string, value : any) : AkSupaQueryBuilder { return this._addCond(field, 'cd', value); }\r\n\tnot(field : string, opOrValue : any, value: any | null = null) : AkSupaQueryBuilder {\r\n\t\tif (value != null) {\r\n\t\t\t// 三元形式:field, operator, value\r\n\t\t\t// 例如 not('badge', 'is', null) -> badge=not.is.null\r\n\t\t\tconst combinedOp = 'not.' + opOrValue;\r\n\t\t\t// 将 null 转换为字符串 'null',避免构造对象时缺少 value 属性\r\n\t\t\tlet safeValue = value;\r\n\t\t\tif (value === null) {\r\n\t\t\t\tsafeValue = 'null';\r\n\t\t\t}\r\n\t\t\treturn this._addCond(field, combinedOp, safeValue);\r\n\t\t} else {\r\n\t\t\t// 二元形式:field, value\r\n\t\t\tlet safeValue = opOrValue;\r\n\t\t\tif (opOrValue === null) {\r\n\t\t\t\tsafeValue = 'null';\r\n\t\t\t}\r\n\t\t\treturn this._addCond(field, 'not', safeValue);\r\n\t\t}\r\n\t}\r\n\r\n\tand() : AkSupaQueryBuilder { this._nextLogic = 'and'; return this; }\r\n\tor(str ?: string) : AkSupaQueryBuilder {\r\n\t\tif (typeof str == 'string') {\r\n\t\t\tthis._orString = str;\r\n\t\t} else {\r\n\t\t\tthis._nextLogic = 'or';\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate _addCond(afield : string, op : string, value : any | null) : AkSupaQueryBuilder {\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:117','add cond:', op, afield, value)\r\n\t\tconst field = encodeURIComponent(afield)!!\r\n\t\t// 将值安全存储,避免安卓端类型转换问题\r\n\t\tlet safeValue: any | null = value;\r\n\t\tif (value === null) {\r\n\t\t\tsafeValue = 'null';\r\n\t\t} else if (Array.isArray(value)) {\r\n\t\t\t// 数组类型保持原样,用于 in 操作符\r\n\t\t\tsafeValue = value;\r\n\t\t} else if (typeof value === 'number') {\r\n\t\t\t// 数字类型保持原样\r\n\t\t\tsafeValue = value;\r\n\t\t} else if (typeof value === 'boolean') {\r\n\t\t\t// 布尔类型保持原样\r\n\t\t\tsafeValue = value;\r\n\t\t} else if (typeof value !== 'string') {\r\n\t\t\t// 其他类型尝试转换为字符串\r\n\t\t\ttry {\r\n\t\t\t\tsafeValue = value.toString();\r\n\t\t\t} catch (e) {\r\n\t\t\t\tsafeValue = '';\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._conditions.push({ field, op, value: safeValue ?? '', logic: this._nextLogic });\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:141',this._conditions)\r\n\t\tthis._nextLogic = 'and';\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 支持原有 where 方式\r\n\twhere(filter : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._filter = filter;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpage(page : number) : AkSupaQueryBuilder {\r\n\t\tthis._page = page;\r\n\t\t// 如果已设置 limit,则自动设置 range\r\n\t\tlet limit = 0;\r\n\t\tif (typeof this._options.limit == 'number') {\r\n\t\t\tlimit = this._options.limit ?? 0;\r\n\t\t}\r\n\t\tif (limit > 0) {\r\n\t\t\tconst from = (page - 1) * limit;\r\n\t\t\tconst to = from + limit - 1;\r\n\t\t\tthis.range(from, to);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tlimit(limit : number) : AkSupaQueryBuilder {\r\n\t\tthis._options.limit = limit;\r\n\t\t// 总是为 limit 设置对应的 range,确保限制生效\r\n\t\tconst from = (this._page - 1) * limit;\r\n\t\tconst to = from + limit - 1;\r\n\t\tthis.range(from, to);\r\n\t\treturn this;\r\n\t}\r\n\r\n\torder(order : string, options ?: OrderOptions) : AkSupaQueryBuilder {\r\n\t\tif (options != null && options.ascending == false) {\r\n\t\t\tthis._options.order = order + '.desc';\r\n\t\t} else {\r\n\t\t\tthis._options.order = order + '.asc';\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tcolumns(columns : string) : AkSupaQueryBuilder {\r\n\t\tthis._options.columns = columns;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 新增:专门的 count 方法\r\n\tcount(option : CountOption = 'exact') : AkSupaQueryBuilder {\r\n\t\tthis._options.count = option;\r\n\t\tthis._options.head = true; // count 操作默认使用 head 模式\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 新增:便捷的 count 方法\r\n\tcountExact() : AkSupaQueryBuilder {\r\n\t\treturn this.count('exact');\r\n\t}\r\n\r\n\tcountEstimated() : AkSupaQueryBuilder {\r\n\t\treturn this.count('estimated');\r\n\t}\r\n\r\n\tcountPlanned() : AkSupaQueryBuilder {\r\n\t\treturn this.count('planned');\r\n\t}\r\n\r\n\t// 新增:head 模式方法\r\n\thead(enable : boolean = true) : AkSupaQueryBuilder {\r\n\t\tthis._options.head = enable;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tvalues(values : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._values = values;\r\n\t\treturn this;\r\n\t}\r\n\tsingle() : AkSupaQueryBuilder {\r\n\t\tthis._single = true;\r\n\t\treturn this;\r\n\t}\r\n\trange(from : number, to : number) : AkSupaQueryBuilder {\r\n\t\tthis._options.rangeFrom = from;\r\n\t\tthis._options.rangeTo = to;\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:225','设置 range:', from, 'to', to);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// 辅助函数:安全地将值转换为字符串\r\n\tprivate _valToStr(val: any): string {\r\n\t\tif (val == null) return '';\r\n\t\ttry {\r\n\t\t\t// 尝试直接调用 toString\r\n\t\t\treturn val.toString();\r\n\t\t} catch (e) {\r\n\t\t\ttry {\r\n\t\t\t\t// 尝试 JSON 序列化\r\n\t\t\t\treturn JSON.stringify(val);\r\n\t\t\t} catch (e2) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// 将 _conditions 强类型直接转换为 Supabase/PostgREST 查询字符串(不再用 UTSJSONObject 做中转)\r\n\tprivate _buildFilter() : string | null {\r\n\t\tif (this._conditions.length == 0 && (this._orString==null || this._orString == \"\")) {\r\n\t\t\t// 兼容 where(filter) 方式\r\n\t\t\tif (this._filter == null) return null;\r\n\t\t\t// 兼容旧的 UTSJSONObject filter\r\n\t\t\treturn buildSupabaseFilterQuery(this._filter);\r\n\t\t}\r\n\r\n\t\t// 先分组 and/or,全部用 AkSupaCondition 强类型\r\n\t\tconst ands: AkSupaCondition[] = [];\r\n\t\tconst ors: AkSupaCondition[] = [];\r\n\t\tfor (const c of this._conditions) {\r\n\t\t\tif (c.logic == \"or\") {\r\n\t\t\t\tors.push(c);\r\n\t\t\t} else {\r\n\t\t\t\tands.push(c);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst params: string[] = [];\r\n\t\t// 处理 and 条件\r\n\t\tfor (const cond of ands) {\r\n\t\t\tconst k = cond.field;\r\n\t\t\tconst op = cond.op;\r\n\t\t\tconst val = cond.value;\r\n\t\t\tif ((op == 'in' || op == 'not.in') && Array.isArray(val)) {\r\n\t\t\t\tparams.push(`${k}=${op}.(${val.map(x => this._valToStr(x)).map(x => encodeURIComponent(x)).join(',')})`);\r\n\t\t\t} else if ((op == 'is' || op == 'not.is') && (val == null || val == 'null')) {\r\n\t\t\t\tparams.push(`${k}=${op}.null`);\r\n\t\t\t} else if (op == 'like' || op == 'ilike') {\r\n\t\t\t\tparams.push(`${k}=${op}.${this._valToStr(val)}`);\r\n\t\t\t} else {\r\n\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(this._valToStr(val))}`);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// 处理 or 条件\r\n\t\tif (ors.length > 0) {\r\n\t\t\tconst orStr = ors.map(o => {\r\n\t\t\t\tconst k = o.field;\r\n\t\t\t\tconst op = o.op;\r\n\t\t\t\tconst val = o.value;\r\n\t\t\t\tif (op == \"in\" && Array.isArray(val)) {\r\n\t\t\t\t\treturn `${k}.in.(${val.map(x => encodeURIComponent(this._valToStr(x))).join(\",\")})`;\r\n\t\t\t\t}\r\n\t\t\t\tif (op == \"is\" && (val == null)) {\r\n\t\t\t\t\treturn `${k}.is.null`;\r\n\t\t\t\t}\r\n\t\t\t\tif (op == \"like\" || op == \"ilike\") {\r\n\t\t\t\t\treturn `${k}.${op}.${this._valToStr(val)}`;\r\n\t\t\t\t}\r\n\t\t\t\treturn `${k}.${op}.${encodeURIComponent(this._valToStr(val))}`;\r\n\t\t\t}).join(\",\");\r\n\t\t\tparams.push(`or=(${orStr})`);\r\n\t\t}\r\n\t\tif (this._orString!=null && this._orString !== \"\") {\r\n\t\t\t__f__('log','at components/supadb/aksupa.uts:301','[AkSupaQueryBuilder] or字符串:', this._orString)\r\n\t\t\tparams.push(`or=(${this._orString!!})`);\r\n\t\t}\r\n\t\treturn params.length > 0 ? params.join('&') : null;\r\n\t}\r\n\r\n\tselect(columns : string = \"*\", opt : UTSJSONObject | null = null) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'select';\r\n\t\tif (columns != null) {\r\n\t\t\tthis._options.columns = columns;\r\n\t\t}\r\n\t\tif (opt != null) {\r\n\t\t\t// 合并 opt 到 this._options\r\n\t\t\tObject.assign(this._options, opt);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\tinsert(values : UTSJSONObject | Array) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'insert';\r\n\t\t// 检查是否为空\r\n\t\tif (Array.isArray(values)) {\r\n\t\t\tif (values.length == 0) throw toUniError('No values set for insert', 'Insert操作缺少数据');\r\n\t\t} else {\r\n\t\t\tif (UTSJSONObject.keys(values).length == 0) throw toUniError('No values set for insert', 'Insert操作缺少数据');\r\n\t\t}\r\n\t\tthis._values = values;\r\n\t\treturn this;\r\n\t}\r\n\tupdate(values : UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'update';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:331','ak update', this._action)\r\n\t\tif (UTSJSONObject.keys(values).length == 0) throw toUniError('No values set for update', '更新操作缺少数据');\r\n\t\tthis._values = values;\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:334','ak update', values)\r\n\t\treturn this;\r\n\t}\r\n\tdelete() : AkSupaQueryBuilder {\r\n\t\tthis._action = 'delete';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:339','delete action now')\r\n\t\tconst filter = this._buildFilter();\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:341',filter)\r\n\t\tif (filter == null) throw toUniError('No filter set for delete', '删除操作缺少筛选条件');\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:343','delete action')\r\n\t\treturn this;\r\n\t}\r\n\r\n\trpc(functionName : string, params ?: UTSJSONObject) : AkSupaQueryBuilder {\r\n\t\tthis._action = 'rpc';\r\n\t\tthis._rpcFunction = functionName;\r\n\t\tthis._rpcParams = params;\r\n\t\treturn this;\r\n\t}\r\n\t// 链式请求最终执行方法 - 返回 UTSJSONObject\r\n\tasync execute() : Promise> {\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:355','execute')\r\n\t\tconst filter = this._buildFilter();\r\n\t\t__f__('log','at components/supadb/aksupa.uts:357','[AkSupaQueryBuilder] execute - 表:', this._table, 'filter:', filter)\r\n\t\tlet res : any;\r\n\t\tswitch (this._action) {\r\n\t\t\tcase 'select': {\r\n\t\t\t\t// 传递 single 状态到 options\r\n\t\t\t\tif (this._single) {\r\n\t\t\t\t\tthis._options.single = true;\r\n\t\t\t\t\t// 如果是 single 请求,自动设置 limit 为 1\r\n\t\t\t\t\tif (this._options.limit == null) {\r\n\t\t\t\t\t\tthis._options.limit = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:368',this._options)\r\n\t\t\t\t}\t\t\t\t// 保证分页统计\r\n\t\t\t\tif (this._options.limit != null) {\r\n\t\t\t\t\tif (this._options.getcount == null && this._options.count == null) {\r\n\t\t\t\t\t\tthis._options.count = 'exact'; // 优先使用新的 count 选项\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tres = await this._supa.select(this._table, filter, this._options);\r\n\t\t\t\t// 解析 content-range header\r\n\t\t\t\tlet total = 0;\r\n\t\t\t\tlet hasmore = false;\r\n\t\t\t\tconst page = this._page;\r\n\t\t\t\tlet resdata = res.data\r\n\t\t\t\tlet limit = 0;\r\n\t\t\t\tif (typeof this._options.limit == 'number') {\r\n\t\t\t\t\tlimit = this._options.limit ?? 0;\r\n\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\tlimit = resdata.length;\r\n\t\t\t\t}\r\n\t\t\t\tlet contentRange : string | null = null;\r\n\t\t\t\tif (res.headers != null) {\r\n\t\t\t\t\tlet theheader = res.headers as UTSJSONObject\r\n\t\t\t\t\tif (typeof theheader.get == 'function') {\r\n\r\n\t\t\t\t\t\tcontentRange = theheader.get('content-range') as string | null;\r\n\t\t\t\t\t} else if (typeof theheader['content-range'] == 'string') {\r\n\t\t\t\t\t\tcontentRange = theheader['content-range'] as string;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (contentRange != null) {\r\n\t\t\t\t\tconst match = /\\/(\\d+)$/.exec(contentRange);\r\n\t\t\t\t\tif (match != null) {\r\n\t\t\t\t\t\ttotal = parseInt(match[1] ?? \"0\");\r\n\t\t\t\t\t\thasmore = (page * limit) < total;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (total == 0) {\r\n\t\t\t\t\t// 使用 JSON 序列化访问 res 对象\r\n\t\t\t\t\tconst resStr = JSON.stringify(res)\r\n\t\t\t\t\tconst resParsed = JSON.parse(resStr)\r\n\t\t\t\t\tif (resParsed != null) {\r\n\t\t\t\t\t\tconst resObj = resParsed as UTSJSONObject\r\n\t\t\t\t\t\tconst countVal = resObj.getNumber('count')\r\n\t\t\t\t\t\tif (countVal != null) {\r\n\t\t\t\t\t\t\ttotal = countVal\r\n\t\t\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\t\t\ttotal = resdata.length\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttotal = 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (Array.isArray(resdata)) {\r\n\t\t\t\t\t\ttotal = resdata.length\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttotal = 0\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (!hasmore) hasmore = (page * limit) < total;\t\t\t\t// 如果是 head 模式,只返回 count 信息\r\n\t\t\t\tif (this._options.head == true) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdata: null, // head 模式不返回数据\r\n\t\t\t\t\t\ttotal,\r\n\t\t\t\t\t\tpage,\r\n\t\t\t\t\t\tlimit,\r\n\t\t\t\t\t\thasmore: false, // head 模式不需要分页信息\r\n\t\t\t\t\t\torigin: res,\r\n\t\t\t\t\t\tstatus: res.status,\r\n\t\t\t\t\t\theaders: res.headers,\r\n\t\t\t\t\t\terror: res.error\r\n\t\t\t\t\t} as AkReqResponse;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tdata: res.data,\r\n\t\t\t\t\ttotal,\r\n\t\t\t\t\tpage,\r\n\t\t\t\t\tlimit,\r\n\t\t\t\t\thasmore,\r\n\t\t\t\t\torigin: res,\r\n\t\t\t\t\tstatus: res.status,\r\n\t\t\t\t\theaders: res.headers,\r\n\t\t\t\t\terror: res.error\r\n\t\t\t\t} as AkReqResponse;\r\n\t\t\t}\r\n\t\t\tcase 'insert': {\r\n\t\t\t\tconst insertValues = this._values;\r\n\t\t\t\tif (insertValues == null) throw toUniError('No values set for insert', '插入操作缺少数据');\r\n\t\t\t\tres = await this._supa.insert(this._table, insertValues);\r\n\t\t\t\tbreak;\r\n\t\t\t} case 'update': {\r\n\t\t\t\tconst updateValues = this._values;\r\n\t\t\t\tif (updateValues == null) throw toUniError('No values set for update', '更新操作缺少数据');\r\n\t\t\t\tif (filter == null) throw toUniError('No filter set for update', '更新操作缺少筛选条件');\r\n\t\t\t\t// Update操作只支持单个对象,不支持数组\r\n\t\t\t\tif (Array.isArray(updateValues)) throw toUniError('Update does not support array values', '更新操作不支持数组数据');\r\n\t\t\t\tres = await this._supa.update(this._table, filter, updateValues as UTSJSONObject);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'delete': {\r\n\t\t\t\tif (filter == null) throw toUniError('No filter set for delete', '删除操作缺少筛选条件');\r\n\t\t\t\tres = await this._supa.delete(this._table, filter);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'rpc': {\r\n\t\t\t\tif (this._rpcFunction == null) throw toUniError('No RPC function specified', 'RPC调用缺少函数名');\r\n\t\t\t\tres = await this._supa.rpc(this._rpcFunction as string, this._rpcParams);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\tres = await this._supa.select(this._table, filter, this._options);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// 保证 data 字段存在(不能赋null,赋空对象或空字符串)\r\n\t\tif (res[\"data\"] == null) res[\"data\"] = {};\r\n\t\treturn res;\r\n\t}\t// 新增:支持类型转换的执行方法\r\n\tasync executeAs() : Promise> {\r\n\t\tconst result = await this.execute();\r\n\r\n\t\tif (result.data == null) {\r\n\t\t\treturn result as AkReqResponse;\r\n\t\t}\r\n\r\n\t\tlet convertedData : any | null = null;\r\n\r\n\t\ttry {\r\n\t\t\tif (Array.isArray(result.data)) {\r\n\t\t\t\tconst dataArray = result.data;\r\n\t\t\t\tconst convertedArray : Array = [];\r\n\t\t\t\tfor (let i = 0; i < dataArray.length; i++) {\r\n\t\t\t\t\tconst item = dataArray[i];\r\n\t\t\t\t\tif (item instanceof UTSJSONObject) {\r\n\r\n\t\t\t\t\t\tconst parsed = item.parse();\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t__f__('warn','at components/supadb/aksupa.uts:508','转换失败,使用原始对象:', item);\r\n\t\t\t\t\t\t\tconvertedArray.push(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst jsonObj = new UTSJSONObject(item);\r\n\r\n\t\t\t\t\t\tconst parsed = jsonObj.parse();\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t__f__('warn','at components/supadb/aksupa.uts:523','转换失败,使用原始对象:', item);\r\n\t\t\t\t\t\t\tconvertedArray.push(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconvertedData = convertedArray;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tconst convertedArray : Array = [];\r\n\t\t\t\tif (result.data instanceof UTSJSONObject) {\r\n\t\t\t\t\tconst parsed = result.data.parse();\r\n\r\n\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:539','转换失败:', result.data)\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst jsonObj = new UTSJSONObject(result.data);\r\n\t\t\t\t\tconst parsed = jsonObj.parse();\r\n\t\t\t\t\tif (parsed != null) {\r\n\t\t\t\t\t\tconvertedArray.push(parsed);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//__f__('log','at components/supadb/aksupa.uts:548','转换失败:', result.data)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconvertedData = convertedArray;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t__f__('warn','at components/supadb/aksupa.uts:554','数据类型转换失败,使用原始数据:', e);\r\n\t\t\t__f__('log','at components/supadb/aksupa.uts:555',result.data)\r\n\t\t\tconvertedData = result.data as any;\r\n\t\t}\r\n\t\tresult.data = convertedData\r\n\t\treturn result as AkReqResponse;\r\n\r\n\t}\r\n}\r\n\r\n// 新增:链式 Storage 上传\r\nexport class AkSupaStorageUploadBuilder {\r\n\tprivate _supa : AkSupa;\r\n\tprivate _bucket : string = '';\r\n\tprivate _path : string = '';\r\n private _file : string = '';\r\n\tprivate _options : UTSJSONObject = {};\r\n\r\n\tconstructor(supa : AkSupa, bucket : string) {\r\n\t\tthis._supa = supa;\r\n\t\tthis._bucket = bucket;\r\n\t}\r\n\r\n\tpath(path : string) : AkSupaStorageUploadBuilder {\r\n\t\tthis._path = path;\r\n\t\treturn this;\r\n\t}\r\n\r\n file(file : string) : AkSupaStorageUploadBuilder {\r\n\t\tthis._file = file;\r\n\t\treturn this;\r\n\t}\r\n\r\n\toptions(options : UTSJSONObject) : AkSupaStorageUploadBuilder {\r\n\t\tthis._options = options;\r\n\t\treturn this;\r\n\t}\r\n\tasync upload() : Promise> {\r\n if (this._bucket == '' || this._path == '' || this._file == '') {\r\n\t\t\tthrow toUniError('bucket, path, file are required', '上传文件缺少必要参数');\r\n\t\t}\r\n\t\tconst url = `${this._supa.baseUrl}/storage/v1/object/${this._bucket}/${this._path}`;\r\n\t\tconst apikey = this._supa.apikey;\r\n\t\t// 适配 uni.uploadFile\r\n\t\tconst uploadOptions : AkReqUploadOptions = {\r\n\t\t\turl,\r\n\t\t\tfilePath: this._file, // 这里假设 file 是本地路径\r\n\t\t\tname: 'file', // 默认字段名\r\n\t\t\theaders: {},\r\n\t\t\tapikey,\r\n\t\t\tformData: this._options\r\n\t\t};\r\n\t\treturn await AkReq.upload(uploadOptions);\r\n\t}\r\n}\r\n\r\n// 新增:明确的 StorageBucket 类,支持链式 upload\r\nclass AkSupaStorageBucket {\r\n\tprivate supa : AkSupa;\r\n\tprivate bucket : string;\r\n\tconstructor(supa : AkSupa, bucket : string) {\r\n\t\tthis.supa = supa;\r\n\t\tthis.bucket = bucket;\r\n\t}\r\n\tasync upload(path : string, filePath : string, options ?: UTSJSONObject) : Promise> {\r\n\t\tconst url = `${this.supa.baseUrl}/storage/v1/object/${this.bucket}/${path}`;\r\n\t\tlet headers : UTSJSONObject = { apikey: this.supa.apikey };\r\n\t\tconst formData : UTSJSONObject = {};\r\n\t\tif (options != null && typeof options == 'object') {\r\n\t\t\tif (typeof options.get == 'function' && options.get('x-upsert') != null) {\r\n\t\t\t\theaders['x-upsert'] = options.get('x-upsert');\r\n\t\t\t}\r\n\t\t\tconst keys = UTSJSONObject.keys(options);\r\n\t\t\tfor (let i = 0; i < keys.length; i++) {\r\n\t\t\t\tconst k = keys[i];\r\n\t\t\t\tif (k != 'x-upsert') formData[k] = options.get(k);\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst token = AkReq.getToken();\r\n\t\tif (token != null && !(token == '')) {\r\n\t\t\theaders['Authorization'] = `Bearer ${token}`;\r\n\t\t}\r\n\t\treturn await AkReq.upload({\r\n\t\t\turl,\r\n\t\t\tfilePath,\r\n\t\t\tname: 'file',\r\n\t\t\tapikey: this.supa.apikey,\r\n\t\t\tformData,\r\n\t\t\theaders\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport class AkSupaStorageApi {\r\n\tprivate _supa : AkSupa;\r\n\tconstructor(supa : AkSupa) {\r\n\t\tthis._supa = supa;\r\n\t}\r\n\tfrom(bucket : string) : AkSupaStorageBucket {\r\n\t\treturn new AkSupaStorageBucket(this._supa, bucket);\r\n\t}\r\n}\r\n\r\nexport class AkSupa {\r\n\tbaseUrl : string;\r\n\tapikey : string;\r\n\tsession : AkSupaSignInResult | null = null;\r\n\tuser : UTSJSONObject | null = null;\r\n\tstorage : AkSupaStorageApi;\r\n\r\n\tconstructor(baseUrl : string, apikey : string) {\r\n\t\tthis.baseUrl = baseUrl;\r\n\t\tthis.apikey = apikey;\r\n\t\tthis.storage = new AkSupaStorageApi(this);\r\n\t\t// [CHANGE][2026-01-30] hydrate user/session from persisted token (see docs: components/supadb/docs/CHANGELOG.md)\r\n\t\ttry {\r\n\t\t\tthis.hydrateSessionFromStorage();\r\n\t\t} catch (e) {\r\n\t\t\t// ignore\r\n\t\t}\r\n\t}\r\n\r\n\t// [CHANGE][2026-01-30] hydrate user from /auth/v1/user when token exists in storage\r\n\tasync hydrateSessionFromStorage() : Promise {\r\n\t\ttry {\r\n\t\t\tconst token = AkReq.getToken();\r\n\t\t\tif (token == null || token == '') return false;\r\n\t\t\tconst res = await AkReq.request({\r\n\t\t\t\turl: this.baseUrl + '/auth/v1/user',\r\n\t\t\t\tmethod: 'GET',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t\tAuthorization: `Bearer ${token}`,\r\n\t\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t\t} as UTSJSONObject\r\n\t\t\t}, false);\r\n\t\t\tconst status = res.status ?? 0;\r\n\t\t\tif (!(status >= 200 && status < 400)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tlet user: UTSJSONObject | null = null;\r\n\t\t\ttry {\r\n\t\t\t\tuser = new UTSJSONObject(res.data);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tuser = null;\r\n\t\t\t}\r\n\t\t\tif (user == null) return false;\r\n\t\t\tthis.user = user;\r\n\t\t\t// 仅补齐最小 session 结构,供 getSession / UI 判断登录态使用\r\n\t\t\tif (this.session == null) {\r\n\t\t\t\tthis.session = {\r\n\t\t\t\t\taccess_token: token,\r\n\t\t\t\t\trefresh_token: AkReq.getRefreshToken() ?? '',\r\n\t\t\t\t\texpires_at: AkReq.getExpiresAt() ?? 0,\r\n\t\t\t\t\tuser: user,\r\n\t\t\t\t\ttoken_type: 'bearer',\r\n\t\t\t\t\texpires_in: 0,\r\n\t\t\t\t\traw: user\r\n\t\t\t\t} as AkSupaSignInResult;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync resetPassword(email : string) : Promise {\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/recover',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\tapikey: this.apikey,\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t} as UTSJSONObject,\r\n\t\t\tdata: { email } as UTSJSONObject,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\r\n\t\t// Supabase returns 200 when the reset email is sent successfully\r\n\t\treturn res.status == 200;\r\n\t}\r\n\tasync signOut() {\r\n\t\tthis.session = null\r\n\t\tthis.user = null\r\n\t}\r\n\tasync signIn(email : string, password : string) : Promise {\r\n\t\t// 提前检查 apikey 配置是否为占位符,避免发送无效请求导致 401\r\n\t\tif (this.apikey == null || this.apikey.trim() === '' || this.apikey === 'your-anon-key') {\r\n\t\t\tthrow new Error('Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)');\r\n\t\t}\r\n\t\tconst headers = new UTSJSONObject()\r\n\t\theaders.set('apikey', this.apikey)\r\n\t\theaders.set('Content-Type', 'application/json')\r\n\t\tconst reqData = new UTSJSONObject()\r\n\t\treqData.set('email', email)\r\n\t\treqData.set('password', password)\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/token?grant_type=password',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: headers,\r\n\t\t\tdata: reqData,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\t\t// 如果响应不是 2xx(例如 401),提取后端错误信息并抛出,便于上层显示具体原因\r\n\t\tconst status = res.status ?? 0;\r\n\t\tif (!(status >= 200 && status < 400)) {\r\n\t\t\tlet msg = 'user.login.login_failed';\r\n\t\t\ttry {\r\n\t\t\t\tif (res.data != null) {\r\n\t\t\t\t\tconst obj = new UTSJSONObject(res.data);\r\n\t\t\t\t\tconst rawMsg = obj.getString('message') ?? obj.getString('error') ?? obj.getString('msg') ?? obj.getString('description') ?? obj.getString('error_description') ?? '';\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 核心修复:在这里拦截英文错误并转换为中文\r\n\t\t\t\t\tif (rawMsg.includes('Invalid login credentials')) {\r\n\t\t\t\t\t\tmsg = '用户名或密码错误';\r\n\t\t\t\t\t} else if (rawMsg != '') {\r\n\t\t\t\t\t\tmsg = rawMsg;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// ignore\r\n\t\t\t}\r\n\t\t\tthrow new Error(msg);\r\n\t\t}\r\n\t\t// 解析成功的返回体\r\n\t\tlet data: UTSJSONObject;\r\n\t\ttry {\r\n\t\t\tdata = new UTSJSONObject(res.data);\r\n\t\t} catch (e) {\r\n\t\t\tdata = new UTSJSONObject({});\r\n\t\t}\r\n\t\tconst access_token = data.getString('access_token') ?? '';\r\n\t\tconst refresh_token = data.getString('refresh_token') ?? '';\r\n\t\tconst expires_at = data.getNumber('expires_at') ?? 0;\r\n\t\tconst user = data.getJSON('user');\r\n\t\tAkReq.setToken(access_token, refresh_token, expires_at);\r\n\t\tconst session : AkSupaSignInResult = {\r\n\t\t\taccess_token: access_token,\r\n\t\t\trefresh_token: refresh_token,\r\n\t\t\texpires_at: expires_at,\r\n\t\t\tuser: user,\r\n\t\t\ttoken_type: data.getString('token_type') ?? '',\r\n\t\t\texpires_in: data.getNumber('expires_in') ?? 0,\r\n\t\t\traw: data\r\n\t\t};\r\n\t\tthis.session = session;\r\n\t\tthis.user = user;\r\n\t\treturn session;\r\n\t}\r\n\r\n\t/**\r\n\t * 获取当前 session 和 user\r\n\t */\r\n\tgetSession() : AkSupaSessionInfo {\r\n\t\treturn {\r\n\t\t\tsession: this.session,\r\n\t\t\tuser: this.user\r\n\t\t};\r\n\t}\r\n\r\n\tasync signUp(email : string, password : string, options : UTSJSONObject | null = null) : Promise {\r\n\t\tconst headers = new UTSJSONObject()\r\n\t\theaders.set('apikey', this.apikey)\r\n\t\theaders.set('Content-Type', 'application/json')\r\n\t\tconst data = new UTSJSONObject()\r\n\t\tdata.set('email', email)\r\n\t\tdata.set('password', password)\r\n\t\t\r\n\t\tif (options != null) {\r\n\t\t\tconst dataField = options.getJSON('data')\r\n\t\t\tif (dataField != null) {\r\n\t\t\t\tdata.set('data', dataField)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/signup',\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: headers,\r\n\t\t\tdata: data,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\t\treturn res.data as UTSJSONObject;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * 查询表数据(GET方式,支持多条件、limit等,filter自动转为supabase风格query)\r\n\t * filter 支持:\r\n\t * { usr_id: { lt: 800 }, name: { ilike: '%foo%' }, status: 'active', age: { gte: 18, lte: 30 } }\r\n\t * 操作符支持 eq, neq, lt, lte, gt, gte, like, ilike, in, is, not, contains, containedBy, range, fts, plfts, phfts, wfts\r\n\t */\r\nasync select(table : string, filter ?: string | null, options ?: AkSupaSelectOptions) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tlet headers = new UTSJSONObject()\r\n\theaders.set('apikey', this.apikey)\r\n\theaders.set('Content-Type', 'application/json')\r\n\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\tlet params : string[] = [];\r\n\tif (options != null) {\r\n\t\tif (options.columns != null && !(options.columns == \"\")) params.push('select=' + encodeURIComponent(options.columns ?? \"\"));\r\n\t\tif (options.limit != null) {\r\n\t\t\tparams.push('limit=' + options.limit);\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:857','设置 limit 参数:', options.limit);\r\n\t\t}\r\n\t\tif (options.order != null && !(options.order == \"\")) params.push('order=' + encodeURIComponent(options.order ?? \"\"));\r\n\t\tif (options.rangeFrom != null && options.rangeTo != null) {\r\n\t\t\theaders['Range'] = `${options.rangeFrom}-${options.rangeTo}`;\r\n\t\t\theaders['Range-Unit'] = 'items';\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:863','设置 Range 头部:', `${options.rangeFrom}-${options.rangeTo}`);\r\n\t\t}\r\n\r\n\t\t// 向后兼容:支持旧的 getcount 参数\r\n\t\tlet countOption = options.count ?? options.getcount;\r\n\t\tif (countOption != null) {\r\n\t\t\theaders['Prefer'] = `count=${countOption}`;\r\n\t\t}\r\n\t\t// 新增:head 模式支持\r\n\t\tif (options.head == true) {\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:873','使用 head 模式,只返回元数据');\r\n\t\t\t// HEAD 请求用于只获取 count,不返回数据\r\n\t\t\tif (headers['Prefer'] != null) {\r\n\t\t\t\theaders['Prefer'] = (headers['Prefer'] as string) + ',return=minimal';\r\n\t\t\t} else {\r\n\t\t\t\theaders['Prefer'] = 'return=minimal';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.single == true) {\r\n\t\t\t//__f__('log','at components/supadb/aksupa.uts:883','使用 single() 模式');\r\n\t\t\tif (headers['Prefer'] != null) {\r\n\t\t\t\theaders['Prefer'] = (headers['Prefer'] as string) + ',return=representation,single-object';\r\n\t\t\t} else {\r\n\t\t\t\theaders['Prefer'] = 'return=representation,single-object';\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// 确保有 select 参数\r\n\t\tif (options.columns == null) {\r\n\t\t\tparams.push('select=*');\r\n\t\t} else if (options.columns == \"\") {\r\n\t\t\tparams.push('select=*');\r\n\t\t}\r\n\t} else {\r\n\t\tparams.push('select=*');\r\n\t}\r\n\t// 直接用 string filter\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\tparams.push(filter!!);\r\n\t}\r\n\tif (params.length > 0) {\r\n\t\turl += '?' + params.join('&');\r\n\t}\r\n\r\n\t//__f__('log','at components/supadb/aksupa.uts:908',url)\r\n\r\n\t// 确定HTTP方法:如果是head模式,使用HEAD方法\r\n\tlet httpMethod: 'GET' | 'HEAD' = 'GET';\r\n\tif (options != null && options.head == true) {\r\n\t\thttpMethod = 'HEAD';\r\n\t\t//__f__('log','at components/supadb/aksupa.uts:914','使用 HEAD 方法进行 count 查询');\r\n\t}\r\n\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: httpMethod,\r\n\t\theaders\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\nasync select_uts(table : string, filter ?: UTSJSONObject | null, options ?: AkSupaSelectOptions) : Promise> {\r\n\tconst filter_str = buildSupabaseFilterQuery(filter)\r\n\treturn this.select(table,filter_str,options)\r\n}\r\n\t/**\r\n\t * 插入表数据\r\n\t * @param table 表名\r\n\t * @param row 插入对象\r\n\t * @returns 插入结果\r\n\t */\r\n\tasync insert(table : string, row : UTSJSONObject | Array) : Promise> {\r\n\t\tconst url = this.baseUrl + '/rest/v1/' + table;\r\n\t\tconst headers = new UTSJSONObject()\r\n\t\theaders.set('apikey', this.apikey)\r\n\t\theaders.set('Content-Type', 'application/json')\r\n\t\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\t\theaders.set('Prefer', 'return=representation')\r\n\r\n\t\tlet reqOptions : AkReqOptions = {\r\n\t\t\turl,\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders,\r\n\t\t\tdata: row,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t};\r\n\t\treturn await this.requestWithAutoRefresh(reqOptions);\r\n\t}\r\n\r\n\t/**\r\n\t * 更新表数据\r\n\t * @param table 表名\r\n\t * @param filter 过滤条件对象\r\n\t * @param values 更新内容对象\r\n\t * @returns 更新结果\r\n\t */\r\nasync update(table : string, filter : string | null, values : UTSJSONObject) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\turl += '?' + filter;\r\n\t}\r\n\tconst headers = new UTSJSONObject()\r\n\theaders.set('apikey', this.apikey)\r\n\theaders.set('Content-Type', 'application/json')\r\n\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\theaders.set('Prefer', 'return=representation')\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: 'PATCH',\r\n\t\theaders,\r\n\t\tdata: values,\r\n\t\tcontentType: 'application/json'\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\n\t/**\r\n\t * 删除表数据\r\n\t * @param table 表名\r\n\t * @param filter 过滤条件对象\r\n\t * @returns 删除结果\r\n\t */\r\nasync delete(table : string, filter : string | null) : Promise> {\r\n\tlet url = this.baseUrl + '/rest/v1/' + table;\r\n\tif (filter!=null && filter !== \"\") {\r\n\t\turl += '?' + filter;\r\n\t}\r\n\tconst headers = new UTSJSONObject()\r\n\theaders.set('apikey', this.apikey)\r\n\theaders.set('Content-Type', 'application/json')\r\n\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\theaders.set('Prefer', 'return=representation')\r\n\tlet reqOptions : AkReqOptions = {\r\n\t\turl,\r\n\t\tmethod: 'DELETE',\r\n\t\theaders,\r\n\t\tcontentType: 'application/json'\r\n\t};\r\n\treturn await this.requestWithAutoRefresh(reqOptions);\r\n}\r\n\r\n\t/**\r\n\t * 调用 Supabase/PostgREST RPC (function)\r\n\t * @param functionName 函数名\r\n\t * @param params 参数对象\r\n\t * @returns AkReqResponse\r\n\t */\r\n\tasync rpc(functionName : string, params ?: UTSJSONObject) : Promise> {\r\n\t\tconst url = this.baseUrl + '/rest/v1/rpc/' + functionName;\r\n\t\tconst headers = new UTSJSONObject()\r\n\t\theaders.set('apikey', this.apikey)\r\n\t\theaders.set('Content-Type', 'application/json')\r\n\t\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\t\tlet reqOptions : AkReqOptions = {\r\n\t\t\turl,\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders,\r\n\t\t\tdata: params ?? new UTSJSONObject(),\r\n\t\t\tcontentType: 'application/json'\r\n\t\t};\r\n\t\treturn await this.requestWithAutoRefresh(reqOptions);\r\n\t}\r\n\t/**\r\n\t * 兼容 supabase-js 风格\r\n\t * @param tableName 表名\r\n\t */\r\n\tfrom(tableName : string) : AkSupaQueryBuilder {\r\n\t\treturn new AkSupaQueryBuilder(this, tableName);\r\n\t}\r\n\r\n /**\r\n * 创建实时订阅通道 (兼容 Supabase Realtime 接口,目前使用轮询模拟)\r\n * @param topic 通道名称,如 public:table\r\n */\r\n channel(topic: string): AkSupaRealtimeChannel {\r\n return new AkSupaRealtimeChannel(this, topic);\r\n }\r\n \r\n /**\r\n * 移除通道\r\n */\r\n removeChannel(channel: AkSupaRealtimeChannel): Promise {\r\n channel.unsubscribe();\r\n return Promise.resolve('ok');\r\n }\r\n\t// AkSupa类内新增:自动刷新session\r\n\tasync refreshSession() : Promise {\r\n\t\tif (this.session == null || this.session?.refresh_token == null) return false;\r\n\t\ttry {\r\n\t\t\tconst headers = new UTSJSONObject()\r\n\t\t\theaders.set('apikey', this.apikey)\r\n\t\t\theaders.set('Content-Type', 'application/json')\r\n\t\t\tconst data = new UTSJSONObject()\r\n\t\t\tdata.set('refresh_token', this.session?.refresh_token)\r\n\t\t\tconst res = await AkReq.request({\r\n\t\t\t\turl: this.baseUrl + '/auth/v1/token?grant_type=refresh_token',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: headers,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tcontentType: 'application/json'\r\n\t\t\t}, false);\r\n\t\t\tif (res.status == 200 && (res.data != null)) {\r\n\t\t\t\tconst data = res.data as UTSJSONObject;\r\n\t\t\t\tconst access_token = data.getString('access_token') ?? '';\r\n\t\t\t\tconst refresh_token = data.getString('refresh_token') ?? '';\r\n\t\t\t\tconst expires_at = data.getNumber('expires_at') ?? 0;\r\n\t\t\t\tconst user = data.getJSON('user');\r\n\t\t\t\tthis.session = {\r\n\t\t\t\t\taccess_token,\r\n\t\t\t\t\trefresh_token,\r\n\t\t\t\t\texpires_at,\r\n\t\t\t\t\tuser,\r\n\t\t\t\t\ttoken_type: data.getString('token_type') ?? '',\r\n\t\t\t\t\texpires_in: data.getNumber('expires_in') ?? 0,\r\n\t\t\t\t\traw: data\r\n\t\t\t\t};\r\n\t\t\t\tthis.user = user;\r\n\t\t\t\t// 更新本地token\r\n\t\t\t\tAkReq.setToken(access_token, refresh_token, expires_at);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tasync updateUserMetadata(metadata: UTSJSONObject): Promise {\r\n\t\tconst headers = new UTSJSONObject()\r\n\t\theaders.set('apikey', this.apikey)\r\n\t\theaders.set('Content-Type', 'application/json')\r\n\t\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\t\tconst data = new UTSJSONObject()\r\n\t\tdata.set('data', metadata)\r\n\t\tconst res = await AkReq.request({\r\n\t\t\turl: this.baseUrl + '/auth/v1/user',\r\n\t\t\tmethod: 'PUT',\r\n\t\t\theaders: headers,\r\n\t\t\tdata: data,\r\n\t\t\tcontentType: 'application/json'\r\n\t\t}, false);\r\n\t\treturn res.data as UTSJSONObject;\r\n\t}\r\n\r\n\t// AkSupa类内新增:自动刷新封装\r\n\tasync requestWithAutoRefresh(reqOptions : AkReqOptions, isRetry = false) : Promise> {\r\n\t\tlet res = await AkReq.request(reqOptions, false);\r\n\t\t// JWT过期:Supabase风格\r\n\t\tconst isJwtExpired = (res.status == 401); //res != null && res.data != null && typeof res.data == 'object' && (res.data as UTSJSONObject)?.getString('code') == 'PGRST301';\r\n\t\t// 401未授权\r\n\t\tconst isUnauthorized = (res.status == 401);\r\n\t\tif ((isJwtExpired || isUnauthorized) && !isRetry) {\r\n\t\t\tconst ok = await this.refreshSession();\r\n\t\t\tif (ok) {\r\n\t\t\t\tlet headers = reqOptions.headers\r\n\t\t\t\tif (headers == null) {\r\n\t\t\t\t\theaders = new UTSJSONObject()\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof headers.set == 'function') {\r\n\t\t\t\t\theaders.set('Authorization', `Bearer ${AkReq.getToken() ?? ''}`)\r\n\t\t\t\t\treqOptions.headers = headers\r\n\t\t\t\t}\r\n\r\n\t\t\t\tres = await AkReq.request(reqOptions, false);\r\n\t\t\t} else {\r\n\t\t\t\tuni.removeStorageSync('user_id');\r\n\t\t\t\tuni.removeStorageSync('token');\r\n\r\n\t\t\t\t//uni.reLaunch({ url: '/pages/user/login' });\r\n __f__('log','at components/supadb/aksupa.uts:1133','登录已过期,请重新登录');\r\n\t\t\t\tthrow toUniError('登录已过期,请重新登录', '用户认证失败');\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n}\r\n\r\n// 工具函数:将 UTSJSONObject filter 转为 Supabase/PostgREST 查询字符串\r\nfunction buildSupabaseFilterQuery(filter : UTSJSONObject | null) : string {\r\n\t//__f__('log','at components/supadb/aksupa.uts:1143',filter)\r\n\tif (filter == null) return \"\";\r\n\t// 类型保护:如果不是 UTSJSONObject,自动包裹\r\n\tif (typeof filter.get !== 'function') {\r\n\t\ttry {\r\n\t\t\tfilter = new UTSJSONObject(filter as any)\r\n\t\t} catch (e) {\r\n\t\t\t__f__('warn','at components/supadb/aksupa.uts:1150','filter 不是 UTSJSONObject,且无法转换', filter)\r\n\t\t\treturn ''\r\n\t\t}\r\n\t}\r\n\tconst params : string[] = [];\r\n\tconst keys : string[] = UTSJSONObject.keys(filter);\r\n\tfor (let i = 0; i < keys.length; i++) {\r\n\t\tconst k = keys[i];\r\n\t\tconst v = filter.get(k);\r\n\t\tif (k == 'or' && typeof v == 'string') {\r\n\t\t\tparams.push(`or=(${v})`);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\t\tif (v != null && typeof v == 'object' && typeof (v as UTSJSONObject).get == 'function') {\r\n\t\t\tconst vObj = v as UTSJSONObject;\r\n\t\t\tconst opKeys = UTSJSONObject.keys(vObj);\r\n\t\t\tfor (let j = 0; j < opKeys.length; j++) {\r\n\t\t\t\tconst op = opKeys[j];\r\n\t\t\t\tconst opVal = vObj.get(op);\r\n\t\t\t\tif ((op == 'in' || op == 'not.in') && Array.isArray(opVal)) {\r\n\t\t\t\t\tparams.push(`${k}=${op}.(${opVal.map(x => typeof x == 'object' ? encodeURIComponent(JSON.stringify(x)) : encodeURIComponent(x.toString())).join(',')})`);\r\n\t\t\t\t} else if (op == 'is' && (opVal == null || opVal == 'null')) {\r\n\t\t\t\t\tparams.push(`${k}=is.null`);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst opvalstr : string = (typeof opVal == 'object') ? JSON.stringify(opVal) : (opVal as string);\r\n\t\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(opvalstr)}`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (v != null && typeof v == 'object') {\r\n\t\t\tconst vObj = v as UTSJSONObject;\r\n\t\t\tconst opKeys = UTSJSONObject.keys(vObj);\r\n\t\t\tfor (let j = 0; j < opKeys.length; j++) {\r\n\t\t\t\tconst op = opKeys[j];\r\n\t\t\t\tconst opVal = vObj.get(op);\r\n\t\t\t\tparams.push(`${k}=${op}.${encodeURIComponent(!(opVal == null) ? (typeof opVal == 'object' ? JSON.stringify(opVal) : opVal.toString()) : '')}`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparams.push(`${k}=eq.${encodeURIComponent(!(v == null) ? v.toString() : '')}`);\r\n\t\t}\r\n\t}\r\n\treturn params.join('&');\r\n}\r\n\r\n/**\r\n * 创建 Supabase 客户端实例\r\n * @param url 项目 URL\r\n * @param key 项目匿名密钥 (Anon Key)\r\n */\r\nexport function createClient(url : string, key : string) : AkSupa {\r\n\treturn new AkSupa(url, key);\r\n}\r\n\r\n// 模拟 Realtime Channel 类 (Polling Fallback)\r\nexport class AkSupaRealtimeChannel {\r\n private _supa: AkSupa;\r\n private _topic: string;\r\n private _timer: number = 0;\r\n private _callback: ((payload: any) => void) | null = null;\r\n private _table: string = '';\r\n private _lastTime: string = new Date().toISOString(); \r\n private _isSubscribed: boolean = false;\r\n\r\n constructor(supa: AkSupa, topic: string) {\r\n this._supa = supa;\r\n this._topic = topic;\r\n }\r\n\r\n // 绑定事件 (仅支持 postgres_changes INSERT)\r\n on(type: string, filter: UTSJSONObject, callback: (payload: any) => void): AkSupaRealtimeChannel {\r\n // 解析 table\r\n const table = filter.getString('table');\r\n if (table != null) {\r\n this._table = table;\r\n }\r\n this._callback = callback;\r\n return this;\r\n }\r\n\r\n // 开始订阅\r\n subscribe(callback?: (status: string, err: any | null) => void): AkSupaRealtimeChannel {\r\n if (this._isSubscribed) return this;\r\n this._isSubscribed = true;\r\n \r\n // 初始回调\r\n if (callback != null) {\r\n callback('SUBSCRIBED', null);\r\n }\r\n\r\n // 如果没有指定 table,无法轮询\r\n if (this._table == '') {\r\n __f__('warn','at components/supadb/aksupa.uts:1240','Realtime check: No table specified for polling.');\r\n return this;\r\n }\r\n\r\n // 开始轮询 (每3秒)\r\n this._timer = setInterval(() => {\r\n this._checkUpdates();\r\n }, 3000);\r\n\r\n return this;\r\n }\r\n\r\n // 停止订阅\r\n unsubscribe() {\r\n if (this._timer > 0) {\r\n clearInterval(this._timer);\r\n this._timer = 0;\r\n }\r\n this._isSubscribed = false;\r\n }\r\n\r\n // 检查更新\r\n private async _checkUpdates() {\r\n if (!this._isSubscribed || this._table == '') return;\r\n \r\n try {\r\n const now = new Date().toISOString();\r\n \r\n const res = await this._supa\r\n .from(this._table)\r\n .select('*')\r\n .gt('created_at', this._lastTime)\r\n .order('created_at', { ascending: true })\r\n .execute();\r\n \r\n if (res.error == null && res.data != null) {\r\n let list: any[] = [];\r\n if (Array.isArray(res.data)) {\r\n list = res.data as any[];\r\n }\r\n \r\n if (list.length > 0) {\r\n // 更新最后时间\r\n const lastItem = list[list.length - 1];\r\n let lastTimeStr: string | null = null;\r\n \r\n if (lastItem instanceof UTSJSONObject) {\r\n lastTimeStr = lastItem.getString('created_at');\r\n } else {\r\n // 尝试转 json\r\n const j = JSON.parse(JSON.stringify(lastItem)) as UTSJSONObject;\r\n lastTimeStr = j.getString('created_at');\r\n }\r\n \r\n if (lastTimeStr != null) {\r\n this._lastTime = lastTimeStr;\r\n } else {\r\n this._lastTime = now;\r\n }\r\n\r\n // 触发回调\r\n if (this._callback != null) {\r\n // 模拟 Realtime payload\r\n list.forEach(item => {\r\n const payload = {\r\n new: item,\r\n eventType: 'INSERT',\r\n old: null\r\n };\r\n this._callback?.(payload);\r\n });\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at components/supadb/aksupa.uts:1315','Realtime polling error:', e);\r\n }\r\n }\r\n}\r\n\r\nexport default AkSupa;\r\n","// /components/supadb/aksupainstance.uts\r\nimport { createClient } from './aksupa.uts'\r\nimport { SUPA_URL, SUPA_KEY } from '@/ak/config.uts'\r\n\r\n// 创建单一真实的 Supabase 客户端实例 (使用 config.uts 配置)\r\n// Create single source of truth client using config\r\nconst supaInstance = createClient(SUPA_URL, SUPA_KEY)\r\n\r\n// 导出默认实例 (供 login.uvue 等使用)\r\nexport default supaInstance\r\n\r\n// 导出命名实例 'supabase' (供 store.uts 使用)\r\nexport const supabase = supaInstance\r\n\r\n// 导出 isSupabaseReady 状态\r\nexport const isSupabaseReady = true\r\n\r\n// 兼容 ensureSupabaseReady\r\nexport async function ensureSupabaseReady() {\r\n return true\r\n}\r\n\r\n// 检查连接状态的函数\r\nexport function checkConnection() {\r\n return Promise.resolve(true)\r\n}\r\n\r\n// 兼容 supaReady Promise\r\nexport const supaReady = Promise.resolve(true)\r\n\r\n// 如果有其他需要导出的函数,可以这样导出:\r\nexport function initializeSupabase(url: string, key: string) {\r\n return createClient(url, key)\r\n}\r\n","// 电商商城系统类型定义 - UTS Android 兼容\r\n\r\n// 用户类型\r\nexport type UserType = {\r\n\tid: string\r\n\tphone: string\r\n\temail: string | null\r\n\tnickname: string | null\r\n\tavatar_url: string | null\r\n\tgender: number\r\n\tuser_type: number\r\n\tstatus: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 商城用户扩展信息类型\r\nexport type MallUserProfileType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tuser_type: number\r\n\tstatus: number\r\n\treal_name: string | null\r\n\tid_card: string | null\r\n\tcredit_score: number\r\n\tmall_role: string\r\n\tverification_status: number\r\n\tverification_data: UTSJSONObject | null\r\n\tbusiness_license: string | null\r\n\tshop_category: string | null\r\n\tservice_areas: UTSJSONObject | null\r\n\temergency_contact: string | null\r\n\tpreferences: UTSJSONObject | null\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 用户地址类型\r\nexport type UserAddressType = {\r\n\tid: string\r\n\tuser_id: string\r\n\treceiver_name: string\r\n\treceiver_phone: string\r\n\tprovince: string\r\n\tcity: string\r\n\tdistrict: string\r\n\taddress_detail: string\r\n\tpostal_code: string | null\r\n\tis_default: boolean\r\n\tlabel: string | null\r\n\tcoordinates: string | null\r\n\tdelivery_instructions: string | null\r\n\tbusiness_hours: string | null\r\n\tstatus: number\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 商家类型\r\nexport type MerchantType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tshop_name: string\r\n\tshop_logo: string | null\r\n\tshop_banner: string | null\r\n\tshop_description: string | null\r\n\tcontact_name: string\r\n\tcontact_phone: string\r\n\tshop_status: number\r\n\trating: number\r\n\ttotal_sales: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 商品类型\r\nexport type ProductType = {\r\n\tid: string\r\n\tmerchant_id: string\r\n\tcategory_id: string\r\n\tname: string\r\n\tdescription: string | null\r\n\timages: Array\r\n\tprice: number\r\n\toriginal_price: number | null\r\n\tstock: number\r\n\tsales: number\r\n\tstatus: number\r\n\tcreated_at: string\r\n\t// 药品相关字段\r\n\tspecification?: string | null // 规格说明\r\n\tusage?: string | null // 用法用量\r\n\tside_effects?: string | null // 副作用\r\n\tprecautions?: string | null // 注意事项\r\n\texpiry_date?: string | null // 有效期\r\n\tstorage_conditions?: string | null // 储存条件\r\n\tapproval_number?: string | null // 批准文号\r\n\ttags?: Array | null // 商品标签\r\n}\r\n\r\n// 商品SKU类型\r\nexport type ProductSkuType = {\r\n\tid: string\r\n\tproduct_id: string\r\n\tsku_code: string\r\n\tspecifications: UTSJSONObject | null\r\n\tprice: number\r\n\tstock: number\r\n\timage_url: string | null\r\n\tstatus: number\r\n}\r\n\r\n// 购物车类型\r\nexport type CartItemType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tproduct_id: string\r\n\tsku_id: string\r\n\tquantity: number\r\n\tselected: boolean\r\n\tproduct: ProductType | null\r\n\tsku: ProductSkuType | null\r\n}\r\n\r\n// 订单类型\r\nexport type OrderType = {\r\n\tid: string\r\n\torder_no: string\r\n\tuser_id: string\r\n\tmerchant_id: string\r\n\tstatus: number\r\n\ttotal_amount: number\r\n\tdiscount_amount: number\r\n\tdelivery_fee: number\r\n\tactual_amount: number\r\n\tpayment_method: number | null\r\n\tpayment_status: number\r\n\tdelivery_address: UTSJSONObject\r\n\tcreated_at: string\r\n}\r\n\r\n// 订单商品类型\r\nexport type OrderItemType = {\r\n\tid: string\r\n\torder_id: string\r\n\tproduct_id: string\r\n\tsku_id: string\r\n\tproduct_name: string\r\n\tsku_specifications: UTSJSONObject | null\r\n\tprice: number\r\n\tquantity: number\r\n\ttotal_amount: number\r\n}\r\n\r\n// 配送员类型\r\nexport type DeliveryDriverType = {\r\n\tid: string\r\n\tuser_id: string\r\n\treal_name: string\r\n\tid_card: string\r\n\tdriver_license: string | null\r\n\tvehicle_type: number\r\n\tvehicle_number: string | null\r\n\twork_status: number\r\n\tcurrent_location: UTSJSONObject | null\r\n\tservice_areas: Array\r\n\trating: number\r\n\ttotal_orders: number\r\n\tauth_status: number\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 配送任务类型\r\nexport type DeliveryTaskType = {\r\n\tid: string\r\n\torder_id: string\r\n\tdriver_id: string | null\r\n\tpickup_address: UTSJSONObject\r\n\tdelivery_address: UTSJSONObject\r\n\tdistance: number | null\r\n\testimated_time: number | null\r\n\tdelivery_fee: number\r\n\tstatus: number\r\n\tpickup_time: string | null\r\n\tdelivered_time: string | null\r\n\tdelivery_code: string | null\r\n\tremark: string | null\r\n\tcreated_at: string\r\n\tupdated_at: string\r\n}\r\n\r\n// 优惠券模板类型\r\nexport type CouponTemplateType = {\r\n\tid: string\r\n\tname: string\r\n\tdescription: string | null\r\n\tcoupon_type: number\r\n\tdiscount_type: number\r\n\tdiscount_value: number\r\n\tmin_order_amount: number\r\n\tmax_discount_amount: number | null\r\n\ttotal_quantity: number | null\r\n\tper_user_limit: number\r\n\tusage_limit: number\r\n\tmerchant_id: string | null\r\n\tcategory_ids: Array\r\n\tproduct_ids: Array\r\n\tuser_type_limit: number | null\r\n\tstart_time: string\r\n\tend_time: string\r\n\tstatus: number\r\n\tcreated_at: string\r\n}\r\n\r\n// 用户优惠券类型\r\nexport type UserCouponType = {\r\n\tid: string\r\n\tuser_id: string\r\n\ttemplate_id: string\r\n\tcoupon_code: string\r\n\tstatus: number\r\n\tused_at: string | null\r\n\torder_id: string | null\r\n\treceived_at: string\r\n\texpire_at: string\r\n}\r\n\r\n// 分页数据类型\r\nexport type PageDataType = {\r\n\tdata: Array\r\n\ttotal: number\r\n\tpage: number\r\n\tpageSize: number\r\n\thasMore: boolean\r\n}\r\n\r\n// API响应类型\r\nexport type ApiResponseType = {\r\n\tsuccess: boolean\r\n\tdata: T | null\r\n\tmessage: string\r\n\tcode: number\r\n}\r\n\r\n// 订单状态枚举\r\nexport const ORDER_STATUS = {\r\n\tPENDING_PAYMENT: 1,\r\n\tPAID: 2,\r\n\tSHIPPED: 3,\r\n\tDELIVERED: 4,\r\n\tCOMPLETED: 5,\r\n\tCANCELLED: 6,\r\n\tREFUNDING: 7,\r\n\tREFUNDED: 8\r\n}\r\n\r\n// 优惠券类型枚举\r\nexport const COUPON_TYPE = {\r\n\tDISCOUNT_AMOUNT: 1, // 满减券\r\n\tDISCOUNT_PERCENT: 2, // 折扣券\r\n\tFREE_SHIPPING: 3, // 免运费券\r\n\tNEWBIE: 4, // 新人券\r\n\tMEMBER: 5, // 会员券\r\n\tCATEGORY: 6, // 品类券\r\n\tMERCHANT: 7, // 商家券\r\n\tLIMITED_TIME: 8 // 限时券\r\n}\r\n\r\n// 支付方式枚举\r\nexport const PAYMENT_METHOD = {\r\n\tWECHAT: 1,\r\n\tALIPAY: 2,\r\n\tUNIONPAY: 3,\r\n\tBALANCE: 4\r\n}\r\n\r\n// 配送状态枚举\r\nexport const DELIVERY_STATUS = {\r\n\tPENDING: 1,\r\n\tASSIGNED: 2,\r\n\tPICKED_UP: 3,\r\n\tIN_TRANSIT: 4,\r\n\tDELIVERED: 5,\r\n\tFAILED: 6\r\n}\r\n\r\n// 用户类型枚举\r\nexport const MALL_USER_TYPE = {\r\n\tCONSUMER: 1, // 消费者\r\n\tMERCHANT: 2, // 商家\r\n\tDELIVERY: 3, // 配送员\r\n\tSERVICE: 4, // 客服\r\n\tADMIN: 5 // 管理员\r\n}\r\n\r\n// 用户状态枚举\r\nexport const USER_STATUS = {\r\n\tNORMAL: 1, // 正常\r\n\tFROZEN: 2, // 冻结\r\n\tCANCELLED: 3, // 注销\r\n\tPENDING: 4 // 待审核\r\n} as const\r\n\r\n// 认证状态枚举\r\nexport const VERIFICATION_STATUS = {\r\n\tUNVERIFIED: 0, // 未认证\r\n\tVERIFIED: 1, // 已认证\r\n\tFAILED: 2 // 认证失败\r\n}\r\n\r\n// 地址标签枚举\r\nexport const ADDRESS_LABEL = {\r\n\tHOME: 'home', // 家\r\n\tOFFICE: 'office', // 公司\r\n\tSCHOOL: 'school', // 学校\r\n\tOTHER: 'other' // 其他\r\n}\r\n\r\n// 收藏类型枚举\r\nexport const FAVORITE_TYPE = {\r\n\tPRODUCT: 'product', // 商品\r\n\tSHOP: 'shop' // 店铺\r\n}\r\n\r\n// =========================\r\n// 订阅相关类型与枚举\r\n// =========================\r\n\r\n// 订阅周期枚举\r\nexport const SUBSCRIPTION_PERIOD = {\r\n\tMONTHLY: 'monthly',\r\n\tYEARLY: 'yearly'\r\n}\r\n\r\n// 订阅状态枚举\r\nexport const SUBSCRIPTION_STATUS = {\r\n\tTRIAL: 'trial',\r\n\tACTIVE: 'active',\r\n\tPAST_DUE: 'past_due',\r\n\tCANCELED: 'canceled',\r\n\tEXPIRED: 'expired'\r\n}\r\n\r\n// 软件订阅方案类型\r\nexport type SubscriptionPlanType = {\r\n\tid: string\r\n\tplan_code: string\r\n\tname: string\r\n\tdescription: string | null\r\n\tfeatures: UTSJSONObject | null // { featureKey: description }\r\n\tprice: number // 单位:元(或分,取决于后端;前端以显示为准)\r\n\tcurrency: string | null // 'CNY' | 'USD' ...\r\n\tbilling_period: string // 'monthly' | 'yearly'\r\n\ttrial_days: number | null\r\n\tis_active: boolean\r\n\tsort_order?: number | null\r\n\tcreated_at?: string\r\n\tupdated_at?: string\r\n}\r\n\r\n// 用户订阅记录类型\r\nexport type UserSubscriptionType = {\r\n\tid: string\r\n\tuser_id: string\r\n\tplan_id: string\r\n\tstatus: string\r\n\tstart_date: string\r\n\tend_date: string | null\r\n\tnext_billing_date: string | null\r\n\tauto_renew: boolean\r\n\tcancel_at_period_end?: boolean | null\r\n\tmetadata?: UTSJSONObject | null\r\n\tcreated_at?: string\r\n\tupdated_at?: string\r\n}\r\n\r\n// 用户基础信息类型 (兼容 pages/user/types.uts)\r\nexport type UserProfile = {\r\n id?: string;\r\n username: string;\r\n email: string;\r\n gender?: string;\r\n birthday?: string;\r\n height_cm?: number;\r\n weight_kg?: number;\r\n bio?: string;\r\n avatar_url?: string;\r\n preferred_language?: string;\r\n role?: string;\r\n school_id?: string;\r\n grade_id?: string;\r\n class_id?: string;\r\n created_at?: string;\r\n updated_at?: string;\r\n}\r\n\r\nexport type UserStats = {\r\n trainings: number;\r\n points: number;\r\n streak: number;\r\n}\r\n\r\n// 足迹项类型\r\nexport type FootprintItemType = {\r\n id: string\r\n name: string\r\n price: number\r\n original_price: number | null\r\n image: string\r\n sales: number\r\n shopId: string\r\n shopName: string\r\n viewTime: number\r\n}\r\n\r\n// =========================\r\n// 积分相关类型\r\n// =========================\r\n\r\n// 签到记录类型\r\nexport type SigninRecordType = {\r\n id: string\r\n user_id: string\r\n signin_date: string\r\n points_earned: number\r\n bonus_points: number\r\n continuous_days: number\r\n created_at: string\r\n}\r\n\r\n// 签到结果类型\r\nexport type SigninResultType = {\r\n success: boolean\r\n points: number\r\n continuous_days: number\r\n bonus_points: number\r\n total_points: number\r\n message: string\r\n}\r\n\r\n// 积分兑换商品类型\r\nexport type PointProductType = {\r\n id: string\r\n name: string\r\n description: string | null\r\n image_url: string | null\r\n product_type: string\r\n points_required: number\r\n original_price: number | null\r\n stock: number\r\n status: number\r\n sort_order: number\r\n created_at: string\r\n}\r\n\r\n// 积分兑换记录类型\r\nexport type PointExchangeType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n quantity: number\r\n points_used: number\r\n status: number\r\n tracking_no: string | null\r\n address_snapshot: UTSJSONObject | null\r\n created_at: string\r\n product: PointProductType | null\r\n}\r\n\r\n// 积分规则类型\r\nexport type PointRuleType = {\r\n id: string\r\n rule_type: string\r\n rule_name: string\r\n points: number\r\n description: string | null\r\n config: UTSJSONObject | null\r\n status: number\r\n}\r\n\r\n// 积分概览类型\r\nexport type PointsOverviewType = {\r\n current_points: number\r\n total_earned: number\r\n total_used: number\r\n expiring_points: number\r\n expiring_date: string | null\r\n}\r\n\r\n// =========================\r\n// 评价相关类型\r\n// =========================\r\n\r\n// 商品评价类型(扩展)\r\nexport type ProductReviewType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n order_id: string\r\n order_item_id: string | null\r\n rating: number\r\n content: string | null\r\n images: string[]\r\n videos: string[]\r\n tags: string[]\r\n is_anonymous: boolean\r\n like_count: number\r\n is_edited: boolean\r\n append_content: string | null\r\n append_at: string | null\r\n append_images: string[]\r\n reply: string | null\r\n reply_time: string | null\r\n created_at: string\r\n updated_at: string\r\n user_name: string | null\r\n user_avatar: string | null\r\n is_liked: boolean\r\n}\r\n\r\n// 评价统计类型\r\nexport type ReviewStatsType = {\r\n total_count: number\r\n avg_rating: number\r\n good_rate: number\r\n rating_distribution: Map\r\n tags: ReviewTagType[]\r\n}\r\n\r\n// 评价标签类型\r\nexport type ReviewTagType = {\r\n name: string\r\n count: number\r\n}\r\n\r\n// 评价点赞类型\r\nexport type ReviewLikeType = {\r\n id: string\r\n review_id: string\r\n user_id: string\r\n created_at: string\r\n}\r\n\r\n// 评价举报类型\r\nexport type ReviewReportType = {\r\n id: string\r\n review_id: string\r\n user_id: string\r\n reason: string\r\n description: string | null\r\n status: number\r\n handle_result: string | null\r\n created_at: string\r\n}\r\n\r\n// 配送员评价类型\r\nexport type DeliveryRatingType = {\r\n id: string\r\n order_id: string\r\n delivery_user_id: string\r\n user_id: string\r\n rating: number\r\n content: string | null\r\n created_at: string\r\n}\r\n\r\n// 我的评价列表项类型\r\nexport type MyReviewItemType = {\r\n id: string\r\n product_id: string\r\n product_name: string\r\n product_image: string\r\n rating: number\r\n content: string | null\r\n images: string[]\r\n created_at: string\r\n can_append: boolean\r\n can_edit: boolean\r\n}\r\n\r\n// =========================\r\n// 推销模式相关类型\r\n// =========================\r\n\r\n// 用户余额类型\r\nexport type UserBalanceType = {\r\n id: string\r\n user_id: string\r\n balance: number\r\n frozen_balance: number\r\n total_earned: number\r\n total_withdrawn: number\r\n updated_at: string\r\n}\r\n\r\n// 余额变动记录类型\r\nexport type BalanceRecordType = {\r\n id: string\r\n user_id: string\r\n type: string\r\n amount: number\r\n balance_before: number\r\n balance_after: number\r\n related_id: string | null\r\n description: string | null\r\n operator_id: string | null\r\n created_at: string\r\n}\r\n\r\n// 分享记录类型\r\nexport type ShareRecordType = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n order_id: string\r\n order_item_id: string | null\r\n share_code: string\r\n product_name: string\r\n product_image: string | null\r\n product_price: number\r\n required_count: number\r\n current_count: number\r\n status: number\r\n reward_amount: number | null\r\n created_at: string\r\n completed_at: string | null\r\n expired_at: string | null\r\n}\r\n\r\n// 二级购买记录类型\r\nexport type SecondaryPurchaseType = {\r\n id: string\r\n share_record_id: string\r\n buyer_id: string\r\n order_id: string\r\n quantity: number\r\n unit_price: number\r\n created_at: string\r\n}\r\n\r\n// 免单奖励记录类型\r\nexport type FreeOrderRewardType = {\r\n id: string\r\n user_id: string\r\n share_record_id: string\r\n amount: number\r\n status: number\r\n balance_record_id: string | null\r\n cleared_at: string | null\r\n cleared_by: string | null\r\n created_at: string\r\n}\r\n\r\n// 会员等级类型\r\nexport type MemberLevelType = {\r\n id: number\r\n name: string\r\n min_amount: number\r\n discount: number\r\n icon: string | null\r\n description: string | null\r\n sort_order: number\r\n status: number\r\n}\r\n\r\n// 用户会员信息类型\r\nexport type UserMemberInfoType = {\r\n member_level: number\r\n level_name: string\r\n discount: number\r\n total_spent: number\r\n next_level: MemberLevelType | null\r\n progress_percent: number\r\n manual_level: boolean\r\n}\r\n\r\n// 会员等级变更记录类型\r\nexport type MemberLevelLogType = {\r\n id: string\r\n user_id: string\r\n old_level: number\r\n new_level: number\r\n reason: string | null\r\n operator_id: string | null\r\n created_at: string\r\n}\r\n","// 设备信息类型\r\nexport type DeviceInfo = {\r\n\tid: string\r\n\tdevice_name?: string\r\n\tstatus?: string // 'online' | 'offline' | 其他状态\r\n\tuser_id?: string\r\n\t// 可根据实际需求添加更多字段\r\n}\r\n\r\n// 设备查询参数类型\r\nexport type DeviceParams = {\r\n\tuser_id: string\r\n\t// 可根据实际需求添加更多查询参数\r\n}\r\n","import supabase, { supaReady } from '@/components/supadb/aksupainstance.uts'\r\nimport type { UserProfile } from '@/types/mall-types.uts'\r\n\r\n/**\r\n * 确保用户资料存在,如果不存在则创建基础资料\r\n * @param sessionUser 会话用户对象 (UTSJSONObject)\r\n * @returns 创建的用户资料,如果创建失败则返回 null\r\n */\r\nexport async function ensureUserProfile(sessionUser: UTSJSONObject): Promise {\r\n\ttry {\r\n\t\tawait supaReady\r\n \r\n\t\t// 从 sessionUser 中获取用户ID和邮箱\r\n\t\tconst userId = sessionUser.getString('id')\r\n\t\tconst email = sessionUser.getString('email') ?? ''\r\n\t\t\r\n\t\tif (userId == null || userId === '') {\r\n\t\t\t__f__('error','at utils/sapi.uts:18','无法获取用户ID')\r\n\t\t\treturn null\r\n\t\t}\r\n\t\t\r\n\t\t// 检查用户是否已存在(ak_users 通过 id 或 auth_id 关联 auth.users.id)\r\n\t\tconst checkRes = await supabase.from('ak_users')\r\n\t\t\t.select('*', {})\r\n\t\t\t.or('id.eq.' + userId + ',auth_id.eq.' + userId)\r\n\t\t\t.execute()\r\n\t\t\r\n\t\t__f__('log','at utils/sapi.uts:28','ensureUserProfile check ak_users:', {\r\n\t\t\tstatus: checkRes.status,\r\n\t\t\thasData: checkRes.data != null\r\n\t\t})\r\n\t\t\r\n\t\tconst dataList = checkRes.data\r\n\t\tif (checkRes.status >= 200 && checkRes.status < 300 && dataList != null && (dataList as any[]).length > 0) {\r\n\t\t\t// 用户已存在,返回现有资料(H5 下 checkRes.data 可能是 plain object,不一定是 UTSJSONObject)\r\n\t\t\tlet existingUser: UTSJSONObject\r\n\t\t\tconst firstItem = (dataList as any[])[0]\r\n\t\t\tif (firstItem instanceof UTSJSONObject) {\r\n\t\t\t\texistingUser = firstItem\r\n\t\t\t} else {\r\n\t\t\t\texistingUser = new UTSJSONObject(firstItem)\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tconst currentRole = existingUser.getString('role')\r\n\t\t\tconst currentAuthId = existingUser.getString('auth_id')\r\n\t\t\t\r\n\t\t\t// 【强力修复逻辑】如果 role 是 student 或者 auth_id 为空,进行 upsert 修复\r\n\t\t\tif (currentRole == 'student' || currentAuthId == null || currentAuthId == '') {\r\n\t\t\t\t__f__('log','at utils/sapi.uts:49','检测到旧数据异常,正在修复角色或关联ID...')\r\n\t\t\t\tconst updateData = new UTSJSONObject()\r\n\t\t\t\t// updateData.set('id', userId) // update 场景不需要传 ID 在 body 里,通常作为 filter\r\n\t\t\t\tupdateData.set('auth_id', userId)\r\n\t\t\t\tupdateData.set('role', 'consumer')\r\n\t\t\t\t\r\n\t\t\t\tawait supabase.from('ak_users')\r\n\t\t\t\t.update(updateData)\r\n\t\t\t\t.eq('id', userId)\r\n\t\t\t\t.execute()\r\n\t\t\t\t\r\n\t\t\t\t// 同步 Auth 元数据\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst meta = new UTSJSONObject()\r\n\t\t\t\t\tmeta.set('user_role', 'consumer')\r\n\t\t\t\t\tawait supabase.updateUserMetadata(meta)\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\t__f__('warn','at utils/sapi.uts:66','同步 Auth 元数据失败:', e)\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// 返回修复后的对象\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: userId,\r\n\t\t\t\t\tusername: existingUser.getString('username') ?? email.split('@')[0],\r\n\t\t\t\t\temail: existingUser.getString('email') ?? email,\r\n\t\t\t\t\trole: 'consumer'\r\n\t\t\t\t} as UserProfile\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: userId, // 始终返回 auth.users.id 作为 Profile ID\r\n\t\t\t\tusername: existingUser.getString('username') ?? '',\r\n\t\t\t\temail: existingUser.getString('email') ?? email,\r\n\t\t\t\tgender: existingUser.getString('gender'),\r\n\t\t\t\tbirthday: existingUser.getString('birthday'),\r\n\t\t\t\theight_cm: existingUser.getNumber('height_cm'),\r\n\t\t\t\tweight_kg: existingUser.getNumber('weight_kg'),\r\n\t\t\t\tbio: existingUser.getString('bio'),\r\n\t\t\t\tavatar_url: existingUser.getString('avatar_url'),\r\n\t\t\t\tpreferred_language: existingUser.getString('preferred_language'),\r\n\t\t\t\trole: existingUser.getString('role') ?? 'consumer',\r\n\t\t\t\tcreated_at: existingUser.getString('created_at'),\r\n\t\t\t\tupdated_at: existingUser.getString('updated_at')\r\n\t\t\t} as UserProfile\r\n\t\t}\r\n\t\t\r\n\t\t// 用户不存在,创建新用户资料\r\n\t\tconst newUserData = new UTSJSONObject()\r\n\t\tnewUserData.set('id', userId)\r\n\t\tnewUserData.set('auth_id', userId) // 确保 auth_id 被存储,解决登录查不到 Profile 的问题\r\n\t\tnewUserData.set('email', email)\r\n\t\tnewUserData.set('username', email.split('@')[0] ?? 'user') // 默认用户名为邮箱前缀\r\n\t\tnewUserData.set('role', 'consumer') // 强制设置为消费者角色\r\n\t\tnewUserData.set('created_at', new Date().toISOString()) // 手动设置创建时间\r\n\t\t\r\n\t\t// 尝试同步更新 Auth 元数据,确保以后登录生成的 JWT 中角色也为 consumer\r\n\t\ttry {\r\n\t\t\tconst meta = new UTSJSONObject()\r\n\t\t\tmeta.set('user_role', 'consumer')\r\n\t\t\tawait supabase.updateUserMetadata(meta)\r\n\t\t} catch (e) {\r\n\t\t\t__f__('warn','at utils/sapi.uts:110','同步 Auth 元数据失败 (非致命):', e)\r\n\t\t}\r\n\r\n\t\t__f__('log','at utils/sapi.uts:113','准备插入 ak_users, 目标 ID:', userId)\r\n\t\t__f__('log','at utils/sapi.uts:114','正在执行 insert 资料:', JSON.stringify(newUserData))\r\n\t\tconst insertRes = await supabase.from('ak_users')\r\n\t\t\t.insert(newUserData)\r\n\t\t\t.select('*', {})\r\n\t\t\t.execute()\r\n\t\t\r\n\t\t__f__('log','at utils/sapi.uts:120','ensureUserProfile insert ak_users 完整结果:', JSON.stringify(insertRes))\r\n\t\t\r\n\t\tif (insertRes.status >= 200 && insertRes.status < 300) {\r\n\t\t\tconst dataList = (insertRes.data != null) ? (insertRes.data as any[]) : []\r\n\t\t\tconst rawData = dataList.length > 0 ? dataList[0] : null\r\n\t\t\t\r\n\t\t\tif (rawData == null) {\r\n\t\t\t\t__f__('log','at utils/sapi.uts:127','ensureUserProfile: 资料插入操作已完成(200),但未返回数据(可能是 RLS 限制)');\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: userId,\r\n\t\t\t\t\tusername: email.split('@')[0] ?? 'user',\r\n\t\t\t\t\temail: email,\r\n\t\t\t\t\trole: 'consumer',\r\n\t\t\t\t\tcreated_at: newUserData.getString('created_at')\r\n\t\t\t\t} as UserProfile\r\n\t\t\t}\r\n\r\n\t\t\tconst newUser = (rawData instanceof UTSJSONObject)\r\n\t\t\t\t? (rawData as UTSJSONObject)\r\n\t\t\t\t: new UTSJSONObject(rawData)\r\n\t\t\treturn {\r\n\t\t\t\tid: newUser.getString('id') ?? userId,\r\n\t\t\t\tusername: newUser.getString('username') ?? email.split('@')[0],\r\n\t\t\t\temail: newUser.getString('email') ?? email,\r\n\t\t\t\tgender: newUser.getString('gender'),\r\n\t\t\t\tbirthday: newUser.getString('birthday'),\r\n\t\t\t\theight_cm: newUser.getNumber('height_cm'),\r\n\t\t\t\tweight_kg: newUser.getNumber('weight_kg'),\r\n\t\t\t\tbio: newUser.getString('bio'),\r\n\t\t\t\tavatar_url: newUser.getString('avatar_url'),\r\n\t\t\t\tpreferred_language: newUser.getString('preferred_language'),\r\n\t\t\t\trole: newUser.getString('role') ?? 'consumer',\r\n\t\t\t\tcreated_at: newUser.getString('created_at'),\r\n\t\t\t\tupdated_at: newUser.getString('updated_at')\r\n\t\t\t} as UserProfile\r\n\t\t} else {\r\n\t\t\t__f__('error','at utils/sapi.uts:156','创建用户资料失败:', insertRes.status)\r\n\t\t\treturn null\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('error','at utils/sapi.uts:160','ensureUserProfile 异常:', error)\r\n\t\treturn null\r\n\t}\r\n}\r\n","import supa, { supaReady } from '@/components/supadb/aksupainstance.uts'\r\nimport type { UserProfile, UserStats } from '@/types/mall-types.uts'\r\nimport type { DeviceInfo } from '@/pages/sense/types.uts'\r\nimport { SenseDataService, type DeviceParams } from '@/pages/sense/senseDataService.uts'\r\nimport { reactive } from 'vue'\r\nimport { ensureUserProfile } from './sapi.uts'\r\n\r\n// 设备状态类型\r\nexport type DeviceState = {\r\n\tdevices : Array\r\n\tcurrentDevice : DeviceInfo | null\r\n\tisLoading : boolean\r\n\tlastUpdated : number | null\r\n}\r\n\r\n//定义一个大写的State类型\r\nexport type State = {\r\n\tglobalNum : number\r\n\tuserProfile ?: UserProfile\r\n\tisLoggedIn : boolean // 新增字段\r\n\tdeviceState : DeviceState // 新增设备状态\r\n\t// 如有需要,可增加更多属性\r\n}\r\n\r\n// 实例化为state\r\nexport const state = reactive({\r\n\tglobalNum: 0,\r\n\tuserProfile: { username: '', email: '' },\r\n\tisLoggedIn: false,\r\n\tdeviceState: {\r\n\t\tdevices: [],\r\n\t\tcurrentDevice: null,\r\n\t\tisLoading: false,\r\n\t\tlastUpdated: null\r\n\t} as DeviceState\r\n} as State)\r\n// 定义修改属性值的方法\r\nexport const setGlobalNum = (num : number) => {\r\n\tstate.globalNum = num\r\n}\r\n// 新增:设置登录状态的方法\r\nexport const setIsLoggedIn = (val : boolean) => {\r\n\tstate.isLoggedIn = val\r\n}\r\n// 定义全局设置用户信息的方法\r\nexport const setUserProfile = (profile : UserProfile) => {\r\n\tstate.userProfile = profile\r\n}\r\n\r\n// 获取当前用户信息(含补全 profile)\r\nexport async function getCurrentUser() : Promise {\r\n\ttry {\r\n\t\tawait supaReady\r\n\t} catch (_) {}\r\n\r\n\tconst sessionInfo = supa.getSession()\r\n\tif (sessionInfo.user == null) {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\r\n\tconst userId = sessionInfo.user?.getString(\"id\")\r\n\tif (userId == null) {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\t// 查询 ak_users 表补全 profile\r\n\tconst res = await supa.from('ak_users').select('*', {}).eq('id', userId).execute()\r\n\t__f__('log','at utils/store.uts:69',res)\r\n\tif (res.status >= 200 && res.status < 300 && (res.data != null)) {\r\n\t\tlet user : UTSJSONObject | null = null;\r\n\t\tconst data = res.data as any;\r\n\t\tif (Array.isArray(data)) {\r\n\t\t\tif (data.length > 0) {\r\n\t\t\t\tuser = data[0] as UTSJSONObject;\r\n\t\t\t}\r\n\t\t} else if (data != null) {\r\n\t\t\tuser = data as UTSJSONObject;\r\n\t\t} __f__('log','at utils/store.uts:79',user)\r\n\t\tif (user == null) {\r\n\t\t\t__f__('log','at utils/store.uts:81','用户资料为空,尝试创建基础资料...')\t\t\t// 如果用户资料为空,尝试创建基础用户资料\r\n\t\t\tconst sessionUser = sessionInfo.user\r\n\t\t\tif (sessionUser != null) {\r\n\t\t\t\tconst createdProfile = await ensureUserProfile(sessionUser)\r\n\t\t\t\tif (createdProfile != null) {\r\n\t\t\t\t\tstate.userProfile = createdProfile\r\n\t\t\t\t\tstate.isLoggedIn = true\r\n\t\t\t\t\treturn createdProfile\r\n\t\t\t\t} else {\r\n\t\t\t\t\t__f__('error','at utils/store.uts:90','创建用户资料失败')\r\n\t\t\t\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\t\t\t\tstate.isLoggedIn = false\r\n\t\t\t\t\treturn null\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t__f__('error','at utils/store.uts:96','会话用户信息为空')\r\n\t\t\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\t\t\tstate.isLoggedIn = false\r\n\t\t\t\treturn null\r\n\t\t\t}\r\n\t\t}\r\n\t\t__f__('log','at utils/store.uts:102',user)\r\n\t\t// 直接用 getString/getNumber,无需兜底属性\t\t\r\n\t\tconst profile : UserProfile = {\r\n\t\t\tid: user.getString('id'),\r\n\t\t\tusername: user.getString('username') ?? \"\",\r\n\t\t\temail: user.getString('email') ?? \"\",\r\n\t\t\tgender: user.getString('gender'),\r\n\t\t\tbirthday: user.getString('birthday'),\r\n\t\t\theight_cm: user.getNumber('height_cm'),\r\n\t\t\tweight_kg: user.getNumber('weight_kg'),\r\n\t\t\tbio: user.getString('bio'),\r\n\t\t\tavatar_url: user.getString('avatar_url'),\r\n\t\t\tpreferred_language: user.getString('preferred_language'),\r\n\t\t\trole: user.getString('role'),\r\n\t\t\tschool_id: user.getString('school_id'),\r\n\t\t\tgrade_id: user.getString('grade_id'),\r\n\t\t\tclass_id: user.getString('class_id')\r\n\t\t}\r\n\t\tstate.userProfile = profile\r\n\t\tstate.isLoggedIn = true // 登录成功\r\n\t\treturn profile\r\n\t} else {\r\n\t\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\t\tstate.isLoggedIn = false // 未登录\r\n\t\treturn null\r\n\t}\r\n}\r\n\r\n// 登出并清空用户信息\r\nexport function logout() {\r\n\tsupa.signOut()\r\n\tstate.userProfile = { username: '', email: '' } as UserProfile\r\n\tstate.isLoggedIn = false // 登出\r\n}\r\n\r\n// 获取当前用户ID(优先级:state.userProfile.id > session > localStorage)\r\nexport function getCurrentUserId() : string {\r\n\ttry {\r\n\t\tconst profile = state.userProfile\r\n\t\tif (profile != null && profile.id != null) {\r\n\t\t\tconst profileId = profile.id\r\n\t\t\tif (profileId != null) {\r\n\t\t\t\treturn profileId\r\n\t\t\t}\r\n\t\t}\r\n\t} catch (e) { }\r\n\ttry {\r\n\t\tconst session = supa.getSession()\r\n\t\tif (session != null) {\r\n\t\t\tconst curuser = session.user\r\n\t\t\tconst userId = curuser?.getString('id')\r\n\t\t\tif (userId != null) return userId\r\n\t\t}\r\n\t} catch (e) { }\r\n\treturn ''\r\n}\r\n\r\n// 获取当前用户的class_id\r\nexport function getCurrentUserClassId() : string | null {\r\n\ttry {\r\n\t\tconst profile = state.userProfile\r\n\t\tif (profile != null && profile.class_id != null) {\r\n\t\t\treturn profile.class_id\r\n\t\t}\r\n\t} catch (e) {\r\n\t\t__f__('error','at utils/store.uts:167','获取用户class_id失败:', e)\r\n\t}\r\n\treturn null\r\n}\r\n\r\n// User store API for component compatibility\r\nexport function getUserStore() {\r\n\treturn {\r\n\t\tgetUserId() : string | null {\r\n\t\t\tconst sessionInfo = supa.getSession()\r\n\t\t\treturn sessionInfo.user?.getString(\"id\") ?? null\r\n\t\t},\r\n\r\n\t\tgetUserName() : string | null {\r\n\t\t\treturn state.userProfile?.username ?? null\r\n\t\t},\r\n\r\n\t\tgetUserRole() : string | null {\r\n\t\t\t// Default role logic - can be enhanced based on your needs\r\n\t\t\tconst sessionInfo = supa.getSession()\r\n\t\t\tif (sessionInfo.user == null) return null\r\n\r\n\t\t\t// You can add role detection logic here\r\n\t\t\t// For now, return a default role\r\n\t\t\treturn 'teacher' // or determine from user profile/database\r\n\t\t},\r\n\r\n\t\tgetProfile() : UserProfile | null {\r\n\t\t\treturn state.userProfile\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// ========== 设备状态管理方法 ==========\r\n\r\n/**\r\n * 设置设备加载状态\r\n */\r\nexport const setDeviceLoading = (loading : boolean) => {\r\n\tstate.deviceState.isLoading = loading\r\n}\r\n\r\n/**\r\n * 设置设备列表\r\n */\r\nexport const setDevices = (devices : Array) => {\r\n\tstate.deviceState.devices = devices\r\n\tstate.deviceState.lastUpdated = Date.now()\r\n}\r\n\r\n/**\r\n * 添加设备到列表\r\n */\r\nexport const addDevice = (device : DeviceInfo) => {\r\n\tconst existingIndex = state.deviceState.devices.findIndex(d => d.id === device.id)\r\n\tif (existingIndex >= 0) {\r\n\t\t// 更新现有设备\r\n\t\tstate.deviceState.devices[existingIndex] = device\r\n\t} else {\r\n\t\t// 添加新设备\r\n\t\tstate.deviceState.devices.push(device)\r\n\t}\r\n\tstate.deviceState.lastUpdated = Date.now()\r\n}\r\n\r\n/**\r\n * 从列表中移除设备\r\n */\r\nexport const removeDevice = (deviceId : string) => {\r\n\tconst index = state.deviceState.devices.findIndex(d => d.id === deviceId)\r\n\tif (index >= 0) {\r\n\t\tstate.deviceState.devices.splice(index, 1)\r\n\t\t// 如果移除的是当前设备,清空当前设备\r\n\t\tif (state.deviceState.currentDevice?.id === deviceId) {\r\n\t\t\tstate.deviceState.currentDevice = null\r\n\t\t}\r\n\t\tstate.deviceState.lastUpdated = Date.now()\r\n\t}\r\n}\r\n\r\n/**\r\n * 更新设备信息\r\n */\r\nexport const updateDevice = (device : DeviceInfo) => {\r\n\tconst index = state.deviceState.devices.findIndex(d => d.id === device.id)\r\n\tif (index >= 0) {\r\n\t\tstate.deviceState.devices[index] = device\r\n\t\t// 如果更新的是当前设备,也更新当前设备\r\n\t\tif (state.deviceState.currentDevice?.id === device.id) {\r\n\t\t\tstate.deviceState.currentDevice = device\r\n\t\t}\r\n\t\tstate.deviceState.lastUpdated = Date.now()\r\n\t}\r\n}\r\n\r\n/**\r\n * 设置当前选中的设备\r\n */\r\nexport const setCurrentDevice = (device : DeviceInfo | null) => {\r\n\tstate.deviceState.currentDevice = device\r\n}\r\n\r\n/**\r\n * 根据设备ID获取设备信息\r\n */\r\nexport const getDeviceById = (deviceId : string) : DeviceInfo | null => {\r\n\treturn state.deviceState.devices.find(d => d.id === deviceId) ?? null\r\n}\r\n\r\n/**\r\n * 获取在线设备列表\r\n */\r\nexport const getOnlineDevices = () : Array => {\r\n\treturn state.deviceState.devices.filter(d => d.status === 'online')\r\n}\r\n\r\n/**\r\n * 从服务器加载设备列表\r\n */\r\nexport const loadDevices = async (forceRefresh : boolean) : Promise => {\r\n\tconst userId = getCurrentUserId()\r\n\tif (userId == null || userId === '') {\r\n\t\t__f__('log','at utils/store.uts:289','用户未登录,无法加载设备列表')\r\n\t\treturn false\r\n\t}\r\n\r\n\t// 如果不是强制刷新且数据较新(5分钟内),直接返回\r\n\tconst now = Date.now()\r\n\tconst lastUpdated = state.deviceState.lastUpdated\r\n\tif (forceRefresh == false && lastUpdated != null && (now - lastUpdated < 5 * 60 * 1000)) {\r\n\t\t__f__('log','at utils/store.uts:297','设备数据较新,跳过刷新')\r\n\t\treturn true\r\n\t}\r\n\tsetDeviceLoading(true)\r\n\ttry {\r\n\t\tconst result = await SenseDataService.getDevices({ user_id: userId })\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\tconst devices = result.data as Array\r\n\t\t\tsetDevices(devices)\r\n\t\t\t__f__('log','at utils/store.uts:306',`加载设备列表成功,共${devices.length}个设备`)\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:309','加载设备列表失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:313','加载设备列表异常:', error)\r\n\t\treturn false\r\n\t} finally {\r\n\t\tsetDeviceLoading(false)\r\n\t}\r\n}\r\n\r\n/**\r\n * 从服务器加载设备列表 - 带默认参数的重载版本\r\n */\r\nexport const loadDevicesWithDefault = async () : Promise => {\r\n\treturn await loadDevices(false)\r\n}\r\n\r\n/**\r\n * 绑定新设备\r\n */\r\nexport const bindNewDevice = async (deviceData : UTSJSONObject) : Promise => {\r\n\tconst userId = getCurrentUserId()\r\n\tif (userId == null) {\r\n\t\t__f__('log','at utils/store.uts:333','用户未登录,无法绑定设备')\r\n\t\treturn false\r\n\t}\r\n\r\n\t// 确保设备数据中包含用户ID\r\n\tdeviceData.set('user_id', userId)\r\n\ttry {\r\n\t\tconst result = await SenseDataService.bindDevice(deviceData)\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\t// 添加到本地状态\r\n\t\t\taddDevice(result.data as DeviceInfo)\r\n\t\t\tconst deviceName = (result.data as DeviceInfo).device_name ?? '未知设备'\r\n\t\t\t__f__('log','at utils/store.uts:345','设备绑定成功:', deviceName)\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:348','设备绑定失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:352','设备绑定异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n/**\r\n * 解绑设备\r\n */\r\nexport const unbindDevice = async (deviceId : string) : Promise => {\r\n\ttry {\r\n\t\tconst result = await SenseDataService.unbindDevice(deviceId)\r\n\t\tif (result.error === null) {\r\n\t\t\t// 从本地状态中移除\r\n\t\t\tremoveDevice(deviceId)\r\n\t\t\t__f__('log','at utils/store.uts:366','设备解绑成功')\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:369','设备解绑失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:373','设备解绑异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n/**\r\n * 更新设备配置\r\n */\r\nexport const updateDeviceConfig = async (deviceId : string, configData : UTSJSONObject) : Promise => {\r\n\ttry {\r\n\t\tconst result = await SenseDataService.updateDevice(deviceId, configData)\r\n\t\tif (result.error === null && result.data != null) {\r\n\t\t\t// 更新本地状态\r\n\t\t\tupdateDevice(result.data as DeviceInfo)\r\n\t\t\t__f__('log','at utils/store.uts:387','设备配置更新成功')\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\t__f__('log','at utils/store.uts:390','设备配置更新失败:', result.error?.message ?? '未知错误')\r\n\t\t\treturn false\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t__f__('log','at utils/store.uts:394','设备配置更新异常:', error)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\n// ========== 设备管理 API ==========\r\n\r\n/**\r\n * 获取设备管理相关的API\r\n */\r\nexport function getDeviceStore() {\r\n\treturn {\r\n\t\t// 获取设备状态\r\n\t\tgetDevices() : Array {\r\n\t\t\treturn state.deviceState.devices\r\n\t\t},\r\n\r\n\t\tgetCurrentDevice() : DeviceInfo | null {\r\n\t\t\treturn state.deviceState.currentDevice\r\n\t\t},\r\n\r\n\t\tisLoading() : boolean {\r\n\t\t\treturn state.deviceState.isLoading\r\n\t\t},\r\n\t\tgetLastUpdated() : number | null {\r\n\t\t\treturn state.deviceState.lastUpdated\r\n\t\t},\r\n\r\n\t\t// 设备操作方法\r\n\t\tasync loadDevices(forceRefresh : boolean) : Promise {\r\n\t\t\treturn await loadDevices(forceRefresh)\r\n\t\t},\r\n\r\n\t\tasync refreshDevices() : Promise {\r\n\t\t\treturn await loadDevicesWithDefault()\r\n\t\t},\r\n\r\n\t\tasync bindDevice(deviceData : UTSJSONObject) : Promise {\r\n\t\t\treturn await bindNewDevice(deviceData)\r\n\t\t},\r\n\r\n\t\tasync unbindDevice(deviceId : string) : Promise {\r\n\t\t\treturn await unbindDevice(deviceId)\r\n\t\t},\r\n\r\n\t\tasync updateDevice(deviceId : string, configData : UTSJSONObject) : Promise {\r\n\t\t\treturn await updateDeviceConfig(deviceId, configData)\r\n\t\t},\r\n\r\n\t\t// 设备查询方法\r\n\t\tgetDeviceById(deviceId : string) : DeviceInfo | null {\r\n\t\t\treturn getDeviceById(deviceId)\r\n\t\t},\r\n\r\n\t\tgetOnlineDevices() : Array {\r\n\t\t\treturn getOnlineDevices()\r\n\t\t},\r\n\r\n\t\t// 设备选择\r\n\t\tsetCurrentDevice(device : DeviceInfo | null) {\r\n\t\t\tsetCurrentDevice(device)\r\n\t\t}\r\n\t}\r\n}","import 'D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts';// 简化的main.uts,移除i18n依赖\r\nimport { createSSRApp } from 'vue'\r\nimport App from './App.uvue'\r\nimport i18n from '@/uni_modules/i18n/index.uts'\r\n\r\nexport function createApp() {\r\n const app = createSSRApp(App)\r\n \r\n // 注册 i18n 全局属性,使组件可以使用 $t 方法\r\n\tapp.config.globalProperties.$t = (key: string, values?: any, locale?: string): string => {\r\n\t\tif (i18n.global == null) {\r\n\t\t\t__f__('error','at main.uts:12','i18n is not initialized')\r\n\t\t\treturn key\r\n\t\t}\r\n const params = values as UTSJSONObject | null\r\n\t\tconst res = i18n.global.t(key, params, locale)\r\n if (res.length > 0) {\r\n return res\r\n }\r\n return key\r\n\t}\r\n \r\n return { app }\r\n}\r\n\nexport function main(app: IApp) {\n definePageRoutes();\n defineAppConfig();\n (createApp()['app'] as VueApp).mount(app, GenUniApp());\n}\n\nexport class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {\n override name: string = \"商城消费者端\"\n override appid: string = \"__UNI__CONSUMER\"\n override versionName: string = \"1.0.0\"\n override versionCode: string = \"100\"\n override uniCompilerVersion: string = \"4.87\"\n \n constructor() { super() }\n}\n\nimport GenPagesUserLoginClass from './pages/user/login.uvue'\nimport GenPagesUserBootClass from './pages/user/boot.uvue'\nimport GenPagesUserRegisterClass from './pages/user/register.uvue'\nimport GenPagesUserForgotPasswordClass from './pages/user/forgot-password.uvue'\nimport GenPagesUserTermsClass from './pages/user/terms.uvue'\nimport GenPagesUserCenterClass from './pages/user/center.uvue'\nimport GenPagesUserProfileClass from './pages/user/profile.uvue'\nimport GenPagesUserChangePasswordClass from './pages/user/change-password.uvue'\nimport GenPagesUserBindPhoneClass from './pages/user/bind-phone.uvue'\nimport GenPagesUserBindEmailClass from './pages/user/bind-email.uvue'\nimport GenPagesMainIndexClass from './pages/main/index.uvue'\nimport GenPagesMainCategoryClass from './pages/main/category.uvue'\nimport GenPagesMainMessagesClass from './pages/main/messages.uvue'\nimport GenPagesMainCartClass from './pages/main/cart.uvue'\nimport GenPagesMainProfileClass from './pages/main/profile.uvue'\nimport GenPagesMallConsumerSettingsClass from './pages/mall/consumer/settings.uvue'\nimport GenPagesMallConsumerWalletClass from './pages/mall/consumer/wallet.uvue'\nimport GenPagesMallConsumerWithdrawClass from './pages/mall/consumer/withdraw.uvue'\nimport GenPagesMallConsumerSearchClass from './pages/mall/consumer/search.uvue'\nimport GenPagesMallConsumerProductDetailClass from './pages/mall/consumer/product-detail.uvue'\nimport GenPagesMallConsumerShopDetailClass from './pages/mall/consumer/shop-detail.uvue'\nimport GenPagesMallConsumerCouponsClass from './pages/mall/consumer/coupons.uvue'\nimport GenPagesMallConsumerFavoritesClass from './pages/mall/consumer/favorites.uvue'\nimport GenPagesMallConsumerFootprintClass from './pages/mall/consumer/footprint.uvue'\nimport GenPagesMallConsumerAddressListClass from './pages/mall/consumer/address-list.uvue'\nimport GenPagesMallConsumerAddressEditClass from './pages/mall/consumer/address-edit.uvue'\nimport GenPagesMallConsumerCheckoutClass from './pages/mall/consumer/checkout.uvue'\nimport GenPagesMallConsumerPaymentClass from './pages/mall/consumer/payment.uvue'\nimport GenPagesMallConsumerPaymentSuccessClass from './pages/mall/consumer/payment-success.uvue'\nimport GenPagesMallConsumerOrdersClass from './pages/mall/consumer/orders.uvue'\nimport GenPagesMallConsumerOrderDetailClass from './pages/mall/consumer/order-detail.uvue'\nimport GenPagesMallConsumerLogisticsClass from './pages/mall/consumer/logistics.uvue'\nimport GenPagesMallConsumerReviewClass from './pages/mall/consumer/review.uvue'\nimport GenPagesMallConsumerRefundClass from './pages/mall/consumer/refund.uvue'\nimport GenPagesMallConsumerApplyRefundClass from './pages/mall/consumer/apply-refund.uvue'\nimport GenPagesMallConsumerRefundReviewClass from './pages/mall/consumer/refund-review.uvue'\nimport GenPagesMallConsumerChatClass from './pages/mall/consumer/chat.uvue'\nimport GenPagesMallConsumerSubscriptionFollowedShopsClass from './pages/mall/consumer/subscription/followed-shops.uvue'\nimport GenPagesMallConsumerPointsIndexClass from './pages/mall/consumer/points/index.uvue'\nimport GenPagesMallConsumerRedPacketsIndexClass from './pages/mall/consumer/red-packets/index.uvue'\nimport GenPagesMallConsumerBankCardsIndexClass from './pages/mall/consumer/bank-cards/index.uvue'\nimport GenPagesMallConsumerBankCardsAddClass from './pages/mall/consumer/bank-cards/add.uvue'\nfunction definePageRoutes() {\n__uniRoutes.push({ path: \"pages/user/login\", component: GenPagesUserLoginClass, meta: { isQuit: true } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户登录\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/boot\", component: GenPagesUserBootClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/register\", component: GenPagesUserRegisterClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"注册\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/forgot-password\", component: GenPagesUserForgotPasswordClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"忘记密码\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/terms\", component: GenPagesUserTermsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户协议与隐私政策\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/center\", component: GenPagesUserCenterClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"用户中心\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/profile\", component: GenPagesUserProfileClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"个人资料\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/change-password\", component: GenPagesUserChangePasswordClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"修改密码\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/bind-phone\", component: GenPagesUserBindPhoneClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"绑定手机\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/user/bind-email\", component: GenPagesUserBindEmailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"绑定邮箱\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/index\", component: GenPagesMainIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"首页\"],[\"navigationStyle\",\"custom\"],[\"enablePullDownRefresh\",false]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/category\", component: GenPagesMainCategoryClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"分类\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/messages\", component: GenPagesMainMessagesClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"消息\"],[\"navigationStyle\",\"custom\"],[\"enablePullDownRefresh\",true]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/cart\", component: GenPagesMainCartClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"购物车\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/main/profile\", component: GenPagesMainProfileClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/settings\", component: GenPagesMallConsumerSettingsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"设置\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/wallet\", component: GenPagesMallConsumerWalletClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的钱包\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/withdraw\", component: GenPagesMallConsumerWithdrawClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"余额提现\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/search\", component: GenPagesMallConsumerSearchClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"搜索\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/product-detail\", component: GenPagesMallConsumerProductDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"商品详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/shop-detail\", component: GenPagesMallConsumerShopDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"店铺详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/coupons\", component: GenPagesMallConsumerCouponsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的优惠券\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/favorites\", component: GenPagesMallConsumerFavoritesClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的收藏\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/footprint\", component: GenPagesMallConsumerFootprintClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的足迹\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/address-list\", component: GenPagesMallConsumerAddressListClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"收货地址\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/address-edit\", component: GenPagesMallConsumerAddressEditClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"编辑地址\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/checkout\", component: GenPagesMallConsumerCheckoutClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"确认订单\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/payment\", component: GenPagesMallConsumerPaymentClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"收银台\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/payment-success\", component: GenPagesMallConsumerPaymentSuccessClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"支付成功\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/orders\", component: GenPagesMallConsumerOrdersClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的订单\"],[\"enablePullDownRefresh\",true]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/order-detail\", component: GenPagesMallConsumerOrderDetailClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"订单详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/logistics\", component: GenPagesMallConsumerLogisticsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"物流详情\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/review\", component: GenPagesMallConsumerReviewClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"评价晒单\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/refund\", component: GenPagesMallConsumerRefundClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"退款/售后\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/apply-refund\", component: GenPagesMallConsumerApplyRefundClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"申请售后\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/refund-review\", component: GenPagesMallConsumerRefundReviewClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"服务评价\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/chat\", component: GenPagesMallConsumerChatClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"客服聊天\"],[\"navigationStyle\",\"custom\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/subscription/followed-shops\", component: GenPagesMallConsumerSubscriptionFollowedShopsClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"关注店铺\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/points/index\", component: GenPagesMallConsumerPointsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"积分管理\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/red-packets/index\", component: GenPagesMallConsumerRedPacketsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"我的红包\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/bank-cards/index\", component: GenPagesMallConsumerBankCardsIndexClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"银行卡管理\"]]) } as UniPageRoute)\n__uniRoutes.push({ path: \"pages/mall/consumer/bank-cards/add\", component: GenPagesMallConsumerBankCardsAddClass, meta: { isQuit: false } as UniPageMeta, style: _uM([[\"navigationBarTitleText\",\"添加银行卡\"]]) } as UniPageRoute)\n}\nconst __uniTabBar: Map | null = _uM([[\"color\",\"#999999\"],[\"selectedColor\",\"#ff5000\"],[\"backgroundColor\",\"#ffffff\"],[\"borderStyle\",\"black\"],[\"list\",[_uM([[\"pagePath\",\"pages/main/index\"],[\"text\",\"首页\"],[\"iconPath\",\"static/tabbar/home.png\"],[\"selectedIconPath\",\"static/tabbar/home.png\"]]),_uM([[\"pagePath\",\"pages/main/category\"],[\"text\",\"分类\"],[\"iconPath\",\"static/tabbar/category.png\"],[\"selectedIconPath\",\"static/tabbar/category.png\"]]),_uM([[\"pagePath\",\"pages/main/messages\"],[\"text\",\"消息\"],[\"iconPath\",\"static/tabbar/message.png\"],[\"selectedIconPath\",\"static/tabbar/message.png\"]]),_uM([[\"pagePath\",\"pages/main/cart\"],[\"text\",\"购物车\"],[\"iconPath\",\"static/tabbar/cart.png\"],[\"selectedIconPath\",\"static/tabbar/cart.png\"]]),_uM([[\"pagePath\",\"pages/main/profile\"],[\"text\",\"我的\"],[\"iconPath\",\"static/tabbar/user.png\"],[\"selectedIconPath\",\"static/tabbar/user.png\"]])]]])\nconst __uniLaunchPage: Map = _uM([[\"url\",\"pages/user/login\"],[\"style\",_uM([[\"navigationBarTitleText\",\"用户登录\"],[\"navigationStyle\",\"custom\"]])]])\nfunction defineAppConfig(){\n __uniConfig.entryPagePath = '/pages/user/login'\n __uniConfig.globalStyle = _uM([[\"navigationBarTextStyle\",\"black\"],[\"navigationBarTitleText\",\"mall\"],[\"navigationBarBackgroundColor\",\"#FFFFFF\"],[\"backgroundColor\",\"#F8F8F8\"]])\n __uniConfig.getTabBarConfig = ():Map | null => _uM([[\"color\",\"#999999\"],[\"selectedColor\",\"#ff5000\"],[\"backgroundColor\",\"#ffffff\"],[\"borderStyle\",\"black\"],[\"list\",[_uM([[\"pagePath\",\"pages/main/index\"],[\"text\",\"首页\"],[\"iconPath\",\"static/tabbar/home.png\"],[\"selectedIconPath\",\"static/tabbar/home.png\"]]),_uM([[\"pagePath\",\"pages/main/category\"],[\"text\",\"分类\"],[\"iconPath\",\"static/tabbar/category.png\"],[\"selectedIconPath\",\"static/tabbar/category.png\"]]),_uM([[\"pagePath\",\"pages/main/messages\"],[\"text\",\"消息\"],[\"iconPath\",\"static/tabbar/message.png\"],[\"selectedIconPath\",\"static/tabbar/message.png\"]]),_uM([[\"pagePath\",\"pages/main/cart\"],[\"text\",\"购物车\"],[\"iconPath\",\"static/tabbar/cart.png\"],[\"selectedIconPath\",\"static/tabbar/cart.png\"]]),_uM([[\"pagePath\",\"pages/main/profile\"],[\"text\",\"我的\"],[\"iconPath\",\"static/tabbar/user.png\"],[\"selectedIconPath\",\"static/tabbar/user.png\"]])]]])\n __uniConfig.tabBar = __uniConfig.getTabBarConfig()\n __uniConfig.conditionUrl = ''\n __uniConfig.uniIdRouter = new Map()\n \n __uniConfig.ready = true\n}\n","import supa from '@/components/supadb/aksupainstance.uts'\r\nimport type { AkReqResponse } from '@/uni_modules/ak-req/index.uts'\r\nimport type { OrderOptions } from '@/components/supadb/aksupa.uts'\r\n\r\nconst OLD_URL = '192.168.1.61:18000'\r\nconst NEW_URL = '119.146.131.237:9126'\r\n\r\nfunction fixImageUrl(url: string | null): string {\r\n if (url == null) return ''\r\n if (url.indexOf(OLD_URL) >= 0) {\r\n return url.replace(OLD_URL, NEW_URL)\r\n }\r\n return url\r\n}\r\n\r\nfunction fixImageUrls(urls: any): string[] {\r\n if (urls == null) return []\r\n if (Array.isArray(urls)) {\r\n const result: string[] = []\r\n const arr = urls as any[]\r\n for (let i = 0; i < arr.length; i++) {\r\n try {\r\n const urlStr = JSON.stringify(arr[i])\r\n if (urlStr != null && urlStr.startsWith('\"') && urlStr.endsWith('\"')) {\r\n const fixed = fixImageUrl(urlStr.substring(1, urlStr.length - 1))\r\n if (fixed !== '') result.push(fixed)\r\n }\r\n } catch (e) {}\r\n }\r\n return result\r\n }\r\n return []\r\n}\r\n\r\n// 使用单例 Supabase 客户端\r\n// const supa = createClient(SUPA_URL, SUPA_KEY)\r\n\r\n// 辅助函数:安全获取字符串值\r\nfunction safeGetString(obj: UTSJSONObject, key: string): string {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return ''\r\n const strVal = JSON.stringify(rawVal)\r\n if (strVal == null) return ''\r\n if (strVal.startsWith('\"') && strVal.endsWith('\"')) {\r\n return strVal.substring(1, strVal.length - 1)\r\n }\r\n return strVal\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:50','safeGetString error for key:', key, e)\r\n return ''\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取数值\r\nfunction safeGetNumber(obj: UTSJSONObject, key: string): number {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return 0\r\n try {\r\n const numVal = rawVal as number\r\n if (!isNaN(numVal)) return numVal\r\n } catch (e) {}\r\n return 0\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:66','safeGetNumber error for key:', key, e)\r\n return 0\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取布尔值\r\nfunction safeGetBoolean(obj: UTSJSONObject, key: string): boolean {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal == null) return false\r\n try {\r\n const boolVal = rawVal as boolean\r\n return boolVal\r\n } catch (e) {}\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:82','safeGetBoolean error for key:', key, e)\r\n return false\r\n }\r\n}\r\n\r\n// 辅助函数:安全获取字符串数组\r\nfunction safeGetStringArray(obj: UTSJSONObject, key: string): string[] {\r\n try {\r\n const rawVal = obj.get(key)\r\n if (rawVal != null && Array.isArray(rawVal)) {\r\n return rawVal as string[]\r\n }\r\n return [] as string[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:96','safeGetStringArray error for key:', key, e)\r\n return [] as string[]\r\n }\r\n}\r\n\r\n// 辅助函数:从原始数据解析商品\r\nfunction parseProductFromRaw(item: any): Product {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:104','[parseProductFromRaw] 开始解析商品')\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n __f__('log','at utils/supabaseService.uts:106','[parseProductFromRaw] JSON转换成功')\r\n \r\n const mainImageUrl = fixImageUrl(safeGetString(itemObj, 'main_image_url'))\r\n const imageUrls = fixImageUrls(safeGetStringArray(itemObj, 'image_urls'))\r\n __f__('log','at utils/supabaseService.uts:110','[parseProductFromRaw] 图片处理完成')\r\n \r\n const result: Product = {\r\n id: safeGetString(itemObj, 'id'),\r\n name: safeGetString(itemObj, 'name'),\r\n description: safeGetString(itemObj, 'description'),\r\n base_price: safeGetNumber(itemObj, 'base_price'),\r\n price: safeGetNumber(itemObj, 'base_price'),\r\n original_price: safeGetNumber(itemObj, 'market_price'),\r\n market_price: safeGetNumber(itemObj, 'market_price'),\r\n main_image_url: mainImageUrl,\r\n image_url: mainImageUrl,\r\n images: imageUrls,\r\n category_id: safeGetString(itemObj, 'category_id'),\r\n brand_id: safeGetString(itemObj, 'brand_id'),\r\n merchant_id: safeGetString(itemObj, 'merchant_id'),\r\n total_stock: safeGetNumber(itemObj, 'total_stock'),\r\n stock: safeGetNumber(itemObj, 'total_stock'),\r\n sale_count: safeGetNumber(itemObj, 'sale_count'),\r\n status: safeGetNumber(itemObj, 'status'),\r\n is_featured: safeGetBoolean(itemObj, 'is_featured'),\r\n is_new: safeGetBoolean(itemObj, 'is_new'),\r\n is_hot: safeGetBoolean(itemObj, 'is_hot'),\r\n specification: safeGetString(itemObj, 'specification'),\r\n usage: safeGetString(itemObj, 'usage'),\r\n side_effects: safeGetString(itemObj, 'side_effects'),\r\n precautions: safeGetString(itemObj, 'precautions'),\r\n expiry_date: safeGetString(itemObj, 'expiry_date'),\r\n storage_conditions: safeGetString(itemObj, 'storage_conditions'),\r\n approval_number: safeGetString(itemObj, 'approval_number'),\r\n created_at: safeGetString(itemObj, 'created_at')\r\n }\r\n __f__('log','at utils/supabaseService.uts:142','[parseProductFromRaw] 商品解析成功:', result.name)\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:145','parseProductFromRaw error:', e)\r\n return {\r\n id: '',\r\n name: '',\r\n description: '',\r\n base_price: 0,\r\n price: 0,\r\n original_price: 0,\r\n market_price: 0,\r\n main_image_url: '',\r\n image_url: '',\r\n images: [] as string[],\r\n category_id: '',\r\n brand_id: '',\r\n merchant_id: '',\r\n total_stock: 0,\r\n stock: 0,\r\n sale_count: 0,\r\n status: 0,\r\n is_featured: false,\r\n is_new: false,\r\n is_hot: false,\r\n specification: '',\r\n usage: '',\r\n side_effects: '',\r\n precautions: '',\r\n expiry_date: '',\r\n storage_conditions: '',\r\n approval_number: '',\r\n created_at: ''\r\n } as Product\r\n }\r\n}\r\n\r\n// 类型定义\r\nexport type Brand = {\r\n id: string\r\n name: string\r\n logo_url: string\r\n description: string\r\n}\r\n\r\nexport type Category = {\r\n id: string\r\n name: string\r\n icon: string\r\n description: string\r\n color: string\r\n parent_id?: string\r\n level?: number\r\n slug?: string\r\n created_at?: string\r\n}\r\n\r\nexport type Product = {\r\n id: string\r\n category_id: string\r\n merchant_id: string\r\n name: string\r\n subtitle?: string\r\n description?: string\r\n base_price?: number\r\n market_price?: number\r\n cost_price?: number\r\n main_image_url?: string\r\n image_url?: string\r\n image_urls?: string\r\n video_urls?: string\r\n images?: string[]\r\n sale_count?: number\r\n view_count?: number\r\n total_stock?: number\r\n available_stock?: number\r\n is_hot?: boolean\r\n is_new?: boolean\r\n is_featured?: boolean\r\n status?: number\r\n rating_avg?: number\r\n rating_count?: number\r\n rating?: number\r\n review_count?: number\r\n brand_id?: string\r\n shop_id?: string\r\n tags?: string\r\n attributes?: string\r\n specification?: string\r\n usage?: string\r\n side_effects?: string\r\n precautions?: string\r\n expiry_date?: string\r\n storage_conditions?: string\r\n approval_number?: string\r\n created_at?: string\r\n updated_at?: string\r\n price?: number\r\n original_price?: number\r\n stock?: number\r\n sales?: number\r\n cover?: string\r\n brand_name?: string\r\n category_name?: string\r\n shop_name?: string\r\n merchant_name?: string\r\n}\r\n\r\nexport type Shop = {\r\n id: string\r\n merchant_id: string\r\n shop_name: string\r\n shop_logo?: string\r\n shop_banner?: string\r\n description?: string\r\n contact_name?: string\r\n contact_phone?: string\r\n rating_avg?: number\r\n total_sales?: number\r\n product_count?: number\r\n total_sales_count?: number\r\n created_at?: string\r\n}\r\n\r\nexport type CartItem = {\r\n id: string\r\n user_id: string\r\n product_id: string\r\n sku_id?: string\r\n merchant_id?: string\r\n quantity: number\r\n selected: boolean\r\n product_name?: string\r\n product_image?: string\r\n product_price?: number\r\n product_specification?: string\r\n shop_id?: string\r\n shop_name?: string\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type UserAddress = {\r\n id: string\r\n user_id: string\r\n recipient_name: string\r\n phone: string\r\n province: string\r\n city: string\r\n district: string\r\n detail_address: string\r\n postal_code?: string\r\n is_default: boolean\r\n label?: string\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type UserCoupon = {\r\n id: string\r\n user_id: string\r\n template_id: string\r\n coupon_code: string\r\n status: number // 1: unused, 2: used, 3: expired\r\n received_at: string\r\n expire_at: string\r\n used_at?: string\r\n // join fields from template or view\r\n template_name?: string\r\n amount?: number\r\n min_spend?: number\r\n name?: string\r\n title?: string\r\n}\r\n\r\nexport type ChatRoom = {\r\n id: string\r\n user_id: string\r\n merchant_id: string\r\n shop_name: string\r\n shop_logo?: string\r\n last_message?: string\r\n last_message_at?: string\r\n unread_count: number\r\n is_top: boolean\r\n created_at?: string\r\n updated_at?: string\r\n}\r\n\r\nexport type Notification = {\r\n id: string\r\n user_id: string\r\n type: string\r\n title: string\r\n content: string\r\n icon_url?: string\r\n link_url?: string\r\n is_read: boolean\r\n extra_data?: string\r\n created_at?: string\r\n}\r\n\r\nexport type ChatMessage = {\r\n id: string\r\n session_id?: string\r\n sender_id?: string\r\n receiver_id?: string\r\n content: string\r\n msg_type: string\r\n is_read: boolean\r\n is_from_user: boolean\r\n extra_data?: string\r\n created_at?: string\r\n}\r\n\r\nexport type PaginatedResponse = {\r\n data: T[]\r\n total: number\r\n page: number\r\n limit: number\r\n hasmore: boolean\r\n}\r\n\r\nexport type ProductSku = {\r\n id: string\r\n product_id: string\r\n sku_code: string\r\n specifications: string // JSON string\r\n price: number\r\n market_price?: number\r\n cost_price?: number\r\n stock?: number\r\n warning_stock?: number\r\n image_url?: string\r\n weight?: number\r\n status?: number\r\n created_at?: string\r\n}\r\n\r\nexport type AddAddressParams = {\r\n recipient_name: string\r\n phone: string\r\n province: string\r\n city: string\r\n district: string\r\n detail_address: string\r\n postal_code?: string\r\n is_default?: boolean\r\n label?: string\r\n}\r\n\r\nexport type UpdateAddressParams = {\r\n recipient_name?: string\r\n phone?: string\r\n province?: string\r\n city?: string\r\n district?: string\r\n detail_address?: string\r\n postal_code?: string\r\n is_default?: boolean\r\n label?: string\r\n}\r\n\r\nexport type CreateOrderParams = {\r\n merchant_id: string\r\n product_amount: number\r\n shipping_fee: number\r\n total_amount: number\r\n shipping_address: any\r\n items: any[]\r\n}\r\n\r\nexport type ShopOrderParams = {\r\n shipping_address: any\r\n shopGroups: any[]\r\n deliveryFee: number\r\n discountAmount: number\r\n}\r\n\r\nexport type ShopOrderResponse = {\r\n success: boolean\r\n orderIds: string[]\r\n error?: string\r\n}\r\n\r\nexport type RefundResponse = {\r\n success: boolean\r\n message: string\r\n}\r\n\r\nexport type ConfirmReceiptResponse = {\r\n success: boolean\r\n error?: string\r\n}\r\n\r\nclass SupabaseService {\r\n // 获取当前用户ID\r\n public getCurrentUserId(): string | null {\r\n try {\r\n // 1. 优先从 Supabase 会话获取\r\n const session = supa.getSession()\r\n if (session != null && session.user != null) {\r\n return session.user.getString('id')\r\n }\r\n \r\n // 2. 尝试从 Storage 恢复 Session (针对 App 重启后内存丢失的情况)\r\n // 注意:这里无法异步调用 hydrate,所以只能依赖 UI 层或 init 层的预加载\r\n // 但我们可以返回本地存储 ID 作为 fallback,前提是 Token 有效\r\n \r\n // 后备:尝试从本地存储获取\r\n const userId = uni.getStorageSync('user_id')\r\n return userId != null ? userId as string : null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:455','获取用户ID失败:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 确保会话有效 (异步)\r\n async ensureSession(): Promise {\r\n let session = supa.getSession()\r\n if (session.user == null) {\r\n __f__('log','at utils/supabaseService.uts:464','Session user is null, attempting to hydrate from storage...')\r\n await supa.hydrateSessionFromStorage()\r\n session = supa.getSession()\r\n }\r\n \r\n if (session.user != null) {\r\n // 同步 user_id 到 storage 保持一致\r\n const uid = session.user!!.getString('id')\r\n if (uid != null) {\r\n uni.setStorageSync('user_id', uid)\r\n return uid\r\n }\r\n }\r\n return this.getCurrentUserId()\r\n }\r\n\r\n // 获取所有分类\r\n async getCategories(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .order('name', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:490','获取分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const categories: Category[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const catObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = catObj.get('id')\r\n const nameVal = catObj.get('name')\r\n const iconVal = catObj.get('icon')\r\n const iconUrlVal = catObj.get('icon_url')\r\n const descVal = catObj.get('description')\r\n const colorVal = catObj.get('color')\r\n const parentIdVal = catObj.get('parent_id')\r\n const levelVal = catObj.get('level')\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: (typeof iconVal == 'string') ? (iconVal as string) : ((typeof iconUrlVal == 'string') ? (iconUrlVal as string) : ''),\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#4CAF50',\r\n parent_id: (typeof parentIdVal == 'string') ? (parentIdVal as string) : null,\r\n level: (typeof levelVal == 'number') ? (levelVal as number) : 0\r\n } as Category\r\n categories.push(cat)\r\n }\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:526','获取分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 根据ID获取单个分类\r\n async getCategoryById(categoryId: string): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .eq('id', categoryId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:542','获取分类失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return null\r\n }\r\n \r\n // 处理数组返回值\r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n return null\r\n }\r\n \r\n const item = rawList[0]\r\n const catObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = catObj.get('id')\r\n const nameVal = catObj.get('name')\r\n const iconVal = catObj.get('icon')\r\n const iconUrlVal = catObj.get('icon_url')\r\n const descVal = catObj.get('description')\r\n const colorVal = catObj.get('color')\r\n const parentIdVal = catObj.get('parent_id')\r\n const levelVal = catObj.get('level')\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: (typeof iconVal == 'string') ? (iconVal as string) : ((typeof iconUrlVal == 'string') ? (iconUrlVal as string) : ''),\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#4CAF50',\r\n parent_id: (typeof parentIdVal == 'string') ? (parentIdVal as string) : null,\r\n level: (typeof levelVal == 'number') ? (levelVal as number) : 0\r\n } as Category\r\n return cat\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:579','获取分类异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 获取一级分类\r\n async getParentCategories(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .is('parent_id', null)\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:595','获取一级分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n\r\n const categories: Category[] = []\r\n const rawList = rawData as Array\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const icon = this.getCategoryIcon(item)\r\n \r\n // 安全获取属性\r\n const idVal = item['id']\r\n const nameVal = item['name']\r\n const descVal = item['description']\r\n const colorVal = item['color']\r\n const slugVal = item['slug']\r\n \r\n const cat: Category = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n icon: icon,\r\n description: (typeof descVal == 'string') ? (descVal as string) : '',\r\n color: (typeof colorVal == 'string') ? (colorVal as string) : '#ff5000',\r\n level: 1,\r\n slug: (typeof slugVal == 'string') ? (slugVal as string) : ''\r\n }\r\n categories.push(cat)\r\n }\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:630','获取一级分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取子分类\r\n async getSubCategories(parentId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:638','[getSubCategories] 开始获取子分类, parentId:', parentId)\r\n const response = await supa\r\n .from('ml_categories')\r\n .select('*')\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:645','[getSubCategories] 查询完成')\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:648','获取子分类失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:654','[getSubCategories] 数据为空')\r\n return []\r\n }\r\n\r\n const categories: Category[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:660','[getSubCategories] 原始数据条数:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 parent_id\r\n const itemParentId = safeGetString(itemObj, 'parent_id')\r\n const isMatch = (itemParentId.length > 0 && itemParentId == parentId)\r\n if (!isMatch) {\r\n continue\r\n }\r\n \r\n const icon = this.getCategoryIcon(itemObj)\r\n const cat: Category = {\r\n id: safeGetString(itemObj, 'id'),\r\n name: safeGetString(itemObj, 'name'),\r\n icon: icon,\r\n description: safeGetString(itemObj, 'description'),\r\n color: safeGetString(itemObj, 'color').length > 0 ? safeGetString(itemObj, 'color') : '#ff5000',\r\n level: 2,\r\n parent_id: safeGetString(itemObj, 'parent_id'),\r\n slug: safeGetString(itemObj, 'slug')\r\n }\r\n categories.push(cat)\r\n }\r\n __f__('log','at utils/supabaseService.uts:686','[getSubCategories] 返回分类数量:', categories.length)\r\n return categories\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:689','获取子分类异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取分类图标的辅助方法\r\n getCategoryIcon(item: UTSJSONObject): string {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const icon = safeGetString(itemObj, 'icon')\r\n if (icon.length > 0) {\r\n return icon\r\n }\r\n const iconUrl = safeGetString(itemObj, 'icon_url')\r\n if (iconUrl.length > 0) {\r\n return iconUrl\r\n }\r\n const name = safeGetString(itemObj, 'name')\r\n if (name.includes('数码') || name.includes('电器') || name.includes('手机')) return '📱'\r\n if (name.includes('服装') || name.includes('衣服') || name.includes('鞋')) return '👕'\r\n if (name.includes('食品') || name.includes('水果') || name.includes('零食')) return '🍎'\r\n if (name.includes('美妆') || name.includes('护肤') || name.includes('化妆')) return '💄'\r\n if (name.includes('母婴') || name.includes('婴儿') || name.includes('儿童')) return '👶'\r\n if (name.includes('家居') || name.includes('家具') || name.includes('装饰')) return '🏠'\r\n if (name.includes('图书') || name.includes('文具')) return '📚'\r\n if (name.includes('运动') || name.includes('户外') || name.includes('健身')) return '⚽'\r\n if (name.includes('医药') || name.includes('保健') || name.includes('健康')) return '💊'\r\n return '📦'\r\n }\r\n\r\n // 获取所有品牌\r\n async getBrands(): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:721','[getBrands] 开始获取品牌数据...')\r\n const response = await supa\r\n .from('ml_brands')\r\n .select('id, name, logo_url, description, is_active')\r\n .order('name', { ascending: true })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:729','获取品牌失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:735','[getBrands] 数据为空')\r\n return []\r\n }\r\n \r\n const brands: Brand[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:741','[getBrands] 数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const brandObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const idVal = brandObj.get('id')\r\n const nameVal = brandObj.get('name')\r\n const logoVal = brandObj.get('logo_url')\r\n const descVal = brandObj.get('description')\r\n const isActiveVal = brandObj.get('is_active')\r\n \r\n let isActiveBool: boolean = true\r\n if (isActiveVal != null) {\r\n if (typeof isActiveVal == 'boolean') {\r\n isActiveBool = isActiveVal as boolean\r\n } else if (typeof isActiveVal == 'number') {\r\n isActiveBool = (isActiveVal as number) === 1\r\n }\r\n }\r\n if (!isActiveBool) {\r\n continue\r\n }\r\n \r\n const brand: Brand = {\r\n id: (typeof idVal == 'string') ? (idVal as string) : '',\r\n name: (typeof nameVal == 'string') ? (nameVal as string) : '',\r\n logo_url: (typeof logoVal == 'string') ? (logoVal as string) : '',\r\n description: (typeof descVal == 'string') ? (descVal as string) : ''\r\n } as Brand\r\n brands.push(brand)\r\n }\r\n __f__('log','at utils/supabaseService.uts:772','[getBrands] 返回品牌数量:', brands.length)\r\n return brands\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:775','获取品牌异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取指定分类的商品\r\n async getProductsByCategory(\r\n categoryId: string, \r\n page: number = 1, \r\n limit: number = 20\r\n ): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:787','[getProductsByCategory] 开始查询,分类ID:', categoryId, '页码:', page)\r\n \r\n // 在数据库层面进行分类过滤\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('category_id', categoryId)\r\n .eq('status', '1') // 使用字符串 '1' 而不是整数 1\r\n .order('sale_count', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:800','[getProductsByCategory] 查询完成,total:', response.total)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:803','获取商品失败:', response.error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:826','[getProductsByCategory] 返回数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n \r\n return {\r\n data: products,\r\n total: response.total ?? products.length,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:841','获取商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 根据商品ID获取SKU列表\r\n async getProductSkus(productId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:855','[getProductSkus] 开始获取SKU,商品ID:', productId)\r\n const response = await supa\r\n .from('ml_product_skus')\r\n .select('*')\r\n .eq('product_id', productId)\r\n .eq('status', '1')\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:864','获取商品SKU失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const skus: ProductSku[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:873','[getProductSkus] 获取到SKU数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const skuObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const rawId = skuObj.get('id')\r\n const rawSkuCode = skuObj.get('sku_code')\r\n const rawProdId = skuObj.get('product_id')\r\n const rawPrice = skuObj.get('price')\r\n const rawStock = skuObj.get('stock')\r\n const rawImageUrl = skuObj.get('image_url')\r\n const rawSpecs = skuObj.get('specifications')\r\n \r\n let specsStr = ''\r\n if (rawSpecs != null) {\r\n try {\r\n if (typeof rawSpecs == 'string') {\r\n specsStr = rawSpecs as string\r\n } else {\r\n specsStr = JSON.stringify(rawSpecs)\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:896','解析SKU规格失败', e)\r\n }\r\n }\r\n \r\n const sku: ProductSku = {\r\n id: (typeof rawId == 'string') ? (rawId as string) : '',\r\n product_id: (typeof rawProdId == 'string') ? (rawProdId as string) : '',\r\n sku_code: (typeof rawSkuCode == 'string') ? (rawSkuCode as string) : '',\r\n specifications: specsStr,\r\n price: (typeof rawPrice == 'number') ? (rawPrice as number) : 0,\r\n stock: (typeof rawStock == 'number') ? (rawStock as number) : 0,\r\n image_url: (typeof rawImageUrl == 'string') ? (rawImageUrl as string) : '',\r\n status: 1\r\n }\r\n skus.push(sku)\r\n }\r\n return skus\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:914','获取商品SKU异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 搜索商品\r\n async searchProducts(\r\n keyword: string, \r\n page: number = 1, \r\n limit: number = 20,\r\n sortBy: string = 'sales',\r\n ascending: boolean = false\r\n ): Promise> {\r\n try {\r\n const keywordLower = keyword.toLowerCase()\r\n const encodedKeyword = encodeURIComponent(keywordLower)\r\n const orString = `name.ilike.%${encodedKeyword}%,description.ilike.%${encodedKeyword}%,subtitle.ilike.%${encodedKeyword}%,brand_name.ilike.%${encodedKeyword}%`\r\n __f__('log','at utils/supabaseService.uts:931','[searchProducts] 搜索关键词:', keyword, '编码后:', encodedKeyword)\r\n __f__('log','at utils/supabaseService.uts:932','[searchProducts] or条件:', orString)\r\n \r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('status', 1)\r\n .or(orString)\r\n \r\n if (sortBy === 'price') {\r\n query = query.order('base_price', { ascending })\r\n } else if (sortBy === 'sales' || sortBy === 'sale_count') {\r\n query = query.order('sale_count', { ascending: false })\r\n } else {\r\n query = query.order('sale_count', { ascending: false })\r\n }\r\n \r\n const response = await query\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n \r\n let dataLength = 0\r\n try {\r\n const respData = response.data\r\n if (respData != null && Array.isArray(respData)) {\r\n dataLength = (respData as any[]).length\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:960','[searchProducts] 获取数据长度失败:', e)\r\n }\r\n let statusNum = 0\r\n try {\r\n statusNum = response.status as number\r\n } catch (e) {}\r\n __f__('log','at utils/supabaseService.uts:966','[searchProducts] 响应状态:', statusNum, '数据条数:', dataLength)\r\n \r\n let hasError = false\r\n try {\r\n hasError = response.error != null\r\n } catch (e) {}\r\n if (hasError) {\r\n __f__('error','at utils/supabaseService.uts:973','[searchProducts] 搜索商品失败:', response.error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const rawData = response.data\r\n __f__('log','at utils/supabaseService.uts:984','[searchProducts] rawData:', rawData != null ? 'not null' : 'null')\r\n if (rawData == null) {\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n const products: Product[] = []\r\n let rawList: any[] = []\r\n try {\r\n rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:999','[searchProducts] rawList长度:', rawList.length)\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1001','[searchProducts] 转换rawList失败:', e)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n __f__('log','at utils/supabaseService.uts:1013','[searchProducts] 处理第', i + 1, '个商品')\r\n products.push(parseProductFromRaw(item))\r\n }\r\n \r\n let totalNum = 0\r\n try {\r\n totalNum = response.total as number\r\n } catch (e) {}\r\n let hasmoreVal = false\r\n try {\r\n hasmoreVal = response.hasmore as boolean\r\n } catch (e) {}\r\n \r\n return {\r\n data: products,\r\n total: totalNum > 0 ? totalNum : products.length,\r\n page,\r\n limit,\r\n hasmore: hasmoreVal\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1034','搜索商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 搜索店铺\r\n async searchShops(\r\n keyword: string,\r\n page: number = 1,\r\n limit: number = 20\r\n ): Promise> {\r\n try {\r\n const encodedKeyword = encodeURIComponent(keyword)\r\n const response = await supa\r\n .from('ml_shops')\r\n .select('*', { count: 'exact' })\r\n .ilike('shop_name', `%${encodedKeyword}%`)\r\n .order('product_count', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1063','搜索店铺失败:', response.error)\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n\r\n const rawData = response.data\r\n if (rawData == null) {\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n\r\n const shops: Shop[] = []\r\n const dataList = rawData as any[]\r\n for (let i = 0; i < dataList.length; i++) {\r\n const item = dataList[i]\r\n const shopObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = shopObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 手动创建 Shop 对象,避免安卓端类型转换错误\r\n const shop: Shop = {\r\n id: shopObj.getString('id') ?? '',\r\n merchant_id: shopObj.getString('merchant_id') ?? '',\r\n shop_name: shopObj.getString('shop_name') ?? '',\r\n shop_logo: shopObj.getString('shop_logo'),\r\n shop_banner: shopObj.getString('shop_banner'),\r\n description: shopObj.getString('description'),\r\n contact_name: shopObj.getString('contact_name'),\r\n contact_phone: shopObj.getString('contact_phone'),\r\n rating_avg: shopObj.getNumber('rating_avg'),\r\n total_sales: shopObj.getNumber('total_sales'),\r\n product_count: shopObj.getNumber('product_count'),\r\n total_sales_count: shopObj.getNumber('total_sales_count'),\r\n created_at: shopObj.getString('created_at')\r\n }\r\n shops.push(shop)\r\n }\r\n\r\n return {\r\n data: shops,\r\n total: response.total ?? shops.length,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1113','搜索店铺异常:', error)\r\n return { data: [] as Shop[], total: 0, page, limit, hasmore: false }\r\n }\r\n }\r\n\r\n // 获取单个商品详情\r\n async getProductById(productId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1121','[getProductById] 开始获取商品详情,ID:', productId)\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('*')\r\n .eq('id', productId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1130','获取商品详情失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1136','[getProductById] 数据为空')\r\n return null\r\n }\r\n \r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n __f__('log','at utils/supabaseService.uts:1142','[getProductById] 未找到商品')\r\n return null\r\n }\r\n \r\n const item = rawList[0]\r\n const product = parseProductFromRaw(item)\r\n __f__('log','at utils/supabaseService.uts:1148','[getProductById] 成功获取商品:', product.name)\r\n return product\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1151','获取商品详情异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // --- 关注店铺相关 ---\r\n\r\n // 检查是否已关注店铺\r\n async isShopFollowed(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .select('id', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n \r\n return (res.total != null && res.total! > 0)\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1171','Check follow error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 关注店铺\r\n async followShop(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .insert({\r\n user_id: userId,\r\n shop_id: shopId\r\n })\r\n .execute()\r\n \r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1189','Follow shop error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 取消关注\r\n async unfollowShop(shopId: string, userId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .eq('shop_id', shopId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n \r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1206','Unfollow shop error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 获取我关注的店铺列表\r\n async getFollowedShops(userId: string): Promise {\r\n try {\r\n // 关联查询店铺信息\r\n const res = await supa\r\n .from('ml_shop_follows')\r\n .select('*, ml_shops(*)') \r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1223','getFollowedShops error:', res.error)\r\n return []\r\n }\r\n \r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:1229','getFollowedShops exception:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 根据商户ID获取店铺信息\r\n async getShopByMerchantId(merchantId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1237','[getShopByMerchantId] 开始获取店铺信息,merchantId:', merchantId)\r\n // 1. Try querying by merchant_id\r\n let response = await supa\r\n .from('ml_shops')\r\n .select('*')\r\n .eq('merchant_id', merchantId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error == null && response.data != null && (response.data as any[]).length > 0) {\r\n const shopData = (response.data as any[])[0]\r\n const shop = this.parseShopFromRaw(shopData)\r\n __f__('log','at utils/supabaseService.uts:1249','[getShopByMerchantId] 通过 merchant_id 找到店铺:', shop.shop_name)\r\n return shop\r\n }\r\n\r\n // 2. Fallback: Try querying by id (Maybe the passed ID is the Shop ID?)\r\n __f__('log','at utils/supabaseService.uts:1254','getShopByMerchantId: merchant_id not found, trying id...', merchantId)\r\n response = await supa\r\n .from('ml_shops')\r\n .select('*')\r\n .eq('id', merchantId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (response.error == null && response.data != null && (response.data as any[]).length > 0) {\r\n __f__('log','at utils/supabaseService.uts:1263','Found shop by ID instead of MerchantID')\r\n const shopData = (response.data as any[])[0]\r\n const shop = this.parseShopFromRaw(shopData)\r\n return shop\r\n }\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1270','获取店铺信息失败:', response.error)\r\n }\r\n return null\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1274','获取店铺信息异常:', error)\r\n return null\r\n }\r\n }\r\n \r\n // 解析店铺数据\r\n parseShopFromRaw(item: any): Shop {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = itemObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = itemObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n return {\r\n id: getSafeString('id'),\r\n merchant_id: getSafeString('merchant_id'),\r\n shop_name: getSafeString('shop_name'),\r\n shop_logo: getSafeString('shop_logo'),\r\n shop_banner: getSafeString('shop_banner'),\r\n description: getSafeString('description'),\r\n contact_name: getSafeString('contact_name'),\r\n contact_phone: getSafeString('contact_phone'),\r\n rating_avg: getSafeNumber('rating_avg'),\r\n total_sales: getSafeNumber('total_sales'),\r\n product_count: getSafeNumber('product_count'),\r\n total_sales_count: getSafeNumber('total_sales_count'),\r\n created_at: getSafeString('created_at')\r\n } as Shop\r\n }\r\n\r\n // 根据商户ID获取商品列表\r\n async getProductsByMerchantId(merchantId: string, page: number = 1, limit: number = 20): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1317','getProductsByMerchantId querying for:', merchantId)\r\n \r\n // 1. Try fetching from view strictly first\r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('merchant_id', merchantId)\r\n // .eq('status', 1) // Temporarily disabled status check to see if products exist at all\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const response = await query.execute()\r\n \r\n // 检查视图结果:如果有错误 OR 数据为空,都尝试去查原始表\r\n if (response.error != null || (response.data != null && (response.data as any[]).length === 0)) {\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1334','获取商户商品失败 (View):', response.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:1336','View returned 0 products, trying raw table fallback...')\r\n }\r\n \r\n // Fallback: Try raw table\r\n __f__('log','at utils/supabaseService.uts:1340','Falling back to raw ml_products table...')\r\n const query2 = supa\r\n .from('ml_products')\r\n .select('*', { count: 'exact' })\r\n .eq('merchant_id', merchantId)\r\n // .eq('status', 1) // Also disabled here\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const res2 = await query2.execute()\r\n if (res2.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1352','获取商户商品失败 (Raw):', res2.error)\r\n return {data:[] as Product[], total:0, page, limit, hasmore:false}\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1356',`Fallback (Raw) found: ${(res2.data as any[]).length} products`)\r\n \r\n const mappedData: Product[] = []\r\n const rawData = res2.data as any[]\r\n for(let i = 0; i < rawData.length; i++) {\r\n const item = JSON.parse(JSON.stringify(rawData[i])) as UTSJSONObject\r\n const images: string[] = []\r\n \r\n const mainImageUrl = fixImageUrl(item.getString('main_image_url'))\r\n if (mainImageUrl != null && mainImageUrl !== '') {\r\n images.push(mainImageUrl)\r\n }\r\n\r\n const imageUrlsRaw = item.get('image_urls')\r\n if (imageUrlsRaw != null) {\r\n try {\r\n if (Array.isArray(imageUrlsRaw)) {\r\n const arr = imageUrlsRaw as string[]\r\n if (arr.length > 0 && images.length === 0) {\r\n for (let j = 0; j < arr.length; j++) {\r\n const fixedUrl = fixImageUrl(arr[j])\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const rawUrlStr = imageUrlsRaw as string\r\n if (rawUrlStr.startsWith('[')) {\r\n const parsed = JSON.parse(rawUrlStr)\r\n if (Array.isArray(parsed) && images.length === 0) {\r\n for (let j = 0; j < parsed.length; j++) {\r\n const fixedUrl = fixImageUrl(parsed[j] as string)\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const fixedUrl = fixImageUrl(rawUrlStr)\r\n if (fixedUrl !== '' && images.indexOf(fixedUrl) === -1) images.push(fixedUrl)\r\n }\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:1396','解析图片数组失败:', e)\r\n }\r\n }\r\n \r\n if (images.length === 0) {\r\n images.push('/static/default-product.png')\r\n }\r\n \r\n let safePrice = item.getNumber('base_price')\r\n if (safePrice == null) {\r\n const p = item.getNumber('price')\r\n safePrice = p != null ? p : 0\r\n }\r\n \r\n let safeOriginalPrice = item.getNumber('market_price')\r\n if (safeOriginalPrice == null) {\r\n const op = item.getNumber('original_price')\r\n safeOriginalPrice = op != null ? op : safePrice\r\n }\r\n \r\n let safeStock = item.getNumber('total_stock')\r\n if (safeStock == null) {\r\n let as_ = item.getNumber('available_stock')\r\n if (as_ == null) {\r\n const s = item.getNumber('stock')\r\n safeStock = s != null ? s : 0\r\n } else {\r\n safeStock = as_\r\n }\r\n }\r\n \r\n let safeSales = item.getNumber('sale_count')\r\n if (safeSales == null) {\r\n const s = item.getNumber('sales')\r\n safeSales = s != null ? s : 0\r\n }\r\n \r\n const product: Product = {\r\n id: item.getString('id') ?? '',\r\n category_id: item.getString('category_id') ?? '',\r\n merchant_id: item.getString('merchant_id') ?? '',\r\n name: item.getString('name') ?? '',\r\n description: item.getString('description') ?? '',\r\n images: images,\r\n price: safePrice,\r\n original_price: safeOriginalPrice,\r\n stock: safeStock,\r\n sales: safeSales,\r\n status: item.getNumber('status') ?? 1,\r\n created_at: item.getString('created_at') ?? '',\r\n base_price: safePrice,\r\n market_price: safeOriginalPrice,\r\n main_image_url: images.length > 0 ? images[0] : '',\r\n sale_count: safeSales,\r\n total_stock: safeStock\r\n } as Product\r\n mappedData.push(product)\r\n }\r\n\r\n return {\r\n data: mappedData,\r\n total: res2.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: res2.hasmore ?? false\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1464',`Merchant products found: ${(response.data as any[]).length}`)\r\n \r\n const viewData = response.data as any[]\r\n const parsedProducts: Product[] = []\r\n for (let i = 0; i < viewData.length; i++) {\r\n parsedProducts.push(parseProductFromRaw(viewData[i]))\r\n }\r\n \r\n return {\r\n data: parsedProducts,\r\n total: response.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1480','获取商户商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 根据店铺ID获取商品列表(新增)\r\n async getProductsByShopId(shopId: string, page: number = 1, limit: number = 20): Promise> {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1494','getProductsByShopId querying for:', shopId)\r\n \r\n // 1. Try fetching from view with shop_id\r\n let query = supa\r\n .from('ml_products_detail_view')\r\n .select('*', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const response = await query.execute()\r\n \r\n // 检查视图结果:如果有错误 OR 数据为空,都尝试去查原始表\r\n if (response.error != null || (response.data != null && (response.data as any[]).length === 0)) {\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1510','获取店铺商品失败 (View):', response.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:1512','View returned 0 products, trying raw table fallback...')\r\n }\r\n \r\n // Fallback: Try raw table with shop_id\r\n __f__('log','at utils/supabaseService.uts:1516','Falling back to raw ml_products table with shop_id...')\r\n const query2 = supa\r\n .from('ml_products')\r\n .select('*', { count: 'exact' })\r\n .eq('shop_id', shopId)\r\n .order('created_at', { ascending: false })\r\n .page(page)\r\n .limit(limit)\r\n \r\n const res2 = await query2.execute()\r\n if (res2.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1527','获取店铺商品失败 (Raw):', res2.error)\r\n return {data:[] as Product[], total:0, page, limit, hasmore:false}\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1531',`Fallback (Raw) found: ${(res2.data as any[]).length} products`)\r\n \r\n const mappedData: Product[] = []\r\n const rawData = res2.data as any[]\r\n for(let i = 0; i < rawData.length; i++) {\r\n const item = JSON.parse(JSON.stringify(rawData[i])) as UTSJSONObject\r\n const images: string[] = []\r\n \r\n const mainImageUrl = fixImageUrl(item.getString('main_image_url'))\r\n if (mainImageUrl != null && mainImageUrl !== '') {\r\n images.push(mainImageUrl)\r\n }\r\n\r\n const imageUrlsRaw = item.get('image_urls')\r\n if (imageUrlsRaw != null) {\r\n try {\r\n if (Array.isArray(imageUrlsRaw)) {\r\n const arr = imageUrlsRaw as string[]\r\n if (arr.length > 0 && images.length === 0) {\r\n for (let j = 0; j < arr.length; j++) {\r\n const fixedUrl = fixImageUrl(arr[j])\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const rawUrlStr = imageUrlsRaw as string\r\n if (rawUrlStr.startsWith('[')) {\r\n const parsed = JSON.parse(rawUrlStr)\r\n if (Array.isArray(parsed) && images.length === 0) {\r\n for (let j = 0; j < parsed.length; j++) {\r\n const fixedUrl = fixImageUrl(parsed[j] as string)\r\n if (fixedUrl !== '') images.push(fixedUrl)\r\n }\r\n }\r\n } else {\r\n const fixedUrl = fixImageUrl(rawUrlStr)\r\n if (fixedUrl !== '' && images.indexOf(fixedUrl) === -1) images.push(fixedUrl)\r\n }\r\n }\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:1571','解析图片数组失败:', e)\r\n }\r\n }\r\n \r\n if (images.length === 0) {\r\n images.push('/static/default-product.png')\r\n }\r\n \r\n let safePrice = item.getNumber('base_price')\r\n if (safePrice == null) {\r\n const p = item.getNumber('price')\r\n safePrice = p != null ? p : 0\r\n }\r\n \r\n let safeOriginalPrice = item.getNumber('market_price')\r\n if (safeOriginalPrice == null) {\r\n const op = item.getNumber('original_price')\r\n safeOriginalPrice = op != null ? op : safePrice\r\n }\r\n \r\n let safeStock = item.getNumber('total_stock')\r\n if (safeStock == null) {\r\n let as_ = item.getNumber('available_stock')\r\n if (as_ == null) {\r\n const s = item.getNumber('stock')\r\n safeStock = s != null ? s : 0\r\n } else {\r\n safeStock = as_\r\n }\r\n }\r\n \r\n let safeSales = item.getNumber('sale_count')\r\n if (safeSales == null) {\r\n const s = item.getNumber('sales')\r\n safeSales = s != null ? s : 0\r\n }\r\n \r\n const product: Product = {\r\n id: item.getString('id') ?? '',\r\n category_id: item.getString('category_id') ?? '',\r\n merchant_id: item.getString('merchant_id') ?? '',\r\n name: item.getString('name') ?? '',\r\n description: item.getString('description') ?? '',\r\n images: images,\r\n price: safePrice,\r\n original_price: safeOriginalPrice,\r\n stock: safeStock,\r\n sales: safeSales,\r\n status: item.getNumber('status') ?? 1,\r\n created_at: item.getString('created_at') ?? '',\r\n base_price: safePrice,\r\n market_price: safeOriginalPrice,\r\n main_image_url: images.length > 0 ? images[0] : '',\r\n sale_count: safeSales,\r\n total_stock: safeStock\r\n } as Product\r\n mappedData.push(product)\r\n }\r\n\r\n return {\r\n data: mappedData,\r\n total: res2.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: res2.hasmore ?? false\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1639',`Shop products found: ${(response.data as any[]).length}`)\r\n \r\n const viewData = response.data as any[]\r\n const parsedProducts: Product[] = []\r\n for (let i = 0; i < viewData.length; i++) {\r\n parsedProducts.push(parseProductFromRaw(viewData[i]))\r\n }\r\n \r\n return {\r\n data: parsedProducts,\r\n total: response.total ?? 0,\r\n page,\r\n limit,\r\n hasmore: response.hasmore ?? false\r\n }\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1655','获取店铺商品异常:', error)\r\n return {\r\n data: [] as Product[],\r\n total: 0,\r\n page,\r\n limit,\r\n hasmore: false\r\n }\r\n }\r\n }\r\n\r\n // 获取热销商品(按销量排序)\r\n async getHotProducts(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1669','[getHotProducts] 开始获取热销商品...')\r\n \r\n // 在数据库层面过滤 status,获取更多数据以便手动过滤 is_hot\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 使用字符串 '1'\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 5) // 获取更多数据以便过滤\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1681','获取热销商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n __f__('log','at utils/supabaseService.uts:1686','[getHotProducts] 原始数据条数:', rawData != null ? (rawData as any[]).length : 0)\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1688','[getHotProducts] 数据为空')\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 is_hot\r\n const rawIsHot = prodObj.get('is_hot')\r\n let isHotBool: boolean = false\r\n if (typeof rawIsHot == 'boolean') {\r\n isHotBool = rawIsHot as boolean\r\n } else if (typeof rawIsHot == 'number') {\r\n isHotBool = (rawIsHot as number) == 1\r\n }\r\n if (!isHotBool) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n \r\n // 达到目标数量就停止\r\n if (products.length >= limit) break\r\n }\r\n __f__('log','at utils/supabaseService.uts:1713','[getHotProducts] 最终返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1716','获取热销商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取按销量排序的商品(所有商品,不限制 is_hot)\r\n async getProductsBySales(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1724','[getProductsBySales] 开始获取销量排序商品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1734','获取销量排序商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n __f__('log','at utils/supabaseService.uts:1749','[getProductsBySales] 返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1752','获取销量排序商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取按价格排序的商品(升序:从低到高)\r\n async getProductsByPrice(limit: number = 10, ascending: boolean = true): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 在数据库层面过滤\r\n .order('base_price', { ascending })\r\n .limit(limit)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1769','获取价格排序商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n products.push(parseProductFromRaw(item))\r\n }\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1786','获取价格排序商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取新品(按创建时间排序,最新的在前)\r\n async getProductsByNewest(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1794','[getProductsByNewest] 开始获取新品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1')\r\n .order('created_at', { ascending: false })\r\n .limit(limit * 5)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1804','获取新品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 is_new\r\n const rawIsNew = prodObj.get('is_new')\r\n let isNewBool: boolean = false\r\n if (typeof rawIsNew == 'boolean') {\r\n isNewBool = rawIsNew as boolean\r\n } else if (typeof rawIsNew == 'number') {\r\n isNewBool = (rawIsNew as number) == 1\r\n }\r\n if (!isNewBool) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n // 如果 is_new 商品不足,补充普通商品\r\n if (products.length < limit) {\r\n __f__('log','at utils/supabaseService.uts:1835','[getProductsByNewest] is_new商品不足,补充普通商品')\r\n const addedIds = new Set()\r\n for (let i = 0; i < products.length; i++) {\r\n addedIds.add(products[i].id)\r\n }\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawId = prodObj.get('id')\r\n const itemId = (typeof rawId == 'string') ? (rawId as string) : ''\r\n \r\n if (!addedIds.has(itemId)) {\r\n products.push(parseProductFromRaw(item))\r\n addedIds.add(itemId)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:1855','[getProductsByNewest] 返回商品数:', products.length)\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1858','获取新品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取推荐商品(is_featured=true)\r\n async getRecommendedProducts(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:1866','[getRecommendedProducts] 开始获取推荐商品...')\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .eq('status', '1') // 在数据库层面过滤\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 5) // 获取更多数据以便过滤 is_featured\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:1875','[getRecommendedProducts] 查询完成')\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1878','获取推荐商品失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:1884','[getRecommendedProducts] 数据为空')\r\n return []\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:1890','[getRecommendedProducts] 数据条数:', rawList.length)\r\n \r\n for (let i: number = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawFeatured = prodObj.get('is_featured')\r\n \r\n let isFeaturedBool: boolean = false\r\n if (typeof rawFeatured == 'boolean') {\r\n isFeaturedBool = rawFeatured as boolean\r\n } else if (typeof rawFeatured == 'number') {\r\n isFeaturedBool = (rawFeatured as number) == 1\r\n }\r\n if (!isFeaturedBool) {\r\n continue\r\n }\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n return products\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:1912','获取推荐商品异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取特价商品(这里假设没有specific flag, just use logic or tag if exists, defaulting to hot for now or just skip)\r\n // Modify to use compatible logic if badge column doesn't exist\r\n async getDiscountProducts(limit: number = 10): Promise {\r\n return [] as Product[] // 暂无特价字段\r\n }\r\n\r\n // 获取当前用户的购物车商品(关联商品和店铺信息)\r\n async getCartItems(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:1928','用户未登录,无法获取购物车')\r\n return []\r\n }\r\n\r\n // 查询购物车表,并关联商品表(使用内联关联)\r\n // 注意:使用 !inner 进行内连接,或者 left join (默认)\r\n // 修改查询语法以符合 PostgREST 规范\r\n // 尝试简化查询,先只查购物车,再查商品,避免复杂的嵌套查询导致 400 错误\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:1944','获取购物车失败:', response.error)\r\n return []\r\n }\r\n \r\n const cartData = response.data as any[]\r\n // __f__('log','at utils/supabaseService.uts:1949','Raw Cart Data:', JSON.stringify(cartData))\r\n \r\n if (cartData == null || cartData.length === 0) {\r\n return []\r\n }\r\n\r\n // 收集所有 product_id 和 sku_id\r\n const productIds: string[] = []\r\n const skuIds: string[] = []\r\n for (let i = 0; i < cartData.length; i++) {\r\n let item = cartData[i]\r\n let pid: string = ''\r\n let sid: string = ''\r\n if (item instanceof UTSJSONObject) {\r\n pid = item.getString('product_id') ?? ''\r\n sid = item.getString('sku_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n pid = itemObj.getString('product_id') ?? ''\r\n sid = itemObj.getString('sku_id') ?? ''\r\n }\r\n if (pid !== '' && !productIds.includes(pid)) {\r\n productIds.push(pid)\r\n }\r\n if (sid !== '' && !skuIds.includes(sid)) {\r\n skuIds.push(sid)\r\n }\r\n }\r\n\r\n // 批量查询商品详情 (使用视图关联店铺信息,修复字段名 specification -> attributes)\r\n const productMap = new Map()\r\n \r\n if (productIds.length > 0) {\r\n // Convert string array to any array for .in()\r\n const productIdsAny: any[] = []\r\n for(let i=0; i()\r\n const merchantIds: string[] = []\r\n // 遍历 productMap 获取 merchant_id\r\n productMap.forEach((p: any, pid: string) => {\r\n let mid: string = ''\r\n if (p instanceof UTSJSONObject) {\r\n mid = p.getString('merchant_id') ?? ''\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(p)) as UTSJSONObject\r\n mid = pObj.getString('merchant_id') ?? ''\r\n }\r\n if (mid !== '' && !merchantIds.includes(mid)) {\r\n merchantIds.push(mid)\r\n }\r\n })\r\n \r\n if (merchantIds.length > 0) {\r\n const merchantIdsAny: any[] = []\r\n for(let i=0; i()\r\n if (skuIds.length > 0) {\r\n const skuIdsAny: any[] = []\r\n for(let i=0; i 0) {\r\n productPrice = skuPrice\r\n }\r\n const skuImg = sku.getString('image_url')\r\n if (skuImg != null && skuImg !== '') {\r\n productImage = skuImg\r\n }\r\n \r\n const specRaw = sku.get('specifications')\r\n if (specRaw != null) {\r\n if (typeof specRaw === 'string') {\r\n productSpec = specRaw\r\n } else if (specRaw instanceof UTSJSONObject) {\r\n const keys = ['规格', '颜色', '尺码', '容量', '版本', '型号']\r\n const result: string[] = []\r\n for (let k = 0; k < keys.length; k++) {\r\n const key = keys[k]\r\n const val = specRaw.get(key)\r\n if (val != null && val !== '') {\r\n result.push(`${val}`)\r\n }\r\n }\r\n if (result.length > 0) {\r\n productSpec = result.join(' ')\r\n } else {\r\n const allKeys = UTSJSONObject.keys(specRaw)\r\n const parts: string[] = []\r\n for(let k = 0; k < allKeys.length; k++) {\r\n let val = specRaw.get(allKeys[k])\r\n if (val != null) {\r\n parts.push(`${val}`)\r\n }\r\n }\r\n productSpec = parts.join(' ')\r\n }\r\n } else {\r\n try {\r\n let jsonStr = JSON.stringify(specRaw)\r\n productSpec = jsonStr.replace(/[\"{}]/g, '').replace(/,/g, ' ').replace(/:/g, ' ')\r\n } catch (e) {}\r\n }\r\n }\r\n } else {\r\n const sObj = JSON.parse(JSON.stringify(sku)) as UTSJSONObject\r\n const skuPrice = sObj.getNumber('price') ?? 0\r\n if (skuPrice > 0) productPrice = skuPrice\r\n\r\n const skuImg = sObj.getString('image_url') ?? ''\r\n if (skuImg !== '') productImage = skuImg\r\n\r\n const specRaw = sObj.get('specifications')\r\n if (specRaw != null) {\r\n if (typeof specRaw === 'string') {\r\n productSpec = specRaw\r\n } else if (specRaw instanceof UTSJSONObject) {\r\n const keys = ['规格', '颜色', '尺码', '容量', '版本', '型号']\r\n const result: string[] = []\r\n for (let k = 0; k < keys.length; k++) {\r\n const key = keys[k]\r\n const val = specRaw.get(key)\r\n if (val != null && val !== '') {\r\n result.push(`${val}`)\r\n }\r\n }\r\n if (result.length > 0) {\r\n productSpec = result.join(' ')\r\n } else {\r\n const allKeys = UTSJSONObject.keys(specRaw)\r\n const parts: string[] = []\r\n for(let k = 0; k < allKeys.length; k++) {\r\n let val = specRaw.get(allKeys[k])\r\n if (val != null) {\r\n parts.push(`${val}`)\r\n }\r\n }\r\n productSpec = parts.join(' ')\r\n }\r\n } else {\r\n try {\r\n let jsonStr = JSON.stringify(specRaw)\r\n productSpec = jsonStr.replace(/[\"{}]/g, '').replace(/,/g, ' ').replace(/:/g, ' ')\r\n } catch (e) {}\r\n }\r\n }\r\n }\r\n }\r\n\r\n let shopIdStr = merchantId != '' ? merchantId : 'unknown_shop'\r\n\r\n \r\n cartItems.push({\r\n id: itemId,\r\n user_id: userIdVal,\r\n product_id: productId,\r\n sku_id: skuId,\r\n merchant_id: merchantId,\r\n quantity: quantity,\r\n selected: selected,\r\n product_name: productName,\r\n product_image: productImage,\r\n product_price: productPrice,\r\n product_specification: productSpec,\r\n shop_id: shopIdStr,\r\n shop_name: shopNameStr,\r\n created_at: createdAt,\r\n updated_at: updatedAt\r\n } as CartItem)\r\n }\r\n }\r\n \r\n return cartItems\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2296','获取购物车异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 获取用户通知 (系统、活动、订单)\r\n async getUserNotifications(type: string | null = null): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2304','[getUserNotifications] 开始获取通知')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n let query = supa\r\n .from('ml_notifications')\r\n .select('*')\r\n .eq('user_id', userId)\r\n \r\n if (type != null) {\r\n query = query.eq('type', type)\r\n }\r\n \r\n const response = await query.order('created_at', { ascending: false }).execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2320','获取通知失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const notifications: Notification[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2329','[getUserNotifications] 获取到通知数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const noteObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = noteObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = noteObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = noteObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val\r\n if (typeof val == 'number') return (val as number) == 1\r\n return false\r\n }\r\n \r\n const note: Notification = {\r\n id: getSafeString('id'),\r\n user_id: getSafeString('user_id'),\r\n type: getSafeString('type'),\r\n title: getSafeString('title'),\r\n content: getSafeString('content'),\r\n is_read: getSafeBoolean('is_read'),\r\n icon_url: getSafeString('icon_url'),\r\n link_url: getSafeString('link_url'),\r\n extra_data: getSafeString('extra_data'),\r\n created_at: getSafeString('created_at')\r\n }\r\n notifications.push(note)\r\n }\r\n return notifications\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2373','获取通知异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取聊天会话列表\r\n async getChatRooms(): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2381','[getChatRooms] 开始获取聊天会话')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const response = await supa\r\n .from('ml_chat_rooms')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('updated_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2393','获取聊天会话失败:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const rooms: ChatRoom[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2402','[getChatRooms] 获取到会话数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const roomObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = roomObj.get(key)\r\n if (val == null) return ''\r\n if (typeof val == 'string') return val\r\n return ''\r\n }\r\n \r\n const getSafeNumber = (key: string): number => {\r\n const val = roomObj.get(key)\r\n if (val == null) return 0\r\n if (typeof val == 'number') return val\r\n return 0\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = roomObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val\r\n if (typeof val == 'number') return (val as number) == 1\r\n return false\r\n }\r\n \r\n const room: ChatRoom = {\r\n id: getSafeString('id'),\r\n user_id: getSafeString('user_id'),\r\n merchant_id: getSafeString('merchant_id'),\r\n shop_name: getSafeString('shop_name'),\r\n shop_logo: getSafeString('shop_logo'),\r\n last_message: getSafeString('last_message'),\r\n last_message_at: getSafeString('last_message_at'),\r\n unread_count: getSafeNumber('unread_count'),\r\n is_top: getSafeBoolean('is_top'),\r\n created_at: getSafeString('created_at'),\r\n updated_at: getSafeString('updated_at')\r\n }\r\n rooms.push(room)\r\n }\r\n return rooms\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2447','获取聊天会话异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取用户聊天消息\r\n async getUserChatMessages(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .select('*')\r\n .or(`sender_id.eq.${userId},receiver_id.eq.${userId}`)\r\n .order('created_at', { ascending: false })\r\n .limit(50)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2467','获取聊天记录失败:', response.error)\r\n return []\r\n }\r\n return response.data as ChatMessage[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2472','获取聊天记录异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取与特定商家的聊天记录 (合并版本)\r\n async getChatMessages(merchantId: string, page: number = 1, pageSize: number = 20): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2480','[getChatMessages] 开始获取聊天记录,merchantId:', merchantId, 'page:', page)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return []\r\n\r\n const fromIndex = (page - 1) * pageSize\r\n const toIndex = fromIndex + pageSize - 1\r\n\r\n // 使用 or 组合精确条件查询:(我发给商家) OR (商家发给我)\r\n const queryStr = `and(sender_id.eq.${userId},receiver_id.eq.${merchantId}),and(sender_id.eq.${merchantId},receiver_id.eq.${userId})`\r\n \r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .select('*')\r\n .or(queryStr)\r\n .order('created_at', { ascending: false }) // 最新在前\r\n .range(fromIndex, toIndex)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2499','getChatMessages error:', response.error)\r\n return []\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return []\r\n \r\n const messages: ChatMessage[] = []\r\n const rawList = rawData as any[]\r\n __f__('log','at utils/supabaseService.uts:2508','[getChatMessages] 获取到消息数量:', rawList.length)\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const msgObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n const getSafeString = (key: string): string => {\r\n const val = msgObj.get(key)\r\n if (val == null) return ''\r\n return val.toString()\r\n }\r\n \r\n const getSafeBoolean = (key: string): boolean => {\r\n const val = msgObj.get(key)\r\n if (val == null) return false\r\n if (typeof val == 'boolean') return val as boolean\r\n return (val.toString() == '1' || val.toString() == 'true')\r\n }\r\n \r\n const msg: ChatMessage = {\r\n id: getSafeString('id'),\r\n session_id: getSafeString('session_id'),\r\n sender_id: getSafeString('sender_id'),\r\n receiver_id: getSafeString('receiver_id'),\r\n content: getSafeString('content'),\r\n msg_type: getSafeString('msg_type'),\r\n is_read: getSafeBoolean('is_read'),\r\n is_from_user: getSafeBoolean('is_from_user'),\r\n extra_data: getSafeString('extra_data'),\r\n created_at: getSafeString('created_at')\r\n }\r\n messages.push(msg)\r\n }\r\n return messages\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2543','获取聊天记录异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 发送聊天消息\r\n async sendChatMessage(content: string, toId: string | null = null, type: string = 'text'): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const payload = {\r\n sender_id: userId,\r\n content: content,\r\n msg_type: type,\r\n is_from_user: true,\r\n created_at: new Date().toISOString()\r\n } as UTSJSONObject\r\n if (toId != null) {\r\n payload.set('receiver_id', toId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert(payload)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2571','发送消息失败:', response.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:2576','发送消息异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 模拟客服回复\r\n async simulateServiceReply(content: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert({\r\n receiver_id: userId,\r\n content: content,\r\n msg_type: 'text',\r\n is_from_user: false,\r\n created_at: new Date().toISOString()\r\n })\r\n .execute()\r\n return response.error == null\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n // 添加商品到购物车\r\n async addToCart(productId: string, quantity: number = 1, skuId: string = '', merchantId: string = ''): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2608','用户未登录,无法添加商品到购物车')\r\n return false\r\n }\r\n \r\n const realSkuId = (skuId != null && skuId.length > 0) ? skuId : null\r\n const realMerchantId = (merchantId != null && merchantId.length > 0) ? merchantId : null\r\n\r\n // 检查商品是否已在购物车中\r\n // 注意:必须处理 sku_id 为空的情况,使用 is.null 过滤器\r\n let query = supa\r\n .from('ml_shopping_cart')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .eq('product_id', productId)\r\n \r\n if (realSkuId != null) {\r\n query = query.eq('sku_id', realSkuId)\r\n } else {\r\n query = query.is('sku_id', null)\r\n }\r\n\r\n const existingResponse = await query.single().execute()\r\n\r\n let existingItem: any | null = null\r\n \r\n if (existingResponse.data != null) {\r\n const rawData = existingResponse.data as any\r\n if (Array.isArray(rawData)) {\r\n if (rawData.length > 0) {\r\n existingItem = rawData[0]\r\n }\r\n } else {\r\n existingItem = rawData\r\n }\r\n }\r\n\r\n let response: AkReqResponse\r\n if (existingItem != null) {\r\n // 商品已存在,更新数量\r\n __f__('log','at utils/supabaseService.uts:2647','Found existing cart item:', JSON.stringify(existingItem))\r\n\r\n // 确保 existingItem.id 存在\r\n let itemId: string | null = null\r\n let itemQty: any | null = null\r\n\r\n if (existingItem instanceof UTSJSONObject) {\r\n itemId = existingItem.getString('id')\r\n itemQty = existingItem.getNumber('quantity')\r\n } else {\r\n const obj = JSON.parse(JSON.stringify(existingItem)) as UTSJSONObject\r\n itemId = obj.getString('id')\r\n itemQty = obj.getNumber('quantity')\r\n }\r\n\r\n if (itemId != null) {\r\n let currentQty = 0\r\n if (typeof itemQty === 'number') {\r\n currentQty = itemQty as number\r\n } else {\r\n const qStr = `${itemQty ?? 0}`\r\n currentQty = parseInt(qStr)\r\n }\r\n const newQty = currentQty + quantity\r\n\r\n response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n quantity: newQty,\r\n merchant_id: realMerchantId,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', itemId)\r\n .execute()\r\n } else {\r\n __f__('error','at utils/supabaseService.uts:2682','购物车已有商品但缺少ID,无法更新. Data:', JSON.stringify(existingItem))\r\n return false\r\n }\r\n } else {\r\n // 商品不存在,添加新记录\r\n const cartPayload = new UTSJSONObject()\r\n cartPayload.set('user_id', userId)\r\n cartPayload.set('product_id', productId)\r\n cartPayload.set('sku_id', realSkuId)\r\n cartPayload.set('quantity', quantity)\r\n cartPayload.set('selected', true)\r\n cartPayload.set('created_at', new Date().toISOString())\r\n cartPayload.set('updated_at', new Date().toISOString())\r\n if (realMerchantId != null) {\r\n cartPayload.set('merchant_id', realMerchantId)\r\n }\r\n \r\n response = await supa\r\n .from('ml_shopping_cart')\r\n .insert(cartPayload)\r\n .execute()\r\n }\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2706','添加商品到购物车失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2712','添加商品到购物车异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新购物车商品数量\r\n async updateCartItemQuantity(cartItemId: string, quantity: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2722','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n if (quantity < 1) {\r\n // 数量小于1时删除商品\r\n return await this.deleteCartItem(cartItemId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n quantity: quantity,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2742','更新购物车商品数量失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2748','更新购物车商品数量异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新购物车商品选中状态\r\n async updateCartItemSelection(cartItemId: string, selected: boolean): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2758','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n selected: selected,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2773','更新购物车商品选中状态失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2779','更新购物车商品选中状态异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 批量更新购物车商品选中状态\r\n async batchUpdateCartItemSelection(cartItemIds: string[], selected: boolean): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2787','[batchUpdateCartItemSelection] 开始批量更新')\r\n __f__('log','at utils/supabaseService.uts:2788','[batchUpdateCartItemSelection] cartItemIds:', JSON.stringify(cartItemIds))\r\n __f__('log','at utils/supabaseService.uts:2789','[batchUpdateCartItemSelection] cartItemIds length:', cartItemIds.length)\r\n __f__('log','at utils/supabaseService.uts:2790','[batchUpdateCartItemSelection] selected:', selected)\r\n \r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2794','用户未登录,无法更新购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .update({\r\n selected: selected,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('user_id', userId)\r\n .in('id', cartItemIds as any[])\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:2808','[batchUpdateCartItemSelection] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:2809','[batchUpdateCartItemSelection] response.data:', JSON.stringify(response.data))\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2812','批量更新购物车商品选中状态失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2818','批量更新购物车商品选中状态异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 删除购物车商品\r\n async deleteCartItem(cartItemId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2826','正在执行删除购物车商品,ID:', cartItemId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2829','用户未登录,无法删除购物车商品')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('id', cartItemId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2841','删除购物车商品失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2847','删除购物车商品异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 批量删除购物车商品\r\n async batchDeleteCartItems(cartItemIds: string[]): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2855','[batchDeleteCartItems] 开始删除, ids:', cartItemIds.length)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2858','用户未登录,无法删除购物车商品')\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:2862','[batchDeleteCartItems] userId:', userId)\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('user_id', userId)\r\n .in('id', cartItemIds as any[])\r\n .delete()\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:2870','[batchDeleteCartItems] response.error:', response.error)\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2872','批量删除购物车商品失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:2876','[batchDeleteCartItems] 删除成功')\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2879','批量删除购物车商品异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 清空购物车\r\n async clearCart(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:2889','用户未登录,无法清空购物车')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_shopping_cart')\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2900','清空购物车失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2906','清空购物车异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 获取当前用户的所有地址\r\n async getAddresses(): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:2915','[getAddresses] 用户未登录,无法获取地址')\r\n return []\r\n }\r\n\r\n try {\r\n __f__('log','at utils/supabaseService.uts:2920','[getAddresses] 查询地址, userId:', userId)\r\n \r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .order('is_default', { ascending: false })\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:2930','[getAddresses] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:2931','[getAddresses] response.data:', JSON.stringify(response.data))\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2934','[getAddresses] 获取地址失败:', response.error)\r\n return []\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n return []\r\n }\r\n \r\n const result: UserAddress[] = []\r\n const rawData = data as any[]\r\n for (let i = 0; i < rawData.length; i++) {\r\n const item = rawData[i]\r\n let itemObj: UTSJSONObject\r\n if (item instanceof UTSJSONObject) {\r\n itemObj = item as UTSJSONObject\r\n } else {\r\n itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n const addr: UserAddress = {\r\n id: itemObj.getString('id') ?? '',\r\n user_id: itemObj.getString('user_id') ?? '',\r\n recipient_name: itemObj.getString('receiver_name') ?? itemObj.getString('recipient_name') ?? '',\r\n phone: itemObj.getString('receiver_phone') ?? itemObj.getString('phone') ?? '',\r\n province: itemObj.getString('province') ?? '',\r\n city: itemObj.getString('city') ?? '',\r\n district: itemObj.getString('district') ?? '',\r\n detail_address: itemObj.getString('address_detail') ?? itemObj.getString('detail_address') ?? '',\r\n is_default: itemObj.getBoolean('is_default') ?? false,\r\n label: itemObj.getString('label') ?? '',\r\n created_at: itemObj.getString('created_at') ?? '',\r\n updated_at: itemObj.getString('updated_at') ?? ''\r\n }\r\n result.push(addr)\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:2971','[getAddresses] 返回地址数量:', result.length)\r\n return result\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:2974','[getAddresses] 获取地址异常:', error)\r\n return []\r\n }\r\n }\r\n\r\n // 根据ID获取地址详情\r\n async getAddressById(addressId: string): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('warn','at utils/supabaseService.uts:2983','用户未登录,无法获取地址')\r\n return null\r\n }\r\n\r\n try {\r\n const query = supa\r\n .from('ml_user_addresses')\r\n .select('*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail')\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .single()\r\n \r\n const response = await query.execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:2998','获取地址详情失败:', response.error)\r\n return null\r\n }\r\n \r\n return response.data as UserAddress\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3004','获取地址详情异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 添加新地址\r\n async addAddress(address: AddAddressParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3014','用户未登录,无法添加地址')\r\n return false\r\n }\r\n\r\n // 如果设置为默认地址,需要先取消其他默认地址\r\n if (address.is_default == true) {\r\n await this.clearDefaultAddress(userId)\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .insert({\r\n user_id: userId,\r\n receiver_name: address.recipient_name,\r\n receiver_phone: address.phone,\r\n province: address.province,\r\n city: address.city,\r\n district: address.district,\r\n address_detail: address.detail_address,\r\n postal_code: address.postal_code ?? null,\r\n is_default: address.is_default ?? false,\r\n created_at: new Date().toISOString(),\r\n updated_at: new Date().toISOString()\r\n })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3041','添加地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3047','添加地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 更新地址\r\n async updateAddress(addressId: string, address: UpdateAddressParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3057','用户未登录,无法更新地址')\r\n return false\r\n }\r\n\r\n // 如果设置为默认地址,需要先取消其他默认地址\r\n if (address.is_default == true) {\r\n await this.clearDefaultAddress(userId)\r\n }\r\n \r\n // 构造更新数据,映射字段名到数据库列名\r\n const updateData = {}\r\n if (address.recipient_name != null) updateData['receiver_name'] = address.recipient_name\r\n if (address.phone != null) updateData['receiver_phone'] = address.phone\r\n if (address.province != null) updateData['province'] = address.province\r\n if (address.city != null) updateData['city'] = address.city\r\n if (address.district != null) updateData['district'] = address.district\r\n if (address.detail_address != null) updateData['address_detail'] = address.detail_address\r\n if (address.postal_code != null) updateData['postal_code'] = address.postal_code\r\n if (address.is_default != null) updateData['is_default'] = address.is_default\r\n if (address.label != null) updateData['label'] = address.label\r\n updateData['updated_at'] = new Date().toISOString()\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .update(updateData)\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3087','更新地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3093','更新地址异常:', error)\r\n return false\r\n }\r\n }\r\n \r\n // 确认收货\r\n async confirmReceipt(orderId: string): Promise {\r\n __f__('log','at utils/supabaseService.uts:3100','[confirmReceipt] 开始确认收货, orderId:', orderId)\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:3103','[confirmReceipt] userId:', userId)\r\n if (userId == null) {\r\n return { success: false, error: '用户未登录' }\r\n }\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('order_status', 4)\r\n updateData.set('delivered_at', new Date().toISOString())\r\n updateData.set('completed_at', new Date().toISOString())\r\n updateData.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3114','[confirmReceipt] 准备更新订单状态, updateData:', JSON.stringify(updateData))\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updateData)\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3123','[confirmReceipt] response.status:', response.status)\r\n __f__('log','at utils/supabaseService.uts:3124','[confirmReceipt] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:3125','[confirmReceipt] response.data:', JSON.stringify(response.data))\r\n \r\n // 检查 HTTP 状态码\r\n if (response.status != null && response.status >= 400) {\r\n // 尝试从 response.data 中提取错误信息\r\n let errorMsg = '请求失败'\r\n if (response.data != null) {\r\n try {\r\n const errorData = response.data as UTSJSONObject\r\n const msg = errorData.getString('message')\r\n if (msg != null) {\r\n errorMsg = msg\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:3142','[confirmReceipt] HTTP错误:', response.status, errorMsg)\r\n return { success: false, error: errorMsg }\r\n }\r\n \r\n if (response.error != null) {\r\n return { success: false, error: response.error.message }\r\n }\r\n \r\n // 检查 response.data 是否包含错误代码\r\n if (response.data != null) {\r\n try {\r\n const respData = response.data as UTSJSONObject\r\n const errorCode = respData.getString('code')\r\n if (errorCode != null) {\r\n const errorMsg = respData.getString('message') ?? '数据库错误'\r\n __f__('log','at utils/supabaseService.uts:3157','[confirmReceipt] 数据库错误:', errorCode, errorMsg)\r\n return { success: false, error: errorMsg }\r\n }\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n \r\n // 检查是否有数据被更新\r\n if (response.data == null || (Array.isArray(response.data) && response.data.length === 0)) {\r\n __f__('log','at utils/supabaseService.uts:3167','[confirmReceipt] 没有数据被更新,可能订单不存在或无权限')\r\n return { success: false, error: '订单不存在或无权限更新' }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3171','[confirmReceipt] 确认收货成功')\r\n return { success: true }\r\n } catch (e: any) {\r\n __f__('error','at utils/supabaseService.uts:3174','[confirmReceipt] 异常:', e)\r\n return { success: false, error: e.message }\r\n }\r\n }\r\n\r\n // 取消订单\r\n async cancelOrder(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 5,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3198','取消订单失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3204','取消订单异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除订单\r\n async deleteOrder(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .delete()\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3225','删除订单失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3231','删除订单异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 确认收货\r\n async confirmOrderReceived(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 4,\r\n shipping_status: 3,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3256','确认收货失败:', response.error)\r\n return false\r\n }\r\n \r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3262','确认收货异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除地址\r\n async deleteAddress(addressId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3270','正在执行删除地址,ID:', addressId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3273','用户未登录,无法删除地址')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .eq('id', addressId)\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3285','删除地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3291','删除地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 清除默认地址(内部使用)\r\n private async clearDefaultAddress(userId: string): Promise {\r\n try {\r\n await supa\r\n .from('ml_user_addresses')\r\n .update({\r\n is_default: false,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('user_id', userId)\r\n .eq('is_default', true)\r\n .execute()\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3309','清除默认地址异常:', error)\r\n }\r\n }\r\n\r\n // 获取用户资料\r\n async getUserProfile(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return null\r\n \r\n // 联合查询 auth user 和 profile\r\n // 由于 Supabase auth table 不可直接访问,这里查询 ml_user_profiles\r\n // 注意:使用 limit(1) 替代 single() 以避免 Android 端类型转换错误\r\n const response = await supa\r\n .from('ml_user_profiles')\r\n .select('*')\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n // 如果不存在 profile,可能只有 auth user,这里暂时返回空或创建默认\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) return null\r\n \r\n // 作为数组处理\r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) return null\r\n \r\n return rawList[0]\r\n } catch (e) {\r\n return null\r\n }\r\n }\r\n \r\n // 创建订单\r\n async createOrder(orderData: CreateOrderParams): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3352','CreateOrder: User not logged in')\r\n return null\r\n }\r\n \r\n const orderNo = 'ML' + Date.now() + Math.floor(Math.random() * 1000)\r\n \r\n let merchantId = orderData.merchant_id\r\n __f__('log','at utils/supabaseService.uts:3359','[CreateOrder] 原始 merchant_id:', merchantId)\r\n if (merchantId == null || merchantId == '' || merchantId == 'unknown') {\r\n __f__('warn','at utils/supabaseService.uts:3361','[CreateOrder] merchant_id 为空或无效,将使用 userId 作为 fallback')\r\n merchantId = userId\r\n }\r\n __f__('log','at utils/supabaseService.uts:3364','[CreateOrder] 最终使用的 merchant_id:', merchantId)\r\n \r\n let shippingAddrStr = '{}'\r\n if (orderData.shipping_address != null) {\r\n if (typeof orderData.shipping_address === 'string') {\r\n shippingAddrStr = orderData.shipping_address\r\n } else {\r\n shippingAddrStr = JSON.stringify(orderData.shipping_address)\r\n }\r\n }\r\n \r\n const orderPayload = new UTSJSONObject()\r\n orderPayload.set('user_id', userId)\r\n orderPayload.set('merchant_id', merchantId)\r\n orderPayload.set('order_no', orderNo)\r\n orderPayload.set('product_amount', orderData.product_amount)\r\n orderPayload.set('shipping_fee', orderData.shipping_fee)\r\n orderPayload.set('total_amount', orderData.total_amount)\r\n orderPayload.set('paid_amount', 0)\r\n orderPayload.set('shipping_address', shippingAddrStr)\r\n orderPayload.set('order_status', 1)\r\n orderPayload.set('payment_status', 1)\r\n orderPayload.set('shipping_status', 1)\r\n orderPayload.set('created_at', new Date().toISOString())\r\n orderPayload.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3390','[CreateOrder] 插入订单数据:', JSON.stringify(orderPayload))\r\n __f__('log','at utils/supabaseService.uts:3391','[CreateOrder] 期望的订单号:', orderNo)\r\n \r\n const orderResponse = await supa\r\n .from('ml_orders')\r\n .insert(orderPayload)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3398','[CreateOrder] insert 完成')\r\n __f__('log','at utils/supabaseService.uts:3399','[CreateOrder] orderResponse.error:', orderResponse.error)\r\n \r\n if (orderResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3402','[CreateOrder] 创建订单失败:', orderResponse.error)\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3406','[CreateOrder] 开始查询新创建的订单, order_no:', orderNo)\r\n \r\n const queryResponse = await supa\r\n .from('ml_orders')\r\n .select('id, order_no')\r\n .eq('order_no', orderNo)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3414','[CreateOrder] queryResponse.error:', queryResponse.error)\r\n __f__('log','at utils/supabaseService.uts:3415','[CreateOrder] queryResponse.data:', JSON.stringify(queryResponse.data))\r\n \r\n if (queryResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3418','[CreateOrder] 查询订单失败:', queryResponse.error)\r\n return null\r\n }\r\n \r\n const queryData = queryResponse.data as any\r\n let orderId = ''\r\n \r\n __f__('log','at utils/supabaseService.uts:3425','[CreateOrder] queryData 类型:', typeof queryData, '是否数组:', Array.isArray(queryData))\r\n \r\n if (Array.isArray(queryData) && queryData.length > 0) {\r\n __f__('log','at utils/supabaseService.uts:3428','[CreateOrder] queryData 长度:', queryData.length)\r\n const firstItemRaw = queryData[0]\r\n __f__('log','at utils/supabaseService.uts:3430','[CreateOrder] firstItemRaw 类型:', typeof firstItemRaw)\r\n \r\n // 将 firstItemRaw 转换为可访问的对象\r\n const firstItemStr = JSON.stringify(firstItemRaw)\r\n const firstItemParsed = JSON.parse(firstItemStr)\r\n if (firstItemParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3436','[CreateOrder] 解析订单数据失败')\r\n return null\r\n }\r\n const firstItem = firstItemParsed as UTSJSONObject\r\n orderId = (firstItem.getString('id') ?? '') as string\r\n __f__('log','at utils/supabaseService.uts:3441','[CreateOrder] 找到新创建的订单, id:', orderId)\r\n } else {\r\n __f__('error','at utils/supabaseService.uts:3443','[CreateOrder] 未找到新创建的订单,插入可能失败')\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3447','[CreateOrder] 订单创建成功, orderId:', orderId)\r\n \r\n const orderItems: UTSJSONObject[] = []\r\n __f__('log','at utils/supabaseService.uts:3450','[CreateOrder] orderData.items 类型:', typeof orderData.items, '是否数组:', Array.isArray(orderData.items))\r\n \r\n if (orderData.items == null) {\r\n __f__('error','at utils/supabaseService.uts:3453','[CreateOrder] orderData.items 为 null!')\r\n return orderId\r\n }\r\n \r\n const rawItems = orderData.items as any[]\r\n __f__('log','at utils/supabaseService.uts:3458','[CreateOrder] rawItems 长度:', rawItems.length)\r\n \r\n if (rawItems.length === 0) {\r\n __f__('warn','at utils/supabaseService.uts:3461','[CreateOrder] rawItems 为空数组,没有商品项需要插入')\r\n return orderId\r\n }\r\n \r\n for(let i = 0; i < rawItems.length; i++) {\r\n const rawItem = rawItems[i]\r\n const itemStr = JSON.stringify(rawItem)\r\n const itemParsed = JSON.parse(itemStr)\r\n if (itemParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3470','[CreateOrder] 商品项解析失败')\r\n continue\r\n }\r\n const item = itemParsed as UTSJSONObject\r\n\r\n const itemJson = new UTSJSONObject()\r\n \r\n let pId = item.get('product_id')\r\n if (pId == null) {\r\n pId = item.get('id')\r\n }\r\n const productId = (pId ?? '') as string\r\n \r\n itemJson.set('order_id', orderId)\r\n itemJson.set('product_id', productId)\r\n \r\n const skuIdVal = item.get('sku_id')\r\n if (skuIdVal != null && skuIdVal !== '') {\r\n itemJson.set('sku_id', skuIdVal as string)\r\n }\r\n \r\n const productName = (item.get('product_name') ?? '') as string\r\n itemJson.set('product_name', productName)\r\n \r\n const sName = item.get('sku_name')\r\n itemJson.set('sku_name', (sName ?? '') as string)\r\n \r\n const specVal = item.get('specifications')\r\n let skuSnapshot = '{}'\r\n if (specVal != null) {\r\n if (typeof specVal === 'string') {\r\n skuSnapshot = specVal as string\r\n } else {\r\n skuSnapshot = JSON.stringify(specVal)\r\n }\r\n }\r\n itemJson.set('sku_snapshot', skuSnapshot)\r\n itemJson.set('specifications', skuSnapshot)\r\n \r\n const img1 = item.get('product_image')\r\n const img2 = item.get('image_url')\r\n let imgUrl = ((img1 ?? img2 ?? '') as string)\r\n while (imgUrl.indexOf('`') >= 0) {\r\n imgUrl = imgUrl.replace('`', '')\r\n }\r\n itemJson.set('image_url', imgUrl)\r\n\r\n const iPriceRaw = item.getNumber('price') ?? 0\r\n const iMemberPrice = item.getNumber('member_price') ?? 0\r\n // 优先使用会员价\r\n const iPrice = (iMemberPrice > 0 && iMemberPrice < iPriceRaw) ? iMemberPrice : iPriceRaw\r\n const iQty = item.getNumber('quantity') ?? 1\r\n itemJson.set('price', iPrice)\r\n itemJson.set('quantity', iQty)\r\n itemJson.set('total_amount', iPrice * iQty)\r\n itemJson.set('created_at', new Date().toISOString())\r\n \r\n orderItems.push(itemJson)\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3530','[CreateOrder] 插入订单项数量:', orderItems.length)\r\n \r\n for (let j: number = 0; j < orderItems.length; j++) {\r\n __f__('log','at utils/supabaseService.uts:3533','[CreateOrder] 开始插入订单项', j)\r\n const itemJson = orderItems[j]\r\n // 将 UTSJSONObject 转换为普通对象\r\n __f__('log','at utils/supabaseService.uts:3536','[CreateOrder] 序列化订单项...')\r\n const itemObjStr = JSON.stringify(itemJson)\r\n __f__('log','at utils/supabaseService.uts:3538','[CreateOrder] 订单项 JSON:', itemObjStr)\r\n const itemObjParsed = JSON.parse(itemObjStr)\r\n __f__('log','at utils/supabaseService.uts:3540','[CreateOrder] itemObjParsed 类型:', typeof itemObjParsed)\r\n if (itemObjParsed == null) {\r\n __f__('error','at utils/supabaseService.uts:3542','[CreateOrder] 订单项转换失败')\r\n continue\r\n }\r\n \r\n // 使用 UTSJSONObject 而不是 Record\r\n const itemObj = itemObjParsed as UTSJSONObject\r\n __f__('log','at utils/supabaseService.uts:3548','[CreateOrder] 执行 insert...')\r\n \r\n const itemsResponse = await supa\r\n .from('ml_order_items')\r\n .insert(itemObj)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3555','[CreateOrder] insert 完成, error:', itemsResponse.error) \r\n if (itemsResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3557','[CreateOrder] 创建订单项失败:', itemsResponse.error)\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3561','[CreateOrder] 订单项创建成功')\r\n \r\n const cartItemIds: string[] = []\r\n for(let i = 0; i < rawItems.length; i++) {\r\n const rawItem = rawItems[i]\r\n const itemParsed = JSON.parse(JSON.stringify(rawItem))\r\n if (itemParsed == null) continue\r\n const item = itemParsed as UTSJSONObject\r\n const iid = item.getString('id')\r\n if (iid != null && iid.length > 10) {\r\n cartItemIds.push(iid)\r\n }\r\n }\r\n \r\n if (cartItemIds.length > 0) {\r\n await this.batchDeleteCartItems(cartItemIds)\r\n }\r\n \r\n return orderId\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3581','[CreateOrder] 创建订单异常:', error)\r\n return null\r\n }\r\n }\r\n\r\n // 批量通过店铺创建订单\r\n async createOrdersByShop(params: ShopOrderParams): Promise {\r\n try {\r\n const orderIds: string[] = []\r\n const groups = params.shopGroups as any[]\r\n \r\n let grandTotal = 0.0\r\n for(let k = 0; k < groups.length; k++) {\r\n const g = JSON.parse(JSON.stringify(groups[k])) as UTSJSONObject\r\n const gItemsRaw = g.get('items')\r\n if (gItemsRaw == null) continue\r\n const gItems = gItemsRaw as any[]\r\n \r\n for(let gi = 0; gi < gItems.length; gi++) {\r\n const it = JSON.parse(JSON.stringify(gItems[gi])) as UTSJSONObject\r\n // 优先使用会员价\r\n let itPrice = it.getNumber('price') ?? 0\r\n const itMemberPrice = it.getNumber('member_price') ?? 0\r\n if (itMemberPrice > 0 && itMemberPrice < itPrice) {\r\n itPrice = itMemberPrice\r\n }\r\n const itQty = it.getNumber('quantity') ?? 1\r\n grandTotal += itPrice * itQty\r\n }\r\n }\r\n \r\n // 为每个店铺创建一个订单\r\n for (let i = 0; i < groups.length; i++) {\r\n const group = JSON.parse(JSON.stringify(groups[i])) as UTSJSONObject\r\n const shopItemsRaw = group.get('items')\r\n if (shopItemsRaw == null) continue\r\n const shopItems = shopItemsRaw as any[]\r\n \r\n let productAmount = 0.0\r\n for(let j = 0; j < shopItems.length; j++) {\r\n const sItem = JSON.parse(JSON.stringify(shopItems[j])) as UTSJSONObject\r\n // 优先使用会员价\r\n let siPrice = sItem.getNumber('price') ?? 0\r\n const siMemberPrice = sItem.getNumber('member_price') ?? 0\r\n if (siMemberPrice > 0 && siMemberPrice < siPrice) {\r\n siPrice = siMemberPrice\r\n }\r\n const siQty = sItem.getNumber('quantity') ?? 1\r\n productAmount += siPrice * siQty\r\n }\r\n \r\n // 简单平摊运费和优惠 (实际逻辑可能更复杂)\r\n const ratio = grandTotal > 0 ? (productAmount / grandTotal) : 0\r\n const shopShippingFee = params.deliveryFee * ratio\r\n const shopDiscount = params.discountAmount * ratio\r\n const shopTotal = productAmount + shopShippingFee - shopDiscount\r\n \r\n const mId = group.getString('merchant_id')\r\n const sId = group.getString('shopId')\r\n const shopName = group.getString('shopName')\r\n\r\n __f__('log','at utils/supabaseService.uts:3642','[createOrdersByShop] 店铺组信息:', {\r\n merchant_id: mId,\r\n shopId: sId,\r\n shopName: shopName\r\n })\r\n\r\n const finalMerchantId = (mId != null && mId != '') ? mId : (sId ?? '')\r\n __f__('log','at utils/supabaseService.uts:3649','[createOrdersByShop] 最终使用的 merchant_id:', finalMerchantId)\r\n \r\n // 将 shopItems 转换为普通对象数组\r\n const plainItems: any[] = []\r\n for(let k = 0; k < shopItems.length; k++) {\r\n const plainItemRaw = JSON.parse(JSON.stringify(shopItems[k]))\r\n if (plainItemRaw != null) {\r\n plainItems.push(plainItemRaw as any)\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:3659','[createOrdersByShop] plainItems 数量:', plainItems.length)\r\n\r\n const orderId = await this.createOrder({\r\n merchant_id: finalMerchantId,\r\n product_amount: productAmount,\r\n shipping_fee: shopShippingFee,\r\n total_amount: shopTotal,\r\n shipping_address: params.shipping_address,\r\n items: plainItems\r\n })\r\n \r\n if (orderId != null) {\r\n orderIds.push(orderId)\r\n } else {\r\n return { success: false, orderIds, error: `店铺 ${shopName} 订单创建失败` }\r\n }\r\n }\r\n \r\n return { success: true, orderIds }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3679','批量创建订单异常:', e)\r\n return { success: false, orderIds: [], error: '系统异常' }\r\n }\r\n }\r\n\r\n // 获取订单列表\r\n async getOrders(status: number = 0): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 关联查询店铺表获取店铺名称\r\n let query = supa\r\n .from('ml_orders')\r\n .select('*, ml_order_items(*), ml_shops(shop_name)')\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n \r\n if (status > 0) {\r\n query = query.eq('order_status', status)\r\n }\r\n \r\n const response = await query.execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3706','[getOrders] response.error:', response.error)\r\n if (response.data != null && Array.isArray(response.data)) {\r\n __f__('log','at utils/supabaseService.uts:3708','[getOrders] 订单数量:', response.data.length)\r\n }\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3712','获取订单列表失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 修复订单项中的图片URL\r\n const orders = data as any[]\r\n for (let i = 0; i < orders.length; i++) {\r\n const order = orders[i]\r\n const orderStr = JSON.stringify(order)\r\n const orderObj = JSON.parse(orderStr) as UTSJSONObject\r\n const itemsRaw = orderObj.get('ml_order_items')\r\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\r\n const items = itemsRaw as any[]\r\n for (let j = 0; j < items.length; j++) {\r\n const item = items[j]\r\n const itemStr = JSON.stringify(item)\r\n const itemObj = JSON.parse(itemStr) as UTSJSONObject\r\n const imgUrl = itemObj.getString('image_url')\r\n if (imgUrl != null) {\r\n itemObj['image_url'] = fixImageUrl(imgUrl)\r\n }\r\n const prodImg = itemObj.getString('product_image')\r\n if (prodImg != null) {\r\n itemObj['product_image'] = fixImageUrl(prodImg)\r\n }\r\n items[j] = itemObj\r\n }\r\n orderObj['ml_order_items'] = items\r\n orders[i] = orderObj\r\n }\r\n }\r\n \r\n return orders\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:3753','获取订单列表异常:', error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n \r\n // 获取订单详情\r\n async getOrderDetail(orderId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3762','[getOrderDetail] 开始获取订单详情,orderId:', orderId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return null\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .select('*, ml_order_items(*)')\r\n .eq('id', orderId)\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3774','[getOrderDetail] response.error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:3775','[getOrderDetail] response.data:', JSON.stringify(response.data))\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3778','[getOrderDetail] 获取订单详情失败:', response.error)\r\n return null\r\n }\r\n \r\n const rawData = response.data\r\n if (rawData == null) {\r\n __f__('log','at utils/supabaseService.uts:3784','[getOrderDetail] 数据为空')\r\n return null\r\n }\r\n \r\n const rawList = rawData as any[]\r\n if (rawList.length == 0) {\r\n __f__('log','at utils/supabaseService.uts:3790','[getOrderDetail] 未找到订单')\r\n return null\r\n }\r\n \r\n const orderData = rawList[0]\r\n __f__('log','at utils/supabaseService.uts:3795','[getOrderDetail] 成功获取订单')\r\n \r\n const orderObj = JSON.parse(JSON.stringify(orderData)) as UTSJSONObject\r\n \r\n const result = new UTSJSONObject()\r\n result.set('id', orderObj.get('id') ?? '')\r\n result.set('order_no', orderObj.get('order_no') ?? '')\r\n result.set('order_status', orderObj.get('order_status') ?? 1)\r\n result.set('user_id', orderObj.get('user_id') ?? '')\r\n result.set('merchant_id', orderObj.get('merchant_id') ?? '')\r\n result.set('product_amount', orderObj.get('product_amount') ?? 0)\r\n result.set('shipping_fee', orderObj.get('shipping_fee') ?? 0)\r\n result.set('total_amount', orderObj.get('total_amount') ?? 0)\r\n result.set('paid_amount', orderObj.get('paid_amount') ?? 0)\r\n result.set('discount_amount', orderObj.get('discount_amount') ?? 0)\r\n result.set('payment_method', orderObj.get('payment_method') ?? '')\r\n result.set('payment_status', orderObj.get('payment_status') ?? 1)\r\n result.set('shipping_status', orderObj.get('shipping_status') ?? 1)\r\n result.set('created_at', orderObj.get('created_at') ?? '')\r\n result.set('paid_at', orderObj.get('paid_at') ?? '')\r\n result.set('shipped_at', orderObj.get('shipped_at') ?? '')\r\n result.set('completed_at', orderObj.get('completed_at') ?? '')\r\n result.set('shipping_address', orderObj.get('shipping_address'))\r\n result.set('ml_order_items', orderObj.get('ml_order_items'))\r\n // 添加物流信息\r\n result.set('tracking_no', orderObj.get('tracking_no') ?? '')\r\n result.set('carrier_name', orderObj.get('carrier_name') ?? '')\r\n result.set('delivered_at', orderObj.get('delivered_at') ?? '')\r\n \r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3826','[getOrderDetail] 获取订单详情异常:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 支付订单\r\n async payOrder(orderId: string, paymentMethod: string, amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3836','[payOrder] 用户未登录')\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3840','[payOrder] 开始更新订单状态, orderId:', orderId, 'userId:', userId)\r\n \r\n const updatePayload = new UTSJSONObject()\r\n updatePayload.set('order_status', 2)\r\n updatePayload.set('payment_status', 1)\r\n updatePayload.set('payment_method', paymentMethod)\r\n updatePayload.set('payment_time', new Date().toISOString())\r\n updatePayload.set('paid_amount', amount)\r\n updatePayload.set('updated_at', new Date().toISOString())\r\n \r\n __f__('log','at utils/supabaseService.uts:3850','[payOrder] 更新数据:', JSON.stringify(updatePayload))\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updatePayload)\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3860','[payOrder] 更新订单失败:', response.error)\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3864','[payOrder] 订单状态更新成功')\r\n\r\n if (paymentMethod === 'balance') {\r\n __f__('log','at utils/supabaseService.uts:3867','[payOrder] 余额支付,暂不扣减余额')\r\n }\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3872','[payOrder] 支付异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 根据ID获取订单信息\r\n async getOrderById(orderId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:3882','[getOrderById] 用户未登录')\r\n return null\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3886','[getOrderById] 查询订单, orderId:', orderId)\r\n \r\n const response = await supa\r\n .from('ml_orders')\r\n .select('*')\r\n .eq('id', orderId)\r\n .eq('user_id', userId)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3896','[getOrderById] 查询订单失败:', response.error)\r\n return null\r\n }\r\n \r\n const data = response.data as any[]\r\n if (data == null || data.length === 0) {\r\n __f__('log','at utils/supabaseService.uts:3902','[getOrderById] 未找到订单')\r\n return null\r\n }\r\n \r\n const orderRaw = data[0]\r\n let orderObj: UTSJSONObject\r\n if (orderRaw instanceof UTSJSONObject) {\r\n orderObj = orderRaw as UTSJSONObject\r\n } else {\r\n orderObj = JSON.parse(JSON.stringify(orderRaw)) as UTSJSONObject\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3914','[getOrderById] 订单数据:', JSON.stringify(orderObj))\r\n return orderObj\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3917','[getOrderById] 查询异常:', e)\r\n return null\r\n }\r\n }\r\n\r\n // 提交售后申请\r\n async createRefund(data: any): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3925','[createRefund] 开始处理退款申请')\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:3928','[createRefund] 用户未登录')\r\n return { success: false, message: '请先登录' }\r\n }\r\n \r\n const d = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n const orderId = d.getString('order_id') ?? ''\r\n const refundType = d.getNumber('refund_type')\r\n const refundReason = d.getString('refund_reason')\r\n const refundAmount = d.getNumber('refund_amount')\r\n const description = d.getString('description')\r\n const images = d.getArray('images')\r\n \r\n __f__('log','at utils/supabaseService.uts:3940','[createRefund] orderId:', orderId)\r\n __f__('log','at utils/supabaseService.uts:3941','[createRefund] refundType:', refundType)\r\n __f__('log','at utils/supabaseService.uts:3942','[createRefund] refundReason:', refundReason)\r\n __f__('log','at utils/supabaseService.uts:3943','[createRefund] refundAmount:', refundAmount)\r\n\r\n const payload = {\r\n user_id: userId,\r\n order_id: orderId,\r\n refund_no: 'REF' + Date.now() + Math.floor(Math.random() * 1000),\r\n refund_type: refundType,\r\n refund_reason: refundReason,\r\n refund_amount: refundAmount,\r\n description: description ?? '',\r\n images: images ?? ([] as any[]),\r\n status: 1 // Pending\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3957','[createRefund] 准备插入 ml_refunds')\r\n const response = await supa\r\n .from('ml_refunds')\r\n .insert(payload)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3963','[createRefund] insert response.error:', response.error)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3966','提交售后失败:', response.error)\r\n return { success: false, message: '提交失败: ' + (response.error.message ?? '未知错误') }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3970','[createRefund] 插入成功,更新订单状态')\r\n // 更新订单状态为退款中\r\n const updateResponse = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 6, // 退款中\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:3981','[createRefund] update response.error:', updateResponse.error)\r\n \r\n if (updateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:3984','更新订单状态失败:', updateResponse.error)\r\n // 不影响退款申请结果,只记录错误\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:3988','[createRefund] 完成,返回成功')\r\n return { success: true, message: '申请提交成功' }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:3991','提交售后异常:', e)\r\n return { success: false, message: '系统异常' }\r\n }\r\n }\r\n\r\n // 取消退款申请\r\n async cancelRefund(orderId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:3999','[cancelRefund] 开始取消退款申请, orderId:', orderId)\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return { success: false, message: '请先登录' }\r\n }\r\n \r\n // 更新退款记录状态为已取消\r\n const refundUpdateResponse = await supa\r\n .from('ml_refunds')\r\n .update({\r\n status: 4, // 已取消\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('order_id', orderId)\r\n .eq('user_id', userId)\r\n .eq('status', 1) // 只能取消待处理的退款\r\n .execute()\r\n \r\n if (refundUpdateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4018','取消退款记录失败:', refundUpdateResponse.error)\r\n return { success: false, message: '取消失败: ' + (refundUpdateResponse.error.message ?? '未知错误') }\r\n }\r\n \r\n // 恢复订单状态为已完成(假设之前是已完成状态)\r\n const orderUpdateResponse = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 4, // 已完成\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n if (orderUpdateResponse.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4033','恢复订单状态失败:', orderUpdateResponse.error)\r\n // 不影响取消退款结果,只记录错误\r\n }\r\n \r\n return { success: true, message: '已取消退款申请' }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4039','取消退款异常:', e)\r\n return { success: false, message: '系统异常' }\r\n }\r\n }\r\n\r\n // 再次购买\r\n async rePurchase(order: any): Promise {\r\n try {\r\n // 将 order 转换为 UTSJSONObject 以安全访问属性\r\n const orderObj = JSON.parse(JSON.stringify(order)) as UTSJSONObject\r\n // 尝试获取 ml_order_items 或 items\r\n let itemsKey = 'ml_order_items'\r\n let itemsRaw = orderObj.get(itemsKey)\r\n \r\n if (itemsRaw == null) {\r\n itemsKey = 'items'\r\n itemsRaw = orderObj.get(itemsKey)\r\n }\r\n \r\n if (itemsRaw == null) return false\r\n \r\n // 断言为数组\r\n const items = itemsRaw as any[]\r\n if (items.length === 0) return false\r\n\r\n // 简单的循环添加,实际项目中可以优化为批量插入\r\n for (let i = 0; i < items.length; i++) {\r\n // 同样,item 也是 UTSJSONObject 或支持访问的对象\r\n const item = JSON.parse(JSON.stringify(items[i])) as UTSJSONObject\r\n const productId = item.getString('product_id') \r\n const skuId = item.getString('sku_id')\r\n // 数量可能是数字或字符串\r\n const quantity = item.getNumber('quantity') ?? 1\r\n \r\n if (productId != null) {\r\n await this.addToCart(productId, quantity, skuId ?? '', '')\r\n }\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4079','rePurchase error', e)\r\n return false\r\n }\r\n }\r\n\r\n // 申请售后 (Legacy/Simple update)\r\n async applyRefund(orderId: string, reason: string): Promise {\r\n try {\r\n // 更新订单状态为 退款中 (6)\r\n const response = await supa\r\n .from('ml_orders')\r\n .update({\r\n order_status: 6,\r\n cancel_reason: reason,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', orderId)\r\n .execute()\r\n \r\n return response.error === null\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n\r\n // 获取售后记录列表\r\n async getRefunds(statusList: number[] = [], page: number = 1, pageSize: number = 10): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n let query = supa\r\n .from('ml_refunds')\r\n .select(`\r\n *,\r\n order:ml_orders!inner (\r\n order_no,\r\n created_at,\r\n ml_order_items (\r\n product_id,\r\n product_name,\r\n image_url\r\n )\r\n )\r\n `)\r\n .eq('user_id', userId)\r\n .order('created_at', { ascending: false })\r\n\r\n if (statusList.length > 0) {\r\n // 显式转换为 any[] 以匹配 .in 方法的参数要求\r\n const anyList = statusList as any[]\r\n query = query.in('status', anyList)\r\n }\r\n\r\n query = query.range((page - 1) * pageSize, page * pageSize - 1)\r\n\r\n const response = await query.execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4141','获取售后列表失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return data\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4154','获取售后列表异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n async deleteRefund(refundId: string): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_refunds')\r\n .delete()\r\n .eq('id', refundId)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4169','删除退款记录失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4175','删除退款记录异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n async getUserBalanceNumber(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4183','[Supabase] getUserBalance userId:', userId)\r\n if (userId == null) return 0\r\n \r\n // 优先查 ml_user_wallets\r\n const walletRes = await supa\r\n .from('ml_user_wallets')\r\n .select('balance')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n \r\n if (walletRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4195','[Supabase] getUserBalance error:', walletRes.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4197','[Supabase] getUserBalance data:', walletRes.data)\r\n }\r\n\r\n if (walletRes.error == null && walletRes.data != null) {\r\n let data = walletRes.data\r\n // 如果是数组,取第一项\r\n if (Array.isArray(data)) {\r\n const arr = data as any[]\r\n if (arr.length > 0) {\r\n data = arr[0]\r\n }\r\n }\r\n\r\n let val:number = 0\r\n if (data instanceof UTSJSONObject) {\r\n val = data.getNumber('balance') ?? 0\r\n // 尝试字符串转换,防止精度丢失导致转为string\r\n if (val === 0 && data.getString('balance') != null) {\r\n val = parseFloat(data.getString('balance')!)\r\n }\r\n return val\r\n } else {\r\n // 对于 Map 或 loose object\r\n const jsonObj = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n val = jsonObj.getNumber('balance') ?? 0\r\n if (val === 0 && jsonObj.getString('balance') != null) {\r\n val = parseFloat(jsonObj.getString('balance')!)\r\n }\r\n return val\r\n }\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4229','[Supabase] Wallet table empty, checking profile...')\r\n\r\n // Fallback to profile\r\n const profile = await this.getUserProfile()\r\n if (profile != null) {\r\n if (profile instanceof UTSJSONObject) {\r\n return profile.getNumber('balance') ?? 0\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(profile)) as UTSJSONObject\r\n return pObj.getNumber('balance') ?? 0\r\n }\r\n }\r\n return 0\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:4243','[Supabase] getUserBalance exception:', e)\r\n return 0\r\n }\r\n }\r\n \r\n // 获取用户积分\r\n async getUserPoints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4252','[Supabase] getUserPoints userId:', userId)\r\n if (userId == null) return 0\r\n \r\n // 查 ml_user_points\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('points')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4264','[Supabase] getUserPoints error:', res.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4266','[Supabase] getUserPoints data:', res.data)\r\n }\r\n\r\n if (res.error == null && res.data != null) {\r\n let data = res.data\r\n // 如果是数组,取第一项\r\n if (Array.isArray(data)) {\r\n const arr = data as any[]\r\n if (arr.length > 0) {\r\n data = arr[0]\r\n }\r\n }\r\n\r\n if (data instanceof UTSJSONObject) {\r\n return data.getNumber('points') ?? 0\r\n } else {\r\n // 尝试转为 UTSJSONObject\r\n const jsonObj = JSON.parse(JSON.stringify(data)) as UTSJSONObject\r\n const val = jsonObj.getNumber('points')\r\n if (val != null) return val\r\n\r\n return 0\r\n }\r\n }\r\n \r\n // Fallback check profile if needed\r\n const profile = await this.getUserProfile()\r\n if (profile != null) {\r\n if (profile instanceof UTSJSONObject) {\r\n return profile.getNumber('points') ?? 0\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(profile)) as UTSJSONObject\r\n return pObj.getNumber('points') ?? 0\r\n }\r\n }\r\n \r\n return 0\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4304','[Supabase] getUserPoints exception:', e)\r\n return 0\r\n }\r\n }\r\n\r\n // 获取钱包交易记录\r\n async getTransactions(page: number = 1, limit: number = 20): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const from = (page - 1) * limit\r\n const to = from + limit - 1\r\n\r\n const response = await supa\r\n .from('ml_wallet_transactions')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .range(from, to)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4330','获取交易记录失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4343','获取交易记录异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n \r\n // 获取积分记录\r\n async getPointRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const res = await supa\r\n .from('ml_point_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (res.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户红包\r\n async getUserRedPackets(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_user_red_packets')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4398','获取红包失败:', res.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4409','获取红包异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户银行卡\r\n async getUserBankCards(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4432','获取银行卡失败:', res.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const data = res.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4443','获取银行卡异常:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 余额充值 (调用 RPC)\r\n async rechargeBalance(amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa.rpc('recharge_wallet', { \r\n p_user_id: userId,\r\n p_amount: amount \r\n })\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4461','充值失败RPC:', res.error)\r\n return false\r\n }\r\n \r\n // 简单判断: 如果没有error且data里success为true\r\n const data = res.data\r\n if (data instanceof UTSJSONObject) {\r\n return data.getBoolean('success') ?? false\r\n }\r\n // 如果返回不是对象,作为失败处理\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4473','充值异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 余额提现 (调用 RPC)\r\n async withdrawBalance(amount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa.rpc('withdraw_wallet', { \r\n p_user_id: userId,\r\n p_amount: amount \r\n })\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4490','提现失败RPC:', res.error)\r\n return false\r\n }\r\n \r\n const data = res.data\r\n if (data instanceof UTSJSONObject) {\r\n return data.getBoolean('success') ?? false\r\n }\r\n return false\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4500','提现异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 添加银行卡\r\n async addBankCard(card: UTSJSONObject): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n // 补全 user_id\r\n card.set('user_id', userId)\r\n \r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .insert(card)\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4520','添加银行卡失败:', res.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4525','添加银行卡异常:', e)\r\n return false\r\n }\r\n }\r\n \r\n // 删除银行卡\r\n async deleteBankCard(cardId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n const res = await supa\r\n .from('ml_user_bank_cards')\r\n .eq('id', cardId)\r\n .eq('user_id', userId!)\r\n .delete()\r\n .execute()\r\n \r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4544','删除银行卡失败:', res.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4549','删除银行卡异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 收藏相关\r\n async checkFavorite(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n __f__('log','at utils/supabaseService.uts:4558',`[CheckFav] Checking for User: ${userId}, Product: ${productId}`)\r\n \r\n if (userId == null) return false\r\n \r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .select('*') // Select all to verify data\r\n .eq('user_id', userId!)\r\n .eq('target_id', productId)\r\n .eq('target_type', '1') // 使用字符串 '1'\r\n .limit(1)\r\n .execute()\r\n \r\n // __f__('log','at utils/supabaseService.uts:4571',`[CheckFav] Response: ${JSON.stringify(response)}`)\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4574',`[CheckFav] Error: ${JSON.stringify(response.error)}`)\r\n return false\r\n }\r\n \r\n const data = response.data\r\n if (Array.isArray(data)) {\r\n if ((data as any[]).length > 0) {\r\n // Double check: ensure the returned item actually matches the product ID\r\n // This guards against potential query filter failures\r\n const item = data[0]\r\n let targetId = ''\r\n if (item instanceof UTSJSONObject) {\r\n targetId = item.getString('target_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n targetId = itemObj.getString('target_id') ?? ''\r\n }\r\n \r\n if (targetId != '' && targetId != productId) {\r\n __f__('error','at utils/supabaseService.uts:4593',`[CheckFav] ID Mismatch! Query ${productId}, Got ${targetId}`)\r\n return false\r\n }\r\n \r\n return true\r\n }\r\n } else if (data instanceof UTSJSONObject) {\r\n // Handle single object return case (though limit(1) usually returns array)\r\n let targetId = data.getString('target_id') ?? ''\r\n if (targetId !== '' && targetId !== productId) {\r\n return false\r\n }\r\n return true\r\n }\r\n \r\n return false\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:4610',`[CheckFav] Exception: ${e}`)\r\n return false\r\n }\r\n }\r\n \r\n async toggleFavorite(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n \r\n __f__('log','at utils/supabaseService.uts:4620',`[ToggleFav] Toggling for ${productId}`)\r\n \r\n // Check if exists\r\n const exists = await this.checkFavorite(productId)\r\n __f__('log','at utils/supabaseService.uts:4624',`[ToggleFav] Current status: ${exists}`)\r\n \r\n if (exists) {\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .eq('user_id', userId!)\r\n .eq('target_id', productId)\r\n .eq('target_type', '1')\r\n .delete()\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4636','取消收藏失败:', response.error)\r\n return true // 仍然是收藏状态\r\n }\r\n return false // 已取消收藏\r\n } else {\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .insert({\r\n user_id: userId,\r\n target_id: productId,\r\n target_type: '1',\r\n created_at: new Date().toISOString()\r\n })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4652','添加收藏失败:', response.error)\r\n return false // 添加失败,仍未收藏\r\n }\r\n return true // 已收藏\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4658','切换收藏状态异常:', e)\r\n // 发生异常时,尝试查询当前状态返回\r\n return await this.checkFavorite(productId)\r\n }\r\n }\r\n \r\n async getFavorites(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 第一步:查询收藏列表\r\n const response = await supa\r\n .from('ml_user_favorites')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('target_type', '1')\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const favorites = response.data as any[]\r\n if (favorites == null || favorites.length === 0) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n // 第二步:收集商品ID\r\n const productIds: string[] = []\r\n for (let i = 0; i < favorites.length; i++) {\r\n let item: any = favorites[i]\r\n let itemObj: UTSJSONObject\r\n if (item instanceof UTSJSONObject) {\r\n itemObj = item as UTSJSONObject\r\n } else {\r\n itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n // target_id 可能是 Integer 或 String 类型,需要安全转换\r\n const targetIdRaw = itemObj.get('target_id')\r\n let pid = ''\r\n if (targetIdRaw != null) {\r\n if (typeof targetIdRaw === 'string') {\r\n pid = targetIdRaw as string\r\n } else if (typeof targetIdRaw === 'number') {\r\n pid = (targetIdRaw as number).toString()\r\n }\r\n }\r\n if (pid !== '') productIds.push(pid)\r\n }\r\n \r\n if (productIds.length === 0) return []\r\n \r\n // 第三步:批量查询商品详情\r\n const anyProductIds = productIds as any[]\r\n const productRes = await supa\r\n .from('ml_products')\r\n .select('id, name, main_image_url, base_price, sale_count')\r\n .in('id', anyProductIds)\r\n .execute()\r\n \r\n if (productRes.error != null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n const products = productRes.data as any[]\r\n const productMap = new Map()\r\n \r\n for (let i = 0; i < products.length; i++) {\r\n // 显式声明类型为 any\r\n let p: any = products[i]\r\n let pid = ''\r\n if (p instanceof UTSJSONObject) {\r\n pid = p.getString('id') ?? ''\r\n } else {\r\n const pObj = JSON.parse(JSON.stringify(p)) as UTSJSONObject\r\n pid = pObj.getString('id') ?? ''\r\n }\r\n if (pid !== '') productMap.set(pid, p)\r\n }\r\n \r\n // 第四步:组合数据\r\n const result: any[] = []\r\n for (let i = 0; i < favorites.length; i++) {\r\n let item: any = favorites[i]\r\n let newItem: UTSJSONObject\r\n \r\n if (item instanceof UTSJSONObject) {\r\n newItem = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n } else {\r\n newItem = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n }\r\n \r\n // target_id 可能是 Integer 或 String 类型,需要安全转换\r\n const targetIdRaw = newItem.get('target_id')\r\n let targetId = ''\r\n if (targetIdRaw != null) {\r\n if (typeof targetIdRaw === 'string') {\r\n targetId = targetIdRaw as string\r\n } else if (typeof targetIdRaw === 'number') {\r\n targetId = (targetIdRaw as number).toString()\r\n }\r\n }\r\n \r\n if (targetId !== '') {\r\n const product = productMap.get(targetId)\r\n if (product != null) {\r\n newItem.set('ml_products', product)\r\n result.push(newItem)\r\n }\r\n }\r\n }\r\n \r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:4779','获取收藏列表异常:', e)\r\n return []\r\n }\r\n }\r\n\r\n // 获取足迹列表\r\n async getFootprints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:4789','[getFootprints] 用户未登录')\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4794','[getFootprints] 查询足迹, userId:', userId)\r\n\r\n // 1. 获取足迹记录\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('updated_at', { ascending: false })\r\n .limit(50)\r\n .execute()\r\n\r\n __f__('log','at utils/supabaseService.uts:4805','[getFootprints] 足迹查询 error:', response.error)\r\n __f__('log','at utils/supabaseService.uts:4806','[getFootprints] 足迹查询 data:', JSON.stringify(response.data))\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:4809','[getFootprints] 获取足迹失败:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const footprints = response.data as any[]\r\n if (footprints == null || footprints.length === 0) {\r\n __f__('log','at utils/supabaseService.uts:4816','[getFootprints] 没有足迹记录')\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:4821','[getFootprints] 足迹记录数量:', footprints.length)\r\n\r\n // 2. 收集商品ID\r\n const productIds: string[] = []\r\n for (let i = 0; i < footprints.length; i++) {\r\n let item = footprints[i]\r\n let pid = ''\r\n if (item instanceof UTSJSONObject) {\r\n pid = item.getString('product_id') ?? ''\r\n } else {\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n pid = itemObj.getString('product_id') ?? ''\r\n }\r\n if (pid !== '' && !productIds.includes(pid)) productIds.push(pid)\r\n }\r\n\r\n if (productIds.length === 0) return []\r\n \r\n const productIdsAny: any[] = []\r\n for(let i=0; i()\r\n for(let i=0; i {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:4954','[addFootprint] 用户未登录')\r\n return false\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:4958','[addFootprint] 添加足迹, userId:', userId, 'productId:', productId)\r\n \r\n // 检查是否已存在\r\n const checkRes = await supa\r\n .from('ml_user_footprints')\r\n .select('id')\r\n .eq('user_id', userId!)\r\n .eq('product_id', productId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:4968','[addFootprint] 检查结果 error:', checkRes.error)\r\n __f__('log','at utils/supabaseService.uts:4969','[addFootprint] 检查结果 data:', JSON.stringify(checkRes.data))\r\n\r\n const checkData = checkRes.data as any[]\r\n const exists = checkData != null && Array.isArray(checkData) && checkData.length > 0\r\n \r\n if (checkRes.error == null && exists) {\r\n __f__('log','at utils/supabaseService.uts:4975','[addFootprint] 足迹已存在,更新时间')\r\n // 更新时间\r\n const updateRes = await supa\r\n .from('ml_user_footprints')\r\n .update({ updated_at: new Date().toISOString() })\r\n .eq('user_id', userId!)\r\n .eq('product_id', productId)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:4983','[addFootprint] 更新结果 error:', updateRes.error)\r\n } else {\r\n __f__('log','at utils/supabaseService.uts:4985','[addFootprint] 足迹不存在,插入新记录')\r\n // 插入新记录\r\n const insertPayload = new UTSJSONObject()\r\n insertPayload.set('user_id', userId!)\r\n insertPayload.set('product_id', productId)\r\n insertPayload.set('created_at', new Date().toISOString())\r\n insertPayload.set('updated_at', new Date().toISOString())\r\n \r\n const insertRes = await supa\r\n .from('ml_user_footprints')\r\n .insert(insertPayload)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:4997','[addFootprint] 插入结果 error:', insertRes.error)\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5001','[addFootprint] 添加足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除单个足迹\r\n async deleteFootprint(productId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:5011','[deleteFootprint] 用户未登录')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .eq('product_id', productId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5023','[deleteFootprint] 删除足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5027','[deleteFootprint] 删除足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5030','[deleteFootprint] 删除足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 批量删除足迹\r\n async deleteFootprints(productIds: string[]): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:5040','[deleteFootprints] 用户未登录')\r\n return false\r\n }\r\n\r\n const idsAny: any[] = []\r\n for (let i = 0; i < productIds.length; i++) {\r\n idsAny.push(productIds[i])\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .in('product_id', idsAny)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5057','[deleteFootprints] 批量删除足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5061','[deleteFootprints] 批量删除足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5064','[deleteFootprints] 批量删除足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 清空所有足迹\r\n async clearFootprints(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('log','at utils/supabaseService.uts:5074','[clearFootprints] 用户未登录')\r\n return false\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_footprints')\r\n .eq('user_id', userId)\r\n .delete()\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5085','[clearFootprints] 清空足迹失败:', response.error)\r\n return false\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:5089','[clearFootprints] 清空足迹成功')\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5092','[clearFootprints] 清空足迹异常:', e)\r\n return false\r\n }\r\n }\r\n\r\n async getAddressList(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .select('*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail')\r\n .eq('user_id', userId!)\r\n .order('is_default', { ascending: false })\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5114','获取地址列表失败:', response.error)\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n return response.data as UserAddress[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5120','获取地址列表异常:', e)\r\n const empty: UserAddress[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 设置默认地址\r\n async setDefaultAddress(addressId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:5131','用户未登录,无法设置默认地址')\r\n return false\r\n }\r\n\r\n // 先取消所有默认地址\r\n await this.clearDefaultAddress(userId!)\r\n\r\n // 设置新的默认地址\r\n const response = await supa\r\n .from('ml_user_addresses')\r\n .update({\r\n is_default: true,\r\n updated_at: new Date().toISOString()\r\n })\r\n .eq('id', addressId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5150','设置默认地址失败:', response.error)\r\n return false\r\n }\r\n\r\n return true\r\n } catch (error) {\r\n __f__('error','at utils/supabaseService.uts:5156','设置默认地址异常:', error)\r\n return false\r\n }\r\n }\r\n\r\n // 获取用户优惠券列表\r\n async getUserCoupons(status: number = 1): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n\r\n // 假设有一个视图或者直接关联 ml_user_coupons 和 ml_coupon_templates\r\n // 这里简化处理,尝试直接从 ml_user_coupons 读取,并且加入 template 信息\r\n // 如果没有 view,可能需要改为两个查询或者使用 left join\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .select('*, template:ml_coupon_templates(name, amount, min_spend)')\r\n .eq('user_id', userId!)\r\n .eq('status', status.toString())\r\n .order('expire_at', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5182','获取优惠券失败:', response.error)\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n\r\n // 安全处理返回数据 - 安卓端可能是 UTSJSONObject 或 UTSArray\r\n const rawData: any[] = []\r\n const respData = response.data\r\n __f__('log','at utils/supabaseService.uts:5190','[getUserCoupons] 原始数据类型:', typeof respData, '是否数组:', Array.isArray(respData))\r\n if (respData != null) {\r\n if (Array.isArray(respData)) {\r\n const arr = respData as any[]\r\n __f__('log','at utils/supabaseService.uts:5194','[getUserCoupons] 数组长度:', arr.length)\r\n for (let i = 0; i < arr.length; i++) {\r\n rawData.push(arr[i])\r\n }\r\n } else if (respData instanceof UTSJSONObject) {\r\n // 单个对象情况,包装成数组\r\n __f__('log','at utils/supabaseService.uts:5200','[getUserCoupons] 单个对象,包装成数组')\r\n rawData.push(respData)\r\n } else {\r\n // 尝试 JSON 转换\r\n try {\r\n const parsed = JSON.parse(JSON.stringify(respData))\r\n __f__('log','at utils/supabaseService.uts:5206','[getUserCoupons] JSON转换后是否数组:', Array.isArray(parsed))\r\n if (Array.isArray(parsed)) {\r\n __f__('log','at utils/supabaseService.uts:5208','[getUserCoupons] 转换后数组长度:', parsed.length)\r\n for (let i = 0; i < parsed.length; i++) {\r\n rawData.push(parsed[i])\r\n }\r\n }\r\n } catch (parseErr) {\r\n __f__('error','at utils/supabaseService.uts:5214','解析优惠券数据异常:', parseErr)\r\n }\r\n }\r\n }\r\n __f__('log','at utils/supabaseService.uts:5218','[getUserCoupons] 最终rawData长度:', rawData.length)\r\n\r\n // 映射数据,将 template 的字段展平\r\n const coupons: UserCoupon[] = []\r\n for (let i = 0; i < rawData.length; i++) {\r\n const item = rawData[i]\r\n let template: any | null = null\r\n let itemId = ''\r\n let itemUserId = ''\r\n let itemTmplId = ''\r\n let itemCode = ''\r\n let itemStatus = 0\r\n let itemRecv = ''\r\n let itemExpire = ''\r\n \r\n if (item instanceof UTSJSONObject) {\r\n template = item.get('template') as any | null\r\n itemId = item.getString('id') ?? ''\r\n itemUserId = item.getString('user_id') ?? ''\r\n itemTmplId = item.getString('template_id') ?? ''\r\n itemCode = item.getString('coupon_code') ?? ''\r\n itemStatus = item.getNumber('status') ?? 0\r\n itemRecv = item.getString('received_at') ?? ''\r\n itemExpire = item.getString('expire_at') ?? ''\r\n } else {\r\n const iObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n template = iObj.get('template') as any | null\r\n itemId = iObj.getString('id') ?? ''\r\n itemUserId = iObj.getString('user_id') ?? ''\r\n itemTmplId = iObj.getString('template_id') ?? ''\r\n itemCode = iObj.getString('coupon_code') ?? ''\r\n itemStatus = iObj.getNumber('status') ?? 0\r\n itemRecv = iObj.getString('received_at') ?? ''\r\n itemExpire = iObj.getString('expire_at') ?? ''\r\n }\r\n \r\n if (template == null) template = new UTSJSONObject()\r\n \r\n let tName = ''\r\n let tAmount = 0\r\n let tMin = 0\r\n \r\n if (template instanceof UTSJSONObject) {\r\n tName = template.getString('name') ?? '优惠券'\r\n tAmount = template.getNumber('amount') ?? 0\r\n tMin = template.getNumber('min_spend') ?? 0\r\n } else {\r\n const tObj = JSON.parse(JSON.stringify(template)) as UTSJSONObject\r\n tName = tObj.getString('name') ?? '优惠券'\r\n tAmount = tObj.getNumber('amount') ?? 0\r\n tMin = tObj.getNumber('min_spend') ?? 0\r\n }\r\n\r\n // 创建真正的 UserCoupon 对象,而不是 UTSJSONObject\r\n const couponItem: UserCoupon = {\r\n id: itemId,\r\n user_id: itemUserId,\r\n template_id: itemTmplId,\r\n coupon_code: itemCode,\r\n status: itemStatus,\r\n received_at: itemRecv,\r\n expire_at: itemExpire,\r\n template_name: tName,\r\n amount: tAmount,\r\n min_spend: tMin\r\n }\r\n \r\n coupons.push(couponItem)\r\n }\r\n\r\n return coupons\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5290','获取优惠券异常:', e)\r\n const empty: UserCoupon[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取可用优惠券数量\r\n async getUserCouponCount(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return 0\r\n\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .select('id', { count: 'exact' })\r\n .eq('user_id', userId!)\r\n .eq('status', '1')\r\n .gt('expire_at', new Date().toISOString())\r\n .limit(1)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n return 0\r\n }\r\n return response.total ?? 0\r\n } catch (e) {\r\n return 0\r\n }\r\n }\r\n\r\n // 获取店铺/商品可用优惠券\r\n async getAvailableCoupons(merchantId: string): Promise {\r\n return this.fetchShopCoupons(merchantId)\r\n }\r\n\r\n // ALIAS for Cache busting: 获取店铺优惠券\r\n async fetchShopCoupons(merchantId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5328','[fetchShopCoupons] 开始获取优惠券,merchantId:', merchantId)\r\n // 查询该商家的优惠券 + 平台通用券 (merchant_id is null)\r\n // 注意:这里简化逻辑,实际可能需要联合查询用户是否已领取\r\n const response = await supa\r\n .from('ml_coupon_templates')\r\n .select('*')\r\n .or(`merchant_id.eq.${merchantId},merchant_id.is.null`)\r\n .eq('status', '1') // 使用字符串 '1'\r\n .gt('end_time', new Date().toISOString())\r\n .order('discount_value', { ascending: false })\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5341','Fetch coupons failed:', response.error)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n \r\n const data = response.data\r\n if (data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n __f__('log','at utils/supabaseService.uts:5351','[fetchShopCoupons] 获取到优惠券数量:', (data as any[]).length)\r\n return data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5354','Fetch coupons error:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 领取优惠券\r\n async claimCoupon(templateId: string, userId: string): Promise {\r\n return this.claimShopCoupon(templateId, userId)\r\n }\r\n\r\n // ALIAS for Cache busting\r\n async claimShopCoupon(templateId: string, userId: string): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5368','Claiming coupon templateId:', templateId, 'userId:', userId)\r\n\r\n // 1. Fetch template details to get merchant_id and validity\r\n const tmplRes = await supa\r\n .from('ml_coupon_templates')\r\n .select('*')\r\n .eq('id', templateId)\r\n .limit(1)\r\n .execute()\r\n \r\n if (tmplRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5379','Claim Coupon: Template query error', tmplRes.error)\r\n return false\r\n }\r\n\r\n // Null check for data\r\n if (tmplRes.data == null) {\r\n __f__('error','at utils/supabaseService.uts:5385','Claim Coupon: Template data response is null')\r\n return false\r\n }\r\n \r\n const dataList = tmplRes.data as any[]\r\n if (dataList.length === 0) {\r\n __f__('error','at utils/supabaseService.uts:5391','Claim Coupon: Template not found (empty list)')\r\n return false\r\n }\r\n\r\n const template = dataList[0]\r\n \r\n // Safe property access\r\n let validDays = 0\r\n let endTimeStr: string | null = null\r\n let merchantId: string | null = null\r\n \r\n if (template instanceof UTSJSONObject) {\r\n validDays = template.getNumber('valid_days') ?? 0\r\n endTimeStr = template.getString('end_time')\r\n merchantId = template.getString('merchant_id')\r\n } else {\r\n const tJson = JSON.parse(JSON.stringify(template)) as UTSJSONObject\r\n validDays = tJson.getNumber('valid_days') ?? 0\r\n endTimeStr = tJson.getString('end_time')\r\n merchantId = tJson.getString('merchant_id')\r\n }\r\n \r\n // Calculate expire_at\r\n let expireAt = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString()\r\n if (validDays > 0) {\r\n expireAt = new Date(Date.now() + (validDays * 24 * 60 * 60 * 1000)).toISOString()\r\n } else if (endTimeStr != null && endTimeStr !== '') {\r\n expireAt = endTimeStr\r\n }\r\n \r\n // Handle UUID fields: Empty string is not valid UUID, must be null\r\n if (merchantId != null && merchantId.length === 0) {\r\n merchantId = null\r\n }\r\n\r\n // 2. Insert into user coupons with merchant_id\r\n const insertData = {\r\n user_id: userId,\r\n template_id: templateId,\r\n merchant_id: merchantId, // Important for shop filtering: null for platform coupons\r\n coupon_code: 'C' + Date.now() + Math.floor(Math.random() * 1000), \r\n status: 1, \r\n expire_at: expireAt,\r\n received_at: new Date().toISOString()\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:5437','Claim Coupon Insert Payload:', JSON.stringify(insertData))\r\n\r\n const response = await supa\r\n .from('ml_user_coupons')\r\n .insert(insertData)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5445','Claim Coupon: Insert failed:', JSON.stringify(response.error))\r\n // 尝试降级:如果 merchant_id 报错,尝试不带 merchant_id (仅调试用,或兼容旧表结构)\r\n if (JSON.stringify(response.error).includes('merchant_id')) {\r\n __f__('log','at utils/supabaseService.uts:5448','Retrying without merchant_id...')\r\n const fallbackData = {\r\n user_id: userId,\r\n template_id: templateId,\r\n coupon_code: 'C' + Date.now() + Math.random().toString().substring(2,6),\r\n status: 1,\r\n expire_at: expireAt,\r\n received_at: new Date().toISOString()\r\n }\r\n const res2 = await supa.from('ml_user_coupons').insert(fallbackData).execute()\r\n if (res2.error == null) return true\r\n }\r\n return false\r\n }\r\n return true\r\n } catch(e) {\r\n __f__('error','at utils/supabaseService.uts:5464','Claim coupon error:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==========================================\r\n // 聊天相关方法\r\n // ==========================================\r\n\r\n // 发送消息\r\n async sendMessage(merchantId: string, content: string, msgType: string = 'text'): Promise {\r\n // 确保 session 有效\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:5478',\"sendMessage failed: user not logged in or session lost\")\r\n return false\r\n }\r\n\r\n try {\r\n // Debug check\r\n // const session = supa.getSession()\r\n // __f__('log','at utils/supabaseService.uts:5485',\"Sending check: UserID\", userId, \"AuthID:\", session.user?.getString('id'))\r\n \r\n const msg = {\r\n sender_id: userId!,\r\n receiver_id: merchantId,\r\n content: content,\r\n msg_type: msgType,\r\n is_read: false,\r\n is_from_user: true\r\n }\r\n \r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .insert(msg)\r\n .execute()\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5502','sendMessage error:', response.error)\r\n return false\r\n }\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5507','sendMessage exception:', e)\r\n return false\r\n }\r\n }\r\n \r\n // 上传聊天图片\r\n async uploadChatImage(filePath: string): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n __f__('error','at utils/supabaseService.uts:5516',\"uploadChatImage failed: user not logged in\")\r\n return ''\r\n }\r\n \r\n try {\r\n // 生成唯一文件名\r\n const timestamp = Date.now()\r\n const randomStr = Math.random().toString(36).substring(2, 8)\r\n const fileName = `chat_${userId}_${timestamp}_${randomStr}.jpg`\r\n const storagePath = `chat-images/${fileName}`\r\n \r\n __f__('log','at utils/supabaseService.uts:5527','[uploadChatImage] 开始上传:', filePath, '->', storagePath)\r\n \r\n const response = await supa.storage\r\n .from('chat')\r\n .upload(storagePath, filePath, {})\r\n \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5534','[uploadChatImage] 上传失败:', response.error)\r\n return ''\r\n }\r\n \r\n // 构建公开访问URL\r\n const publicUrl = `${supa.baseUrl}/storage/v1/object/public/chat/${storagePath}`\r\n __f__('log','at utils/supabaseService.uts:5540','[uploadChatImage] 上传成功:', publicUrl)\r\n return publicUrl\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5543','[uploadChatImage] 上传异常:', e)\r\n return ''\r\n }\r\n }\r\n \r\n // 标记会话已读\r\n async markRead(merchantId: string): Promise {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n try {\r\n const response = await supa\r\n .from('ml_chat_messages')\r\n .update({ is_read: true })\r\n .eq('sender_id', merchantId)\r\n .eq('receiver_id', userId)\r\n .eq('is_read', false)\r\n .execute() \r\n\r\n if (response.error != null) return false\r\n } catch (e) { return false }\r\n return true\r\n }\r\n\r\n // 提交商品评价\r\n async submitProductReviews(reviews: Array): Promise {\r\n try {\r\n for (let i: number = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .insert(review)\r\n .execute() \r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:5576','提交商品评价失败:', response.error)\r\n return false\r\n }\r\n }\r\n return true\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5582','提交商品评价失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // 提交店铺评价\r\n async submitShopReview(review: UTSJSONObject): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_shop_reviews')\r\n .insert(review)\r\n .execute() \r\n return response.error == null\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5596','提交店铺评价失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // 更新订单状态\r\n async updateOrderStatus(orderId: string, status: number): Promise {\r\n try {\r\n const updateData = new UTSJSONObject()\r\n updateData.set('order_status', status)\r\n const response = await supa\r\n .from('ml_orders')\r\n .update(updateData) \r\n .eq('id', orderId)\r\n .execute() \r\n return response.error == null\r\n } catch (e) { \r\n __f__('error','at utils/supabaseService.uts:5613','更新订单状态失败:', e)\r\n return false \r\n }\r\n }\r\n\r\n // ==================== 智能推荐相关API ====================\r\n\r\n // 获取热搜词(全站搜索频率最高的关键词)\r\n async getHotKeywords(limit: number = 10): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_search_history')\r\n .select('keyword')\r\n .order('created_at', { ascending: false })\r\n .limit(100)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n // 统计关键词频率\r\n const keywordCount = new Map()\r\n const rawList = response.data as any[]\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const keyword = safeGetString(itemObj, 'keyword').toLowerCase().trim()\r\n if (keyword.length > 0) {\r\n const count = keywordCount.get(keyword) ?? 0\r\n keywordCount.set(keyword, count + 1)\r\n }\r\n }\r\n \r\n // 按频率排序并返回前N个 - UTS兼容方式\r\n // 将Map转换为数组进行排序\r\n type KeywordEntry = {\r\n keyword: string\r\n count: number\r\n }\r\n const entryArray: KeywordEntry[] = []\r\n \r\n // 使用forEach遍历Map(UTS支持)\r\n keywordCount.forEach((value: number, key: string) => {\r\n entryArray.push({\r\n keyword: key,\r\n count: value\r\n })\r\n })\r\n \r\n // 按count降序排序\r\n entryArray.sort((a: KeywordEntry, b: KeywordEntry): number => {\r\n return b.count - a.count\r\n })\r\n \r\n // 取前limit个并提取关键词\r\n const sortedKeywords: string[] = []\r\n const maxCount = Math.min(entryArray.length, limit)\r\n for (let i = 0; i < maxCount; i++) {\r\n sortedKeywords.push(entryArray[i].keyword)\r\n }\r\n \r\n return sortedKeywords\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5677','获取热搜词失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 获取用户搜索历史\r\n async getUserSearchHistory(limit: number = 10): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return [] as string[]\r\n }\r\n \r\n const response = await supa\r\n .from('ml_search_history')\r\n .select('keyword')\r\n .order('created_at', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n const keywords: string[] = []\r\n const rawList = response.data as any[]\r\n const seen = new Set()\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n const rawUserId = itemObj.get('user_id')\r\n const itemUserId = (typeof rawUserId == 'string') ? (rawUserId as string) : ''\r\n \r\n // 只获取当前用户的搜索历史\r\n if (itemUserId !== userId) continue\r\n \r\n const keyword = safeGetString(itemObj, 'keyword').trim()\r\n if (keyword.length > 0 && !seen.has(keyword)) {\r\n keywords.push(keyword)\r\n seen.add(keyword)\r\n if (keywords.length >= limit) break\r\n }\r\n }\r\n \r\n return keywords\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5724','获取用户搜索历史失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 获取用户浏览历史中的商品分类\r\n async getUserBrowseCategories(limit: number = 5): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return [] as string[]\r\n }\r\n \r\n const response = await supa\r\n .from('ml_browse_history')\r\n .select('product_id')\r\n .order('created_at', { ascending: false })\r\n .limit(20)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n // 获取浏览过的商品ID\r\n const productIds: string[] = []\r\n const rawList = response.data as any[]\r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const itemObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 user_id\r\n const rawUserId = itemObj.get('user_id')\r\n const itemUserId = (typeof rawUserId == 'string') ? (rawUserId as string) : ''\r\n if (itemUserId !== userId) continue\r\n \r\n const productId = safeGetString(itemObj, 'product_id')\r\n if (productId.length > 0) {\r\n productIds.push(productId)\r\n }\r\n }\r\n \r\n if (productIds.length === 0) {\r\n return [] as string[]\r\n }\r\n \r\n // 查询这些商品的分类\r\n const prodResponse = await supa\r\n .from('ml_products')\r\n .select('category_id')\r\n .limit(50)\r\n .execute()\r\n \r\n if (prodResponse.error != null || prodResponse.data == null) {\r\n return [] as string[]\r\n }\r\n \r\n const categoryIds: string[] = []\r\n const prodList = prodResponse.data as any[]\r\n for (let i = 0; i < prodList.length; i++) {\r\n const prodItem = prodList[i]\r\n const prodObj = JSON.parse(JSON.stringify(prodItem)) as UTSJSONObject\r\n const prodId = safeGetString(prodObj, 'id')\r\n \r\n // 只统计浏览过的商品\r\n let found = false\r\n for (let j = 0; j < productIds.length; j++) {\r\n if (productIds[j] == prodId) {\r\n found = true\r\n break\r\n }\r\n }\r\n if (!found) continue\r\n \r\n const catId = safeGetString(prodObj, 'category_id')\r\n if (catId.length > 0 && categoryIds.indexOf(catId) < 0) {\r\n categoryIds.push(catId)\r\n if (categoryIds.length >= limit) break\r\n }\r\n }\r\n \r\n return categoryIds\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5807','获取用户浏览分类失败:', e)\r\n return [] as string[]\r\n }\r\n }\r\n\r\n // 智能推荐:综合用户搜索历史、浏览历史、热销商品\r\n async getSmartRecommendations(limit: number = 10): Promise {\r\n try {\r\n __f__('log','at utils/supabaseService.uts:5815','[getSmartRecommendations] 开始获取智能推荐...')\r\n \r\n const products: Product[] = []\r\n const addedIds = new Set()\r\n \r\n // 1. 根据用户搜索历史推荐商品(权重最高)\r\n const searchHistory = await this.getUserSearchHistory(5)\r\n __f__('log','at utils/supabaseService.uts:5822','[getSmartRecommendations] 用户搜索历史:', searchHistory)\r\n \r\n if (searchHistory.length > 0) {\r\n // 根据搜索关键词查找商品\r\n const keywordProducts = await this.searchProductsByKeywords(searchHistory, limit)\r\n for (let i = 0; i < keywordProducts.length; i++) {\r\n const prod = keywordProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n }\r\n }\r\n }\r\n \r\n // 2. 根据用户浏览历史推荐相似分类商品\r\n if (products.length < limit) {\r\n const browseCategories = await this.getUserBrowseCategories(3)\r\n __f__('log','at utils/supabaseService.uts:5839','[getSmartRecommendations] 用户浏览分类:', browseCategories)\r\n \r\n if (browseCategories.length > 0) {\r\n const categoryProducts = await this.getProductsByCategories(browseCategories, limit - products.length)\r\n for (let i = 0; i < categoryProducts.length; i++) {\r\n const prod = categoryProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 3. 补充热销商品\r\n if (products.length < limit) {\r\n const hotProducts = await this.getHotProducts(limit - products.length + 5)\r\n for (let i = 0; i < hotProducts.length; i++) {\r\n const prod = hotProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n // 4. 如果还不够,用普通商品补充\r\n if (products.length < limit) {\r\n const moreProducts = await this.getProductsByPrice(limit - products.length + 5, false)\r\n for (let i = 0; i < moreProducts.length; i++) {\r\n const prod = moreProducts[i]\r\n if (!addedIds.has(prod.id)) {\r\n products.push(prod)\r\n addedIds.add(prod.id)\r\n if (products.length >= limit) break\r\n }\r\n }\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:5879','[getSmartRecommendations] 返回商品数量:', products.length)\r\n return products.slice(0, limit)\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5882','获取智能推荐失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 根据关键词列表搜索商品\r\n async searchProductsByKeywords(keywords: string[], limit: number): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as Product[]\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = response.data as any[]\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = prodObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 检查是否匹配任何关键词\r\n const name = safeGetString(prodObj, 'name').toLowerCase()\r\n const desc = safeGetString(prodObj, 'description').toLowerCase()\r\n \r\n let matched = false\r\n for (let j = 0; j < keywords.length; j++) {\r\n const keyword = keywords[j].toLowerCase()\r\n if (name.indexOf(keyword) >= 0 || desc.indexOf(keyword) >= 0) {\r\n matched = true\r\n break\r\n }\r\n }\r\n \r\n if (!matched) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n return products\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5937','根据关键词搜索商品失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 根据分类列表获取商品\r\n async getProductsByCategories(categoryIds: string[], limit: number): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_products_detail_view')\r\n .select('id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot')\r\n .order('sale_count', { ascending: false })\r\n .limit(limit * 2)\r\n .execute()\r\n \r\n if (response.error != null || response.data == null) {\r\n return [] as Product[]\r\n }\r\n \r\n const products: Product[] = []\r\n const rawList = response.data as any[]\r\n \r\n for (let i = 0; i < rawList.length; i++) {\r\n const item = rawList[i]\r\n const prodObj = JSON.parse(JSON.stringify(item)) as UTSJSONObject\r\n \r\n // 手动过滤 status\r\n const rawStatus = prodObj.get('status')\r\n let statusNum: number = 0\r\n if (typeof rawStatus == 'number') {\r\n statusNum = rawStatus as number\r\n }\r\n if (statusNum !== 1) continue\r\n \r\n // 手动过滤 category_id\r\n const rawCatId = prodObj.get('category_id')\r\n const itemCatId = (typeof rawCatId == 'string') ? (rawCatId as string) : ''\r\n \r\n let matched = false\r\n for (let j = 0; j < categoryIds.length; j++) {\r\n if (itemCatId == categoryIds[j]) {\r\n matched = true\r\n break\r\n }\r\n }\r\n \r\n if (!matched) continue\r\n \r\n products.push(parseProductFromRaw(item))\r\n if (products.length >= limit) break\r\n }\r\n \r\n return products\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:5991','根据分类获取商品失败:', e)\r\n return [] as Product[]\r\n }\r\n }\r\n\r\n // 记录用户搜索行为\r\n async recordSearch(keyword: string, resultCount: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n const searchRecord = new UTSJSONObject()\r\n searchRecord.set('keyword', keyword)\r\n searchRecord.set('result_count', resultCount)\r\n if (userId != null) {\r\n searchRecord.set('user_id', userId)\r\n }\r\n \r\n await supa\r\n .from('ml_search_history')\r\n .insert(searchRecord)\r\n .execute()\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6012','记录搜索失败:', e)\r\n }\r\n }\r\n\r\n // 记录用户浏览行为\r\n async recordBrowse(productId: string, duration: number = 0): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return\r\n \r\n const browseRecord = new UTSJSONObject()\r\n browseRecord.set('user_id', userId)\r\n browseRecord.set('product_id', productId)\r\n browseRecord.set('browse_duration', duration)\r\n browseRecord.set('created_at', new Date().toISOString())\r\n \r\n // UTS Android不支持upsert,使用insert\r\n await supa\r\n .from('ml_browse_history')\r\n .insert(browseRecord)\r\n .execute()\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6034','记录浏览失败:', e)\r\n }\r\n }\r\n\r\n // ==================== 签到相关API ====================\r\n\r\n // 用户签到\r\n async signin(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('points', 0)\r\n result.set('continuous_days', 0)\r\n result.set('bonus_points', 0)\r\n result.set('total_points', 0)\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n const today = new Date()\r\n const todayStr = today.toISOString().split('T')[0]\r\n const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000)\r\n const yesterdayStr = yesterday.toISOString().split('T')[0]\r\n\r\n // 检查今天是否已签到\r\n const checkRes = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', todayStr)\r\n .execute()\r\n\r\n if (checkRes.error != null) {\r\n result.set('message', '查询签到状态失败')\r\n return result\r\n }\r\n\r\n const checkData = checkRes.data as any[]\r\n if (checkData != null && checkData.length > 0) {\r\n result.set('message', '今天已签到')\r\n return result\r\n }\r\n\r\n // 查询昨天是否签到,计算连续天数\r\n const yesterdayRes = await supa\r\n .from('ml_signin_records')\r\n .select('continuous_days')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', yesterdayStr)\r\n .execute()\r\n\r\n let continuousDays = 1\r\n if (yesterdayRes.error == null && yesterdayRes.data != null) {\r\n const yData = yesterdayRes.data as any[]\r\n if (yData.length > 0) {\r\n const yItem = yData[0]\r\n let yDays = 0\r\n if (yItem instanceof UTSJSONObject) {\r\n yDays = yItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const yObj = JSON.parse(JSON.stringify(yItem)) as UTSJSONObject\r\n yDays = yObj.getNumber('continuous_days') ?? 0\r\n }\r\n continuousDays = yDays + 1\r\n }\r\n }\r\n\r\n // 计算积分\r\n let pointsEarned = 5 // 每日签到基础积分\r\n let bonusPoints = 0\r\n\r\n if (continuousDays >= 30) {\r\n bonusPoints = 100\r\n } else if (continuousDays >= 7) {\r\n bonusPoints = 20\r\n }\r\n\r\n const totalPointsEarned = pointsEarned + bonusPoints\r\n\r\n // 插入签到记录\r\n const signinRecord = new UTSJSONObject()\r\n signinRecord.set('user_id', userId!)\r\n signinRecord.set('signin_date', todayStr)\r\n signinRecord.set('points_earned', pointsEarned)\r\n signinRecord.set('bonus_points', bonusPoints)\r\n signinRecord.set('continuous_days', continuousDays)\r\n\r\n const insertRes = await supa\r\n .from('ml_signin_records')\r\n .insert(signinRecord)\r\n .execute()\r\n\r\n if (insertRes.error != null) {\r\n result.set('message', '签到失败')\r\n return result\r\n }\r\n\r\n // 更新用户积分\r\n await this.addPoints(userId!, totalPointsEarned, 'signin', '每日签到')\r\n\r\n // 获取最新积分\r\n const newPoints = await this.getUserPoints()\r\n\r\n result.set('success', true)\r\n result.set('points', pointsEarned)\r\n result.set('continuous_days', continuousDays)\r\n result.set('bonus_points', bonusPoints)\r\n result.set('total_points', newPoints)\r\n result.set('message', '签到成功')\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6150','签到异常:', e)\r\n result.set('message', '签到异常')\r\n return result\r\n }\r\n }\r\n\r\n // 获取签到记录(当月)\r\n async getSigninRecords(year: number, month: number): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const startDate = `${year}-${month.toString().padStart(2, '0')}-01`\r\n const endDate = month === 12 \r\n ? `${year + 1}-01-01` \r\n : `${year}-${(month + 1).toString().padStart(2, '0')}-01`\r\n\r\n const response = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .gte('signin_date', startDate)\r\n .lt('signin_date', endDate)\r\n .order('signin_date', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6186','获取签到记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取今日签到状态\r\n async getTodaySigninStatus(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('signed', false)\r\n result.set('continuous_days', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const today = new Date().toISOString().split('T')[0]\r\n\r\n // 检查今天是否签到\r\n const todayRes = await supa\r\n .from('ml_signin_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('signin_date', today)\r\n .execute()\r\n\r\n if (todayRes.error == null && todayRes.data != null) {\r\n const tData = todayRes.data as any[]\r\n if (tData.length > 0) {\r\n const tItem = tData[0]\r\n let cDays = 0\r\n if (tItem instanceof UTSJSONObject) {\r\n cDays = tItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const tObj = JSON.parse(JSON.stringify(tItem)) as UTSJSONObject\r\n cDays = tObj.getNumber('continuous_days') ?? 0\r\n }\r\n result.set('signed', true)\r\n result.set('continuous_days', cDays)\r\n return result\r\n }\r\n }\r\n\r\n // 今天未签到,获取最近的连续签到天数\r\n const lastRes = await supa\r\n .from('ml_signin_records')\r\n .select('continuous_days, signin_date')\r\n .eq('user_id', userId!)\r\n .order('signin_date', { ascending: false })\r\n .limit(1)\r\n .execute()\r\n\r\n if (lastRes.error == null && lastRes.data != null) {\r\n const lData = lastRes.data as any[]\r\n if (lData.length > 0) {\r\n const lItem = lData[0]\r\n let lastDate = ''\r\n let lastDays = 0\r\n if (lItem instanceof UTSJSONObject) {\r\n lastDate = lItem.getString('signin_date') ?? ''\r\n lastDays = lItem.getNumber('continuous_days') ?? 0\r\n } else {\r\n const lObj = JSON.parse(JSON.stringify(lItem)) as UTSJSONObject\r\n lastDate = lObj.getString('signin_date') ?? ''\r\n lastDays = lObj.getNumber('continuous_days') ?? 0\r\n }\r\n\r\n const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString().split('T')[0]\r\n if (lastDate === yesterday) {\r\n result.set('continuous_days', lastDays)\r\n }\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6262','获取签到状态失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // ==================== 积分兑换相关API ====================\r\n\r\n // 获取积分兑换商品列表\r\n async getPointProducts(): Promise {\r\n try {\r\n const response = await supa\r\n .from('ml_point_products')\r\n .select('*')\r\n .eq('status', 1)\r\n .gt('stock', 0)\r\n .order('sort_order', { ascending: true })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6287','获取积分商品失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 积分兑换\r\n async exchangeProduct(productId: string, quantity: number, addressSnapshot: UTSJSONObject | null): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n // 获取商品信息\r\n const productRes = await supa\r\n .from('ml_point_products')\r\n .select('*')\r\n .eq('id', productId)\r\n .single()\r\n .execute()\r\n\r\n if (productRes.error != null || productRes.data == null) {\r\n result.set('message', '商品不存在')\r\n return result\r\n }\r\n\r\n const productRaw = productRes.data\r\n let pointsRequired = 0\r\n let stock = 0\r\n let productType = ''\r\n \r\n // 检查是否是数组,如果是则取第一个元素\r\n let productObj: UTSJSONObject | null = null\r\n if (Array.isArray(productRaw)) {\r\n const arr = productRaw as any[]\r\n if (arr.length > 0) {\r\n const firstItem = arr[0]\r\n if (firstItem instanceof UTSJSONObject) {\r\n productObj = firstItem\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(firstItem)) as UTSJSONObject\r\n }\r\n }\r\n } else {\r\n if (productRaw instanceof UTSJSONObject) {\r\n productObj = productRaw\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(productRaw)) as UTSJSONObject\r\n }\r\n }\r\n \r\n // 使用 UTSJSONObject 方法访问属性\r\n if (productObj != null) {\r\n pointsRequired = productObj.getNumber('points_required') ?? 0\r\n stock = productObj.getNumber('stock') ?? 0\r\n productType = productObj.getString('product_type') ?? ''\r\n }\r\n\r\n const totalPoints = pointsRequired * quantity\r\n\r\n // 检查库存\r\n if (stock < quantity) {\r\n result.set('message', '库存不足')\r\n return result\r\n }\r\n\r\n // 检查积分\r\n const userPoints = await this.getUserPoints()\r\n if (userPoints < totalPoints) {\r\n result.set('message', '积分不足')\r\n return result\r\n }\r\n\r\n // 创建兑换记录\r\n const exchangeRecord = new UTSJSONObject()\r\n exchangeRecord.set('user_id', userId!)\r\n exchangeRecord.set('product_id', productId)\r\n exchangeRecord.set('quantity', quantity)\r\n exchangeRecord.set('points_used', totalPoints)\r\n exchangeRecord.set('status', 0)\r\n if (addressSnapshot != null && productType === 'physical') {\r\n exchangeRecord.set('address_snapshot', JSON.stringify(addressSnapshot))\r\n }\r\n\r\n const insertRes = await supa\r\n .from('ml_point_exchanges')\r\n .insert(exchangeRecord)\r\n .execute()\r\n\r\n if (insertRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6383','[exchangeProduct] 创建兑换记录失败:', insertRes.error)\r\n result.set('message', '兑换失败')\r\n return result\r\n }\r\n \r\n __f__('log','at utils/supabaseService.uts:6388','[exchangeProduct] 兑换记录创建成功')\r\n\r\n // 扣减库存\r\n __f__('log','at utils/supabaseService.uts:6391','[exchangeProduct] 准备扣减库存')\r\n __f__('log','at utils/supabaseService.uts:6392','[exchangeProduct] productId 类型:', typeof productId)\r\n __f__('log','at utils/supabaseService.uts:6393','[exchangeProduct] productId 值:', productId)\r\n __f__('log','at utils/supabaseService.uts:6394','[exchangeProduct] 当前库存:', stock, ', 扣减数量:', quantity)\r\n \r\n // 使用 UTSJSONObject 替代 Record\r\n const stockUpdateData = new UTSJSONObject()\r\n stockUpdateData.set('stock', stock - quantity)\r\n \r\n __f__('log','at utils/supabaseService.uts:6400','[exchangeProduct] stockUpdateData:', stockUpdateData)\r\n __f__('log','at utils/supabaseService.uts:6401','[exchangeProduct] stockUpdateData 类型:', typeof stockUpdateData)\r\n \r\n // 先查询确认商品存在\r\n const checkProduct = await supa\r\n .from('ml_point_products')\r\n .select('id, stock')\r\n .eq('id', productId)\r\n .execute()\r\n __f__('log','at utils/supabaseService.uts:6409','[exchangeProduct] 查询商品结果:', checkProduct.data, 'error:', checkProduct.error)\r\n \r\n const stockUpdateRes = await supa\r\n .from('ml_point_products')\r\n .update(stockUpdateData)\r\n .eq('id', productId)\r\n .execute()\r\n \r\n __f__('log','at utils/supabaseService.uts:6417','[exchangeProduct] 库存更新结果 error:', stockUpdateRes.error)\r\n __f__('log','at utils/supabaseService.uts:6418','[exchangeProduct] 库存更新结果 data:', stockUpdateRes.data)\r\n \r\n if (stockUpdateRes.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6421','[exchangeProduct] 扣减库存失败:', stockUpdateRes.error)\r\n }\r\n\r\n // 扣减积分\r\n __f__('log','at utils/supabaseService.uts:6425','[exchangeProduct] 准备扣减积分, userId:', userId, ', 积分:', totalPoints)\r\n const deductResult = await this.deductPoints(userId!, totalPoints, 'redeem', '积分兑换商品')\r\n __f__('log','at utils/supabaseService.uts:6427','[exchangeProduct] 积分扣减结果:', deductResult)\r\n \r\n if (!deductResult) {\r\n __f__('error','at utils/supabaseService.uts:6430','[exchangeProduct] 扣减积分失败')\r\n }\r\n\r\n __f__('log','at utils/supabaseService.uts:6433','[exchangeProduct] 兑换流程完成')\r\n result.set('success', true)\r\n result.set('message', '兑换成功')\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6438','积分兑换异常:', e)\r\n result.set('message', '兑换异常')\r\n return result\r\n }\r\n }\r\n\r\n // 获取兑换记录\r\n async getExchangeRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_point_exchanges')\r\n .select('*, product:ml_point_products(name, image_url, product_type)')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return response.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6467','获取兑换记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 评价相关API ====================\r\n\r\n // 获取商品评价列表\r\n async getProductReviews(productId: string, page: number = 1, limit: number = 10, rating: number = 0, hasImage: boolean = false): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('total', 0)\r\n result.set('page', page)\r\n result.set('limit', limit)\r\n result.set('data', [] as any[])\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n \r\n let query = supa\r\n .from('ml_product_reviews')\r\n .select('*, user:auth.users!ml_product_reviews_user_id_fkey(raw_user_meta_data)', { count: 'exact' })\r\n .eq('product_id', productId)\r\n\r\n if (rating > 0) {\r\n query = query.eq('rating', rating)\r\n }\r\n\r\n if (hasImage) {\r\n query = query.neq('images', '[]')\r\n }\r\n\r\n const offset = (page - 1) * limit\r\n const response = await query\r\n .order('created_at', { ascending: false })\r\n .range(offset, offset + limit - 1)\r\n .execute()\r\n\r\n if (response.error != null) {\r\n __f__('error','at utils/supabaseService.uts:6506','获取评价列表失败:', response.error)\r\n return result\r\n }\r\n\r\n const total = response.total ?? 0\r\n const reviews = response.data as any[]\r\n\r\n // 处理评价数据\r\n const processedReviews: any[] = []\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const processed = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n\r\n // 处理用户信息\r\n const userRaw = processed.get('user')\r\n let userName = '匿名用户'\r\n let userAvatar = ''\r\n\r\n if (userRaw != null) {\r\n let userData: UTSJSONObject\r\n if (userRaw instanceof UTSJSONObject) {\r\n userData = userRaw as UTSJSONObject\r\n } else {\r\n userData = JSON.parse(JSON.stringify(userRaw)) as UTSJSONObject\r\n }\r\n const metaData = userData.get('raw_user_meta_data')\r\n if (metaData != null) {\r\n let metaObj: UTSJSONObject\r\n if (metaData instanceof UTSJSONObject) {\r\n metaObj = metaData as UTSJSONObject\r\n } else {\r\n metaObj = JSON.parse(JSON.stringify(metaData)) as UTSJSONObject\r\n }\r\n userName = metaObj.getString('nickname') ?? metaObj.getString('name') ?? '匿名用户'\r\n userAvatar = metaObj.getString('avatar_url') ?? ''\r\n }\r\n }\r\n\r\n // 检查是否匿名\r\n const isAnonymous = processed.getBoolean('is_anonymous') ?? false\r\n if (isAnonymous) {\r\n userName = '匿名用户'\r\n userAvatar = ''\r\n }\r\n\r\n processed.set('user_name', userName)\r\n processed.set('user_avatar', userAvatar)\r\n\r\n // 检查当前用户是否点赞\r\n let isLiked = false\r\n if (userId != null) {\r\n const likeRes = await supa\r\n .from('ml_review_likes')\r\n .select('id')\r\n .eq('review_id', processed.getString('id') ?? '')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n if (likeRes.error == null && likeRes.data != null) {\r\n const likeData = likeRes.data as any[]\r\n isLiked = likeData.length > 0\r\n }\r\n }\r\n processed.set('is_liked', isLiked)\r\n\r\n processedReviews.push(processed)\r\n }\r\n\r\n result.set('total', total)\r\n result.set('data', processedReviews)\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6578','获取评价列表异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取商品评价统计\r\n async getReviewStats(productId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('total_count', 0)\r\n result.set('avg_rating', 0)\r\n result.set('good_rate', 0)\r\n result.set('rating_distribution', new UTSJSONObject())\r\n result.set('tags', [] as any[])\r\n\r\n try {\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .select('rating')\r\n .eq('product_id', productId)\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n return result\r\n }\r\n\r\n const reviews = response.data as any[]\r\n const totalCount = reviews.length\r\n\r\n if (totalCount === 0) return result\r\n\r\n let totalRating = 0\r\n let goodCount = 0\r\n const distribution: Map = new Map()\r\n distribution.set(1, 0)\r\n distribution.set(2, 0)\r\n distribution.set(3, 0)\r\n distribution.set(4, 0)\r\n distribution.set(5, 0)\r\n\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n let rating = 0\r\n if (review instanceof UTSJSONObject) {\r\n rating = review.getNumber('rating') ?? 0\r\n } else {\r\n const rObj = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n rating = rObj.getNumber('rating') ?? 0\r\n }\r\n\r\n totalRating += rating\r\n if (rating >= 4) goodCount++\r\n\r\n const currentCount = distribution.get(rating) ?? 0\r\n distribution.set(rating, currentCount + 1)\r\n }\r\n\r\n const avgRating = Math.round((totalRating / totalCount) * 10) / 10\r\n const goodRate = Math.round((goodCount / totalCount) * 100)\r\n\r\n const distObj = new UTSJSONObject()\r\n distribution.forEach((value: number, key: number) => {\r\n distObj.set(key.toString(), value)\r\n })\r\n\r\n result.set('total_count', totalCount)\r\n result.set('avg_rating', avgRating)\r\n result.set('good_rate', goodRate)\r\n result.set('rating_distribution', distObj)\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6649','获取评价统计异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 评价点赞\r\n async toggleReviewLike(reviewId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('is_liked', false)\r\n result.set('like_count', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n return result\r\n }\r\n\r\n // 检查是否已点赞\r\n const checkRes = await supa\r\n .from('ml_review_likes')\r\n .select('id')\r\n .eq('review_id', reviewId)\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n let isLiked = false\r\n if (checkRes.error == null && checkRes.data != null) {\r\n const checkData = checkRes.data as any[]\r\n isLiked = checkData.length > 0\r\n }\r\n\r\n if (isLiked) {\r\n // 取消点赞\r\n await supa\r\n .from('ml_review_likes')\r\n .eq('review_id', reviewId)\r\n .eq('user_id', userId!)\r\n .delete()\r\n .execute()\r\n\r\n // 更新点赞数 - 直接查询并更新\r\n const currentCountRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n \r\n if (currentCountRes.error == null && currentCountRes.data != null) {\r\n let currentCount = 0\r\n if (currentCountRes.data instanceof UTSJSONObject) {\r\n currentCount = currentCountRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const countObj = JSON.parse(JSON.stringify(currentCountRes.data)) as UTSJSONObject\r\n currentCount = countObj.getNumber('like_count') ?? 0\r\n }\r\n \r\n const updateData = new UTSJSONObject()\r\n updateData.set('like_count', Math.max(0, currentCount - 1))\r\n await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .execute()\r\n }\r\n\r\n result.set('is_liked', false)\r\n } else {\r\n // 添加点赞\r\n const likeRecord = new UTSJSONObject()\r\n likeRecord.set('review_id', reviewId)\r\n likeRecord.set('user_id', userId!)\r\n\r\n await supa\r\n .from('ml_review_likes')\r\n .insert(likeRecord)\r\n .execute()\r\n\r\n // 更新点赞数 - 直接查询并更新\r\n const currentCountRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n \r\n if (currentCountRes.error == null && currentCountRes.data != null) {\r\n let currentCount = 0\r\n if (currentCountRes.data instanceof UTSJSONObject) {\r\n currentCount = currentCountRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const countObj = JSON.parse(JSON.stringify(currentCountRes.data)) as UTSJSONObject\r\n currentCount = countObj.getNumber('like_count') ?? 0\r\n }\r\n \r\n const updateData = new UTSJSONObject()\r\n updateData.set('like_count', currentCount + 1)\r\n await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .execute()\r\n }\r\n\r\n result.set('is_liked', true)\r\n }\r\n\r\n // 获取最新点赞数\r\n const reviewRes = await supa\r\n .from('ml_product_reviews')\r\n .select('like_count')\r\n .eq('id', reviewId)\r\n .single()\r\n .execute()\r\n\r\n if (reviewRes.error == null && reviewRes.data != null) {\r\n let likeCount = 0\r\n if (reviewRes.data instanceof UTSJSONObject) {\r\n likeCount = reviewRes.data.getNumber('like_count') ?? 0\r\n } else {\r\n const rObj = JSON.parse(JSON.stringify(reviewRes.data)) as UTSJSONObject\r\n likeCount = rObj.getNumber('like_count') ?? 0\r\n }\r\n result.set('like_count', likeCount)\r\n }\r\n\r\n result.set('success', true)\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6780','评价点赞异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取我的评价列表\r\n async getMyReviews(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .select(`\r\n *,\r\n product:ml_products!ml_product_reviews_product_id_fkey(name, main_image_url)\r\n `)\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (response.error != null || response.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const reviews = response.data as any[]\r\n const result: any[] = []\r\n\r\n for (let i = 0; i < reviews.length; i++) {\r\n const review = reviews[i]\r\n const processed = JSON.parse(JSON.stringify(review)) as UTSJSONObject\r\n\r\n // 处理商品信息\r\n const productRaw = processed.get('product')\r\n let productName = ''\r\n let productImage = ''\r\n if (productRaw != null) {\r\n let productObj: UTSJSONObject\r\n if (productRaw instanceof UTSJSONObject) {\r\n productObj = productRaw as UTSJSONObject\r\n } else {\r\n productObj = JSON.parse(JSON.stringify(productRaw)) as UTSJSONObject\r\n }\r\n productName = productObj.getString('name') ?? ''\r\n productImage = productObj.getString('main_image_url') ?? ''\r\n }\r\n processed.set('product_name', productName)\r\n processed.set('product_image', productImage)\r\n\r\n // 计算是否可追加评价(7天内)\r\n const createdAt = processed.getString('created_at') ?? ''\r\n const createdTime = new Date(createdAt).getTime()\r\n const now = Date.now()\r\n const sevenDays = 7 * 24 * 60 * 60 * 1000\r\n const canAppend = (now - createdTime) < sevenDays && (processed.getString('append_content') ?? '') === ''\r\n processed.set('can_append', canAppend)\r\n\r\n // 计算是否可编辑(24小时内)\r\n const oneDay = 24 * 60 * 60 * 1000\r\n const canEdit = (now - createdTime) < oneDay\r\n processed.set('can_edit', canEdit)\r\n\r\n result.push(processed)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6851','获取我的评价失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 追加评价\r\n async appendReview(reviewId: string, content: string, images: string[]): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('append_content', content)\r\n updateData.set('append_images', JSON.stringify(images))\r\n updateData.set('append_at', new Date().toISOString())\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .update(updateData)\r\n .eq('id', reviewId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n return response.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6877','追加评价失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 删除评价\r\n async deleteReview(reviewId: string): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return false\r\n\r\n const response = await supa\r\n .from('ml_product_reviews')\r\n .delete()\r\n .eq('id', reviewId)\r\n .eq('user_id', userId!)\r\n .execute()\r\n\r\n return response.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6897','删除评价失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==================== 积分辅助方法 ====================\r\n\r\n // 增加积分\r\n private async addPoints(userId: string, points: number, type: string, description: string): Promise {\r\n try {\r\n // 获取当前积分\r\n const currentPoints = await this.getUserPoints()\r\n const newPoints = currentPoints + points\r\n const totalEarned = await this.getTotalEarned()\r\n\r\n // 检查用户积分记录是否存在\r\n const checkRes = await supa\r\n .from('ml_user_points')\r\n .select('user_id')\r\n .eq('user_id', userId)\r\n .limit(1)\r\n .execute()\r\n\r\n const exists = checkRes.error == null && checkRes.data != null && (checkRes.data as any[]).length > 0\r\n\r\n if (exists) {\r\n // 更新现有记录\r\n const updateData = new UTSJSONObject()\r\n updateData.set('points', newPoints)\r\n updateData.set('total_earned', totalEarned + points)\r\n updateData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .update(updateData)\r\n .eq('user_id', userId)\r\n .execute()\r\n } else {\r\n // 插入新记录\r\n const insertData = new UTSJSONObject()\r\n insertData.set('user_id', userId)\r\n insertData.set('points', newPoints)\r\n insertData.set('total_earned', points)\r\n insertData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .insert(insertData)\r\n .execute()\r\n }\r\n\r\n // 记录积分变动\r\n const record = new UTSJSONObject()\r\n record.set('user_id', userId)\r\n record.set('points', points)\r\n record.set('type', type)\r\n record.set('description', description)\r\n\r\n await supa\r\n .from('ml_point_records')\r\n .insert(record)\r\n .execute()\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6962','增加积分失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 扣减积分\r\n private async deductPoints(userId: string, points: number, type: string, description: string): Promise {\r\n try {\r\n const currentPoints = await this.getUserPoints()\r\n const newPoints = currentPoints - points\r\n\r\n if (newPoints < 0) return false\r\n\r\n const updateData = new UTSJSONObject()\r\n updateData.set('points', newPoints)\r\n updateData.set('updated_at', new Date().toISOString())\r\n\r\n await supa\r\n .from('ml_user_points')\r\n .update(updateData)\r\n .eq('user_id', userId)\r\n .execute()\r\n\r\n const record = new UTSJSONObject()\r\n record.set('user_id', userId)\r\n record.set('points', -points)\r\n record.set('type', type)\r\n record.set('description', description)\r\n\r\n await supa\r\n .from('ml_point_records')\r\n .insert(record)\r\n .execute()\r\n\r\n return true\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:6998','扣减积分失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 获取历史累计积分\r\n private async getTotalEarned(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return 0\r\n\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('total_earned')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n\r\n if (res.error == null && res.data != null) {\r\n if (res.data instanceof UTSJSONObject) {\r\n return res.data.getNumber('total_earned') ?? 0\r\n } else {\r\n const obj = JSON.parse(JSON.stringify(res.data)) as UTSJSONObject\r\n return obj.getNumber('total_earned') ?? 0\r\n }\r\n }\r\n return 0\r\n } catch (e) {\r\n return 0\r\n }\r\n }\r\n\r\n // ==================== 积分过期相关API ====================\r\n\r\n // 获取即将过期积分\r\n async getExpiringPoints(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('expiring_points', 0)\r\n result.set('expiring_date', null)\r\n result.set('details', [] as any[])\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n // 查询30天内即将过期的积分记录\r\n const now = new Date()\r\n const thirtyDaysLater = new Date(now.getTime() + 30 * 24 * 60 * 60 * 1000)\r\n const nowStr = now.toISOString()\r\n const laterStr = thirtyDaysLater.toISOString()\r\n\r\n const res = await supa\r\n .from('ml_point_records')\r\n .select('points, description, expires_at, created_at')\r\n .eq('user_id', userId!)\r\n .gt('points', 0)\r\n .eq('is_expired', false)\r\n .not('expires_at', 'is', null)\r\n .gte('expires_at', nowStr)\r\n .lte('expires_at', laterStr)\r\n .order('expires_at', { ascending: true })\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:7062','获取即将过期积分失败:', res.error)\r\n return result\r\n }\r\n\r\n if (res.data != null && Array.isArray(res.data)) {\r\n const records = res.data as any[]\r\n let totalExpiring = 0\r\n let earliestDate: string | null = null\r\n const details: any[] = []\r\n\r\n for (let i = 0; i < records.length; i++) {\r\n const record = records[i]\r\n let recordObj: UTSJSONObject\r\n if (record instanceof UTSJSONObject) {\r\n recordObj = record\r\n } else {\r\n recordObj = JSON.parse(JSON.stringify(record)) as UTSJSONObject\r\n }\r\n\r\n const points = recordObj.getNumber('points') ?? 0\r\n const expiresAt = recordObj.getString('expires_at') ?? ''\r\n\r\n totalExpiring += points\r\n\r\n if (earliestDate == null || expiresAt < earliestDate) {\r\n earliestDate = expiresAt\r\n }\r\n\r\n details.push({\r\n points: points,\r\n description: recordObj.getString('description'),\r\n expires_at: expiresAt,\r\n created_at: recordObj.getString('created_at') ?? ''\r\n })\r\n }\r\n\r\n result.set('expiring_points', totalExpiring)\r\n result.set('expiring_date', earliestDate != null ? earliestDate.split('T')[0] : null)\r\n result.set('details', details)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7105','获取即将过期积分异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取积分概览(包含即将过期积分)\r\n async getPointsOverview(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('current_points', 0)\r\n result.set('total_earned', 0)\r\n result.set('expiring_points', 0)\r\n result.set('expiring_date', null)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const res = await supa\r\n .from('ml_user_points')\r\n .select('points, total_earned, expiring_points, expiring_date')\r\n .eq('user_id', userId!)\r\n .single()\r\n .execute()\r\n\r\n if (res.error == null && res.data != null) {\r\n let data: UTSJSONObject\r\n if (res.data instanceof UTSJSONObject) {\r\n data = res.data as UTSJSONObject\r\n } else {\r\n data = JSON.parse(JSON.stringify(res.data)) as UTSJSONObject\r\n }\r\n\r\n result.set('current_points', data.getNumber('points') ?? 0)\r\n result.set('total_earned', data.getNumber('total_earned') ?? 0)\r\n result.set('expiring_points', data.getNumber('expiring_points') ?? 0)\r\n result.set('expiring_date', data.getString('expiring_date'))\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7145','获取积分概览异常:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取过期提醒通知列表\r\n async getExpiryNotifications(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_point_expiry_notifications')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .eq('is_sent', false)\r\n .order('expiry_date', { ascending: true })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7174','获取过期提醒失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 标记过期提醒为已读\r\n async markNotificationRead(notificationId: string): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_point_expiry_notifications')\r\n .update({ is_sent: true, sent_at: new Date().toISOString() })\r\n .eq('id', notificationId)\r\n .execute()\r\n\r\n return res.error == null\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7191','标记通知失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // 手动触发积分维护任务(管理员功能)\r\n // 注意:UTS不支持rpc,此功能需要在Supabase后台手动执行或通过其他方式触发\r\n async triggerPointsMaintenance(): Promise {\r\n __f__('warn','at utils/supabaseService.uts:7199','triggerPointsMaintenance: UTS不支持rpc调用,请在Supabase后台手动执行 daily_points_maintenance()')\r\n return false\r\n }\r\n\r\n // ==================== 推销模式 - 商家配置API ====================\r\n\r\n // 获取商家推销配置\r\n async getMerchantPromotionConfig(merchantId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('promotion_enabled', false)\r\n result.set('share_free_enabled', false)\r\n result.set('distribution_enabled', false)\r\n result.set('required_count', 4)\r\n result.set('reward_type', 'product_price')\r\n result.set('fixed_reward_amount', 0)\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_merchant_promotion_config')\r\n .select('*')\r\n .eq('merchant_id', merchantId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n \r\n if (itemAny instanceof UTSJSONObject) {\r\n result.set('promotion_enabled', itemAny.getBoolean('promotion_enabled') ?? false)\r\n result.set('share_free_enabled', itemAny.getBoolean('share_free_enabled') ?? false)\r\n result.set('distribution_enabled', itemAny.getBoolean('distribution_enabled') ?? false)\r\n result.set('required_count', itemAny.getNumber('required_count') ?? 4)\r\n result.set('reward_type', itemAny.getString('reward_type') ?? 'product_price')\r\n result.set('fixed_reward_amount', itemAny.getNumber('fixed_reward_amount') ?? 0)\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7240','获取商家推销配置失败:', e)\r\n }\r\n\r\n return result\r\n }\r\n\r\n // 检查商家是否开启分享免单\r\n async isShareFreeEnabled(merchantId: string): Promise {\r\n try {\r\n const config = await this.getMerchantPromotionConfig(merchantId)\r\n const promotionEnabled = config.get('promotion_enabled')\r\n const shareFreeEnabled = config.get('share_free_enabled')\r\n return (promotionEnabled === true || promotionEnabled === 'true') && \r\n (shareFreeEnabled === true || shareFreeEnabled === 'true')\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7255','检查分享免单状态失败:', e)\r\n return false\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 余额相关API ====================\r\n\r\n // 获取用户余额\r\n async getUserBalance(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('balance', 0)\r\n result.set('frozen_balance', 0)\r\n result.set('total_earned', 0)\r\n result.set('total_withdrawn', 0)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n const res = await supa\r\n .from('ml_user_balance')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n if (itemAny instanceof UTSJSONObject) {\r\n result.set('balance', itemAny.getNumber('balance') ?? 0)\r\n result.set('frozen_balance', itemAny.getNumber('frozen_balance') ?? 0)\r\n result.set('total_earned', itemAny.getNumber('total_earned') ?? 0)\r\n result.set('total_withdrawn', itemAny.getNumber('total_withdrawn') ?? 0)\r\n }\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7297','获取用户余额失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取余额变动记录\r\n async getBalanceRecords(page: number = 1, limit: number = 20): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const offset = (page - 1) * limit\r\n const res = await supa\r\n .from('ml_balance_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .range(offset, offset + limit - 1)\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7327','获取余额记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 分享免单相关API ====================\r\n\r\n // 创建分享记录\r\n async createShareRecord(productId: string, orderId: string, orderItemId: string | null, productName: string, productImage: string | null, productPrice: number): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('success', false)\r\n result.set('share_code', '')\r\n result.set('message', '')\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n result.set('message', '请先登录')\r\n return result\r\n }\r\n\r\n // 生成分享码\r\n const shareCode = this.generateShareCode()\r\n\r\n const insertData = new UTSJSONObject()\r\n insertData.set('user_id', userId)\r\n insertData.set('product_id', productId)\r\n insertData.set('order_id', orderId)\r\n insertData.set('order_item_id', orderItemId)\r\n insertData.set('share_code', shareCode)\r\n insertData.set('product_name', productName)\r\n insertData.set('product_image', productImage)\r\n insertData.set('product_price', productPrice)\r\n insertData.set('required_count', 4)\r\n insertData.set('current_count', 0)\r\n insertData.set('status', 0)\r\n\r\n const res = await supa\r\n .from('ml_share_records')\r\n .insert(insertData)\r\n .execute()\r\n\r\n if (res.error != null) {\r\n __f__('error','at utils/supabaseService.uts:7371','[createShareRecord] 插入失败:', res.error)\r\n __f__('error','at utils/supabaseService.uts:7372','[createShareRecord] 插入数据:', JSON.stringify(insertData))\r\n result.set('message', '创建分享记录失败: ' + (res.error.message ?? '未知错误'))\r\n return result\r\n }\r\n\r\n // 获取插入记录的id\r\n let insertedId = ''\r\n if (res.data != null && Array.isArray(res.data) && res.data.length > 0) {\r\n const inserted = res.data[0]\r\n let insertedObj: UTSJSONObject | null = null\r\n if (inserted instanceof UTSJSONObject) {\r\n insertedObj = inserted\r\n } else {\r\n insertedObj = JSON.parse(JSON.stringify(inserted)) as UTSJSONObject\r\n }\r\n insertedId = insertedObj.getString('id') ?? ''\r\n }\r\n\r\n result.set('success', true)\r\n result.set('id', insertedId)\r\n result.set('share_code', shareCode)\r\n result.set('message', '分享创建成功')\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7396','创建分享记录失败:', e)\r\n result.set('message', '创建分享记录异常')\r\n return result\r\n }\r\n }\r\n\r\n // 生成分享码\r\n private generateShareCode(): string {\r\n const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'\r\n let result = ''\r\n for (let i = 0; i < 8; i++) {\r\n const randomIndex = Math.floor(Math.random() * chars.length)\r\n result += chars.charAt(randomIndex)\r\n }\r\n return result\r\n }\r\n\r\n // 验证分享码\r\n async validateShareCode(shareCode: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('valid', false)\r\n result.set('share_record', null)\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('share_code', shareCode)\r\n .eq('status', 0)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n result.set('valid', true)\r\n result.set('share_record', arr[0])\r\n }\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7438','验证分享码失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取我的分享记录\r\n async getMyShareRecords(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7466','获取分享记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取分享详情\r\n async getShareDetail(shareId: string): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('share_record', null)\r\n result.set('secondary_purchases', [] as any[])\r\n\r\n try {\r\n const res = await supa\r\n .from('ml_share_records')\r\n .select('*')\r\n .eq('id', shareId)\r\n .limit(1)\r\n .execute()\r\n\r\n if (res.error == null && res.data != null && Array.isArray(res.data)) {\r\n const arr = res.data as any[]\r\n if (arr.length > 0) {\r\n result.set('share_record', arr[0])\r\n }\r\n }\r\n\r\n // 获取二级购买记录\r\n const purchasesRes = await supa\r\n .from('ml_secondary_purchases')\r\n .select('*')\r\n .eq('share_record_id', shareId)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (purchasesRes.error == null && purchasesRes.data != null) {\r\n result.set('secondary_purchases', purchasesRes.data)\r\n }\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7507','获取分享详情失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取免单奖励记录\r\n async getFreeOrderRewards(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_free_order_rewards')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7535','获取免单奖励记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // ==================== 推销模式 - 会员等级相关API ====================\r\n\r\n // 获取会员等级列表\r\n async getMemberLevels(): Promise {\r\n try {\r\n const res = await supa\r\n .from('ml_member_levels')\r\n .select('*')\r\n .eq('is_active', true)\r\n .order('level_rank', { ascending: true } as OrderOptions)\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7560','获取会员等级列表失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n\r\n // 获取用户会员信息\r\n async getUserMemberInfo(): Promise {\r\n const result = new UTSJSONObject()\r\n result.set('member_level', 0)\r\n result.set('level_name', '普通会员')\r\n result.set('discount', 1.0)\r\n result.set('total_spent', 0)\r\n result.set('next_level', null)\r\n result.set('progress_percent', 0)\r\n result.set('manual_level', false)\r\n\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) return result\r\n\r\n // 获取用户信息(包括 tier_id)\r\n const userRes = await supa\r\n .from('ml_user_profiles')\r\n .select('tier_id, total_spent, manual_level')\r\n .eq('user_id', userId!)\r\n .limit(1)\r\n .execute()\r\n\r\n let tierId: string = ''\r\n let totalSpent = 0\r\n let manualLevel = false\r\n\r\n if (userRes.error == null && userRes.data != null && Array.isArray(userRes.data)) {\r\n const arr = userRes.data as any[]\r\n if (arr.length > 0) {\r\n const item = arr[0]\r\n const itemAny = item as any\r\n if (itemAny instanceof UTSJSONObject) {\r\n tierId = itemAny.getString('tier_id') ?? ''\r\n totalSpent = itemAny.getNumber('total_spent') ?? 0\r\n manualLevel = itemAny.getBoolean('manual_level') ?? false\r\n }\r\n }\r\n }\r\n\r\n // 获取等级信息\r\n const levels = await this.getMemberLevels()\r\n let levelName = '普通会员'\r\n let discount = 1.0\r\n let nextLevel: UTSJSONObject | null = null\r\n let progressPercent = 0\r\n let currentLevelRank = 0\r\n\r\n // 通过 tier_id 匹配等级\r\n for (let i = 0; i < levels.length; i++) {\r\n const level = levels[i]\r\n const levelAny = level as any\r\n let levelId = ''\r\n let levelNameStr = ''\r\n let levelRank = 0\r\n let levelDiscount = 1.0\r\n\r\n if (levelAny instanceof UTSJSONObject) {\r\n levelId = levelAny.getString('id') ?? ''\r\n levelNameStr = levelAny.getString('name') ?? ''\r\n levelRank = levelAny.getNumber('level_rank') ?? 0\r\n levelDiscount = levelAny.getNumber('discount_rate') ?? 1.0\r\n }\r\n\r\n // 通过 tier_id 匹配当前等级\r\n if (levelId == tierId) {\r\n levelName = levelNameStr\r\n discount = levelDiscount\r\n currentLevelRank = levelRank\r\n }\r\n }\r\n\r\n // 找下一等级(level_rank 更大的第一个等级)\r\n for (let i = 0; i < levels.length; i++) {\r\n const level = levels[i]\r\n const levelAny = level as any\r\n let levelRank = 0\r\n let levelNameStr = ''\r\n let levelMinAmount = 0\r\n\r\n if (levelAny instanceof UTSJSONObject) {\r\n levelRank = levelAny.getNumber('level_rank') ?? 0\r\n levelNameStr = levelAny.getString('name') ?? ''\r\n levelMinAmount = levelAny.getNumber('min_amount') ?? 0\r\n }\r\n\r\n if (levelRank > currentLevelRank && nextLevel == null) {\r\n const nextLevelObj = new UTSJSONObject()\r\n const levelObj = level as UTSJSONObject\r\n nextLevelObj.set('id', levelObj.getString('id') ?? '')\r\n nextLevelObj.set('name', levelNameStr)\r\n nextLevelObj.set('min_amount', levelMinAmount)\r\n nextLevel = nextLevelObj\r\n }\r\n }\r\n\r\n result.set('member_level', currentLevelRank)\r\n result.set('level_name', levelName)\r\n result.set('discount', discount)\r\n result.set('total_spent', totalSpent)\r\n result.set('next_level', nextLevel)\r\n result.set('progress_percent', progressPercent)\r\n result.set('manual_level', manualLevel)\r\n\r\n return result\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7672','获取用户会员信息失败:', e)\r\n return result\r\n }\r\n }\r\n\r\n // 获取当前等级的最低消费金额\r\n private getCurrentLevelMinAmount(levels: any[], currentLevel: number): number {\r\n for (let i = 0; i < levels.length; i++) {\r\n const level = levels[i]\r\n const levelAny = level as any\r\n if (levelAny instanceof UTSJSONObject) {\r\n const levelId = levelAny.getNumber('id') ?? 0\r\n if (levelId === currentLevel) {\r\n return levelAny.getNumber('min_amount') ?? 0\r\n }\r\n }\r\n }\r\n return 0\r\n }\r\n\r\n // 获取会员等级变更记录\r\n async getMemberLevelLogs(): Promise {\r\n try {\r\n const userId = this.getCurrentUserId()\r\n if (userId == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n const res = await supa\r\n .from('ml_member_level_logs')\r\n .select('*')\r\n .eq('user_id', userId!)\r\n .order('created_at', { ascending: false })\r\n .execute()\r\n\r\n if (res.error != null || res.data == null) {\r\n const empty: any[] = []\r\n return empty\r\n }\r\n\r\n return res.data as any[]\r\n } catch (e) {\r\n __f__('error','at utils/supabaseService.uts:7715','获取会员等级变更记录失败:', e)\r\n const empty: any[] = []\r\n return empty\r\n }\r\n }\r\n}\r\n\r\n// 导出单例实例\r\nexport const supabaseService = new SupabaseService()\r\n\r\n// 默认导出\r\nexport default supabaseService\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map deleted file mode 100644 index 5bb51bdc..00000000 --- a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/address-list.kt.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pages/mall/consumer/address-list.uvue","uni_modules/ak-req/ak-req.uts","pages/user/terms.uvue","pages/user/login.uvue","pages/main/index.uvue","pages/user/center.uvue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n",null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map b/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map deleted file mode 100644 index 5d21e9ca..00000000 --- a/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/apply-refund.kt.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pages/mall/consumer/apply-refund.uvue","pages/user/change-password.uvue","pages/user/terms.uvue","pages/main/index.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map b/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map deleted file mode 100644 index 6f7ea574..00000000 --- a/unpackage/cache/.app-android/sourcemap/pages/user/register.kt.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pages/user/register.uvue","pages/user/login.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n",null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/sourcemap/pages/user/terms.kt.map b/unpackage/cache/.app-android/sourcemap/pages/user/terms.kt.map deleted file mode 100644 index ca99b776..00000000 --- a/unpackage/cache/.app-android/sourcemap/pages/user/terms.kt.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pages/user/terms.uvue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;+BAwCQ,gBAAA;AAHF;;;;;;eApCL,IAgCO,QAAA,IAhCD,WAAM,SAAM;YACjB,IAIO,QAAA,IAJD,WAAM,WAAQ;gBACnB,IAA4C,QAAA,IAAtC,WAAM,QAAQ,aAAO,KAAA,MAAM,GAAE,MAAE,CAAA,EAAA;oBAAA;iBAAA;gBACrC,IAAoC,QAAA,IAA9B,WAAM,UAAQ;gBACpB,IAA4B,QAAA,IAAtB,WAAM;;YAGb,IAwBc,eAAA,IAxBD,WAAM,WAAU,cAAS,QAAO,oBAAe;gBAC3D,IAkBO,QAAA,IAlBD,WAAM,SAAM;oBACjB,IAA4B,QAAA,IAAtB,WAAM,OAAK;oBACjB,IACO,QAAA,IADD,WAAM,MAAI;oBAEhB,IACO,QAAA,IADD,WAAM,MAAI;oBAEhB,IACO,QAAA,IADD,WAAM,MAAI;oBAGhB,IAA6B,QAAA,IAAvB,WAAM;oBAEZ,IAA4B,QAAA,IAAtB,WAAM,OAAK;oBACjB,IACO,QAAA,IADD,WAAM,MAAI;oBAEhB,IACO,QAAA,IADD,WAAM,MAAI;oBAEhB,IACO,QAAA,IADD,WAAM,MAAI;;gBAIjB,IAEO,QAAA,IAFD,WAAM,WAAQ;oBACnB,IAAwD,UAAA,IAAhD,WAAM,WAAW,aAAO,KAAA,MAAM,GAAE,WAAO,CAAA,EAAA;wBAAA;qBAAA;;;;;aAShD;aAAA,gBAAM;QACD;IACL;;;;;;;;;;;;;;;;;;;;AAED"} \ No newline at end of file diff --git a/unpackage/cache/.app-android/src/.manifest.json b/unpackage/cache/.app-android/src/.manifest.json deleted file mode 100644 index b7506d6f..00000000 --- a/unpackage/cache/.app-android/src/.manifest.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "version": "1", - "env": { - "compiler_version": "4.87" - }, - "files": { - "pages/mall/consumer/share/index.kt": { - "md5": "ef3c80889201a98595dcd43eb14b0bad6cfecb77", - "class": "GenPagesMallConsumerShareIndex" - }, - "pages/mall/consumer/product-detail.kt": { - "class": "GenPagesMallConsumerProductDetail", - "md5": "76f0ccec5327fa9a695a94d16028315e344b4a89" - }, - "pages/mall/consumer/product-reviews.kt": { - "md5": "615fa52ddd17e7f6b04bbd1ee9c4a9a129ec6417", - "class": "GenPagesMallConsumerProductReviews" - }, - "pages/main/messages.kt": { - "md5": "a718458d8107dadc381bb0e1a01a5fd9bd3c7e70", - "class": "GenPagesMainMessages" - }, - "pages/mall/consumer/review.kt": { - "md5": "d7ebb8da061e90faf1fe68e3e26c84fc8d1b0ef8", - "class": "GenPagesMallConsumerReview" - }, - "pages/main/index.kt": { - "class": "GenPagesMainIndex", - "md5": "1f0352f83f777983e78807cfd5dc32e13a4345d9" - }, - "pages/mall/consumer/bank-cards/add.kt": { - "class": "GenPagesMallConsumerBankCardsAdd", - "md5": "8b44ace9725914c9af2d0dd8e037f5dabc30fde1" - }, - "index.kt": { - "md5": "174e8537b3df602427a20a7b9b2133caa0a3c419", - "class": "" - }, - "pages/mall/consumer/bank-cards/index.kt": { - "md5": "7f0430dbc616535e1dbb1e33fec780ea70cf4013", - "class": "GenPagesMallConsumerBankCardsIndex" - }, - "pages/mall/consumer/shop-detail.kt": { - "class": "GenPagesMallConsumerShopDetail", - "md5": "39f881c32f7d6799e43457bdaf1b4e91b71f4e53" - }, - "pages/mall/consumer/footprint.kt": { - "md5": "80cc5219a746556a95a292e3e75b8bc44e098676", - "class": "GenPagesMallConsumerFootprint" - }, - "pages/user/terms.kt": { - "md5": "07a6f73baf163f0818f71db9876001fbab77d258", - "class": "GenPagesUserTerms" - }, - "pages/mall/consumer/member/index.kt": { - "class": "GenPagesMallConsumerMemberIndex", - "md5": "27ec8904f9a1db6857e1d9a8edf22b63eff21810" - }, - "pages/mall/consumer/points/exchange-records.kt": { - "md5": "4b3db618b1ea142f96cfa353b5af4257b9e43079", - "class": "GenPagesMallConsumerPointsExchangeRecords" - }, - "pages/mall/consumer/orders.kt": { - "class": "GenPagesMallConsumerOrders", - "md5": "7ba8c01c044ad9a14106c60164887add188d19c0" - }, - "pages/mall/consumer/search.kt": { - "class": "GenPagesMallConsumerSearch", - "md5": "55d8433e46da21e4b3ff0710eea47c9f7aba7837" - }, - "pages/mall/consumer/payment-success.kt": { - "class": "GenPagesMallConsumerPaymentSuccess", - "md5": "b174ba19832e03347ff975926d99da9456c01af0" - }, - "pages/mall/consumer/points/index.kt": { - "md5": "8b9990550139147d5ace75f4758fbdb367cf594f", - "class": "GenPagesMallConsumerPointsIndex" - }, - "pages/main/category.kt": { - "md5": "bd435aa206b2cf47d98394516b98e2fbd5418732", - "class": "GenPagesMainCategory" - }, - "pages/mall/consumer/favorites.kt": { - "md5": "081b12290b996f59bb7c831a0bd5db229f5df85b", - "class": "GenPagesMallConsumerFavorites" - }, - "pages/mall/consumer/message-detail.kt": { - "class": "GenPagesMallConsumerMessageDetail", - "md5": "9180fd55529a56e2937eab5ad24a0356bd678ec6" - }, - "pages/mall/consumer/withdraw.kt": { - "class": "GenPagesMallConsumerWithdraw", - "md5": "b7b1d824134ae9feb9ec64b78282260a7d79a12b" - }, - "pages/mall/consumer/points/signin.kt": { - "class": "GenPagesMallConsumerPointsSignin", - "md5": "4ba3c78e586da4d0d9bfbe3c313fd7969d592bbe" - }, - "pages/user/profile.kt": { - "class": "GenPagesUserProfile", - "md5": "d09042e0e84b25c1575a36ed61574fa5d2192342" - }, - "pages/user/login.kt": { - "md5": "55cbe4b1cdaca60a21ba54813994aaa4b266a9aa", - "class": "GenPagesUserLogin" - }, - "pages/mall/consumer/balance/index.kt": { - "class": "GenPagesMallConsumerBalanceIndex", - "md5": "c9b1bcac52506218d510445358a1f16fe57f7493" - }, - "pages/user/forgot-password.kt": { - "md5": "af5111e6681cb797d90804e8dbbe48868b7170e1", - "class": "GenPagesUserForgotPassword" - }, - "pages/mall/consumer/apply-refund.kt": { - "class": "GenPagesMallConsumerApplyRefund", - "md5": "b30dbcc2b77f5e2ccff1a3036b0ddda545dc98c0" - }, - "pages/user/bind-email.kt": { - "md5": "d3679b2a275c74f54e2f29ef440bb3bd428b0076", - "class": "GenPagesUserBindEmail" - }, - "pages/mall/consumer/logistics.kt": { - "md5": "829263da82ee96e04f0954a7f35645b481742b23", - "class": "GenPagesMallConsumerLogistics" - }, - "pages/mall/consumer/my-reviews.kt": { - "md5": "331a4cbb0353f2e9002e6f2ac0942e024b07302b", - "class": "GenPagesMallConsumerMyReviews" - }, - "pages/mall/consumer/points/exchange.kt": { - "md5": "274b54e9ca07dc404364d32568e349dce7e2b53e", - "class": "GenPagesMallConsumerPointsExchange" - }, - "pages/main/cart.kt": { - "md5": "3c2e73c210abf4dc4129314bd11cdd00a55143fd", - "class": "GenPagesMainCart" - }, - "pages/mall/consumer/refund.kt": { - "md5": "0e87c8be04bac0e99ab87116d4e504bd164eb87e", - "class": "GenPagesMallConsumerRefund" - }, - "pages/mall/consumer/wallet.kt": { - "md5": "24a567fd45f0918e811fee45beac7de2469dd61b", - "class": "GenPagesMallConsumerWallet" - }, - "pages/mall/consumer/refund-review.kt": { - "class": "GenPagesMallConsumerRefundReview", - "md5": "16cdb602532694d90a7a056db788bc25e0daa293" - }, - "pages/mall/consumer/share/detail.kt": { - "class": "GenPagesMallConsumerShareDetail", - "md5": "7fb9630f5f70691571a2f759af48f7c25e8d0887" - }, - "pages/user/register.kt": { - "md5": "e1ef5b732c09d4ca24e43aa3360a823bc4b40dcf", - "class": "GenPagesUserRegister" - }, - "pages/user/center.kt": { - "class": "GenPagesUserCenter", - "md5": "8916c6f67e388caa8c7ceb0654d0bca7c17790bc" - }, - "pages/user/bind-phone.kt": { - "md5": "6e6d9b30a065983a45e6147866ab454b0913ef5a", - "class": "GenPagesUserBindPhone" - }, - "pages/mall/consumer/settings.kt": { - "md5": "8a57eb86049ec83aa4d94f13d64fdd440208195c", - "class": "GenPagesMallConsumerSettings" - }, - "pages/main/profile.kt": { - "md5": "e83ebba590e9a1e2a46e5c53b929be4dd54c0901", - "class": "GenPagesMainProfile" - }, - "pages/mall/consumer/order-detail.kt": { - "class": "GenPagesMallConsumerOrderDetail", - "md5": "a4b43fa14ded65bc3c7b256dbb951d4e5c17bc74" - }, - "pages/mall/consumer/red-packets/index.kt": { - "md5": "ad15a78818b49a5f8797a4fbcb75305919b44641", - "class": "GenPagesMallConsumerRedPacketsIndex" - }, - "pages/user/boot.kt": { - "class": "GenPagesUserBoot", - "md5": "891ebce64ca5d120cfdcf18386104cd0d9b601b0" - }, - "pages/mall/consumer/checkout.kt": { - "md5": "9c1d1c0ef29b71bf224a519c6a03157862d2a2f8", - "class": "GenPagesMallConsumerCheckout" - }, - "pages/mall/consumer/payment.kt": { - "md5": "79b9f55d7cab53324edc9e5ecb67d9b9e71534d4", - "class": "GenPagesMallConsumerPayment" - }, - "pages/mall/consumer/address-edit.kt": { - "class": "GenPagesMallConsumerAddressEdit", - "md5": "9ec0d7f53533d311f31829b92f12e1978b0718bf" - }, - "pages/user/change-password.kt": { - "md5": "dd2836ecb8fedb59f145b751893ac9ae65ae577d", - "class": "GenPagesUserChangePassword" - }, - "pages/mall/consumer/subscription/followed-shops.kt": { - "md5": "d7d632f770ce0a4e562155117d4d12bb853a565f", - "class": "GenPagesMallConsumerSubscriptionFollowedShops" - }, - "pages/mall/consumer/chat.kt": { - "class": "GenPagesMallConsumerChat", - "md5": "a976151dc579f09fa7e16c69aedba4934c561212" - }, - "pages/mall/consumer/coupons.kt": { - "md5": "1def27fd6123ad10d7c732560b45e475bef37918", - "class": "GenPagesMallConsumerCoupons" - }, - "pages/mall/consumer/address-list.kt": { - "class": "GenPagesMallConsumerAddressList", - "md5": "07d347076e2ed78bcff37242d945357bd502628f" - } - } -} \ No newline at end of file diff --git a/unpackage/cache/.app-android/src/index.kt b/unpackage/cache/.app-android/src/index.kt deleted file mode 100644 index 8e6363f3..00000000 --- a/unpackage/cache/.app-android/src/index.kt +++ /dev/null @@ -1,18522 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.connectSocket as uni_connectSocket -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.reLaunch as uni_reLaunch -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.request as uni_request -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.uploadFile as uni_uploadFile -val runBlock1 = run { - __uniConfig.getAppStyles = fun(): Map>> { - return GenApp.styles - } -} -fun initRuntimeSocket(hosts: String, port: String, id: String): UTSPromise { - if (hosts == "" || port == "" || id == "") { - return UTSPromise.resolve(null) - } - return hosts.split(",").reduce>(fun(promise: UTSPromise, host: String): UTSPromise { - return promise.then(fun(socket): UTSPromise { - if (socket != null) { - return UTSPromise.resolve(socket) - } - return tryConnectSocket(host, port, id) - } - ) - } - , UTSPromise.resolve(null)) -} -val SOCKET_TIMEOUT: Number = 500 -fun tryConnectSocket(host: String, port: String, id: String): UTSPromise { - return UTSPromise(fun(resolve, reject){ - val socket = uni_connectSocket(ConnectSocketOptions(url = "ws://" + host + ":" + port + "/" + id, fail = fun(_) { - resolve(null) - } - )) - val timer = setTimeout(fun(){ - socket.close(CloseSocketOptions(code = 1006, reason = "connect timeout")) - resolve(null) - } - , SOCKET_TIMEOUT) - socket.onOpen(fun(e){ - clearTimeout(timer) - resolve(socket) - } - ) - socket.onClose(fun(e){ - clearTimeout(timer) - resolve(null) - } - ) - socket.onError(fun(e){ - clearTimeout(timer) - resolve(null) - } - ) - } - ) -} -fun initRuntimeSocketService(): UTSPromise { - val hosts: String = "192.168.139.1,192.168.29.1,19.19.1.40,127.0.0.1" - val port: String = "8090" - val id: String = "app-android_MrF_QJ" - if (hosts == "" || port == "" || id == "") { - return UTSPromise.resolve(false) - } - var socketTask: SocketTask? = null - __registerWebViewUniConsole(fun(): String { - return "!function(){\"use strict\";\"function\"==typeof SuppressedError&&SuppressedError;var e=[\"log\",\"warn\",\"error\",\"info\",\"debug\"],n=e.reduce((function(e,n){return e[n]=console[n].bind(console),e}),{}),t=null,r=new Set,o={};function i(e){if(null!=t){var n=e.map((function(e){if(\"string\"==typeof e)return e;var n=e&&\"promise\"in e&&\"reason\"in e,t=n?\"UnhandledPromiseRejection: \":\"\";if(n&&(e=e.reason),e instanceof Error&&e.stack)return e.message&&!e.stack.includes(e.message)?\"\".concat(t).concat(e.message,\"\\n\").concat(e.stack):\"\".concat(t).concat(e.stack);if(\"object\"==typeof e&&null!==e)try{return t+JSON.stringify(e)}catch(e){return t+String(e)}return t+String(e)})).filter(Boolean);n.length>0&&t(JSON.stringify(Object.assign({type:\"error\",data:n},o)))}else e.forEach((function(e){r.add(e)}))}function a(e,n){try{return{type:e,args:u(n)}}catch(e){}return{type:e,args:[]}}function u(e){return e.map((function(e){return c(e)}))}function c(e,n){if(void 0===n&&(n=0),n>=7)return{type:\"object\",value:\"[Maximum depth reached]\"};switch(typeof e){case\"string\":return{type:\"string\",value:e};case\"number\":return function(e){return{type:\"number\",value:String(e)}}(e);case\"boolean\":return function(e){return{type:\"boolean\",value:String(e)}}(e);case\"object\":try{return function(e,n){if(null===e)return{type:\"null\"};if(function(e){return e.\$&&s(e.\$)}(e))return function(e,n){return{type:\"object\",className:\"ComponentPublicInstance\",value:{properties:Object.entries(e.\$.type).map((function(e){return f(e[0],e[1],n+1)}))}}}(e,n);if(s(e))return function(e,n){return{type:\"object\",className:\"ComponentInternalInstance\",value:{properties:Object.entries(e.type).map((function(e){return f(e[0],e[1],n+1)}))}}}(e,n);if(function(e){return e.style&&null!=e.tagName&&null!=e.nodeName}(e))return function(e,n){return{type:\"object\",value:{properties:Object.entries(e).filter((function(e){var n=e[0];return[\"id\",\"tagName\",\"nodeName\",\"dataset\",\"offsetTop\",\"offsetLeft\",\"style\"].includes(n)})).map((function(e){return f(e[0],e[1],n+1)}))}}}(e,n);if(function(e){return\"function\"==typeof e.getPropertyValue&&\"function\"==typeof e.setProperty&&e.\$styles}(e))return function(e,n){return{type:\"object\",value:{properties:Object.entries(e.\$styles).map((function(e){return f(e[0],e[1],n+1)}))}}}(e,n);if(Array.isArray(e))return{type:\"object\",subType:\"array\",value:{properties:e.map((function(e,t){return function(e,n,t){var r=c(e,t);return r.name=\"\".concat(n),r}(e,t,n+1)}))}};if(e instanceof Set)return{type:\"object\",subType:\"set\",className:\"Set\",description:\"Set(\".concat(e.size,\")\"),value:{entries:Array.from(e).map((function(e){return function(e,n){return{value:c(e,n)}}(e,n+1)}))}};if(e instanceof Map)return{type:\"object\",subType:\"map\",className:\"Map\",description:\"Map(\".concat(e.size,\")\"),value:{entries:Array.from(e.entries()).map((function(e){return function(e,n){return{key:c(e[0],n),value:c(e[1],n)}}(e,n+1)}))}};if(e instanceof Promise)return{type:\"object\",subType:\"promise\",value:{properties:[]}};if(e instanceof RegExp)return{type:\"object\",subType:\"regexp\",value:String(e),className:\"Regexp\"};if(e instanceof Date)return{type:\"object\",subType:\"date\",value:String(e),className:\"Date\"};if(e instanceof Error)return{type:\"object\",subType:\"error\",value:e.message||String(e),className:e.name||\"Error\"};var t=void 0,r=e.constructor;r&&r.get\$UTSMetadata\$&&(t=r.get\$UTSMetadata\$().name);var o=Object.entries(e);(function(e){return e.modifier&&e.modifier._attribute&&e.nodeContent})(e)&&(o=o.filter((function(e){var n=e[0];return\"modifier\"!==n&&\"nodeContent\"!==n})));return{type:\"object\",className:t,value:{properties:o.map((function(e){return f(e[0],e[1],n+1)}))}}}(e,n)}catch(e){return{type:\"object\",value:{properties:[]}}}case\"undefined\":return{type:\"undefined\"};case\"function\":return function(e){return{type:\"function\",value:\"function \".concat(e.name,\"() {}\")}}(e);case\"symbol\":return function(e){return{type:\"symbol\",value:e.description}}(e);case\"bigint\":return function(e){return{type:\"bigint\",value:String(e)}}(e)}}function s(e){return e.type&&null!=e.uid&&e.appContext}function f(e,n,t){var r=c(n,t);return r.name=e,r}var l=null,p=[],y={},g=\"---BEGIN:EXCEPTION---\",d=\"---END:EXCEPTION---\";function v(e){null!=l?l(JSON.stringify(Object.assign({type:\"console\",data:e},y))):p.push.apply(p,e)}var m=/^\\s*at\\s+[\\w/./-]+:\\d+\$/;function b(){function t(e){return function(){for(var t=[],r=0;r0){var t=p.slice();p.length=0,v(t)}}((function(e){_(e)}),{channel:e}),function(e,n){if(void 0===n&&(n={}),t=e,Object.assign(o,n),null!=e&&r.size>0){var a=Array.from(r);r.clear(),i(a)}}((function(e){_(e)}),{channel:e}),window.addEventListener(\"error\",(function(e){i([e.error])})),window.addEventListener(\"unhandledrejection\",(function(e){i([e])}))}}()}();" - } - , fun(data: String){ - socketTask?.send(SendSocketMessageOptions(data = data)) - } - ) - return UTSPromise.resolve().then(fun(): UTSPromise { - return initRuntimeSocket(hosts, port, id).then(fun(socket): Boolean { - if (socket == null) { - return false - } - socketTask = socket - return true - } - ) - } - ).`catch`(fun(): Boolean { - return false - } - ) -} -val runBlock2 = run { - initRuntimeSocketService() -} -open class AkReqOptions ( - @JsonNotNull - open var url: String, - open var method: String? = null, - open var data: Any? = null, - open var headers: UTSJSONObject? = null, - open var timeout: Number? = null, - open var contentType: String? = null, - open var retryCount: Number? = null, - open var retryDelayMs: Number? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkReqOptions", "uni_modules/ak-req/interface.uts", 2, 13) - } -} -open class AkReqUploadOptions ( - @JsonNotNull - open var url: String, - @JsonNotNull - open var filePath: String, - @JsonNotNull - open var name: String, - open var formData: UTSJSONObject? = null, - open var headers: UTSJSONObject? = null, - open var apikey: String? = null, - open var timeout: Number? = null, - open var onProgress: ((progress: Number, transferredBytes: Number?, totalBytes: Number?) -> Unit)? = null, - open var retryCount: Number? = null, - open var retryDelayMs: Number? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkReqUploadOptions", "uni_modules/ak-req/interface.uts", 14, 13) - } -} -open class AkReqResponse ( - @JsonNotNull - open var status: Number, - open var data: Any? = null, - @JsonNotNull - open var headers: UTSJSONObject, - open var error: UniError? = null, - open var total: Number? = null, - open var page: Number? = null, - open var limit: Number? = null, - open var hasmore: Boolean? = null, - open var origin: Any? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkReqResponse", "uni_modules/ak-req/interface.uts", 28, 13) - } -} -val SUPA_URL: String = "http://119.146.131.237:9126" -val SUPA_KEY: String = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlLTEiLCJpYXQiOjE3Njk2NzY0OTgsImV4cCI6MTkyNzM1NjQ5OH0.ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" -val IS_TEST_MODE: Boolean = true -val ACCESS_TOKEN_KEY = "akreq_access_token" -val REFRESH_TOKEN_KEY = "akreq_refresh_token" -val EXPIRES_AT_KEY = "akreq_expires_at" -var _accessToken: String? = null -var _refreshToken: String? = null -var _expiresAt: Number? = null -open class AkReq : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkReq", "uni_modules/ak-req/ak-req.uts", 11, 14) - } - companion object { - fun setToken(token: String, refreshToken: String, expiresAt: Number) { - _accessToken = token - _refreshToken = refreshToken - _expiresAt = expiresAt - uni_setStorageSync(ACCESS_TOKEN_KEY, token) - uni_setStorageSync(REFRESH_TOKEN_KEY, refreshToken) - uni_setStorageSync(EXPIRES_AT_KEY, expiresAt) - } - fun getToken(): String? { - if (_accessToken != null) { - return _accessToken - } - val t = uni_getStorageSync(ACCESS_TOKEN_KEY) as String? - _accessToken = t - return t - } - fun getRefreshToken(): String? { - if (_refreshToken != null) { - return _refreshToken - } - val t = uni_getStorageSync(REFRESH_TOKEN_KEY) as String? - _refreshToken = t - return t - } - fun getExpiresAt(): Number? { - val kVal = _expiresAt - if (kVal != null) { - return kVal - } - val t = uni_getStorageSync(EXPIRES_AT_KEY) as Number? - _expiresAt = t - return t - } - fun clearToken() { - _accessToken = null - _refreshToken = null - _expiresAt = null - uni_removeStorageSync(ACCESS_TOKEN_KEY) - uni_removeStorageSync(REFRESH_TOKEN_KEY) - uni_removeStorageSync(EXPIRES_AT_KEY) - } - fun isTokenExpiring(): Boolean { - val expiresAt = this.getExpiresAt() - if (expiresAt == null || expiresAt == 0) { - return true - } - val now = Math.floor(Date.now() / 1000) - return (expiresAt - now) < 300 - } - fun refreshTokenIfNeeded(apikey: String?): UTSPromise { - return wrapUTSPromise(suspend w@{ - val accessToken = this.getToken() - if (accessToken == null || accessToken === "") { - return@w false - } - if (!this.isTokenExpiring()) { - return@w false - } - val refreshToken = this.getRefreshToken() - if (refreshToken == null || refreshToken === "") { - this.clearToken() - return@w false - } - var headers = UTSJSONObject(UTSSourceMapPosition("headers", "uni_modules/ak-req/ak-req.uts", 74, 13)) - if (apikey != null && apikey !== "") { - headers.set("apikey", apikey) - } - val reqData = UTSJSONObject(UTSSourceMapPosition("reqData", "uni_modules/ak-req/ak-req.uts", 78, 15)) - reqData.set("refresh_token", refreshToken) - try { - val res = await(this.request(AkReqOptions(url = SUPA_URL + "/auth/v1/token?grant_type=refresh_token", method = "POST", data = reqData, headers = headers, contentType = "application/json"), true)) - val data = res.data as UTSJSONObject? - var accessToken: String? = null - var refreshTokenNew: String? = null - var expiresAt: Number? = null - if (data != null && UTSAndroid.`typeof`(data["getString"]) === "function" && UTSAndroid.`typeof`(data["getNumber"]) === "function") { - accessToken = data.getString("access_token") - refreshTokenNew = data.getString("refresh_token") - expiresAt = data.getNumber("expires_at") - } - if (accessToken != null && refreshTokenNew != null && expiresAt != null) { - this.setToken(accessToken, refreshTokenNew, expiresAt) - return@w true - } else { - this.clearToken() - return@w false - } - } - catch (e: Throwable) { - this.clearToken() - return@w false - } - }) - } - fun request(options: AkReqOptions, skipRefresh: Boolean?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - if (skipRefresh != true) { - var apikey: String? = null - val headersObj = options.headers - if (headersObj != null && UTSAndroid.`typeof`(headersObj["getString"]) === "function") { - apikey = headersObj.getString("apikey") - } - await(this.refreshTokenIfNeeded(apikey)) - } - val newHeaders = UTSJSONObject(UTSSourceMapPosition("newHeaders", "uni_modules/ak-req/ak-req.uts", 123, 15)) - if (options.headers != null) { - val originalHeaders = options.headers!! - if (UTSAndroid.`typeof`(originalHeaders["getString"]) === "function") { - val apikeyStr = originalHeaders.getString("apikey") - if (apikeyStr != null) { - newHeaders.set("apikey", apikeyStr) - } - val contentType = originalHeaders.getString("Content-Type") - if (contentType != null) { - newHeaders.set("Content-Type", contentType) - } - val prefer = originalHeaders.getString("Prefer") - if (prefer != null) { - newHeaders.set("Prefer", prefer) - } - val auth = originalHeaders.getString("Authorization") - if (auth != null) { - newHeaders.set("Authorization", auth) - } - } - } - if (newHeaders.getString("apikey") == null) { - if (SUPA_KEY != null && SUPA_KEY != "") { - newHeaders.set("apikey", SUPA_KEY) - } - } - val token = this.getToken() - if (token != null && token != "") { - newHeaders.set("Authorization", "Bearer " + token) - } - if (newHeaders.getString("Content-Type") == null) { - val contentType = options.contentType ?: "application/json" - if (contentType != null && contentType != "") { - newHeaders.set("Content-Type", contentType) - } - } - newHeaders.set("Accept", "application/json") - console.log("[AkReq.request] headers:", JSON.stringify(newHeaders), " at uni_modules/ak-req/ak-req.uts:175") - val headers = newHeaders - val timeout = options.timeout ?: 10000 - val maxRetry = Math.max(0, options.retryCount ?: 0) - val baseDelay = Math.max(0, options.retryDelayMs ?: 300) - val doOnce = fun(): UTSPromise> { - return UTSPromise>(fun(resolve, _reject){ - uni_request(RequestOptions(url = options.url, method = options.method ?: "GET", data = options.data, header = headers, timeout = timeout, success = fun(res){ - if (options.method == "HEAD") { - val result = AkReq.createResponse(res.statusCode, _uA(), res.header as UTSJSONObject) - resolve(result) - return - } - var data: Any? - if (UTSAndroid.`typeof`(res.data) == "string") { - val strData = res.data as String - if (strData.length > 0 && UTSRegExp("[^\\s]", "").test(strData)) { - try { - data = UTSAndroid.consoleDebugError(JSON.parse(strData), " at uni_modules/ak-req/ak-req.uts:196") as UTSJSONObject - } catch (e: Throwable) { - data = UTSJSONObject(object : UTSJSONObject() { - var raw = strData - }) - } - } else { - data = null - } - } else if (UTSArray.isArray(res.data)) { - data = res.data as UTSArray - } else { - val objData = res.data as UTSJSONObject? - data = objData - if (objData != null) { - val accessToken = objData.getString("access_token") - val refreshTokenNew = objData.getString("refresh_token") - val expiresAt = objData.getNumber("expires_at") - if (accessToken != null && refreshTokenNew != null && expiresAt != null) { - AkReq.setToken(accessToken, refreshTokenNew, expiresAt) - } - } - } - val result = AkReq.createResponse(res.statusCode, data ?: UTSJSONObject(), res.header as UTSJSONObject) - resolve(result) - } - , fail = fun(err){ - val errStatus = if ((err.errCode != null && UTSAndroid.`typeof`(err.errCode) === "number")) { - err.errCode - } else { - 0 - } - val result = AkReq.createResponse(errStatus, UTSJSONObject(), UTSJSONObject(), UniError("uni-request", errStatus, err.errMsg ?: "request fail")) - resolve(result) - } - )) - } - ) - } - var attempt: Number = 0 - var lastRes: AkReqResponse? = null - while(attempt <= maxRetry){ - val res = await(doOnce()) - lastRes = res - val status = res.status ?: 0 - val isOk = status >= 200 && status < 400 - if (isOk) { - return@w res - } - if (attempt === maxRetry) { - break - } - val delay = baseDelay * Math.pow(2, attempt) - await(UTSPromise(fun(r, _reject){ - setTimeout(fun(){ - r(Unit) - } - , delay) - } - )) - attempt++ - } - val finalRes = lastRes!!!! - if ((finalRes.status === 401) && (skipRefresh !== true)) { - try { - this.clearToken() - uni_showToast(ShowToastOptions(title = "未授权或登录已过期,请重新登录", icon = "none")) - } - catch (e: Throwable) {} - try {} catch (e: Throwable) {} - } - return@w finalRes - }) - } - fun upload(options: AkReqUploadOptions): UTSPromise> { - return wrapUTSPromise(suspend w@{ - var apikey: String? = null - val hdr = options.headers - if (hdr != null && UTSAndroid.`typeof`(hdr["getString"]) === "function") { - apikey = hdr.getString("apikey") - } - if (apikey == null && options.apikey != null) { - apikey = options.apikey - } - await(this.refreshTokenIfNeeded(if (apikey != null) { - apikey - } else { - null - } - )) - var headers = options.headers ?: (UTSJSONObject()) - val token = this.getToken() - if (token != null && token !== "") { - headers = Object.assign(UTSJSONObject(), headers, object : UTSJSONObject() { - var Authorization = "Bearer " + token - }) as UTSJSONObject - } - if (apikey != null && apikey !== "") { - headers = Object.assign(UTSJSONObject(), headers, _uO("apikey" to apikey)) as UTSJSONObject - } - headers = Object.assign(object : UTSJSONObject() { - var Accept = "application/json" - }, headers) as UTSJSONObject - val timeout = options.timeout ?: 10000 - val maxRetry = Math.max(0, options.retryCount ?: 0) - val baseDelay = Math.max(0, options.retryDelayMs ?: 300) - val doOnce = fun(): UTSPromise> { - return UTSPromise>(fun(resolve, _reject){ - val task = uni_uploadFile(UploadFileOptions(url = options.url, filePath = options.filePath, name = options.name, formData = options.formData ?: UTSJSONObject(), header = headers, timeout = timeout, success = fun(res: UploadFileSuccess){ - var parsed: UTSJSONObject? = null - try { - parsed = UTSAndroid.consoleDebugError(JSON.parse(res.data), " at uni_modules/ak-req/ak-req.uts:310") as UTSJSONObject - } - catch (e: Throwable) { - parsed = null - } - if (parsed != null) { - val accessToken = parsed.getString("access_token") - val refreshTokenNew = parsed.getString("refresh_token") - val expiresAt = parsed.getNumber("expires_at") - if (accessToken != null && refreshTokenNew != null && expiresAt != null) { - AkReq.setToken(accessToken, refreshTokenNew, expiresAt) - } - } - val result = AkReq.createResponse(res.statusCode, parsed ?: UTSJSONObject(), headers) - resolve(result) - } - , fail = fun(err){ - val errStatus = if ((err.errCode != null && UTSAndroid.`typeof`(err.errCode) === "number")) { - err.errCode - } else { - 0 - } - val result = AkReq.createResponse(errStatus, UTSJSONObject(), UTSJSONObject(), UniError("uni-upload", errStatus, err.errMsg ?: "upload fail")) - resolve(result) - } - )) - if (options.onProgress != null && task != null) { - val progressCallback = fun(res: OnProgressUpdateResult){ - val percent = res.progress as Number - val sent = res.totalBytesSent as Number? - val expected = res.totalBytesExpectedToSend as Number? - if (options.onProgress != null) { - options.onProgress!!(percent, sent, expected) - } - } - task.onProgressUpdate(progressCallback) - } - } - ) - } - var attempt: Number = 0 - var lastRes: AkReqResponse? = null - while(attempt <= maxRetry){ - val res = await(doOnce()) - lastRes = res - val status = res.status ?: 0 - val isOk = status >= 200 && status < 400 - if (isOk) { - return@w res - } - if (attempt === maxRetry) { - break - } - val delay = baseDelay * Math.pow(2, attempt) - await(UTSPromise(fun(resolve, _reject){ - setTimeout(fun(){ - resolve(Unit) - } - , delay) - } - )) - attempt++ - } - return@w lastRes!!!! - }) - } - fun createResponse(status: Number, data: Any, headers: UTSJSONObject, error: UniError? = null, total: Number? = null, page: Number? = null, limit: Number? = null, hasmore: Boolean? = null, origin: Any? = null): AkReqResponse { - return AkReqResponse(status = status, data = data, headers = headers, error = error, total = total, page = page, limit = limit, hasmore = hasmore, origin = origin) - } - } -} -val messages: UTSJSONObject = UTSJSONObject(UTSSourceMapPosition("messages", "uni_modules/i18n/index.uts", 4, 7)) -val defaultLocale = "zh-CN" -var currentLocale = defaultLocale -fun t(key: String, values: UTSJSONObject? = null, locale: String? = null): String { - return key -} -open class LocaleWrapper : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("LocaleWrapper", "uni_modules/i18n/index.uts", 17, 7) - } - open var value: String - get(): String { - return currentLocale - } - set(newLocale: String) { - currentLocale = newLocale - } -} -val localeObj = LocaleWrapper() -open class I18nGlobal : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("I18nGlobal", "uni_modules/i18n/index.uts", 27, 7) - } - open fun t(key: String, values: UTSJSONObject? = null, locale: String? = null): String { - return uni.UNICONSUMER.t(key, values, locale) - } - open var locale: LocaleWrapper = localeObj -} -open class I18nInstance : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("I18nInstance", "uni_modules/i18n/index.uts", 34, 7) - } - open var global: I18nGlobal = I18nGlobal() -} -val i18n = I18nInstance() -fun toUniError(error: Any, defaultMessage: String = "操作失败"): UniError { - if (error is UniError) { - return error as UniError - } - var errorMessage = defaultMessage - var errorCode: Number = -1 - try { - if (error is UTSError) { - errorMessage = if ((error as UTSError).message != null && (error as UTSError).message != "") { - (error as UTSError).message - } else { - defaultMessage - } - } else if (UTSAndroid.`typeof`(error) === "string") { - errorMessage = error as String - } else if (error != null && UTSAndroid.`typeof`(error) === "object") { - val errorObj = error as UTSJSONObject - var message: String = "" - if (errorObj["message"] != null) { - val msgValue = errorObj["message"] - if (UTSAndroid.`typeof`(msgValue) === "string") { - message = msgValue as String - } - } else if (errorObj["errMsg"] != null) { - val msgValue = errorObj["errMsg"] - if (UTSAndroid.`typeof`(msgValue) === "string") { - message = msgValue as String - } - } else if (errorObj["error"] != null) { - val msgValue = errorObj["error"] - if (UTSAndroid.`typeof`(msgValue) === "string") { - message = msgValue as String - } - } else if (errorObj["details"] != null) { - val msgValue = errorObj["details"] - if (UTSAndroid.`typeof`(msgValue) === "string") { - message = msgValue as String - } - } else if (errorObj["msg"] != null) { - val msgValue = errorObj["msg"] - if (UTSAndroid.`typeof`(msgValue) === "string") { - message = msgValue as String - } - } - if (message != "") { - errorMessage = message - } - var code: Number = 0 - if (errorObj["code"] != null) { - val codeValue = errorObj["code"] - if (UTSAndroid.`typeof`(codeValue) === "number") { - code = codeValue as Number - } - } else if (errorObj["errCode"] != null) { - val codeValue = errorObj["errCode"] - if (UTSAndroid.`typeof`(codeValue) === "number") { - code = codeValue as Number - } - } else if (errorObj["status"] != null) { - val codeValue = errorObj["status"] - if (UTSAndroid.`typeof`(codeValue) === "number") { - code = codeValue as Number - } - } - if (code != 0) { - errorCode = code - } - } - } - catch (e: Throwable) { - console.error("Error converting to UniError:", e, " at utils/utils.uts:128") - errorMessage = defaultMessage - } - val uniError = UniError("AppError", errorCode, errorMessage) - return uniError -} -open class AkSupaSignInResult ( - @JsonNotNull - open var access_token: String, - @JsonNotNull - open var refresh_token: String, - @JsonNotNull - open var expires_at: Number, - open var user: UTSJSONObject? = null, - open var token_type: String? = null, - open var expires_in: Number? = null, - @JsonNotNull - open var raw: UTSJSONObject, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaSignInResult", "components/supadb/aksupa.uts", 4, 13) - } -} -typealias CountOption = String -open class AkSupaSelectOptions ( - open var limit: Number? = null, - open var order: String? = null, - open var getcount: String? = null, - open var count: CountOption? = null, - open var head: Boolean? = null, - open var columns: String? = null, - open var single: Boolean? = null, - open var rangeFrom: Number? = null, - open var rangeTo: Number? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaSelectOptions", "components/supadb/aksupa.uts", 16, 13) - } -} -open class OrderOptions ( - open var ascending: Boolean? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderOptions", "components/supadb/aksupa.uts", 28, 13) - } -} -open class AkSupaSessionInfo ( - open var session: AkSupaSignInResult? = null, - open var user: UTSJSONObject? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaSessionInfo", "components/supadb/aksupa.uts", 32, 13) - } -} -open class AkSupaCondition ( - @JsonNotNull - open var field: String, - @JsonNotNull - open var op: String, - @JsonNotNull - open var value: Any, - @JsonNotNull - open var logic: String, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaCondition", "components/supadb/aksupa.uts", 38, 6) - } -} -open class AkSupaQueryBuilder : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaQueryBuilder", "components/supadb/aksupa.uts", 44, 14) - } - private var _supa: AkSupa - private var _table: String - private var _filter: UTSJSONObject? = null - private var _options: AkSupaSelectOptions = AkSupaSelectOptions() - private var _values: Any? = null - private var _single: Boolean = false - private var _conditions: UTSArray = _uA() - private var _nextLogic: String = "and" - private var _action: String? = null - private var _orString: String? = null - private var _rpcFunction: String? = null - private var _rpcParams: UTSJSONObject? = null - private var _page: Number = 1 - constructor(supa: AkSupa, table: String){ - this._supa = supa - this._table = table - } - open fun eq(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "eq", value) - } - open fun neq(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "neq", value) - } - open fun gt(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "gt", value) - } - open fun gte(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "gte", value) - } - open fun lt(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "lt", value) - } - open fun lte(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "lte", value) - } - open fun like(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "like", value) - } - open fun ilike(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "ilike", value) - } - open fun `in`(field: String, value: UTSArray): AkSupaQueryBuilder { - return this._addCond(field, "in", value) - } - open fun `is`(field: String, value: Any?): AkSupaQueryBuilder { - return this._addCond(field, "is", value) - } - open fun contains(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "cs", value) - } - open fun containedBy(field: String, value: Any): AkSupaQueryBuilder { - return this._addCond(field, "cd", value) - } - open fun not(field: String, opOrValue: Any, value: Any? = null): AkSupaQueryBuilder { - if (value != null) { - val combinedOp = "not." + opOrValue - var safeValue = value - if (value == null) { - safeValue = "null" - } - return this._addCond(field, combinedOp, safeValue) - } else { - var safeValue = opOrValue - if (opOrValue == null) { - safeValue = "null" - } - return this._addCond(field, "not", safeValue) - } - } - open fun and(): AkSupaQueryBuilder { - this._nextLogic = "and" - return this - } - open fun or(str: String?): AkSupaQueryBuilder { - if (UTSAndroid.`typeof`(str) == "string") { - this._orString = str - } else { - this._nextLogic = "or" - } - return this - } - private fun _addCond(afield: String, op: String, value: Any?): AkSupaQueryBuilder { - val field = UTSAndroid.consoleDebugError(encodeURIComponent(afield), " at components/supadb/aksupa.uts:109")!!!! - var safeValue: Any? = value - if (value == null) { - safeValue = "null" - } else if (UTSArray.isArray(value)) { - safeValue = value - } else if (UTSAndroid.`typeof`(value) === "number") { - safeValue = value - } else if (UTSAndroid.`typeof`(value) === "boolean") { - safeValue = value - } else if (UTSAndroid.`typeof`(value) !== "string") { - try { - safeValue = value.toString() - } - catch (e: Throwable) { - safeValue = "" - } - } - this._conditions.push(AkSupaCondition(field = field, op = op, value = safeValue ?: "", logic = this._nextLogic)) - this._nextLogic = "and" - return this - } - open fun where(filter: UTSJSONObject): AkSupaQueryBuilder { - this._filter = filter - return this - } - open fun page(page: Number): AkSupaQueryBuilder { - this._page = page - var limit: Number = 0 - if (UTSAndroid.`typeof`(this._options.limit) == "number") { - limit = this._options.limit ?: 0 - } - if (limit > 0) { - val from = (page - 1) * limit - val to = from + limit - 1 - this.range(from, to) - } - return this - } - open fun limit(limit: Number): AkSupaQueryBuilder { - this._options.limit = limit - val from = (this._page - 1) * limit - val to = from + limit - 1 - this.range(from, to) - return this - } - open fun order(order: String, options: OrderOptions?): AkSupaQueryBuilder { - if (options != null && options.ascending == false) { - this._options.order = order + ".desc" - } else { - this._options.order = order + ".asc" - } - return this - } - open fun columns(columns: String): AkSupaQueryBuilder { - this._options.columns = columns - return this - } - open fun count(option: CountOption = "exact"): AkSupaQueryBuilder { - this._options.count = option - this._options.head = true - return this - } - open fun countExact(): AkSupaQueryBuilder { - return this.count("exact") - } - open fun countEstimated(): AkSupaQueryBuilder { - return this.count("estimated") - } - open fun countPlanned(): AkSupaQueryBuilder { - return this.count("planned") - } - open fun head(enable: Boolean = true): AkSupaQueryBuilder { - this._options.head = enable - return this - } - open fun values(values: UTSJSONObject): AkSupaQueryBuilder { - this._values = values - return this - } - open fun single(): AkSupaQueryBuilder { - this._single = true - return this - } - open fun range(from: Number, to: Number): AkSupaQueryBuilder { - this._options.rangeFrom = from - this._options.rangeTo = to - return this - } - private fun _valToStr(kVal: Any): String { - if (kVal == null) { - return "" - } - try { - return kVal.toString() - } - catch (e: Throwable) { - try { - return JSON.stringify(kVal) - } - catch (e2: Throwable) { - return "" - } - } - } - private fun _buildFilter(): String? { - if (this._conditions.length == 0 && (this._orString == null || this._orString == "")) { - if (this._filter == null) { - return null - } - return buildSupabaseFilterQuery(this._filter) - } - val ands: UTSArray = _uA() - val ors: UTSArray = _uA() - for(c in resolveUTSValueIterator(this._conditions)){ - if (c.logic == "or") { - ors.push(c) - } else { - ands.push(c) - } - } - val params: UTSArray = _uA() - for(cond in resolveUTSValueIterator(ands)){ - val k = cond.field - val op = cond.op - val kVal = cond.value - if ((op == "in" || op == "not.in") && UTSArray.isArray(kVal)) { - params.push("" + k + "=" + op + ".(" + (kVal as UTSArray).map(fun(x): String { - return this._valToStr(x) - }).map(fun(x): String? { - return UTSAndroid.consoleDebugError(encodeURIComponent(x), " at components/supadb/aksupa.uts:261") - }).join(",") + ")") - } else if ((op == "is" || op == "not.is") && (kVal == null || kVal == "null")) { - params.push("" + k + "=" + op + ".null") - } else if (op == "like" || op == "ilike") { - params.push("" + k + "=" + op + "." + this._valToStr(kVal)) - } else { - params.push("" + k + "=" + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(this._valToStr(kVal)), " at components/supadb/aksupa.uts:270")) - } - } - if (ors.length > 0) { - val orStr = ors.map(fun(o): String { - val k = o.field - val op = o.op - val kVal = o.value - if (op == "in" && UTSArray.isArray(kVal)) { - return "" + k + ".in.(" + (kVal as UTSArray).map(fun(x): String? { - return UTSAndroid.consoleDebugError(encodeURIComponent(this._valToStr(x)), " at components/supadb/aksupa.uts:280") - } - ).join(",") + ")" - } - if (op == "is" && (kVal == null)) { - return "" + k + ".is.null" - } - if (op == "like" || op == "ilike") { - return "" + k + "." + op + "." + this._valToStr(kVal) - } - return "" + k + "." + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(this._valToStr(kVal)), " at components/supadb/aksupa.uts:288") - } - ).join(",") - params.push("or=(" + orStr + ")") - } - if (this._orString != null && this._orString !== "") { - console.log("[AkSupaQueryBuilder] or字符串:", this._orString, " at components/supadb/aksupa.uts:301") - params.push("or=(" + this._orString!!!! + ")") - } - return if (params.length > 0) { - params.join("&") - } else { - null - } - } - open fun select(columns: String = "*", opt: UTSJSONObject? = null): AkSupaQueryBuilder { - this._action = "select" - if (columns != null) { - this._options.columns = columns - } - if (opt != null) { - Object.assign(this._options, opt) - } - return this - } - open fun insert(values: Any): AkSupaQueryBuilder { - this._action = "insert" - if (UTSArray.isArray(values)) { - if ((values as UTSArray).length == 0) { - throw toUniError("No values set for insert", "Insert操作缺少数据") - } - } else { - if (UTSJSONObject.keys(values as UTSJSONObject).length == 0) { - throw toUniError("No values set for insert", "Insert操作缺少数据") - } - } - this._values = values - return this - } - open fun update(values: UTSJSONObject): AkSupaQueryBuilder { - this._action = "update" - if (UTSJSONObject.keys(values).length == 0) { - throw toUniError("No values set for update", "更新操作缺少数据") - } - this._values = values - return this - } - open fun `delete`(): AkSupaQueryBuilder { - this._action = "delete" - val filter = this._buildFilter() - if (filter == null) { - throw toUniError("No filter set for delete", "删除操作缺少筛选条件") - } - return this - } - open fun rpc(functionName: String, params: UTSJSONObject?): AkSupaQueryBuilder { - this._action = "rpc" - this._rpcFunction = functionName - this._rpcParams = params - return this - } - open fun execute(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val filter = this._buildFilter() - console.log("[AkSupaQueryBuilder] execute - 表:", this._table, "filter:", filter, " at components/supadb/aksupa.uts:357") - var res: Any - when (this._action) { - "select" -> - { - if (this._single) { - this._options.single = true - if (this._options.limit == null) { - this._options.limit = 1 - } - } - if (this._options.limit != null) { - if (this._options.getcount == null && this._options.count == null) { - this._options.count = "exact" - } - } - res = await(this._supa.select(this._table, filter, this._options)) - var total: Number = 0 - var hasmore = false - val page = this._page - var resdata = res.data - var limit: Number = 0 - if (UTSAndroid.`typeof`(this._options.limit) == "number") { - limit = this._options.limit ?: 0 - } else if (UTSArray.isArray(resdata)) { - limit = (resdata as UTSArray).length - } - var contentRange: String? = null - if (res.headers != null) { - var theheader = res.headers as UTSJSONObject - if (UTSAndroid.`typeof`(theheader["get"]) == "function") { - contentRange = theheader.get("content-range") as String? - } else if (UTSAndroid.`typeof`(theheader["content-range"]) == "string") { - contentRange = theheader["content-range"] as String - } - } - if (contentRange != null) { - val match = UTSRegExp("\\/(\\d+)\$", "").exec(contentRange) - if (match != null) { - total = parseInt(match[1] ?: "0") - hasmore = (page * limit) < total - } - } - if (total == 0) { - val resStr = JSON.stringify(res) - val resParsed = UTSAndroid.consoleDebugError(JSON.parse(resStr), " at components/supadb/aksupa.uts:403") - if (resParsed != null) { - val resObj = resParsed as UTSJSONObject - val countVal = resObj.getNumber("count") - if (countVal != null) { - total = countVal - } else if (UTSArray.isArray(resdata)) { - total = (resdata as UTSArray).length - } else { - total = 0 - } - } else if (UTSArray.isArray(resdata)) { - total = (resdata as UTSArray).length - } else { - total = 0 - } - } - if (!hasmore) { - hasmore = (page * limit) < total - } - if (this._options.head == true) { - return@w AkReqResponse(data = null, total = total, page = page, limit = limit, hasmore = false, origin = res, status = res.status, headers = res.headers, error = res.error) - } - return@w AkReqResponse(data = res.data, total = total, page = page, limit = limit, hasmore = hasmore, origin = res, status = res.status, headers = res.headers, error = res.error) - } - "insert" -> - { - val insertValues = this._values - if (insertValues == null) { - throw toUniError("No values set for insert", "插入操作缺少数据") - } - res = await(this._supa.insert(this._table, insertValues)) - } - "update" -> - { - val updateValues = this._values - if (updateValues == null) { - throw toUniError("No values set for update", "更新操作缺少数据") - } - if (filter == null) { - throw toUniError("No filter set for update", "更新操作缺少筛选条件") - } - if (UTSArray.isArray(updateValues)) { - throw toUniError("Update does not support array values", "更新操作不支持数组数据") - } - res = await(this._supa.update(this._table, filter, updateValues as UTSJSONObject)) - } - "delete" -> - { - if (filter == null) { - throw toUniError("No filter set for delete", "删除操作缺少筛选条件") - } - res = await(this._supa.`delete`(this._table, filter)) - } - "rpc" -> - { - if (this._rpcFunction == null) { - throw toUniError("No RPC function specified", "RPC调用缺少函数名") - } - res = await(this._supa.rpc(this._rpcFunction as String, this._rpcParams)) - } - else -> - res = await(this._supa.select(this._table, filter, this._options)) - } - if (res["data"] == null) { - res["data"] = UTSJSONObject() - } - return@w res - }) - } - inline fun executeAs(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val result = await(this.execute()) - if (result.data == null) { - return@w result as AkReqResponse - } - var convertedData: Any? = null - try { - if (UTSArray.isArray(result.data)) { - val dataArray = result.data as UTSArray - val convertedArray: UTSArray = _uA() - run { - var i: Number = 0 - while(i < dataArray.length){ - val item = dataArray[i] - if (item is UTSJSONObject) { - val parsed = (item as UTSJSONObject).parse() - if (parsed != null) { - convertedArray.push(parsed) - } else { - console.warn("转换失败,使用原始对象:", item, " at components/supadb/aksupa.uts:508") - convertedArray.push(item) - } - } else { - val jsonObj = UTSJSONObject(item, UTSSourceMapPosition("jsonObj", "components/supadb/aksupa.uts", 516, 31)) - val parsed = jsonObj.parse() - if (parsed != null) { - convertedArray.push(parsed) - } else { - console.warn("转换失败,使用原始对象:", item, " at components/supadb/aksupa.uts:523") - convertedArray.push(item) - } - } - i++ - } - } - convertedData = convertedArray - } else { - val convertedArray: UTSArray = _uA() - if (result.data is UTSJSONObject) { - val parsed = (result.data as UTSJSONObject).parse() - if (parsed != null) { - convertedArray.push(parsed) - } - } else { - val jsonObj = UTSJSONObject(result.data, UTSSourceMapPosition("jsonObj", "components/supadb/aksupa.uts", 541, 27)) - val parsed = jsonObj.parse() - if (parsed != null) { - convertedArray.push(parsed) - } - } - convertedData = convertedArray - } - } - catch (e: Throwable) { - console.warn("数据类型转换失败,使用原始数据:", e, " at components/supadb/aksupa.uts:554") - console.log(result.data, " at components/supadb/aksupa.uts:555") - convertedData = result.data as Any - } - result.data = convertedData - return@w result as AkReqResponse - }) - } -} -open class AkSupaStorageBucket : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaStorageBucket", "components/supadb/aksupa.uts", 604, 7) - } - private var supa: AkSupa - private var bucket: String - constructor(supa: AkSupa, bucket: String){ - this.supa = supa - this.bucket = bucket - } - open fun upload(path: String, filePath: String, options: UTSJSONObject?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val url = "" + this.supa.baseUrl + "/storage/v1/object/" + this.bucket + "/" + path - var headers: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 613, 13), "apikey" to this.supa.apikey) - val formData: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("formData", "components/supadb/aksupa.uts", 614, 15)) { - } - if (options != null && UTSAndroid.`typeof`(options) == "object") { - if (UTSAndroid.`typeof`(options["get"]) == "function" && options.get("x-upsert") != null) { - headers["x-upsert"] = options.get("x-upsert") - } - val keys = UTSJSONObject.keys(options) - run { - var i: Number = 0 - while(i < keys.length){ - val k = keys[i] - if (k != "x-upsert") { - formData[k] = options.get(k) - } - i++ - } - } - } - val token = AkReq.getToken() - if (token != null && !(token == "")) { - headers["Authorization"] = "Bearer " + token - } - return@w await(AkReq.upload(AkReqUploadOptions(url = url, filePath = filePath, name = "file", apikey = this.supa.apikey, formData = formData, headers = headers))) - }) - } -} -open class AkSupaStorageApi : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaStorageApi", "components/supadb/aksupa.uts", 640, 14) - } - private var _supa: AkSupa - constructor(supa: AkSupa){ - this._supa = supa - } - open fun from(bucket: String): AkSupaStorageBucket { - return AkSupaStorageBucket(this._supa, bucket) - } -} -open class AkSupa : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupa", "components/supadb/aksupa.uts", 649, 14) - } - open lateinit var baseUrl: String - open lateinit var apikey: String - open var session: AkSupaSignInResult? = null - open var user: UTSJSONObject? = null - open lateinit var storage: AkSupaStorageApi - constructor(baseUrl: String, apikey: String){ - this.baseUrl = baseUrl - this.apikey = apikey - this.storage = AkSupaStorageApi(this) - try { - this.hydrateSessionFromStorage() - } - catch (e: Throwable) {} - } - open fun hydrateSessionFromStorage(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val token = AkReq.getToken() - if (token == null || token == "") { - return@w false - } - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/user", method = "GET", headers = _uO("apikey" to this.apikey, "Authorization" to ("Bearer " + token), "Content-Type" to "application/json")), false)) - val status = res.status ?: 0 - if (!(status >= 200 && status < 400)) { - return@w false - } - var user: UTSJSONObject? = null - try { - user = UTSJSONObject(res.data) - } - catch (e: Throwable) { - user = null - } - if (user == null) { - return@w false - } - this.user = user - if (this.session == null) { - this.session = AkSupaSignInResult(access_token = token, refresh_token = AkReq.getRefreshToken() ?: "", expires_at = AkReq.getExpiresAt() ?: 0, user = user, token_type = "bearer", expires_in = 0, raw = user) - } - return@w true - } - catch (e: Throwable) { - return@w false - } - }) - } - open fun resetPassword(email: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/recover", method = "POST", headers = _uO("apikey" to this.apikey, "Content-Type" to "application/json"), data = _uO("email" to email), contentType = "application/json"), false)) - return@w res.status == 200 - }) - } - open fun signOut(): UTSPromise { - return wrapUTSPromise(suspend { - this.session = null - this.user = null - }) - } - open fun signIn(email: String, password: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (this.apikey == null || this.apikey.trim() === "" || this.apikey === "your-anon-key") { - throw UTSError("Supabase 配置错误:请在 ak/config.uts 中设置 SUPA_KEY(当前为占位符)") - } - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 737, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - val reqData = UTSJSONObject(UTSSourceMapPosition("reqData", "components/supadb/aksupa.uts", 740, 15)) - reqData.set("email", email) - reqData.set("password", password) - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=password", method = "POST", headers = headers, data = reqData, contentType = "application/json"), false)) - val status = res.status ?: 0 - if (!(status >= 200 && status < 400)) { - var msg = "user.login.login_failed" - try { - if (res.data != null) { - val obj = UTSJSONObject(res.data, UTSSourceMapPosition("obj", "components/supadb/aksupa.uts", 756, 27)) - val rawMsg = obj.getString("message") ?: obj.getString("error") ?: obj.getString("msg") ?: obj.getString("description") ?: obj.getString("error_description") ?: "" - if (rawMsg.includes("Invalid login credentials")) { - msg = "用户名或密码错误" - } else if (rawMsg != "") { - msg = rawMsg - } - } - } - catch (e: Throwable) {} - throw UTSError(msg) - } - var data: UTSJSONObject - try { - data = UTSJSONObject(res.data) - } - catch (e: Throwable) { - data = UTSJSONObject(UTSJSONObject()) - } - val access_token = data.getString("access_token") ?: "" - val refresh_token = data.getString("refresh_token") ?: "" - val expires_at = data.getNumber("expires_at") ?: 0 - val user = data.getJSON("user") - AkReq.setToken(access_token, refresh_token, expires_at) - val session = AkSupaSignInResult(access_token = access_token, refresh_token = refresh_token, expires_at = expires_at, user = user, token_type = data.getString("token_type") ?: "", expires_in = data.getNumber("expires_in") ?: 0, raw = data) - this.session = session - this.user = user - return@w session - }) - } - open fun getSession(): AkSupaSessionInfo { - return AkSupaSessionInfo(session = this.session, user = this.user) - } - open fun signUp(email: String, password: String, options: UTSJSONObject? = null): UTSPromise { - return wrapUTSPromise(suspend w@{ - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 808, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 811, 15)) - data.set("email", email) - data.set("password", password) - if (options != null) { - val dataField = options.getJSON("data") - if (dataField != null) { - data.set("data", dataField) - } - } - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/signup", method = "POST", headers = headers, data = data, contentType = "application/json"), false)) - return@w res.data as UTSJSONObject - }) - } - open fun select(table: String, filter: String?, options: AkSupaSelectOptions?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - var url = this.baseUrl + "/rest/v1/" + table - var headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 837, 13)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - var params: UTSArray = _uA() - if (options != null) { - if (options.columns != null && !(options.columns == "")) { - params.push("select=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.columns ?: ""), " at components/supadb/aksupa.uts:844")) - } - if (options.limit != null) { - params.push("limit=" + options.limit!!) - } - if (options.order != null && !(options.order == "")) { - params.push("order=" + UTSAndroid.consoleDebugError(encodeURIComponent(options.order ?: ""), " at components/supadb/aksupa.uts:850")) - } - if (options.rangeFrom != null && options.rangeTo != null) { - headers["Range"] = "" + options.rangeFrom!! + "-" + options.rangeTo!! - headers["Range-Unit"] = "items" - } - var countOption = options.count ?: options.getcount - if (countOption != null) { - headers["Prefer"] = "count=" + countOption - } - if (options.head == true) { - if (headers["Prefer"] != null) { - headers["Prefer"] = (headers["Prefer"] as String) + ",return=minimal" - } else { - headers["Prefer"] = "return=minimal" - } - } - if (options.single == true) { - if (headers["Prefer"] != null) { - headers["Prefer"] = (headers["Prefer"] as String) + ",return=representation,single-object" - } else { - headers["Prefer"] = "return=representation,single-object" - } - } - if (options.columns == null) { - params.push("select=*") - } else if (options.columns == "") { - params.push("select=*") - } - } else { - params.push("select=*") - } - if (filter != null && filter !== "") { - params.push(filter!!!!) - } - if (params.length > 0) { - url += "?" + params.join("&") - } - var httpMethod: String = "GET" - if (options != null && options.head == true) { - httpMethod = "HEAD" - } - var reqOptions = AkReqOptions(url = url, method = httpMethod, headers = headers) - return@w await(this.requestWithAutoRefresh(reqOptions)) - }) - } - open fun select_uts(table: String, filter: UTSJSONObject?, options: AkSupaSelectOptions?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val filter_str = buildSupabaseFilterQuery(filter) - return@w this.select(table, filter_str, options) - }) - } - open fun insert(table: String, row: Any): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val url = this.baseUrl + "/rest/v1/" + table - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 925, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - headers.set("Prefer", "return=representation") - var reqOptions = AkReqOptions(url = url, method = "POST", headers = headers, data = row, contentType = "application/json") - return@w await(this.requestWithAutoRefresh(reqOptions)) - }) - } - open fun update(table: String, filter: String?, values: UTSJSONObject): UTSPromise> { - return wrapUTSPromise(suspend w@{ - var url = this.baseUrl + "/rest/v1/" + table - if (filter != null && filter !== "") { - url += "?" + filter - } - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 951, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - headers.set("Prefer", "return=representation") - var reqOptions = AkReqOptions(url = url, method = "PATCH", headers = headers, data = values, contentType = "application/json") - return@w await(this.requestWithAutoRefresh(reqOptions)) - }) - } - open fun `delete`(table: String, filter: String?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - var url = this.baseUrl + "/rest/v1/" + table - if (filter != null && filter !== "") { - url += "?" + filter - } - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 976, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - headers.set("Prefer", "return=representation") - var reqOptions = AkReqOptions(url = url, method = "DELETE", headers = headers, contentType = "application/json") - return@w await(this.requestWithAutoRefresh(reqOptions)) - }) - } - open fun rpc(functionName: String, params: UTSJSONObject?): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val url = this.baseUrl + "/rest/v1/rpc/" + functionName - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 997, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - var reqOptions = AkReqOptions(url = url, method = "POST", headers = headers, data = params ?: UTSJSONObject(), contentType = "application/json") - return@w await(this.requestWithAutoRefresh(reqOptions)) - }) - } - open fun from(tableName: String): AkSupaQueryBuilder { - return AkSupaQueryBuilder(this, tableName) - } - open fun channel(topic: String): AkSupaRealtimeChannel { - return AkSupaRealtimeChannel(this, topic) - } - open fun removeChannel(channel: AkSupaRealtimeChannel): UTSPromise { - channel.unsubscribe() - return UTSPromise.resolve("ok") - } - open fun refreshSession(): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (this.session == null || this.session?.refresh_token == null) { - return@w false - } - try { - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 1036, 19)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 1039, 19)) - data.set("refresh_token", this.session?.refresh_token) - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/token?grant_type=refresh_token", method = "POST", headers = headers, data = data, contentType = "application/json"), false)) - if (res.status == 200 && (res.data != null)) { - val data = res.data as UTSJSONObject - val access_token = data.getString("access_token") ?: "" - val refresh_token = data.getString("refresh_token") ?: "" - val expires_at = data.getNumber("expires_at") ?: 0 - val user = data.getJSON("user") - this.session = AkSupaSignInResult(access_token = access_token, refresh_token = refresh_token, expires_at = expires_at, user = user, token_type = data.getString("token_type") ?: "", expires_in = data.getNumber("expires_in") ?: 0, raw = data) - this.user = user - AkReq.setToken(access_token, refresh_token, expires_at) - return@w true - } - return@w false - } - catch (e: Throwable) { - return@w false - } - }) - } - open fun updateUserMetadata(metadata: UTSJSONObject): UTSPromise { - return wrapUTSPromise(suspend w@{ - val headers = UTSJSONObject(UTSSourceMapPosition("headers", "components/supadb/aksupa.uts", 1075, 15)) - headers.set("apikey", this.apikey) - headers.set("Content-Type", "application/json") - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - val data = UTSJSONObject(UTSSourceMapPosition("data", "components/supadb/aksupa.uts", 1079, 15)) - data.set("data", metadata) - val res = await(AkReq.request(AkReqOptions(url = this.baseUrl + "/auth/v1/user", method = "PUT", headers = headers, data = data, contentType = "application/json"), false)) - return@w res.data as UTSJSONObject - }) - } - open fun requestWithAutoRefresh(reqOptions: AkReqOptions, isRetry: Boolean = false): UTSPromise> { - return wrapUTSPromise(suspend w@{ - var res = await(AkReq.request(reqOptions, false)) - val isJwtExpired = (res.status == 401) - val isUnauthorized = (res.status == 401) - if ((isJwtExpired || isUnauthorized) && !isRetry) { - val ok = await(this.refreshSession()) - if (ok) { - var headers = reqOptions.headers - if (headers == null) { - headers = UTSJSONObject() - } - if (UTSAndroid.`typeof`(headers["set"]) == "function") { - headers.set("Authorization", "Bearer " + (AkReq.getToken() ?: "")) - reqOptions.headers = headers - } - res = await(AkReq.request(reqOptions, false)) - } else { - uni_removeStorageSync("user_id") - uni_removeStorageSync("token") - console.log("登录已过期,请重新登录", " at components/supadb/aksupa.uts:1133") - throw toUniError("登录已过期,请重新登录", "用户认证失败") - } - } - return@w res - }) - } -} -fun buildSupabaseFilterQuery(reassignedFilter: UTSJSONObject?): String { - var filter = reassignedFilter - if (filter == null) { - return "" - } - if (UTSAndroid.`typeof`(filter["get"]) !== "function") { - try { - filter = UTSJSONObject(filter as Any) - } - catch (e: Throwable) { - console.warn("filter 不是 UTSJSONObject,且无法转换", filter, " at components/supadb/aksupa.uts:1150") - return "" - } - } - val params: UTSArray = _uA() - val keys: UTSArray = UTSJSONObject.keys(filter) - run { - var i: Number = 0 - while(i < keys.length){ - val k = keys[i] - val v = filter.get(k) - if (k == "or" && UTSAndroid.`typeof`(v) == "string") { - params.push("or=(" + v as String + ")") - i++ - continue - } - if (v != null && UTSAndroid.`typeof`(v) == "object" && UTSAndroid.`typeof`((v as UTSJSONObject)["get"]) == "function") { - val vObj = v as UTSJSONObject - val opKeys = UTSJSONObject.keys(vObj) - run { - var j: Number = 0 - while(j < opKeys.length){ - val op = opKeys[j] - val opVal = vObj.get(op) - if ((op == "in" || op == "not.in") && UTSArray.isArray(opVal)) { - params.push("" + k + "=" + op + ".(" + (opVal as UTSArray).map(fun(x): String? { - return if (UTSAndroid.`typeof`(x) == "object") { - UTSAndroid.consoleDebugError(encodeURIComponent(JSON.stringify(x)), " at components/supadb/aksupa.uts:1152") - } else { - UTSAndroid.consoleDebugError(encodeURIComponent(x.toString()), " at components/supadb/aksupa.uts:1152") - } - }).join(",") + ")") - } else if (op == "is" && (opVal == null || opVal == "null")) { - params.push("" + k + "=is.null") - } else { - val opvalstr: String = if ((UTSAndroid.`typeof`(opVal) == "object")) { - JSON.stringify(opVal) - } else { - (opVal as String) - } - params.push("" + k + "=" + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(opvalstr), " at components/supadb/aksupa.uts:1159")) - } - j++ - } - } - } else if (v != null && UTSAndroid.`typeof`(v) == "object") { - val vObj = v as UTSJSONObject - val opKeys = UTSJSONObject.keys(vObj) - run { - var j: Number = 0 - while(j < opKeys.length){ - val op = opKeys[j] - val opVal = vObj.get(op) - params.push("" + k + "=" + op + "." + UTSAndroid.consoleDebugError(encodeURIComponent(if (!(opVal == null)) { - if (UTSAndroid.`typeof`(opVal) == "object") { - JSON.stringify(opVal) - } else { - opVal.toString() - } - } else { - "" - }), " at components/supadb/aksupa.uts:1169")) - j++ - } - } - } else { - params.push("" + k + "=eq." + UTSAndroid.consoleDebugError(encodeURIComponent(if (!(v == null)) { - v.toString() - } else { - "" - } - ), " at components/supadb/aksupa.uts:1173")) - } - i++ - } - } - return params.join("&") -} -fun createClient(url: String, key: String): AkSupa { - return AkSupa(url, key) -} -open class AkSupaRealtimeChannel : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AkSupaRealtimeChannel", "components/supadb/aksupa.uts", 1187, 14) - } - private var _supa: AkSupa - private var _topic: String - private var _timer: Number = 0 - private var _callback: ((payload: Any) -> Unit)? = null - private var _table: String = "" - private var _lastTime: String = Date().toISOString() - private var _isSubscribed: Boolean = false - constructor(supa: AkSupa, topic: String){ - this._supa = supa - this._topic = topic - } - open fun on(type: String, filter: UTSJSONObject, callback: (payload: Any) -> Unit): AkSupaRealtimeChannel { - val table = filter.getString("table") - if (table != null) { - this._table = table - } - this._callback = callback - return this - } - open fun subscribe(callback: ((status: String, err: Any?) -> Unit)?): AkSupaRealtimeChannel { - if (this._isSubscribed) { - return this - } - this._isSubscribed = true - if (callback != null) { - callback("SUBSCRIBED", null) - } - if (this._table == "") { - console.warn("Realtime check: No table specified for polling.", " at components/supadb/aksupa.uts:1240") - return this - } - this._timer = setInterval(fun(){ - this._checkUpdates() - } - , 3000) - return this - } - open fun unsubscribe() { - if (this._timer > 0) { - clearInterval(this._timer) - this._timer = 0 - } - this._isSubscribed = false - } - private fun _checkUpdates(): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (!this._isSubscribed || this._table == "") { - return@w - } - try { - val now = Date().toISOString() - val res = await(this._supa.from(this._table).select("*").gt("created_at", this._lastTime).order("created_at", OrderOptions(ascending = true)).execute()) - if (res.error == null && res.data != null) { - var list: UTSArray = _uA() - if (UTSArray.isArray(res.data)) { - list = res.data as UTSArray - } - if (list.length > 0) { - val lastItem = list[list.length - 1] - var lastTimeStr: String? = null - if (lastItem is UTSJSONObject) { - lastTimeStr = (lastItem as UTSJSONObject).getString("created_at") - } else { - val j = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(lastItem)), " at components/supadb/aksupa.uts:1263") as UTSJSONObject - lastTimeStr = j.getString("created_at") - } - if (lastTimeStr != null) { - this._lastTime = lastTimeStr - } else { - this._lastTime = now - } - if (this._callback != null) { - list.forEach(fun(item){ - val payload: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("payload", "components/supadb/aksupa.uts", 1276, 35)) { - var `new` = item - var eventType = "INSERT" - var old = null - } - this._callback?.invoke(payload) - } - ) - } - } - } - } - catch (e: Throwable) { - console.error("Realtime polling error:", e, " at components/supadb/aksupa.uts:1315") - } - }) - } -} -val supaInstance = createClient(SUPA_URL, SUPA_KEY) -val supaReady = UTSPromise.resolve(true) -open class UserType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var phone: String, - open var email: String? = null, - open var nickname: String? = null, - open var avatar_url: String? = null, - @JsonNotNull - open var gender: Number, - @JsonNotNull - open var user_type: Number, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserType", "types/mall-types.uts", 3, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserTypeReactiveObject : UserType, IUTSReactive { - override var __v_raw: UserType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, phone = __v_raw.phone, email = __v_raw.email, nickname = __v_raw.nickname, avatar_url = __v_raw.avatar_url, gender = __v_raw.gender, user_type = __v_raw.user_type, status = __v_raw.status, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserTypeReactiveObject { - return UserTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var email: String? - get() { - return _tRG(__v_raw, "email", __v_raw.email, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("email")) { - return - } - val oldValue = __v_raw.email - __v_raw.email = value - _tRS(__v_raw, "email", oldValue, value) - } - override var nickname: String? - get() { - return _tRG(__v_raw, "nickname", __v_raw.nickname, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("nickname")) { - return - } - val oldValue = __v_raw.nickname - __v_raw.nickname = value - _tRS(__v_raw, "nickname", oldValue, value) - } - override var avatar_url: String? - get() { - return _tRG(__v_raw, "avatar_url", __v_raw.avatar_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avatar_url")) { - return - } - val oldValue = __v_raw.avatar_url - __v_raw.avatar_url = value - _tRS(__v_raw, "avatar_url", oldValue, value) - } - override var gender: Number - get() { - return _tRG(__v_raw, "gender", __v_raw.gender, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("gender")) { - return - } - val oldValue = __v_raw.gender - __v_raw.gender = value - _tRS(__v_raw, "gender", oldValue, value) - } - override var user_type: Number - get() { - return _tRG(__v_raw, "user_type", __v_raw.user_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_type")) { - return - } - val oldValue = __v_raw.user_type - __v_raw.user_type = value - _tRS(__v_raw, "user_type", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class MerchantType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var shop_name: String, - open var shop_logo: String? = null, - open var shop_banner: String? = null, - open var shop_description: String? = null, - @JsonNotNull - open var contact_name: String, - @JsonNotNull - open var contact_phone: String, - @JsonNotNull - open var shop_status: Number, - @JsonNotNull - open var rating: Number, - @JsonNotNull - open var total_sales: Number, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MerchantType", "types/mall-types.uts", 55, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return MerchantTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class MerchantTypeReactiveObject : MerchantType, IUTSReactive { - override var __v_raw: MerchantType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: MerchantType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, shop_name = __v_raw.shop_name, shop_logo = __v_raw.shop_logo, shop_banner = __v_raw.shop_banner, shop_description = __v_raw.shop_description, contact_name = __v_raw.contact_name, contact_phone = __v_raw.contact_phone, shop_status = __v_raw.shop_status, rating = __v_raw.rating, total_sales = __v_raw.total_sales, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): MerchantTypeReactiveObject { - return MerchantTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var shop_name: String - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var shop_logo: String? - get() { - return _tRG(__v_raw, "shop_logo", __v_raw.shop_logo, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_logo")) { - return - } - val oldValue = __v_raw.shop_logo - __v_raw.shop_logo = value - _tRS(__v_raw, "shop_logo", oldValue, value) - } - override var shop_banner: String? - get() { - return _tRG(__v_raw, "shop_banner", __v_raw.shop_banner, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_banner")) { - return - } - val oldValue = __v_raw.shop_banner - __v_raw.shop_banner = value - _tRS(__v_raw, "shop_banner", oldValue, value) - } - override var shop_description: String? - get() { - return _tRG(__v_raw, "shop_description", __v_raw.shop_description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_description")) { - return - } - val oldValue = __v_raw.shop_description - __v_raw.shop_description = value - _tRS(__v_raw, "shop_description", oldValue, value) - } - override var contact_name: String - get() { - return _tRG(__v_raw, "contact_name", __v_raw.contact_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("contact_name")) { - return - } - val oldValue = __v_raw.contact_name - __v_raw.contact_name = value - _tRS(__v_raw, "contact_name", oldValue, value) - } - override var contact_phone: String - get() { - return _tRG(__v_raw, "contact_phone", __v_raw.contact_phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("contact_phone")) { - return - } - val oldValue = __v_raw.contact_phone - __v_raw.contact_phone = value - _tRS(__v_raw, "contact_phone", oldValue, value) - } - override var shop_status: Number - get() { - return _tRG(__v_raw, "shop_status", __v_raw.shop_status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_status")) { - return - } - val oldValue = __v_raw.shop_status - __v_raw.shop_status = value - _tRS(__v_raw, "shop_status", oldValue, value) - } - override var rating: Number - get() { - return _tRG(__v_raw, "rating", __v_raw.rating, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating")) { - return - } - val oldValue = __v_raw.rating - __v_raw.rating = value - _tRS(__v_raw, "rating", oldValue, value) - } - override var total_sales: Number - get() { - return _tRG(__v_raw, "total_sales", __v_raw.total_sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_sales")) { - return - } - val oldValue = __v_raw.total_sales - __v_raw.total_sales = value - _tRS(__v_raw, "total_sales", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class ProductType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var category_id: String, - @JsonNotNull - open var name: String, - open var description: String? = null, - @JsonNotNull - open var images: UTSArray, - @JsonNotNull - open var price: Number, - open var original_price: Number? = null, - @JsonNotNull - open var stock: Number, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var created_at: String, - open var specification: String? = null, - open var usage: String? = null, - open var side_effects: String? = null, - open var precautions: String? = null, - open var expiry_date: String? = null, - open var storage_conditions: String? = null, - open var approval_number: String? = null, - open var tags: UTSArray? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ProductType", "types/mall-types.uts", 70, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ProductTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ProductTypeReactiveObject : ProductType, IUTSReactive { - override var __v_raw: ProductType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ProductType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, merchant_id = __v_raw.merchant_id, category_id = __v_raw.category_id, name = __v_raw.name, description = __v_raw.description, images = __v_raw.images, price = __v_raw.price, original_price = __v_raw.original_price, stock = __v_raw.stock, sales = __v_raw.sales, status = __v_raw.status, created_at = __v_raw.created_at, specification = __v_raw.specification, usage = __v_raw.usage, side_effects = __v_raw.side_effects, precautions = __v_raw.precautions, expiry_date = __v_raw.expiry_date, storage_conditions = __v_raw.storage_conditions, approval_number = __v_raw.approval_number, tags = __v_raw.tags) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ProductTypeReactiveObject { - return ProductTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var category_id: String - get() { - return _tRG(__v_raw, "category_id", __v_raw.category_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("category_id")) { - return - } - val oldValue = __v_raw.category_id - __v_raw.category_id = value - _tRS(__v_raw, "category_id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var description: String? - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var images: UTSArray - get() { - return _tRG(__v_raw, "images", __v_raw.images, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("images")) { - return - } - val oldValue = __v_raw.images - __v_raw.images = value - _tRS(__v_raw, "images", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var original_price: Number? - get() { - return _tRG(__v_raw, "original_price", __v_raw.original_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("original_price")) { - return - } - val oldValue = __v_raw.original_price - __v_raw.original_price = value - _tRS(__v_raw, "original_price", oldValue, value) - } - override var stock: Number - get() { - return _tRG(__v_raw, "stock", __v_raw.stock, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("stock")) { - return - } - val oldValue = __v_raw.stock - __v_raw.stock = value - _tRS(__v_raw, "stock", oldValue, value) - } - override var sales: Number - get() { - return _tRG(__v_raw, "sales", __v_raw.sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sales")) { - return - } - val oldValue = __v_raw.sales - __v_raw.sales = value - _tRS(__v_raw, "sales", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var specification: String? - get() { - return _tRG(__v_raw, "specification", __v_raw.specification, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("specification")) { - return - } - val oldValue = __v_raw.specification - __v_raw.specification = value - _tRS(__v_raw, "specification", oldValue, value) - } - override var usage: String? - get() { - return _tRG(__v_raw, "usage", __v_raw.usage, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("usage")) { - return - } - val oldValue = __v_raw.usage - __v_raw.usage = value - _tRS(__v_raw, "usage", oldValue, value) - } - override var side_effects: String? - get() { - return _tRG(__v_raw, "side_effects", __v_raw.side_effects, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("side_effects")) { - return - } - val oldValue = __v_raw.side_effects - __v_raw.side_effects = value - _tRS(__v_raw, "side_effects", oldValue, value) - } - override var precautions: String? - get() { - return _tRG(__v_raw, "precautions", __v_raw.precautions, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("precautions")) { - return - } - val oldValue = __v_raw.precautions - __v_raw.precautions = value - _tRS(__v_raw, "precautions", oldValue, value) - } - override var expiry_date: String? - get() { - return _tRG(__v_raw, "expiry_date", __v_raw.expiry_date, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expiry_date")) { - return - } - val oldValue = __v_raw.expiry_date - __v_raw.expiry_date = value - _tRS(__v_raw, "expiry_date", oldValue, value) - } - override var storage_conditions: String? - get() { - return _tRG(__v_raw, "storage_conditions", __v_raw.storage_conditions, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("storage_conditions")) { - return - } - val oldValue = __v_raw.storage_conditions - __v_raw.storage_conditions = value - _tRS(__v_raw, "storage_conditions", oldValue, value) - } - override var approval_number: String? - get() { - return _tRG(__v_raw, "approval_number", __v_raw.approval_number, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("approval_number")) { - return - } - val oldValue = __v_raw.approval_number - __v_raw.approval_number = value - _tRS(__v_raw, "approval_number", oldValue, value) - } - override var tags: UTSArray? - get() { - return _tRG(__v_raw, "tags", __v_raw.tags, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("tags")) { - return - } - val oldValue = __v_raw.tags - __v_raw.tags = value - _tRS(__v_raw, "tags", oldValue, value) - } -} -open class ProductSkuType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var product_id: String, - @JsonNotNull - open var sku_code: String, - open var specifications: UTSJSONObject? = null, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var stock: Number, - open var image_url: String? = null, - @JsonNotNull - open var status: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ProductSkuType", "types/mall-types.uts", 94, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ProductSkuTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ProductSkuTypeReactiveObject : ProductSkuType, IUTSReactive { - override var __v_raw: ProductSkuType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ProductSkuType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, product_id = __v_raw.product_id, sku_code = __v_raw.sku_code, specifications = __v_raw.specifications, price = __v_raw.price, stock = __v_raw.stock, image_url = __v_raw.image_url, status = __v_raw.status) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ProductSkuTypeReactiveObject { - return ProductSkuTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var product_id: String - get() { - return _tRG(__v_raw, "product_id", __v_raw.product_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_id")) { - return - } - val oldValue = __v_raw.product_id - __v_raw.product_id = value - _tRS(__v_raw, "product_id", oldValue, value) - } - override var sku_code: String - get() { - return _tRG(__v_raw, "sku_code", __v_raw.sku_code, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sku_code")) { - return - } - val oldValue = __v_raw.sku_code - __v_raw.sku_code = value - _tRS(__v_raw, "sku_code", oldValue, value) - } - override var specifications: UTSJSONObject? - get() { - return _tRG(__v_raw, "specifications", __v_raw.specifications, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("specifications")) { - return - } - val oldValue = __v_raw.specifications - __v_raw.specifications = value - _tRS(__v_raw, "specifications", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var stock: Number - get() { - return _tRG(__v_raw, "stock", __v_raw.stock, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("stock")) { - return - } - val oldValue = __v_raw.stock - __v_raw.stock = value - _tRS(__v_raw, "stock", oldValue, value) - } - override var image_url: String? - get() { - return _tRG(__v_raw, "image_url", __v_raw.image_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image_url")) { - return - } - val oldValue = __v_raw.image_url - __v_raw.image_url = value - _tRS(__v_raw, "image_url", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } -} -open class CouponTemplateType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - open var description: String? = null, - @JsonNotNull - open var coupon_type: Number, - @JsonNotNull - open var discount_type: Number, - @JsonNotNull - open var discount_value: Number, - @JsonNotNull - open var min_order_amount: Number, - open var max_discount_amount: Number? = null, - open var total_quantity: Number? = null, - @JsonNotNull - open var per_user_limit: Number, - @JsonNotNull - open var usage_limit: Number, - open var merchant_id: String? = null, - @JsonNotNull - open var category_ids: UTSArray, - @JsonNotNull - open var product_ids: UTSArray, - open var user_type_limit: Number? = null, - @JsonNotNull - open var start_time: String, - @JsonNotNull - open var end_time: String, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CouponTemplateType", "types/mall-types.uts", 180, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CouponTemplateTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CouponTemplateTypeReactiveObject : CouponTemplateType, IUTSReactive { - override var __v_raw: CouponTemplateType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CouponTemplateType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, description = __v_raw.description, coupon_type = __v_raw.coupon_type, discount_type = __v_raw.discount_type, discount_value = __v_raw.discount_value, min_order_amount = __v_raw.min_order_amount, max_discount_amount = __v_raw.max_discount_amount, total_quantity = __v_raw.total_quantity, per_user_limit = __v_raw.per_user_limit, usage_limit = __v_raw.usage_limit, merchant_id = __v_raw.merchant_id, category_ids = __v_raw.category_ids, product_ids = __v_raw.product_ids, user_type_limit = __v_raw.user_type_limit, start_time = __v_raw.start_time, end_time = __v_raw.end_time, status = __v_raw.status, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CouponTemplateTypeReactiveObject { - return CouponTemplateTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var description: String? - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var coupon_type: Number - get() { - return _tRG(__v_raw, "coupon_type", __v_raw.coupon_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("coupon_type")) { - return - } - val oldValue = __v_raw.coupon_type - __v_raw.coupon_type = value - _tRS(__v_raw, "coupon_type", oldValue, value) - } - override var discount_type: Number - get() { - return _tRG(__v_raw, "discount_type", __v_raw.discount_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("discount_type")) { - return - } - val oldValue = __v_raw.discount_type - __v_raw.discount_type = value - _tRS(__v_raw, "discount_type", oldValue, value) - } - override var discount_value: Number - get() { - return _tRG(__v_raw, "discount_value", __v_raw.discount_value, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("discount_value")) { - return - } - val oldValue = __v_raw.discount_value - __v_raw.discount_value = value - _tRS(__v_raw, "discount_value", oldValue, value) - } - override var min_order_amount: Number - get() { - return _tRG(__v_raw, "min_order_amount", __v_raw.min_order_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("min_order_amount")) { - return - } - val oldValue = __v_raw.min_order_amount - __v_raw.min_order_amount = value - _tRS(__v_raw, "min_order_amount", oldValue, value) - } - override var max_discount_amount: Number? - get() { - return _tRG(__v_raw, "max_discount_amount", __v_raw.max_discount_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("max_discount_amount")) { - return - } - val oldValue = __v_raw.max_discount_amount - __v_raw.max_discount_amount = value - _tRS(__v_raw, "max_discount_amount", oldValue, value) - } - override var total_quantity: Number? - get() { - return _tRG(__v_raw, "total_quantity", __v_raw.total_quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_quantity")) { - return - } - val oldValue = __v_raw.total_quantity - __v_raw.total_quantity = value - _tRS(__v_raw, "total_quantity", oldValue, value) - } - override var per_user_limit: Number - get() { - return _tRG(__v_raw, "per_user_limit", __v_raw.per_user_limit, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("per_user_limit")) { - return - } - val oldValue = __v_raw.per_user_limit - __v_raw.per_user_limit = value - _tRS(__v_raw, "per_user_limit", oldValue, value) - } - override var usage_limit: Number - get() { - return _tRG(__v_raw, "usage_limit", __v_raw.usage_limit, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("usage_limit")) { - return - } - val oldValue = __v_raw.usage_limit - __v_raw.usage_limit = value - _tRS(__v_raw, "usage_limit", oldValue, value) - } - override var merchant_id: String? - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var category_ids: UTSArray - get() { - return _tRG(__v_raw, "category_ids", __v_raw.category_ids, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("category_ids")) { - return - } - val oldValue = __v_raw.category_ids - __v_raw.category_ids = value - _tRS(__v_raw, "category_ids", oldValue, value) - } - override var product_ids: UTSArray - get() { - return _tRG(__v_raw, "product_ids", __v_raw.product_ids, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_ids")) { - return - } - val oldValue = __v_raw.product_ids - __v_raw.product_ids = value - _tRS(__v_raw, "product_ids", oldValue, value) - } - override var user_type_limit: Number? - get() { - return _tRG(__v_raw, "user_type_limit", __v_raw.user_type_limit, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_type_limit")) { - return - } - val oldValue = __v_raw.user_type_limit - __v_raw.user_type_limit = value - _tRS(__v_raw, "user_type_limit", oldValue, value) - } - override var start_time: String - get() { - return _tRG(__v_raw, "start_time", __v_raw.start_time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("start_time")) { - return - } - val oldValue = __v_raw.start_time - __v_raw.start_time = value - _tRS(__v_raw, "start_time", oldValue, value) - } - override var end_time: String - get() { - return _tRG(__v_raw, "end_time", __v_raw.end_time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("end_time")) { - return - } - val oldValue = __v_raw.end_time - __v_raw.end_time = value - _tRS(__v_raw, "end_time", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -val ORDER_STATUS: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("ORDER_STATUS", "types/mall-types.uts", 229, 14)) { - var PENDING_PAYMENT: Number = 1 - var PAID: Number = 2 - var SHIPPED: Number = 3 - var DELIVERED: Number = 4 - var COMPLETED: Number = 5 - var CANCELLED: Number = 6 - var REFUNDING: Number = 7 - var REFUNDED: Number = 8 -} -val COUPON_TYPE: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("COUPON_TYPE", "types/mall-types.uts", 240, 14)) { - var DISCOUNT_AMOUNT: Number = 1 - var DISCOUNT_PERCENT: Number = 2 - var FREE_SHIPPING: Number = 3 - var NEWBIE: Number = 4 - var MEMBER: Number = 5 - var CATEGORY: Number = 6 - var MERCHANT: Number = 7 - var LIMITED_TIME: Number = 8 -} -val PAYMENT_METHOD: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("PAYMENT_METHOD", "types/mall-types.uts", 251, 14)) { - var WECHAT: Number = 1 - var ALIPAY: Number = 2 - var UNIONPAY: Number = 3 - var BALANCE: Number = 4 -} -val DELIVERY_STATUS: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("DELIVERY_STATUS", "types/mall-types.uts", 258, 14)) { - var PENDING: Number = 1 - var ASSIGNED: Number = 2 - var PICKED_UP: Number = 3 - var IN_TRANSIT: Number = 4 - var DELIVERED: Number = 5 - var FAILED: Number = 6 -} -val MALL_USER_TYPE: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("MALL_USER_TYPE", "types/mall-types.uts", 267, 14)) { - var CONSUMER: Number = 1 - var MERCHANT: Number = 2 - var DELIVERY: Number = 3 - var SERVICE: Number = 4 - var ADMIN: Number = 5 -} -val VERIFICATION_STATUS: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("VERIFICATION_STATUS", "types/mall-types.uts", 282, 14)) { - var UNVERIFIED: Number = 0 - var VERIFIED: Number = 1 - var FAILED: Number = 2 -} -val ADDRESS_LABEL: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("ADDRESS_LABEL", "types/mall-types.uts", 288, 14)) { - var HOME = "home" - var OFFICE = "office" - var SCHOOL = "school" - var OTHER = "other" -} -val FAVORITE_TYPE: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("FAVORITE_TYPE", "types/mall-types.uts", 295, 14)) { - var PRODUCT = "product" - var SHOP = "shop" -} -val SUBSCRIPTION_PERIOD: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("SUBSCRIPTION_PERIOD", "types/mall-types.uts", 303, 14)) { - var MONTHLY = "monthly" - var YEARLY = "yearly" -} -val SUBSCRIPTION_STATUS: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("SUBSCRIPTION_STATUS", "types/mall-types.uts", 308, 14)) { - var TRIAL = "trial" - var ACTIVE = "active" - var PAST_DUE = "past_due" - var CANCELED = "canceled" - var EXPIRED = "expired" -} -open class UserProfile ( - open var id: String? = null, - @JsonNotNull - open var username: String, - @JsonNotNull - open var email: String, - open var gender: String? = null, - open var birthday: String? = null, - open var height_cm: Number? = null, - open var weight_kg: Number? = null, - open var bio: String? = null, - open var avatar_url: String? = null, - open var preferred_language: String? = null, - open var role: String? = null, - open var school_id: String? = null, - open var grade_id: String? = null, - open var class_id: String? = null, - open var created_at: String? = null, - open var updated_at: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserProfile", "types/mall-types.uts", 347, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserProfileReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserProfileReactiveObject : UserProfile, IUTSReactive { - override var __v_raw: UserProfile - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserProfile, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, username = __v_raw.username, email = __v_raw.email, gender = __v_raw.gender, birthday = __v_raw.birthday, height_cm = __v_raw.height_cm, weight_kg = __v_raw.weight_kg, bio = __v_raw.bio, avatar_url = __v_raw.avatar_url, preferred_language = __v_raw.preferred_language, role = __v_raw.role, school_id = __v_raw.school_id, grade_id = __v_raw.grade_id, class_id = __v_raw.class_id, created_at = __v_raw.created_at, updated_at = __v_raw.updated_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserProfileReactiveObject { - return UserProfileReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String? - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var username: String - get() { - return _tRG(__v_raw, "username", __v_raw.username, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("username")) { - return - } - val oldValue = __v_raw.username - __v_raw.username = value - _tRS(__v_raw, "username", oldValue, value) - } - override var email: String - get() { - return _tRG(__v_raw, "email", __v_raw.email, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("email")) { - return - } - val oldValue = __v_raw.email - __v_raw.email = value - _tRS(__v_raw, "email", oldValue, value) - } - override var gender: String? - get() { - return _tRG(__v_raw, "gender", __v_raw.gender, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("gender")) { - return - } - val oldValue = __v_raw.gender - __v_raw.gender = value - _tRS(__v_raw, "gender", oldValue, value) - } - override var birthday: String? - get() { - return _tRG(__v_raw, "birthday", __v_raw.birthday, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("birthday")) { - return - } - val oldValue = __v_raw.birthday - __v_raw.birthday = value - _tRS(__v_raw, "birthday", oldValue, value) - } - override var height_cm: Number? - get() { - return _tRG(__v_raw, "height_cm", __v_raw.height_cm, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("height_cm")) { - return - } - val oldValue = __v_raw.height_cm - __v_raw.height_cm = value - _tRS(__v_raw, "height_cm", oldValue, value) - } - override var weight_kg: Number? - get() { - return _tRG(__v_raw, "weight_kg", __v_raw.weight_kg, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("weight_kg")) { - return - } - val oldValue = __v_raw.weight_kg - __v_raw.weight_kg = value - _tRS(__v_raw, "weight_kg", oldValue, value) - } - override var bio: String? - get() { - return _tRG(__v_raw, "bio", __v_raw.bio, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bio")) { - return - } - val oldValue = __v_raw.bio - __v_raw.bio = value - _tRS(__v_raw, "bio", oldValue, value) - } - override var avatar_url: String? - get() { - return _tRG(__v_raw, "avatar_url", __v_raw.avatar_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avatar_url")) { - return - } - val oldValue = __v_raw.avatar_url - __v_raw.avatar_url = value - _tRS(__v_raw, "avatar_url", oldValue, value) - } - override var preferred_language: String? - get() { - return _tRG(__v_raw, "preferred_language", __v_raw.preferred_language, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("preferred_language")) { - return - } - val oldValue = __v_raw.preferred_language - __v_raw.preferred_language = value - _tRS(__v_raw, "preferred_language", oldValue, value) - } - override var role: String? - get() { - return _tRG(__v_raw, "role", __v_raw.role, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("role")) { - return - } - val oldValue = __v_raw.role - __v_raw.role = value - _tRS(__v_raw, "role", oldValue, value) - } - override var school_id: String? - get() { - return _tRG(__v_raw, "school_id", __v_raw.school_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("school_id")) { - return - } - val oldValue = __v_raw.school_id - __v_raw.school_id = value - _tRS(__v_raw, "school_id", oldValue, value) - } - override var grade_id: String? - get() { - return _tRG(__v_raw, "grade_id", __v_raw.grade_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("grade_id")) { - return - } - val oldValue = __v_raw.grade_id - __v_raw.grade_id = value - _tRS(__v_raw, "grade_id", oldValue, value) - } - override var class_id: String? - get() { - return _tRG(__v_raw, "class_id", __v_raw.class_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("class_id")) { - return - } - val oldValue = __v_raw.class_id - __v_raw.class_id = value - _tRS(__v_raw, "class_id", oldValue, value) - } - override var created_at: String? - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var updated_at: String? - get() { - return _tRG(__v_raw, "updated_at", __v_raw.updated_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("updated_at")) { - return - } - val oldValue = __v_raw.updated_at - __v_raw.updated_at = value - _tRS(__v_raw, "updated_at", oldValue, value) - } -} -open class FootprintItemType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - open var original_price: Number? = null, - @JsonNotNull - open var image: String, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var viewTime: Number, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FootprintItemType", "types/mall-types.uts", 371, 13) - } -} -open class DeviceInfo ( - @JsonNotNull - open var id: String, - open var device_name: String? = null, - open var status: String? = null, - open var user_id: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("DeviceInfo", "pages/sense/types.uts", 2, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return DeviceInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class DeviceInfoReactiveObject : DeviceInfo, IUTSReactive { - override var __v_raw: DeviceInfo - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: DeviceInfo, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, device_name = __v_raw.device_name, status = __v_raw.status, user_id = __v_raw.user_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): DeviceInfoReactiveObject { - return DeviceInfoReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var device_name: String? - get() { - return _tRG(__v_raw, "device_name", __v_raw.device_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("device_name")) { - return - } - val oldValue = __v_raw.device_name - __v_raw.device_name = value - _tRS(__v_raw, "device_name", oldValue, value) - } - override var status: String? - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var user_id: String? - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } -} -fun ensureUserProfile(sessionUser: UTSJSONObject): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - await(supaReady) - val userId = sessionUser.getString("id") - val email = sessionUser.getString("email") ?: "" - if (userId == null || userId === "") { - console.error("无法获取用户ID", " at utils/sapi.uts:18") - return@w null - } - val checkRes = await(supaInstance.from("ak_users").select("*", UTSJSONObject()).or("id.eq." + userId + ",auth_id.eq." + userId).execute()) - console.log("ensureUserProfile check ak_users:", object : UTSJSONObject() { - var status = checkRes.status - var hasData = checkRes.data != null - }, " at utils/sapi.uts:28") - val dataList = checkRes.data - if (checkRes.status >= 200 && checkRes.status < 300 && dataList != null && (dataList as UTSArray).length > 0) { - var existingUser: UTSJSONObject - val firstItem = (dataList as UTSArray)[0] - if (firstItem is UTSJSONObject) { - existingUser = firstItem as UTSJSONObject - } else { - existingUser = UTSJSONObject(firstItem) - } - val currentRole = existingUser.getString("role") - val currentAuthId = existingUser.getString("auth_id") - if (currentRole == "student" || currentAuthId == null || currentAuthId == "") { - console.log("检测到旧数据异常,正在修复角色或关联ID...", " at utils/sapi.uts:49") - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/sapi.uts", 43, 23)) - updateData.set("auth_id", userId) - updateData.set("role", "consumer") - await(supaInstance.from("ak_users").update(updateData).eq("id", userId).execute()) - try { - val meta = UTSJSONObject(UTSSourceMapPosition("meta", "utils/sapi.uts", 53, 27)) - meta.set("user_role", "consumer") - await(supaInstance.updateUserMetadata(meta)) - } - catch (e: Throwable) { - console.warn("同步 Auth 元数据失败:", e, " at utils/sapi.uts:66") - } - return@w UserProfile(id = userId, username = existingUser.getString("username") ?: email.split("@")[0], email = existingUser.getString("email") ?: email, role = "consumer") - } - return@w UserProfile(id = userId, username = existingUser.getString("username") ?: "", email = existingUser.getString("email") ?: email, gender = existingUser.getString("gender"), birthday = existingUser.getString("birthday"), height_cm = existingUser.getNumber("height_cm"), weight_kg = existingUser.getNumber("weight_kg"), bio = existingUser.getString("bio"), avatar_url = existingUser.getString("avatar_url"), preferred_language = existingUser.getString("preferred_language"), role = existingUser.getString("role") ?: "consumer", created_at = existingUser.getString("created_at"), updated_at = existingUser.getString("updated_at")) - } - val newUserData = UTSJSONObject(UTSSourceMapPosition("newUserData", "utils/sapi.uts", 85, 15)) - newUserData.set("id", userId) - newUserData.set("auth_id", userId) - newUserData.set("email", email) - newUserData.set("username", email.split("@")[0] ?: "user") - newUserData.set("role", "consumer") - newUserData.set("created_at", Date().toISOString()) - try { - val meta = UTSJSONObject(UTSSourceMapPosition("meta", "utils/sapi.uts", 94, 19)) - meta.set("user_role", "consumer") - await(supaInstance.updateUserMetadata(meta)) - } - catch (e: Throwable) { - console.warn("同步 Auth 元数据失败 (非致命):", e, " at utils/sapi.uts:110") - } - console.log("准备插入 ak_users, 目标 ID:", userId, " at utils/sapi.uts:113") - console.log("正在执行 insert 资料:", JSON.stringify(newUserData), " at utils/sapi.uts:114") - val insertRes = await(supaInstance.from("ak_users").insert(newUserData).select("*", UTSJSONObject()).execute()) - console.log("ensureUserProfile insert ak_users 完整结果:", JSON.stringify(insertRes), " at utils/sapi.uts:120") - if (insertRes.status >= 200 && insertRes.status < 300) { - val dataList = if ((insertRes.data != null)) { - (insertRes.data as UTSArray) - } else { - _uA() - } - val rawData = if (dataList.length > 0) { - dataList[0] - } else { - null - } - if (rawData == null) { - console.log("ensureUserProfile: 资料插入操作已完成(200),但未返回数据(可能是 RLS 限制)", " at utils/sapi.uts:127") - return@w UserProfile(id = userId, username = email.split("@")[0] ?: "user", email = email, role = "consumer", created_at = newUserData.getString("created_at")) - } - val newUser = if ((rawData is UTSJSONObject)) { - (rawData as UTSJSONObject) - } else { - UTSJSONObject(rawData) - } - return@w UserProfile(id = newUser.getString("id") ?: userId, username = newUser.getString("username") ?: email.split("@")[0], email = newUser.getString("email") ?: email, gender = newUser.getString("gender"), birthday = newUser.getString("birthday"), height_cm = newUser.getNumber("height_cm"), weight_kg = newUser.getNumber("weight_kg"), bio = newUser.getString("bio"), avatar_url = newUser.getString("avatar_url"), preferred_language = newUser.getString("preferred_language"), role = newUser.getString("role") ?: "consumer", created_at = newUser.getString("created_at"), updated_at = newUser.getString("updated_at")) - } else { - console.error("创建用户资料失败:", insertRes.status, " at utils/sapi.uts:156") - return@w null - } - } - catch (error: Throwable) { - console.error("ensureUserProfile 异常:", error, " at utils/sapi.uts:160") - return@w null - } - }) -} -open class DeviceState ( - @JsonNotNull - open var devices: UTSArray, - open var currentDevice: DeviceInfo? = null, - @JsonNotNull - open var isLoading: Boolean = false, - open var lastUpdated: Number? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("DeviceState", "utils/store.uts", 8, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return DeviceStateReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class DeviceStateReactiveObject : DeviceState, IUTSReactive { - override var __v_raw: DeviceState - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: DeviceState, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(devices = __v_raw.devices, currentDevice = __v_raw.currentDevice, isLoading = __v_raw.isLoading, lastUpdated = __v_raw.lastUpdated) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): DeviceStateReactiveObject { - return DeviceStateReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var devices: UTSArray - get() { - return _tRG(__v_raw, "devices", __v_raw.devices, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("devices")) { - return - } - val oldValue = __v_raw.devices - __v_raw.devices = value - _tRS(__v_raw, "devices", oldValue, value) - } - override var currentDevice: DeviceInfo? - get() { - return _tRG(__v_raw, "currentDevice", __v_raw.currentDevice, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("currentDevice")) { - return - } - val oldValue = __v_raw.currentDevice - __v_raw.currentDevice = value - _tRS(__v_raw, "currentDevice", oldValue, value) - } - override var isLoading: Boolean - get() { - return _tRG(__v_raw, "isLoading", __v_raw.isLoading, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("isLoading")) { - return - } - val oldValue = __v_raw.isLoading - __v_raw.isLoading = value - _tRS(__v_raw, "isLoading", oldValue, value) - } - override var lastUpdated: Number? - get() { - return _tRG(__v_raw, "lastUpdated", __v_raw.lastUpdated, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("lastUpdated")) { - return - } - val oldValue = __v_raw.lastUpdated - __v_raw.lastUpdated = value - _tRS(__v_raw, "lastUpdated", oldValue, value) - } -} -open class State ( - @JsonNotNull - open var globalNum: Number, - open var userProfile: UserProfile? = null, - @JsonNotNull - open var isLoggedIn: Boolean = false, - @JsonNotNull - open var deviceState: DeviceState, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("State", "utils/store.uts", 15, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return StateReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class StateReactiveObject : State, IUTSReactive { - override var __v_raw: State - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: State, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(globalNum = __v_raw.globalNum, userProfile = __v_raw.userProfile, isLoggedIn = __v_raw.isLoggedIn, deviceState = __v_raw.deviceState) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): StateReactiveObject { - return StateReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var globalNum: Number - get() { - return _tRG(__v_raw, "globalNum", __v_raw.globalNum, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("globalNum")) { - return - } - val oldValue = __v_raw.globalNum - __v_raw.globalNum = value - _tRS(__v_raw, "globalNum", oldValue, value) - } - override var userProfile: UserProfile? - get() { - return _tRG(__v_raw, "userProfile", __v_raw.userProfile, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("userProfile")) { - return - } - val oldValue = __v_raw.userProfile - __v_raw.userProfile = value - _tRS(__v_raw, "userProfile", oldValue, value) - } - override var isLoggedIn: Boolean - get() { - return _tRG(__v_raw, "isLoggedIn", __v_raw.isLoggedIn, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("isLoggedIn")) { - return - } - val oldValue = __v_raw.isLoggedIn - __v_raw.isLoggedIn = value - _tRS(__v_raw, "isLoggedIn", oldValue, value) - } - override var deviceState: DeviceState - get() { - return _tRG(__v_raw, "deviceState", __v_raw.deviceState, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("deviceState")) { - return - } - val oldValue = __v_raw.deviceState - __v_raw.deviceState = value - _tRS(__v_raw, "deviceState", oldValue, value) - } -} -val state = reactive(State(globalNum = 0, userProfile = UserProfile(username = "", email = ""), isLoggedIn = false, deviceState = DeviceState(devices = _uA(), currentDevice = null, isLoading = false, lastUpdated = null))) -val setIsLoggedIn = fun(kVal: Boolean){ - state.isLoggedIn = kVal -} -val setUserProfile = fun(profile: UserProfile){ - state.userProfile = profile -} -fun getCurrentUser(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - await(supaReady) - } - catch (_: Throwable) {} - val sessionInfo = supaInstance.getSession() - if (sessionInfo.user == null) { - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false - return@w null - } - val userId = sessionInfo.user?.getString("id") - if (userId == null) { - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false - return@w null - } - val res = await(supaInstance.from("ak_users").select("*", UTSJSONObject()).eq("id", userId).execute()) - console.log(res, " at utils/store.uts:69") - if (res.status >= 200 && res.status < 300 && (res.data != null)) { - var user: UTSJSONObject? = null - val data = res.data as Any - if (UTSArray.isArray(data)) { - if ((data as UTSArray).length > 0) { - user = (data as UTSArray)[0] as UTSJSONObject - } - } else if (data != null) { - user = data as UTSJSONObject - } - console.log(user, " at utils/store.uts:79") - if (user == null) { - console.log("用户资料为空,尝试创建基础资料...", " at utils/store.uts:81") - val sessionUser = sessionInfo.user!! - if (sessionUser != null) { - val createdProfile = await(ensureUserProfile(sessionUser)) - if (createdProfile != null) { - state.userProfile = createdProfile - state.isLoggedIn = true - return@w createdProfile - } else { - console.error("创建用户资料失败", " at utils/store.uts:90") - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false - return@w null - } - } else { - console.error("会话用户信息为空", " at utils/store.uts:96") - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false - return@w null - } - } - console.log(user, " at utils/store.uts:102") - val profile = UserProfile(id = user.getString("id"), username = user.getString("username") ?: "", email = user.getString("email") ?: "", gender = user.getString("gender"), birthday = user.getString("birthday"), height_cm = user.getNumber("height_cm"), weight_kg = user.getNumber("weight_kg"), bio = user.getString("bio"), avatar_url = user.getString("avatar_url"), preferred_language = user.getString("preferred_language"), role = user.getString("role"), school_id = user.getString("school_id"), grade_id = user.getString("grade_id"), class_id = user.getString("class_id")) - state.userProfile = profile - state.isLoggedIn = true - return@w profile - } else { - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false - return@w null - } - }) -} -fun logout() { - supaInstance.signOut() - state.userProfile = UserProfile(username = "", email = "") - state.isLoggedIn = false -} -open class GenApp : BaseApp { - constructor(__ins: ComponentInternalInstance) : super(__ins) { - onLaunch(fun(_: OnLaunchOptions) { - console.log("App Launch", " at App.uvue:7") - this.checkExistingSession() - } - , __ins) - onAppShow(fun(_: OnShowOptions) { - console.log("App Show", " at App.uvue:13") - } - , __ins) - onAppHide(fun() { - console.log("App Hide", " at App.uvue:16") - } - , __ins) - } - open var checkExistingSession = ::gen_checkExistingSession_fn - open fun gen_checkExistingSession_fn(): Unit { - val session = supaInstance.getSession() - if (session.user != null) { - console.log("已有有效会话,恢复登录状态", " at App.uvue:23") - setIsLoggedIn(true) - uni_reLaunch(ReLaunchOptions(url = "/pages/mall/consumer/index")) - return - } - val savedUserId = uni_getStorageSync("user_id") - if (savedUserId != null && savedUserId != "") { - console.log("本地存储中有用户ID,尝试恢复会话", " at App.uvue:32") - getCurrentUser().then(fun(profile){ - if (profile != null) { - console.log("会话恢复成功", " at App.uvue:35") - setIsLoggedIn(true) - uni_reLaunch(ReLaunchOptions(url = "/pages/mall/consumer/index")) - } - } - ).`catch`(fun(){ - console.log("会话恢复失败,需要重新登录", " at App.uvue:40") - } - ) - } - console.log("无有效会话,显示登录页", " at App.uvue:45") - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - )) - } - val styles0: Map>> - get() { - return _uM("theme-vars" to _pS(_uM("--primary-color" to "#1890ff", "--primary-hover" to "#40a9ff", "--primary-active" to "#096dd9", "--success-color" to "#52c41a", "--success-hover" to "#73d13d", "--success-active" to "#389e0d", "--warning-color" to "#faad14", "--warning-hover" to "#ffc53d", "--warning-active" to "#d48806", "--error-color" to "#ff4d4f", "--error-hover" to "#ff7875", "--error-active" to "#d4380d", "--text-primary" to "#262626", "--text-secondary" to "#595959", "--text-disabled" to "#bfbfbf", "--text-inverse" to "#ffffff", "--border-color" to "#d9d9d9", "--border-color-light" to "#f0f0f0", "--border-color-dark" to "#bfbfbf", "--background-color" to "#ffffff", "--background-color-light" to "#fafafa", "--background-color-dark" to "#f5f5f5", "--shadow-sm" to "0 1px 3px rgba(0, 0, 0, 0.08)", "--shadow" to "0 2px 8px rgba(0, 0, 0, 0.06)", "--shadow-lg" to "0 4px 12px rgba(0, 0, 0, 0.08)", "--shadow-xl" to "0 6px 16px rgba(0, 0, 0, 0.12)", "--border-radius-sm" to "2px", "--border-radius" to "4px", "--border-radius-lg" to "6px", "--border-radius-xl" to "8px", "--spacing-xs" to "4px", "--spacing-sm" to "8px", "--spacing" to "16px", "--spacing-lg" to "24px", "--spacing-xl" to "32px", "--spacing-xxl" to "48px", "--font-size-xs" to "12px", "--font-size-sm" to "14px", "--font-size" to "16px", "--font-size-lg" to "18px", "--font-size-xl" to "20px", "--font-size-xxl" to "24px", "--line-height-tight" to "1.25", "--line-height-normal" to "1.5", "--line-height-relaxed" to "1.75")), "text-xs" to _pS(_uM("fontSize" to "var(--font-size-xs)")), "text-sm" to _pS(_uM("fontSize" to "var(--font-size-sm)")), "text-base" to _pS(_uM("fontSize" to "var(--font-size)")), "text-lg" to _pS(_uM("fontSize" to "var(--font-size-lg)")), "text-xl" to _pS(_uM("fontSize" to "var(--font-size-xl)")), "text-2xl" to _pS(_uM("fontSize" to "var(--font-size-xxl)")), "font-medium" to _pS(_uM("fontWeight" to "400")), "font-semibold" to _pS(_uM("fontWeight" to "700")), "font-bold" to _pS(_uM("fontWeight" to "700")), "text-primary" to _pS(_uM("color" to "var(--primary-color)")), "text-success" to _pS(_uM("color" to "var(--success-color)")), "text-warning" to _pS(_uM("color" to "var(--warning-color)")), "text-error" to _pS(_uM("color" to "var(--error-color)")), "text-secondary" to _pS(_uM("color" to "var(--text-secondary)")), "text-disabled" to _pS(_uM("color" to "var(--text-disabled)")), "bg-white" to _pS(_uM("backgroundColor" to "var(--background-color)")), "bg-light" to _pS(_uM("backgroundColor" to "var(--background-color-light)")), "bg-dark" to _pS(_uM("backgroundColor" to "var(--background-color-dark)")), "border" to _pS(_uM("borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "var(--border-color)", "borderRightColor" to "var(--border-color)", "borderBottomColor" to "var(--border-color)", "borderLeftColor" to "var(--border-color)")), "border-light" to _pS(_uM("borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "var(--border-color-light)", "borderRightColor" to "var(--border-color-light)", "borderBottomColor" to "var(--border-color-light)", "borderLeftColor" to "var(--border-color-light)")), "border-primary" to _pS(_uM("borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "var(--primary-color)", "borderRightColor" to "var(--primary-color)", "borderBottomColor" to "var(--primary-color)", "borderLeftColor" to "var(--primary-color)")), "shadow-sm" to _pS(_uM("boxShadow" to "var(--shadow-sm)")), "shadow" to _pS(_uM("boxShadow" to "var(--shadow)")), "shadow-lg" to _pS(_uM("boxShadow" to "var(--shadow-lg)")), "shadow-xl" to _pS(_uM("boxShadow" to "var(--shadow-xl)")), "rounded-sm" to _pS(_uM("borderTopLeftRadius" to "var(--border-radius-sm)", "borderTopRightRadius" to "var(--border-radius-sm)", "borderBottomRightRadius" to "var(--border-radius-sm)", "borderBottomLeftRadius" to "var(--border-radius-sm)")), "rounded" to _pS(_uM("borderTopLeftRadius" to "var(--border-radius)", "borderTopRightRadius" to "var(--border-radius)", "borderBottomRightRadius" to "var(--border-radius)", "borderBottomLeftRadius" to "var(--border-radius)")), "rounded-lg" to _pS(_uM("borderTopLeftRadius" to "var(--border-radius-lg)", "borderTopRightRadius" to "var(--border-radius-lg)", "borderBottomRightRadius" to "var(--border-radius-lg)", "borderBottomLeftRadius" to "var(--border-radius-lg)")), "rounded-xl" to _pS(_uM("borderTopLeftRadius" to "var(--border-radius-xl)", "borderTopRightRadius" to "var(--border-radius-xl)", "borderBottomRightRadius" to "var(--border-radius-xl)", "borderBottomLeftRadius" to "var(--border-radius-xl)")), "m-1" to _pS(_uM("marginTop" to "var(--spacing-xs)", "marginRight" to "var(--spacing-xs)", "marginBottom" to "var(--spacing-xs)", "marginLeft" to "var(--spacing-xs)")), "m-2" to _pS(_uM("marginTop" to "var(--spacing-sm)", "marginRight" to "var(--spacing-sm)", "marginBottom" to "var(--spacing-sm)", "marginLeft" to "var(--spacing-sm)")), "m-3" to _pS(_uM("marginTop" to "var(--spacing)", "marginRight" to "var(--spacing)", "marginBottom" to "var(--spacing)", "marginLeft" to "var(--spacing)")), "m-4" to _pS(_uM("marginTop" to "var(--spacing-lg)", "marginRight" to "var(--spacing-lg)", "marginBottom" to "var(--spacing-lg)", "marginLeft" to "var(--spacing-lg)")), "m-5" to _pS(_uM("marginTop" to "var(--spacing-xl)", "marginRight" to "var(--spacing-xl)", "marginBottom" to "var(--spacing-xl)", "marginLeft" to "var(--spacing-xl)")), "p-1" to _pS(_uM("paddingTop" to "var(--spacing-xs)", "paddingRight" to "var(--spacing-xs)", "paddingBottom" to "var(--spacing-xs)", "paddingLeft" to "var(--spacing-xs)")), "p-2" to _pS(_uM("paddingTop" to "var(--spacing-sm)", "paddingRight" to "var(--spacing-sm)", "paddingBottom" to "var(--spacing-sm)", "paddingLeft" to "var(--spacing-sm)")), "p-3" to _pS(_uM("paddingTop" to "var(--spacing)", "paddingRight" to "var(--spacing)", "paddingBottom" to "var(--spacing)", "paddingLeft" to "var(--spacing)")), "p-4" to _pS(_uM("paddingTop" to "var(--spacing-lg)", "paddingRight" to "var(--spacing-lg)", "paddingBottom" to "var(--spacing-lg)", "paddingLeft" to "var(--spacing-lg)")), "p-5" to _pS(_uM("paddingTop" to "var(--spacing-xl)", "paddingRight" to "var(--spacing-xl)", "paddingBottom" to "var(--spacing-xl)", "paddingLeft" to "var(--spacing-xl)")), "flex" to _pS(_uM("display" to "flex")), "inline-flex" to _pS(_uM("display" to "flex")), "block" to _pS(_uM("display" to "flex")), "inline-block" to _pS(_uM("display" to "flex")), "flex-col" to _pS(_uM("flexDirection" to "column")), "flex-row" to _pS(_uM("flexDirection" to "row")), "flex-wrap" to _pS(_uM("flexWrap" to "wrap")), "flex-nowrap" to _pS(_uM("flexWrap" to "nowrap")), "items-start" to _pS(_uM("alignItems" to "flex-start")), "items-center" to _pS(_uM("alignItems" to "center")), "items-end" to _pS(_uM("alignItems" to "flex-end")), "items-stretch" to _pS(_uM("alignItems" to "stretch")), "justify-start" to _pS(_uM("justifyContent" to "flex-start")), "justify-center" to _pS(_uM("justifyContent" to "center")), "justify-end" to _pS(_uM("justifyContent" to "flex-end")), "justify-between" to _pS(_uM("justifyContent" to "space-between")), "justify-around" to _pS(_uM("justifyContent" to "space-around")), "flex-1" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "flex-auto" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "auto")), "flex-none" to _pS(_uM("flexGrow" to 0, "flexShrink" to 0, "flexBasis" to "auto")), "w-full" to _pS(_uM("width" to "100%")), "h-full" to _pS(_uM("height" to "100%")), "text-left" to _pS(_uM("textAlign" to "left")), "text-center" to _pS(_uM("textAlign" to "center")), "text-right" to _pS(_uM("textAlign" to "right")), "app-root" to _pS(_uM("backgroundColor" to "var(--background-color)", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to "var(--spacing-sm)", "paddingRight" to "var(--spacing)", "paddingBottom" to "var(--spacing-sm)", "paddingLeft" to "var(--spacing)", "fontSize" to "var(--font-size-sm)", "fontWeight" to "400", "lineHeight" to "var(--line-height-tight)", "whiteSpace" to "nowrap", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0)", "borderRightColor" to "rgba(0,0,0,0)", "borderBottomColor" to "rgba(0,0,0,0)", "borderLeftColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to "var(--border-radius)", "borderTopRightRadius" to "var(--border-radius)", "borderBottomRightRadius" to "var(--border-radius)", "borderBottomLeftRadius" to "var(--border-radius)", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "opacity:disabled" to 0.6)), "btn-primary" to _pS(_uM("color" to "var(--text-inverse)", "backgroundColor" to "var(--primary-color)", "borderTopColor" to "var(--primary-color)", "borderRightColor" to "var(--primary-color)", "borderBottomColor" to "var(--primary-color)", "borderLeftColor" to "var(--primary-color)")), "btn-secondary" to _pS(_uM("color" to "var(--text-secondary)", "backgroundColor" to "var(--background-color)", "borderTopColor" to "var(--border-color)", "borderRightColor" to "var(--border-color)", "borderBottomColor" to "var(--border-color)", "borderLeftColor" to "var(--border-color)")), "card" to _pS(_uM("backgroundColor" to "var(--background-color)", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "var(--border-color-light)", "borderRightColor" to "var(--border-color-light)", "borderBottomColor" to "var(--border-color-light)", "borderLeftColor" to "var(--border-color-light)", "borderTopLeftRadius" to "var(--border-radius-lg)", "borderTopRightRadius" to "var(--border-radius-lg)", "borderBottomRightRadius" to "var(--border-radius-lg)", "borderBottomLeftRadius" to "var(--border-radius-lg)", "boxShadow" to "var(--shadow)", "overflow" to "hidden")), "input" to _pS(_uM("display" to "flex", "width" to "100%", "paddingTop" to "var(--spacing-sm)", "paddingRight" to "var(--spacing)", "paddingBottom" to "var(--spacing-sm)", "paddingLeft" to "var(--spacing)", "fontSize" to "var(--font-size-sm)", "lineHeight" to "var(--line-height-tight)", "color" to "var(--text-primary)", "backgroundColor" to "var(--background-color)", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "var(--border-color)", "borderRightColor" to "var(--border-color)", "borderBottomColor" to "var(--border-color)", "borderLeftColor" to "var(--border-color)", "borderTopLeftRadius" to "var(--border-radius)", "borderTopRightRadius" to "var(--border-radius)", "borderBottomRightRadius" to "var(--border-radius)", "borderBottomLeftRadius" to "var(--border-radius)", "transitionProperty" to "borderColor", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "borderTopColor:focus" to "var(--primary-color)", "borderRightColor:focus" to "var(--primary-color)", "borderBottomColor:focus" to "var(--primary-color)", "borderLeftColor:focus" to "var(--primary-color)", "boxShadow:focus" to "0 0 0 2px rgba(24, 144, 255, 0.2)")), "@TRANSITION" to _uM("btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "input" to _uM("property" to "borderColor", "duration" to "0.2s", "timingFunction" to "ease"))) - } - } -} -val GenAppClass = CreateVueAppComponent(GenApp::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "app", name = "", inheritAttrs = true, inject = Map(), props = Map(), propsNeedCastKeys = _uA(), emits = Map(), components = Map(), styles = GenApp.styles) -} -, fun(instance): GenApp { - return GenApp(instance) -} -) -val GenPagesUserLoginClass = CreateVueComponent(GenPagesUserLogin::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserLogin.inheritAttrs, inject = GenPagesUserLogin.inject, props = GenPagesUserLogin.props, propsNeedCastKeys = GenPagesUserLogin.propsNeedCastKeys, emits = GenPagesUserLogin.emits, components = GenPagesUserLogin.components, styles = GenPagesUserLogin.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserLogin.setup(props as GenPagesUserLogin) - } - ) -} -, fun(instance, renderer): GenPagesUserLogin { - return GenPagesUserLogin(instance, renderer) -} -) -val GenPagesUserBootClass = CreateVueComponent(GenPagesUserBoot::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserBoot.inheritAttrs, inject = GenPagesUserBoot.inject, props = GenPagesUserBoot.props, propsNeedCastKeys = GenPagesUserBoot.propsNeedCastKeys, emits = GenPagesUserBoot.emits, components = GenPagesUserBoot.components, styles = GenPagesUserBoot.styles) -} -, fun(instance, renderer): GenPagesUserBoot { - return GenPagesUserBoot(instance, renderer) -} -) -val GenPagesUserRegisterClass = CreateVueComponent(GenPagesUserRegister::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserRegister.inheritAttrs, inject = GenPagesUserRegister.inject, props = GenPagesUserRegister.props, propsNeedCastKeys = GenPagesUserRegister.propsNeedCastKeys, emits = GenPagesUserRegister.emits, components = GenPagesUserRegister.components, styles = GenPagesUserRegister.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserRegister.setup(props as GenPagesUserRegister) - } - ) -} -, fun(instance, renderer): GenPagesUserRegister { - return GenPagesUserRegister(instance, renderer) -} -) -val GenPagesUserForgotPasswordClass = CreateVueComponent(GenPagesUserForgotPassword::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserForgotPassword.inheritAttrs, inject = GenPagesUserForgotPassword.inject, props = GenPagesUserForgotPassword.props, propsNeedCastKeys = GenPagesUserForgotPassword.propsNeedCastKeys, emits = GenPagesUserForgotPassword.emits, components = GenPagesUserForgotPassword.components, styles = GenPagesUserForgotPassword.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserForgotPassword.setup(props as GenPagesUserForgotPassword) - } - ) -} -, fun(instance, renderer): GenPagesUserForgotPassword { - return GenPagesUserForgotPassword(instance, renderer) -} -) -val GenPagesUserTermsClass = CreateVueComponent(GenPagesUserTerms::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserTerms.inheritAttrs, inject = GenPagesUserTerms.inject, props = GenPagesUserTerms.props, propsNeedCastKeys = GenPagesUserTerms.propsNeedCastKeys, emits = GenPagesUserTerms.emits, components = GenPagesUserTerms.components, styles = GenPagesUserTerms.styles) -} -, fun(instance, renderer): GenPagesUserTerms { - return GenPagesUserTerms(instance, renderer) -} -) -val OLD_URL = "192.168.1.61:18000" -val NEW_URL = "119.146.131.237:9126" -fun fixImageUrl(url: String?): String { - if (url == null) { - return "" - } - if (url.indexOf(OLD_URL) >= 0) { - return url.replace(OLD_URL, NEW_URL) - } - return url -} -fun fixImageUrls(urls: Any): UTSArray { - if (urls == null) { - return _uA() - } - if (UTSArray.isArray(urls)) { - val result: UTSArray = _uA() - val arr = urls as UTSArray - run { - var i: Number = 0 - while(i < arr.length){ - try { - val urlStr = JSON.stringify(arr[i]) - if (urlStr != null && urlStr.startsWith("\"") && urlStr.endsWith("\"")) { - val fixed = fixImageUrl(urlStr.substring(1, urlStr.length - 1)) - if (fixed !== "") { - result.push(fixed) - } - } - } - catch (e: Throwable) {} - i++ - } - } - return result - } - return _uA() -} -fun safeGetString(obj: UTSJSONObject, key: String): String { - try { - val rawVal = obj.get(key) - if (rawVal == null) { - return "" - } - val strVal = JSON.stringify(rawVal) - if (strVal == null) { - return "" - } - if (strVal.startsWith("\"") && strVal.endsWith("\"")) { - return strVal.substring(1, strVal.length - 1) - } - return strVal - } - catch (e: Throwable) { - console.error("safeGetString error for key:", key, e, " at utils/supabaseService.uts:50") - return "" - } -} -fun safeGetNumber(obj: UTSJSONObject, key: String): Number { - try { - val rawVal = obj.get(key) - if (rawVal == null) { - return 0 - } - try { - val numVal = rawVal as Number - if (!isNaN(numVal)) { - return numVal - } - } - catch (e: Throwable) {} - return 0 - } - catch (e: Throwable) { - console.error("safeGetNumber error for key:", key, e, " at utils/supabaseService.uts:66") - return 0 - } -} -fun safeGetBoolean(obj: UTSJSONObject, key: String): Boolean { - try { - val rawVal = obj.get(key) - if (rawVal == null) { - return false - } - try { - val boolVal = rawVal as Boolean - return boolVal - } - catch (e: Throwable) {} - return false - } - catch (e: Throwable) { - console.error("safeGetBoolean error for key:", key, e, " at utils/supabaseService.uts:82") - return false - } -} -fun safeGetStringArray(obj: UTSJSONObject, key: String): UTSArray { - try { - val rawVal = obj.get(key) - if (rawVal != null && UTSArray.isArray(rawVal)) { - return rawVal as UTSArray - } - return _uA() - } - catch (e: Throwable) { - console.error("safeGetStringArray error for key:", key, e, " at utils/supabaseService.uts:96") - return _uA() - } -} -fun parseProductFromRaw(item: Any): Product { - try { - console.log("[parseProductFromRaw] 开始解析商品", " at utils/supabaseService.uts:104") - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:111") as UTSJSONObject - console.log("[parseProductFromRaw] JSON转换成功", " at utils/supabaseService.uts:106") - val mainImageUrl = fixImageUrl(safeGetString(itemObj, "main_image_url")) - val imageUrls = fixImageUrls(safeGetStringArray(itemObj, "image_urls")) - console.log("[parseProductFromRaw] 图片处理完成", " at utils/supabaseService.uts:110") - val result = Product(id = safeGetString(itemObj, "id"), name = safeGetString(itemObj, "name"), description = safeGetString(itemObj, "description"), base_price = safeGetNumber(itemObj, "base_price"), price = safeGetNumber(itemObj, "base_price"), original_price = safeGetNumber(itemObj, "market_price"), market_price = safeGetNumber(itemObj, "market_price"), main_image_url = mainImageUrl, image_url = mainImageUrl, images = imageUrls, category_id = safeGetString(itemObj, "category_id"), brand_id = safeGetString(itemObj, "brand_id"), merchant_id = safeGetString(itemObj, "merchant_id"), total_stock = safeGetNumber(itemObj, "total_stock"), stock = safeGetNumber(itemObj, "total_stock"), sale_count = safeGetNumber(itemObj, "sale_count"), status = safeGetNumber(itemObj, "status"), is_featured = safeGetBoolean(itemObj, "is_featured"), is_new = safeGetBoolean(itemObj, "is_new"), is_hot = safeGetBoolean(itemObj, "is_hot"), specification = safeGetString(itemObj, "specification"), usage = safeGetString(itemObj, "usage"), side_effects = safeGetString(itemObj, "side_effects"), precautions = safeGetString(itemObj, "precautions"), expiry_date = safeGetString(itemObj, "expiry_date"), storage_conditions = safeGetString(itemObj, "storage_conditions"), approval_number = safeGetString(itemObj, "approval_number"), created_at = safeGetString(itemObj, "created_at")) - console.log("[parseProductFromRaw] 商品解析成功:", result.name, " at utils/supabaseService.uts:142") - return result - } - catch (e: Throwable) { - console.error("parseProductFromRaw error:", e, " at utils/supabaseService.uts:145") - return Product(id = "", name = "", description = "", base_price = 0, price = 0, original_price = 0, market_price = 0, main_image_url = "", image_url = "", images = _uA(), category_id = "", brand_id = "", merchant_id = "", total_stock = 0, stock = 0, sale_count = 0, status = 0, is_featured = false, is_new = false, is_hot = false, specification = "", usage = "", side_effects = "", precautions = "", expiry_date = "", storage_conditions = "", approval_number = "", created_at = "") - } -} -open class Brand ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var logo_url: String, - @JsonNotNull - open var description: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Brand", "utils/supabaseService.uts", 184, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return BrandReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class BrandReactiveObject : Brand, IUTSReactive { - override var __v_raw: Brand - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: Brand, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, logo_url = __v_raw.logo_url, description = __v_raw.description) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): BrandReactiveObject { - return BrandReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var logo_url: String - get() { - return _tRG(__v_raw, "logo_url", __v_raw.logo_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("logo_url")) { - return - } - val oldValue = __v_raw.logo_url - __v_raw.logo_url = value - _tRS(__v_raw, "logo_url", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } -} -open class Category ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var icon: String, - @JsonNotNull - open var description: String, - @JsonNotNull - open var color: String, - open var parent_id: String? = null, - open var level: Number? = null, - open var slug: String? = null, - open var created_at: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Category", "utils/supabaseService.uts", 190, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CategoryReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CategoryReactiveObject : Category, IUTSReactive { - override var __v_raw: Category - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: Category, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, icon = __v_raw.icon, description = __v_raw.description, color = __v_raw.color, parent_id = __v_raw.parent_id, level = __v_raw.level, slug = __v_raw.slug, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CategoryReactiveObject { - return CategoryReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var icon: String - get() { - return _tRG(__v_raw, "icon", __v_raw.icon, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("icon")) { - return - } - val oldValue = __v_raw.icon - __v_raw.icon = value - _tRS(__v_raw, "icon", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var color: String - get() { - return _tRG(__v_raw, "color", __v_raw.color, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("color")) { - return - } - val oldValue = __v_raw.color - __v_raw.color = value - _tRS(__v_raw, "color", oldValue, value) - } - override var parent_id: String? - get() { - return _tRG(__v_raw, "parent_id", __v_raw.parent_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("parent_id")) { - return - } - val oldValue = __v_raw.parent_id - __v_raw.parent_id = value - _tRS(__v_raw, "parent_id", oldValue, value) - } - override var level: Number? - get() { - return _tRG(__v_raw, "level", __v_raw.level, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("level")) { - return - } - val oldValue = __v_raw.level - __v_raw.level = value - _tRS(__v_raw, "level", oldValue, value) - } - override var slug: String? - get() { - return _tRG(__v_raw, "slug", __v_raw.slug, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("slug")) { - return - } - val oldValue = __v_raw.slug - __v_raw.slug = value - _tRS(__v_raw, "slug", oldValue, value) - } - override var created_at: String? - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class Product ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var category_id: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var name: String, - open var subtitle: String? = null, - open var description: String? = null, - open var base_price: Number? = null, - open var market_price: Number? = null, - open var cost_price: Number? = null, - open var main_image_url: String? = null, - open var image_url: String? = null, - open var image_urls: String? = null, - open var video_urls: String? = null, - open var images: UTSArray? = null, - open var sale_count: Number? = null, - open var view_count: Number? = null, - open var total_stock: Number? = null, - open var available_stock: Number? = null, - open var is_hot: Boolean? = null, - open var is_new: Boolean? = null, - open var is_featured: Boolean? = null, - open var status: Number? = null, - open var rating_avg: Number? = null, - open var rating_count: Number? = null, - open var rating: Number? = null, - open var review_count: Number? = null, - open var brand_id: String? = null, - open var shop_id: String? = null, - open var tags: String? = null, - open var attributes: String? = null, - open var specification: String? = null, - open var usage: String? = null, - open var side_effects: String? = null, - open var precautions: String? = null, - open var expiry_date: String? = null, - open var storage_conditions: String? = null, - open var approval_number: String? = null, - open var created_at: String? = null, - open var updated_at: String? = null, - open var price: Number? = null, - open var original_price: Number? = null, - open var stock: Number? = null, - open var sales: Number? = null, - open var cover: String? = null, - open var brand_name: String? = null, - open var category_name: String? = null, - open var shop_name: String? = null, - open var merchant_name: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Product", "utils/supabaseService.uts", 201, 13) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ProductReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ProductReactiveObject : Product, IUTSReactive { - override var __v_raw: Product - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: Product, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, category_id = __v_raw.category_id, merchant_id = __v_raw.merchant_id, name = __v_raw.name, subtitle = __v_raw.subtitle, description = __v_raw.description, base_price = __v_raw.base_price, market_price = __v_raw.market_price, cost_price = __v_raw.cost_price, main_image_url = __v_raw.main_image_url, image_url = __v_raw.image_url, image_urls = __v_raw.image_urls, video_urls = __v_raw.video_urls, images = __v_raw.images, sale_count = __v_raw.sale_count, view_count = __v_raw.view_count, total_stock = __v_raw.total_stock, available_stock = __v_raw.available_stock, is_hot = __v_raw.is_hot, is_new = __v_raw.is_new, is_featured = __v_raw.is_featured, status = __v_raw.status, rating_avg = __v_raw.rating_avg, rating_count = __v_raw.rating_count, rating = __v_raw.rating, review_count = __v_raw.review_count, brand_id = __v_raw.brand_id, shop_id = __v_raw.shop_id, tags = __v_raw.tags, attributes = __v_raw.attributes, specification = __v_raw.specification, usage = __v_raw.usage, side_effects = __v_raw.side_effects, precautions = __v_raw.precautions, expiry_date = __v_raw.expiry_date, storage_conditions = __v_raw.storage_conditions, approval_number = __v_raw.approval_number, created_at = __v_raw.created_at, updated_at = __v_raw.updated_at, price = __v_raw.price, original_price = __v_raw.original_price, stock = __v_raw.stock, sales = __v_raw.sales, cover = __v_raw.cover, brand_name = __v_raw.brand_name, category_name = __v_raw.category_name, shop_name = __v_raw.shop_name, merchant_name = __v_raw.merchant_name) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ProductReactiveObject { - return ProductReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var category_id: String - get() { - return _tRG(__v_raw, "category_id", __v_raw.category_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("category_id")) { - return - } - val oldValue = __v_raw.category_id - __v_raw.category_id = value - _tRS(__v_raw, "category_id", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var subtitle: String? - get() { - return _tRG(__v_raw, "subtitle", __v_raw.subtitle, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("subtitle")) { - return - } - val oldValue = __v_raw.subtitle - __v_raw.subtitle = value - _tRS(__v_raw, "subtitle", oldValue, value) - } - override var description: String? - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var base_price: Number? - get() { - return _tRG(__v_raw, "base_price", __v_raw.base_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("base_price")) { - return - } - val oldValue = __v_raw.base_price - __v_raw.base_price = value - _tRS(__v_raw, "base_price", oldValue, value) - } - override var market_price: Number? - get() { - return _tRG(__v_raw, "market_price", __v_raw.market_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("market_price")) { - return - } - val oldValue = __v_raw.market_price - __v_raw.market_price = value - _tRS(__v_raw, "market_price", oldValue, value) - } - override var cost_price: Number? - get() { - return _tRG(__v_raw, "cost_price", __v_raw.cost_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("cost_price")) { - return - } - val oldValue = __v_raw.cost_price - __v_raw.cost_price = value - _tRS(__v_raw, "cost_price", oldValue, value) - } - override var main_image_url: String? - get() { - return _tRG(__v_raw, "main_image_url", __v_raw.main_image_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("main_image_url")) { - return - } - val oldValue = __v_raw.main_image_url - __v_raw.main_image_url = value - _tRS(__v_raw, "main_image_url", oldValue, value) - } - override var image_url: String? - get() { - return _tRG(__v_raw, "image_url", __v_raw.image_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image_url")) { - return - } - val oldValue = __v_raw.image_url - __v_raw.image_url = value - _tRS(__v_raw, "image_url", oldValue, value) - } - override var image_urls: String? - get() { - return _tRG(__v_raw, "image_urls", __v_raw.image_urls, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image_urls")) { - return - } - val oldValue = __v_raw.image_urls - __v_raw.image_urls = value - _tRS(__v_raw, "image_urls", oldValue, value) - } - override var video_urls: String? - get() { - return _tRG(__v_raw, "video_urls", __v_raw.video_urls, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("video_urls")) { - return - } - val oldValue = __v_raw.video_urls - __v_raw.video_urls = value - _tRS(__v_raw, "video_urls", oldValue, value) - } - override var images: UTSArray? - get() { - return _tRG(__v_raw, "images", __v_raw.images, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("images")) { - return - } - val oldValue = __v_raw.images - __v_raw.images = value - _tRS(__v_raw, "images", oldValue, value) - } - override var sale_count: Number? - get() { - return _tRG(__v_raw, "sale_count", __v_raw.sale_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sale_count")) { - return - } - val oldValue = __v_raw.sale_count - __v_raw.sale_count = value - _tRS(__v_raw, "sale_count", oldValue, value) - } - override var view_count: Number? - get() { - return _tRG(__v_raw, "view_count", __v_raw.view_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("view_count")) { - return - } - val oldValue = __v_raw.view_count - __v_raw.view_count = value - _tRS(__v_raw, "view_count", oldValue, value) - } - override var total_stock: Number? - get() { - return _tRG(__v_raw, "total_stock", __v_raw.total_stock, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_stock")) { - return - } - val oldValue = __v_raw.total_stock - __v_raw.total_stock = value - _tRS(__v_raw, "total_stock", oldValue, value) - } - override var available_stock: Number? - get() { - return _tRG(__v_raw, "available_stock", __v_raw.available_stock, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("available_stock")) { - return - } - val oldValue = __v_raw.available_stock - __v_raw.available_stock = value - _tRS(__v_raw, "available_stock", oldValue, value) - } - override var is_hot: Boolean? - get() { - return _tRG(__v_raw, "is_hot", __v_raw.is_hot, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_hot")) { - return - } - val oldValue = __v_raw.is_hot - __v_raw.is_hot = value - _tRS(__v_raw, "is_hot", oldValue, value) - } - override var is_new: Boolean? - get() { - return _tRG(__v_raw, "is_new", __v_raw.is_new, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_new")) { - return - } - val oldValue = __v_raw.is_new - __v_raw.is_new = value - _tRS(__v_raw, "is_new", oldValue, value) - } - override var is_featured: Boolean? - get() { - return _tRG(__v_raw, "is_featured", __v_raw.is_featured, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_featured")) { - return - } - val oldValue = __v_raw.is_featured - __v_raw.is_featured = value - _tRS(__v_raw, "is_featured", oldValue, value) - } - override var status: Number? - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var rating_avg: Number? - get() { - return _tRG(__v_raw, "rating_avg", __v_raw.rating_avg, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating_avg")) { - return - } - val oldValue = __v_raw.rating_avg - __v_raw.rating_avg = value - _tRS(__v_raw, "rating_avg", oldValue, value) - } - override var rating_count: Number? - get() { - return _tRG(__v_raw, "rating_count", __v_raw.rating_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating_count")) { - return - } - val oldValue = __v_raw.rating_count - __v_raw.rating_count = value - _tRS(__v_raw, "rating_count", oldValue, value) - } - override var rating: Number? - get() { - return _tRG(__v_raw, "rating", __v_raw.rating, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating")) { - return - } - val oldValue = __v_raw.rating - __v_raw.rating = value - _tRS(__v_raw, "rating", oldValue, value) - } - override var review_count: Number? - get() { - return _tRG(__v_raw, "review_count", __v_raw.review_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("review_count")) { - return - } - val oldValue = __v_raw.review_count - __v_raw.review_count = value - _tRS(__v_raw, "review_count", oldValue, value) - } - override var brand_id: String? - get() { - return _tRG(__v_raw, "brand_id", __v_raw.brand_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("brand_id")) { - return - } - val oldValue = __v_raw.brand_id - __v_raw.brand_id = value - _tRS(__v_raw, "brand_id", oldValue, value) - } - override var shop_id: String? - get() { - return _tRG(__v_raw, "shop_id", __v_raw.shop_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_id")) { - return - } - val oldValue = __v_raw.shop_id - __v_raw.shop_id = value - _tRS(__v_raw, "shop_id", oldValue, value) - } - override var tags: String? - get() { - return _tRG(__v_raw, "tags", __v_raw.tags, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("tags")) { - return - } - val oldValue = __v_raw.tags - __v_raw.tags = value - _tRS(__v_raw, "tags", oldValue, value) - } - override var attributes: String? - get() { - return _tRG(__v_raw, "attributes", __v_raw.attributes, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("attributes")) { - return - } - val oldValue = __v_raw.attributes - __v_raw.attributes = value - _tRS(__v_raw, "attributes", oldValue, value) - } - override var specification: String? - get() { - return _tRG(__v_raw, "specification", __v_raw.specification, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("specification")) { - return - } - val oldValue = __v_raw.specification - __v_raw.specification = value - _tRS(__v_raw, "specification", oldValue, value) - } - override var usage: String? - get() { - return _tRG(__v_raw, "usage", __v_raw.usage, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("usage")) { - return - } - val oldValue = __v_raw.usage - __v_raw.usage = value - _tRS(__v_raw, "usage", oldValue, value) - } - override var side_effects: String? - get() { - return _tRG(__v_raw, "side_effects", __v_raw.side_effects, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("side_effects")) { - return - } - val oldValue = __v_raw.side_effects - __v_raw.side_effects = value - _tRS(__v_raw, "side_effects", oldValue, value) - } - override var precautions: String? - get() { - return _tRG(__v_raw, "precautions", __v_raw.precautions, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("precautions")) { - return - } - val oldValue = __v_raw.precautions - __v_raw.precautions = value - _tRS(__v_raw, "precautions", oldValue, value) - } - override var expiry_date: String? - get() { - return _tRG(__v_raw, "expiry_date", __v_raw.expiry_date, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expiry_date")) { - return - } - val oldValue = __v_raw.expiry_date - __v_raw.expiry_date = value - _tRS(__v_raw, "expiry_date", oldValue, value) - } - override var storage_conditions: String? - get() { - return _tRG(__v_raw, "storage_conditions", __v_raw.storage_conditions, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("storage_conditions")) { - return - } - val oldValue = __v_raw.storage_conditions - __v_raw.storage_conditions = value - _tRS(__v_raw, "storage_conditions", oldValue, value) - } - override var approval_number: String? - get() { - return _tRG(__v_raw, "approval_number", __v_raw.approval_number, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("approval_number")) { - return - } - val oldValue = __v_raw.approval_number - __v_raw.approval_number = value - _tRS(__v_raw, "approval_number", oldValue, value) - } - override var created_at: String? - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var updated_at: String? - get() { - return _tRG(__v_raw, "updated_at", __v_raw.updated_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("updated_at")) { - return - } - val oldValue = __v_raw.updated_at - __v_raw.updated_at = value - _tRS(__v_raw, "updated_at", oldValue, value) - } - override var price: Number? - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var original_price: Number? - get() { - return _tRG(__v_raw, "original_price", __v_raw.original_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("original_price")) { - return - } - val oldValue = __v_raw.original_price - __v_raw.original_price = value - _tRS(__v_raw, "original_price", oldValue, value) - } - override var stock: Number? - get() { - return _tRG(__v_raw, "stock", __v_raw.stock, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("stock")) { - return - } - val oldValue = __v_raw.stock - __v_raw.stock = value - _tRS(__v_raw, "stock", oldValue, value) - } - override var sales: Number? - get() { - return _tRG(__v_raw, "sales", __v_raw.sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sales")) { - return - } - val oldValue = __v_raw.sales - __v_raw.sales = value - _tRS(__v_raw, "sales", oldValue, value) - } - override var cover: String? - get() { - return _tRG(__v_raw, "cover", __v_raw.cover, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("cover")) { - return - } - val oldValue = __v_raw.cover - __v_raw.cover = value - _tRS(__v_raw, "cover", oldValue, value) - } - override var brand_name: String? - get() { - return _tRG(__v_raw, "brand_name", __v_raw.brand_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("brand_name")) { - return - } - val oldValue = __v_raw.brand_name - __v_raw.brand_name = value - _tRS(__v_raw, "brand_name", oldValue, value) - } - override var category_name: String? - get() { - return _tRG(__v_raw, "category_name", __v_raw.category_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("category_name")) { - return - } - val oldValue = __v_raw.category_name - __v_raw.category_name = value - _tRS(__v_raw, "category_name", oldValue, value) - } - override var shop_name: String? - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var merchant_name: String? - get() { - return _tRG(__v_raw, "merchant_name", __v_raw.merchant_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_name")) { - return - } - val oldValue = __v_raw.merchant_name - __v_raw.merchant_name = value - _tRS(__v_raw, "merchant_name", oldValue, value) - } -} -open class Shop ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var shop_name: String, - open var shop_logo: String? = null, - open var shop_banner: String? = null, - open var description: String? = null, - open var contact_name: String? = null, - open var contact_phone: String? = null, - open var rating_avg: Number? = null, - open var total_sales: Number? = null, - open var product_count: Number? = null, - open var total_sales_count: Number? = null, - open var created_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Shop", "utils/supabaseService.uts", 251, 13) - } -} -open class CartItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var product_id: String, - open var sku_id: String? = null, - open var merchant_id: String? = null, - @JsonNotNull - open var quantity: Number, - @JsonNotNull - open var selected: Boolean = false, - open var product_name: String? = null, - open var product_image: String? = null, - open var product_price: Number? = null, - open var product_specification: String? = null, - open var shop_id: String? = null, - open var shop_name: String? = null, - open var created_at: String? = null, - open var updated_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CartItem", "utils/supabaseService.uts", 266, 13) - } -} -open class UserAddress ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var recipient_name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail_address: String, - open var postal_code: String? = null, - @JsonNotNull - open var is_default: Boolean = false, - open var label: String? = null, - open var created_at: String? = null, - open var updated_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserAddress", "utils/supabaseService.uts", 283, 13) - } -} -open class UserCoupon ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var template_id: String, - @JsonNotNull - open var coupon_code: String, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var received_at: String, - @JsonNotNull - open var expire_at: String, - open var used_at: String? = null, - open var template_name: String? = null, - open var amount: Number? = null, - open var min_spend: Number? = null, - open var name: String? = null, - open var title: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserCoupon", "utils/supabaseService.uts", 298, 13) - } -} -open class ChatRoom ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var shop_name: String, - open var shop_logo: String? = null, - open var last_message: String? = null, - open var last_message_at: String? = null, - @JsonNotNull - open var unread_count: Number, - @JsonNotNull - open var is_top: Boolean = false, - open var created_at: String? = null, - open var updated_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ChatRoom", "utils/supabaseService.uts", 314, 13) - } -} -open class Notification ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var type: String, - @JsonNotNull - open var title: String, - @JsonNotNull - open var content: String, - open var icon_url: String? = null, - open var link_url: String? = null, - @JsonNotNull - open var is_read: Boolean = false, - open var extra_data: String? = null, - open var created_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Notification", "utils/supabaseService.uts", 327, 13) - } -} -open class ChatMessage ( - @JsonNotNull - open var id: String, - open var session_id: String? = null, - open var sender_id: String? = null, - open var receiver_id: String? = null, - @JsonNotNull - open var content: String, - @JsonNotNull - open var msg_type: String, - @JsonNotNull - open var is_read: Boolean = false, - @JsonNotNull - open var is_from_user: Boolean = false, - open var extra_data: String? = null, - open var created_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ChatMessage", "utils/supabaseService.uts", 339, 13) - } -} -open class PaginatedResponse ( - @JsonNotNull - open var data: UTSArray, - @JsonNotNull - open var total: Number, - @JsonNotNull - open var page: Number, - @JsonNotNull - open var limit: Number, - @JsonNotNull - open var hasmore: Boolean = false, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("PaginatedResponse", "utils/supabaseService.uts", 351, 13) - } -} -open class ProductSku ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var product_id: String, - @JsonNotNull - open var sku_code: String, - @JsonNotNull - open var specifications: String, - @JsonNotNull - open var price: Number, - open var market_price: Number? = null, - open var cost_price: Number? = null, - open var stock: Number? = null, - open var warning_stock: Number? = null, - open var image_url: String? = null, - open var weight: Number? = null, - open var status: Number? = null, - open var created_at: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ProductSku", "utils/supabaseService.uts", 358, 13) - } -} -open class AddAddressParams ( - @JsonNotNull - open var recipient_name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail_address: String, - open var postal_code: String? = null, - open var is_default: Boolean? = null, - open var label: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AddAddressParams", "utils/supabaseService.uts", 373, 13) - } -} -open class UpdateAddressParams ( - open var recipient_name: String? = null, - open var phone: String? = null, - open var province: String? = null, - open var city: String? = null, - open var district: String? = null, - open var detail_address: String? = null, - open var postal_code: String? = null, - open var is_default: Boolean? = null, - open var label: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UpdateAddressParams", "utils/supabaseService.uts", 384, 13) - } -} -open class CreateOrderParams ( - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var product_amount: Number, - @JsonNotNull - open var shipping_fee: Number, - @JsonNotNull - open var total_amount: Number, - @JsonNotNull - open var shipping_address: Any, - @JsonNotNull - open var items: UTSArray, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CreateOrderParams", "utils/supabaseService.uts", 395, 13) - } -} -open class ShopOrderParams ( - @JsonNotNull - open var shipping_address: Any, - @JsonNotNull - open var shopGroups: UTSArray, - @JsonNotNull - open var deliveryFee: Number, - @JsonNotNull - open var discountAmount: Number, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ShopOrderParams", "utils/supabaseService.uts", 403, 13) - } -} -open class ShopOrderResponse ( - @JsonNotNull - open var success: Boolean = false, - @JsonNotNull - open var orderIds: UTSArray, - open var error: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ShopOrderResponse", "utils/supabaseService.uts", 409, 13) - } -} -open class RefundResponse ( - @JsonNotNull - open var success: Boolean = false, - @JsonNotNull - open var message: String, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundResponse", "utils/supabaseService.uts", 414, 13) - } -} -open class ConfirmReceiptResponse ( - @JsonNotNull - open var success: Boolean = false, - open var error: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ConfirmReceiptResponse", "utils/supabaseService.uts", 418, 13) - } -} -open class SupabaseService : IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("SupabaseService", "utils/supabaseService.uts", 422, 7) - } - public open fun getCurrentUserId(): String? { - try { - val session = supaInstance.getSession() - if (session != null && session.user != null) { - return session.user!!.getString("id") - } - val userId = uni_getStorageSync("user_id") - return if (userId != null) { - userId as String - } else { - null - } - } - catch (e: Throwable) { - console.error("获取用户ID失败:", e, " at utils/supabaseService.uts:455") - return null - } - } - open fun ensureSession(): UTSPromise { - return wrapUTSPromise(suspend w@{ - var session = supaInstance.getSession() - if (session.user == null) { - console.log("Session user is null, attempting to hydrate from storage...", " at utils/supabaseService.uts:464") - await(supaInstance.hydrateSessionFromStorage()) - session = supaInstance.getSession() - } - if (session.user != null) { - val uid = session.user!!!!.getString("id") - if (uid != null) { - uni_setStorageSync("user_id", uid) - return@w uid - } - } - return@w this.getCurrentUserId() - }) - } - open fun getCategories(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_categories").select("*").order("name", OrderOptions(ascending = true)).execute()) - if (response.error != null) { - console.error("获取分类失败:", response.error, " at utils/supabaseService.uts:490") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val categories: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val catObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:481") as UTSJSONObject - val idVal = catObj.get("id") - val nameVal = catObj.get("name") - val iconVal = catObj.get("icon") - val iconUrlVal = catObj.get("icon_url") - val descVal = catObj.get("description") - val colorVal = catObj.get("color") - val parentIdVal = catObj.get("parent_id") - val levelVal = catObj.get("level") - val cat: Category = Category(id = if ((UTSAndroid.`typeof`(idVal) == "string")) { - (idVal as String) - } else { - "" - } - , name = if ((UTSAndroid.`typeof`(nameVal) == "string")) { - (nameVal as String) - } else { - "" - } - , icon = if ((UTSAndroid.`typeof`(iconVal) == "string")) { - (iconVal as String) - } else { - if ((UTSAndroid.`typeof`(iconUrlVal) == "string")) { - (iconUrlVal as String) - } else { - "" - } - } - , description = if ((UTSAndroid.`typeof`(descVal) == "string")) { - (descVal as String) - } else { - "" - } - , color = if ((UTSAndroid.`typeof`(colorVal) == "string")) { - (colorVal as String) - } else { - "#4CAF50" - } - , parent_id = if ((UTSAndroid.`typeof`(parentIdVal) == "string")) { - (parentIdVal as String) - } else { - null - } - , level = if ((UTSAndroid.`typeof`(levelVal) == "number")) { - (levelVal as Number) - } else { - 0 - } - ) - categories.push(cat) - i++ - } - } - return@w categories - } - catch (error: Throwable) { - console.error("获取分类异常:", error, " at utils/supabaseService.uts:526") - return@w _uA() - } - }) - } - open fun getCategoryById(categoryId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_categories").select("*").eq("id", categoryId).limit(1).execute()) - if (response.error != null) { - console.error("获取分类失败:", response.error, " at utils/supabaseService.uts:542") - return@w null - } - val rawData = response.data - if (rawData == null) { - return@w null - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - return@w null - } - val item = rawList[0] - val catObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:531") as UTSJSONObject - val idVal = catObj.get("id") - val nameVal = catObj.get("name") - val iconVal = catObj.get("icon") - val iconUrlVal = catObj.get("icon_url") - val descVal = catObj.get("description") - val colorVal = catObj.get("color") - val parentIdVal = catObj.get("parent_id") - val levelVal = catObj.get("level") - val cat: Category = Category(id = if ((UTSAndroid.`typeof`(idVal) == "string")) { - (idVal as String) - } else { - "" - } - , name = if ((UTSAndroid.`typeof`(nameVal) == "string")) { - (nameVal as String) - } else { - "" - } - , icon = if ((UTSAndroid.`typeof`(iconVal) == "string")) { - (iconVal as String) - } else { - if ((UTSAndroid.`typeof`(iconUrlVal) == "string")) { - (iconUrlVal as String) - } else { - "" - } - } - , description = if ((UTSAndroid.`typeof`(descVal) == "string")) { - (descVal as String) - } else { - "" - } - , color = if ((UTSAndroid.`typeof`(colorVal) == "string")) { - (colorVal as String) - } else { - "#4CAF50" - } - , parent_id = if ((UTSAndroid.`typeof`(parentIdVal) == "string")) { - (parentIdVal as String) - } else { - null - } - , level = if ((UTSAndroid.`typeof`(levelVal) == "number")) { - (levelVal as Number) - } else { - 0 - } - ) - return@w cat - } - catch (error: Throwable) { - console.error("获取分类异常:", error, " at utils/supabaseService.uts:579") - return@w null - } - }) - } - open fun getParentCategories(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_categories").select("*").`is`("parent_id", null).order("sort_order", OrderOptions(ascending = true)).execute()) - if (response.error != null) { - console.error("获取一级分类失败:", response.error, " at utils/supabaseService.uts:595") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val categories: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val icon = this.getCategoryIcon(item) - val idVal = item["id"] - val nameVal = item["name"] - val descVal = item["description"] - val colorVal = item["color"] - val slugVal = item["slug"] - val cat = Category(id = if ((UTSAndroid.`typeof`(idVal) == "string")) { - (idVal as String) - } else { - "" - } - , name = if ((UTSAndroid.`typeof`(nameVal) == "string")) { - (nameVal as String) - } else { - "" - } - , icon = icon, description = if ((UTSAndroid.`typeof`(descVal) == "string")) { - (descVal as String) - } else { - "" - } - , color = if ((UTSAndroid.`typeof`(colorVal) == "string")) { - (colorVal as String) - } else { - "#ff5000" - } - , level = 1, slug = if ((UTSAndroid.`typeof`(slugVal) == "string")) { - (slugVal as String) - } else { - "" - } - ) - categories.push(cat) - i++ - } - } - return@w categories - } - catch (error: Throwable) { - console.error("获取一级分类异常:", error, " at utils/supabaseService.uts:630") - return@w _uA() - } - }) - } - open fun getSubCategories(parentId: String): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getSubCategories] 开始获取子分类, parentId:", parentId, " at utils/supabaseService.uts:638") - val response = await(supaInstance.from("ml_categories").select("*").order("sort_order", OrderOptions(ascending = true)).execute()) - console.log("[getSubCategories] 查询完成", " at utils/supabaseService.uts:645") - if (response.error != null) { - console.error("获取子分类失败:", response.error, " at utils/supabaseService.uts:648") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - console.log("[getSubCategories] 数据为空", " at utils/supabaseService.uts:654") - return@w _uA() - } - val categories: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getSubCategories] 原始数据条数:", rawList.length, " at utils/supabaseService.uts:660") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:626") as UTSJSONObject - val itemParentId = safeGetString(itemObj, "parent_id") - val isMatch = (itemParentId.length > 0 && itemParentId == parentId) - if (!isMatch) { - i++ - continue - } - val icon = this.getCategoryIcon(itemObj) - val cat = Category(id = safeGetString(itemObj, "id"), name = safeGetString(itemObj, "name"), icon = icon, description = safeGetString(itemObj, "description"), color = if (safeGetString(itemObj, "color").length > 0) { - safeGetString(itemObj, "color") - } else { - "#ff5000" - } - , level = 2, parent_id = safeGetString(itemObj, "parent_id"), slug = safeGetString(itemObj, "slug")) - categories.push(cat) - i++ - } - } - console.log("[getSubCategories] 返回分类数量:", categories.length, " at utils/supabaseService.uts:686") - return@w categories - } - catch (error: Throwable) { - console.error("获取子分类异常:", error, " at utils/supabaseService.uts:689") - return@w _uA() - } - }) - } - open fun getCategoryIcon(item: UTSJSONObject): String { - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:656") as UTSJSONObject - val icon = safeGetString(itemObj, "icon") - if (icon.length > 0) { - return icon - } - val iconUrl = safeGetString(itemObj, "icon_url") - if (iconUrl.length > 0) { - return iconUrl - } - val name = safeGetString(itemObj, "name") - if (name.includes("数码") || name.includes("电器") || name.includes("手机")) { - return "📱" - } - if (name.includes("服装") || name.includes("衣服") || name.includes("鞋")) { - return "👕" - } - if (name.includes("食品") || name.includes("水果") || name.includes("零食")) { - return "🍎" - } - if (name.includes("美妆") || name.includes("护肤") || name.includes("化妆")) { - return "💄" - } - if (name.includes("母婴") || name.includes("婴儿") || name.includes("儿童")) { - return "👶" - } - if (name.includes("家居") || name.includes("家具") || name.includes("装饰")) { - return "🏠" - } - if (name.includes("图书") || name.includes("文具")) { - return "📚" - } - if (name.includes("运动") || name.includes("户外") || name.includes("健身")) { - return "⚽" - } - if (name.includes("医药") || name.includes("保健") || name.includes("健康")) { - return "💊" - } - return "📦" - } - open fun getBrands(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getBrands] 开始获取品牌数据...", " at utils/supabaseService.uts:721") - val response = await(supaInstance.from("ml_brands").select("id, name, logo_url, description, is_active").order("name", OrderOptions(ascending = true)).execute()) - if (response.error != null) { - console.error("获取品牌失败:", response.error, " at utils/supabaseService.uts:729") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - console.log("[getBrands] 数据为空", " at utils/supabaseService.uts:735") - return@w _uA() - } - val brands: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getBrands] 数据条数:", rawList.length, " at utils/supabaseService.uts:741") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val brandObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:709") as UTSJSONObject - val idVal = brandObj.get("id") - val nameVal = brandObj.get("name") - val logoVal = brandObj.get("logo_url") - val descVal = brandObj.get("description") - val isActiveVal = brandObj.get("is_active") - var isActiveBool: Boolean = true - if (isActiveVal != null) { - if (UTSAndroid.`typeof`(isActiveVal) == "boolean") { - isActiveBool = isActiveVal as Boolean - } else if (UTSAndroid.`typeof`(isActiveVal) == "number") { - isActiveBool = (isActiveVal as Number) === 1 - } - } - if (!isActiveBool) { - i++ - continue - } - val brand: Brand = Brand(id = if ((UTSAndroid.`typeof`(idVal) == "string")) { - (idVal as String) - } else { - "" - } - , name = if ((UTSAndroid.`typeof`(nameVal) == "string")) { - (nameVal as String) - } else { - "" - } - , logo_url = if ((UTSAndroid.`typeof`(logoVal) == "string")) { - (logoVal as String) - } else { - "" - } - , description = if ((UTSAndroid.`typeof`(descVal) == "string")) { - (descVal as String) - } else { - "" - } - ) - brands.push(brand) - i++ - } - } - console.log("[getBrands] 返回品牌数量:", brands.length, " at utils/supabaseService.uts:772") - return@w brands - } - catch (error: Throwable) { - console.error("获取品牌异常:", error, " at utils/supabaseService.uts:775") - return@w _uA() - } - }) - } - open fun getProductsByCategory(categoryId: String, page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getProductsByCategory] 开始查询,分类ID:", categoryId, "页码:", page, " at utils/supabaseService.uts:787") - val response = await(supaInstance.from("ml_products_detail_view").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("category_id", categoryId).eq("status", "1").order("sale_count", OrderOptions(ascending = false)).page(page).limit(limit).execute()) - console.log("[getProductsByCategory] 查询完成,total:", response.total, " at utils/supabaseService.uts:800") - if (response.error != null) { - console.error("获取商品失败:", response.error, " at utils/supabaseService.uts:803") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val rawData = response.data - if (rawData == null) { - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getProductsByCategory] 返回数据条数:", rawList.length, " at utils/supabaseService.uts:826") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - products.push(parseProductFromRaw(item)) - i++ - } - } - return@w PaginatedResponse(data = products, total = response.total ?: products.length, page = page, limit = limit, hasmore = response.hasmore ?: false) - } - catch (error: Throwable) { - console.error("获取商品异常:", error, " at utils/supabaseService.uts:841") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - }) - } - open fun getProductSkus(productId: String): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getProductSkus] 开始获取SKU,商品ID:", productId, " at utils/supabaseService.uts:855") - val response = await(supaInstance.from("ml_product_skus").select("*").eq("product_id", productId).eq("status", "1").execute()) - if (response.error != null) { - console.error("获取商品SKU失败:", response.error, " at utils/supabaseService.uts:864") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val skus: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getProductSkus] 获取到SKU数量:", rawList.length, " at utils/supabaseService.uts:873") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val skuObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:826") as UTSJSONObject - val rawId = skuObj.get("id") - val rawSkuCode = skuObj.get("sku_code") - val rawProdId = skuObj.get("product_id") - val rawPrice = skuObj.get("price") - val rawStock = skuObj.get("stock") - val rawImageUrl = skuObj.get("image_url") - val rawSpecs = skuObj.get("specifications") - var specsStr = "" - if (rawSpecs != null) { - try { - if (UTSAndroid.`typeof`(rawSpecs) == "string") { - specsStr = rawSpecs as String - } else { - specsStr = JSON.stringify(rawSpecs) - } - } - catch (e: Throwable) { - console.error("解析SKU规格失败", e, " at utils/supabaseService.uts:896") - } - } - val sku = ProductSku(id = if ((UTSAndroid.`typeof`(rawId) == "string")) { - (rawId as String) - } else { - "" - } - , product_id = if ((UTSAndroid.`typeof`(rawProdId) == "string")) { - (rawProdId as String) - } else { - "" - } - , sku_code = if ((UTSAndroid.`typeof`(rawSkuCode) == "string")) { - (rawSkuCode as String) - } else { - "" - } - , specifications = specsStr, price = if ((UTSAndroid.`typeof`(rawPrice) == "number")) { - (rawPrice as Number) - } else { - 0 - } - , stock = if ((UTSAndroid.`typeof`(rawStock) == "number")) { - (rawStock as Number) - } else { - 0 - } - , image_url = if ((UTSAndroid.`typeof`(rawImageUrl) == "string")) { - (rawImageUrl as String) - } else { - "" - } - , status = 1) - skus.push(sku) - i++ - } - } - return@w skus - } - catch (error: Throwable) { - console.error("获取商品SKU异常:", error, " at utils/supabaseService.uts:914") - return@w _uA() - } - }) - } - open fun searchProducts(keyword: String, page: Number = 1, limit: Number = 20, sortBy: String = "sales", ascending: Boolean = false): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val keywordLower = keyword.toLowerCase() - val encodedKeyword = UTSAndroid.consoleDebugError(encodeURIComponent(keywordLower), " at utils/supabaseService.uts:871") - val orString = "name.ilike.%" + encodedKeyword + "%,description.ilike.%" + encodedKeyword + "%,subtitle.ilike.%" + encodedKeyword + "%,brand_name.ilike.%" + encodedKeyword + "%" - console.log("[searchProducts] 搜索关键词:", keyword, "编码后:", encodedKeyword, " at utils/supabaseService.uts:931") - console.log("[searchProducts] or条件:", orString, " at utils/supabaseService.uts:932") - var query = supaInstance.from("ml_products_detail_view").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("status", 1).or(orString) - if (sortBy === "price") { - query = query.order("base_price", OrderOptions(ascending = ascending)) - } else if (sortBy === "sales" || sortBy === "sale_count") { - query = query.order("sale_count", OrderOptions(ascending = false)) - } else { - query = query.order("sale_count", OrderOptions(ascending = false)) - } - val response = await(query.page(page).limit(limit).execute()) - var dataLength: Number = 0 - try { - val respData = response.data - if (respData != null && UTSArray.isArray(respData)) { - dataLength = (respData as UTSArray).length - } - } - catch (e: Throwable) { - console.error("[searchProducts] 获取数据长度失败:", e, " at utils/supabaseService.uts:960") - } - var statusNum: Number = 0 - try { - statusNum = response.status as Number - } - catch (e: Throwable) {} - console.log("[searchProducts] 响应状态:", statusNum, "数据条数:", dataLength, " at utils/supabaseService.uts:966") - var hasError = false - try { - hasError = response.error != null - } - catch (e: Throwable) {} - if (hasError) { - console.error("[searchProducts] 搜索商品失败:", response.error, " at utils/supabaseService.uts:973") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val rawData = response.data - console.log("[searchProducts] rawData:", if (rawData != null) { - "not null" - } else { - "null" - } - , " at utils/supabaseService.uts:984") - if (rawData == null) { - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val products: UTSArray = _uA() - var rawList: UTSArray = _uA() - try { - rawList = rawData as UTSArray - console.log("[searchProducts] rawList长度:", rawList.length, " at utils/supabaseService.uts:999") - } - catch (e: Throwable) { - console.error("[searchProducts] 转换rawList失败:", e, " at utils/supabaseService.uts:1001") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - console.log("[searchProducts] 处理第", i + 1, "个商品", " at utils/supabaseService.uts:1013") - products.push(parseProductFromRaw(item)) - i++ - } - } - var totalNum: Number = 0 - try { - totalNum = response.total as Number - } - catch (e: Throwable) {} - var hasmoreVal = false - try { - hasmoreVal = response.hasmore as Boolean - } - catch (e: Throwable) {} - return@w PaginatedResponse(data = products, total = if (totalNum > 0) { - totalNum - } else { - products.length - } - , page = page, limit = limit, hasmore = hasmoreVal) - } - catch (error: Throwable) { - console.error("搜索商品异常:", error, " at utils/supabaseService.uts:1034") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - }) - } - open fun searchShops(keyword: String, page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val encodedKeyword = UTSAndroid.consoleDebugError(encodeURIComponent(keyword), " at utils/supabaseService.uts:988") - val response = await(supaInstance.from("ml_shops").select("*", object : UTSJSONObject() { - var count = "exact" - }).ilike("shop_name", "%" + encodedKeyword + "%").order("product_count", OrderOptions(ascending = false)).page(page).limit(limit).execute()) - if (response.error != null) { - console.error("搜索店铺失败:", response.error, " at utils/supabaseService.uts:1063") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val rawData = response.data - if (rawData == null) { - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - val shops: UTSArray = _uA() - val dataList = rawData as UTSArray - run { - var i: Number = 0 - while(i < dataList.length){ - val item = dataList[i] - val shopObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1009") as UTSJSONObject - val rawStatus = shopObj.get("status") - var statusNum: Number = 0 - if (UTSAndroid.`typeof`(rawStatus) == "number") { - statusNum = rawStatus as Number - } - if (statusNum !== 1) { - i++ - continue - } - val shop = Shop(id = shopObj.getString("id") ?: "", merchant_id = shopObj.getString("merchant_id") ?: "", shop_name = shopObj.getString("shop_name") ?: "", shop_logo = shopObj.getString("shop_logo"), shop_banner = shopObj.getString("shop_banner"), description = shopObj.getString("description"), contact_name = shopObj.getString("contact_name"), contact_phone = shopObj.getString("contact_phone"), rating_avg = shopObj.getNumber("rating_avg"), total_sales = shopObj.getNumber("total_sales"), product_count = shopObj.getNumber("product_count"), total_sales_count = shopObj.getNumber("total_sales_count"), created_at = shopObj.getString("created_at")) - shops.push(shop) - i++ - } - } - return@w PaginatedResponse(data = shops, total = response.total ?: shops.length, page = page, limit = limit, hasmore = response.hasmore ?: false) - } - catch (error: Throwable) { - console.error("搜索店铺异常:", error, " at utils/supabaseService.uts:1113") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - }) - } - open fun getProductById(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getProductById] 开始获取商品详情,ID:", productId, " at utils/supabaseService.uts:1121") - val response = await(supaInstance.from("ml_products_detail_view").select("*").eq("id", productId).limit(1).execute()) - if (response.error != null) { - console.error("获取商品详情失败:", response.error, " at utils/supabaseService.uts:1130") - return@w null - } - val rawData = response.data - if (rawData == null) { - console.log("[getProductById] 数据为空", " at utils/supabaseService.uts:1136") - return@w null - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - console.log("[getProductById] 未找到商品", " at utils/supabaseService.uts:1142") - return@w null - } - val item = rawList[0] - val product = parseProductFromRaw(item) - console.log("[getProductById] 成功获取商品:", product.name, " at utils/supabaseService.uts:1148") - return@w product - } - catch (error: Throwable) { - console.error("获取商品详情异常:", error, " at utils/supabaseService.uts:1151") - return@w null - } - }) - } - open fun isShopFollowed(shopId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_shop_follows").select("id", object : UTSJSONObject() { - var count = "exact" - }).eq("shop_id", shopId).eq("user_id", userId).limit(1).execute()) - return@w (res.total != null && res.total!! > 0) - } - catch (e: Throwable) { - console.error("Check follow error:", e, " at utils/supabaseService.uts:1171") - return@w false - } - }) - } - open fun followShop(shopId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_shop_follows").insert(object : UTSJSONObject() { - var user_id = userId - var shop_id = shopId - }).execute()) - return@w res.error == null - } - catch (e: Throwable) { - console.error("Follow shop error:", e, " at utils/supabaseService.uts:1189") - return@w false - } - }) - } - open fun unfollowShop(shopId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_shop_follows").eq("shop_id", shopId).eq("user_id", userId).`delete`().execute()) - return@w res.error == null - } - catch (e: Throwable) { - console.error("Unfollow shop error:", e, " at utils/supabaseService.uts:1206") - return@w false - } - }) - } - open fun getFollowedShops(userId: String): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_shop_follows").select("*, ml_shops(*)").eq("user_id", userId).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null) { - console.error("getFollowedShops error:", res.error, " at utils/supabaseService.uts:1223") - return@w _uA() - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("getFollowedShops exception:", e, " at utils/supabaseService.uts:1229") - return@w _uA() - } - }) - } - open fun getShopByMerchantId(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getShopByMerchantId] 开始获取店铺信息,merchantId:", merchantId, " at utils/supabaseService.uts:1237") - var response = await(supaInstance.from("ml_shops").select("*").eq("merchant_id", merchantId).limit(1).execute()) - if (response.error == null && response.data != null && (response.data as UTSArray).length > 0) { - val shopData = (response.data as UTSArray)[0] - val shop = this.parseShopFromRaw(shopData) - console.log("[getShopByMerchantId] 通过 merchant_id 找到店铺:", shop.shop_name, " at utils/supabaseService.uts:1249") - return@w shop - } - console.log("getShopByMerchantId: merchant_id not found, trying id...", merchantId, " at utils/supabaseService.uts:1254") - response = await(supaInstance.from("ml_shops").select("*").eq("id", merchantId).limit(1).execute()) - if (response.error == null && response.data != null && (response.data as UTSArray).length > 0) { - console.log("Found shop by ID instead of MerchantID", " at utils/supabaseService.uts:1263") - val shopData = (response.data as UTSArray)[0] - val shop = this.parseShopFromRaw(shopData) - return@w shop - } - if (response.error != null) { - console.error("获取店铺信息失败:", response.error, " at utils/supabaseService.uts:1270") - } - return@w null - } - catch (error: Throwable) { - console.error("获取店铺信息异常:", error, " at utils/supabaseService.uts:1274") - return@w null - } - }) - } - open fun parseShopFromRaw(item: Any): Shop { - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1198") as UTSJSONObject - val getSafeString = fun(key: String): String { - val kVal = itemObj.get(key) - if (kVal == null) { - return "" - } - if (UTSAndroid.`typeof`(kVal) == "string") { - return kVal as String - } - return "" - } - val getSafeNumber = fun(key: String): Number { - val kVal = itemObj.get(key) - if (kVal == null) { - return 0 - } - if (UTSAndroid.`typeof`(kVal) == "number") { - return kVal as Number - } - return 0 - } - return Shop(id = getSafeString("id"), merchant_id = getSafeString("merchant_id"), shop_name = getSafeString("shop_name"), shop_logo = getSafeString("shop_logo"), shop_banner = getSafeString("shop_banner"), description = getSafeString("description"), contact_name = getSafeString("contact_name"), contact_phone = getSafeString("contact_phone"), rating_avg = getSafeNumber("rating_avg"), total_sales = getSafeNumber("total_sales"), product_count = getSafeNumber("product_count"), total_sales_count = getSafeNumber("total_sales_count"), created_at = getSafeString("created_at")) - } - open fun getProductsByMerchantId(merchantId: String, page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("getProductsByMerchantId querying for:", merchantId, " at utils/supabaseService.uts:1317") - var query = supaInstance.from("ml_products_detail_view").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("merchant_id", merchantId).order("created_at", OrderOptions(ascending = false)).page(page).limit(limit) - val response = await(query.execute()) - if (response.error != null || (response.data != null && (response.data as UTSArray).length === 0)) { - if (response.error != null) { - console.error("获取商户商品失败 (View):", response.error, " at utils/supabaseService.uts:1334") - } else { - console.log("View returned 0 products, trying raw table fallback...", " at utils/supabaseService.uts:1336") - } - console.log("Falling back to raw ml_products table...", " at utils/supabaseService.uts:1340") - val query2 = supaInstance.from("ml_products").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("merchant_id", merchantId).order("created_at", OrderOptions(ascending = false)).page(page).limit(limit) - val res2 = await(query2.execute()) - if (res2.error != null) { - console.error("获取商户商品失败 (Raw):", res2.error, " at utils/supabaseService.uts:1352") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - console.log("Fallback (Raw) found: " + (res2.data as UTSArray).length + " products", " at utils/supabaseService.uts:1356") - val mappedData: UTSArray = _uA() - val rawData = res2.data as UTSArray - run { - var i: Number = 0 - while(i < rawData.length){ - val item = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawData[i])), " at utils/supabaseService.uts:1272") as UTSJSONObject - val images: UTSArray = _uA() - val mainImageUrl = fixImageUrl(item.getString("main_image_url")) - if (mainImageUrl != null && mainImageUrl !== "") { - images.push(mainImageUrl) - } - val imageUrlsRaw = item.get("image_urls") - if (imageUrlsRaw != null) { - try { - if (UTSArray.isArray(imageUrlsRaw)) { - val arr = imageUrlsRaw as UTSArray - if (arr.length > 0 && images.length === 0) { - run { - var j: Number = 0 - while(j < arr.length){ - val fixedUrl = fixImageUrl(arr[j]) - if (fixedUrl !== "") { - images.push(fixedUrl) - } - j++ - } - } - } - } else { - val rawUrlStr = imageUrlsRaw as String - if (rawUrlStr.startsWith("[")) { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(rawUrlStr), " at utils/supabaseService.uts:1294") - if (UTSArray.isArray(parsed) && images.length === 0) { - run { - var j: Number = 0 - while(j < (parsed as UTSArray).length){ - val fixedUrl = fixImageUrl((parsed as UTSArray)[j] as String) - if (fixedUrl !== "") { - images.push(fixedUrl) - } - j++ - } - } - } - } else { - val fixedUrl = fixImageUrl(rawUrlStr) - if (fixedUrl !== "" && images.indexOf(fixedUrl) === -1) { - images.push(fixedUrl) - } - } - } - } - catch (e: Throwable) { - console.error("解析图片数组失败:", e, " at utils/supabaseService.uts:1396") - } - } - if (images.length === 0) { - images.push("/static/default-product.png") - } - var safePrice = item.getNumber("base_price") - if (safePrice == null) { - val p = item.getNumber("price") - safePrice = if (p != null) { - p - } else { - 0 - } - } - var safeOriginalPrice = item.getNumber("market_price") - if (safeOriginalPrice == null) { - val op = item.getNumber("original_price") - safeOriginalPrice = if (op != null) { - op - } else { - safePrice - } - } - var safeStock = item.getNumber("total_stock") - if (safeStock == null) { - var as_ = item.getNumber("available_stock") - if (as_ == null) { - val s = item.getNumber("stock") - safeStock = if (s != null) { - s - } else { - 0 - } - } else { - safeStock = as_ - } - } - var safeSales = item.getNumber("sale_count") - if (safeSales == null) { - val s = item.getNumber("sales") - safeSales = if (s != null) { - s - } else { - 0 - } - } - val product: Product = Product(id = item.getString("id") ?: "", category_id = item.getString("category_id") ?: "", merchant_id = item.getString("merchant_id") ?: "", name = item.getString("name") ?: "", description = item.getString("description") ?: "", images = images, price = safePrice, original_price = safeOriginalPrice, stock = safeStock, sales = safeSales, status = item.getNumber("status") ?: 1, created_at = item.getString("created_at") ?: "", base_price = safePrice, market_price = safeOriginalPrice, main_image_url = if (images.length > 0) { - images[0] - } else { - "" - } - , sale_count = safeSales, total_stock = safeStock) - mappedData.push(product) - i++ - } - } - return@w PaginatedResponse(data = mappedData, total = res2.total ?: 0, page = page, limit = limit, hasmore = res2.hasmore ?: false) - } - console.log("Merchant products found: " + (response.data as UTSArray).length, " at utils/supabaseService.uts:1464") - val viewData = response.data as UTSArray - val parsedProducts: UTSArray = _uA() - run { - var i: Number = 0 - while(i < viewData.length){ - parsedProducts.push(parseProductFromRaw(viewData[i])) - i++ - } - } - return@w PaginatedResponse(data = parsedProducts, total = response.total ?: 0, page = page, limit = limit, hasmore = response.hasmore ?: false) - } - catch (error: Throwable) { - console.error("获取商户商品异常:", error, " at utils/supabaseService.uts:1480") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - }) - } - open fun getProductsByShopId(shopId: String, page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("getProductsByShopId querying for:", shopId, " at utils/supabaseService.uts:1494") - var query = supaInstance.from("ml_products_detail_view").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("shop_id", shopId).order("created_at", OrderOptions(ascending = false)).page(page).limit(limit) - val response = await(query.execute()) - if (response.error != null || (response.data != null && (response.data as UTSArray).length === 0)) { - if (response.error != null) { - console.error("获取店铺商品失败 (View):", response.error, " at utils/supabaseService.uts:1510") - } else { - console.log("View returned 0 products, trying raw table fallback...", " at utils/supabaseService.uts:1512") - } - console.log("Falling back to raw ml_products table with shop_id...", " at utils/supabaseService.uts:1516") - val query2 = supaInstance.from("ml_products").select("*", object : UTSJSONObject() { - var count = "exact" - }).eq("shop_id", shopId).order("created_at", OrderOptions(ascending = false)).page(page).limit(limit) - val res2 = await(query2.execute()) - if (res2.error != null) { - console.error("获取店铺商品失败 (Raw):", res2.error, " at utils/supabaseService.uts:1527") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - console.log("Fallback (Raw) found: " + (res2.data as UTSArray).length + " products", " at utils/supabaseService.uts:1531") - val mappedData: UTSArray = _uA() - val rawData = res2.data as UTSArray - run { - var i: Number = 0 - while(i < rawData.length){ - val item = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawData[i])), " at utils/supabaseService.uts:1436") as UTSJSONObject - val images: UTSArray = _uA() - val mainImageUrl = fixImageUrl(item.getString("main_image_url")) - if (mainImageUrl != null && mainImageUrl !== "") { - images.push(mainImageUrl) - } - val imageUrlsRaw = item.get("image_urls") - if (imageUrlsRaw != null) { - try { - if (UTSArray.isArray(imageUrlsRaw)) { - val arr = imageUrlsRaw as UTSArray - if (arr.length > 0 && images.length === 0) { - run { - var j: Number = 0 - while(j < arr.length){ - val fixedUrl = fixImageUrl(arr[j]) - if (fixedUrl !== "") { - images.push(fixedUrl) - } - j++ - } - } - } - } else { - val rawUrlStr = imageUrlsRaw as String - if (rawUrlStr.startsWith("[")) { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(rawUrlStr), " at utils/supabaseService.uts:1458") - if (UTSArray.isArray(parsed) && images.length === 0) { - run { - var j: Number = 0 - while(j < (parsed as UTSArray).length){ - val fixedUrl = fixImageUrl((parsed as UTSArray)[j] as String) - if (fixedUrl !== "") { - images.push(fixedUrl) - } - j++ - } - } - } - } else { - val fixedUrl = fixImageUrl(rawUrlStr) - if (fixedUrl !== "" && images.indexOf(fixedUrl) === -1) { - images.push(fixedUrl) - } - } - } - } - catch (e: Throwable) { - console.error("解析图片数组失败:", e, " at utils/supabaseService.uts:1571") - } - } - if (images.length === 0) { - images.push("/static/default-product.png") - } - var safePrice = item.getNumber("base_price") - if (safePrice == null) { - val p = item.getNumber("price") - safePrice = if (p != null) { - p - } else { - 0 - } - } - var safeOriginalPrice = item.getNumber("market_price") - if (safeOriginalPrice == null) { - val op = item.getNumber("original_price") - safeOriginalPrice = if (op != null) { - op - } else { - safePrice - } - } - var safeStock = item.getNumber("total_stock") - if (safeStock == null) { - var as_ = item.getNumber("available_stock") - if (as_ == null) { - val s = item.getNumber("stock") - safeStock = if (s != null) { - s - } else { - 0 - } - } else { - safeStock = as_ - } - } - var safeSales = item.getNumber("sale_count") - if (safeSales == null) { - val s = item.getNumber("sales") - safeSales = if (s != null) { - s - } else { - 0 - } - } - val product: Product = Product(id = item.getString("id") ?: "", category_id = item.getString("category_id") ?: "", merchant_id = item.getString("merchant_id") ?: "", name = item.getString("name") ?: "", description = item.getString("description") ?: "", images = images, price = safePrice, original_price = safeOriginalPrice, stock = safeStock, sales = safeSales, status = item.getNumber("status") ?: 1, created_at = item.getString("created_at") ?: "", base_price = safePrice, market_price = safeOriginalPrice, main_image_url = if (images.length > 0) { - images[0] - } else { - "" - } - , sale_count = safeSales, total_stock = safeStock) - mappedData.push(product) - i++ - } - } - return@w PaginatedResponse(data = mappedData, total = res2.total ?: 0, page = page, limit = limit, hasmore = res2.hasmore ?: false) - } - console.log("Shop products found: " + (response.data as UTSArray).length, " at utils/supabaseService.uts:1639") - val viewData = response.data as UTSArray - val parsedProducts: UTSArray = _uA() - run { - var i: Number = 0 - while(i < viewData.length){ - parsedProducts.push(parseProductFromRaw(viewData[i])) - i++ - } - } - return@w PaginatedResponse(data = parsedProducts, total = response.total ?: 0, page = page, limit = limit, hasmore = response.hasmore ?: false) - } - catch (error: Throwable) { - console.error("获取店铺商品异常:", error, " at utils/supabaseService.uts:1655") - return@w PaginatedResponse(data = _uA(), total = 0, page = page, limit = limit, hasmore = false) - } - }) - } - open fun getHotProducts(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getHotProducts] 开始获取热销商品...", " at utils/supabaseService.uts:1669") - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").eq("status", "1").order("sale_count", OrderOptions(ascending = false)).limit(limit * 5).execute()) - if (response.error != null) { - console.error("获取热销商品失败:", response.error, " at utils/supabaseService.uts:1681") - return@w _uA() - } - val rawData = response.data - console.log("[getHotProducts] 原始数据条数:", if (rawData != null) { - (rawData as UTSArray).length - } else { - 0 - } - , " at utils/supabaseService.uts:1686") - if (rawData == null) { - console.log("[getHotProducts] 数据为空", " at utils/supabaseService.uts:1688") - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1587") as UTSJSONObject - val rawIsHot = prodObj.get("is_hot") - var isHotBool: Boolean = false - if (UTSAndroid.`typeof`(rawIsHot) == "boolean") { - isHotBool = rawIsHot as Boolean - } else if (UTSAndroid.`typeof`(rawIsHot) == "number") { - isHotBool = (rawIsHot as Number) == 1 - } - if (!isHotBool) { - i++ - continue - } - products.push(parseProductFromRaw(item)) - if (products.length >= limit) { - break - } - i++ - } - } - console.log("[getHotProducts] 最终返回商品数:", products.length, " at utils/supabaseService.uts:1713") - return@w products - } - catch (error: Throwable) { - console.error("获取热销商品异常:", error, " at utils/supabaseService.uts:1716") - return@w _uA() - } - }) - } - open fun getProductsBySales(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getProductsBySales] 开始获取销量排序商品...", " at utils/supabaseService.uts:1724") - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").eq("status", "1").order("sale_count", OrderOptions(ascending = false)).limit(limit).execute()) - if (response.error != null) { - console.error("获取销量排序商品失败:", response.error, " at utils/supabaseService.uts:1734") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - products.push(parseProductFromRaw(item)) - i++ - } - } - console.log("[getProductsBySales] 返回商品数:", products.length, " at utils/supabaseService.uts:1749") - return@w products - } - catch (error: Throwable) { - console.error("获取销量排序商品异常:", error, " at utils/supabaseService.uts:1752") - return@w _uA() - } - }) - } - open fun getProductsByPrice(limit: Number = 10, ascending: Boolean = true): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").eq("status", "1").order("base_price", OrderOptions(ascending = ascending)).limit(limit).execute()) - if (response.error != null) { - console.error("获取价格排序商品失败:", response.error, " at utils/supabaseService.uts:1769") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - products.push(parseProductFromRaw(item)) - i++ - } - } - return@w products - } - catch (error: Throwable) { - console.error("获取价格排序商品异常:", error, " at utils/supabaseService.uts:1786") - return@w _uA() - } - }) - } - open fun getProductsByNewest(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getProductsByNewest] 开始获取新品...", " at utils/supabaseService.uts:1794") - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").eq("status", "1").order("created_at", OrderOptions(ascending = false)).limit(limit * 5).execute()) - if (response.error != null) { - console.error("获取新品失败:", response.error, " at utils/supabaseService.uts:1804") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1699") as UTSJSONObject - val rawIsNew = prodObj.get("is_new") - var isNewBool: Boolean = false - if (UTSAndroid.`typeof`(rawIsNew) == "boolean") { - isNewBool = rawIsNew as Boolean - } else if (UTSAndroid.`typeof`(rawIsNew) == "number") { - isNewBool = (rawIsNew as Number) == 1 - } - if (!isNewBool) { - i++ - continue - } - products.push(parseProductFromRaw(item)) - if (products.length >= limit) { - break - } - i++ - } - } - if (products.length < limit) { - console.log("[getProductsByNewest] is_new商品不足,补充普通商品", " at utils/supabaseService.uts:1835") - val addedIds = Set() - run { - var i: Number = 0 - while(i < products.length){ - addedIds.add(products[i].id) - i++ - } - } - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1724") as UTSJSONObject - val rawId = prodObj.get("id") - val itemId = if ((UTSAndroid.`typeof`(rawId) == "string")) { - (rawId as String) - } else { - "" - } - if (!addedIds.has(itemId)) { - products.push(parseProductFromRaw(item)) - addedIds.add(itemId) - if (products.length >= limit) { - break - } - } - i++ - } - } - } - console.log("[getProductsByNewest] 返回商品数:", products.length, " at utils/supabaseService.uts:1855") - return@w products - } - catch (error: Throwable) { - console.error("获取新品异常:", error, " at utils/supabaseService.uts:1858") - return@w _uA() - } - }) - } - open fun getRecommendedProducts(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getRecommendedProducts] 开始获取推荐商品...", " at utils/supabaseService.uts:1866") - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").eq("status", "1").order("sale_count", OrderOptions(ascending = false)).limit(limit * 5).execute()) - console.log("[getRecommendedProducts] 查询完成", " at utils/supabaseService.uts:1875") - if (response.error != null) { - console.error("获取推荐商品失败:", response.error, " at utils/supabaseService.uts:1878") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - console.log("[getRecommendedProducts] 数据为空", " at utils/supabaseService.uts:1884") - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getRecommendedProducts] 数据条数:", rawList.length, " at utils/supabaseService.uts:1890") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1769") as UTSJSONObject - val rawFeatured = prodObj.get("is_featured") - var isFeaturedBool: Boolean = false - if (UTSAndroid.`typeof`(rawFeatured) == "boolean") { - isFeaturedBool = rawFeatured as Boolean - } else if (UTSAndroid.`typeof`(rawFeatured) == "number") { - isFeaturedBool = (rawFeatured as Number) == 1 - } - if (!isFeaturedBool) { - i++ - continue - } - products.push(parseProductFromRaw(item)) - if (products.length >= limit) { - break - } - i++ - } - } - return@w products - } - catch (error: Throwable) { - console.error("获取推荐商品异常:", error, " at utils/supabaseService.uts:1912") - return@w _uA() - } - }) - } - open fun getDiscountProducts(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - return@w _uA() - }) - } - open fun getCartItems(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.warn("用户未登录,无法获取购物车", " at utils/supabaseService.uts:1928") - return@w _uA() - } - val response = await(supaInstance.from("ml_shopping_cart").select("*").eq("user_id", userId).order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - console.error("获取购物车失败:", response.error, " at utils/supabaseService.uts:1944") - return@w _uA() - } - val cartData = response.data as UTSArray - if (cartData == null || cartData.length === 0) { - return@w _uA() - } - val productIds: UTSArray = _uA() - val skuIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartData.length){ - var item = cartData[i] - var pid: String = "" - var sid: String = "" - if (item is UTSJSONObject) { - pid = (item as UTSJSONObject).getString("product_id") ?: "" - sid = (item as UTSJSONObject).getString("sku_id") ?: "" - } else { - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1836") as UTSJSONObject - pid = itemObj.getString("product_id") ?: "" - sid = itemObj.getString("sku_id") ?: "" - } - if (pid !== "" && !productIds.includes(pid)) { - productIds.push(pid) - } - if (sid !== "" && !skuIds.includes(sid)) { - skuIds.push(sid) - } - i++ - } - } - val productMap = Map() - if (productIds.length > 0) { - val productIdsAny: UTSArray = _uA() - run { - var i: Number = 0 - while(i < productIds.length){ - productIdsAny.push(productIds[i]) - i++ - } - } - val productRes = await(supaInstance.from("ml_products").select("*").`in`("id", productIdsAny).execute()) - console.log("[getCartItems] 商品查询结果:", if (productRes.error != null) { - "error" - } else { - "success" - } - , productRes.error, " at utils/supabaseService.uts:1994") - if (productRes.error == null && productRes.data != null) { - val products = productRes.data as UTSArray - console.log("[getCartItems] 商品数量:", products.length, " at utils/supabaseService.uts:1997") - run { - var i: Number = 0 - while(i < products.length){ - var p = products[i] - var pid: String = "" - var pname: String = "" - if (p is UTSJSONObject) { - pid = (p as UTSJSONObject).getString("id") ?: "" - pname = (p as UTSJSONObject).getString("name") ?: "" - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(p)), " at utils/supabaseService.uts:1873") as UTSJSONObject - pid = pObj.getString("id") ?: "" - pname = pObj.getString("name") ?: "" - } - console.log("[getCartItems] 商品:", pid, pname, " at utils/supabaseService.uts:2012") - if (pid !== "") { - productMap.set(pid, p) - } - i++ - } - } - } - } - val shopMap = Map() - val merchantIds: UTSArray = _uA() - productMap.forEach(fun(p: Any, pid: String){ - var mid: String = "" - if (p is UTSJSONObject) { - mid = (p as UTSJSONObject).getString("merchant_id") ?: "" - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(p)), " at utils/supabaseService.uts:1894") as UTSJSONObject - mid = pObj.getString("merchant_id") ?: "" - } - if (mid !== "" && !merchantIds.includes(mid)) { - merchantIds.push(mid) - } - } - ) - if (merchantIds.length > 0) { - val merchantIdsAny: UTSArray = _uA() - run { - var i: Number = 0 - while(i < merchantIds.length){ - merchantIdsAny.push(merchantIds[i]) - i++ - } - } - val shopRes = await(supaInstance.from("ml_shops").select("merchant_id,shop_name").`in`("merchant_id", merchantIdsAny).execute()) - if (shopRes.error == null && shopRes.data != null) { - val shops = shopRes.data as UTSArray - run { - var i: Number = 0 - while(i < shops.length){ - var s = shops[i] - var mid: String = "" - var sname: String = "" - if (s is UTSJSONObject) { - mid = (s as UTSJSONObject).getString("merchant_id") ?: "" - sname = (s as UTSJSONObject).getString("shop_name") ?: "" - } else { - val sObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(s)), " at utils/supabaseService.uts:1922") as UTSJSONObject - mid = sObj.getString("merchant_id") ?: "" - sname = sObj.getString("shop_name") ?: "" - } - if (mid !== "") { - shopMap.set(mid, sname) - } - i++ - } - } - } - } - val skuMap = Map() - if (skuIds.length > 0) { - val skuIdsAny: UTSArray = _uA() - run { - var i: Number = 0 - while(i < skuIds.length){ - skuIdsAny.push(skuIds[i]) - i++ - } - } - val skuRes = await(supaInstance.from("ml_product_skus").select("*").`in`("id", skuIdsAny).execute()) - if (skuRes.error == null && skuRes.data != null) { - val skus = skuRes.data as UTSArray - run { - var i: Number = 0 - while(i < skus.length){ - var s = skus[i] - var sid: String = "" - if (s is UTSJSONObject) { - sid = (s as UTSJSONObject).getString("id") ?: "" - } else { - val sObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(s)), " at utils/supabaseService.uts:1953") as UTSJSONObject - sid = sObj.getString("id") ?: "" - } - if (sid !== "") { - skuMap.set(sid, s) - } - i++ - } - } - } - } - val cartItems: UTSArray = _uA() - if ((cartData as UTSArray) != null) { - val cartArray = cartData as UTSArray - run { - var i: Number = 0 - while(i < cartArray.length){ - var item = cartArray[i] - var itemId: String = "" - var userIdVal: String = "" - var productId: String = "" - var skuId: String = "" - var quantity: Number = 0 - var selected: Boolean = false - var createdAt: String = "" - var updatedAt: String = "" - var cartMerchantId: String = "" - if (item is UTSJSONObject) { - itemId = (item as UTSJSONObject).getString("id") ?: "" - userIdVal = (item as UTSJSONObject).getString("user_id") ?: "" - productId = (item as UTSJSONObject).getString("product_id") ?: "" - skuId = (item as UTSJSONObject).getString("sku_id") ?: "" - quantity = (item as UTSJSONObject).getNumber("quantity") ?: 0 - selected = (item as UTSJSONObject).getBoolean("selected") ?: false - createdAt = (item as UTSJSONObject).getString("created_at") ?: "" - updatedAt = (item as UTSJSONObject).getString("updated_at") ?: "" - cartMerchantId = (item as UTSJSONObject).getString("merchant_id") ?: "" - } else { - val iObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:1989") as UTSJSONObject - itemId = iObj.getString("id") ?: "" - userIdVal = iObj.getString("user_id") ?: "" - productId = iObj.getString("product_id") ?: "" - skuId = iObj.getString("sku_id") ?: "" - quantity = iObj.getNumber("quantity") ?: 0 - selected = iObj.getBoolean("selected") ?: false - createdAt = iObj.getString("created_at") ?: "" - updatedAt = iObj.getString("updated_at") ?: "" - cartMerchantId = iObj.getString("merchant_id") ?: "" - } - val product = productMap.get(productId) - val sku = if ((skuId !== "" && skuMap.has(skuId))) { - skuMap.get(skuId) - } else { - null - } - console.log("[getCartItems] 处理购物车项:", itemId, "productId:", productId, "product存在:", product != null, "sku存在:", sku != null, " at utils/supabaseService.uts:2144") - var merchantId: String = cartMerchantId - var productName: String = "" - var productImage: String = "" - var productPrice: Number = 0 - var productSpec: String = "" - var shopNameStr: String = "未知店铺" - if (product != null) { - console.log("[getCartItems] product类型:", UTSAndroid.`typeof`(product), "instanceof UTSJSONObject:", product is UTSJSONObject, " at utils/supabaseService.uts:2154") - if (product is UTSJSONObject) { - if (merchantId == "") { - merchantId = (product as UTSJSONObject).getString("merchant_id") ?: "" - } - productName = (product as UTSJSONObject).getString("name") ?: "" - productImage = (product as UTSJSONObject).getString("main_image_url") ?: "" - productPrice = (product as UTSJSONObject).getNumber("base_price") ?: 0 - console.log("[getCartItems] 从UTSJSONObject获取: name=", productName, "price=", productPrice, " at utils/supabaseService.uts:2163") - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at utils/supabaseService.uts:2022") as UTSJSONObject - if (merchantId == "") { - merchantId = pObj.getString("merchant_id") ?: "" - } - productName = pObj.getString("name") ?: "" - productImage = pObj.getString("main_image_url") ?: "" - productPrice = pObj.getNumber("base_price") ?: 0 - console.log("[getCartItems] 从普通对象获取: name=", productName, "price=", productPrice, " at utils/supabaseService.uts:2172") - } - if (merchantId !== "" && shopMap.has(merchantId)) { - shopNameStr = shopMap.get(merchantId) ?: "未知店铺" - } - } - if (sku != null) { - if (sku is UTSJSONObject) { - val skuPrice = (sku as UTSJSONObject).getNumber("price") - if (skuPrice != null && skuPrice > 0) { - productPrice = skuPrice - } - val skuImg = (sku as UTSJSONObject).getString("image_url") - if (skuImg != null && skuImg !== "") { - productImage = skuImg - } - val specRaw = (sku as UTSJSONObject).get("specifications") - if (specRaw != null) { - if (UTSAndroid.`typeof`(specRaw) === "string") { - productSpec = specRaw as String - } else if (specRaw is UTSJSONObject) { - val keys = _uA( - "规格", - "颜色", - "尺码", - "容量", - "版本", - "型号" - ) - val result: UTSArray = _uA() - run { - var k: Number = 0 - while(k < keys.length){ - val key = keys[k] - val kVal = (specRaw as UTSJSONObject).get(key) - if (kVal != null && kVal !== "") { - result.push("" + kVal) - } - k++ - } - } - if (result.length > 0) { - productSpec = result.join(" ") - } else { - val allKeys = UTSJSONObject.keys(specRaw as UTSJSONObject) - val parts: UTSArray = _uA() - run { - var k: Number = 0 - while(k < allKeys.length){ - var kVal = (specRaw as UTSJSONObject).get(allKeys[k]) - if (kVal != null) { - parts.push("" + kVal) - } - k++ - } - } - productSpec = parts.join(" ") - } - } else { - try { - var jsonStr = JSON.stringify(specRaw) - productSpec = jsonStr.replace(UTSRegExp("[\"{}]", "g"), "").replace(UTSRegExp(",", "g"), " ").replace(UTSRegExp(":", "g"), " ") - } - catch (e: Throwable) {} - } - } - } else { - val sObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(sku)), " at utils/supabaseService.uts:2087") as UTSJSONObject - val skuPrice = sObj.getNumber("price") ?: 0 - if (skuPrice > 0) { - productPrice = skuPrice - } - val skuImg = sObj.getString("image_url") ?: "" - if (skuImg !== "") { - productImage = skuImg - } - val specRaw = sObj.get("specifications") - if (specRaw != null) { - if (UTSAndroid.`typeof`(specRaw) === "string") { - productSpec = specRaw as String - } else if (specRaw is UTSJSONObject) { - val keys = _uA( - "规格", - "颜色", - "尺码", - "容量", - "版本", - "型号" - ) - val result: UTSArray = _uA() - run { - var k: Number = 0 - while(k < keys.length){ - val key = keys[k] - val kVal = (specRaw as UTSJSONObject).get(key) - if (kVal != null && kVal !== "") { - result.push("" + kVal) - } - k++ - } - } - if (result.length > 0) { - productSpec = result.join(" ") - } else { - val allKeys = UTSJSONObject.keys(specRaw as UTSJSONObject) - val parts: UTSArray = _uA() - run { - var k: Number = 0 - while(k < allKeys.length){ - var kVal = (specRaw as UTSJSONObject).get(allKeys[k]) - if (kVal != null) { - parts.push("" + kVal) - } - k++ - } - } - productSpec = parts.join(" ") - } - } else { - try { - var jsonStr = JSON.stringify(specRaw) - productSpec = jsonStr.replace(UTSRegExp("[\"{}]", "g"), "").replace(UTSRegExp(",", "g"), " ").replace(UTSRegExp(":", "g"), " ") - } - catch (e: Throwable) {} - } - } - } - } - var shopIdStr = if (merchantId != "") { - merchantId - } else { - "unknown_shop" - } - cartItems.push(CartItem(id = itemId, user_id = userIdVal, product_id = productId, sku_id = skuId, merchant_id = merchantId, quantity = quantity, selected = selected, product_name = productName, product_image = productImage, product_price = productPrice, product_specification = productSpec, shop_id = shopIdStr, shop_name = shopNameStr, created_at = createdAt, updated_at = updatedAt)) - i++ - } - } - } - return@w cartItems - } - catch (error: Throwable) { - console.error("获取购物车异常:", error, " at utils/supabaseService.uts:2296") - return@w _uA() - } - }) - } - open fun getUserNotifications(type: String? = null): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getUserNotifications] 开始获取通知", " at utils/supabaseService.uts:2304") - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - var query = supaInstance.from("ml_notifications").select("*").eq("user_id", userId) - if (type != null) { - query = query.eq("type", type) - } - val response = await(query.order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - console.error("获取通知失败:", response.error, " at utils/supabaseService.uts:2320") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val notifications: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getUserNotifications] 获取到通知数量:", rawList.length, " at utils/supabaseService.uts:2329") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val noteObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:2188") as UTSJSONObject - val getSafeString = fun(key: String): String { - val kVal = noteObj.get(key) - if (kVal == null) { - return "" - } - if (UTSAndroid.`typeof`(kVal) == "string") { - return kVal as String - } - return "" - } - val getSafeBoolean = fun(key: String): Boolean { - val kVal = noteObj.get(key) - if (kVal == null) { - return false - } - if (UTSAndroid.`typeof`(kVal) == "boolean") { - return kVal as Boolean - } - if (UTSAndroid.`typeof`(kVal) == "number") { - return (kVal as Number) == 1 - } - return false - } - val note = Notification(id = getSafeString("id"), user_id = getSafeString("user_id"), type = getSafeString("type"), title = getSafeString("title"), content = getSafeString("content"), is_read = getSafeBoolean("is_read"), icon_url = getSafeString("icon_url"), link_url = getSafeString("link_url"), extra_data = getSafeString("extra_data"), created_at = getSafeString("created_at")) - notifications.push(note) - i++ - } - } - return@w notifications - } - catch (e: Throwable) { - console.error("获取通知异常:", e, " at utils/supabaseService.uts:2373") - return@w _uA() - } - }) - } - open fun getChatRooms(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getChatRooms] 开始获取聊天会话", " at utils/supabaseService.uts:2381") - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - val response = await(supaInstance.from("ml_chat_rooms").select("*").eq("user_id", userId).order("updated_at", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - console.error("获取聊天会话失败:", response.error, " at utils/supabaseService.uts:2393") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val rooms: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getChatRooms] 获取到会话数量:", rawList.length, " at utils/supabaseService.uts:2402") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val roomObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:2261") as UTSJSONObject - val getSafeString = fun(key: String): String { - val kVal = roomObj.get(key) - if (kVal == null) { - return "" - } - if (UTSAndroid.`typeof`(kVal) == "string") { - return kVal as String - } - return "" - } - val getSafeNumber = fun(key: String): Number { - val kVal = roomObj.get(key) - if (kVal == null) { - return 0 - } - if (UTSAndroid.`typeof`(kVal) == "number") { - return kVal as Number - } - return 0 - } - val getSafeBoolean = fun(key: String): Boolean { - val kVal = roomObj.get(key) - if (kVal == null) { - return false - } - if (UTSAndroid.`typeof`(kVal) == "boolean") { - return kVal as Boolean - } - if (UTSAndroid.`typeof`(kVal) == "number") { - return (kVal as Number) == 1 - } - return false - } - val room = ChatRoom(id = getSafeString("id"), user_id = getSafeString("user_id"), merchant_id = getSafeString("merchant_id"), shop_name = getSafeString("shop_name"), shop_logo = getSafeString("shop_logo"), last_message = getSafeString("last_message"), last_message_at = getSafeString("last_message_at"), unread_count = getSafeNumber("unread_count"), is_top = getSafeBoolean("is_top"), created_at = getSafeString("created_at"), updated_at = getSafeString("updated_at")) - rooms.push(room) - i++ - } - } - return@w rooms - } - catch (e: Throwable) { - console.error("获取聊天会话异常:", e, " at utils/supabaseService.uts:2447") - return@w _uA() - } - }) - } - open fun getUserChatMessages(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - val response = await(supaInstance.from("ml_chat_messages").select("*").or("sender_id.eq." + userId + ",receiver_id.eq." + userId).order("created_at", OrderOptions(ascending = false)).limit(50).execute()) - if (response.error != null) { - console.error("获取聊天记录失败:", response.error, " at utils/supabaseService.uts:2467") - return@w _uA() - } - return@w response.data as UTSArray - } - catch (e: Throwable) { - console.error("获取聊天记录异常:", e, " at utils/supabaseService.uts:2472") - return@w _uA() - } - }) - } - open fun getChatMessages(merchantId: String, page: Number = 1, pageSize: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getChatMessages] 开始获取聊天记录,merchantId:", merchantId, "page:", page, " at utils/supabaseService.uts:2480") - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - val fromIndex = (page - 1) * pageSize - val toIndex = fromIndex + pageSize - 1 - val queryStr = "and(sender_id.eq." + userId + ",receiver_id.eq." + merchantId + "),and(sender_id.eq." + merchantId + ",receiver_id.eq." + userId + ")" - val response = await(supaInstance.from("ml_chat_messages").select("*").or(queryStr).order("created_at", OrderOptions(ascending = false)).range(fromIndex, toIndex).execute()) - if (response.error != null) { - console.error("getChatMessages error:", response.error, " at utils/supabaseService.uts:2499") - return@w _uA() - } - val rawData = response.data - if (rawData == null) { - return@w _uA() - } - val messages: UTSArray = _uA() - val rawList = rawData as UTSArray - console.log("[getChatMessages] 获取到消息数量:", rawList.length, " at utils/supabaseService.uts:2508") - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val msgObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:2364") as UTSJSONObject - val getSafeString = fun(key: String): String { - val kVal = msgObj.get(key) - if (kVal == null) { - return "" - } - return kVal.toString() - } - val getSafeBoolean = fun(key: String): Boolean { - val kVal = msgObj.get(key) - if (kVal == null) { - return false - } - if (UTSAndroid.`typeof`(kVal) == "boolean") { - return kVal as Boolean - } - return (kVal.toString() == "1" || kVal.toString() == "true") - } - val msg = ChatMessage(id = getSafeString("id"), session_id = getSafeString("session_id"), sender_id = getSafeString("sender_id"), receiver_id = getSafeString("receiver_id"), content = getSafeString("content"), msg_type = getSafeString("msg_type"), is_read = getSafeBoolean("is_read"), is_from_user = getSafeBoolean("is_from_user"), extra_data = getSafeString("extra_data"), created_at = getSafeString("created_at")) - messages.push(msg) - i++ - } - } - return@w messages - } - catch (e: Throwable) { - console.error("获取聊天记录异常:", e, " at utils/supabaseService.uts:2543") - return@w _uA() - } - }) - } - open fun sendChatMessage(content: String, toId: String? = null, type: String = "text"): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val payload: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("payload", "utils/supabaseService.uts", 2406, 19), "sender_id" to userId, "content" to content, "msg_type" to type, "is_from_user" to true, "created_at" to Date().toISOString()) - if (toId != null) { - payload.set("receiver_id", toId) - } - val response = await(supaInstance.from("ml_chat_messages").insert(payload).execute()) - if (response.error != null) { - console.error("发送消息失败:", response.error, " at utils/supabaseService.uts:2571") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("发送消息异常:", e, " at utils/supabaseService.uts:2576") - return@w false - } - }) - } - open fun simulateServiceReply(content: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_chat_messages").insert(_uO("receiver_id" to userId, "content" to content, "msg_type" to "text", "is_from_user" to false, "created_at" to Date().toISOString())).execute()) - return@w response.error == null - } - catch (e: Throwable) { - return@w false - } - }) - } - open fun addToCart(productId: String, quantity: Number = 1, skuId: String = "", merchantId: String = ""): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法添加商品到购物车", " at utils/supabaseService.uts:2608") - return@w false - } - val realSkuId = if ((skuId != null && skuId.length > 0)) { - skuId - } else { - null - } - val realMerchantId = if ((merchantId != null && merchantId.length > 0)) { - merchantId - } else { - null - } - var query = supaInstance.from("ml_shopping_cart").select("*").eq("user_id", userId).eq("product_id", productId) - if (realSkuId != null) { - query = query.eq("sku_id", realSkuId) - } else { - query = query.`is`("sku_id", null) - } - val existingResponse = await(query.single().execute()) - var existingItem: Any? = null - if (existingResponse.data != null) { - val rawData = existingResponse.data as Any - if (UTSArray.isArray(rawData)) { - if ((rawData as UTSArray).length > 0) { - existingItem = (rawData as UTSArray)[0] - } - } else { - existingItem = rawData - } - } - var response: AkReqResponse - if (existingItem != null) { - console.log("Found existing cart item:", JSON.stringify(existingItem), " at utils/supabaseService.uts:2647") - var itemId: String? = null - var itemQty: Any? = null - if (existingItem is UTSJSONObject) { - itemId = (existingItem as UTSJSONObject).getString("id") - itemQty = (existingItem as UTSJSONObject).getNumber("quantity") - } else { - val obj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(existingItem)), " at utils/supabaseService.uts:2501") as UTSJSONObject - itemId = obj.getString("id") - itemQty = obj.getNumber("quantity") - } - if (itemId != null) { - var currentQty: Number = 0 - if (UTSAndroid.`typeof`(itemQty) === "number") { - currentQty = itemQty as Number - } else { - val qStr = "" + (itemQty ?: 0) - currentQty = parseInt(qStr) - } - val newQty = currentQty + quantity - response = await(supaInstance.from("ml_shopping_cart").update(object : UTSJSONObject() { - var quantity = newQty - var merchant_id = realMerchantId - var updated_at = Date().toISOString() - }).eq("id", itemId).execute()) - } else { - console.error("购物车已有商品但缺少ID,无法更新. Data:", JSON.stringify(existingItem), " at utils/supabaseService.uts:2682") - return@w false - } - } else { - val cartPayload = UTSJSONObject(UTSSourceMapPosition("cartPayload", "utils/supabaseService.uts", 2532, 23)) - cartPayload.set("user_id", userId) - cartPayload.set("product_id", productId) - cartPayload.set("sku_id", realSkuId) - cartPayload.set("quantity", quantity) - cartPayload.set("selected", true) - cartPayload.set("created_at", Date().toISOString()) - cartPayload.set("updated_at", Date().toISOString()) - if (realMerchantId != null) { - cartPayload.set("merchant_id", realMerchantId) - } - response = await(supaInstance.from("ml_shopping_cart").insert(cartPayload).execute()) - } - if (response.error != null) { - console.error("添加商品到购物车失败:", response.error, " at utils/supabaseService.uts:2706") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("添加商品到购物车异常:", error, " at utils/supabaseService.uts:2712") - return@w false - } - }) - } - open fun updateCartItemQuantity(cartItemId: String, quantity: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法更新购物车", " at utils/supabaseService.uts:2722") - return@w false - } - if (quantity < 1) { - return@w await(this.deleteCartItem(cartItemId)) - } - val response = await(supaInstance.from("ml_shopping_cart").update(_uO("quantity" to quantity, "updated_at" to Date().toISOString())).eq("id", cartItemId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("更新购物车商品数量失败:", response.error, " at utils/supabaseService.uts:2742") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("更新购物车商品数量异常:", error, " at utils/supabaseService.uts:2748") - return@w false - } - }) - } - open fun updateCartItemSelection(cartItemId: String, selected: Boolean): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法更新购物车", " at utils/supabaseService.uts:2758") - return@w false - } - val response = await(supaInstance.from("ml_shopping_cart").update(_uO("selected" to selected, "updated_at" to Date().toISOString())).eq("id", cartItemId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("更新购物车商品选中状态失败:", response.error, " at utils/supabaseService.uts:2773") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("更新购物车商品选中状态异常:", error, " at utils/supabaseService.uts:2779") - return@w false - } - }) - } - open fun batchUpdateCartItemSelection(cartItemIds: UTSArray, selected: Boolean): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[batchUpdateCartItemSelection] 开始批量更新", " at utils/supabaseService.uts:2787") - console.log("[batchUpdateCartItemSelection] cartItemIds:", JSON.stringify(cartItemIds), " at utils/supabaseService.uts:2788") - console.log("[batchUpdateCartItemSelection] cartItemIds length:", cartItemIds.length, " at utils/supabaseService.uts:2789") - console.log("[batchUpdateCartItemSelection] selected:", selected, " at utils/supabaseService.uts:2790") - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法更新购物车", " at utils/supabaseService.uts:2794") - return@w false - } - val response = await(supaInstance.from("ml_shopping_cart").update(_uO("selected" to selected, "updated_at" to Date().toISOString())).eq("user_id", userId).`in`("id", cartItemIds as UTSArray).execute()) - console.log("[batchUpdateCartItemSelection] response.error:", response.error, " at utils/supabaseService.uts:2808") - console.log("[batchUpdateCartItemSelection] response.data:", JSON.stringify(response.data), " at utils/supabaseService.uts:2809") - if (response.error != null) { - console.error("批量更新购物车商品选中状态失败:", response.error, " at utils/supabaseService.uts:2812") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("批量更新购物车商品选中状态异常:", error, " at utils/supabaseService.uts:2818") - return@w false - } - }) - } - open fun deleteCartItem(cartItemId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("正在执行删除购物车商品,ID:", cartItemId, " at utils/supabaseService.uts:2826") - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法删除购物车商品", " at utils/supabaseService.uts:2829") - return@w false - } - val response = await(supaInstance.from("ml_shopping_cart").eq("id", cartItemId).eq("user_id", userId).`delete`().execute()) - if (response.error != null) { - console.error("删除购物车商品失败:", response.error, " at utils/supabaseService.uts:2841") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("删除购物车商品异常:", error, " at utils/supabaseService.uts:2847") - return@w false - } - }) - } - open fun batchDeleteCartItems(cartItemIds: UTSArray): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[batchDeleteCartItems] 开始删除, ids:", cartItemIds.length, " at utils/supabaseService.uts:2855") - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法删除购物车商品", " at utils/supabaseService.uts:2858") - return@w false - } - console.log("[batchDeleteCartItems] userId:", userId, " at utils/supabaseService.uts:2862") - val response = await(supaInstance.from("ml_shopping_cart").eq("user_id", userId).`in`("id", cartItemIds as UTSArray).`delete`().execute()) - console.log("[batchDeleteCartItems] response.error:", response.error, " at utils/supabaseService.uts:2870") - if (response.error != null) { - console.error("批量删除购物车商品失败:", response.error, " at utils/supabaseService.uts:2872") - return@w false - } - console.log("[batchDeleteCartItems] 删除成功", " at utils/supabaseService.uts:2876") - return@w true - } - catch (error: Throwable) { - console.error("批量删除购物车商品异常:", error, " at utils/supabaseService.uts:2879") - return@w false - } - }) - } - open fun clearCart(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法清空购物车", " at utils/supabaseService.uts:2889") - return@w false - } - val response = await(supaInstance.from("ml_shopping_cart").eq("user_id", userId).`delete`().execute()) - if (response.error != null) { - console.error("清空购物车失败:", response.error, " at utils/supabaseService.uts:2900") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("清空购物车异常:", error, " at utils/supabaseService.uts:2906") - return@w false - } - }) - } - open fun getAddresses(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - val userId = this.getCurrentUserId() - if (userId == null) { - console.warn("[getAddresses] 用户未登录,无法获取地址", " at utils/supabaseService.uts:2915") - return@w _uA() - } - try { - console.log("[getAddresses] 查询地址, userId:", userId, " at utils/supabaseService.uts:2920") - val response = await(supaInstance.from("ml_user_addresses").select("*").eq("user_id", userId).order("is_default", OrderOptions(ascending = false)).order("created_at", OrderOptions(ascending = false)).execute()) - console.log("[getAddresses] response.error:", response.error, " at utils/supabaseService.uts:2930") - console.log("[getAddresses] response.data:", JSON.stringify(response.data), " at utils/supabaseService.uts:2931") - if (response.error != null) { - console.error("[getAddresses] 获取地址失败:", response.error, " at utils/supabaseService.uts:2934") - return@w _uA() - } - val data = response.data - if (data == null) { - return@w _uA() - } - val result: UTSArray = _uA() - val rawData = data as UTSArray - run { - var i: Number = 0 - while(i < rawData.length){ - val item = rawData[i] - var itemObj: UTSJSONObject - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:2767") as UTSJSONObject - } - val addr = UserAddress(id = itemObj.getString("id") ?: "", user_id = itemObj.getString("user_id") ?: "", recipient_name = itemObj.getString("receiver_name") ?: itemObj.getString("recipient_name") ?: "", phone = itemObj.getString("receiver_phone") ?: itemObj.getString("phone") ?: "", province = itemObj.getString("province") ?: "", city = itemObj.getString("city") ?: "", district = itemObj.getString("district") ?: "", detail_address = itemObj.getString("address_detail") ?: itemObj.getString("detail_address") ?: "", is_default = itemObj.getBoolean("is_default") ?: false, label = itemObj.getString("label") ?: "", created_at = itemObj.getString("created_at") ?: "", updated_at = itemObj.getString("updated_at") ?: "") - result.push(addr) - i++ - } - } - console.log("[getAddresses] 返回地址数量:", result.length, " at utils/supabaseService.uts:2971") - return@w result - } - catch (error: Throwable) { - console.error("[getAddresses] 获取地址异常:", error, " at utils/supabaseService.uts:2974") - return@w _uA() - } - }) - } - open fun getAddressById(addressId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val userId = this.getCurrentUserId() - if (userId == null) { - console.warn("用户未登录,无法获取地址", " at utils/supabaseService.uts:2983") - return@w null - } - try { - val query = supaInstance.from("ml_user_addresses").select("*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail").eq("id", addressId).eq("user_id", userId).single() - val response = await(query.execute()) - if (response.error != null) { - console.error("获取地址详情失败:", response.error, " at utils/supabaseService.uts:2998") - return@w null - } - return@w response.data as UserAddress - } - catch (error: Throwable) { - console.error("获取地址详情异常:", error, " at utils/supabaseService.uts:3004") - return@w null - } - }) - } - open fun addAddress(address: AddAddressParams): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法添加地址", " at utils/supabaseService.uts:3014") - return@w false - } - if (address.is_default == true) { - await(this.clearDefaultAddress(userId)) - } - val response = await(supaInstance.from("ml_user_addresses").insert(object : UTSJSONObject() { - var user_id = userId - var receiver_name = address.recipient_name - var receiver_phone = address.phone - var province = address.province - var city = address.city - var district = address.district - var address_detail = address.detail_address - var postal_code = address.postal_code ?: null - var is_default = address.is_default ?: false - var created_at = Date().toISOString() - var updated_at = Date().toISOString() - }).execute()) - if (response.error != null) { - console.error("添加地址失败:", response.error, " at utils/supabaseService.uts:3041") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("添加地址异常:", error, " at utils/supabaseService.uts:3047") - return@w false - } - }) - } - open fun updateAddress(addressId: String, address: UpdateAddressParams): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法更新地址", " at utils/supabaseService.uts:3057") - return@w false - } - if (address.is_default == true) { - await(this.clearDefaultAddress(userId)) - } - val updateData: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 2871, 19)) { - } - if (address.recipient_name != null) { - updateData["receiver_name"] = address.recipient_name - } - if (address.phone != null) { - updateData["receiver_phone"] = address.phone - } - if (address.province != null) { - updateData["province"] = address.province - } - if (address.city != null) { - updateData["city"] = address.city - } - if (address.district != null) { - updateData["district"] = address.district - } - if (address.detail_address != null) { - updateData["address_detail"] = address.detail_address - } - if (address.postal_code != null) { - updateData["postal_code"] = address.postal_code - } - if (address.is_default != null) { - updateData["is_default"] = address.is_default - } - if (address.label != null) { - updateData["label"] = address.label - } - updateData["updated_at"] = Date().toISOString() - val response = await(supaInstance.from("ml_user_addresses").update(updateData).eq("id", addressId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("更新地址失败:", response.error, " at utils/supabaseService.uts:3087") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("更新地址异常:", error, " at utils/supabaseService.uts:3093") - return@w false - } - }) - } - open fun confirmReceipt(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - console.log("[confirmReceipt] 开始确认收货, orderId:", orderId, " at utils/supabaseService.uts:3100") - try { - val userId = this.getCurrentUserId() - console.log("[confirmReceipt] userId:", userId, " at utils/supabaseService.uts:3103") - if (userId == null) { - return@w ConfirmReceiptResponse(success = false, error = "用户未登录") - } - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 2917, 19)) - updateData.set("order_status", 4) - updateData.set("delivered_at", Date().toISOString()) - updateData.set("completed_at", Date().toISOString()) - updateData.set("updated_at", Date().toISOString()) - console.log("[confirmReceipt] 准备更新订单状态, updateData:", JSON.stringify(updateData), " at utils/supabaseService.uts:3114") - val response = await(supaInstance.from("ml_orders").update(updateData).eq("id", orderId).eq("user_id", userId).execute()) - console.log("[confirmReceipt] response.status:", response.status, " at utils/supabaseService.uts:3123") - console.log("[confirmReceipt] response.error:", response.error, " at utils/supabaseService.uts:3124") - console.log("[confirmReceipt] response.data:", JSON.stringify(response.data), " at utils/supabaseService.uts:3125") - if (response.status != null && response.status >= 400) { - var errorMsg = "请求失败" - if (response.data != null) { - try { - val errorData = response.data as UTSJSONObject - val msg = errorData.getString("message") - if (msg != null) { - errorMsg = msg - } - } - catch (e: Throwable) {} - } - console.log("[confirmReceipt] HTTP错误:", response.status, errorMsg, " at utils/supabaseService.uts:3142") - return@w ConfirmReceiptResponse(success = false, error = errorMsg) - } - if (response.error != null) { - return@w ConfirmReceiptResponse(success = false, error = response.error!!.message) - } - if (response.data != null) { - try { - val respData = response.data as UTSJSONObject - val errorCode = respData.getString("code") - if (errorCode != null) { - val errorMsg = respData.getString("message") ?: "数据库错误" - console.log("[confirmReceipt] 数据库错误:", errorCode, errorMsg, " at utils/supabaseService.uts:3157") - return@w ConfirmReceiptResponse(success = false, error = errorMsg) - } - } - catch (e: Throwable) {} - } - if (response.data == null || (UTSArray.isArray(response.data) && (response.data as UTSArray).length === 0)) { - console.log("[confirmReceipt] 没有数据被更新,可能订单不存在或无权限", " at utils/supabaseService.uts:3167") - return@w ConfirmReceiptResponse(success = false, error = "订单不存在或无权限更新") - } - console.log("[confirmReceipt] 确认收货成功", " at utils/supabaseService.uts:3171") - return@w ConfirmReceiptResponse(success = true) - } - catch (e: Throwable) { - console.error("[confirmReceipt] 异常:", e, " at utils/supabaseService.uts:3174") - return@w ConfirmReceiptResponse(success = false, error = e.message) - } - }) - } - open fun cancelOrder(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_orders").update(object : UTSJSONObject() { - var order_status: Number = 5 - var updated_at = Date().toISOString() - }).eq("id", orderId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("取消订单失败:", response.error, " at utils/supabaseService.uts:3198") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("取消订单异常:", e, " at utils/supabaseService.uts:3204") - return@w false - } - }) - } - open fun deleteOrder(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_orders").`delete`().eq("id", orderId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("删除订单失败:", response.error, " at utils/supabaseService.uts:3225") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("删除订单异常:", e, " at utils/supabaseService.uts:3231") - return@w false - } - }) - } - open fun confirmOrderReceived(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_orders").update(object : UTSJSONObject() { - var order_status: Number = 4 - var shipping_status: Number = 3 - var updated_at = Date().toISOString() - }).eq("id", orderId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("确认收货失败:", response.error, " at utils/supabaseService.uts:3256") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("确认收货异常:", e, " at utils/supabaseService.uts:3262") - return@w false - } - }) - } - open fun deleteAddress(addressId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("正在执行删除地址,ID:", addressId, " at utils/supabaseService.uts:3270") - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法删除地址", " at utils/supabaseService.uts:3273") - return@w false - } - val response = await(supaInstance.from("ml_user_addresses").eq("id", addressId).eq("user_id", userId).`delete`().execute()) - if (response.error != null) { - console.error("删除地址失败:", response.error, " at utils/supabaseService.uts:3285") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("删除地址异常:", error, " at utils/supabaseService.uts:3291") - return@w false - } - }) - } - private fun clearDefaultAddress(userId: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - await(supaInstance.from("ml_user_addresses").update(object : UTSJSONObject() { - var is_default = false - var updated_at = Date().toISOString() - }).eq("user_id", userId).eq("is_default", true).execute()) - } - catch (error: Throwable) { - console.error("清除默认地址异常:", error, " at utils/supabaseService.uts:3309") - } - }) - } - open fun getUserProfile(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w null - } - val response = await(supaInstance.from("ml_user_profiles").select("*").eq("user_id", userId).limit(1).execute()) - if (response.error != null) { - return@w null - } - val rawData = response.data - if (rawData == null) { - return@w null - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - return@w null - } - return@w rawList[0] - } - catch (e: Throwable) { - return@w null - } - }) - } - open fun createOrder(orderData: CreateOrderParams): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("CreateOrder: User not logged in", " at utils/supabaseService.uts:3352") - return@w null - } - val orderNo = "ML" + Date.now() + Math.floor(Math.random() * 1000) - var merchantId = orderData.merchant_id - console.log("[CreateOrder] 原始 merchant_id:", merchantId, " at utils/supabaseService.uts:3359") - if (merchantId == null || merchantId == "" || merchantId == "unknown") { - console.warn("[CreateOrder] merchant_id 为空或无效,将使用 userId 作为 fallback", " at utils/supabaseService.uts:3361") - merchantId = userId - } - console.log("[CreateOrder] 最终使用的 merchant_id:", merchantId, " at utils/supabaseService.uts:3364") - var shippingAddrStr = "{}" - if (orderData.shipping_address != null) { - if (UTSAndroid.`typeof`(orderData.shipping_address) === "string") { - shippingAddrStr = orderData.shipping_address as String - } else { - shippingAddrStr = JSON.stringify(orderData.shipping_address) - } - } - val orderPayload = UTSJSONObject(UTSSourceMapPosition("orderPayload", "utils/supabaseService.uts", 3161, 19)) - orderPayload.set("user_id", userId) - orderPayload.set("merchant_id", merchantId) - orderPayload.set("order_no", orderNo) - orderPayload.set("product_amount", orderData.product_amount) - orderPayload.set("shipping_fee", orderData.shipping_fee) - orderPayload.set("total_amount", orderData.total_amount) - orderPayload.set("paid_amount", 0) - orderPayload.set("shipping_address", shippingAddrStr) - orderPayload.set("order_status", 1) - orderPayload.set("payment_status", 1) - orderPayload.set("shipping_status", 1) - orderPayload.set("created_at", Date().toISOString()) - orderPayload.set("updated_at", Date().toISOString()) - console.log("[CreateOrder] 插入订单数据:", JSON.stringify(orderPayload), " at utils/supabaseService.uts:3390") - console.log("[CreateOrder] 期望的订单号:", orderNo, " at utils/supabaseService.uts:3391") - val orderResponse = await(supaInstance.from("ml_orders").insert(orderPayload).execute()) - console.log("[CreateOrder] insert 完成", " at utils/supabaseService.uts:3398") - console.log("[CreateOrder] orderResponse.error:", orderResponse.error, " at utils/supabaseService.uts:3399") - if (orderResponse.error != null) { - console.error("[CreateOrder] 创建订单失败:", orderResponse.error, " at utils/supabaseService.uts:3402") - return@w null - } - console.log("[CreateOrder] 开始查询新创建的订单, order_no:", orderNo, " at utils/supabaseService.uts:3406") - val queryResponse = await(supaInstance.from("ml_orders").select("id, order_no").eq("order_no", orderNo).execute()) - console.log("[CreateOrder] queryResponse.error:", queryResponse.error, " at utils/supabaseService.uts:3414") - console.log("[CreateOrder] queryResponse.data:", JSON.stringify(queryResponse.data), " at utils/supabaseService.uts:3415") - if (queryResponse.error != null) { - console.error("[CreateOrder] 查询订单失败:", queryResponse.error, " at utils/supabaseService.uts:3418") - return@w null - } - val queryData = queryResponse.data as Any - var orderId = "" - console.log("[CreateOrder] queryData 类型:", UTSAndroid.`typeof`(queryData), "是否数组:", UTSArray.isArray(queryData), " at utils/supabaseService.uts:3425") - if (UTSArray.isArray(queryData) && (queryData as UTSArray).length > 0) { - console.log("[CreateOrder] queryData 长度:", (queryData as UTSArray).length, " at utils/supabaseService.uts:3428") - val firstItemRaw = (queryData as UTSArray)[0] - console.log("[CreateOrder] firstItemRaw 类型:", UTSAndroid.`typeof`(firstItemRaw), " at utils/supabaseService.uts:3430") - val firstItemStr = JSON.stringify(firstItemRaw) - val firstItemParsed = UTSAndroid.consoleDebugError(JSON.parse(firstItemStr), " at utils/supabaseService.uts:3208") - if (firstItemParsed == null) { - console.error("[CreateOrder] 解析订单数据失败", " at utils/supabaseService.uts:3436") - return@w null - } - val firstItem = firstItemParsed as UTSJSONObject - orderId = (firstItem.getString("id") ?: "") as String - console.log("[CreateOrder] 找到新创建的订单, id:", orderId, " at utils/supabaseService.uts:3441") - } else { - console.error("[CreateOrder] 未找到新创建的订单,插入可能失败", " at utils/supabaseService.uts:3443") - return@w null - } - console.log("[CreateOrder] 订单创建成功, orderId:", orderId, " at utils/supabaseService.uts:3447") - val orderItems: UTSArray = _uA() - console.log("[CreateOrder] orderData.items 类型:", UTSAndroid.`typeof`(orderData.items), "是否数组:", UTSArray.isArray(orderData.items), " at utils/supabaseService.uts:3450") - if (orderData.items == null) { - console.error("[CreateOrder] orderData.items 为 null!", " at utils/supabaseService.uts:3453") - return@w orderId - } - val rawItems = orderData.items as UTSArray - console.log("[CreateOrder] rawItems 长度:", rawItems.length, " at utils/supabaseService.uts:3458") - if (rawItems.length === 0) { - console.warn("[CreateOrder] rawItems 为空数组,没有商品项需要插入", " at utils/supabaseService.uts:3461") - return@w orderId - } - run { - var i: Number = 0 - while(i < rawItems.length){ - val rawItem = rawItems[i] - val itemStr = JSON.stringify(rawItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at utils/supabaseService.uts:3237") - if (itemParsed == null) { - console.error("[CreateOrder] 商品项解析失败", " at utils/supabaseService.uts:3470") - i++ - continue - } - val item = itemParsed as UTSJSONObject - val itemJson = UTSJSONObject(UTSSourceMapPosition("itemJson", "utils/supabaseService.uts", 3243, 23)) - var pId = item.get("product_id") - if (pId == null) { - pId = item.get("id") - } - val productId = (pId ?: "") as String - itemJson.set("order_id", orderId) - itemJson.set("product_id", productId) - val skuIdVal = item.get("sku_id") - if (skuIdVal != null && skuIdVal !== "") { - itemJson.set("sku_id", skuIdVal as String) - } - val productName = (item.get("product_name") ?: "") as String - itemJson.set("product_name", productName) - val sName = item.get("sku_name") - itemJson.set("sku_name", (sName ?: "") as String) - val specVal = item.get("specifications") - var skuSnapshot = "{}" - if (specVal != null) { - if (UTSAndroid.`typeof`(specVal) === "string") { - skuSnapshot = specVal as String - } else { - skuSnapshot = JSON.stringify(specVal) - } - } - itemJson.set("sku_snapshot", skuSnapshot) - itemJson.set("specifications", skuSnapshot) - val img1 = item.get("product_image") - val img2 = item.get("image_url") - var imgUrl = ((img1 ?: img2 ?: "") as String) - while(imgUrl.indexOf("`") >= 0){ - imgUrl = imgUrl.replace("`", "") - } - itemJson.set("image_url", imgUrl) - val iPriceRaw = item.getNumber("price") ?: 0 - val iMemberPrice = item.getNumber("member_price") ?: 0 - val iPrice = if ((iMemberPrice > 0 && iMemberPrice < iPriceRaw)) { - iMemberPrice - } else { - iPriceRaw - } - val iQty = item.getNumber("quantity") ?: 1 - itemJson.set("price", iPrice) - itemJson.set("quantity", iQty) - itemJson.set("total_amount", iPrice * iQty) - itemJson.set("created_at", Date().toISOString()) - orderItems.push(itemJson) - i++ - } - } - console.log("[CreateOrder] 插入订单项数量:", orderItems.length, " at utils/supabaseService.uts:3530") - run { - var j: Number = 0 - while(j < orderItems.length){ - console.log("[CreateOrder] 开始插入订单项", j, " at utils/supabaseService.uts:3533") - val itemJson = orderItems[j] - console.log("[CreateOrder] 序列化订单项...", " at utils/supabaseService.uts:3536") - val itemObjStr = JSON.stringify(itemJson) - console.log("[CreateOrder] 订单项 JSON:", itemObjStr, " at utils/supabaseService.uts:3538") - val itemObjParsed = UTSAndroid.consoleDebugError(JSON.parse(itemObjStr), " at utils/supabaseService.uts:3297") - console.log("[CreateOrder] itemObjParsed 类型:", UTSAndroid.`typeof`(itemObjParsed), " at utils/supabaseService.uts:3540") - if (itemObjParsed == null) { - console.error("[CreateOrder] 订单项转换失败", " at utils/supabaseService.uts:3542") - j++ - continue - } - val itemObj = itemObjParsed as UTSJSONObject - console.log("[CreateOrder] 执行 insert...", " at utils/supabaseService.uts:3548") - val itemsResponse = await(supaInstance.from("ml_order_items").insert(itemObj).execute()) - console.log("[CreateOrder] insert 完成, error:", itemsResponse.error, " at utils/supabaseService.uts:3555") - if (itemsResponse.error != null) { - console.error("[CreateOrder] 创建订单项失败:", itemsResponse.error, " at utils/supabaseService.uts:3557") - } - j++ - } - } - console.log("[CreateOrder] 订单项创建成功", " at utils/supabaseService.uts:3561") - val cartItemIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < rawItems.length){ - val rawItem = rawItems[i] - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawItem)), " at utils/supabaseService.uts:3319") - if (itemParsed == null) { - i++ - continue - } - val item = itemParsed as UTSJSONObject - val iid = item.getString("id") - if (iid != null && iid.length > 10) { - cartItemIds.push(iid) - } - i++ - } - } - if (cartItemIds.length > 0) { - await(this.batchDeleteCartItems(cartItemIds)) - } - return@w orderId - } - catch (error: Throwable) { - console.error("[CreateOrder] 创建订单异常:", error, " at utils/supabaseService.uts:3581") - return@w null - } - }) - } - open fun createOrdersByShop(params: ShopOrderParams): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val orderIds: UTSArray = _uA() - val groups = params.shopGroups as UTSArray - var grandTotal: Number = 0.0 - run { - var k: Number = 0 - while(k < groups.length){ - val g = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(groups[k])), " at utils/supabaseService.uts:3345") as UTSJSONObject - val gItemsRaw = g.get("items") - if (gItemsRaw == null) { - k++ - continue - } - val gItems = gItemsRaw as UTSArray - run { - var gi: Number = 0 - while(gi < gItems.length){ - val it = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(gItems[gi])), " at utils/supabaseService.uts:3351") as UTSJSONObject - var itPrice = it.getNumber("price") ?: 0 - val itMemberPrice = it.getNumber("member_price") ?: 0 - if (itMemberPrice > 0 && itMemberPrice < itPrice) { - itPrice = itMemberPrice - } - val itQty = it.getNumber("quantity") ?: 1 - grandTotal += itPrice * itQty - gi++ - } - } - k++ - } - } - run { - var i: Number = 0 - while(i < groups.length){ - val group = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(groups[i])), " at utils/supabaseService.uts:3364") as UTSJSONObject - val shopItemsRaw = group.get("items") - if (shopItemsRaw == null) { - i++ - continue - } - val shopItems = shopItemsRaw as UTSArray - var productAmount: Number = 0.0 - run { - var j: Number = 0 - while(j < shopItems.length){ - val sItem = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(shopItems[j])), " at utils/supabaseService.uts:3371") as UTSJSONObject - var siPrice = sItem.getNumber("price") ?: 0 - val siMemberPrice = sItem.getNumber("member_price") ?: 0 - if (siMemberPrice > 0 && siMemberPrice < siPrice) { - siPrice = siMemberPrice - } - val siQty = sItem.getNumber("quantity") ?: 1 - productAmount += siPrice * siQty - j++ - } - } - val ratio = if (grandTotal > 0) { - (productAmount / grandTotal) - } else { - 0 - } - val shopShippingFee = params.deliveryFee * ratio - val shopDiscount = params.discountAmount * ratio - val shopTotal = productAmount + shopShippingFee - shopDiscount - val mId = group.getString("merchant_id") - val sId = group.getString("shopId") - val shopName = group.getString("shopName") - console.log("[createOrdersByShop] 店铺组信息:", _uO("merchant_id" to mId, "shopId" to sId, "shopName" to shopName), " at utils/supabaseService.uts:3642") - val finalMerchantId = if ((mId != null && mId != "")) { - mId - } else { - (sId ?: "") - } - console.log("[createOrdersByShop] 最终使用的 merchant_id:", finalMerchantId, " at utils/supabaseService.uts:3649") - val plainItems: UTSArray = _uA() - run { - var k: Number = 0 - while(k < shopItems.length){ - val plainItemRaw = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(shopItems[k])), " at utils/supabaseService.uts:3399") - if (plainItemRaw != null) { - plainItems.push(plainItemRaw as Any) - } - k++ - } - } - console.log("[createOrdersByShop] plainItems 数量:", plainItems.length, " at utils/supabaseService.uts:3659") - val orderId = await(this.createOrder(CreateOrderParams(merchant_id = finalMerchantId, product_amount = productAmount, shipping_fee = shopShippingFee, total_amount = shopTotal, shipping_address = params.shipping_address, items = plainItems))) - if (orderId != null) { - orderIds.push(orderId) - } else { - return@w ShopOrderResponse(success = false, orderIds = orderIds, error = "店铺 " + shopName + " 订单创建失败") - } - i++ - } - } - return@w ShopOrderResponse(success = true, orderIds = orderIds) - } - catch (e: Throwable) { - console.error("批量创建订单异常:", e, " at utils/supabaseService.uts:3679") - return@w ShopOrderResponse(success = false, orderIds = _uA(), error = "系统异常") - } - }) - } - open fun getOrders(status: Number = 0): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - var query = supaInstance.from("ml_orders").select("*, ml_order_items(*), ml_shops(shop_name)").eq("user_id", userId).order("created_at", OrderOptions(ascending = false)) - if (status > 0) { - query = query.eq("order_status", status) - } - val response = await(query.execute()) - console.log("[getOrders] response.error:", response.error, " at utils/supabaseService.uts:3706") - if (response.data != null && UTSArray.isArray(response.data)) { - console.log("[getOrders] 订单数量:", (response.data as UTSArray).length, " at utils/supabaseService.uts:3708") - } - if (response.error != null) { - console.error("获取订单列表失败:", response.error, " at utils/supabaseService.uts:3712") - val empty: UTSArray = _uA() - return@w empty - } - val data = response.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - val orders = data as UTSArray - run { - var i: Number = 0 - while(i < orders.length){ - val order = orders[i] - val orderStr = JSON.stringify(order) - val orderObj = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at utils/supabaseService.uts:3464") as UTSJSONObject - val itemsRaw = orderObj.get("ml_order_items") - if (itemsRaw != null && UTSArray.isArray(itemsRaw)) { - val items = itemsRaw as UTSArray - run { - var j: Number = 0 - while(j < items.length){ - val item = items[j] - val itemStr = JSON.stringify(item) - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at utils/supabaseService.uts:3471") as UTSJSONObject - val imgUrl = itemObj.getString("image_url") - if (imgUrl != null) { - itemObj["image_url"] = fixImageUrl(imgUrl) - } - val prodImg = itemObj.getString("product_image") - if (prodImg != null) { - itemObj["product_image"] = fixImageUrl(prodImg) - } - items[j] = itemObj - j++ - } - } - orderObj["ml_order_items"] = items - orders[i] = orderObj - } - i++ - } - } - return@w orders - } - catch (error: Throwable) { - console.error("获取订单列表异常:", error, " at utils/supabaseService.uts:3753") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getOrderDetail(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getOrderDetail] 开始获取订单详情,orderId:", orderId, " at utils/supabaseService.uts:3762") - val userId = this.getCurrentUserId() - if (userId == null) { - return@w null - } - val response = await(supaInstance.from("ml_orders").select("*, ml_order_items(*)").eq("id", orderId).eq("user_id", userId!!).limit(1).execute()) - console.log("[getOrderDetail] response.error:", response.error, " at utils/supabaseService.uts:3774") - console.log("[getOrderDetail] response.data:", JSON.stringify(response.data), " at utils/supabaseService.uts:3775") - if (response.error != null) { - console.error("[getOrderDetail] 获取订单详情失败:", response.error, " at utils/supabaseService.uts:3778") - return@w null - } - val rawData = response.data - if (rawData == null) { - console.log("[getOrderDetail] 数据为空", " at utils/supabaseService.uts:3784") - return@w null - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - console.log("[getOrderDetail] 未找到订单", " at utils/supabaseService.uts:3790") - return@w null - } - val orderData = rawList[0] - console.log("[getOrderDetail] 成功获取订单", " at utils/supabaseService.uts:3795") - val orderObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(orderData)), " at utils/supabaseService.uts:3526") as UTSJSONObject - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 3527, 19)) - result.set("id", orderObj.get("id") ?: "") - result.set("order_no", orderObj.get("order_no") ?: "") - result.set("order_status", orderObj.get("order_status") ?: 1) - result.set("user_id", orderObj.get("user_id") ?: "") - result.set("merchant_id", orderObj.get("merchant_id") ?: "") - result.set("product_amount", orderObj.get("product_amount") ?: 0) - result.set("shipping_fee", orderObj.get("shipping_fee") ?: 0) - result.set("total_amount", orderObj.get("total_amount") ?: 0) - result.set("paid_amount", orderObj.get("paid_amount") ?: 0) - result.set("discount_amount", orderObj.get("discount_amount") ?: 0) - result.set("payment_method", orderObj.get("payment_method") ?: "") - result.set("payment_status", orderObj.get("payment_status") ?: 1) - result.set("shipping_status", orderObj.get("shipping_status") ?: 1) - result.set("created_at", orderObj.get("created_at") ?: "") - result.set("paid_at", orderObj.get("paid_at") ?: "") - result.set("shipped_at", orderObj.get("shipped_at") ?: "") - result.set("completed_at", orderObj.get("completed_at") ?: "") - result.set("shipping_address", orderObj.get("shipping_address")) - result.set("ml_order_items", orderObj.get("ml_order_items")) - result.set("tracking_no", orderObj.get("tracking_no") ?: "") - result.set("carrier_name", orderObj.get("carrier_name") ?: "") - result.set("delivered_at", orderObj.get("delivered_at") ?: "") - return@w result - } - catch (e: Throwable) { - console.error("[getOrderDetail] 获取订单详情异常:", e, " at utils/supabaseService.uts:3826") - return@w null - } - }) - } - open fun payOrder(orderId: String, paymentMethod: String, amount: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("[payOrder] 用户未登录", " at utils/supabaseService.uts:3836") - return@w false - } - console.log("[payOrder] 开始更新订单状态, orderId:", orderId, "userId:", userId, " at utils/supabaseService.uts:3840") - val updatePayload = UTSJSONObject(UTSSourceMapPosition("updatePayload", "utils/supabaseService.uts", 3567, 19)) - updatePayload.set("order_status", 2) - updatePayload.set("payment_status", 1) - updatePayload.set("payment_method", paymentMethod) - updatePayload.set("payment_time", Date().toISOString()) - updatePayload.set("paid_amount", amount) - updatePayload.set("updated_at", Date().toISOString()) - console.log("[payOrder] 更新数据:", JSON.stringify(updatePayload), " at utils/supabaseService.uts:3850") - val response = await(supaInstance.from("ml_orders").update(updatePayload).eq("id", orderId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("[payOrder] 更新订单失败:", response.error, " at utils/supabaseService.uts:3860") - return@w false - } - console.log("[payOrder] 订单状态更新成功", " at utils/supabaseService.uts:3864") - if (paymentMethod === "balance") { - console.log("[payOrder] 余额支付,暂不扣减余额", " at utils/supabaseService.uts:3867") - } - return@w true - } - catch (e: Throwable) { - console.error("[payOrder] 支付异常:", e, " at utils/supabaseService.uts:3872") - return@w false - } - }) - } - open fun getOrderById(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("[getOrderById] 用户未登录", " at utils/supabaseService.uts:3882") - return@w null - } - console.log("[getOrderById] 查询订单, orderId:", orderId, " at utils/supabaseService.uts:3886") - val response = await(supaInstance.from("ml_orders").select("*").eq("id", orderId).eq("user_id", userId).execute()) - if (response.error != null) { - console.error("[getOrderById] 查询订单失败:", response.error, " at utils/supabaseService.uts:3896") - return@w null - } - val data = response.data as UTSArray - if (data == null || data.length === 0) { - console.log("[getOrderById] 未找到订单", " at utils/supabaseService.uts:3902") - return@w null - } - val orderRaw = data[0] - var orderObj: UTSJSONObject - if (orderRaw is UTSJSONObject) { - orderObj = orderRaw as UTSJSONObject - } else { - orderObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(orderRaw)), " at utils/supabaseService.uts:3626") as UTSJSONObject - } - console.log("[getOrderById] 订单数据:", JSON.stringify(orderObj), " at utils/supabaseService.uts:3914") - return@w orderObj - } - catch (e: Throwable) { - console.error("[getOrderById] 查询异常:", e, " at utils/supabaseService.uts:3917") - return@w null - } - }) - } - open fun createRefund(data: Any): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[createRefund] 开始处理退款申请", " at utils/supabaseService.uts:3925") - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[createRefund] 用户未登录", " at utils/supabaseService.uts:3928") - return@w RefundResponse(success = false, message = "请先登录") - } - val d = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(data)), " at utils/supabaseService.uts:3645") as UTSJSONObject - val orderId = d.getString("order_id") ?: "" - val refundType = d.getNumber("refund_type") - val refundReason = d.getString("refund_reason") - val refundAmount = d.getNumber("refund_amount") - val description = d.getString("description") - val images = d.getArray("images") - console.log("[createRefund] orderId:", orderId, " at utils/supabaseService.uts:3940") - console.log("[createRefund] refundType:", refundType, " at utils/supabaseService.uts:3941") - console.log("[createRefund] refundReason:", refundReason, " at utils/supabaseService.uts:3942") - console.log("[createRefund] refundAmount:", refundAmount, " at utils/supabaseService.uts:3943") - val payload: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("payload", "utils/supabaseService.uts", 3656, 19)) { - var user_id = userId - var order_id = orderId - var refund_no = "REF" + Date.now() + Math.floor(Math.random() * 1000) - var refund_type = refundType - var refund_reason = refundReason - var refund_amount = refundAmount - var description = description ?: "" - var images = images ?: (_uA()) - var status: Number = 1 - } - console.log("[createRefund] 准备插入 ml_refunds", " at utils/supabaseService.uts:3957") - val response = await(supaInstance.from("ml_refunds").insert(payload).execute()) - console.log("[createRefund] insert response.error:", response.error, " at utils/supabaseService.uts:3963") - if (response.error != null) { - console.error("提交售后失败:", response.error, " at utils/supabaseService.uts:3966") - return@w RefundResponse(success = false, message = "提交失败: " + (response.error!!.message ?: "未知错误")) - } - console.log("[createRefund] 插入成功,更新订单状态", " at utils/supabaseService.uts:3970") - val updateResponse = await(supaInstance.from("ml_orders").update(object : UTSJSONObject() { - var order_status: Number = 6 - var updated_at = Date().toISOString() - }).eq("id", orderId).execute()) - console.log("[createRefund] update response.error:", updateResponse.error, " at utils/supabaseService.uts:3981") - if (updateResponse.error != null) { - console.error("更新订单状态失败:", updateResponse.error, " at utils/supabaseService.uts:3984") - } - console.log("[createRefund] 完成,返回成功", " at utils/supabaseService.uts:3988") - return@w RefundResponse(success = true, message = "申请提交成功") - } - catch (e: Throwable) { - console.error("提交售后异常:", e, " at utils/supabaseService.uts:3991") - return@w RefundResponse(success = false, message = "系统异常") - } - }) - } - open fun cancelRefund(orderId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("[cancelRefund] 开始取消退款申请, orderId:", orderId, " at utils/supabaseService.uts:3999") - val userId = this.getCurrentUserId() - if (userId == null) { - return@w RefundResponse(success = false, message = "请先登录") - } - val refundUpdateResponse = await(supaInstance.from("ml_refunds").update(object : UTSJSONObject() { - var status: Number = 4 - var updated_at = Date().toISOString() - }).eq("order_id", orderId).eq("user_id", userId).eq("status", 1).execute()) - if (refundUpdateResponse.error != null) { - console.error("取消退款记录失败:", refundUpdateResponse.error, " at utils/supabaseService.uts:4018") - return@w RefundResponse(success = false, message = "取消失败: " + (refundUpdateResponse.error!!.message ?: "未知错误")) - } - val orderUpdateResponse = await(supaInstance.from("ml_orders").update(object : UTSJSONObject() { - var order_status: Number = 4 - var updated_at = Date().toISOString() - }).eq("id", orderId).execute()) - if (orderUpdateResponse.error != null) { - console.error("恢复订单状态失败:", orderUpdateResponse.error, " at utils/supabaseService.uts:4033") - } - return@w RefundResponse(success = true, message = "已取消退款申请") - } - catch (e: Throwable) { - console.error("取消退款异常:", e, " at utils/supabaseService.uts:4039") - return@w RefundResponse(success = false, message = "系统异常") - } - }) - } - open fun rePurchase(order: Any): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val orderObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(order)), " at utils/supabaseService.uts:3747") as UTSJSONObject - var itemsKey = "ml_order_items" - var itemsRaw = orderObj.get(itemsKey) - if (itemsRaw == null) { - itemsKey = "items" - itemsRaw = orderObj.get(itemsKey) - } - if (itemsRaw == null) { - return@w false - } - val items = itemsRaw as UTSArray - if (items.length === 0) { - return@w false - } - run { - var i: Number = 0 - while(i < items.length){ - val item = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(items[i])), " at utils/supabaseService.uts:3764") as UTSJSONObject - val productId = item.getString("product_id") - val skuId = item.getString("sku_id") - val quantity = item.getNumber("quantity") ?: 1 - if (productId != null) { - await(this.addToCart(productId, quantity, skuId ?: "", "")) - } - i++ - } - } - return@w true - } - catch (e: Throwable) { - console.error("rePurchase error", e, " at utils/supabaseService.uts:4079") - return@w false - } - }) - } - open fun applyRefund(orderId: String, reason: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_orders").update(object : UTSJSONObject() { - var order_status: Number = 6 - var cancel_reason = reason - var updated_at = Date().toISOString() - }).eq("id", orderId).execute()) - return@w response.error == null - } - catch (e: Throwable) { - return@w false - } - }) - } - open fun getRefunds(statusList: UTSArray = _uA(), page: Number = 1, pageSize: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - var query = supaInstance.from("ml_refunds").select("\n *,\n order:ml_orders!inner (\n order_no,\n created_at,\n ml_order_items (\n product_id,\n product_name,\n image_url\n )\n )\n ").eq("user_id", userId).order("created_at", OrderOptions(ascending = false)) - if (statusList.length > 0) { - val anyList = statusList as UTSArray - query = query.`in`("status", anyList) - } - query = query.range((page - 1) * pageSize, page * pageSize - 1) - val response = await(query.execute()) - if (response.error != null) { - console.error("获取售后列表失败:", response.error, " at utils/supabaseService.uts:4141") - val empty: UTSArray = _uA() - return@w empty - } - val data = response.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w data - } - catch (e: Throwable) { - console.error("获取售后列表异常:", e, " at utils/supabaseService.uts:4154") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun deleteRefund(refundId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_refunds").`delete`().eq("id", refundId).execute()) - if (response.error != null) { - console.error("删除退款记录失败:", response.error, " at utils/supabaseService.uts:4169") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("删除退款记录异常:", e, " at utils/supabaseService.uts:4175") - return@w false - } - }) - } - open fun getUserBalanceNumber(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - console.log("[Supabase] getUserBalance userId:", userId, " at utils/supabaseService.uts:4183") - if (userId == null) { - return@w 0 - } - val walletRes = await(supaInstance.from("ml_user_wallets").select("balance").eq("user_id", userId!!).single().execute()) - if (walletRes.error != null) { - console.error("[Supabase] getUserBalance error:", walletRes.error, " at utils/supabaseService.uts:4195") - } else { - console.log("[Supabase] getUserBalance data:", walletRes.data, " at utils/supabaseService.uts:4197") - } - if (walletRes.error == null && walletRes.data != null) { - var data = walletRes.data - if (UTSArray.isArray(data)) { - val arr = data as UTSArray - if (arr.length > 0) { - data = arr[0] - } - } - var kVal: Number = 0 - if (data is UTSJSONObject) { - kVal = (data as UTSJSONObject).getNumber("balance") ?: 0 - if (kVal === 0 && (data as UTSJSONObject).getString("balance") != null) { - kVal = parseFloat((data as UTSJSONObject).getString("balance")!!) - } - return@w kVal - } else { - val jsonObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(data)), " at utils/supabaseService.uts:3905") as UTSJSONObject - kVal = jsonObj.getNumber("balance") ?: 0 - if (kVal === 0 && jsonObj.getString("balance") != null) { - kVal = parseFloat(jsonObj.getString("balance")!!) - } - return@w kVal - } - } - console.log("[Supabase] Wallet table empty, checking profile...", " at utils/supabaseService.uts:4229") - val profile = await(this.getUserProfile()) - if (profile != null) { - if (profile is UTSJSONObject) { - return@w (profile as UTSJSONObject).getNumber("balance") ?: 0 - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at utils/supabaseService.uts:3921") as UTSJSONObject - return@w pObj.getNumber("balance") ?: 0 - } - } - return@w 0 - } - catch (e: Throwable) { - console.error("[Supabase] getUserBalance exception:", e, " at utils/supabaseService.uts:4243") - return@w 0 - } - }) - } - open fun getUserPoints(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - console.log("[Supabase] getUserPoints userId:", userId, " at utils/supabaseService.uts:4252") - if (userId == null) { - return@w 0 - } - val res = await(supaInstance.from("ml_user_points").select("points").eq("user_id", userId!!).single().execute()) - if (res.error != null) { - console.error("[Supabase] getUserPoints error:", res.error, " at utils/supabaseService.uts:4264") - } else { - console.log("[Supabase] getUserPoints data:", res.data, " at utils/supabaseService.uts:4266") - } - if (res.error == null && res.data != null) { - var data = res.data - if (UTSArray.isArray(data)) { - val arr = data as UTSArray - if (arr.length > 0) { - data = arr[0] - } - } - if (data is UTSJSONObject) { - return@w (data as UTSJSONObject).getNumber("points") ?: 0 - } else { - val jsonObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(data)), " at utils/supabaseService.uts:3966") as UTSJSONObject - val kVal = jsonObj.getNumber("points") - if (kVal != null) { - return@w kVal - } - return@w 0 - } - } - val profile = await(this.getUserProfile()) - if (profile != null) { - if (profile is UTSJSONObject) { - return@w (profile as UTSJSONObject).getNumber("points") ?: 0 - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at utils/supabaseService.uts:3980") as UTSJSONObject - return@w pObj.getNumber("points") ?: 0 - } - } - return@w 0 - } - catch (e: Throwable) { - console.error("[Supabase] getUserPoints exception:", e, " at utils/supabaseService.uts:4304") - return@w 0 - } - }) - } - open fun getTransactions(page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val from = (page - 1) * limit - val to = from + limit - 1 - val response = await(supaInstance.from("ml_wallet_transactions").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).range(from, to).execute()) - if (response.error != null) { - console.error("获取交易记录失败:", response.error, " at utils/supabaseService.uts:4330") - val empty: UTSArray = _uA() - return@w empty - } - val data = response.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w data as UTSArray - } - catch (e: Throwable) { - console.error("获取交易记录异常:", e, " at utils/supabaseService.uts:4343") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getPointRecords(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_point_records").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null) { - val empty: UTSArray = _uA() - return@w empty - } - val data = res.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w data as UTSArray - } - catch (e: Throwable) { - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getUserRedPackets(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_user_red_packets").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null) { - console.error("获取红包失败:", res.error, " at utils/supabaseService.uts:4398") - val empty: UTSArray = _uA() - return@w empty - } - val data = res.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w data as UTSArray - } - catch (e: Throwable) { - console.error("获取红包异常:", e, " at utils/supabaseService.uts:4409") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getUserBankCards(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_user_bank_cards").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null) { - console.error("获取银行卡失败:", res.error, " at utils/supabaseService.uts:4432") - val empty: UTSArray = _uA() - return@w empty - } - val data = res.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w data as UTSArray - } - catch (e: Throwable) { - console.error("获取银行卡异常:", e, " at utils/supabaseService.uts:4443") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun rechargeBalance(amount: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val res = await(supaInstance.rpc("recharge_wallet", object : UTSJSONObject() { - var p_user_id = userId - var p_amount = amount - })) - if (res.error != null) { - console.error("充值失败RPC:", res.error, " at utils/supabaseService.uts:4461") - return@w false - } - val data = res.data - if (data is UTSJSONObject) { - return@w (data as UTSJSONObject).getBoolean("success") ?: false - } - return@w false - } - catch (e: Throwable) { - console.error("充值异常:", e, " at utils/supabaseService.uts:4473") - return@w false - } - }) - } - open fun withdrawBalance(amount: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val res = await(supaInstance.rpc("withdraw_wallet", object : UTSJSONObject() { - var p_user_id = userId - var p_amount = amount - })) - if (res.error != null) { - console.error("提现失败RPC:", res.error, " at utils/supabaseService.uts:4490") - return@w false - } - val data = res.data - if (data is UTSJSONObject) { - return@w (data as UTSJSONObject).getBoolean("success") ?: false - } - return@w false - } - catch (e: Throwable) { - console.error("提现异常:", e, " at utils/supabaseService.uts:4500") - return@w false - } - }) - } - open fun addBankCard(card: UTSJSONObject): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - card.set("user_id", userId) - val res = await(supaInstance.from("ml_user_bank_cards").insert(card).execute()) - if (res.error != null) { - console.error("添加银行卡失败:", res.error, " at utils/supabaseService.uts:4520") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("添加银行卡异常:", e, " at utils/supabaseService.uts:4525") - return@w false - } - }) - } - open fun deleteBankCard(cardId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val res = await(supaInstance.from("ml_user_bank_cards").eq("id", cardId).eq("user_id", userId!!).`delete`().execute()) - if (res.error != null) { - console.error("删除银行卡失败:", res.error, " at utils/supabaseService.uts:4544") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("删除银行卡异常:", e, " at utils/supabaseService.uts:4549") - return@w false - } - }) - } - open fun checkFavorite(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - console.log("[CheckFav] Checking for User: " + userId + ", Product: " + productId, " at utils/supabaseService.uts:4558") - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_user_favorites").select("*").eq("user_id", userId!!).eq("target_id", productId).eq("target_type", "1").limit(1).execute()) - if (response.error != null) { - console.error("[CheckFav] Error: " + JSON.stringify(response.error), " at utils/supabaseService.uts:4574") - return@w false - } - val data = response.data - if (UTSArray.isArray(data)) { - if ((data as UTSArray).length > 0) { - val item = (data as UTSArray)[0] - var targetId = "" - if (item is UTSJSONObject) { - targetId = (item as UTSJSONObject).getString("target_id") ?: "" - } else { - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4249") as UTSJSONObject - targetId = itemObj.getString("target_id") ?: "" - } - if (targetId != "" && targetId != productId) { - console.error("[CheckFav] ID Mismatch! Query " + productId + ", Got " + targetId, " at utils/supabaseService.uts:4593") - return@w false - } - return@w true - } - } else if (data is UTSJSONObject) { - var targetId = (data as UTSJSONObject).getString("target_id") ?: "" - if (targetId !== "" && targetId !== productId) { - return@w false - } - return@w true - } - return@w false - } - catch (e: Throwable) { - console.error("[CheckFav] Exception: " + e, " at utils/supabaseService.uts:4610") - return@w false - } - }) - } - open fun toggleFavorite(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - console.log("[ToggleFav] Toggling for " + productId, " at utils/supabaseService.uts:4620") - val exists = await(this.checkFavorite(productId)) - console.log("[ToggleFav] Current status: " + exists, " at utils/supabaseService.uts:4624") - if (exists) { - val response = await(supaInstance.from("ml_user_favorites").eq("user_id", userId!!).eq("target_id", productId).eq("target_type", "1").`delete`().execute()) - if (response.error != null) { - console.error("取消收藏失败:", response.error, " at utils/supabaseService.uts:4636") - return@w true - } - return@w false - } else { - val response = await(supaInstance.from("ml_user_favorites").insert(object : UTSJSONObject() { - var user_id = userId - var target_id = productId - var target_type = "1" - var created_at = Date().toISOString() - }).execute()) - if (response.error != null) { - console.error("添加收藏失败:", response.error, " at utils/supabaseService.uts:4652") - return@w false - } - return@w true - } - } - catch (e: Throwable) { - console.error("切换收藏状态异常:", e, " at utils/supabaseService.uts:4658") - return@w await(this.checkFavorite(productId)) - } - }) - } - open fun getFavorites(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val response = await(supaInstance.from("ml_user_favorites").select("*").eq("user_id", userId!!).eq("target_type", "1").order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - val empty: UTSArray = _uA() - return@w empty - } - val favorites = response.data as UTSArray - if (favorites == null || favorites.length === 0) { - val empty: UTSArray = _uA() - return@w empty - } - val productIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < favorites.length){ - var item: Any = favorites[i] - var itemObj: UTSJSONObject - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4353") as UTSJSONObject - } - val targetIdRaw = itemObj.get("target_id") - var pid = "" - if (targetIdRaw != null) { - if (UTSAndroid.`typeof`(targetIdRaw) === "string") { - pid = targetIdRaw as String - } else if (UTSAndroid.`typeof`(targetIdRaw) === "number") { - pid = (targetIdRaw as Number).toString(10) - } - } - if (pid !== "") { - productIds.push(pid) - } - i++ - } - } - if (productIds.length === 0) { - return@w _uA() - } - val anyProductIds = productIds as UTSArray - val productRes = await(supaInstance.from("ml_products").select("id, name, main_image_url, base_price, sale_count").`in`("id", anyProductIds).execute()) - if (productRes.error != null) { - val empty: UTSArray = _uA() - return@w empty - } - val products = productRes.data as UTSArray - val productMap = Map() - run { - var i: Number = 0 - while(i < products.length){ - var p: Any = products[i] - var pid = "" - if (p is UTSJSONObject) { - pid = (p as UTSJSONObject).getString("id") ?: "" - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(p)), " at utils/supabaseService.uts:4392") as UTSJSONObject - pid = pObj.getString("id") ?: "" - } - if (pid !== "") { - productMap.set(pid, p) - } - i++ - } - } - val result: UTSArray = _uA() - run { - var i: Number = 0 - while(i < favorites.length){ - var item: Any = favorites[i] - var newItem: UTSJSONObject - if (item is UTSJSONObject) { - newItem = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4404") as UTSJSONObject - } else { - newItem = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4407") as UTSJSONObject - } - val targetIdRaw = newItem.get("target_id") - var targetId = "" - if (targetIdRaw != null) { - if (UTSAndroid.`typeof`(targetIdRaw) === "string") { - targetId = targetIdRaw as String - } else if (UTSAndroid.`typeof`(targetIdRaw) === "number") { - targetId = (targetIdRaw as Number).toString(10) - } - } - if (targetId !== "") { - val product = productMap.get(targetId) - if (product != null) { - newItem.set("ml_products", product) - result.push(newItem) - } - } - i++ - } - } - return@w result - } - catch (e: Throwable) { - console.error("获取收藏列表异常:", e, " at utils/supabaseService.uts:4779") - return@w _uA() - } - }) - } - open fun getFootprints(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[getFootprints] 用户未登录", " at utils/supabaseService.uts:4789") - val empty: UTSArray = _uA() - return@w empty - } - console.log("[getFootprints] 查询足迹, userId:", userId, " at utils/supabaseService.uts:4794") - val response = await(supaInstance.from("ml_user_footprints").select("*").eq("user_id", userId!!).order("updated_at", OrderOptions(ascending = false)).limit(50).execute()) - console.log("[getFootprints] 足迹查询 error:", response.error, " at utils/supabaseService.uts:4805") - console.log("[getFootprints] 足迹查询 data:", JSON.stringify(response.data), " at utils/supabaseService.uts:4806") - if (response.error != null) { - console.error("[getFootprints] 获取足迹失败:", response.error, " at utils/supabaseService.uts:4809") - val empty: UTSArray = _uA() - return@w empty - } - val footprints = response.data as UTSArray - if (footprints == null || footprints.length === 0) { - console.log("[getFootprints] 没有足迹记录", " at utils/supabaseService.uts:4816") - val empty: UTSArray = _uA() - return@w empty - } - console.log("[getFootprints] 足迹记录数量:", footprints.length, " at utils/supabaseService.uts:4821") - val productIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < footprints.length){ - var item = footprints[i] - var pid = "" - if (item is UTSJSONObject) { - pid = (item as UTSJSONObject).getString("product_id") ?: "" - } else { - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4476") as UTSJSONObject - pid = itemObj.getString("product_id") ?: "" - } - if (pid !== "" && !productIds.includes(pid)) { - productIds.push(pid) - } - i++ - } - } - if (productIds.length === 0) { - return@w _uA() - } - val productIdsAny: UTSArray = _uA() - run { - var i: Number = 0 - while(i < productIds.length){ - productIdsAny.push(productIds[i]) - i++ - } - } - val productRes = await(supaInstance.from("ml_products_detail_view").select("id, name, main_image_url, base_price, market_price, sale_count, merchant_id, shop_name").`in`("id", productIdsAny).execute()) - var products: UTSArray = _uA() - if (productRes.error == null && productRes.data != null) { - products = productRes.data as UTSArray - } else { - console.warn("View查询失败,尝试查询基础表", " at utils/supabaseService.uts:4856") - val baseRes = await(supaInstance.from("ml_products").select("id, name, main_image_url, base_price, market_price, sale_count, merchant_id").`in`("id", productIdsAny).execute()) - if (baseRes.error == null) { - products = baseRes.data as UTSArray - } - } - val productMap = Map() - run { - var i: Number = 0 - while(i < products.length){ - var p = products[i] - var pid = "" - if (p is UTSJSONObject) { - pid = (p as UTSJSONObject).getString("id") ?: "" - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(p)), " at utils/supabaseService.uts:4518") as UTSJSONObject - pid = pObj.getString("id") ?: "" - } - if (pid !== "") { - productMap.set(pid, p) - } - i++ - } - } - val result: UTSArray = _uA() - run { - var i: Number = 0 - while(i < footprints.length){ - var fp = footprints[i] - var pid = "" - var viewTime: Number = 0 - if (fp is UTSJSONObject) { - pid = (fp as UTSJSONObject).getString("product_id") ?: "" - val dateStr = (fp as UTSJSONObject).getString("updated_at") - if (dateStr != null) { - viewTime = Date(dateStr).getTime() - } - } else { - val fpObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(fp)), " at utils/supabaseService.uts:4537") as UTSJSONObject - pid = fpObj.getString("product_id") ?: "" - val dateStr = fpObj.getString("updated_at") - if (dateStr != null) { - viewTime = Date(dateStr).getTime() - } - } - val product = productMap.get(pid) - if (product != null) { - var pName = "" - var pImage = "" - var pPrice: Number = 0 - var pOriginalPrice: Number = 0 - var pSales: Number = 0 - var pShopId = "" - var pShopName = "" - if (product is UTSJSONObject) { - pName = (product as UTSJSONObject).getString("name") ?: "" - pImage = (product as UTSJSONObject).getString("main_image_url") ?: "" - pPrice = (product as UTSJSONObject).getNumber("base_price") ?: 0 - pOriginalPrice = (product as UTSJSONObject).getNumber("market_price") ?: 0 - pSales = (product as UTSJSONObject).getNumber("sale_count") ?: 0 - pShopId = (product as UTSJSONObject).getString("merchant_id") ?: "" - pShopName = (product as UTSJSONObject).getString("shop_name") ?: "" - } else { - val pObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at utils/supabaseService.uts:4562") as UTSJSONObject - pName = pObj.getString("name") ?: "" - pImage = pObj.getString("main_image_url") ?: "" - pPrice = pObj.getNumber("base_price") ?: 0 - pOriginalPrice = pObj.getNumber("market_price") ?: 0 - pSales = pObj.getNumber("sale_count") ?: 0 - pShopId = pObj.getString("merchant_id") ?: "" - pShopName = pObj.getString("shop_name") ?: "" - } - val fpObj = UTSJSONObject(UTSSourceMapPosition("fpObj", "utils/supabaseService.uts", 4571, 27)) - fpObj.set("id", pid) - fpObj.set("name", pName) - fpObj.set("price", pPrice) - fpObj.set("original_price", pOriginalPrice) - fpObj.set("image", pImage) - fpObj.set("sales", pSales) - fpObj.set("shopId", pShopId) - fpObj.set("shopName", pShopName) - fpObj.set("merchant_id", pShopId) - fpObj.set("viewTime", viewTime) - result.push(fpObj) - } - i++ - } - } - return@w result - } - catch (error: Throwable) { - console.error("获取足迹异常:", error, " at utils/supabaseService.uts:4944") - return@w _uA() - } - }) - } - open fun addFootprint(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[addFootprint] 用户未登录", " at utils/supabaseService.uts:4954") - return@w false - } - console.log("[addFootprint] 添加足迹, userId:", userId, "productId:", productId, " at utils/supabaseService.uts:4958") - val checkRes = await(supaInstance.from("ml_user_footprints").select("id").eq("user_id", userId!!).eq("product_id", productId).execute()) - console.log("[addFootprint] 检查结果 error:", checkRes.error, " at utils/supabaseService.uts:4968") - console.log("[addFootprint] 检查结果 data:", JSON.stringify(checkRes.data), " at utils/supabaseService.uts:4969") - val checkData = checkRes.data as UTSArray - val exists = checkData != null && UTSArray.isArray(checkData) && checkData.length > 0 - if (checkRes.error == null && exists) { - console.log("[addFootprint] 足迹已存在,更新时间", " at utils/supabaseService.uts:4975") - val updateRes = await(supaInstance.from("ml_user_footprints").update(object : UTSJSONObject() { - var updated_at = Date().toISOString() - }).eq("user_id", userId!!).eq("product_id", productId).execute()) - console.log("[addFootprint] 更新结果 error:", updateRes.error, " at utils/supabaseService.uts:4983") - } else { - console.log("[addFootprint] 足迹不存在,插入新记录", " at utils/supabaseService.uts:4985") - val insertPayload = UTSJSONObject(UTSSourceMapPosition("insertPayload", "utils/supabaseService.uts", 4626, 23)) - insertPayload.set("user_id", userId!!) - insertPayload.set("product_id", productId) - insertPayload.set("created_at", Date().toISOString()) - insertPayload.set("updated_at", Date().toISOString()) - val insertRes = await(supaInstance.from("ml_user_footprints").insert(insertPayload).execute()) - console.log("[addFootprint] 插入结果 error:", insertRes.error, " at utils/supabaseService.uts:4997") - } - return@w true - } - catch (e: Throwable) { - console.error("[addFootprint] 添加足迹异常:", e, " at utils/supabaseService.uts:5001") - return@w false - } - }) - } - open fun deleteFootprint(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[deleteFootprint] 用户未登录", " at utils/supabaseService.uts:5011") - return@w false - } - val response = await(supaInstance.from("ml_user_footprints").eq("user_id", userId).eq("product_id", productId).`delete`().execute()) - if (response.error != null) { - console.error("[deleteFootprint] 删除足迹失败:", response.error, " at utils/supabaseService.uts:5023") - return@w false - } - console.log("[deleteFootprint] 删除足迹成功", " at utils/supabaseService.uts:5027") - return@w true - } - catch (e: Throwable) { - console.error("[deleteFootprint] 删除足迹异常:", e, " at utils/supabaseService.uts:5030") - return@w false - } - }) - } - open fun deleteFootprints(productIds: UTSArray): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[deleteFootprints] 用户未登录", " at utils/supabaseService.uts:5040") - return@w false - } - val idsAny: UTSArray = _uA() - run { - var i: Number = 0 - while(i < productIds.length){ - idsAny.push(productIds[i]) - i++ - } - } - val response = await(supaInstance.from("ml_user_footprints").eq("user_id", userId).`in`("product_id", idsAny).`delete`().execute()) - if (response.error != null) { - console.error("[deleteFootprints] 批量删除足迹失败:", response.error, " at utils/supabaseService.uts:5057") - return@w false - } - console.log("[deleteFootprints] 批量删除足迹成功", " at utils/supabaseService.uts:5061") - return@w true - } - catch (e: Throwable) { - console.error("[deleteFootprints] 批量删除足迹异常:", e, " at utils/supabaseService.uts:5064") - return@w false - } - }) - } - open fun clearFootprints(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.log("[clearFootprints] 用户未登录", " at utils/supabaseService.uts:5074") - return@w false - } - val response = await(supaInstance.from("ml_user_footprints").eq("user_id", userId).`delete`().execute()) - if (response.error != null) { - console.error("[clearFootprints] 清空足迹失败:", response.error, " at utils/supabaseService.uts:5085") - return@w false - } - console.log("[clearFootprints] 清空足迹成功", " at utils/supabaseService.uts:5089") - return@w true - } - catch (e: Throwable) { - console.error("[clearFootprints] 清空足迹异常:", e, " at utils/supabaseService.uts:5092") - return@w false - } - }) - } - open fun getAddressList(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val response = await(supaInstance.from("ml_user_addresses").select("*, recipient_name:receiver_name, phone:receiver_phone, detail_address:address_detail").eq("user_id", userId!!).order("is_default", OrderOptions(ascending = false)).order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - console.error("获取地址列表失败:", response.error, " at utils/supabaseService.uts:5114") - val empty: UTSArray = _uA() - return@w empty - } - return@w response.data as UTSArray - } - catch (e: Throwable) { - console.error("获取地址列表异常:", e, " at utils/supabaseService.uts:5120") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun setDefaultAddress(addressId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("用户未登录,无法设置默认地址", " at utils/supabaseService.uts:5131") - return@w false - } - await(this.clearDefaultAddress(userId!!)) - val response = await(supaInstance.from("ml_user_addresses").update(object : UTSJSONObject() { - var is_default = true - var updated_at = Date().toISOString() - }).eq("id", addressId).eq("user_id", userId!!).execute()) - if (response.error != null) { - console.error("设置默认地址失败:", response.error, " at utils/supabaseService.uts:5150") - return@w false - } - return@w true - } - catch (error: Throwable) { - console.error("设置默认地址异常:", error, " at utils/supabaseService.uts:5156") - return@w false - } - }) - } - open fun getUserCoupons(status: Number = 1): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val response = await(supaInstance.from("ml_user_coupons").select("*, template:ml_coupon_templates(name, amount, min_spend)").eq("user_id", userId!!).eq("status", status.toString(10)).order("expire_at", OrderOptions(ascending = true)).execute()) - if (response.error != null) { - console.error("获取优惠券失败:", response.error, " at utils/supabaseService.uts:5182") - val empty: UTSArray = _uA() - return@w empty - } - val rawData: UTSArray = _uA() - val respData = response.data - console.log("[getUserCoupons] 原始数据类型:", UTSAndroid.`typeof`(respData), "是否数组:", UTSArray.isArray(respData), " at utils/supabaseService.uts:5190") - if (respData != null) { - if (UTSArray.isArray(respData)) { - val arr = respData as UTSArray - console.log("[getUserCoupons] 数组长度:", arr.length, " at utils/supabaseService.uts:5194") - run { - var i: Number = 0 - while(i < arr.length){ - rawData.push(arr[i]) - i++ - } - } - } else if (respData is UTSJSONObject) { - console.log("[getUserCoupons] 单个对象,包装成数组", " at utils/supabaseService.uts:5200") - rawData.push(respData) - } else { - try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(respData)), " at utils/supabaseService.uts:4826") - console.log("[getUserCoupons] JSON转换后是否数组:", UTSArray.isArray(parsed), " at utils/supabaseService.uts:5206") - if (UTSArray.isArray(parsed)) { - console.log("[getUserCoupons] 转换后数组长度:", (parsed as UTSArray).length, " at utils/supabaseService.uts:5208") - run { - var i: Number = 0 - while(i < (parsed as UTSArray).length){ - rawData.push((parsed as UTSArray)[i]) - i++ - } - } - } - } - catch (parseErr: Throwable) { - console.error("解析优惠券数据异常:", parseErr, " at utils/supabaseService.uts:5214") - } - } - } - console.log("[getUserCoupons] 最终rawData长度:", rawData.length, " at utils/supabaseService.uts:5218") - val coupons: UTSArray = _uA() - run { - var i: Number = 0 - while(i < rawData.length){ - val item = rawData[i] - var template: Any? = null - var itemId = "" - var itemUserId = "" - var itemTmplId = "" - var itemCode = "" - var itemStatus: Number = 0 - var itemRecv = "" - var itemExpire = "" - if (item is UTSJSONObject) { - template = (item as UTSJSONObject).get("template") as Any? - itemId = (item as UTSJSONObject).getString("id") ?: "" - itemUserId = (item as UTSJSONObject).getString("user_id") ?: "" - itemTmplId = (item as UTSJSONObject).getString("template_id") ?: "" - itemCode = (item as UTSJSONObject).getString("coupon_code") ?: "" - itemStatus = (item as UTSJSONObject).getNumber("status") ?: 0 - itemRecv = (item as UTSJSONObject).getString("received_at") ?: "" - itemExpire = (item as UTSJSONObject).getString("expire_at") ?: "" - } else { - val iObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:4864") as UTSJSONObject - template = iObj.get("template") as Any? - itemId = iObj.getString("id") ?: "" - itemUserId = iObj.getString("user_id") ?: "" - itemTmplId = iObj.getString("template_id") ?: "" - itemCode = iObj.getString("coupon_code") ?: "" - itemStatus = iObj.getNumber("status") ?: 0 - itemRecv = iObj.getString("received_at") ?: "" - itemExpire = iObj.getString("expire_at") ?: "" - } - if (template == null) { - template = UTSJSONObject() - } - var tName = "" - var tAmount: Number = 0 - var tMin: Number = 0 - if (template is UTSJSONObject) { - tName = (template as UTSJSONObject).getString("name") ?: "优惠券" - tAmount = (template as UTSJSONObject).getNumber("amount") ?: 0 - tMin = (template as UTSJSONObject).getNumber("min_spend") ?: 0 - } else { - val tObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(template)), " at utils/supabaseService.uts:4885") as UTSJSONObject - tName = tObj.getString("name") ?: "优惠券" - tAmount = tObj.getNumber("amount") ?: 0 - tMin = tObj.getNumber("min_spend") ?: 0 - } - val couponItem = UserCoupon(id = itemId, user_id = itemUserId, template_id = itemTmplId, coupon_code = itemCode, status = itemStatus, received_at = itemRecv, expire_at = itemExpire, template_name = tName, amount = tAmount, min_spend = tMin) - coupons.push(couponItem) - i++ - } - } - return@w coupons - } - catch (e: Throwable) { - console.error("获取优惠券异常:", e, " at utils/supabaseService.uts:5290") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getUserCouponCount(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w 0 - } - val response = await(supaInstance.from("ml_user_coupons").select("id", object : UTSJSONObject() { - var count = "exact" - }).eq("user_id", userId!!).eq("status", "1").gt("expire_at", Date().toISOString()).limit(1).execute()) - if (response.error != null) { - return@w 0 - } - return@w response.total ?: 0 - } - catch (e: Throwable) { - return@w 0 - } - }) - } - open fun getAvailableCoupons(merchantId: String): UTSPromise> { - return wrapUTSPromise(suspend w@{ - return@w this.fetchShopCoupons(merchantId) - }) - } - open fun fetchShopCoupons(merchantId: String): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[fetchShopCoupons] 开始获取优惠券,merchantId:", merchantId, " at utils/supabaseService.uts:5328") - val response = await(supaInstance.from("ml_coupon_templates").select("*").or("merchant_id.eq." + merchantId + ",merchant_id.is.null").eq("status", "1").gt("end_time", Date().toISOString()).order("discount_value", OrderOptions(ascending = false)).execute()) - if (response.error != null) { - console.error("Fetch coupons failed:", response.error, " at utils/supabaseService.uts:5341") - val empty: UTSArray = _uA() - return@w empty - } - val data = response.data - if (data == null) { - val empty: UTSArray = _uA() - return@w empty - } - console.log("[fetchShopCoupons] 获取到优惠券数量:", (data as UTSArray).length, " at utils/supabaseService.uts:5351") - return@w data as UTSArray - } - catch (e: Throwable) { - console.error("Fetch coupons error:", e, " at utils/supabaseService.uts:5354") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun claimCoupon(templateId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - return@w this.claimShopCoupon(templateId, userId) - }) - } - open fun claimShopCoupon(templateId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - console.log("Claiming coupon templateId:", templateId, "userId:", userId, " at utils/supabaseService.uts:5368") - val tmplRes = await(supaInstance.from("ml_coupon_templates").select("*").eq("id", templateId).limit(1).execute()) - if (tmplRes.error != null) { - console.error("Claim Coupon: Template query error", tmplRes.error, " at utils/supabaseService.uts:5379") - return@w false - } - if (tmplRes.data == null) { - console.error("Claim Coupon: Template data response is null", " at utils/supabaseService.uts:5385") - return@w false - } - val dataList = tmplRes.data as UTSArray - if (dataList.length === 0) { - console.error("Claim Coupon: Template not found (empty list)", " at utils/supabaseService.uts:5391") - return@w false - } - val template = dataList[0] - var validDays: Number = 0 - var endTimeStr: String? = null - var merchantId: String? = null - if (template is UTSJSONObject) { - validDays = (template as UTSJSONObject).getNumber("valid_days") ?: 0 - endTimeStr = (template as UTSJSONObject).getString("end_time") - merchantId = (template as UTSJSONObject).getString("merchant_id") - } else { - val tJson = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(template)), " at utils/supabaseService.uts:5013") as UTSJSONObject - validDays = tJson.getNumber("valid_days") ?: 0 - endTimeStr = tJson.getString("end_time") - merchantId = tJson.getString("merchant_id") - } - var expireAt = Date(Date.now() + 2592000000).toISOString() - if (validDays > 0) { - expireAt = Date(Date.now() + (validDays * 86400000)).toISOString() - } else if (endTimeStr != null && endTimeStr !== "") { - expireAt = endTimeStr - } - if (merchantId != null && merchantId.length === 0) { - merchantId = null - } - val insertData: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("insertData", "utils/supabaseService.uts", 5031, 19)) { - var user_id = userId - var template_id = templateId - var merchant_id = merchantId - var coupon_code = "C" + Date.now() + Math.floor(Math.random() * 1000) - var status: Number = 1 - var expire_at = expireAt - var received_at = Date().toISOString() - } - console.log("Claim Coupon Insert Payload:", JSON.stringify(insertData), " at utils/supabaseService.uts:5437") - val response = await(supaInstance.from("ml_user_coupons").insert(insertData).execute()) - if (response.error != null) { - console.error("Claim Coupon: Insert failed:", JSON.stringify(response.error), " at utils/supabaseService.uts:5445") - if (JSON.stringify(response.error).includes("merchant_id")) { - console.log("Retrying without merchant_id...", " at utils/supabaseService.uts:5448") - val fallbackData: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("fallbackData", "utils/supabaseService.uts", 5050, 27)) { - var user_id = userId - var template_id = templateId - var coupon_code = "C" + Date.now() + Math.random().toString(10).substring(2, 6) - var status: Number = 1 - var expire_at = expireAt - var received_at = Date().toISOString() - } - val res2 = await(supaInstance.from("ml_user_coupons").insert(fallbackData).execute()) - if (res2.error == null) { - return@w true - } - } - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("Claim coupon error:", e, " at utils/supabaseService.uts:5464") - return@w false - } - }) - } - open fun sendMessage(merchantId: String, content: String, msgType: String = "text"): UTSPromise { - return wrapUTSPromise(suspend w@{ - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("sendMessage failed: user not logged in or session lost", " at utils/supabaseService.uts:5478") - return@w false - } - try { - val msg: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("msg", "utils/supabaseService.uts", 5086, 19), "sender_id" to userId!!, "receiver_id" to merchantId, "content" to content, "msg_type" to msgType, "is_read" to false, "is_from_user" to true) - val response = await(supaInstance.from("ml_chat_messages").insert(msg).execute()) - if (response.error != null) { - console.error("sendMessage error:", response.error, " at utils/supabaseService.uts:5502") - return@w false - } - return@w true - } - catch (e: Throwable) { - console.error("sendMessage exception:", e, " at utils/supabaseService.uts:5507") - return@w false - } - }) - } - open fun uploadChatImage(filePath: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val userId = this.getCurrentUserId() - if (userId == null) { - console.error("uploadChatImage failed: user not logged in", " at utils/supabaseService.uts:5516") - return@w "" - } - try { - val timestamp = Date.now() - val randomStr = Math.random().toString(36).substring(2, 8) - val fileName = "chat_" + userId + "_" + timestamp + "_" + randomStr + ".jpg" - val storagePath = "chat-images/" + fileName - console.log("[uploadChatImage] 开始上传:", filePath, "->", storagePath, " at utils/supabaseService.uts:5527") - val response = await(supaInstance.storage.from("chat").upload(storagePath, filePath, UTSJSONObject())) - if (response.error != null) { - console.error("[uploadChatImage] 上传失败:", response.error, " at utils/supabaseService.uts:5534") - return@w "" - } - val publicUrl = "" + supaInstance.baseUrl + "/storage/v1/object/public/chat/" + storagePath - console.log("[uploadChatImage] 上传成功:", publicUrl, " at utils/supabaseService.uts:5540") - return@w publicUrl - } - catch (e: Throwable) { - console.error("[uploadChatImage] 上传异常:", e, " at utils/supabaseService.uts:5543") - return@w "" - } - }) - } - open fun markRead(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - try { - val response = await(supaInstance.from("ml_chat_messages").update(object : UTSJSONObject() { - var is_read = true - }).eq("sender_id", merchantId).eq("receiver_id", userId).eq("is_read", false).execute()) - if (response.error != null) { - return@w false - } - } - catch (e: Throwable) { - return@w false - } - return@w true - }) - } - open fun submitProductReviews(reviews: UTSArray): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - run { - var i: Number = 0 - while(i < reviews.length){ - val review = reviews[i] - val response = await(supaInstance.from("ml_product_reviews").insert(review).execute()) - if (response.error != null) { - console.error("提交商品评价失败:", response.error, " at utils/supabaseService.uts:5576") - return@w false - } - i++ - } - } - return@w true - } - catch (e: Throwable) { - console.error("提交商品评价失败:", e, " at utils/supabaseService.uts:5582") - return@w false - } - }) - } - open fun submitShopReview(review: UTSJSONObject): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_shop_reviews").insert(review).execute()) - return@w response.error == null - } - catch (e: Throwable) { - console.error("提交店铺评价失败:", e, " at utils/supabaseService.uts:5596") - return@w false - } - }) - } - open fun updateOrderStatus(orderId: String, status: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 5199, 19)) - updateData.set("order_status", status) - val response = await(supaInstance.from("ml_orders").update(updateData).eq("id", orderId).execute()) - return@w response.error == null - } - catch (e: Throwable) { - console.error("更新订单状态失败:", e, " at utils/supabaseService.uts:5613") - return@w false - } - }) - } - open fun getHotKeywords(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_search_history").select("keyword").order("created_at", OrderOptions(ascending = false)).limit(100).execute()) - if (response.error != null || response.data == null) { - return@w _uA() - } - val keywordCount = Map() - val rawList = response.data as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:5231") as UTSJSONObject - val keyword = safeGetString(itemObj, "keyword").toLowerCase().trim() - if (keyword.length > 0) { - val count = keywordCount.get(keyword) ?: 0 - keywordCount.set(keyword, count + 1) - } - i++ - } - } - open class KeywordEntry ( - @JsonNotNull - open var keyword: String, - @JsonNotNull - open var count: Number, - ) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("KeywordEntry", "utils/supabaseService.uts", 5240, 18) - } - } - val entryArray: UTSArray = _uA() - keywordCount.forEach(fun(value: Number, key: String){ - entryArray.push(KeywordEntry(keyword = key, count = value)) - } - ) - entryArray.sort(fun(a: KeywordEntry, b: KeywordEntry): Number { - return b.count - a.count - } - ) - val sortedKeywords: UTSArray = _uA() - val maxCount = Math.min(entryArray.length, limit) - run { - var i: Number = 0 - while(i < maxCount){ - sortedKeywords.push(entryArray[i].keyword) - i++ - } - } - return@w sortedKeywords - } - catch (e: Throwable) { - console.error("获取热搜词失败:", e, " at utils/supabaseService.uts:5677") - return@w _uA() - } - }) - } - open fun getUserSearchHistory(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - val response = await(supaInstance.from("ml_search_history").select("keyword").order("created_at", OrderOptions(ascending = false)).limit(limit * 2).execute()) - if (response.error != null || response.data == null) { - return@w _uA() - } - val keywords: UTSArray = _uA() - val rawList = response.data as UTSArray - val seen = Set() - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:5290") as UTSJSONObject - val rawUserId = itemObj.get("user_id") - val itemUserId = if ((UTSAndroid.`typeof`(rawUserId) == "string")) { - (rawUserId as String) - } else { - "" - } - if (itemUserId !== userId) { - i++ - continue - } - val keyword = safeGetString(itemObj, "keyword").trim() - if (keyword.length > 0 && !seen.has(keyword)) { - keywords.push(keyword) - seen.add(keyword) - if (keywords.length >= limit) { - break - } - } - i++ - } - } - return@w keywords - } - catch (e: Throwable) { - console.error("获取用户搜索历史失败:", e, " at utils/supabaseService.uts:5724") - return@w _uA() - } - }) - } - open fun getUserBrowseCategories(limit: Number = 5): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w _uA() - } - val response = await(supaInstance.from("ml_browse_history").select("product_id").order("created_at", OrderOptions(ascending = false)).limit(20).execute()) - if (response.error != null || response.data == null) { - return@w _uA() - } - val productIds: UTSArray = _uA() - val rawList = response.data as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:5332") as UTSJSONObject - val rawUserId = itemObj.get("user_id") - val itemUserId = if ((UTSAndroid.`typeof`(rawUserId) == "string")) { - (rawUserId as String) - } else { - "" - } - if (itemUserId !== userId) { - i++ - continue - } - val productId = safeGetString(itemObj, "product_id") - if (productId.length > 0) { - productIds.push(productId) - } - i++ - } - } - if (productIds.length === 0) { - return@w _uA() - } - val prodResponse = await(supaInstance.from("ml_products").select("category_id").limit(50).execute()) - if (prodResponse.error != null || prodResponse.data == null) { - return@w _uA() - } - val categoryIds: UTSArray = _uA() - val prodList = prodResponse.data as UTSArray - run { - var i: Number = 0 - while(i < prodList.length){ - val prodItem = prodList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(prodItem)), " at utils/supabaseService.uts:5359") as UTSJSONObject - val prodId = safeGetString(prodObj, "id") - var found = false - run { - var j: Number = 0 - while(j < productIds.length){ - if (productIds[j] == prodId) { - found = true - break - } - j++ - } - } - if (!found) { - i++ - continue - } - val catId = safeGetString(prodObj, "category_id") - if (catId.length > 0 && categoryIds.indexOf(catId) < 0) { - categoryIds.push(catId) - if (categoryIds.length >= limit) { - break - } - } - i++ - } - } - return@w categoryIds - } - catch (e: Throwable) { - console.error("获取用户浏览分类失败:", e, " at utils/supabaseService.uts:5807") - return@w _uA() - } - }) - } - open fun getSmartRecommendations(limit: Number = 10): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - console.log("[getSmartRecommendations] 开始获取智能推荐...", " at utils/supabaseService.uts:5815") - val products: UTSArray = _uA() - val addedIds = Set() - val searchHistory = await(this.getUserSearchHistory(5)) - console.log("[getSmartRecommendations] 用户搜索历史:", searchHistory, " at utils/supabaseService.uts:5822") - if (searchHistory.length > 0) { - val keywordProducts = await(this.searchProductsByKeywords(searchHistory, limit)) - run { - var i: Number = 0 - while(i < keywordProducts.length){ - val prod = keywordProducts[i] - if (!addedIds.has(prod.id)) { - products.push(prod) - addedIds.add(prod.id) - } - i++ - } - } - } - if (products.length < limit) { - val browseCategories = await(this.getUserBrowseCategories(3)) - console.log("[getSmartRecommendations] 用户浏览分类:", browseCategories, " at utils/supabaseService.uts:5839") - if (browseCategories.length > 0) { - val categoryProducts = await(this.getProductsByCategories(browseCategories, limit - products.length)) - run { - var i: Number = 0 - while(i < categoryProducts.length){ - val prod = categoryProducts[i] - if (!addedIds.has(prod.id)) { - products.push(prod) - addedIds.add(prod.id) - } - i++ - } - } - } - } - if (products.length < limit) { - val hotProducts = await(this.getHotProducts(limit - products.length + 5)) - run { - var i: Number = 0 - while(i < hotProducts.length){ - val prod = hotProducts[i] - if (!addedIds.has(prod.id)) { - products.push(prod) - addedIds.add(prod.id) - if (products.length >= limit) { - break - } - } - i++ - } - } - } - if (products.length < limit) { - val moreProducts = await(this.getProductsByPrice(limit - products.length + 5, false)) - run { - var i: Number = 0 - while(i < moreProducts.length){ - val prod = moreProducts[i] - if (!addedIds.has(prod.id)) { - products.push(prod) - addedIds.add(prod.id) - if (products.length >= limit) { - break - } - } - i++ - } - } - } - console.log("[getSmartRecommendations] 返回商品数量:", products.length, " at utils/supabaseService.uts:5879") - return@w products.slice(0, limit) - } - catch (e: Throwable) { - console.error("获取智能推荐失败:", e, " at utils/supabaseService.uts:5882") - return@w _uA() - } - }) - } - open fun searchProductsByKeywords(keywords: UTSArray, limit: Number): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").order("sale_count", OrderOptions(ascending = false)).limit(limit * 2).execute()) - if (response.error != null || response.data == null) { - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = response.data as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:5470") as UTSJSONObject - val rawStatus = prodObj.get("status") - var statusNum: Number = 0 - if (UTSAndroid.`typeof`(rawStatus) == "number") { - statusNum = rawStatus as Number - } - if (statusNum !== 1) { - i++ - continue - } - val name = safeGetString(prodObj, "name").toLowerCase() - val desc = safeGetString(prodObj, "description").toLowerCase() - var matched = false - run { - var j: Number = 0 - while(j < keywords.length){ - val keyword = keywords[j].toLowerCase() - if (name.indexOf(keyword) >= 0 || desc.indexOf(keyword) >= 0) { - matched = true - break - } - j++ - } - } - if (!matched) { - i++ - continue - } - products.push(parseProductFromRaw(item)) - if (products.length >= limit) { - break - } - i++ - } - } - return@w products - } - catch (e: Throwable) { - console.error("根据关键词搜索商品失败:", e, " at utils/supabaseService.uts:5937") - return@w _uA() - } - }) - } - open fun getProductsByCategories(categoryIds: UTSArray, limit: Number): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_products_detail_view").select("id, name, description, base_price, market_price, main_image_url, image_urls, category_id, brand_id, merchant_id, total_stock, sale_count, status, is_featured, is_new, is_hot").order("sale_count", OrderOptions(ascending = false)).limit(limit * 2).execute()) - if (response.error != null || response.data == null) { - return@w _uA() - } - val products: UTSArray = _uA() - val rawList = response.data as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at utils/supabaseService.uts:5519") as UTSJSONObject - val rawStatus = prodObj.get("status") - var statusNum: Number = 0 - if (UTSAndroid.`typeof`(rawStatus) == "number") { - statusNum = rawStatus as Number - } - if (statusNum !== 1) { - i++ - continue - } - val rawCatId = prodObj.get("category_id") - val itemCatId = if ((UTSAndroid.`typeof`(rawCatId) == "string")) { - (rawCatId as String) - } else { - "" - } - var matched = false - run { - var j: Number = 0 - while(j < categoryIds.length){ - if (itemCatId == categoryIds[j]) { - matched = true - break - } - j++ - } - } - if (!matched) { - i++ - continue - } - products.push(parseProductFromRaw(item)) - if (products.length >= limit) { - break - } - i++ - } - } - return@w products - } - catch (e: Throwable) { - console.error("根据分类获取商品失败:", e, " at utils/supabaseService.uts:5991") - return@w _uA() - } - }) - } - open fun recordSearch(keyword: String, resultCount: Number): UTSPromise { - return wrapUTSPromise(suspend { - try { - val userId = this.getCurrentUserId() - val searchRecord = UTSJSONObject(UTSSourceMapPosition("searchRecord", "utils/supabaseService.uts", 5555, 19)) - searchRecord.set("keyword", keyword) - searchRecord.set("result_count", resultCount) - if (userId != null) { - searchRecord.set("user_id", userId) - } - await(supaInstance.from("ml_search_history").insert(searchRecord).execute()) - } - catch (e: Throwable) { - console.error("记录搜索失败:", e, " at utils/supabaseService.uts:6012") - } - }) - } - open fun recordBrowse(productId: String, duration: Number = 0): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w - } - val browseRecord = UTSJSONObject(UTSSourceMapPosition("browseRecord", "utils/supabaseService.uts", 5576, 19)) - browseRecord.set("user_id", userId) - browseRecord.set("product_id", productId) - browseRecord.set("browse_duration", duration) - browseRecord.set("created_at", Date().toISOString()) - await(supaInstance.from("ml_browse_history").insert(browseRecord).execute()) - } - catch (e: Throwable) { - console.error("记录浏览失败:", e, " at utils/supabaseService.uts:6034") - } - }) - } - open fun signin(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 5594, 15)) - result.set("success", false) - result.set("points", 0) - result.set("continuous_days", 0) - result.set("bonus_points", 0) - result.set("total_points", 0) - result.set("message", "") - try { - val userId = this.getCurrentUserId() - if (userId == null) { - result.set("message", "请先登录") - return@w result - } - val today = Date() - val todayStr = today.toISOString().split("T")[0] - val yesterday = Date(today.getTime() - 86400000) - val yesterdayStr = yesterday.toISOString().split("T")[0] - val checkRes = await(supaInstance.from("ml_signin_records").select("*").eq("user_id", userId!!).eq("signin_date", todayStr).execute()) - if (checkRes.error != null) { - result.set("message", "查询签到状态失败") - return@w result - } - val checkData = checkRes.data as UTSArray - if (checkData != null && checkData.length > 0) { - result.set("message", "今天已签到") - return@w result - } - val yesterdayRes = await(supaInstance.from("ml_signin_records").select("continuous_days").eq("user_id", userId!!).eq("signin_date", yesterdayStr).execute()) - var continuousDays: Number = 1 - if (yesterdayRes.error == null && yesterdayRes.data != null) { - val yData = yesterdayRes.data as UTSArray - if (yData.length > 0) { - val yItem = yData[0] - var yDays: Number = 0 - if (yItem is UTSJSONObject) { - yDays = (yItem as UTSJSONObject).getNumber("continuous_days") ?: 0 - } else { - val yObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(yItem)), " at utils/supabaseService.uts:5644") as UTSJSONObject - yDays = yObj.getNumber("continuous_days") ?: 0 - } - continuousDays = yDays + 1 - } - } - var pointsEarned: Number = 5 - var bonusPoints: Number = 0 - if (continuousDays >= 30) { - bonusPoints = 100 - } else if (continuousDays >= 7) { - bonusPoints = 20 - } - val totalPointsEarned = pointsEarned + bonusPoints - val signinRecord = UTSJSONObject(UTSSourceMapPosition("signinRecord", "utils/supabaseService.uts", 5661, 19)) - signinRecord.set("user_id", userId!!) - signinRecord.set("signin_date", todayStr) - signinRecord.set("points_earned", pointsEarned) - signinRecord.set("bonus_points", bonusPoints) - signinRecord.set("continuous_days", continuousDays) - val insertRes = await(supaInstance.from("ml_signin_records").insert(signinRecord).execute()) - if (insertRes.error != null) { - result.set("message", "签到失败") - return@w result - } - await(this.addPoints(userId!!, totalPointsEarned, "signin", "每日签到")) - val newPoints = await(this.getUserPoints()) - result.set("success", true) - result.set("points", pointsEarned) - result.set("continuous_days", continuousDays) - result.set("bonus_points", bonusPoints) - result.set("total_points", newPoints) - result.set("message", "签到成功") - return@w result - } - catch (e: Throwable) { - console.error("签到异常:", e, " at utils/supabaseService.uts:6150") - result.set("message", "签到异常") - return@w result - } - }) - } - open fun getSigninRecords(year: Number, month: Number): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val startDate = "" + year + "-" + month.toString(10).padStart(2, "0") + "-01" - val endDate = if (month === 12) { - "" + (year + 1) + "-01-01" - } else { - "" + year + "-" + (month + 1).toString(10).padStart(2, "0") + "-01" - } - val response = await(supaInstance.from("ml_signin_records").select("*").eq("user_id", userId!!).gte("signin_date", startDate).lt("signin_date", endDate).order("signin_date", OrderOptions(ascending = true)).execute()) - if (response.error != null || response.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w response.data as UTSArray - } - catch (e: Throwable) { - console.error("获取签到记录失败:", e, " at utils/supabaseService.uts:6186") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getTodaySigninStatus(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 5727, 15)) - result.set("signed", false) - result.set("continuous_days", 0) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val today = Date().toISOString().split("T")[0] - val todayRes = await(supaInstance.from("ml_signin_records").select("*").eq("user_id", userId!!).eq("signin_date", today).execute()) - if (todayRes.error == null && todayRes.data != null) { - val tData = todayRes.data as UTSArray - if (tData.length > 0) { - val tItem = tData[0] - var cDays: Number = 0 - if (tItem is UTSJSONObject) { - cDays = (tItem as UTSJSONObject).getNumber("continuous_days") ?: 0 - } else { - val tObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(tItem)), " at utils/supabaseService.uts:5751") as UTSJSONObject - cDays = tObj.getNumber("continuous_days") ?: 0 - } - result.set("signed", true) - result.set("continuous_days", cDays) - return@w result - } - } - val lastRes = await(supaInstance.from("ml_signin_records").select("continuous_days, signin_date").eq("user_id", userId!!).order("signin_date", OrderOptions(ascending = false)).limit(1).execute()) - if (lastRes.error == null && lastRes.data != null) { - val lData = lastRes.data as UTSArray - if (lData.length > 0) { - val lItem = lData[0] - var lastDate = "" - var lastDays: Number = 0 - if (lItem is UTSJSONObject) { - lastDate = (lItem as UTSJSONObject).getString("signin_date") ?: "" - lastDays = (lItem as UTSJSONObject).getNumber("continuous_days") ?: 0 - } else { - val lObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(lItem)), " at utils/supabaseService.uts:5778") as UTSJSONObject - lastDate = lObj.getString("signin_date") ?: "" - lastDays = lObj.getNumber("continuous_days") ?: 0 - } - val yesterday = Date(Date.now() - 86400000).toISOString().split("T")[0] - if (lastDate === yesterday) { - result.set("continuous_days", lastDays) - } - } - } - return@w result - } - catch (e: Throwable) { - console.error("获取签到状态失败:", e, " at utils/supabaseService.uts:6262") - return@w result - } - }) - } - open fun getPointProducts(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val response = await(supaInstance.from("ml_point_products").select("*").eq("status", 1).gt("stock", 0).order("sort_order", OrderOptions(ascending = true)).execute()) - if (response.error != null || response.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w response.data as UTSArray - } - catch (e: Throwable) { - console.error("获取积分商品失败:", e, " at utils/supabaseService.uts:6287") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun exchangeProduct(productId: String, quantity: Number, addressSnapshot: UTSJSONObject?): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 5820, 15)) - result.set("success", false) - result.set("message", "") - try { - val userId = this.getCurrentUserId() - if (userId == null) { - result.set("message", "请先登录") - return@w result - } - val productRes = await(supaInstance.from("ml_point_products").select("*").eq("id", productId).single().execute()) - if (productRes.error != null || productRes.data == null) { - result.set("message", "商品不存在") - return@w result - } - val productRaw = productRes.data - var pointsRequired: Number = 0 - var stock: Number = 0 - var productType = "" - var productObj: UTSJSONObject? = null - if (UTSArray.isArray(productRaw)) { - val arr = productRaw as UTSArray - if (arr.length > 0) { - val firstItem = arr[0] - if (firstItem is UTSJSONObject) { - productObj = firstItem as UTSJSONObject - } else { - productObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(firstItem)), " at utils/supabaseService.uts:5854") as UTSJSONObject - } - } - } else { - if (productRaw is UTSJSONObject) { - productObj = productRaw as UTSJSONObject - } else { - productObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(productRaw)), " at utils/supabaseService.uts:5863") as UTSJSONObject - } - } - if (productObj != null) { - pointsRequired = productObj.getNumber("points_required") ?: 0 - stock = productObj.getNumber("stock") ?: 0 - productType = productObj.getString("product_type") ?: "" - } - val totalPoints = pointsRequired * quantity - if (stock < quantity) { - result.set("message", "库存不足") - return@w result - } - val userPoints = await(this.getUserPoints()) - if (userPoints < totalPoints) { - result.set("message", "积分不足") - return@w result - } - val exchangeRecord = UTSJSONObject(UTSSourceMapPosition("exchangeRecord", "utils/supabaseService.uts", 5885, 19)) - exchangeRecord.set("user_id", userId!!) - exchangeRecord.set("product_id", productId) - exchangeRecord.set("quantity", quantity) - exchangeRecord.set("points_used", totalPoints) - exchangeRecord.set("status", 0) - if (addressSnapshot != null && productType === "physical") { - exchangeRecord.set("address_snapshot", JSON.stringify(addressSnapshot)) - } - val insertRes = await(supaInstance.from("ml_point_exchanges").insert(exchangeRecord).execute()) - if (insertRes.error != null) { - console.error("[exchangeProduct] 创建兑换记录失败:", insertRes.error, " at utils/supabaseService.uts:6383") - result.set("message", "兑换失败") - return@w result - } - console.log("[exchangeProduct] 兑换记录创建成功", " at utils/supabaseService.uts:6388") - console.log("[exchangeProduct] 准备扣减库存", " at utils/supabaseService.uts:6391") - console.log("[exchangeProduct] productId 类型:", UTSAndroid.`typeof`(productId), " at utils/supabaseService.uts:6392") - console.log("[exchangeProduct] productId 值:", productId, " at utils/supabaseService.uts:6393") - console.log("[exchangeProduct] 当前库存:", stock, ", 扣减数量:", quantity, " at utils/supabaseService.uts:6394") - val stockUpdateData = UTSJSONObject(UTSSourceMapPosition("stockUpdateData", "utils/supabaseService.uts", 5910, 19)) - stockUpdateData.set("stock", stock - quantity) - console.log("[exchangeProduct] stockUpdateData:", stockUpdateData, " at utils/supabaseService.uts:6400") - console.log("[exchangeProduct] stockUpdateData 类型:", UTSAndroid.`typeof`(stockUpdateData), " at utils/supabaseService.uts:6401") - val checkProduct = await(supaInstance.from("ml_point_products").select("id, stock").eq("id", productId).execute()) - console.log("[exchangeProduct] 查询商品结果:", checkProduct.data, "error:", checkProduct.error, " at utils/supabaseService.uts:6409") - val stockUpdateRes = await(supaInstance.from("ml_point_products").update(stockUpdateData).eq("id", productId).execute()) - console.log("[exchangeProduct] 库存更新结果 error:", stockUpdateRes.error, " at utils/supabaseService.uts:6417") - console.log("[exchangeProduct] 库存更新结果 data:", stockUpdateRes.data, " at utils/supabaseService.uts:6418") - if (stockUpdateRes.error != null) { - console.error("[exchangeProduct] 扣减库存失败:", stockUpdateRes.error, " at utils/supabaseService.uts:6421") - } - console.log("[exchangeProduct] 准备扣减积分, userId:", userId, ", 积分:", totalPoints, " at utils/supabaseService.uts:6425") - val deductResult = await(this.deductPoints(userId!!, totalPoints, "redeem", "积分兑换商品")) - console.log("[exchangeProduct] 积分扣减结果:", deductResult, " at utils/supabaseService.uts:6427") - if (!deductResult) { - console.error("[exchangeProduct] 扣减积分失败", " at utils/supabaseService.uts:6430") - } - console.log("[exchangeProduct] 兑换流程完成", " at utils/supabaseService.uts:6433") - result.set("success", true) - result.set("message", "兑换成功") - return@w result - } - catch (e: Throwable) { - console.error("积分兑换异常:", e, " at utils/supabaseService.uts:6438") - result.set("message", "兑换异常") - return@w result - } - }) - } - open fun getExchangeRecords(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val response = await(supaInstance.from("ml_point_exchanges").select("*, product:ml_point_products(name, image_url, product_type)").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null || response.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w response.data as UTSArray - } - catch (e: Throwable) { - console.error("获取兑换记录失败:", e, " at utils/supabaseService.uts:6467") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getProductReviews(productId: String, page: Number = 1, limit: Number = 10, rating: Number = 0, hasImage: Boolean = false): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 5978, 15)) - result.set("total", 0) - result.set("page", page) - result.set("limit", limit) - result.set("data", _uA()) - try { - val userId = this.getCurrentUserId() - var query = supaInstance.from("ml_product_reviews").select("*, user:auth.users!ml_product_reviews_user_id_fkey(raw_user_meta_data)", object : UTSJSONObject() { - var count = "exact" - }).eq("product_id", productId) - if (rating > 0) { - query = query.eq("rating", rating) - } - if (hasImage) { - query = query.neq("images", "[]") - } - val offset = (page - 1) * limit - val response = await(query.order("created_at", OrderOptions(ascending = false)).range(offset, offset + limit - 1).execute()) - if (response.error != null) { - console.error("获取评价列表失败:", response.error, " at utils/supabaseService.uts:6506") - return@w result - } - val total = response.total ?: 0 - val reviews = response.data as UTSArray - val processedReviews: UTSArray = _uA() - run { - var i: Number = 0 - while(i < reviews.length){ - val review = reviews[i] - val processed = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(review)), " at utils/supabaseService.uts:6010") as UTSJSONObject - val userRaw = processed.get("user") - var userName = "匿名用户" - var userAvatar = "" - if (userRaw != null) { - var userData: UTSJSONObject - if (userRaw is UTSJSONObject) { - userData = userRaw as UTSJSONObject - } else { - userData = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(userRaw)), " at utils/supabaseService.uts:6021") as UTSJSONObject - } - val metaData = userData.get("raw_user_meta_data") - if (metaData != null) { - var metaObj: UTSJSONObject - if (metaData is UTSJSONObject) { - metaObj = metaData as UTSJSONObject - } else { - metaObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(metaData)), " at utils/supabaseService.uts:6030") as UTSJSONObject - } - userName = metaObj.getString("nickname") ?: metaObj.getString("name") ?: "匿名用户" - userAvatar = metaObj.getString("avatar_url") ?: "" - } - } - val isAnonymous = processed.getBoolean("is_anonymous") ?: false - if (isAnonymous) { - userName = "匿名用户" - userAvatar = "" - } - processed.set("user_name", userName) - processed.set("user_avatar", userAvatar) - var isLiked = false - if (userId != null) { - val likeRes = await(supaInstance.from("ml_review_likes").select("id").eq("review_id", processed.getString("id") ?: "").eq("user_id", userId!!).limit(1).execute()) - if (likeRes.error == null && likeRes.data != null) { - val likeData = likeRes.data as UTSArray - isLiked = likeData.length > 0 - } - } - processed.set("is_liked", isLiked) - processedReviews.push(processed) - i++ - } - } - result.set("total", total) - result.set("data", processedReviews) - return@w result - } - catch (e: Throwable) { - console.error("获取评价列表异常:", e, " at utils/supabaseService.uts:6578") - return@w result - } - }) - } - open fun getReviewStats(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6073, 15)) - result.set("total_count", 0) - result.set("avg_rating", 0) - result.set("good_rate", 0) - result.set("rating_distribution", UTSJSONObject()) - result.set("tags", _uA()) - try { - val response = await(supaInstance.from("ml_product_reviews").select("rating").eq("product_id", productId).execute()) - if (response.error != null || response.data == null) { - return@w result - } - val reviews = response.data as UTSArray - val totalCount = reviews.length - if (totalCount === 0) { - return@w result - } - var totalRating: Number = 0 - var goodCount: Number = 0 - val distribution: Map = Map() - distribution.set(1, 0) - distribution.set(2, 0) - distribution.set(3, 0) - distribution.set(4, 0) - distribution.set(5, 0) - run { - var i: Number = 0 - while(i < reviews.length){ - val review = reviews[i] - var rating: Number = 0 - if (review is UTSJSONObject) { - rating = (review as UTSJSONObject).getNumber("rating") ?: 0 - } else { - val rObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(review)), " at utils/supabaseService.uts:6107") as UTSJSONObject - rating = rObj.getNumber("rating") ?: 0 - } - totalRating += rating - if (rating >= 4) { - goodCount++ - } - val currentCount = distribution.get(rating) ?: 0 - distribution.set(rating, currentCount + 1) - i++ - } - } - val avgRating = Math.round((totalRating / totalCount) * 10) / 10 - val goodRate = Math.round((goodCount / totalCount) * 100) - val distObj = UTSJSONObject(UTSSourceMapPosition("distObj", "utils/supabaseService.uts", 6118, 19)) - distribution.forEach(fun(value: Number, key: Number){ - distObj.set(key.toString(10), value) - } - ) - result.set("total_count", totalCount) - result.set("avg_rating", avgRating) - result.set("good_rate", goodRate) - result.set("rating_distribution", distObj) - return@w result - } - catch (e: Throwable) { - console.error("获取评价统计异常:", e, " at utils/supabaseService.uts:6649") - return@w result - } - }) - } - open fun toggleReviewLike(reviewId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6135, 15)) - result.set("success", false) - result.set("is_liked", false) - result.set("like_count", 0) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val checkRes = await(supaInstance.from("ml_review_likes").select("id").eq("review_id", reviewId).eq("user_id", userId!!).limit(1).execute()) - var isLiked = false - if (checkRes.error == null && checkRes.data != null) { - val checkData = checkRes.data as UTSArray - isLiked = checkData.length > 0 - } - if (isLiked) { - await(supaInstance.from("ml_review_likes").eq("review_id", reviewId).eq("user_id", userId!!).`delete`().execute()) - val currentCountRes = await(supaInstance.from("ml_product_reviews").select("like_count").eq("id", reviewId).single().execute()) - if (currentCountRes.error == null && currentCountRes.data != null) { - var currentCount: Number = 0 - if (currentCountRes.data is UTSJSONObject) { - currentCount = (currentCountRes.data as UTSJSONObject).getNumber("like_count") ?: 0 - } else { - val countObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(currentCountRes.data)), " at utils/supabaseService.uts:6178") as UTSJSONObject - currentCount = countObj.getNumber("like_count") ?: 0 - } - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 6181, 27)) - updateData.set("like_count", Math.max(0, currentCount - 1)) - await(supaInstance.from("ml_product_reviews").update(updateData).eq("id", reviewId).execute()) - } - result.set("is_liked", false) - } else { - val likeRecord = UTSJSONObject(UTSSourceMapPosition("likeRecord", "utils/supabaseService.uts", 6193, 23)) - likeRecord.set("review_id", reviewId) - likeRecord.set("user_id", userId!!) - await(supaInstance.from("ml_review_likes").insert(likeRecord).execute()) - val currentCountRes = await(supaInstance.from("ml_product_reviews").select("like_count").eq("id", reviewId).single().execute()) - if (currentCountRes.error == null && currentCountRes.data != null) { - var currentCount: Number = 0 - if (currentCountRes.data is UTSJSONObject) { - currentCount = (currentCountRes.data as UTSJSONObject).getNumber("like_count") ?: 0 - } else { - val countObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(currentCountRes.data)), " at utils/supabaseService.uts:6213") as UTSJSONObject - currentCount = countObj.getNumber("like_count") ?: 0 - } - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 6216, 27)) - updateData.set("like_count", currentCount + 1) - await(supaInstance.from("ml_product_reviews").update(updateData).eq("id", reviewId).execute()) - } - result.set("is_liked", true) - } - val reviewRes = await(supaInstance.from("ml_product_reviews").select("like_count").eq("id", reviewId).single().execute()) - if (reviewRes.error == null && reviewRes.data != null) { - var likeCount: Number = 0 - if (reviewRes.data is UTSJSONObject) { - likeCount = (reviewRes.data as UTSJSONObject).getNumber("like_count") ?: 0 - } else { - val rObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(reviewRes.data)), " at utils/supabaseService.uts:6239") as UTSJSONObject - likeCount = rObj.getNumber("like_count") ?: 0 - } - result.set("like_count", likeCount) - } - result.set("success", true) - return@w result - } - catch (e: Throwable) { - console.error("评价点赞异常:", e, " at utils/supabaseService.uts:6780") - return@w result - } - }) - } - open fun getMyReviews(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val response = await(supaInstance.from("ml_product_reviews").select("\n *,\n product:ml_products!ml_product_reviews_product_id_fkey(name, main_image_url)\n ").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (response.error != null || response.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - val reviews = response.data as UTSArray - val result: UTSArray = _uA() - run { - var i: Number = 0 - while(i < reviews.length){ - val review = reviews[i] - val processed = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(review)), " at utils/supabaseService.uts:6277") as UTSJSONObject - val productRaw = processed.get("product") - var productName = "" - var productImage = "" - if (productRaw != null) { - var productObj: UTSJSONObject - if (productRaw is UTSJSONObject) { - productObj = productRaw as UTSJSONObject - } else { - productObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(productRaw)), " at utils/supabaseService.uts:6288") as UTSJSONObject - } - productName = productObj.getString("name") ?: "" - productImage = productObj.getString("main_image_url") ?: "" - } - processed.set("product_name", productName) - processed.set("product_image", productImage) - val createdAt = processed.getString("created_at") ?: "" - val createdTime = Date(createdAt).getTime() - val now = Date.now() - val sevenDays: Number = 604800000 - val canAppend = (now - createdTime) < sevenDays && (processed.getString("append_content") ?: "") === "" - processed.set("can_append", canAppend) - val oneDay: Number = 86400000 - val canEdit = (now - createdTime) < oneDay - processed.set("can_edit", canEdit) - result.push(processed) - i++ - } - } - return@w result - } - catch (e: Throwable) { - console.error("获取我的评价失败:", e, " at utils/supabaseService.uts:6851") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun appendReview(reviewId: String, content: String, images: UTSArray): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 6322, 19)) - updateData.set("append_content", content) - updateData.set("append_images", JSON.stringify(images)) - updateData.set("append_at", Date().toISOString()) - val response = await(supaInstance.from("ml_product_reviews").update(updateData).eq("id", reviewId).eq("user_id", userId!!).execute()) - return@w response.error == null - } - catch (e: Throwable) { - console.error("追加评价失败:", e, " at utils/supabaseService.uts:6877") - return@w false - } - }) - } - open fun deleteReview(reviewId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w false - } - val response = await(supaInstance.from("ml_product_reviews").`delete`().eq("id", reviewId).eq("user_id", userId!!).execute()) - return@w response.error == null - } - catch (e: Throwable) { - console.error("删除评价失败:", e, " at utils/supabaseService.uts:6897") - return@w false - } - }) - } - private fun addPoints(userId: String, points: Number, type: String, description: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val currentPoints = await(this.getUserPoints()) - val newPoints = currentPoints + points - val totalEarned = await(this.getTotalEarned()) - val checkRes = await(supaInstance.from("ml_user_points").select("user_id").eq("user_id", userId).limit(1).execute()) - val exists = checkRes.error == null && checkRes.data != null && (checkRes.data as UTSArray).length > 0 - if (exists) { - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 6376, 23)) - updateData.set("points", newPoints) - updateData.set("total_earned", totalEarned + points) - updateData.set("updated_at", Date().toISOString()) - await(supaInstance.from("ml_user_points").update(updateData).eq("user_id", userId).execute()) - } else { - val insertData = UTSJSONObject(UTSSourceMapPosition("insertData", "utils/supabaseService.uts", 6388, 23)) - insertData.set("user_id", userId) - insertData.set("points", newPoints) - insertData.set("total_earned", points) - insertData.set("updated_at", Date().toISOString()) - await(supaInstance.from("ml_user_points").insert(insertData).execute()) - } - val record = UTSJSONObject(UTSSourceMapPosition("record", "utils/supabaseService.uts", 6399, 19)) - record.set("user_id", userId) - record.set("points", points) - record.set("type", type) - record.set("description", description) - await(supaInstance.from("ml_point_records").insert(record).execute()) - return@w true - } - catch (e: Throwable) { - console.error("增加积分失败:", e, " at utils/supabaseService.uts:6962") - return@w false - } - }) - } - private fun deductPoints(userId: String, points: Number, type: String, description: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val currentPoints = await(this.getUserPoints()) - val newPoints = currentPoints - points - if (newPoints < 0) { - return@w false - } - val updateData = UTSJSONObject(UTSSourceMapPosition("updateData", "utils/supabaseService.uts", 6422, 19)) - updateData.set("points", newPoints) - updateData.set("updated_at", Date().toISOString()) - await(supaInstance.from("ml_user_points").update(updateData).eq("user_id", userId).execute()) - val record = UTSJSONObject(UTSSourceMapPosition("record", "utils/supabaseService.uts", 6430, 19)) - record.set("user_id", userId) - record.set("points", -points) - record.set("type", type) - record.set("description", description) - await(supaInstance.from("ml_point_records").insert(record).execute()) - return@w true - } - catch (e: Throwable) { - console.error("扣减积分失败:", e, " at utils/supabaseService.uts:6998") - return@w false - } - }) - } - private fun getTotalEarned(): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w 0 - } - val res = await(supaInstance.from("ml_user_points").select("total_earned").eq("user_id", userId!!).single().execute()) - if (res.error == null && res.data != null) { - if (res.data is UTSJSONObject) { - return@w (res.data as UTSJSONObject).getNumber("total_earned") ?: 0 - } else { - val obj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(res.data)), " at utils/supabaseService.uts:6463") as UTSJSONObject - return@w obj.getNumber("total_earned") ?: 0 - } - } - return@w 0 - } - catch (e: Throwable) { - return@w 0 - } - }) - } - open fun getExpiringPoints(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6476, 15)) - result.set("expiring_points", 0) - result.set("expiring_date", null) - result.set("details", _uA()) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val now = Date() - val thirtyDaysLater = Date(now.getTime() + 2592000000) - val nowStr = now.toISOString() - val laterStr = thirtyDaysLater.toISOString() - val res = await(supaInstance.from("ml_point_records").select("points, description, expires_at, created_at").eq("user_id", userId!!).gt("points", 0).eq("is_expired", false).not("expires_at", "is", null).gte("expires_at", nowStr).lte("expires_at", laterStr).order("expires_at", OrderOptions(ascending = true)).execute()) - if (res.error != null) { - console.error("获取即将过期积分失败:", res.error, " at utils/supabaseService.uts:7062") - return@w result - } - if (res.data != null && UTSArray.isArray(res.data)) { - val records = res.data as UTSArray - var totalExpiring: Number = 0 - var earliestDate: String? = null - val details: UTSArray = _uA() - run { - var i: Number = 0 - while(i < records.length){ - val record = records[i] - var recordObj: UTSJSONObject - if (record is UTSJSONObject) { - recordObj = record as UTSJSONObject - } else { - recordObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(record)), " at utils/supabaseService.uts:6516") as UTSJSONObject - } - val points = recordObj.getNumber("points") ?: 0 - val expiresAt = recordObj.getString("expires_at") ?: "" - totalExpiring += points - if (earliestDate == null || expiresAt < earliestDate) { - earliestDate = expiresAt - } - details.push(_uO("points" to points, "description" to recordObj.getString("description"), "expires_at" to expiresAt, "created_at" to (recordObj.getString("created_at") ?: ""))) - i++ - } - } - result.set("expiring_points", totalExpiring) - result.set("expiring_date", if (earliestDate != null) { - earliestDate.split("T")[0] - } else { - null - } - ) - result.set("details", details) - } - return@w result - } - catch (e: Throwable) { - console.error("获取即将过期积分异常:", e, " at utils/supabaseService.uts:7105") - return@w result - } - }) - } - open fun getPointsOverview(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6544, 15)) - result.set("current_points", 0) - result.set("total_earned", 0) - result.set("expiring_points", 0) - result.set("expiring_date", null) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val res = await(supaInstance.from("ml_user_points").select("points, total_earned, expiring_points, expiring_date").eq("user_id", userId!!).single().execute()) - if (res.error == null && res.data != null) { - var data: UTSJSONObject - if (res.data is UTSJSONObject) { - data = res.data as UTSJSONObject - } else { - data = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(res.data)), " at utils/supabaseService.uts:6565") as UTSJSONObject - } - result.set("current_points", data.getNumber("points") ?: 0) - result.set("total_earned", data.getNumber("total_earned") ?: 0) - result.set("expiring_points", data.getNumber("expiring_points") ?: 0) - result.set("expiring_date", data.getString("expiring_date")) - } - return@w result - } - catch (e: Throwable) { - console.error("获取积分概览异常:", e, " at utils/supabaseService.uts:7145") - return@w result - } - }) - } - open fun getExpiryNotifications(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_point_expiry_notifications").select("*").eq("user_id", userId!!).eq("is_sent", false).order("expiry_date", OrderOptions(ascending = true)).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取过期提醒失败:", e, " at utils/supabaseService.uts:7174") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun markNotificationRead(notificationId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_point_expiry_notifications").update(object : UTSJSONObject() { - var is_sent = true - var sent_at = Date().toISOString() - }).eq("id", notificationId).execute()) - return@w res.error == null - } - catch (e: Throwable) { - console.error("标记通知失败:", e, " at utils/supabaseService.uts:7191") - return@w false - } - }) - } - open fun triggerPointsMaintenance(): UTSPromise { - return wrapUTSPromise(suspend w@{ - console.warn("triggerPointsMaintenance: UTS不支持rpc调用,请在Supabase后台手动执行 daily_points_maintenance()", " at utils/supabaseService.uts:7199") - return@w false - }) - } - open fun getMerchantPromotionConfig(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6630, 15)) - result.set("promotion_enabled", false) - result.set("share_free_enabled", false) - result.set("distribution_enabled", false) - result.set("required_count", 4) - result.set("reward_type", "product_price") - result.set("fixed_reward_amount", 0) - try { - val res = await(supaInstance.from("ml_merchant_promotion_config").select("*").eq("merchant_id", merchantId).limit(1).execute()) - if (res.error == null && res.data != null && UTSArray.isArray(res.data)) { - val arr = res.data as UTSArray - if (arr.length > 0) { - val item = arr[0] - val itemAny = item as Any - if (itemAny is UTSJSONObject) { - result.set("promotion_enabled", (itemAny as UTSJSONObject).getBoolean("promotion_enabled") ?: false) - result.set("share_free_enabled", (itemAny as UTSJSONObject).getBoolean("share_free_enabled") ?: false) - result.set("distribution_enabled", (itemAny as UTSJSONObject).getBoolean("distribution_enabled") ?: false) - result.set("required_count", (itemAny as UTSJSONObject).getNumber("required_count") ?: 4) - result.set("reward_type", (itemAny as UTSJSONObject).getString("reward_type") ?: "product_price") - result.set("fixed_reward_amount", (itemAny as UTSJSONObject).getNumber("fixed_reward_amount") ?: 0) - } - } - } - } - catch (e: Throwable) { - console.error("获取商家推销配置失败:", e, " at utils/supabaseService.uts:7240") - } - return@w result - }) - } - open fun isShareFreeEnabled(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val config = await(this.getMerchantPromotionConfig(merchantId)) - val promotionEnabled = config.get("promotion_enabled") - val shareFreeEnabled = config.get("share_free_enabled") - return@w (promotionEnabled === true || promotionEnabled === "true") && (shareFreeEnabled === true || shareFreeEnabled === "true") - } - catch (e: Throwable) { - console.error("检查分享免单状态失败:", e, " at utils/supabaseService.uts:7255") - return@w false - } - }) - } - open fun getUserBalance(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6682, 15)) - result.set("balance", 0) - result.set("frozen_balance", 0) - result.set("total_earned", 0) - result.set("total_withdrawn", 0) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val res = await(supaInstance.from("ml_user_balance").select("*").eq("user_id", userId!!).limit(1).execute()) - if (res.error == null && res.data != null && UTSArray.isArray(res.data)) { - val arr = res.data as UTSArray - if (arr.length > 0) { - val item = arr[0] - val itemAny = item as Any - if (itemAny is UTSJSONObject) { - result.set("balance", (itemAny as UTSJSONObject).getNumber("balance") ?: 0) - result.set("frozen_balance", (itemAny as UTSJSONObject).getNumber("frozen_balance") ?: 0) - result.set("total_earned", (itemAny as UTSJSONObject).getNumber("total_earned") ?: 0) - result.set("total_withdrawn", (itemAny as UTSJSONObject).getNumber("total_withdrawn") ?: 0) - } - } - } - return@w result - } - catch (e: Throwable) { - console.error("获取用户余额失败:", e, " at utils/supabaseService.uts:7297") - return@w result - } - }) - } - open fun getBalanceRecords(page: Number = 1, limit: Number = 20): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val offset = (page - 1) * limit - val res = await(supaInstance.from("ml_balance_records").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).range(offset, offset + limit - 1).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取余额记录失败:", e, " at utils/supabaseService.uts:7327") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun createShareRecord(productId: String, orderId: String, orderItemId: String?, productName: String, productImage: String?, productPrice: Number): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6748, 15)) - result.set("success", false) - result.set("share_code", "") - result.set("message", "") - try { - val userId = this.getCurrentUserId() - if (userId == null) { - result.set("message", "请先登录") - return@w result - } - val shareCode = this.generateShareCode() - val insertData = UTSJSONObject(UTSSourceMapPosition("insertData", "utils/supabaseService.uts", 6760, 19)) - insertData.set("user_id", userId) - insertData.set("product_id", productId) - insertData.set("order_id", orderId) - insertData.set("order_item_id", orderItemId) - insertData.set("share_code", shareCode) - insertData.set("product_name", productName) - insertData.set("product_image", productImage) - insertData.set("product_price", productPrice) - insertData.set("required_count", 4) - insertData.set("current_count", 0) - insertData.set("status", 0) - val res = await(supaInstance.from("ml_share_records").insert(insertData).execute()) - if (res.error != null) { - console.error("[createShareRecord] 插入失败:", res.error, " at utils/supabaseService.uts:7371") - console.error("[createShareRecord] 插入数据:", JSON.stringify(insertData), " at utils/supabaseService.uts:7372") - result.set("message", "创建分享记录失败: " + (res.error!!.message ?: "未知错误")) - return@w result - } - var insertedId = "" - if (res.data != null && UTSArray.isArray(res.data) && (res.data as UTSArray).length > 0) { - val inserted = (res.data as UTSArray)[0] - var insertedObj: UTSJSONObject? = null - if (inserted is UTSJSONObject) { - insertedObj = inserted as UTSJSONObject - } else { - insertedObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(inserted)), " at utils/supabaseService.uts:6791") as UTSJSONObject - } - insertedId = insertedObj.getString("id") ?: "" - } - result.set("success", true) - result.set("id", insertedId) - result.set("share_code", shareCode) - result.set("message", "分享创建成功") - return@w result - } - catch (e: Throwable) { - console.error("创建分享记录失败:", e, " at utils/supabaseService.uts:7396") - result.set("message", "创建分享记录异常") - return@w result - } - }) - } - private fun generateShareCode(): String { - val chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789" - var result = "" - run { - var i: Number = 0 - while(i < 8){ - val randomIndex = Math.floor(Math.random() * chars.length) - result += chars.charAt(randomIndex) - i++ - } - } - return result - } - open fun validateShareCode(shareCode: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6819, 15)) - result.set("valid", false) - result.set("share_record", null) - try { - val res = await(supaInstance.from("ml_share_records").select("*").eq("share_code", shareCode).eq("status", 0).limit(1).execute()) - if (res.error == null && res.data != null && UTSArray.isArray(res.data)) { - val arr = res.data as UTSArray - if (arr.length > 0) { - result.set("valid", true) - result.set("share_record", arr[0]) - } - } - return@w result - } - catch (e: Throwable) { - console.error("验证分享码失败:", e, " at utils/supabaseService.uts:7438") - return@w result - } - }) - } - open fun getMyShareRecords(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_share_records").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取分享记录失败:", e, " at utils/supabaseService.uts:7466") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getShareDetail(shareId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6872, 15)) - result.set("share_record", null) - result.set("secondary_purchases", _uA()) - try { - val res = await(supaInstance.from("ml_share_records").select("*").eq("id", shareId).limit(1).execute()) - if (res.error == null && res.data != null && UTSArray.isArray(res.data)) { - val arr = res.data as UTSArray - if (arr.length > 0) { - result.set("share_record", arr[0]) - } - } - val purchasesRes = await(supaInstance.from("ml_secondary_purchases").select("*").eq("share_record_id", shareId).order("created_at", OrderOptions(ascending = false)).execute()) - if (purchasesRes.error == null && purchasesRes.data != null) { - result.set("secondary_purchases", purchasesRes.data) - } - return@w result - } - catch (e: Throwable) { - console.error("获取分享详情失败:", e, " at utils/supabaseService.uts:7507") - return@w result - } - }) - } - open fun getFreeOrderRewards(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_free_order_rewards").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取免单奖励记录失败:", e, " at utils/supabaseService.uts:7535") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getMemberLevels(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val res = await(supaInstance.from("ml_member_levels").select("*").eq("is_active", true).order("level_rank", OrderOptions(ascending = true)).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取会员等级列表失败:", e, " at utils/supabaseService.uts:7560") - val empty: UTSArray = _uA() - return@w empty - } - }) - } - open fun getUserMemberInfo(): UTSPromise { - return wrapUTSPromise(suspend w@{ - val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/supabaseService.uts", 6955, 15)) - result.set("member_level", 0) - result.set("level_name", "普通会员") - result.set("discount", 1.0) - result.set("total_spent", 0) - result.set("next_level", null) - result.set("progress_percent", 0) - result.set("manual_level", false) - try { - val userId = this.getCurrentUserId() - if (userId == null) { - return@w result - } - val userRes = await(supaInstance.from("ml_user_profiles").select("tier_id, total_spent, manual_level").eq("user_id", userId!!).limit(1).execute()) - var tierId: String = "" - var totalSpent: Number = 0 - var manualLevel = false - if (userRes.error == null && userRes.data != null && UTSArray.isArray(userRes.data)) { - val arr = userRes.data as UTSArray - if (arr.length > 0) { - val item = arr[0] - val itemAny = item as Any - if (itemAny is UTSJSONObject) { - tierId = (itemAny as UTSJSONObject).getString("tier_id") ?: "" - totalSpent = (itemAny as UTSJSONObject).getNumber("total_spent") ?: 0 - manualLevel = (itemAny as UTSJSONObject).getBoolean("manual_level") ?: false - } - } - } - val levels = await(this.getMemberLevels()) - var levelName = "普通会员" - var discount: Number = 1.0 - var nextLevel: UTSJSONObject? = null - var progressPercent: Number = 0 - var currentLevelRank: Number = 0 - run { - var i: Number = 0 - while(i < levels.length){ - val level = levels[i] - val levelAny = level as Any - var levelId = "" - var levelNameStr = "" - var levelRank: Number = 0 - var levelDiscount: Number = 1.0 - if (levelAny is UTSJSONObject) { - levelId = (levelAny as UTSJSONObject).getString("id") ?: "" - levelNameStr = (levelAny as UTSJSONObject).getString("name") ?: "" - levelRank = (levelAny as UTSJSONObject).getNumber("level_rank") ?: 0 - levelDiscount = (levelAny as UTSJSONObject).getNumber("discount_rate") ?: 1.0 - } - if (levelId == tierId) { - levelName = levelNameStr - discount = levelDiscount - currentLevelRank = levelRank - } - i++ - } - } - run { - var i: Number = 0 - while(i < levels.length){ - val level = levels[i] - val levelAny = level as Any - var levelRank: Number = 0 - var levelNameStr = "" - var levelMinAmount: Number = 0 - if (levelAny is UTSJSONObject) { - levelRank = (levelAny as UTSJSONObject).getNumber("level_rank") ?: 0 - levelNameStr = (levelAny as UTSJSONObject).getString("name") ?: "" - levelMinAmount = (levelAny as UTSJSONObject).getNumber("min_amount") ?: 0 - } - if (levelRank > currentLevelRank && nextLevel == null) { - val nextLevelObj = UTSJSONObject(UTSSourceMapPosition("nextLevelObj", "utils/supabaseService.uts", 7030, 27)) - val levelObj = level as UTSJSONObject - nextLevelObj.set("id", levelObj.getString("id") ?: "") - nextLevelObj.set("name", levelNameStr) - nextLevelObj.set("min_amount", levelMinAmount) - nextLevel = nextLevelObj - } - i++ - } - } - result.set("member_level", currentLevelRank) - result.set("level_name", levelName) - result.set("discount", discount) - result.set("total_spent", totalSpent) - result.set("next_level", nextLevel) - result.set("progress_percent", progressPercent) - result.set("manual_level", manualLevel) - return@w result - } - catch (e: Throwable) { - console.error("获取用户会员信息失败:", e, " at utils/supabaseService.uts:7672") - return@w result - } - }) - } - private fun getCurrentLevelMinAmount(levels: UTSArray, currentLevel: Number): Number { - run { - var i: Number = 0 - while(i < levels.length){ - val level = levels[i] - val levelAny = level as Any - if (levelAny is UTSJSONObject) { - val levelId = (levelAny as UTSJSONObject).getNumber("id") ?: 0 - if (levelId === currentLevel) { - return (levelAny as UTSJSONObject).getNumber("min_amount") ?: 0 - } - } - i++ - } - } - return 0 - } - open fun getMemberLevelLogs(): UTSPromise> { - return wrapUTSPromise(suspend w@{ - try { - val userId = this.getCurrentUserId() - if (userId == null) { - val empty: UTSArray = _uA() - return@w empty - } - val res = await(supaInstance.from("ml_member_level_logs").select("*").eq("user_id", userId!!).order("created_at", OrderOptions(ascending = false)).execute()) - if (res.error != null || res.data == null) { - val empty: UTSArray = _uA() - return@w empty - } - return@w res.data as UTSArray - } - catch (e: Throwable) { - console.error("获取会员等级变更记录失败:", e, " at utils/supabaseService.uts:7715") - val empty: UTSArray = _uA() - return@w empty - } - }) - } -} -val supabaseService = SupabaseService() -open class ProfileType ( - @JsonNotNull - open var id: String, - open var username: String? = null, - open var email: String? = null, - open var avatar_url: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ProfileType", "pages/user/center.uvue", 82, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ProfileTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ProfileTypeReactiveObject : ProfileType, IUTSReactive { - override var __v_raw: ProfileType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ProfileType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, username = __v_raw.username, email = __v_raw.email, avatar_url = __v_raw.avatar_url) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ProfileTypeReactiveObject { - return ProfileTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var username: String? - get() { - return _tRG(__v_raw, "username", __v_raw.username, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("username")) { - return - } - val oldValue = __v_raw.username - __v_raw.username = value - _tRS(__v_raw, "username", oldValue, value) - } - override var email: String? - get() { - return _tRG(__v_raw, "email", __v_raw.email, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("email")) { - return - } - val oldValue = __v_raw.email - __v_raw.email = value - _tRS(__v_raw, "email", oldValue, value) - } - override var avatar_url: String? - get() { - return _tRG(__v_raw, "avatar_url", __v_raw.avatar_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avatar_url")) { - return - } - val oldValue = __v_raw.avatar_url - __v_raw.avatar_url = value - _tRS(__v_raw, "avatar_url", oldValue, value) - } -} -open class UserStatsType ( - @JsonNotNull - open var trainings: Number, - @JsonNotNull - open var points: Number, - @JsonNotNull - open var streak: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserStatsType", "pages/user/center.uvue", 89, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserStatsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserStatsTypeReactiveObject : UserStatsType, IUTSReactive { - override var __v_raw: UserStatsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserStatsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(trainings = __v_raw.trainings, points = __v_raw.points, streak = __v_raw.streak) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserStatsTypeReactiveObject { - return UserStatsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var trainings: Number - get() { - return _tRG(__v_raw, "trainings", __v_raw.trainings, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("trainings")) { - return - } - val oldValue = __v_raw.trainings - __v_raw.trainings = value - _tRS(__v_raw, "trainings", oldValue, value) - } - override var points: Number - get() { - return _tRG(__v_raw, "points", __v_raw.points, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("points")) { - return - } - val oldValue = __v_raw.points - __v_raw.points = value - _tRS(__v_raw, "points", oldValue, value) - } - override var streak: Number - get() { - return _tRG(__v_raw, "streak", __v_raw.streak, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("streak")) { - return - } - val oldValue = __v_raw.streak - __v_raw.streak = value - _tRS(__v_raw, "streak", oldValue, value) - } -} -val GenPagesUserCenterClass = CreateVueComponent(GenPagesUserCenter::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserCenter.inheritAttrs, inject = GenPagesUserCenter.inject, props = GenPagesUserCenter.props, propsNeedCastKeys = GenPagesUserCenter.propsNeedCastKeys, emits = GenPagesUserCenter.emits, components = GenPagesUserCenter.components, styles = GenPagesUserCenter.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserCenter.setup(props as GenPagesUserCenter) - } - ) -} -, fun(instance, renderer): GenPagesUserCenter { - return GenPagesUserCenter(instance, renderer) -} -) -val GenPagesUserProfileClass = CreateVueComponent(GenPagesUserProfile::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserProfile.inheritAttrs, inject = GenPagesUserProfile.inject, props = GenPagesUserProfile.props, propsNeedCastKeys = GenPagesUserProfile.propsNeedCastKeys, emits = GenPagesUserProfile.emits, components = GenPagesUserProfile.components, styles = GenPagesUserProfile.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserProfile.setup(props as GenPagesUserProfile) - } - ) -} -, fun(instance, renderer): GenPagesUserProfile { - return GenPagesUserProfile(instance, renderer) -} -) -val GenPagesUserChangePasswordClass = CreateVueComponent(GenPagesUserChangePassword::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserChangePassword.inheritAttrs, inject = GenPagesUserChangePassword.inject, props = GenPagesUserChangePassword.props, propsNeedCastKeys = GenPagesUserChangePassword.propsNeedCastKeys, emits = GenPagesUserChangePassword.emits, components = GenPagesUserChangePassword.components, styles = GenPagesUserChangePassword.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserChangePassword.setup(props as GenPagesUserChangePassword) - } - ) -} -, fun(instance, renderer): GenPagesUserChangePassword { - return GenPagesUserChangePassword(instance, renderer) -} -) -val GenPagesUserBindPhoneClass = CreateVueComponent(GenPagesUserBindPhone::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserBindPhone.inheritAttrs, inject = GenPagesUserBindPhone.inject, props = GenPagesUserBindPhone.props, propsNeedCastKeys = GenPagesUserBindPhone.propsNeedCastKeys, emits = GenPagesUserBindPhone.emits, components = GenPagesUserBindPhone.components, styles = GenPagesUserBindPhone.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserBindPhone.setup(props as GenPagesUserBindPhone) - } - ) -} -, fun(instance, renderer): GenPagesUserBindPhone { - return GenPagesUserBindPhone(instance, renderer) -} -) -val GenPagesUserBindEmailClass = CreateVueComponent(GenPagesUserBindEmail::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesUserBindEmail.inheritAttrs, inject = GenPagesUserBindEmail.inject, props = GenPagesUserBindEmail.props, propsNeedCastKeys = GenPagesUserBindEmail.propsNeedCastKeys, emits = GenPagesUserBindEmail.emits, components = GenPagesUserBindEmail.components, styles = GenPagesUserBindEmail.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesUserBindEmail.setup(props as GenPagesUserBindEmail) - } - ) -} -, fun(instance, renderer): GenPagesUserBindEmail { - return GenPagesUserBindEmail(instance, renderer) -} -) -open class CapsuleButtonInfo ( - @JsonNotNull - open var left: Number, - @JsonNotNull - open var top: Number, - @JsonNotNull - open var right: Number, - @JsonNotNull - open var bottom: Number, - @JsonNotNull - open var width: Number, - @JsonNotNull - open var height: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CapsuleButtonInfo", "pages/main/index.uvue", 293, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CapsuleButtonInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CapsuleButtonInfoReactiveObject : CapsuleButtonInfo, IUTSReactive { - override var __v_raw: CapsuleButtonInfo - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CapsuleButtonInfo, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(left = __v_raw.left, top = __v_raw.top, right = __v_raw.right, bottom = __v_raw.bottom, width = __v_raw.width, height = __v_raw.height) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CapsuleButtonInfoReactiveObject { - return CapsuleButtonInfoReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var left: Number - get() { - return _tRG(__v_raw, "left", __v_raw.left, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("left")) { - return - } - val oldValue = __v_raw.left - __v_raw.left = value - _tRS(__v_raw, "left", oldValue, value) - } - override var top: Number - get() { - return _tRG(__v_raw, "top", __v_raw.top, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("top")) { - return - } - val oldValue = __v_raw.top - __v_raw.top = value - _tRS(__v_raw, "top", oldValue, value) - } - override var right: Number - get() { - return _tRG(__v_raw, "right", __v_raw.right, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("right")) { - return - } - val oldValue = __v_raw.right - __v_raw.right = value - _tRS(__v_raw, "right", oldValue, value) - } - override var bottom: Number - get() { - return _tRG(__v_raw, "bottom", __v_raw.bottom, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bottom")) { - return - } - val oldValue = __v_raw.bottom - __v_raw.bottom = value - _tRS(__v_raw, "bottom", oldValue, value) - } - override var width: Number - get() { - return _tRG(__v_raw, "width", __v_raw.width, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("width")) { - return - } - val oldValue = __v_raw.width - __v_raw.width = value - _tRS(__v_raw, "width", oldValue, value) - } - override var height: Number - get() { - return _tRG(__v_raw, "height", __v_raw.height, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("height")) { - return - } - val oldValue = __v_raw.height - __v_raw.height = value - _tRS(__v_raw, "height", oldValue, value) - } -} -open class SortTab ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("SortTab", "pages/main/index.uvue", 333, 6) - } -} -val GenPagesMainIndexClass = CreateVueComponent(GenPagesMainIndex::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMainIndex.inheritAttrs, inject = GenPagesMainIndex.inject, props = GenPagesMainIndex.props, propsNeedCastKeys = GenPagesMainIndex.propsNeedCastKeys, emits = GenPagesMainIndex.emits, components = GenPagesMainIndex.components, styles = GenPagesMainIndex.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMainIndex.setup(props as GenPagesMainIndex) - } - ) -} -, fun(instance, renderer): GenPagesMainIndex { - return GenPagesMainIndex(instance, renderer) -} -) -open class LocalCategory ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var icon: String, - @JsonNotNull - open var description: String, - @JsonNotNull - open var color: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("LocalCategory", "pages/main/category.uvue", 133, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return LocalCategoryReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class LocalCategoryReactiveObject : LocalCategory, IUTSReactive { - override var __v_raw: LocalCategory - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: LocalCategory, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, icon = __v_raw.icon, description = __v_raw.description, color = __v_raw.color) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): LocalCategoryReactiveObject { - return LocalCategoryReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var icon: String - get() { - return _tRG(__v_raw, "icon", __v_raw.icon, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("icon")) { - return - } - val oldValue = __v_raw.icon - __v_raw.icon = value - _tRS(__v_raw, "icon", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var color: String - get() { - return _tRG(__v_raw, "color", __v_raw.color, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("color")) { - return - } - val oldValue = __v_raw.color - __v_raw.color = value - _tRS(__v_raw, "color", oldValue, value) - } -} -open class CapsuleButtonInfo__1 ( - @JsonNotNull - open var left: Number, - @JsonNotNull - open var top: Number, - @JsonNotNull - open var right: Number, - @JsonNotNull - open var bottom: Number, - @JsonNotNull - open var width: Number, - @JsonNotNull - open var height: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CapsuleButtonInfo", "pages/main/category.uvue", 146, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CapsuleButtonInfo__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CapsuleButtonInfo__1ReactiveObject : CapsuleButtonInfo__1, IUTSReactive { - override var __v_raw: CapsuleButtonInfo__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CapsuleButtonInfo__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(left = __v_raw.left, top = __v_raw.top, right = __v_raw.right, bottom = __v_raw.bottom, width = __v_raw.width, height = __v_raw.height) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CapsuleButtonInfo__1ReactiveObject { - return CapsuleButtonInfo__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var left: Number - get() { - return _tRG(__v_raw, "left", __v_raw.left, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("left")) { - return - } - val oldValue = __v_raw.left - __v_raw.left = value - _tRS(__v_raw, "left", oldValue, value) - } - override var top: Number - get() { - return _tRG(__v_raw, "top", __v_raw.top, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("top")) { - return - } - val oldValue = __v_raw.top - __v_raw.top = value - _tRS(__v_raw, "top", oldValue, value) - } - override var right: Number - get() { - return _tRG(__v_raw, "right", __v_raw.right, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("right")) { - return - } - val oldValue = __v_raw.right - __v_raw.right = value - _tRS(__v_raw, "right", oldValue, value) - } - override var bottom: Number - get() { - return _tRG(__v_raw, "bottom", __v_raw.bottom, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bottom")) { - return - } - val oldValue = __v_raw.bottom - __v_raw.bottom = value - _tRS(__v_raw, "bottom", oldValue, value) - } - override var width: Number - get() { - return _tRG(__v_raw, "width", __v_raw.width, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("width")) { - return - } - val oldValue = __v_raw.width - __v_raw.width = value - _tRS(__v_raw, "width", oldValue, value) - } - override var height: Number - get() { - return _tRG(__v_raw, "height", __v_raw.height, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("height")) { - return - } - val oldValue = __v_raw.height - __v_raw.height = value - _tRS(__v_raw, "height", oldValue, value) - } -} -val GenPagesMainCategoryClass = CreateVueComponent(GenPagesMainCategory::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMainCategory.inheritAttrs, inject = GenPagesMainCategory.inject, props = GenPagesMainCategory.props, propsNeedCastKeys = GenPagesMainCategory.propsNeedCastKeys, emits = GenPagesMainCategory.emits, components = GenPagesMainCategory.components, styles = GenPagesMainCategory.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMainCategory.setup(props as GenPagesMainCategory) - } - ) -} -, fun(instance, renderer): GenPagesMainCategory { - return GenPagesMainCategory(instance, renderer) -} -) -open class MessageItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var title: String, - @JsonNotNull - open var content: String, - @JsonNotNull - open var time: String, - @JsonNotNull - open var read: Boolean = false, - @JsonNotNull - open var type: String, - open var avatar: String? = null, - @JsonNotNull - open var important: Boolean = false, - @JsonNotNull - open var coupon: String, - @JsonNotNull - open var expiry: String, - @JsonNotNull - open var claimed: Boolean = false, - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var status: String, - @JsonNotNull - open var statusText: String, - @JsonNotNull - open var role: String, - @JsonNotNull - open var lastMessage: String, - @JsonNotNull - open var online: Boolean = false, - @JsonNotNull - open var unreadCount: Number, - @JsonNotNull - open var tags: UTSArray, - @JsonNotNull - open var icon: String, - @JsonNotNull - open var color: String, - @JsonNotNull - open var active: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MessageItem", "pages/main/messages.uvue", 226, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return MessageItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class MessageItemReactiveObject : MessageItem, IUTSReactive { - override var __v_raw: MessageItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: MessageItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, title = __v_raw.title, content = __v_raw.content, time = __v_raw.time, read = __v_raw.read, type = __v_raw.type, avatar = __v_raw.avatar, important = __v_raw.important, coupon = __v_raw.coupon, expiry = __v_raw.expiry, claimed = __v_raw.claimed, order_no = __v_raw.order_no, status = __v_raw.status, statusText = __v_raw.statusText, role = __v_raw.role, lastMessage = __v_raw.lastMessage, online = __v_raw.online, unreadCount = __v_raw.unreadCount, tags = __v_raw.tags, icon = __v_raw.icon, color = __v_raw.color, active = __v_raw.active) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): MessageItemReactiveObject { - return MessageItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var title: String - get() { - return _tRG(__v_raw, "title", __v_raw.title, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("title")) { - return - } - val oldValue = __v_raw.title - __v_raw.title = value - _tRS(__v_raw, "title", oldValue, value) - } - override var content: String - get() { - return _tRG(__v_raw, "content", __v_raw.content, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("content")) { - return - } - val oldValue = __v_raw.content - __v_raw.content = value - _tRS(__v_raw, "content", oldValue, value) - } - override var time: String - get() { - return _tRG(__v_raw, "time", __v_raw.time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("time")) { - return - } - val oldValue = __v_raw.time - __v_raw.time = value - _tRS(__v_raw, "time", oldValue, value) - } - override var read: Boolean - get() { - return _tRG(__v_raw, "read", __v_raw.read, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("read")) { - return - } - val oldValue = __v_raw.read - __v_raw.read = value - _tRS(__v_raw, "read", oldValue, value) - } - override var type: String - get() { - return _tRG(__v_raw, "type", __v_raw.type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("type")) { - return - } - val oldValue = __v_raw.type - __v_raw.type = value - _tRS(__v_raw, "type", oldValue, value) - } - override var avatar: String? - get() { - return _tRG(__v_raw, "avatar", __v_raw.avatar, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avatar")) { - return - } - val oldValue = __v_raw.avatar - __v_raw.avatar = value - _tRS(__v_raw, "avatar", oldValue, value) - } - override var important: Boolean - get() { - return _tRG(__v_raw, "important", __v_raw.important, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("important")) { - return - } - val oldValue = __v_raw.important - __v_raw.important = value - _tRS(__v_raw, "important", oldValue, value) - } - override var coupon: String - get() { - return _tRG(__v_raw, "coupon", __v_raw.coupon, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("coupon")) { - return - } - val oldValue = __v_raw.coupon - __v_raw.coupon = value - _tRS(__v_raw, "coupon", oldValue, value) - } - override var expiry: String - get() { - return _tRG(__v_raw, "expiry", __v_raw.expiry, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expiry")) { - return - } - val oldValue = __v_raw.expiry - __v_raw.expiry = value - _tRS(__v_raw, "expiry", oldValue, value) - } - override var claimed: Boolean - get() { - return _tRG(__v_raw, "claimed", __v_raw.claimed, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("claimed")) { - return - } - val oldValue = __v_raw.claimed - __v_raw.claimed = value - _tRS(__v_raw, "claimed", oldValue, value) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var status: String - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var statusText: String - get() { - return _tRG(__v_raw, "statusText", __v_raw.statusText, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("statusText")) { - return - } - val oldValue = __v_raw.statusText - __v_raw.statusText = value - _tRS(__v_raw, "statusText", oldValue, value) - } - override var role: String - get() { - return _tRG(__v_raw, "role", __v_raw.role, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("role")) { - return - } - val oldValue = __v_raw.role - __v_raw.role = value - _tRS(__v_raw, "role", oldValue, value) - } - override var lastMessage: String - get() { - return _tRG(__v_raw, "lastMessage", __v_raw.lastMessage, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("lastMessage")) { - return - } - val oldValue = __v_raw.lastMessage - __v_raw.lastMessage = value - _tRS(__v_raw, "lastMessage", oldValue, value) - } - override var online: Boolean - get() { - return _tRG(__v_raw, "online", __v_raw.online, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("online")) { - return - } - val oldValue = __v_raw.online - __v_raw.online = value - _tRS(__v_raw, "online", oldValue, value) - } - override var unreadCount: Number - get() { - return _tRG(__v_raw, "unreadCount", __v_raw.unreadCount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("unreadCount")) { - return - } - val oldValue = __v_raw.unreadCount - __v_raw.unreadCount = value - _tRS(__v_raw, "unreadCount", oldValue, value) - } - override var tags: UTSArray - get() { - return _tRG(__v_raw, "tags", __v_raw.tags, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("tags")) { - return - } - val oldValue = __v_raw.tags - __v_raw.tags = value - _tRS(__v_raw, "tags", oldValue, value) - } - override var icon: String - get() { - return _tRG(__v_raw, "icon", __v_raw.icon, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("icon")) { - return - } - val oldValue = __v_raw.icon - __v_raw.icon = value - _tRS(__v_raw, "icon", oldValue, value) - } - override var color: String - get() { - return _tRG(__v_raw, "color", __v_raw.color, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("color")) { - return - } - val oldValue = __v_raw.color - __v_raw.color = value - _tRS(__v_raw, "color", oldValue, value) - } - override var active: Boolean - get() { - return _tRG(__v_raw, "active", __v_raw.active, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("active")) { - return - } - val oldValue = __v_raw.active - __v_raw.active = value - _tRS(__v_raw, "active", oldValue, value) - } -} -open class MessageTab ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var unread: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MessageTab", "pages/main/messages.uvue", 252, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return MessageTabReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class MessageTabReactiveObject : MessageTab, IUTSReactive { - override var __v_raw: MessageTab - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: MessageTab, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, unread = __v_raw.unread) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): MessageTabReactiveObject { - return MessageTabReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var unread: Number - get() { - return _tRG(__v_raw, "unread", __v_raw.unread, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("unread")) { - return - } - val oldValue = __v_raw.unread - __v_raw.unread = value - _tRS(__v_raw, "unread", oldValue, value) - } -} -open class CapsuleButtonInfo__2 ( - @JsonNotNull - open var left: Number, - @JsonNotNull - open var top: Number, - @JsonNotNull - open var right: Number, - @JsonNotNull - open var bottom: Number, - @JsonNotNull - open var width: Number, - @JsonNotNull - open var height: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CapsuleButtonInfo", "pages/main/messages.uvue", 269, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CapsuleButtonInfo__2ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CapsuleButtonInfo__2ReactiveObject : CapsuleButtonInfo__2, IUTSReactive { - override var __v_raw: CapsuleButtonInfo__2 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CapsuleButtonInfo__2, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(left = __v_raw.left, top = __v_raw.top, right = __v_raw.right, bottom = __v_raw.bottom, width = __v_raw.width, height = __v_raw.height) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CapsuleButtonInfo__2ReactiveObject { - return CapsuleButtonInfo__2ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var left: Number - get() { - return _tRG(__v_raw, "left", __v_raw.left, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("left")) { - return - } - val oldValue = __v_raw.left - __v_raw.left = value - _tRS(__v_raw, "left", oldValue, value) - } - override var top: Number - get() { - return _tRG(__v_raw, "top", __v_raw.top, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("top")) { - return - } - val oldValue = __v_raw.top - __v_raw.top = value - _tRS(__v_raw, "top", oldValue, value) - } - override var right: Number - get() { - return _tRG(__v_raw, "right", __v_raw.right, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("right")) { - return - } - val oldValue = __v_raw.right - __v_raw.right = value - _tRS(__v_raw, "right", oldValue, value) - } - override var bottom: Number - get() { - return _tRG(__v_raw, "bottom", __v_raw.bottom, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bottom")) { - return - } - val oldValue = __v_raw.bottom - __v_raw.bottom = value - _tRS(__v_raw, "bottom", oldValue, value) - } - override var width: Number - get() { - return _tRG(__v_raw, "width", __v_raw.width, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("width")) { - return - } - val oldValue = __v_raw.width - __v_raw.width = value - _tRS(__v_raw, "width", oldValue, value) - } - override var height: Number - get() { - return _tRG(__v_raw, "height", __v_raw.height, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("height")) { - return - } - val oldValue = __v_raw.height - __v_raw.height = value - _tRS(__v_raw, "height", oldValue, value) - } -} -val GenPagesMainMessagesClass = CreateVueComponent(GenPagesMainMessages::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMainMessages.inheritAttrs, inject = GenPagesMainMessages.inject, props = GenPagesMainMessages.props, propsNeedCastKeys = GenPagesMainMessages.propsNeedCastKeys, emits = GenPagesMainMessages.emits, components = GenPagesMainMessages.components, styles = GenPagesMainMessages.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMainMessages.setup(props as GenPagesMainMessages) - } - ) -} -, fun(instance, renderer): GenPagesMainMessages { - return GenPagesMainMessages(instance, renderer) -} -) -open class LocalCartItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var originalPrice: Number, - @JsonNotNull - open var memberPrice: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var spec: String, - @JsonNotNull - open var quantity: Number, - @JsonNotNull - open var selected: Boolean = false, - @JsonNotNull - open var productId: String, - @JsonNotNull - open var skuId: String, - @JsonNotNull - open var merchantId: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("LocalCartItem", "pages/main/cart.uvue", 188, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return LocalCartItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class LocalCartItemReactiveObject : LocalCartItem, IUTSReactive { - override var __v_raw: LocalCartItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: LocalCartItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, shopId = __v_raw.shopId, shopName = __v_raw.shopName, name = __v_raw.name, price = __v_raw.price, originalPrice = __v_raw.originalPrice, memberPrice = __v_raw.memberPrice, image = __v_raw.image, spec = __v_raw.spec, quantity = __v_raw.quantity, selected = __v_raw.selected, productId = __v_raw.productId, skuId = __v_raw.skuId, merchantId = __v_raw.merchantId) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): LocalCartItemReactiveObject { - return LocalCartItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var shopId: String - get() { - return _tRG(__v_raw, "shopId", __v_raw.shopId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopId")) { - return - } - val oldValue = __v_raw.shopId - __v_raw.shopId = value - _tRS(__v_raw, "shopId", oldValue, value) - } - override var shopName: String - get() { - return _tRG(__v_raw, "shopName", __v_raw.shopName, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopName")) { - return - } - val oldValue = __v_raw.shopName - __v_raw.shopName = value - _tRS(__v_raw, "shopName", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var originalPrice: Number - get() { - return _tRG(__v_raw, "originalPrice", __v_raw.originalPrice, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("originalPrice")) { - return - } - val oldValue = __v_raw.originalPrice - __v_raw.originalPrice = value - _tRS(__v_raw, "originalPrice", oldValue, value) - } - override var memberPrice: Number - get() { - return _tRG(__v_raw, "memberPrice", __v_raw.memberPrice, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("memberPrice")) { - return - } - val oldValue = __v_raw.memberPrice - __v_raw.memberPrice = value - _tRS(__v_raw, "memberPrice", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var spec: String - get() { - return _tRG(__v_raw, "spec", __v_raw.spec, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("spec")) { - return - } - val oldValue = __v_raw.spec - __v_raw.spec = value - _tRS(__v_raw, "spec", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } - override var selected: Boolean - get() { - return _tRG(__v_raw, "selected", __v_raw.selected, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("selected")) { - return - } - val oldValue = __v_raw.selected - __v_raw.selected = value - _tRS(__v_raw, "selected", oldValue, value) - } - override var productId: String - get() { - return _tRG(__v_raw, "productId", __v_raw.productId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("productId")) { - return - } - val oldValue = __v_raw.productId - __v_raw.productId = value - _tRS(__v_raw, "productId", oldValue, value) - } - override var skuId: String - get() { - return _tRG(__v_raw, "skuId", __v_raw.skuId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("skuId")) { - return - } - val oldValue = __v_raw.skuId - __v_raw.skuId = value - _tRS(__v_raw, "skuId", oldValue, value) - } - override var merchantId: String - get() { - return _tRG(__v_raw, "merchantId", __v_raw.merchantId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchantId")) { - return - } - val oldValue = __v_raw.merchantId - __v_raw.merchantId = value - _tRS(__v_raw, "merchantId", oldValue, value) - } -} -open class CartGroup ( - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var merchantId: String, - @JsonNotNull - open var items: UTSArray, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CartGroup", "pages/main/cart.uvue", 205, 6) - } -} -open class RecommendProduct ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var skuId: String, - @JsonNotNull - open var merchant_id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RecommendProduct", "pages/main/cart.uvue", 230, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RecommendProductReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RecommendProductReactiveObject : RecommendProduct, IUTSReactive { - override var __v_raw: RecommendProduct - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RecommendProduct, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, shopId = __v_raw.shopId, shopName = __v_raw.shopName, name = __v_raw.name, price = __v_raw.price, image = __v_raw.image, skuId = __v_raw.skuId, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RecommendProductReactiveObject { - return RecommendProductReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var shopId: String - get() { - return _tRG(__v_raw, "shopId", __v_raw.shopId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopId")) { - return - } - val oldValue = __v_raw.shopId - __v_raw.shopId = value - _tRS(__v_raw, "shopId", oldValue, value) - } - override var shopName: String - get() { - return _tRG(__v_raw, "shopName", __v_raw.shopName, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopName")) { - return - } - val oldValue = __v_raw.shopName - __v_raw.shopName = value - _tRS(__v_raw, "shopName", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var skuId: String - get() { - return _tRG(__v_raw, "skuId", __v_raw.skuId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("skuId")) { - return - } - val oldValue = __v_raw.skuId - __v_raw.skuId = value - _tRS(__v_raw, "skuId", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class CapsuleButtonInfo__3 ( - @JsonNotNull - open var left: Number, - @JsonNotNull - open var top: Number, - @JsonNotNull - open var right: Number, - @JsonNotNull - open var bottom: Number, - @JsonNotNull - open var width: Number, - @JsonNotNull - open var height: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CapsuleButtonInfo", "pages/main/cart.uvue", 251, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CapsuleButtonInfo__3ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CapsuleButtonInfo__3ReactiveObject : CapsuleButtonInfo__3, IUTSReactive { - override var __v_raw: CapsuleButtonInfo__3 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CapsuleButtonInfo__3, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(left = __v_raw.left, top = __v_raw.top, right = __v_raw.right, bottom = __v_raw.bottom, width = __v_raw.width, height = __v_raw.height) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CapsuleButtonInfo__3ReactiveObject { - return CapsuleButtonInfo__3ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var left: Number - get() { - return _tRG(__v_raw, "left", __v_raw.left, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("left")) { - return - } - val oldValue = __v_raw.left - __v_raw.left = value - _tRS(__v_raw, "left", oldValue, value) - } - override var top: Number - get() { - return _tRG(__v_raw, "top", __v_raw.top, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("top")) { - return - } - val oldValue = __v_raw.top - __v_raw.top = value - _tRS(__v_raw, "top", oldValue, value) - } - override var right: Number - get() { - return _tRG(__v_raw, "right", __v_raw.right, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("right")) { - return - } - val oldValue = __v_raw.right - __v_raw.right = value - _tRS(__v_raw, "right", oldValue, value) - } - override var bottom: Number - get() { - return _tRG(__v_raw, "bottom", __v_raw.bottom, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bottom")) { - return - } - val oldValue = __v_raw.bottom - __v_raw.bottom = value - _tRS(__v_raw, "bottom", oldValue, value) - } - override var width: Number - get() { - return _tRG(__v_raw, "width", __v_raw.width, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("width")) { - return - } - val oldValue = __v_raw.width - __v_raw.width = value - _tRS(__v_raw, "width", oldValue, value) - } - override var height: Number - get() { - return _tRG(__v_raw, "height", __v_raw.height, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("height")) { - return - } - val oldValue = __v_raw.height - __v_raw.height = value - _tRS(__v_raw, "height", oldValue, value) - } -} -val GenPagesMainCartClass = CreateVueComponent(GenPagesMainCart::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMainCart.inheritAttrs, inject = GenPagesMainCart.inject, props = GenPagesMainCart.props, propsNeedCastKeys = GenPagesMainCart.propsNeedCastKeys, emits = GenPagesMainCart.emits, components = GenPagesMainCart.components, styles = GenPagesMainCart.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMainCart.setup(props as GenPagesMainCart) - } - ) -} -, fun(instance, renderer): GenPagesMainCart { - return GenPagesMainCart(instance, renderer) -} -) -open class UserStatsType__1 ( - @JsonNotNull - open var points: Number, - @JsonNotNull - open var balance: Number, - @JsonNotNull - open var level: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserStatsType", "pages/main/profile.uvue", 294, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserStatsType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserStatsType__1ReactiveObject : UserStatsType__1, IUTSReactive { - override var __v_raw: UserStatsType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserStatsType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(points = __v_raw.points, balance = __v_raw.balance, level = __v_raw.level) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserStatsType__1ReactiveObject { - return UserStatsType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var points: Number - get() { - return _tRG(__v_raw, "points", __v_raw.points, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("points")) { - return - } - val oldValue = __v_raw.points - __v_raw.points = value - _tRS(__v_raw, "points", oldValue, value) - } - override var balance: Number - get() { - return _tRG(__v_raw, "balance", __v_raw.balance, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("balance")) { - return - } - val oldValue = __v_raw.balance - __v_raw.balance = value - _tRS(__v_raw, "balance", oldValue, value) - } - override var level: Number - get() { - return _tRG(__v_raw, "level", __v_raw.level, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("level")) { - return - } - val oldValue = __v_raw.level - __v_raw.level = value - _tRS(__v_raw, "level", oldValue, value) - } -} -open class OrderCountsType ( - @JsonNotNull - open var total: Number, - @JsonNotNull - open var pending: Number, - @JsonNotNull - open var toship: Number, - @JsonNotNull - open var shipped: Number, - @JsonNotNull - open var review: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderCountsType", "pages/main/profile.uvue", 300, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderCountsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderCountsTypeReactiveObject : OrderCountsType, IUTSReactive { - override var __v_raw: OrderCountsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderCountsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(total = __v_raw.total, pending = __v_raw.pending, toship = __v_raw.toship, shipped = __v_raw.shipped, review = __v_raw.review) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderCountsTypeReactiveObject { - return OrderCountsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var total: Number - get() { - return _tRG(__v_raw, "total", __v_raw.total, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total")) { - return - } - val oldValue = __v_raw.total - __v_raw.total = value - _tRS(__v_raw, "total", oldValue, value) - } - override var pending: Number - get() { - return _tRG(__v_raw, "pending", __v_raw.pending, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("pending")) { - return - } - val oldValue = __v_raw.pending - __v_raw.pending = value - _tRS(__v_raw, "pending", oldValue, value) - } - override var toship: Number - get() { - return _tRG(__v_raw, "toship", __v_raw.toship, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("toship")) { - return - } - val oldValue = __v_raw.toship - __v_raw.toship = value - _tRS(__v_raw, "toship", oldValue, value) - } - override var shipped: Number - get() { - return _tRG(__v_raw, "shipped", __v_raw.shipped, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shipped")) { - return - } - val oldValue = __v_raw.shipped - __v_raw.shipped = value - _tRS(__v_raw, "shipped", oldValue, value) - } - override var review: Number - get() { - return _tRG(__v_raw, "review", __v_raw.review, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("review")) { - return - } - val oldValue = __v_raw.review - __v_raw.review = value - _tRS(__v_raw, "review", oldValue, value) - } -} -open class ServiceCountsType ( - @JsonNotNull - open var coupons: Number, - @JsonNotNull - open var favorites: Number, - @JsonNotNull - open var unreadMessages: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ServiceCountsType", "pages/main/profile.uvue", 308, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ServiceCountsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ServiceCountsTypeReactiveObject : ServiceCountsType, IUTSReactive { - override var __v_raw: ServiceCountsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ServiceCountsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(coupons = __v_raw.coupons, favorites = __v_raw.favorites, unreadMessages = __v_raw.unreadMessages) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ServiceCountsTypeReactiveObject { - return ServiceCountsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var coupons: Number - get() { - return _tRG(__v_raw, "coupons", __v_raw.coupons, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("coupons")) { - return - } - val oldValue = __v_raw.coupons - __v_raw.coupons = value - _tRS(__v_raw, "coupons", oldValue, value) - } - override var favorites: Number - get() { - return _tRG(__v_raw, "favorites", __v_raw.favorites, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("favorites")) { - return - } - val oldValue = __v_raw.favorites - __v_raw.favorites = value - _tRS(__v_raw, "favorites", oldValue, value) - } - override var unreadMessages: Number - get() { - return _tRG(__v_raw, "unreadMessages", __v_raw.unreadMessages, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("unreadMessages")) { - return - } - val oldValue = __v_raw.unreadMessages - __v_raw.unreadMessages = value - _tRS(__v_raw, "unreadMessages", oldValue, value) - } -} -open class ConsumptionStatsType ( - @JsonNotNull - open var total_amount: Number, - @JsonNotNull - open var order_count: Number, - @JsonNotNull - open var avg_amount: Number, - @JsonNotNull - open var save_amount: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ConsumptionStatsType", "pages/main/profile.uvue", 314, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ConsumptionStatsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ConsumptionStatsTypeReactiveObject : ConsumptionStatsType, IUTSReactive { - override var __v_raw: ConsumptionStatsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ConsumptionStatsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(total_amount = __v_raw.total_amount, order_count = __v_raw.order_count, avg_amount = __v_raw.avg_amount, save_amount = __v_raw.save_amount) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ConsumptionStatsTypeReactiveObject { - return ConsumptionStatsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var total_amount: Number - get() { - return _tRG(__v_raw, "total_amount", __v_raw.total_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_amount")) { - return - } - val oldValue = __v_raw.total_amount - __v_raw.total_amount = value - _tRS(__v_raw, "total_amount", oldValue, value) - } - override var order_count: Number - get() { - return _tRG(__v_raw, "order_count", __v_raw.order_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_count")) { - return - } - val oldValue = __v_raw.order_count - __v_raw.order_count = value - _tRS(__v_raw, "order_count", oldValue, value) - } - override var avg_amount: Number - get() { - return _tRG(__v_raw, "avg_amount", __v_raw.avg_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avg_amount")) { - return - } - val oldValue = __v_raw.avg_amount - __v_raw.avg_amount = value - _tRS(__v_raw, "avg_amount", oldValue, value) - } - override var save_amount: Number - get() { - return _tRG(__v_raw, "save_amount", __v_raw.save_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("save_amount")) { - return - } - val oldValue = __v_raw.save_amount - __v_raw.save_amount = value - _tRS(__v_raw, "save_amount", oldValue, value) - } -} -open class StatsPeriodType ( - @JsonNotNull - open var key: String, - @JsonNotNull - open var label: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("StatsPeriodType", "pages/main/profile.uvue", 321, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return StatsPeriodTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class StatsPeriodTypeReactiveObject : StatsPeriodType, IUTSReactive { - override var __v_raw: StatsPeriodType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: StatsPeriodType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(key = __v_raw.key, label = __v_raw.label) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): StatsPeriodTypeReactiveObject { - return StatsPeriodTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var key: String - get() { - return _tRG(__v_raw, "key", __v_raw.key, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("key")) { - return - } - val oldValue = __v_raw.key - __v_raw.key = value - _tRS(__v_raw, "key", oldValue, value) - } - override var label: String - get() { - return _tRG(__v_raw, "label", __v_raw.label, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("label")) { - return - } - val oldValue = __v_raw.label - __v_raw.label = value - _tRS(__v_raw, "label", oldValue, value) - } -} -open class OrderItemType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var actual_amount: Number, - @JsonNotNull - open var created_at: String, - open var ml_order_items: Any? = null, - open var ml_shops: Any? = null, - @JsonNotNull - open var items_count: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderItemType", "pages/main/profile.uvue", 326, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderItemTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderItemTypeReactiveObject : OrderItemType, IUTSReactive { - override var __v_raw: OrderItemType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderItemType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, order_no = __v_raw.order_no, status = __v_raw.status, actual_amount = __v_raw.actual_amount, created_at = __v_raw.created_at, ml_order_items = __v_raw.ml_order_items, ml_shops = __v_raw.ml_shops, items_count = __v_raw.items_count) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderItemTypeReactiveObject { - return OrderItemTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var actual_amount: Number - get() { - return _tRG(__v_raw, "actual_amount", __v_raw.actual_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("actual_amount")) { - return - } - val oldValue = __v_raw.actual_amount - __v_raw.actual_amount = value - _tRS(__v_raw, "actual_amount", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var ml_order_items: Any? - get() { - return _tRG(__v_raw, "ml_order_items", __v_raw.ml_order_items, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("ml_order_items")) { - return - } - val oldValue = __v_raw.ml_order_items - __v_raw.ml_order_items = value - _tRS(__v_raw, "ml_order_items", oldValue, value) - } - override var ml_shops: Any? - get() { - return _tRG(__v_raw, "ml_shops", __v_raw.ml_shops, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("ml_shops")) { - return - } - val oldValue = __v_raw.ml_shops - __v_raw.ml_shops = value - _tRS(__v_raw, "ml_shops", oldValue, value) - } - override var items_count: Number - get() { - return _tRG(__v_raw, "items_count", __v_raw.items_count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("items_count")) { - return - } - val oldValue = __v_raw.items_count - __v_raw.items_count = value - _tRS(__v_raw, "items_count", oldValue, value) - } -} -val GenPagesMainProfileClass = CreateVueComponent(GenPagesMainProfile::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMainProfile.inheritAttrs, inject = GenPagesMainProfile.inject, props = GenPagesMainProfile.props, propsNeedCastKeys = GenPagesMainProfile.propsNeedCastKeys, emits = GenPagesMainProfile.emits, components = GenPagesMainProfile.components, styles = GenPagesMainProfile.styles) -} -, fun(instance, renderer): GenPagesMainProfile { - return GenPagesMainProfile(instance, renderer) -} -) -open class UserType__1 ( - @JsonNotNull - open var id: String, - open var phone: String? = null, - open var email: String? = null, - open var nickname: String? = null, - open var avatar_url: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserType", "pages/mall/consumer/settings.uvue", 221, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserType__1ReactiveObject : UserType__1, IUTSReactive { - override var __v_raw: UserType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, phone = __v_raw.phone, email = __v_raw.email, nickname = __v_raw.nickname, avatar_url = __v_raw.avatar_url) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserType__1ReactiveObject { - return UserType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var phone: String? - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var email: String? - get() { - return _tRG(__v_raw, "email", __v_raw.email, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("email")) { - return - } - val oldValue = __v_raw.email - __v_raw.email = value - _tRS(__v_raw, "email", oldValue, value) - } - override var nickname: String? - get() { - return _tRG(__v_raw, "nickname", __v_raw.nickname, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("nickname")) { - return - } - val oldValue = __v_raw.nickname - __v_raw.nickname = value - _tRS(__v_raw, "nickname", oldValue, value) - } - override var avatar_url: String? - get() { - return _tRG(__v_raw, "avatar_url", __v_raw.avatar_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("avatar_url")) { - return - } - val oldValue = __v_raw.avatar_url - __v_raw.avatar_url = value - _tRS(__v_raw, "avatar_url", oldValue, value) - } -} -open class NotificationType ( - @JsonNotNull - open var order: Boolean = false, - @JsonNotNull - open var promotion: Boolean = false, - @JsonNotNull - open var review: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("NotificationType", "pages/mall/consumer/settings.uvue", 229, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return NotificationTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class NotificationTypeReactiveObject : NotificationType, IUTSReactive { - override var __v_raw: NotificationType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: NotificationType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(order = __v_raw.order, promotion = __v_raw.promotion, review = __v_raw.review) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): NotificationTypeReactiveObject { - return NotificationTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var order: Boolean - get() { - return _tRG(__v_raw, "order", __v_raw.order, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order")) { - return - } - val oldValue = __v_raw.order - __v_raw.order = value - _tRS(__v_raw, "order", oldValue, value) - } - override var promotion: Boolean - get() { - return _tRG(__v_raw, "promotion", __v_raw.promotion, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("promotion")) { - return - } - val oldValue = __v_raw.promotion - __v_raw.promotion = value - _tRS(__v_raw, "promotion", oldValue, value) - } - override var review: Boolean - get() { - return _tRG(__v_raw, "review", __v_raw.review, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("review")) { - return - } - val oldValue = __v_raw.review - __v_raw.review = value - _tRS(__v_raw, "review", oldValue, value) - } -} -open class PrivacyType ( - @JsonNotNull - open var hidePurchase: Boolean = false, - @JsonNotNull - open var allowSearchByPhone: Boolean = false, - @JsonNotNull - open var receiveMerchantMsg: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("PrivacyType", "pages/mall/consumer/settings.uvue", 235, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return PrivacyTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class PrivacyTypeReactiveObject : PrivacyType, IUTSReactive { - override var __v_raw: PrivacyType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: PrivacyType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(hidePurchase = __v_raw.hidePurchase, allowSearchByPhone = __v_raw.allowSearchByPhone, receiveMerchantMsg = __v_raw.receiveMerchantMsg) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): PrivacyTypeReactiveObject { - return PrivacyTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var hidePurchase: Boolean - get() { - return _tRG(__v_raw, "hidePurchase", __v_raw.hidePurchase, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("hidePurchase")) { - return - } - val oldValue = __v_raw.hidePurchase - __v_raw.hidePurchase = value - _tRS(__v_raw, "hidePurchase", oldValue, value) - } - override var allowSearchByPhone: Boolean - get() { - return _tRG(__v_raw, "allowSearchByPhone", __v_raw.allowSearchByPhone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("allowSearchByPhone")) { - return - } - val oldValue = __v_raw.allowSearchByPhone - __v_raw.allowSearchByPhone = value - _tRS(__v_raw, "allowSearchByPhone", oldValue, value) - } - override var receiveMerchantMsg: Boolean - get() { - return _tRG(__v_raw, "receiveMerchantMsg", __v_raw.receiveMerchantMsg, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("receiveMerchantMsg")) { - return - } - val oldValue = __v_raw.receiveMerchantMsg - __v_raw.receiveMerchantMsg = value - _tRS(__v_raw, "receiveMerchantMsg", oldValue, value) - } -} -val GenPagesMallConsumerSettingsClass = CreateVueComponent(GenPagesMallConsumerSettings::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerSettings.inheritAttrs, inject = GenPagesMallConsumerSettings.inject, props = GenPagesMallConsumerSettings.props, propsNeedCastKeys = GenPagesMallConsumerSettings.propsNeedCastKeys, emits = GenPagesMallConsumerSettings.emits, components = GenPagesMallConsumerSettings.components, styles = GenPagesMallConsumerSettings.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerSettings.setup(props as GenPagesMallConsumerSettings) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerSettings { - return GenPagesMallConsumerSettings(instance, renderer) -} -) -open class TransactionType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var change_amount: Number, - @JsonNotNull - open var amount: Number, - @JsonNotNull - open var current_balance: Number, - @JsonNotNull - open var change_type: String, - @JsonNotNull - open var type: String, - open var related_id: String? = null, - open var remark: String? = null, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("TransactionType", "pages/mall/consumer/wallet.uvue", 184, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return TransactionTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class TransactionTypeReactiveObject : TransactionType, IUTSReactive { - override var __v_raw: TransactionType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: TransactionType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, change_amount = __v_raw.change_amount, amount = __v_raw.amount, current_balance = __v_raw.current_balance, change_type = __v_raw.change_type, type = __v_raw.type, related_id = __v_raw.related_id, remark = __v_raw.remark, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): TransactionTypeReactiveObject { - return TransactionTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var change_amount: Number - get() { - return _tRG(__v_raw, "change_amount", __v_raw.change_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("change_amount")) { - return - } - val oldValue = __v_raw.change_amount - __v_raw.change_amount = value - _tRS(__v_raw, "change_amount", oldValue, value) - } - override var amount: Number - get() { - return _tRG(__v_raw, "amount", __v_raw.amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("amount")) { - return - } - val oldValue = __v_raw.amount - __v_raw.amount = value - _tRS(__v_raw, "amount", oldValue, value) - } - override var current_balance: Number - get() { - return _tRG(__v_raw, "current_balance", __v_raw.current_balance, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("current_balance")) { - return - } - val oldValue = __v_raw.current_balance - __v_raw.current_balance = value - _tRS(__v_raw, "current_balance", oldValue, value) - } - override var change_type: String - get() { - return _tRG(__v_raw, "change_type", __v_raw.change_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("change_type")) { - return - } - val oldValue = __v_raw.change_type - __v_raw.change_type = value - _tRS(__v_raw, "change_type", oldValue, value) - } - override var type: String - get() { - return _tRG(__v_raw, "type", __v_raw.type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("type")) { - return - } - val oldValue = __v_raw.type - __v_raw.type = value - _tRS(__v_raw, "type", oldValue, value) - } - override var related_id: String? - get() { - return _tRG(__v_raw, "related_id", __v_raw.related_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("related_id")) { - return - } - val oldValue = __v_raw.related_id - __v_raw.related_id = value - _tRS(__v_raw, "related_id", oldValue, value) - } - override var remark: String? - get() { - return _tRG(__v_raw, "remark", __v_raw.remark, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("remark")) { - return - } - val oldValue = __v_raw.remark - __v_raw.remark = value - _tRS(__v_raw, "remark", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class StatsType ( - @JsonNotNull - open var totalRecharge: Number, - @JsonNotNull - open var totalConsume: Number, - @JsonNotNull - open var totalWithdraw: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("StatsType", "pages/mall/consumer/wallet.uvue", 197, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return StatsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class StatsTypeReactiveObject : StatsType, IUTSReactive { - override var __v_raw: StatsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: StatsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(totalRecharge = __v_raw.totalRecharge, totalConsume = __v_raw.totalConsume, totalWithdraw = __v_raw.totalWithdraw) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): StatsTypeReactiveObject { - return StatsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var totalRecharge: Number - get() { - return _tRG(__v_raw, "totalRecharge", __v_raw.totalRecharge, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("totalRecharge")) { - return - } - val oldValue = __v_raw.totalRecharge - __v_raw.totalRecharge = value - _tRS(__v_raw, "totalRecharge", oldValue, value) - } - override var totalConsume: Number - get() { - return _tRG(__v_raw, "totalConsume", __v_raw.totalConsume, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("totalConsume")) { - return - } - val oldValue = __v_raw.totalConsume - __v_raw.totalConsume = value - _tRS(__v_raw, "totalConsume", oldValue, value) - } - override var totalWithdraw: Number - get() { - return _tRG(__v_raw, "totalWithdraw", __v_raw.totalWithdraw, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("totalWithdraw")) { - return - } - val oldValue = __v_raw.totalWithdraw - __v_raw.totalWithdraw = value - _tRS(__v_raw, "totalWithdraw", oldValue, value) - } -} -val GenPagesMallConsumerWalletClass = CreateVueComponent(GenPagesMallConsumerWallet::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerWallet.inheritAttrs, inject = GenPagesMallConsumerWallet.inject, props = GenPagesMallConsumerWallet.props, propsNeedCastKeys = GenPagesMallConsumerWallet.propsNeedCastKeys, emits = GenPagesMallConsumerWallet.emits, components = GenPagesMallConsumerWallet.components, styles = GenPagesMallConsumerWallet.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerWallet.setup(props as GenPagesMallConsumerWallet) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerWallet { - return GenPagesMallConsumerWallet(instance, renderer) -} -) -open class BankCard ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var bank_name: String, - @JsonNotNull - open var card_number: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("BankCard", "pages/mall/consumer/withdraw.uvue", 78, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return BankCardReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class BankCardReactiveObject : BankCard, IUTSReactive { - override var __v_raw: BankCard - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: BankCard, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, bank_name = __v_raw.bank_name, card_number = __v_raw.card_number) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): BankCardReactiveObject { - return BankCardReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var bank_name: String - get() { - return _tRG(__v_raw, "bank_name", __v_raw.bank_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bank_name")) { - return - } - val oldValue = __v_raw.bank_name - __v_raw.bank_name = value - _tRS(__v_raw, "bank_name", oldValue, value) - } - override var card_number: String - get() { - return _tRG(__v_raw, "card_number", __v_raw.card_number, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("card_number")) { - return - } - val oldValue = __v_raw.card_number - __v_raw.card_number = value - _tRS(__v_raw, "card_number", oldValue, value) - } -} -val GenPagesMallConsumerWithdrawClass = CreateVueComponent(GenPagesMallConsumerWithdraw::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerWithdraw.inheritAttrs, inject = GenPagesMallConsumerWithdraw.inject, props = GenPagesMallConsumerWithdraw.props, propsNeedCastKeys = GenPagesMallConsumerWithdraw.propsNeedCastKeys, emits = GenPagesMallConsumerWithdraw.emits, components = GenPagesMallConsumerWithdraw.components, styles = GenPagesMallConsumerWithdraw.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerWithdraw.setup(props as GenPagesMallConsumerWithdraw) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerWithdraw { - return GenPagesMallConsumerWithdraw(instance, renderer) -} -) -open class HotSearchItemType ( - @JsonNotNull - open var keyword: String, - @JsonNotNull - open var hot: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("HotSearchItemType", "pages/mall/consumer/search.uvue", 259, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return HotSearchItemTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class HotSearchItemTypeReactiveObject : HotSearchItemType, IUTSReactive { - override var __v_raw: HotSearchItemType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: HotSearchItemType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(keyword = __v_raw.keyword, hot = __v_raw.hot) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): HotSearchItemTypeReactiveObject { - return HotSearchItemTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var keyword: String - get() { - return _tRG(__v_raw, "keyword", __v_raw.keyword, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("keyword")) { - return - } - val oldValue = __v_raw.keyword - __v_raw.keyword = value - _tRS(__v_raw, "keyword", oldValue, value) - } - override var hot: Boolean - get() { - return _tRG(__v_raw, "hot", __v_raw.hot, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("hot")) { - return - } - val oldValue = __v_raw.hot - __v_raw.hot = value - _tRS(__v_raw, "hot", oldValue, value) - } -} -open class GuessItemType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var merchant_id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("GuessItemType", "pages/mall/consumer/search.uvue", 264, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return GuessItemTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class GuessItemTypeReactiveObject : GuessItemType, IUTSReactive { - override var __v_raw: GuessItemType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: GuessItemType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, price = __v_raw.price, image = __v_raw.image, sales = __v_raw.sales, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): GuessItemTypeReactiveObject { - return GuessItemTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var sales: Number - get() { - return _tRG(__v_raw, "sales", __v_raw.sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sales")) { - return - } - val oldValue = __v_raw.sales - __v_raw.sales = value - _tRS(__v_raw, "sales", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class SearchResultType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var image: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var specification: String, - @JsonNotNull - open var tag: String, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var merchant_id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("SearchResultType", "pages/mall/consumer/search.uvue", 273, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return SearchResultTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class SearchResultTypeReactiveObject : SearchResultType, IUTSReactive { - override var __v_raw: SearchResultType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: SearchResultType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, image = __v_raw.image, price = __v_raw.price, specification = __v_raw.specification, tag = __v_raw.tag, sales = __v_raw.sales, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): SearchResultTypeReactiveObject { - return SearchResultTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var specification: String - get() { - return _tRG(__v_raw, "specification", __v_raw.specification, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("specification")) { - return - } - val oldValue = __v_raw.specification - __v_raw.specification = value - _tRS(__v_raw, "specification", oldValue, value) - } - override var tag: String - get() { - return _tRG(__v_raw, "tag", __v_raw.tag, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("tag")) { - return - } - val oldValue = __v_raw.tag - __v_raw.tag = value - _tRS(__v_raw, "tag", oldValue, value) - } - override var sales: Number - get() { - return _tRG(__v_raw, "sales", __v_raw.sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sales")) { - return - } - val oldValue = __v_raw.sales - __v_raw.sales = value - _tRS(__v_raw, "sales", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class ShopResultType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var logo: String, - @JsonNotNull - open var productCount: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ShopResultType", "pages/mall/consumer/search.uvue", 284, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ShopResultTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ShopResultTypeReactiveObject : ShopResultType, IUTSReactive { - override var __v_raw: ShopResultType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ShopResultType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, logo = __v_raw.logo, productCount = __v_raw.productCount) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ShopResultTypeReactiveObject { - return ShopResultTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var logo: String - get() { - return _tRG(__v_raw, "logo", __v_raw.logo, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("logo")) { - return - } - val oldValue = __v_raw.logo - __v_raw.logo = value - _tRS(__v_raw, "logo", oldValue, value) - } - override var productCount: Number - get() { - return _tRG(__v_raw, "productCount", __v_raw.productCount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("productCount")) { - return - } - val oldValue = __v_raw.productCount - __v_raw.productCount = value - _tRS(__v_raw, "productCount", oldValue, value) - } -} -val GenPagesMallConsumerSearchClass = CreateVueComponent(GenPagesMallConsumerSearch::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerSearch.inheritAttrs, inject = GenPagesMallConsumerSearch.inject, props = GenPagesMallConsumerSearch.props, propsNeedCastKeys = GenPagesMallConsumerSearch.propsNeedCastKeys, emits = GenPagesMallConsumerSearch.emits, components = GenPagesMallConsumerSearch.components, styles = GenPagesMallConsumerSearch.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerSearch.setup(props as GenPagesMallConsumerSearch) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerSearch { - return GenPagesMallConsumerSearch(instance, renderer) -} -) -val GenPagesMallConsumerProductDetailClass = CreateVueComponent(GenPagesMallConsumerProductDetail::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerProductDetail.inheritAttrs, inject = GenPagesMallConsumerProductDetail.inject, props = GenPagesMallConsumerProductDetail.props, propsNeedCastKeys = GenPagesMallConsumerProductDetail.propsNeedCastKeys, emits = GenPagesMallConsumerProductDetail.emits, components = GenPagesMallConsumerProductDetail.components, styles = GenPagesMallConsumerProductDetail.styles) -} -, fun(instance, renderer): GenPagesMallConsumerProductDetail { - return GenPagesMallConsumerProductDetail(instance, renderer) -} -) -open class CouponType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var discount_value: Number, - @JsonNotNull - open var min_order_amount: Number, - @JsonNotNull - open var name: String, - @JsonNotNull - open var start_time: String, - @JsonNotNull - open var end_time: String, - @JsonNotNull - open var status: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CouponType", "pages/mall/consumer/shop-detail.uvue", 80, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CouponTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CouponTypeReactiveObject : CouponType, IUTSReactive { - override var __v_raw: CouponType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CouponType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, discount_value = __v_raw.discount_value, min_order_amount = __v_raw.min_order_amount, name = __v_raw.name, start_time = __v_raw.start_time, end_time = __v_raw.end_time, status = __v_raw.status) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CouponTypeReactiveObject { - return CouponTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var discount_value: Number - get() { - return _tRG(__v_raw, "discount_value", __v_raw.discount_value, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("discount_value")) { - return - } - val oldValue = __v_raw.discount_value - __v_raw.discount_value = value - _tRS(__v_raw, "discount_value", oldValue, value) - } - override var min_order_amount: Number - get() { - return _tRG(__v_raw, "min_order_amount", __v_raw.min_order_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("min_order_amount")) { - return - } - val oldValue = __v_raw.min_order_amount - __v_raw.min_order_amount = value - _tRS(__v_raw, "min_order_amount", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var start_time: String - get() { - return _tRG(__v_raw, "start_time", __v_raw.start_time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("start_time")) { - return - } - val oldValue = __v_raw.start_time - __v_raw.start_time = value - _tRS(__v_raw, "start_time", oldValue, value) - } - override var end_time: String - get() { - return _tRG(__v_raw, "end_time", __v_raw.end_time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("end_time")) { - return - } - val oldValue = __v_raw.end_time - __v_raw.end_time = value - _tRS(__v_raw, "end_time", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } -} -val GenPagesMallConsumerShopDetailClass = CreateVueComponent(GenPagesMallConsumerShopDetail::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerShopDetail.inheritAttrs, inject = GenPagesMallConsumerShopDetail.inject, props = GenPagesMallConsumerShopDetail.props, propsNeedCastKeys = GenPagesMallConsumerShopDetail.propsNeedCastKeys, emits = GenPagesMallConsumerShopDetail.emits, components = GenPagesMallConsumerShopDetail.components, styles = GenPagesMallConsumerShopDetail.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerShopDetail.setup(props as GenPagesMallConsumerShopDetail) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerShopDetail { - return GenPagesMallConsumerShopDetail(instance, renderer) -} -) -open class Coupon ( - @JsonNotNull - open var title: String, - @JsonNotNull - open var amount: String, - @JsonNotNull - open var expiry: String, - @JsonNotNull - open var id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Coupon", "pages/mall/consumer/coupons.uvue", 29, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CouponReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CouponReactiveObject : Coupon, IUTSReactive { - override var __v_raw: Coupon - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: Coupon, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(title = __v_raw.title, amount = __v_raw.amount, expiry = __v_raw.expiry, id = __v_raw.id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CouponReactiveObject { - return CouponReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var title: String - get() { - return _tRG(__v_raw, "title", __v_raw.title, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("title")) { - return - } - val oldValue = __v_raw.title - __v_raw.title = value - _tRS(__v_raw, "title", oldValue, value) - } - override var amount: String - get() { - return _tRG(__v_raw, "amount", __v_raw.amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("amount")) { - return - } - val oldValue = __v_raw.amount - __v_raw.amount = value - _tRS(__v_raw, "amount", oldValue, value) - } - override var expiry: String - get() { - return _tRG(__v_raw, "expiry", __v_raw.expiry, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expiry")) { - return - } - val oldValue = __v_raw.expiry - __v_raw.expiry = value - _tRS(__v_raw, "expiry", oldValue, value) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } -} -val GenPagesMallConsumerCouponsClass = CreateVueComponent(GenPagesMallConsumerCoupons::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerCoupons.inheritAttrs, inject = GenPagesMallConsumerCoupons.inject, props = GenPagesMallConsumerCoupons.props, propsNeedCastKeys = GenPagesMallConsumerCoupons.propsNeedCastKeys, emits = GenPagesMallConsumerCoupons.emits, components = GenPagesMallConsumerCoupons.components, styles = GenPagesMallConsumerCoupons.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerCoupons.setup(props as GenPagesMallConsumerCoupons) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerCoupons { - return GenPagesMallConsumerCoupons(instance, renderer) -} -) -open class FavoriteType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var main_image_url: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var selected: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FavoriteType", "pages/mall/consumer/favorites.uvue", 67, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return FavoriteTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class FavoriteTypeReactiveObject : FavoriteType, IUTSReactive { - override var __v_raw: FavoriteType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: FavoriteType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, price = __v_raw.price, main_image_url = __v_raw.main_image_url, merchant_id = __v_raw.merchant_id, selected = __v_raw.selected) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): FavoriteTypeReactiveObject { - return FavoriteTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var main_image_url: String - get() { - return _tRG(__v_raw, "main_image_url", __v_raw.main_image_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("main_image_url")) { - return - } - val oldValue = __v_raw.main_image_url - __v_raw.main_image_url = value - _tRS(__v_raw, "main_image_url", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var selected: Boolean - get() { - return _tRG(__v_raw, "selected", __v_raw.selected, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("selected")) { - return - } - val oldValue = __v_raw.selected - __v_raw.selected = value - _tRS(__v_raw, "selected", oldValue, value) - } -} -val GenPagesMallConsumerFavoritesClass = CreateVueComponent(GenPagesMallConsumerFavorites::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerFavorites.inheritAttrs, inject = GenPagesMallConsumerFavorites.inject, props = GenPagesMallConsumerFavorites.props, propsNeedCastKeys = GenPagesMallConsumerFavorites.propsNeedCastKeys, emits = GenPagesMallConsumerFavorites.emits, components = GenPagesMallConsumerFavorites.components, styles = GenPagesMallConsumerFavorites.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerFavorites.setup(props as GenPagesMallConsumerFavorites) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerFavorites { - return GenPagesMallConsumerFavorites(instance, renderer) -} -) -open class FootprintType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var original_price: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var viewTime: Number, - @JsonNotNull - open var selected: Boolean = false, - @JsonNotNull - open var merchant_id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FootprintType", "pages/mall/consumer/footprint.uvue", 74, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return FootprintTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class FootprintTypeReactiveObject : FootprintType, IUTSReactive { - override var __v_raw: FootprintType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: FootprintType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, price = __v_raw.price, original_price = __v_raw.original_price, image = __v_raw.image, sales = __v_raw.sales, shopId = __v_raw.shopId, shopName = __v_raw.shopName, viewTime = __v_raw.viewTime, selected = __v_raw.selected, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): FootprintTypeReactiveObject { - return FootprintTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var original_price: Number - get() { - return _tRG(__v_raw, "original_price", __v_raw.original_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("original_price")) { - return - } - val oldValue = __v_raw.original_price - __v_raw.original_price = value - _tRS(__v_raw, "original_price", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var sales: Number - get() { - return _tRG(__v_raw, "sales", __v_raw.sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sales")) { - return - } - val oldValue = __v_raw.sales - __v_raw.sales = value - _tRS(__v_raw, "sales", oldValue, value) - } - override var shopId: String - get() { - return _tRG(__v_raw, "shopId", __v_raw.shopId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopId")) { - return - } - val oldValue = __v_raw.shopId - __v_raw.shopId = value - _tRS(__v_raw, "shopId", oldValue, value) - } - override var shopName: String - get() { - return _tRG(__v_raw, "shopName", __v_raw.shopName, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shopName")) { - return - } - val oldValue = __v_raw.shopName - __v_raw.shopName = value - _tRS(__v_raw, "shopName", oldValue, value) - } - override var viewTime: Number - get() { - return _tRG(__v_raw, "viewTime", __v_raw.viewTime, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("viewTime")) { - return - } - val oldValue = __v_raw.viewTime - __v_raw.viewTime = value - _tRS(__v_raw, "viewTime", oldValue, value) - } - override var selected: Boolean - get() { - return _tRG(__v_raw, "selected", __v_raw.selected, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("selected")) { - return - } - val oldValue = __v_raw.selected - __v_raw.selected = value - _tRS(__v_raw, "selected", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class FootprintGroup ( - @JsonNotNull - open var dateLabel: String, - @JsonNotNull - open var dateKey: String, - @JsonNotNull - open var items: UTSArray, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FootprintGroup", "pages/mall/consumer/footprint.uvue", 88, 6) - } -} -open class FootprintSaveType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var original_price: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var sales: Number, - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var viewTime: Number, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FootprintSaveType", "pages/mall/consumer/footprint.uvue", 94, 6) - } -} -val GenPagesMallConsumerFootprintClass = CreateVueComponent(GenPagesMallConsumerFootprint::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerFootprint.inheritAttrs, inject = GenPagesMallConsumerFootprint.inject, props = GenPagesMallConsumerFootprint.props, propsNeedCastKeys = GenPagesMallConsumerFootprint.propsNeedCastKeys, emits = GenPagesMallConsumerFootprint.emits, components = GenPagesMallConsumerFootprint.components, styles = GenPagesMallConsumerFootprint.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerFootprint.setup(props as GenPagesMallConsumerFootprint) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerFootprint { - return GenPagesMallConsumerFootprint(instance, renderer) -} -) -open class Address ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var isDefault: Boolean = false, - open var label: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Address", "pages/mall/consumer/address-list.uvue", 41, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return AddressReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class AddressReactiveObject : Address, IUTSReactive
{ - override var __v_raw: Address - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: Address, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, phone = __v_raw.phone, province = __v_raw.province, city = __v_raw.city, district = __v_raw.district, detail = __v_raw.detail, isDefault = __v_raw.isDefault, label = __v_raw.label) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): AddressReactiveObject { - return AddressReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var province: String - get() { - return _tRG(__v_raw, "province", __v_raw.province, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("province")) { - return - } - val oldValue = __v_raw.province - __v_raw.province = value - _tRS(__v_raw, "province", oldValue, value) - } - override var city: String - get() { - return _tRG(__v_raw, "city", __v_raw.city, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("city")) { - return - } - val oldValue = __v_raw.city - __v_raw.city = value - _tRS(__v_raw, "city", oldValue, value) - } - override var district: String - get() { - return _tRG(__v_raw, "district", __v_raw.district, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("district")) { - return - } - val oldValue = __v_raw.district - __v_raw.district = value - _tRS(__v_raw, "district", oldValue, value) - } - override var detail: String - get() { - return _tRG(__v_raw, "detail", __v_raw.detail, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("detail")) { - return - } - val oldValue = __v_raw.detail - __v_raw.detail = value - _tRS(__v_raw, "detail", oldValue, value) - } - override var isDefault: Boolean - get() { - return _tRG(__v_raw, "isDefault", __v_raw.isDefault, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("isDefault")) { - return - } - val oldValue = __v_raw.isDefault - __v_raw.isDefault = value - _tRS(__v_raw, "isDefault", oldValue, value) - } - override var label: String? - get() { - return _tRG(__v_raw, "label", __v_raw.label, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("label")) { - return - } - val oldValue = __v_raw.label - __v_raw.label = value - _tRS(__v_raw, "label", oldValue, value) - } -} -val GenPagesMallConsumerAddressListClass = CreateVueComponent(GenPagesMallConsumerAddressList::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerAddressList.inheritAttrs, inject = GenPagesMallConsumerAddressList.inject, props = GenPagesMallConsumerAddressList.props, propsNeedCastKeys = GenPagesMallConsumerAddressList.propsNeedCastKeys, emits = GenPagesMallConsumerAddressList.emits, components = GenPagesMallConsumerAddressList.components, styles = GenPagesMallConsumerAddressList.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerAddressList.setup(props as GenPagesMallConsumerAddressList) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerAddressList { - return GenPagesMallConsumerAddressList(instance, renderer) -} -) -open class Address__1 ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var isDefault: Boolean = false, - open var label: String? = null, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("Address", "pages/mall/consumer/address-edit.uvue", 78, 6) - } -} -open class AddressForm ( - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var isDefault: Boolean = false, - @JsonNotNull - open var label: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AddressForm", "pages/mall/consumer/address-edit.uvue", 96, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return AddressFormReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class AddressFormReactiveObject : AddressForm, IUTSReactive { - override var __v_raw: AddressForm - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: AddressForm, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(name = __v_raw.name, phone = __v_raw.phone, detail = __v_raw.detail, isDefault = __v_raw.isDefault, label = __v_raw.label) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): AddressFormReactiveObject { - return AddressFormReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var detail: String - get() { - return _tRG(__v_raw, "detail", __v_raw.detail, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("detail")) { - return - } - val oldValue = __v_raw.detail - __v_raw.detail = value - _tRS(__v_raw, "detail", oldValue, value) - } - override var isDefault: Boolean - get() { - return _tRG(__v_raw, "isDefault", __v_raw.isDefault, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("isDefault")) { - return - } - val oldValue = __v_raw.isDefault - __v_raw.isDefault = value - _tRS(__v_raw, "isDefault", oldValue, value) - } - override var label: String - get() { - return _tRG(__v_raw, "label", __v_raw.label, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("label")) { - return - } - val oldValue = __v_raw.label - __v_raw.label = value - _tRS(__v_raw, "label", oldValue, value) - } -} -val GenPagesMallConsumerAddressEditClass = CreateVueComponent(GenPagesMallConsumerAddressEdit::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerAddressEdit.inheritAttrs, inject = GenPagesMallConsumerAddressEdit.inject, props = GenPagesMallConsumerAddressEdit.props, propsNeedCastKeys = GenPagesMallConsumerAddressEdit.propsNeedCastKeys, emits = GenPagesMallConsumerAddressEdit.emits, components = GenPagesMallConsumerAddressEdit.components, styles = GenPagesMallConsumerAddressEdit.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerAddressEdit.setup(props as GenPagesMallConsumerAddressEdit) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerAddressEdit { - return GenPagesMallConsumerAddressEdit(instance, renderer) -} -) -open class CheckoutItemType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var product_id: String, - @JsonNotNull - open var sku_id: String, - @JsonNotNull - open var product_name: String, - @JsonNotNull - open var product_image: String, - @JsonNotNull - open var sku_specifications: Any, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var original_price: Number, - @JsonNotNull - open var member_price: Number, - @JsonNotNull - open var quantity: Number, - open var shop_id: String? = null, - open var shop_name: String? = null, - open var merchant_id: String? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CheckoutItemType", "pages/mall/consumer/checkout.uvue", 311, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CheckoutItemTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CheckoutItemTypeReactiveObject : CheckoutItemType, IUTSReactive { - override var __v_raw: CheckoutItemType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CheckoutItemType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, product_id = __v_raw.product_id, sku_id = __v_raw.sku_id, product_name = __v_raw.product_name, product_image = __v_raw.product_image, sku_specifications = __v_raw.sku_specifications, price = __v_raw.price, original_price = __v_raw.original_price, member_price = __v_raw.member_price, quantity = __v_raw.quantity, shop_id = __v_raw.shop_id, shop_name = __v_raw.shop_name, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CheckoutItemTypeReactiveObject { - return CheckoutItemTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var product_id: String - get() { - return _tRG(__v_raw, "product_id", __v_raw.product_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_id")) { - return - } - val oldValue = __v_raw.product_id - __v_raw.product_id = value - _tRS(__v_raw, "product_id", oldValue, value) - } - override var sku_id: String - get() { - return _tRG(__v_raw, "sku_id", __v_raw.sku_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sku_id")) { - return - } - val oldValue = __v_raw.sku_id - __v_raw.sku_id = value - _tRS(__v_raw, "sku_id", oldValue, value) - } - override var product_name: String - get() { - return _tRG(__v_raw, "product_name", __v_raw.product_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_name")) { - return - } - val oldValue = __v_raw.product_name - __v_raw.product_name = value - _tRS(__v_raw, "product_name", oldValue, value) - } - override var product_image: String - get() { - return _tRG(__v_raw, "product_image", __v_raw.product_image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_image")) { - return - } - val oldValue = __v_raw.product_image - __v_raw.product_image = value - _tRS(__v_raw, "product_image", oldValue, value) - } - override var sku_specifications: Any - get() { - return _tRG(__v_raw, "sku_specifications", __v_raw.sku_specifications, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sku_specifications")) { - return - } - val oldValue = __v_raw.sku_specifications - __v_raw.sku_specifications = value - _tRS(__v_raw, "sku_specifications", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var original_price: Number - get() { - return _tRG(__v_raw, "original_price", __v_raw.original_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("original_price")) { - return - } - val oldValue = __v_raw.original_price - __v_raw.original_price = value - _tRS(__v_raw, "original_price", oldValue, value) - } - override var member_price: Number - get() { - return _tRG(__v_raw, "member_price", __v_raw.member_price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("member_price")) { - return - } - val oldValue = __v_raw.member_price - __v_raw.member_price = value - _tRS(__v_raw, "member_price", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } - override var shop_id: String? - get() { - return _tRG(__v_raw, "shop_id", __v_raw.shop_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_id")) { - return - } - val oldValue = __v_raw.shop_id - __v_raw.shop_id = value - _tRS(__v_raw, "shop_id", oldValue, value) - } - override var shop_name: String? - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var merchant_id: String? - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class DeliveryOptionType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var description: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("DeliveryOptionType", "pages/mall/consumer/checkout.uvue", 327, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return DeliveryOptionTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class DeliveryOptionTypeReactiveObject : DeliveryOptionType, IUTSReactive { - override var __v_raw: DeliveryOptionType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: DeliveryOptionType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, price = __v_raw.price, description = __v_raw.description) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): DeliveryOptionTypeReactiveObject { - return DeliveryOptionTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } -} -open class ShopGroupType ( - @JsonNotNull - open var shopId: String, - @JsonNotNull - open var shopName: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var items: UTSArray, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ShopGroupType", "pages/mall/consumer/checkout.uvue", 334, 6) - } -} -open class CouponTemplateType__1 ( - @JsonNotNull - open var name: String, - @JsonNotNull - open var discount_value: Number, - @JsonNotNull - open var min_order_amount: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("CouponTemplateType", "pages/mall/consumer/checkout.uvue", 341, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return CouponTemplateType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class CouponTemplateType__1ReactiveObject : CouponTemplateType__1, IUTSReactive { - override var __v_raw: CouponTemplateType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: CouponTemplateType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(name = __v_raw.name, discount_value = __v_raw.discount_value, min_order_amount = __v_raw.min_order_amount) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): CouponTemplateType__1ReactiveObject { - return CouponTemplateType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var discount_value: Number - get() { - return _tRG(__v_raw, "discount_value", __v_raw.discount_value, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("discount_value")) { - return - } - val oldValue = __v_raw.discount_value - __v_raw.discount_value = value - _tRS(__v_raw, "discount_value", oldValue, value) - } - override var min_order_amount: Number - get() { - return _tRG(__v_raw, "min_order_amount", __v_raw.min_order_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("min_order_amount")) { - return - } - val oldValue = __v_raw.min_order_amount - __v_raw.min_order_amount = value - _tRS(__v_raw, "min_order_amount", oldValue, value) - } -} -open class UserCouponType ( - @JsonNotNull - open var id: String, - open var template: CouponTemplateType__1? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UserCouponType", "pages/mall/consumer/checkout.uvue", 347, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UserCouponTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UserCouponTypeReactiveObject : UserCouponType, IUTSReactive { - override var __v_raw: UserCouponType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UserCouponType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, template = __v_raw.template) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UserCouponTypeReactiveObject { - return UserCouponTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var template: CouponTemplateType__1? - get() { - return _tRG(__v_raw, "template", __v_raw.template, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("template")) { - return - } - val oldValue = __v_raw.template - __v_raw.template = value - _tRS(__v_raw, "template", oldValue, value) - } -} -open class AddressItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var recipient_name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var is_default: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AddressItem", "pages/mall/consumer/checkout.uvue", 352, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return AddressItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class AddressItemReactiveObject : AddressItem, IUTSReactive { - override var __v_raw: AddressItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: AddressItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, recipient_name = __v_raw.recipient_name, phone = __v_raw.phone, province = __v_raw.province, city = __v_raw.city, district = __v_raw.district, detail = __v_raw.detail, is_default = __v_raw.is_default) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): AddressItemReactiveObject { - return AddressItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var recipient_name: String - get() { - return _tRG(__v_raw, "recipient_name", __v_raw.recipient_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("recipient_name")) { - return - } - val oldValue = __v_raw.recipient_name - __v_raw.recipient_name = value - _tRS(__v_raw, "recipient_name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var province: String - get() { - return _tRG(__v_raw, "province", __v_raw.province, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("province")) { - return - } - val oldValue = __v_raw.province - __v_raw.province = value - _tRS(__v_raw, "province", oldValue, value) - } - override var city: String - get() { - return _tRG(__v_raw, "city", __v_raw.city, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("city")) { - return - } - val oldValue = __v_raw.city - __v_raw.city = value - _tRS(__v_raw, "city", oldValue, value) - } - override var district: String - get() { - return _tRG(__v_raw, "district", __v_raw.district, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("district")) { - return - } - val oldValue = __v_raw.district - __v_raw.district = value - _tRS(__v_raw, "district", oldValue, value) - } - override var detail: String - get() { - return _tRG(__v_raw, "detail", __v_raw.detail, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("detail")) { - return - } - val oldValue = __v_raw.detail - __v_raw.detail = value - _tRS(__v_raw, "detail", oldValue, value) - } - override var is_default: Boolean - get() { - return _tRG(__v_raw, "is_default", __v_raw.is_default, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_default")) { - return - } - val oldValue = __v_raw.is_default - __v_raw.is_default = value - _tRS(__v_raw, "is_default", oldValue, value) - } -} -open class NewAddressData ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var isDefault: Boolean = false, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("NewAddressData", "pages/mall/consumer/checkout.uvue", 363, 6) - } -} -open class NewAddressForm ( - @JsonNotNull - open var recipient_name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var is_default: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("NewAddressForm", "pages/mall/consumer/checkout.uvue", 375, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return NewAddressFormReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class NewAddressFormReactiveObject : NewAddressForm, IUTSReactive { - override var __v_raw: NewAddressForm - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: NewAddressForm, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(recipient_name = __v_raw.recipient_name, phone = __v_raw.phone, province = __v_raw.province, city = __v_raw.city, district = __v_raw.district, detail = __v_raw.detail, is_default = __v_raw.is_default) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): NewAddressFormReactiveObject { - return NewAddressFormReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var recipient_name: String - get() { - return _tRG(__v_raw, "recipient_name", __v_raw.recipient_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("recipient_name")) { - return - } - val oldValue = __v_raw.recipient_name - __v_raw.recipient_name = value - _tRS(__v_raw, "recipient_name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var province: String - get() { - return _tRG(__v_raw, "province", __v_raw.province, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("province")) { - return - } - val oldValue = __v_raw.province - __v_raw.province = value - _tRS(__v_raw, "province", oldValue, value) - } - override var city: String - get() { - return _tRG(__v_raw, "city", __v_raw.city, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("city")) { - return - } - val oldValue = __v_raw.city - __v_raw.city = value - _tRS(__v_raw, "city", oldValue, value) - } - override var district: String - get() { - return _tRG(__v_raw, "district", __v_raw.district, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("district")) { - return - } - val oldValue = __v_raw.district - __v_raw.district = value - _tRS(__v_raw, "district", oldValue, value) - } - override var detail: String - get() { - return _tRG(__v_raw, "detail", __v_raw.detail, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("detail")) { - return - } - val oldValue = __v_raw.detail - __v_raw.detail = value - _tRS(__v_raw, "detail", oldValue, value) - } - override var is_default: Boolean - get() { - return _tRG(__v_raw, "is_default", __v_raw.is_default, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_default")) { - return - } - val oldValue = __v_raw.is_default - __v_raw.is_default = value - _tRS(__v_raw, "is_default", oldValue, value) - } -} -open class MockAddress ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var isDefault: Boolean = false, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MockAddress", "pages/mall/consumer/checkout.uvue", 385, 6) - } -} -val GenPagesMallConsumerCheckoutClass = CreateVueComponent(GenPagesMallConsumerCheckout::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerCheckout.inheritAttrs, inject = GenPagesMallConsumerCheckout.inject, props = GenPagesMallConsumerCheckout.props, propsNeedCastKeys = GenPagesMallConsumerCheckout.propsNeedCastKeys, emits = GenPagesMallConsumerCheckout.emits, components = GenPagesMallConsumerCheckout.components, styles = GenPagesMallConsumerCheckout.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerCheckout.setup(props as GenPagesMallConsumerCheckout) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerCheckout { - return GenPagesMallConsumerCheckout(instance, renderer) -} -) -open class PaymentMethodType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var description: String, - @JsonNotNull - open var icon: String, - @JsonNotNull - open var enabled: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("PaymentMethodType", "pages/mall/consumer/payment.uvue", 114, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return PaymentMethodTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class PaymentMethodTypeReactiveObject : PaymentMethodType, IUTSReactive { - override var __v_raw: PaymentMethodType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: PaymentMethodType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, description = __v_raw.description, icon = __v_raw.icon, enabled = __v_raw.enabled) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): PaymentMethodTypeReactiveObject { - return PaymentMethodTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var icon: String - get() { - return _tRG(__v_raw, "icon", __v_raw.icon, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("icon")) { - return - } - val oldValue = __v_raw.icon - __v_raw.icon = value - _tRS(__v_raw, "icon", oldValue, value) - } - override var enabled: Boolean - get() { - return _tRG(__v_raw, "enabled", __v_raw.enabled, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("enabled")) { - return - } - val oldValue = __v_raw.enabled - __v_raw.enabled = value - _tRS(__v_raw, "enabled", oldValue, value) - } -} -val GenPagesMallConsumerPaymentClass = CreateVueComponent(GenPagesMallConsumerPayment::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerPayment.inheritAttrs, inject = GenPagesMallConsumerPayment.inject, props = GenPagesMallConsumerPayment.props, propsNeedCastKeys = GenPagesMallConsumerPayment.propsNeedCastKeys, emits = GenPagesMallConsumerPayment.emits, components = GenPagesMallConsumerPayment.components, styles = GenPagesMallConsumerPayment.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerPayment.setup(props as GenPagesMallConsumerPayment) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerPayment { - return GenPagesMallConsumerPayment(instance, renderer) -} -) -val GenPagesMallConsumerPaymentSuccessClass = CreateVueComponent(GenPagesMallConsumerPaymentSuccess::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerPaymentSuccess.inheritAttrs, inject = GenPagesMallConsumerPaymentSuccess.inject, props = GenPagesMallConsumerPaymentSuccess.props, propsNeedCastKeys = GenPagesMallConsumerPaymentSuccess.propsNeedCastKeys, emits = GenPagesMallConsumerPaymentSuccess.emits, components = GenPagesMallConsumerPaymentSuccess.components, styles = GenPagesMallConsumerPaymentSuccess.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerPaymentSuccess.setup(props as GenPagesMallConsumerPaymentSuccess) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerPaymentSuccess { - return GenPagesMallConsumerPaymentSuccess(instance, renderer) -} -) -open class OrderTabItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var count: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderTabItem", "pages/mall/consumer/orders.uvue", 195, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderTabItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderTabItemReactiveObject : OrderTabItem, IUTSReactive { - override var __v_raw: OrderTabItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderTabItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, count = __v_raw.count) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderTabItemReactiveObject { - return OrderTabItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var count: Number - get() { - return _tRG(__v_raw, "count", __v_raw.count, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("count")) { - return - } - val oldValue = __v_raw.count - __v_raw.count = value - _tRS(__v_raw, "count", oldValue, value) - } -} -open class OrderProduct ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var name: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var image: String, - @JsonNotNull - open var spec: String, - @JsonNotNull - open var quantity: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderProduct", "pages/mall/consumer/orders.uvue", 202, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderProductReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderProductReactiveObject : OrderProduct, IUTSReactive { - override var __v_raw: OrderProduct - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderProduct, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, name = __v_raw.name, price = __v_raw.price, image = __v_raw.image, spec = __v_raw.spec, quantity = __v_raw.quantity) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderProductReactiveObject { - return OrderProductReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var image: String - get() { - return _tRG(__v_raw, "image", __v_raw.image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image")) { - return - } - val oldValue = __v_raw.image - __v_raw.image = value - _tRS(__v_raw, "image", oldValue, value) - } - override var spec: String - get() { - return _tRG(__v_raw, "spec", __v_raw.spec, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("spec")) { - return - } - val oldValue = __v_raw.spec - __v_raw.spec = value - _tRS(__v_raw, "spec", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } -} -open class OrderItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var create_time: String, - @JsonNotNull - open var product_amount: Number, - @JsonNotNull - open var shipping_fee: Number, - @JsonNotNull - open var total_amount: Number, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var shop_name: String, - @JsonNotNull - open var products: UTSArray, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderItem", "pages/mall/consumer/orders.uvue", 212, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderItemReactiveObject : OrderItem, IUTSReactive { - override var __v_raw: OrderItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, order_no = __v_raw.order_no, status = __v_raw.status, create_time = __v_raw.create_time, product_amount = __v_raw.product_amount, shipping_fee = __v_raw.shipping_fee, total_amount = __v_raw.total_amount, merchant_id = __v_raw.merchant_id, shop_name = __v_raw.shop_name, products = __v_raw.products) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderItemReactiveObject { - return OrderItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var create_time: String - get() { - return _tRG(__v_raw, "create_time", __v_raw.create_time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("create_time")) { - return - } - val oldValue = __v_raw.create_time - __v_raw.create_time = value - _tRS(__v_raw, "create_time", oldValue, value) - } - override var product_amount: Number - get() { - return _tRG(__v_raw, "product_amount", __v_raw.product_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_amount")) { - return - } - val oldValue = __v_raw.product_amount - __v_raw.product_amount = value - _tRS(__v_raw, "product_amount", oldValue, value) - } - override var shipping_fee: Number - get() { - return _tRG(__v_raw, "shipping_fee", __v_raw.shipping_fee, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shipping_fee")) { - return - } - val oldValue = __v_raw.shipping_fee - __v_raw.shipping_fee = value - _tRS(__v_raw, "shipping_fee", oldValue, value) - } - override var total_amount: Number - get() { - return _tRG(__v_raw, "total_amount", __v_raw.total_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_amount")) { - return - } - val oldValue = __v_raw.total_amount - __v_raw.total_amount = value - _tRS(__v_raw, "total_amount", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var shop_name: String - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var products: UTSArray - get() { - return _tRG(__v_raw, "products", __v_raw.products, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("products")) { - return - } - val oldValue = __v_raw.products - __v_raw.products = value - _tRS(__v_raw, "products", oldValue, value) - } -} -val GenPagesMallConsumerOrdersClass = CreateVueComponent(GenPagesMallConsumerOrders::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerOrders.inheritAttrs, inject = GenPagesMallConsumerOrders.inject, props = GenPagesMallConsumerOrders.props, propsNeedCastKeys = GenPagesMallConsumerOrders.propsNeedCastKeys, emits = GenPagesMallConsumerOrders.emits, components = GenPagesMallConsumerOrders.components, styles = GenPagesMallConsumerOrders.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerOrders.setup(props as GenPagesMallConsumerOrders) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerOrders { - return GenPagesMallConsumerOrders(instance, renderer) -} -) -open class OrderType ( - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var order_status: Number, - @JsonNotNull - open var total_amount: Number, - @JsonNotNull - open var product_amount: Number, - @JsonNotNull - open var shipping_fee: Number, - @JsonNotNull - open var discount_amount: Number, - @JsonNotNull - open var payment_method: String, - @JsonNotNull - open var created_at: String, - @JsonNotNull - open var paid_at: String, - @JsonNotNull - open var shipped_at: String, - @JsonNotNull - open var completed_at: String, - @JsonNotNull - open var merchant_id: String, - open var shipping_address: Any? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderType", "pages/mall/consumer/order-detail.uvue", 176, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderTypeReactiveObject : OrderType, IUTSReactive { - override var __v_raw: OrderType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(order_no = __v_raw.order_no, order_status = __v_raw.order_status, total_amount = __v_raw.total_amount, product_amount = __v_raw.product_amount, shipping_fee = __v_raw.shipping_fee, discount_amount = __v_raw.discount_amount, payment_method = __v_raw.payment_method, created_at = __v_raw.created_at, paid_at = __v_raw.paid_at, shipped_at = __v_raw.shipped_at, completed_at = __v_raw.completed_at, merchant_id = __v_raw.merchant_id, shipping_address = __v_raw.shipping_address) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderTypeReactiveObject { - return OrderTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var order_status: Number - get() { - return _tRG(__v_raw, "order_status", __v_raw.order_status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_status")) { - return - } - val oldValue = __v_raw.order_status - __v_raw.order_status = value - _tRS(__v_raw, "order_status", oldValue, value) - } - override var total_amount: Number - get() { - return _tRG(__v_raw, "total_amount", __v_raw.total_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_amount")) { - return - } - val oldValue = __v_raw.total_amount - __v_raw.total_amount = value - _tRS(__v_raw, "total_amount", oldValue, value) - } - override var product_amount: Number - get() { - return _tRG(__v_raw, "product_amount", __v_raw.product_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_amount")) { - return - } - val oldValue = __v_raw.product_amount - __v_raw.product_amount = value - _tRS(__v_raw, "product_amount", oldValue, value) - } - override var shipping_fee: Number - get() { - return _tRG(__v_raw, "shipping_fee", __v_raw.shipping_fee, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shipping_fee")) { - return - } - val oldValue = __v_raw.shipping_fee - __v_raw.shipping_fee = value - _tRS(__v_raw, "shipping_fee", oldValue, value) - } - override var discount_amount: Number - get() { - return _tRG(__v_raw, "discount_amount", __v_raw.discount_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("discount_amount")) { - return - } - val oldValue = __v_raw.discount_amount - __v_raw.discount_amount = value - _tRS(__v_raw, "discount_amount", oldValue, value) - } - override var payment_method: String - get() { - return _tRG(__v_raw, "payment_method", __v_raw.payment_method, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("payment_method")) { - return - } - val oldValue = __v_raw.payment_method - __v_raw.payment_method = value - _tRS(__v_raw, "payment_method", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var paid_at: String - get() { - return _tRG(__v_raw, "paid_at", __v_raw.paid_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("paid_at")) { - return - } - val oldValue = __v_raw.paid_at - __v_raw.paid_at = value - _tRS(__v_raw, "paid_at", oldValue, value) - } - override var shipped_at: String - get() { - return _tRG(__v_raw, "shipped_at", __v_raw.shipped_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shipped_at")) { - return - } - val oldValue = __v_raw.shipped_at - __v_raw.shipped_at = value - _tRS(__v_raw, "shipped_at", oldValue, value) - } - override var completed_at: String - get() { - return _tRG(__v_raw, "completed_at", __v_raw.completed_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("completed_at")) { - return - } - val oldValue = __v_raw.completed_at - __v_raw.completed_at = value - _tRS(__v_raw, "completed_at", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var shipping_address: Any? - get() { - return _tRG(__v_raw, "shipping_address", __v_raw.shipping_address, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shipping_address")) { - return - } - val oldValue = __v_raw.shipping_address - __v_raw.shipping_address = value - _tRS(__v_raw, "shipping_address", oldValue, value) - } -} -open class OrderItemType__1 ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var product_id: String, - @JsonNotNull - open var product_name: String, - @JsonNotNull - open var image_url: String, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var quantity: Number, - @JsonNotNull - open var specifications: Any, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderItemType", "pages/mall/consumer/order-detail.uvue", 192, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderItemType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderItemType__1ReactiveObject : OrderItemType__1, IUTSReactive { - override var __v_raw: OrderItemType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderItemType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, product_id = __v_raw.product_id, product_name = __v_raw.product_name, image_url = __v_raw.image_url, price = __v_raw.price, quantity = __v_raw.quantity, specifications = __v_raw.specifications) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderItemType__1ReactiveObject { - return OrderItemType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var product_id: String - get() { - return _tRG(__v_raw, "product_id", __v_raw.product_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_id")) { - return - } - val oldValue = __v_raw.product_id - __v_raw.product_id = value - _tRS(__v_raw, "product_id", oldValue, value) - } - override var product_name: String - get() { - return _tRG(__v_raw, "product_name", __v_raw.product_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_name")) { - return - } - val oldValue = __v_raw.product_name - __v_raw.product_name = value - _tRS(__v_raw, "product_name", oldValue, value) - } - override var image_url: String - get() { - return _tRG(__v_raw, "image_url", __v_raw.image_url, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("image_url")) { - return - } - val oldValue = __v_raw.image_url - __v_raw.image_url = value - _tRS(__v_raw, "image_url", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } - override var specifications: Any - get() { - return _tRG(__v_raw, "specifications", __v_raw.specifications, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("specifications")) { - return - } - val oldValue = __v_raw.specifications - __v_raw.specifications = value - _tRS(__v_raw, "specifications", oldValue, value) - } -} -open class AddressType ( - @JsonNotNull - open var name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var province: String, - @JsonNotNull - open var city: String, - @JsonNotNull - open var district: String, - @JsonNotNull - open var detail: String, - @JsonNotNull - open var address: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("AddressType", "pages/mall/consumer/order-detail.uvue", 202, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return AddressTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class AddressTypeReactiveObject : AddressType, IUTSReactive { - override var __v_raw: AddressType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: AddressType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(name = __v_raw.name, phone = __v_raw.phone, province = __v_raw.province, city = __v_raw.city, district = __v_raw.district, detail = __v_raw.detail, address = __v_raw.address) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): AddressTypeReactiveObject { - return AddressTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var province: String - get() { - return _tRG(__v_raw, "province", __v_raw.province, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("province")) { - return - } - val oldValue = __v_raw.province - __v_raw.province = value - _tRS(__v_raw, "province", oldValue, value) - } - override var city: String - get() { - return _tRG(__v_raw, "city", __v_raw.city, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("city")) { - return - } - val oldValue = __v_raw.city - __v_raw.city = value - _tRS(__v_raw, "city", oldValue, value) - } - override var district: String - get() { - return _tRG(__v_raw, "district", __v_raw.district, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("district")) { - return - } - val oldValue = __v_raw.district - __v_raw.district = value - _tRS(__v_raw, "district", oldValue, value) - } - override var detail: String - get() { - return _tRG(__v_raw, "detail", __v_raw.detail, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("detail")) { - return - } - val oldValue = __v_raw.detail - __v_raw.detail = value - _tRS(__v_raw, "detail", oldValue, value) - } - override var address: String - get() { - return _tRG(__v_raw, "address", __v_raw.address, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("address")) { - return - } - val oldValue = __v_raw.address - __v_raw.address = value - _tRS(__v_raw, "address", oldValue, value) - } -} -open class DeliveryInfoType ( - @JsonNotNull - open var tracking_no: String, - @JsonNotNull - open var carrier_name: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("DeliveryInfoType", "pages/mall/consumer/order-detail.uvue", 212, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return DeliveryInfoTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class DeliveryInfoTypeReactiveObject : DeliveryInfoType, IUTSReactive { - override var __v_raw: DeliveryInfoType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: DeliveryInfoType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(tracking_no = __v_raw.tracking_no, carrier_name = __v_raw.carrier_name) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): DeliveryInfoTypeReactiveObject { - return DeliveryInfoTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var tracking_no: String - get() { - return _tRG(__v_raw, "tracking_no", __v_raw.tracking_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("tracking_no")) { - return - } - val oldValue = __v_raw.tracking_no - __v_raw.tracking_no = value - _tRS(__v_raw, "tracking_no", oldValue, value) - } - override var carrier_name: String - get() { - return _tRG(__v_raw, "carrier_name", __v_raw.carrier_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("carrier_name")) { - return - } - val oldValue = __v_raw.carrier_name - __v_raw.carrier_name = value - _tRS(__v_raw, "carrier_name", oldValue, value) - } -} -val GenPagesMallConsumerOrderDetailClass = CreateVueComponent(GenPagesMallConsumerOrderDetail::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerOrderDetail.inheritAttrs, inject = GenPagesMallConsumerOrderDetail.inject, props = GenPagesMallConsumerOrderDetail.props, propsNeedCastKeys = GenPagesMallConsumerOrderDetail.propsNeedCastKeys, emits = GenPagesMallConsumerOrderDetail.emits, components = GenPagesMallConsumerOrderDetail.components, styles = GenPagesMallConsumerOrderDetail.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerOrderDetail.setup(props as GenPagesMallConsumerOrderDetail) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerOrderDetail { - return GenPagesMallConsumerOrderDetail(instance, renderer) -} -) -open class TrackItem ( - @JsonNotNull - open var desc: String, - @JsonNotNull - open var time: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("TrackItem", "pages/mall/consumer/logistics.uvue", 48, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return TrackItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class TrackItemReactiveObject : TrackItem, IUTSReactive { - override var __v_raw: TrackItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: TrackItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(desc = __v_raw.desc, time = __v_raw.time) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): TrackItemReactiveObject { - return TrackItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var desc: String - get() { - return _tRG(__v_raw, "desc", __v_raw.desc, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("desc")) { - return - } - val oldValue = __v_raw.desc - __v_raw.desc = value - _tRS(__v_raw, "desc", oldValue, value) - } - override var time: String - get() { - return _tRG(__v_raw, "time", __v_raw.time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("time")) { - return - } - val oldValue = __v_raw.time - __v_raw.time = value - _tRS(__v_raw, "time", oldValue, value) - } -} -val GenPagesMallConsumerLogisticsClass = CreateVueComponent(GenPagesMallConsumerLogistics::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerLogistics.inheritAttrs, inject = GenPagesMallConsumerLogistics.inject, props = GenPagesMallConsumerLogistics.props, propsNeedCastKeys = GenPagesMallConsumerLogistics.propsNeedCastKeys, emits = GenPagesMallConsumerLogistics.emits, components = GenPagesMallConsumerLogistics.components, styles = GenPagesMallConsumerLogistics.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerLogistics.setup(props as GenPagesMallConsumerLogistics) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerLogistics { - return GenPagesMallConsumerLogistics(instance, renderer) -} -) -open class OrderType__1 ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var created_at: String, - @JsonNotNull - open var merchant_id: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderType", "pages/mall/consumer/review.uvue", 153, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderType__1ReactiveObject : OrderType__1, IUTSReactive { - override var __v_raw: OrderType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, order_no = __v_raw.order_no, created_at = __v_raw.created_at, merchant_id = __v_raw.merchant_id) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderType__1ReactiveObject { - return OrderType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } -} -open class OrderItemType__2 ( - @JsonNotNull - open var id: Number, - @JsonNotNull - open var order_id: Number, - @JsonNotNull - open var product_id: Number, - @JsonNotNull - open var product_name: String, - @JsonNotNull - open var product_image: String, - open var sku_specifications: Any? = null, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var quantity: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("OrderItemType", "pages/mall/consumer/review.uvue", 160, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return OrderItemType__2ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class OrderItemType__2ReactiveObject : OrderItemType__2, IUTSReactive { - override var __v_raw: OrderItemType__2 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: OrderItemType__2, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, order_id = __v_raw.order_id, product_id = __v_raw.product_id, product_name = __v_raw.product_name, product_image = __v_raw.product_image, sku_specifications = __v_raw.sku_specifications, price = __v_raw.price, quantity = __v_raw.quantity) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): OrderItemType__2ReactiveObject { - return OrderItemType__2ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: Number - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var order_id: Number - get() { - return _tRG(__v_raw, "order_id", __v_raw.order_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_id")) { - return - } - val oldValue = __v_raw.order_id - __v_raw.order_id = value - _tRS(__v_raw, "order_id", oldValue, value) - } - override var product_id: Number - get() { - return _tRG(__v_raw, "product_id", __v_raw.product_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_id")) { - return - } - val oldValue = __v_raw.product_id - __v_raw.product_id = value - _tRS(__v_raw, "product_id", oldValue, value) - } - override var product_name: String - get() { - return _tRG(__v_raw, "product_name", __v_raw.product_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_name")) { - return - } - val oldValue = __v_raw.product_name - __v_raw.product_name = value - _tRS(__v_raw, "product_name", oldValue, value) - } - override var product_image: String - get() { - return _tRG(__v_raw, "product_image", __v_raw.product_image, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_image")) { - return - } - val oldValue = __v_raw.product_image - __v_raw.product_image = value - _tRS(__v_raw, "product_image", oldValue, value) - } - override var sku_specifications: Any? - get() { - return _tRG(__v_raw, "sku_specifications", __v_raw.sku_specifications, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sku_specifications")) { - return - } - val oldValue = __v_raw.sku_specifications - __v_raw.sku_specifications = value - _tRS(__v_raw, "sku_specifications", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } -} -open class MerchantRatingType ( - @JsonNotNull - open var description: Number, - @JsonNotNull - open var logistics: Number, - @JsonNotNull - open var service: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MerchantRatingType", "pages/mall/consumer/review.uvue", 171, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return MerchantRatingTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class MerchantRatingTypeReactiveObject : MerchantRatingType, IUTSReactive { - override var __v_raw: MerchantRatingType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: MerchantRatingType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(description = __v_raw.description, logistics = __v_raw.logistics, service = __v_raw.service) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): MerchantRatingTypeReactiveObject { - return MerchantRatingTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var description: Number - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var logistics: Number - get() { - return _tRG(__v_raw, "logistics", __v_raw.logistics, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("logistics")) { - return - } - val oldValue = __v_raw.logistics - __v_raw.logistics = value - _tRS(__v_raw, "logistics", oldValue, value) - } - override var service: Number - get() { - return _tRG(__v_raw, "service", __v_raw.service, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("service")) { - return - } - val oldValue = __v_raw.service - __v_raw.service = value - _tRS(__v_raw, "service", oldValue, value) - } -} -open class MerchantType__1 ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var shop_name: String, - @JsonNotNull - open var rating: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("MerchantType", "pages/mall/consumer/review.uvue", 177, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return MerchantType__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class MerchantType__1ReactiveObject : MerchantType__1, IUTSReactive { - override var __v_raw: MerchantType__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: MerchantType__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, shop_name = __v_raw.shop_name, rating = __v_raw.rating) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): MerchantType__1ReactiveObject { - return MerchantType__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var shop_name: String - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var rating: Number - get() { - return _tRG(__v_raw, "rating", __v_raw.rating, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating")) { - return - } - val oldValue = __v_raw.rating - __v_raw.rating = value - _tRS(__v_raw, "rating", oldValue, value) - } -} -val GenPagesMallConsumerReviewClass = CreateVueComponent(GenPagesMallConsumerReview::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerReview.inheritAttrs, inject = GenPagesMallConsumerReview.inject, props = GenPagesMallConsumerReview.props, propsNeedCastKeys = GenPagesMallConsumerReview.propsNeedCastKeys, emits = GenPagesMallConsumerReview.emits, components = GenPagesMallConsumerReview.components, styles = GenPagesMallConsumerReview.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerReview.setup(props as GenPagesMallConsumerReview) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerReview { - return GenPagesMallConsumerReview(instance, renderer) -} -) -open class RefundStatusHistoryItem ( - @JsonNotNull - open var status: Number, - @JsonNotNull - open var remark: String, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundStatusHistoryItem", "pages/mall/consumer/refund.uvue", 106, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RefundStatusHistoryItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RefundStatusHistoryItemReactiveObject : RefundStatusHistoryItem, IUTSReactive { - override var __v_raw: RefundStatusHistoryItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RefundStatusHistoryItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(status = __v_raw.status, remark = __v_raw.remark, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RefundStatusHistoryItemReactiveObject { - return RefundStatusHistoryItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var remark: String - get() { - return _tRG(__v_raw, "remark", __v_raw.remark, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("remark")) { - return - } - val oldValue = __v_raw.remark - __v_raw.remark = value - _tRS(__v_raw, "remark", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class RefundProductInfo ( - @JsonNotNull - open var images: UTSArray, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundProductInfo", "pages/mall/consumer/refund.uvue", 112, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RefundProductInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RefundProductInfoReactiveObject : RefundProductInfo, IUTSReactive { - override var __v_raw: RefundProductInfo - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RefundProductInfo, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(images = __v_raw.images) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RefundProductInfoReactiveObject { - return RefundProductInfoReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var images: UTSArray - get() { - return _tRG(__v_raw, "images", __v_raw.images, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("images")) { - return - } - val oldValue = __v_raw.images - __v_raw.images = value - _tRS(__v_raw, "images", oldValue, value) - } -} -open class RefundOrderItem ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var product_name: String, - open var sku_specifications: Any? = null, - @JsonNotNull - open var price: Number, - @JsonNotNull - open var quantity: Number, - open var product: RefundProductInfo? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundOrderItem", "pages/mall/consumer/refund.uvue", 116, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RefundOrderItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RefundOrderItemReactiveObject : RefundOrderItem, IUTSReactive { - override var __v_raw: RefundOrderItem - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RefundOrderItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, product_name = __v_raw.product_name, sku_specifications = __v_raw.sku_specifications, price = __v_raw.price, quantity = __v_raw.quantity, product = __v_raw.product) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RefundOrderItemReactiveObject { - return RefundOrderItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var product_name: String - get() { - return _tRG(__v_raw, "product_name", __v_raw.product_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product_name")) { - return - } - val oldValue = __v_raw.product_name - __v_raw.product_name = value - _tRS(__v_raw, "product_name", oldValue, value) - } - override var sku_specifications: Any? - get() { - return _tRG(__v_raw, "sku_specifications", __v_raw.sku_specifications, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("sku_specifications")) { - return - } - val oldValue = __v_raw.sku_specifications - __v_raw.sku_specifications = value - _tRS(__v_raw, "sku_specifications", oldValue, value) - } - override var price: Number - get() { - return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("price")) { - return - } - val oldValue = __v_raw.price - __v_raw.price = value - _tRS(__v_raw, "price", oldValue, value) - } - override var quantity: Number - get() { - return _tRG(__v_raw, "quantity", __v_raw.quantity, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("quantity")) { - return - } - val oldValue = __v_raw.quantity - __v_raw.quantity = value - _tRS(__v_raw, "quantity", oldValue, value) - } - override var product: RefundProductInfo? - get() { - return _tRG(__v_raw, "product", __v_raw.product, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("product")) { - return - } - val oldValue = __v_raw.product - __v_raw.product = value - _tRS(__v_raw, "product", oldValue, value) - } -} -open class RefundOrderInfo ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var order_no: String, - @JsonNotNull - open var created_at: String, - @JsonNotNull - open var order_items: UTSArray, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundOrderInfo", "pages/mall/consumer/refund.uvue", 125, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RefundOrderInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RefundOrderInfoReactiveObject : RefundOrderInfo, IUTSReactive { - override var __v_raw: RefundOrderInfo - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RefundOrderInfo, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, order_no = __v_raw.order_no, created_at = __v_raw.created_at, order_items = __v_raw.order_items) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RefundOrderInfoReactiveObject { - return RefundOrderInfoReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var order_no: String - get() { - return _tRG(__v_raw, "order_no", __v_raw.order_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_no")) { - return - } - val oldValue = __v_raw.order_no - __v_raw.order_no = value - _tRS(__v_raw, "order_no", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var order_items: UTSArray - get() { - return _tRG(__v_raw, "order_items", __v_raw.order_items, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_items")) { - return - } - val oldValue = __v_raw.order_items - __v_raw.order_items = value - _tRS(__v_raw, "order_items", oldValue, value) - } -} -open class RefundType ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var order_id: String, - @JsonNotNull - open var refund_no: String, - @JsonNotNull - open var refund_type: Number, - @JsonNotNull - open var refund_reason: String, - @JsonNotNull - open var refund_amount: Number, - @JsonNotNull - open var status: Number, - open var status_history: UTSArray? = null, - @JsonNotNull - open var created_at: String, - open var order: RefundOrderInfo? = null, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RefundType", "pages/mall/consumer/refund.uvue", 132, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RefundTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RefundTypeReactiveObject : RefundType, IUTSReactive { - override var __v_raw: RefundType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RefundType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, order_id = __v_raw.order_id, refund_no = __v_raw.refund_no, refund_type = __v_raw.refund_type, refund_reason = __v_raw.refund_reason, refund_amount = __v_raw.refund_amount, status = __v_raw.status, status_history = __v_raw.status_history, created_at = __v_raw.created_at, order = __v_raw.order) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RefundTypeReactiveObject { - return RefundTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var order_id: String - get() { - return _tRG(__v_raw, "order_id", __v_raw.order_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order_id")) { - return - } - val oldValue = __v_raw.order_id - __v_raw.order_id = value - _tRS(__v_raw, "order_id", oldValue, value) - } - override var refund_no: String - get() { - return _tRG(__v_raw, "refund_no", __v_raw.refund_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("refund_no")) { - return - } - val oldValue = __v_raw.refund_no - __v_raw.refund_no = value - _tRS(__v_raw, "refund_no", oldValue, value) - } - override var refund_type: Number - get() { - return _tRG(__v_raw, "refund_type", __v_raw.refund_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("refund_type")) { - return - } - val oldValue = __v_raw.refund_type - __v_raw.refund_type = value - _tRS(__v_raw, "refund_type", oldValue, value) - } - override var refund_reason: String - get() { - return _tRG(__v_raw, "refund_reason", __v_raw.refund_reason, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("refund_reason")) { - return - } - val oldValue = __v_raw.refund_reason - __v_raw.refund_reason = value - _tRS(__v_raw, "refund_reason", oldValue, value) - } - override var refund_amount: Number - get() { - return _tRG(__v_raw, "refund_amount", __v_raw.refund_amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("refund_amount")) { - return - } - val oldValue = __v_raw.refund_amount - __v_raw.refund_amount = value - _tRS(__v_raw, "refund_amount", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var status_history: UTSArray? - get() { - return _tRG(__v_raw, "status_history", __v_raw.status_history, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status_history")) { - return - } - val oldValue = __v_raw.status_history - __v_raw.status_history = value - _tRS(__v_raw, "status_history", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } - override var order: RefundOrderInfo? - get() { - return _tRG(__v_raw, "order", __v_raw.order, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("order")) { - return - } - val oldValue = __v_raw.order - __v_raw.order = value - _tRS(__v_raw, "order", oldValue, value) - } -} -open class TabCountsType ( - @JsonNotNull - open var processing: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("TabCountsType", "pages/mall/consumer/refund.uvue", 146, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return TabCountsTypeReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class TabCountsTypeReactiveObject : TabCountsType, IUTSReactive { - override var __v_raw: TabCountsType - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: TabCountsType, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(processing = __v_raw.processing) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): TabCountsTypeReactiveObject { - return TabCountsTypeReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var processing: Number - get() { - return _tRG(__v_raw, "processing", __v_raw.processing, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("processing")) { - return - } - val oldValue = __v_raw.processing - __v_raw.processing = value - _tRS(__v_raw, "processing", oldValue, value) - } -} -open class TimelineStepType ( - @JsonNotNull - open var status: Number, - @JsonNotNull - open var title: String, - @JsonNotNull - open var time: String, - @JsonNotNull - open var active: Boolean = false, - @JsonNotNull - open var completed: Boolean = false, - @JsonNotNull - open var desc: String, -) : UTSObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("TimelineStepType", "pages/mall/consumer/refund.uvue", 346, 6) - } -} -val GenPagesMallConsumerRefundClass = CreateVueComponent(GenPagesMallConsumerRefund::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerRefund.inheritAttrs, inject = GenPagesMallConsumerRefund.inject, props = GenPagesMallConsumerRefund.props, propsNeedCastKeys = GenPagesMallConsumerRefund.propsNeedCastKeys, emits = GenPagesMallConsumerRefund.emits, components = GenPagesMallConsumerRefund.components, styles = GenPagesMallConsumerRefund.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerRefund.setup(props as GenPagesMallConsumerRefund) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerRefund { - return GenPagesMallConsumerRefund(instance, renderer) -} -) -val GenPagesMallConsumerApplyRefundClass = CreateVueComponent(GenPagesMallConsumerApplyRefund::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerApplyRefund.inheritAttrs, inject = GenPagesMallConsumerApplyRefund.inject, props = GenPagesMallConsumerApplyRefund.props, propsNeedCastKeys = GenPagesMallConsumerApplyRefund.propsNeedCastKeys, emits = GenPagesMallConsumerApplyRefund.emits, components = GenPagesMallConsumerApplyRefund.components, styles = GenPagesMallConsumerApplyRefund.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerApplyRefund.setup(props as GenPagesMallConsumerApplyRefund) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerApplyRefund { - return GenPagesMallConsumerApplyRefund(instance, renderer) -} -) -val GenPagesMallConsumerRefundReviewClass = CreateVueComponent(GenPagesMallConsumerRefundReview::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerRefundReview.inheritAttrs, inject = GenPagesMallConsumerRefundReview.inject, props = GenPagesMallConsumerRefundReview.props, propsNeedCastKeys = GenPagesMallConsumerRefundReview.propsNeedCastKeys, emits = GenPagesMallConsumerRefundReview.emits, components = GenPagesMallConsumerRefundReview.components, styles = GenPagesMallConsumerRefundReview.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerRefundReview.setup(props as GenPagesMallConsumerRefundReview) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerRefundReview { - return GenPagesMallConsumerRefundReview(instance, renderer) -} -) -open class UiChatMessage ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var viewId: String, - @JsonNotNull - open var type: String, - @JsonNotNull - open var content: String, - @JsonNotNull - open var time: String, - @JsonNotNull - open var msgType: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("UiChatMessage", "pages/mall/consumer/chat.uvue", 153, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return UiChatMessageReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class UiChatMessageReactiveObject : UiChatMessage, IUTSReactive { - override var __v_raw: UiChatMessage - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: UiChatMessage, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, viewId = __v_raw.viewId, type = __v_raw.type, content = __v_raw.content, time = __v_raw.time, msgType = __v_raw.msgType) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UiChatMessageReactiveObject { - return UiChatMessageReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var viewId: String - get() { - return _tRG(__v_raw, "viewId", __v_raw.viewId, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("viewId")) { - return - } - val oldValue = __v_raw.viewId - __v_raw.viewId = value - _tRS(__v_raw, "viewId", oldValue, value) - } - override var type: String - get() { - return _tRG(__v_raw, "type", __v_raw.type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("type")) { - return - } - val oldValue = __v_raw.type - __v_raw.type = value - _tRS(__v_raw, "type", oldValue, value) - } - override var content: String - get() { - return _tRG(__v_raw, "content", __v_raw.content, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("content")) { - return - } - val oldValue = __v_raw.content - __v_raw.content = value - _tRS(__v_raw, "content", oldValue, value) - } - override var time: String - get() { - return _tRG(__v_raw, "time", __v_raw.time, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("time")) { - return - } - val oldValue = __v_raw.time - __v_raw.time = value - _tRS(__v_raw, "time", oldValue, value) - } - override var msgType: String - get() { - return _tRG(__v_raw, "msgType", __v_raw.msgType, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("msgType")) { - return - } - val oldValue = __v_raw.msgType - __v_raw.msgType = value - _tRS(__v_raw, "msgType", oldValue, value) - } -} -val GenPagesMallConsumerChatClass = CreateVueComponent(GenPagesMallConsumerChat::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerChat.inheritAttrs, inject = GenPagesMallConsumerChat.inject, props = GenPagesMallConsumerChat.props, propsNeedCastKeys = GenPagesMallConsumerChat.propsNeedCastKeys, emits = GenPagesMallConsumerChat.emits, components = GenPagesMallConsumerChat.components, styles = GenPagesMallConsumerChat.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerChat.setup(props as GenPagesMallConsumerChat) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerChat { - return GenPagesMallConsumerChat(instance, renderer) -} -) -open class FollowedShop ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var merchant_id: String, - @JsonNotNull - open var shop_name: String, - open var shop_logo: String? = null, - open var description: String? = null, - @JsonNotNull - open var rating_avg: Number, - @JsonNotNull - open var total_sales: Number, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("FollowedShop", "pages/mall/consumer/subscription/followed-shops.uvue", 37, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return FollowedShopReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class FollowedShopReactiveObject : FollowedShop, IUTSReactive { - override var __v_raw: FollowedShop - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: FollowedShop, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, merchant_id = __v_raw.merchant_id, shop_name = __v_raw.shop_name, shop_logo = __v_raw.shop_logo, description = __v_raw.description, rating_avg = __v_raw.rating_avg, total_sales = __v_raw.total_sales) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): FollowedShopReactiveObject { - return FollowedShopReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var merchant_id: String - get() { - return _tRG(__v_raw, "merchant_id", __v_raw.merchant_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("merchant_id")) { - return - } - val oldValue = __v_raw.merchant_id - __v_raw.merchant_id = value - _tRS(__v_raw, "merchant_id", oldValue, value) - } - override var shop_name: String - get() { - return _tRG(__v_raw, "shop_name", __v_raw.shop_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_name")) { - return - } - val oldValue = __v_raw.shop_name - __v_raw.shop_name = value - _tRS(__v_raw, "shop_name", oldValue, value) - } - override var shop_logo: String? - get() { - return _tRG(__v_raw, "shop_logo", __v_raw.shop_logo, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("shop_logo")) { - return - } - val oldValue = __v_raw.shop_logo - __v_raw.shop_logo = value - _tRS(__v_raw, "shop_logo", oldValue, value) - } - override var description: String? - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var rating_avg: Number - get() { - return _tRG(__v_raw, "rating_avg", __v_raw.rating_avg, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("rating_avg")) { - return - } - val oldValue = __v_raw.rating_avg - __v_raw.rating_avg = value - _tRS(__v_raw, "rating_avg", oldValue, value) - } - override var total_sales: Number - get() { - return _tRG(__v_raw, "total_sales", __v_raw.total_sales, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("total_sales")) { - return - } - val oldValue = __v_raw.total_sales - __v_raw.total_sales = value - _tRS(__v_raw, "total_sales", oldValue, value) - } -} -val GenPagesMallConsumerSubscriptionFollowedShopsClass = CreateVueComponent(GenPagesMallConsumerSubscriptionFollowedShops::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerSubscriptionFollowedShops.inheritAttrs, inject = GenPagesMallConsumerSubscriptionFollowedShops.inject, props = GenPagesMallConsumerSubscriptionFollowedShops.props, propsNeedCastKeys = GenPagesMallConsumerSubscriptionFollowedShops.propsNeedCastKeys, emits = GenPagesMallConsumerSubscriptionFollowedShops.emits, components = GenPagesMallConsumerSubscriptionFollowedShops.components, styles = GenPagesMallConsumerSubscriptionFollowedShops.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerSubscriptionFollowedShops.setup(props as GenPagesMallConsumerSubscriptionFollowedShops) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerSubscriptionFollowedShops { - return GenPagesMallConsumerSubscriptionFollowedShops(instance, renderer) -} -) -open class PointRecord ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var points: Number, - @JsonNotNull - open var type: String, - @JsonNotNull - open var description: String, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("PointRecord", "pages/mall/consumer/points/index.uvue", 115, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return PointRecordReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class PointRecordReactiveObject : PointRecord, IUTSReactive { - override var __v_raw: PointRecord - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: PointRecord, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, points = __v_raw.points, type = __v_raw.type, description = __v_raw.description, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): PointRecordReactiveObject { - return PointRecordReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var points: Number - get() { - return _tRG(__v_raw, "points", __v_raw.points, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("points")) { - return - } - val oldValue = __v_raw.points - __v_raw.points = value - _tRS(__v_raw, "points", oldValue, value) - } - override var type: String - get() { - return _tRG(__v_raw, "type", __v_raw.type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("type")) { - return - } - val oldValue = __v_raw.type - __v_raw.type = value - _tRS(__v_raw, "type", oldValue, value) - } - override var description: String - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -open class ExpiringDetail ( - @JsonNotNull - open var points: Number, - open var description: String? = null, - @JsonNotNull - open var expires_at: String, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("ExpiringDetail", "pages/mall/consumer/points/index.uvue", 124, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return ExpiringDetailReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class ExpiringDetailReactiveObject : ExpiringDetail, IUTSReactive { - override var __v_raw: ExpiringDetail - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: ExpiringDetail, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(points = __v_raw.points, description = __v_raw.description, expires_at = __v_raw.expires_at, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ExpiringDetailReactiveObject { - return ExpiringDetailReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var points: Number - get() { - return _tRG(__v_raw, "points", __v_raw.points, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("points")) { - return - } - val oldValue = __v_raw.points - __v_raw.points = value - _tRS(__v_raw, "points", oldValue, value) - } - override var description: String? - get() { - return _tRG(__v_raw, "description", __v_raw.description, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("description")) { - return - } - val oldValue = __v_raw.description - __v_raw.description = value - _tRS(__v_raw, "description", oldValue, value) - } - override var expires_at: String - get() { - return _tRG(__v_raw, "expires_at", __v_raw.expires_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expires_at")) { - return - } - val oldValue = __v_raw.expires_at - __v_raw.expires_at = value - _tRS(__v_raw, "expires_at", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -val GenPagesMallConsumerPointsIndexClass = CreateVueComponent(GenPagesMallConsumerPointsIndex::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerPointsIndex.inheritAttrs, inject = GenPagesMallConsumerPointsIndex.inject, props = GenPagesMallConsumerPointsIndex.props, propsNeedCastKeys = GenPagesMallConsumerPointsIndex.propsNeedCastKeys, emits = GenPagesMallConsumerPointsIndex.emits, components = GenPagesMallConsumerPointsIndex.components, styles = GenPagesMallConsumerPointsIndex.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerPointsIndex.setup(props as GenPagesMallConsumerPointsIndex) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerPointsIndex { - return GenPagesMallConsumerPointsIndex(instance, renderer) -} -) -open class RedPacket ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var amount: Number, - @JsonNotNull - open var name: String, - @JsonNotNull - open var status: Number, - @JsonNotNull - open var expire_at: String, - @JsonNotNull - open var created_at: String, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("RedPacket", "pages/mall/consumer/red-packets/index.uvue", 46, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return RedPacketReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class RedPacketReactiveObject : RedPacket, IUTSReactive { - override var __v_raw: RedPacket - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: RedPacket, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, amount = __v_raw.amount, name = __v_raw.name, status = __v_raw.status, expire_at = __v_raw.expire_at, created_at = __v_raw.created_at) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): RedPacketReactiveObject { - return RedPacketReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var amount: Number - get() { - return _tRG(__v_raw, "amount", __v_raw.amount, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("amount")) { - return - } - val oldValue = __v_raw.amount - __v_raw.amount = value - _tRS(__v_raw, "amount", oldValue, value) - } - override var name: String - get() { - return _tRG(__v_raw, "name", __v_raw.name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("name")) { - return - } - val oldValue = __v_raw.name - __v_raw.name = value - _tRS(__v_raw, "name", oldValue, value) - } - override var status: Number - get() { - return _tRG(__v_raw, "status", __v_raw.status, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("status")) { - return - } - val oldValue = __v_raw.status - __v_raw.status = value - _tRS(__v_raw, "status", oldValue, value) - } - override var expire_at: String - get() { - return _tRG(__v_raw, "expire_at", __v_raw.expire_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("expire_at")) { - return - } - val oldValue = __v_raw.expire_at - __v_raw.expire_at = value - _tRS(__v_raw, "expire_at", oldValue, value) - } - override var created_at: String - get() { - return _tRG(__v_raw, "created_at", __v_raw.created_at, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("created_at")) { - return - } - val oldValue = __v_raw.created_at - __v_raw.created_at = value - _tRS(__v_raw, "created_at", oldValue, value) - } -} -val GenPagesMallConsumerRedPacketsIndexClass = CreateVueComponent(GenPagesMallConsumerRedPacketsIndex::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerRedPacketsIndex.inheritAttrs, inject = GenPagesMallConsumerRedPacketsIndex.inject, props = GenPagesMallConsumerRedPacketsIndex.props, propsNeedCastKeys = GenPagesMallConsumerRedPacketsIndex.propsNeedCastKeys, emits = GenPagesMallConsumerRedPacketsIndex.emits, components = GenPagesMallConsumerRedPacketsIndex.components, styles = GenPagesMallConsumerRedPacketsIndex.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerRedPacketsIndex.setup(props as GenPagesMallConsumerRedPacketsIndex) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerRedPacketsIndex { - return GenPagesMallConsumerRedPacketsIndex(instance, renderer) -} -) -open class BankCard__1 ( - @JsonNotNull - open var id: String, - @JsonNotNull - open var user_id: String, - @JsonNotNull - open var bank_name: String, - @JsonNotNull - open var card_no_last4: String, - @JsonNotNull - open var card_type: String, - @JsonNotNull - open var holder_name: String, - @JsonNotNull - open var is_default: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("BankCard", "pages/mall/consumer/bank-cards/index.uvue", 33, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return BankCard__1ReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class BankCard__1ReactiveObject : BankCard__1, IUTSReactive { - override var __v_raw: BankCard__1 - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: BankCard__1, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, user_id = __v_raw.user_id, bank_name = __v_raw.bank_name, card_no_last4 = __v_raw.card_no_last4, card_type = __v_raw.card_type, holder_name = __v_raw.holder_name, is_default = __v_raw.is_default) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): BankCard__1ReactiveObject { - return BankCard__1ReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var id: String - get() { - return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("id")) { - return - } - val oldValue = __v_raw.id - __v_raw.id = value - _tRS(__v_raw, "id", oldValue, value) - } - override var user_id: String - get() { - return _tRG(__v_raw, "user_id", __v_raw.user_id, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("user_id")) { - return - } - val oldValue = __v_raw.user_id - __v_raw.user_id = value - _tRS(__v_raw, "user_id", oldValue, value) - } - override var bank_name: String - get() { - return _tRG(__v_raw, "bank_name", __v_raw.bank_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bank_name")) { - return - } - val oldValue = __v_raw.bank_name - __v_raw.bank_name = value - _tRS(__v_raw, "bank_name", oldValue, value) - } - override var card_no_last4: String - get() { - return _tRG(__v_raw, "card_no_last4", __v_raw.card_no_last4, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("card_no_last4")) { - return - } - val oldValue = __v_raw.card_no_last4 - __v_raw.card_no_last4 = value - _tRS(__v_raw, "card_no_last4", oldValue, value) - } - override var card_type: String - get() { - return _tRG(__v_raw, "card_type", __v_raw.card_type, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("card_type")) { - return - } - val oldValue = __v_raw.card_type - __v_raw.card_type = value - _tRS(__v_raw, "card_type", oldValue, value) - } - override var holder_name: String - get() { - return _tRG(__v_raw, "holder_name", __v_raw.holder_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("holder_name")) { - return - } - val oldValue = __v_raw.holder_name - __v_raw.holder_name = value - _tRS(__v_raw, "holder_name", oldValue, value) - } - override var is_default: Boolean - get() { - return _tRG(__v_raw, "is_default", __v_raw.is_default, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_default")) { - return - } - val oldValue = __v_raw.is_default - __v_raw.is_default = value - _tRS(__v_raw, "is_default", oldValue, value) - } -} -val GenPagesMallConsumerBankCardsIndexClass = CreateVueComponent(GenPagesMallConsumerBankCardsIndex::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerBankCardsIndex.inheritAttrs, inject = GenPagesMallConsumerBankCardsIndex.inject, props = GenPagesMallConsumerBankCardsIndex.props, propsNeedCastKeys = GenPagesMallConsumerBankCardsIndex.propsNeedCastKeys, emits = GenPagesMallConsumerBankCardsIndex.emits, components = GenPagesMallConsumerBankCardsIndex.components, styles = GenPagesMallConsumerBankCardsIndex.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerBankCardsIndex.setup(props as GenPagesMallConsumerBankCardsIndex) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerBankCardsIndex { - return GenPagesMallConsumerBankCardsIndex(instance, renderer) -} -) -open class BankCardForm ( - @JsonNotNull - open var holder_name: String, - @JsonNotNull - open var card_no: String, - @JsonNotNull - open var bank_name: String, - @JsonNotNull - open var phone: String, - @JsonNotNull - open var is_default: Boolean = false, -) : UTSReactiveObject(), IUTSSourceMap { - override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { - return UTSSourceMapPosition("BankCardForm", "pages/mall/consumer/bank-cards/add.uvue", 37, 6) - } - override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject { - return BankCardFormReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip) - } -} -class BankCardFormReactiveObject : BankCardForm, IUTSReactive { - override var __v_raw: BankCardForm - override var __v_isReadonly: Boolean - override var __v_isShallow: Boolean - override var __v_skip: Boolean - constructor(__v_raw: BankCardForm, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(holder_name = __v_raw.holder_name, card_no = __v_raw.card_no, bank_name = __v_raw.bank_name, phone = __v_raw.phone, is_default = __v_raw.is_default) { - this.__v_raw = __v_raw - this.__v_isReadonly = __v_isReadonly - this.__v_isShallow = __v_isShallow - this.__v_skip = __v_skip - } - override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): BankCardFormReactiveObject { - return BankCardFormReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip) - } - override var holder_name: String - get() { - return _tRG(__v_raw, "holder_name", __v_raw.holder_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("holder_name")) { - return - } - val oldValue = __v_raw.holder_name - __v_raw.holder_name = value - _tRS(__v_raw, "holder_name", oldValue, value) - } - override var card_no: String - get() { - return _tRG(__v_raw, "card_no", __v_raw.card_no, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("card_no")) { - return - } - val oldValue = __v_raw.card_no - __v_raw.card_no = value - _tRS(__v_raw, "card_no", oldValue, value) - } - override var bank_name: String - get() { - return _tRG(__v_raw, "bank_name", __v_raw.bank_name, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("bank_name")) { - return - } - val oldValue = __v_raw.bank_name - __v_raw.bank_name = value - _tRS(__v_raw, "bank_name", oldValue, value) - } - override var phone: String - get() { - return _tRG(__v_raw, "phone", __v_raw.phone, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("phone")) { - return - } - val oldValue = __v_raw.phone - __v_raw.phone = value - _tRS(__v_raw, "phone", oldValue, value) - } - override var is_default: Boolean - get() { - return _tRG(__v_raw, "is_default", __v_raw.is_default, __v_isReadonly, __v_isShallow) - } - set(value) { - if (!__v_canSet("is_default")) { - return - } - val oldValue = __v_raw.is_default - __v_raw.is_default = value - _tRS(__v_raw, "is_default", oldValue, value) - } -} -val GenPagesMallConsumerBankCardsAddClass = CreateVueComponent(GenPagesMallConsumerBankCardsAdd::class.java, fun(): VueComponentOptions { - return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMallConsumerBankCardsAdd.inheritAttrs, inject = GenPagesMallConsumerBankCardsAdd.inject, props = GenPagesMallConsumerBankCardsAdd.props, propsNeedCastKeys = GenPagesMallConsumerBankCardsAdd.propsNeedCastKeys, emits = GenPagesMallConsumerBankCardsAdd.emits, components = GenPagesMallConsumerBankCardsAdd.components, styles = GenPagesMallConsumerBankCardsAdd.styles, setup = fun(props: ComponentPublicInstance): Any? { - return GenPagesMallConsumerBankCardsAdd.setup(props as GenPagesMallConsumerBankCardsAdd) - } - ) -} -, fun(instance, renderer): GenPagesMallConsumerBankCardsAdd { - return GenPagesMallConsumerBankCardsAdd(instance, renderer) -} -) -fun createApp(): UTSJSONObject { - val app = createSSRApp(GenAppClass) - app.config.globalProperties["\$t"] = true - return _uO("app" to app) -} -fun main(app: IApp) { - definePageRoutes() - defineAppConfig() - (createApp()["app"] as VueApp).mount(app, GenUniApp()) -} -open class UniAppConfig : io.dcloud.uniapp.appframe.AppConfig { - override var name: String = "商城消费者端" - override var appid: String = "__UNI__CONSUMER" - override var versionName: String = "1.0.0" - override var versionCode: String = "100" - override var uniCompilerVersion: String = "4.87" - constructor() : super() {} -} -fun definePageRoutes() { - __uniRoutes.push(UniPageRoute(path = "pages/user/login", component = GenPagesUserLoginClass, meta = UniPageMeta(isQuit = true), style = _uM("navigationBarTitleText" to "用户登录", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/boot", component = GenPagesUserBootClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to ""))) - __uniRoutes.push(UniPageRoute(path = "pages/user/register", component = GenPagesUserRegisterClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "注册"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/forgot-password", component = GenPagesUserForgotPasswordClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "忘记密码"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/terms", component = GenPagesUserTermsClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "用户协议与隐私政策"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/center", component = GenPagesUserCenterClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "用户中心"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/profile", component = GenPagesUserProfileClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "个人资料"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/change-password", component = GenPagesUserChangePasswordClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "修改密码"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/bind-phone", component = GenPagesUserBindPhoneClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "绑定手机"))) - __uniRoutes.push(UniPageRoute(path = "pages/user/bind-email", component = GenPagesUserBindEmailClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "绑定邮箱"))) - __uniRoutes.push(UniPageRoute(path = "pages/main/index", component = GenPagesMainIndexClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "首页", "navigationStyle" to "custom", "enablePullDownRefresh" to false))) - __uniRoutes.push(UniPageRoute(path = "pages/main/category", component = GenPagesMainCategoryClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "分类", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/main/messages", component = GenPagesMainMessagesClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "消息", "navigationStyle" to "custom", "enablePullDownRefresh" to true))) - __uniRoutes.push(UniPageRoute(path = "pages/main/cart", component = GenPagesMainCartClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "购物车", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/main/profile", component = GenPagesMainProfileClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/settings", component = GenPagesMallConsumerSettingsClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "设置"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/wallet", component = GenPagesMallConsumerWalletClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的钱包"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/withdraw", component = GenPagesMallConsumerWithdrawClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "余额提现"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/search", component = GenPagesMallConsumerSearchClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "搜索", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/product-detail", component = GenPagesMallConsumerProductDetailClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "商品详情"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/shop-detail", component = GenPagesMallConsumerShopDetailClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "店铺详情"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/coupons", component = GenPagesMallConsumerCouponsClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的优惠券"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/favorites", component = GenPagesMallConsumerFavoritesClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的收藏"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/footprint", component = GenPagesMallConsumerFootprintClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的足迹"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/address-list", component = GenPagesMallConsumerAddressListClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "收货地址"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/address-edit", component = GenPagesMallConsumerAddressEditClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "编辑地址"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/checkout", component = GenPagesMallConsumerCheckoutClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "确认订单"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/payment", component = GenPagesMallConsumerPaymentClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "收银台"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/payment-success", component = GenPagesMallConsumerPaymentSuccessClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "支付成功", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/orders", component = GenPagesMallConsumerOrdersClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的订单", "enablePullDownRefresh" to true))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/order-detail", component = GenPagesMallConsumerOrderDetailClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "订单详情"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/logistics", component = GenPagesMallConsumerLogisticsClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "物流详情"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/review", component = GenPagesMallConsumerReviewClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "评价晒单"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/refund", component = GenPagesMallConsumerRefundClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "退款/售后"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/apply-refund", component = GenPagesMallConsumerApplyRefundClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "申请售后"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/refund-review", component = GenPagesMallConsumerRefundReviewClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "服务评价"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/chat", component = GenPagesMallConsumerChatClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "客服聊天", "navigationStyle" to "custom"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/subscription/followed-shops", component = GenPagesMallConsumerSubscriptionFollowedShopsClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "关注店铺"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/points/index", component = GenPagesMallConsumerPointsIndexClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "积分管理"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/red-packets/index", component = GenPagesMallConsumerRedPacketsIndexClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的红包"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/bank-cards/index", component = GenPagesMallConsumerBankCardsIndexClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "银行卡管理"))) - __uniRoutes.push(UniPageRoute(path = "pages/mall/consumer/bank-cards/add", component = GenPagesMallConsumerBankCardsAddClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "添加银行卡"))) -} -val __uniTabBar: Map? = _uM("color" to "#999999", "selectedColor" to "#ff5000", "backgroundColor" to "#ffffff", "borderStyle" to "black", "list" to _uA( - _uM("pagePath" to "pages/main/index", "text" to "首页", "iconPath" to "static/tabbar/home.png", "selectedIconPath" to "static/tabbar/home.png"), - _uM("pagePath" to "pages/main/category", "text" to "分类", "iconPath" to "static/tabbar/category.png", "selectedIconPath" to "static/tabbar/category.png"), - _uM("pagePath" to "pages/main/messages", "text" to "消息", "iconPath" to "static/tabbar/message.png", "selectedIconPath" to "static/tabbar/message.png"), - _uM("pagePath" to "pages/main/cart", "text" to "购物车", "iconPath" to "static/tabbar/cart.png", "selectedIconPath" to "static/tabbar/cart.png"), - _uM("pagePath" to "pages/main/profile", "text" to "我的", "iconPath" to "static/tabbar/user.png", "selectedIconPath" to "static/tabbar/user.png") -)) -val __uniLaunchPage: Map = _uM("url" to "pages/user/login", "style" to _uM("navigationBarTitleText" to "用户登录", "navigationStyle" to "custom")) -fun defineAppConfig() { - __uniConfig.entryPagePath = "/pages/user/login" - __uniConfig.globalStyle = _uM("navigationBarTextStyle" to "black", "navigationBarTitleText" to "mall", "navigationBarBackgroundColor" to "#FFFFFF", "backgroundColor" to "#F8F8F8") - __uniConfig.getTabBarConfig = fun(): Map? { - return _uM("color" to "#999999", "selectedColor" to "#ff5000", "backgroundColor" to "#ffffff", "borderStyle" to "black", "list" to _uA( - _uM("pagePath" to "pages/main/index", "text" to "首页", "iconPath" to "static/tabbar/home.png", "selectedIconPath" to "static/tabbar/home.png"), - _uM("pagePath" to "pages/main/category", "text" to "分类", "iconPath" to "static/tabbar/category.png", "selectedIconPath" to "static/tabbar/category.png"), - _uM("pagePath" to "pages/main/messages", "text" to "消息", "iconPath" to "static/tabbar/message.png", "selectedIconPath" to "static/tabbar/message.png"), - _uM("pagePath" to "pages/main/cart", "text" to "购物车", "iconPath" to "static/tabbar/cart.png", "selectedIconPath" to "static/tabbar/cart.png"), - _uM("pagePath" to "pages/main/profile", "text" to "我的", "iconPath" to "static/tabbar/user.png", "selectedIconPath" to "static/tabbar/user.png") - )) - } - __uniConfig.tabBar = __uniConfig.getTabBarConfig() - __uniConfig.conditionUrl = "" - __uniConfig.uniIdRouter = Map() - __uniConfig.ready = true -} -fun VueComponent.`$t`(key: String, values: Any?, locale: String?): String { - if (i18n.global == null) { - console.error("i18n is not initialized", " at main.uts:12") - return key - } - val params = values as UTSJSONObject? - val res = i18n.global.t(key, params, locale) - if (res.length > 0) { - return res - } - return key -} -open class GenUniApp : UniAppImpl() { - open val vm: GenApp? - get() { - return getAppVm() as GenApp? - } - open val `$vm`: GenApp? - get() { - return getAppVm() as GenApp? - } -} -fun getApp(): GenUniApp { - return getUniApp() as GenUniApp -} diff --git a/unpackage/cache/.app-android/src/pages/main/cart.kt b/unpackage/cache/.app-android/src/pages/main/cart.kt deleted file mode 100644 index 79d312a2..00000000 --- a/unpackage/cache/.app-android/src/pages/main/cart.kt +++ /dev/null @@ -1,850 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMainCart : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMainCart) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMainCart - val _cache = __ins.renderCache - val compareStrings = fun(a: String, b: String): Boolean { - console.log("[compareStrings] a length:", a.length, "b length:", b.length, " at pages/main/cart.uvue:213") - console.log("[compareStrings] a type:", UTSAndroid.`typeof`(a), "b type:", UTSAndroid.`typeof`(b), " at pages/main/cart.uvue:214") - console.log("[compareStrings] a value:", JSON.stringify(a), " at pages/main/cart.uvue:215") - console.log("[compareStrings] b value:", JSON.stringify(b), " at pages/main/cart.uvue:216") - if (a.length !== b.length) { - return false - } - run { - var i: Number = 0 - while(i < a.length){ - val aCode = a.charCodeAt(i) - val bCode = b.charCodeAt(i) - if (aCode != null && bCode != null && aCode !== bCode) { - console.log("[compareStrings] mismatch at index:", i, "a:", aCode, "b:", bCode, " at pages/main/cart.uvue:223") - return false - } - i++ - } - } - return true - } - val cartItems = ref(_uA()) - val recommendProducts = ref(_uA()) - val recommendPage = ref(1) - val loading = ref(false) - val statusBarHeight = ref(0) - val isManageMode = ref(false) - val updatingItems = ref>(Set()) - val capsuleButtonInfo = ref(null) - val navBarRight = ref(0) - val cartGroups = computed>(fun(): UTSArray { - console.log("[cartGroups] 计算购物车分组, cartItems count:", cartItems.value.length, " at pages/main/cart.uvue:266") - val groups = Map() - cartItems.value.forEach(fun(item: LocalCartItem){ - console.log("[cartGroups] item:", item.id, "shopId:", item.shopId, "shopName:", item.shopName, " at pages/main/cart.uvue:270") - val shopKey = item.shopId - if (!groups.has(shopKey)) { - groups.set(shopKey, CartGroup(shopId = item.shopId, shopName = item.shopName, merchantId = item.merchantId, items = _uA())) - } - val group = groups.get(shopKey) - if (group != null) { - group.items.push(item) - } - } - ) - val groupArray: UTSArray = _uA() - groups.forEach(fun(value: CartGroup){ - console.log("[cartGroups] group:", value.shopId, "items count:", value.items.length, " at pages/main/cart.uvue:289") - groupArray.push(value) - } - ) - return groupArray - } - ) - val allSelected = computed(fun(): Boolean { - return cartItems.value.length > 0 && cartItems.value.every(fun(item: LocalCartItem): Boolean { - return item.selected - } - ) - } - ) - val selectedCount = computed(fun(): Number { - return cartItems.value.filter(fun(item: LocalCartItem): Boolean { - return item.selected - } - ).reduce(fun(sum: Number, item: LocalCartItem): Number { - return sum + item.quantity - } - , 0) - } - ) - val totalPrice = computed(fun(): String { - return cartItems.value.filter(fun(item: LocalCartItem): Boolean { - return item.selected - } - ).reduce(fun(sum: Number, item: LocalCartItem): Number { - val finalPrice = if (item.memberPrice > 0 && item.memberPrice < item.price) { - item.memberPrice - } else { - item.price - } - return sum + finalPrice * item.quantity - } - , 0).toFixed(2) - } - ) - val memberSavedAmount = computed(fun(): String { - return cartItems.value.filter(fun(item: LocalCartItem): Boolean { - return item.selected && item.memberPrice > 0 && item.memberPrice < item.price - } - ).reduce(fun(sum: Number, item: LocalCartItem): Number { - return sum + (item.price - item.memberPrice) * item.quantity - } - , 0).toFixed(2) - } - ) - val isShopSelected = fun(shopId: String): Boolean { - val shopItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - if (compareStrings(cartItems.value[i].shopId, shopId)) { - shopItems.push(cartItems.value[i]) - } - i++ - } - } - if (shopItems.length === 0) { - return false - } - run { - var i: Number = 0 - while(i < shopItems.length){ - if (!shopItems[i].selected) { - return false - } - i++ - } - } - return true - } - val toggleManageMode = fun(){ - isManageMode.value = !isManageMode.value - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight ?: 0 - } - onMounted(fun(){ - initPage() - } - ) - val updateRecommendList = fun(recommends: UTSArray){ - recommendProducts.value = recommends.map(fun(p: Product): RecommendProduct { - return RecommendProduct(id = p.id, shopId = p.merchant_id ?: "unknown", shopName = p.shop_name ?: "商城推荐", name = p.name, price = p.base_price ?: p.market_price ?: 0, image = p.main_image_url ?: p.image_url ?: "/static/images/default-product.png", skuId = "", merchant_id = p.merchant_id ?: "") - } - ) - } - val refreshRecommend = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - if (loading.value) { - return@w1 - } - loading.value = true - uni_showLoading(ShowLoadingOptions(title = "正在挑选...", mask = true)) - val maxOffsetPages: Number = 20 - val sorts = _uA( - "sales", - "price_asc", - "rating" - ) - val nextRandomPage = Math.floor(Math.random() * maxOffsetPages) + 1 - val randomSort = sorts[Math.floor(Math.random() * sorts.length)] - console.log("[refreshRecommend] 换一批: 随机页=" + nextRandomPage + ", 随机排=" + randomSort, " at pages/main/cart.uvue:409") - val hotResp = await(supabaseService.searchProducts("", nextRandomPage, 6, randomSort)) - var recommends = hotResp.data - if (recommends.length === 0) { - val fallbackResp = await(supabaseService.searchProducts("", 1, 6, "sales")) - recommends = fallbackResp.data - } - if (recommends.length > 0) { - recommends.sort(fun(_a, _b): Number { - return Math.random() - 0.5 - }) - updateRecommendList(recommends) - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "已为你换一批好物", icon = "none", duration = 1000)) - } else { - uni_hideLoading() - } - } - catch (error: Throwable) { - uni_hideLoading() - console.error("刷新推荐失败:", error, " at pages/main/cart.uvue:436") - uni_showToast(ShowToastOptions(title = "加载失败,请重试", icon = "none")) - } - finally { - loading.value = false - } - }) - } - val loadCartData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - var memberDiscount: Number = 1.0 - try { - val memberInfo = await(supabaseService.getUserMemberInfo()) - val discountRaw = memberInfo.get("discount") - if (discountRaw != null) { - memberDiscount = discountRaw as Number - } - } - catch (e: Throwable) { - console.log("获取会员信息失败,使用默认折扣:", e, " at pages/main/cart.uvue:457") - } - val supabaseCartItems = await(supabaseService.getCartItems()) - val transformedItems = supabaseCartItems.map(fun(item: CartItem): LocalCartItem { - console.log("CartItem raw: id=" + item.id + ", shop_id=" + item.shop_id + ", shop_name=" + item.shop_name + ", name=" + item.product_name + ", price=" + item.product_price, " at pages/main/cart.uvue:466") - val shopId = if ((item.shop_id != null && item.shop_id !== "")) { - item.shop_id!! - } else { - "default_shop" - } - val shopName = if ((item.shop_name != null && item.shop_name !== "")) { - item.shop_name!! - } else { - "商城优选" - } - val originalPrice = if (item.product_price != null) { - item.product_price!! - } else { - 0 - } - var memberPrice: Number = 0 - if (memberDiscount > 0 && memberDiscount < 1 && originalPrice > 0) { - memberPrice = Math.round(originalPrice * memberDiscount * 100) / 100 - } - return LocalCartItem(id = item.id, shopId = shopId, shopName = shopName, name = item.product_name ?: "未知商品", price = originalPrice, originalPrice = originalPrice, memberPrice = memberPrice, image = item.product_image ?: "/static/images/default-product.png", spec = item.product_specification ?: "标准规格", quantity = item.quantity ?: 1, selected = item.selected ?: false, productId = item.product_id ?: "", skuId = item.sku_id ?: "", merchantId = item.merchant_id ?: "") - } - ) - console.log("Transformed items count:", transformedItems.length, " at pages/main/cart.uvue:497") - cartItems.value = transformedItems - var recommends = await(supabaseService.getRecommendedProducts(6)) - if (recommends.length === 0) { - val hotResp = await(supabaseService.searchProducts("", 1, 6, "sales")) - recommends = hotResp.data - } - if (recommends.length > 0) { - recommendProducts.value = recommends.map(fun(p: Product): RecommendProduct { - return RecommendProduct(id = p.id, shopId = p.merchant_id ?: "unknown", shopName = p.shop_name ?: "商城推荐", name = p.name, price = p.base_price ?: p.market_price ?: 0, image = p.main_image_url ?: p.image_url ?: "/static/images/default-product.png", skuId = "", merchant_id = p.merchant_id ?: "") - }) - } else { - recommendProducts.value = _uA() - } - } - catch (error: Throwable) { - console.error("加载购物车数据失败:", error, " at pages/main/cart.uvue:526") - cartItems.value = _uA() - } - finally { - loading.value = false - } - }) - } - onShow__1(fun(){ - loadCartData() - } - ) - val toggleSelect = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend { - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - val newSelected = !cartItems.value[index].selected - cartItems.value[index].selected = newSelected - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemSelection(itemId, newSelected)) - if (!success) { - console.error("更新选中状态失败", " at pages/main/cart.uvue:549") - cartItems.value[index].selected = !newSelected - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "网络异常,请重试", icon = "none")) - } - } - }) - } - val toggleShopSelect = fun(shopId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("[toggleShopSelect] shopId:", shopId, " at pages/main/cart.uvue:559") - console.log("[toggleShopSelect] shopId length:", shopId.length, " at pages/main/cart.uvue:560") - console.log("[toggleShopSelect] cartItems.value.length:", cartItems.value.length, " at pages/main/cart.uvue:561") - val shopItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - val item = cartItems.value[i] - val itemShopId = item.shopId - val isMatch = compareStrings(itemShopId, shopId) - console.log("[toggleShopSelect] checking item:", item.id, "item.shopId:", itemShopId, "match:", isMatch, " at pages/main/cart.uvue:570") - if (isMatch) { - shopItems.push(item) - } - i++ - } - } - console.log("[toggleShopSelect] shopItems count:", shopItems.length, " at pages/main/cart.uvue:575") - if (shopItems.length === 0) { - return@w1 - } - var allSelected = true - run { - var i: Number = 0 - while(i < shopItems.length){ - if (!shopItems[i].selected) { - allSelected = false - break - } - i++ - } - } - val newState = !allSelected - console.log("[toggleShopSelect] allSelected:", allSelected, "newState:", newState, " at pages/main/cart.uvue:588") - val shopItemIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < shopItems.length){ - shopItemIds.push(shopItems[i].id) - i++ - } - } - console.log("[toggleShopSelect] shopItemIds:", shopItemIds, " at pages/main/cart.uvue:594") - val newCartItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.value.length){ - val item = cartItems.value[i] - val isMatch = compareStrings(item.shopId, shopId) - if (isMatch) { - console.log("[toggleShopSelect] updating item:", item.id, "to selected:", newState, " at pages/main/cart.uvue:602") - val newItem = LocalCartItem(id = item.id, shopId = item.shopId, shopName = item.shopName, name = item.name, price = item.price, originalPrice = item.originalPrice, memberPrice = item.memberPrice, image = item.image, spec = item.spec, quantity = item.quantity, selected = newState, productId = item.productId, skuId = item.skuId, merchantId = item.merchantId) - newCartItems.push(newItem) - } else { - newCartItems.push(item) - } - i++ - } - } - cartItems.value = newCartItems - val success = await(supabaseService.batchUpdateCartItemSelection(shopItemIds, newState)) - if (!success) { - console.error("批量更新店铺商品选中状态失败", " at pages/main/cart.uvue:632") - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - loadCartData() - } - }) - } - val toggleSelectAll = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val newSelectedState = !allSelected.value - val oldItems = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(cartItems.value)), " at pages/main/cart.uvue:647") as UTSArray - val selectedItems = cartItems.value.map(fun(item): LocalCartItem { - item.selected = newSelectedState - return item - } - ) - cartItems.value = selectedItems - val itemIds = cartItems.value.map(fun(item): String { - return item.id - } - ) - if (itemIds.length === 0) { - return@w1 - } - val success = await(supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState)) - if (!success) { - console.error("批量更新选中状态失败", " at pages/main/cart.uvue:661") - cartItems.value = oldItems - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val increaseQuantity = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (updatingItems.value.has(itemId)) { - return@w1 - } - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - updatingItems.value.add(itemId) - val newQuantity = cartItems.value[index].quantity + 1 - cartItems.value[index].quantity = newQuantity - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) - updatingItems.value.`delete`(itemId) - if (!success) { - console.error("更新商品数量失败", " at pages/main/cart.uvue:685") - cartItems.value[index].quantity = newQuantity - 1 - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) - } - } - }) - } - val decreaseQuantity = fun(itemId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (updatingItems.value.has(itemId)) { - return@w1 - } - val index = cartItems.value.findIndex(fun(item): Boolean { - return item.id === itemId - } - ) - if (index !== -1) { - if (cartItems.value[index].quantity > 1) { - updatingItems.value.add(itemId) - val newQuantity = cartItems.value[index].quantity - 1 - cartItems.value[index].quantity = newQuantity - cartItems.value = cartItems.value.slice() - val success = await(supabaseService.updateCartItemQuantity(itemId, newQuantity)) - updatingItems.value.`delete`(itemId) - if (!success) { - console.error("更新商品数量失败", " at pages/main/cart.uvue:710") - cartItems.value[index].quantity = newQuantity + 1 - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "更新失败", icon = "none")) - } - } else { - uni_showModal(ShowModalOptions(title = "提示", content = "确定要从购物车移除该商品吗?", success = fun(res){ - if (res.confirm) { - supabaseService.deleteCartItem(itemId).then(fun(success){ - if (success) { - cartItems.value.splice(index, 1) - cartItems.value = cartItems.value.slice() - uni_showToast(ShowToastOptions(title = "已移除", icon = "none")) - } else { - console.error("删除商品失败", " at pages/main/cart.uvue:733") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - } - }) - } - val deleteSelectedItems = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (selectedCount.value === 0) { - uni_showToast(ShowToastOptions(title = "请选择要删除的商品", icon = "none")) - return@w1 - } - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除选中的 " + selectedCount.value + " 件商品吗?", success = fun(res){ - if (res.confirm) { - val selectedItemIds = cartItems.value.filter(fun(item): Boolean { - return item.selected - } - ).map(fun(item): String { - return item.id - } - ) - supabaseService.batchDeleteCartItems(selectedItemIds).then(fun(success){ - if (success) { - cartItems.value = cartItems.value.filter(fun(item): Boolean { - return !item.selected - }) - if (cartItems.value.length === 0) { - isManageMode.value = false - } - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - } else { - console.error("批量删除商品失败", " at pages/main/cart.uvue:782") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - }) - } - val addToCart = fun(product: RecommendProduct): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val productId = product.id - val skuId = product.skuId - val merchantId = product.merchant_id - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, skuId, merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - loadCartData() - } else { - console.error("添加商品到购物车失败", " at pages/main/cart.uvue:830") - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - catch (error: Throwable) { - console.error("添加商品到购物车异常:", error, " at pages/main/cart.uvue:838") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - }) - } - val navigateToShop = fun(shopId: String, merchantId: Any){ - if (shopId == "" || shopId === "default_shop" || shopId === "unknown") { - return - } - var url = "/pages/mall/consumer/shop-detail?id=" + shopId - if (merchantId != null) { - val mId = "" + merchantId - if (mId !== "" && mId !== "null" && mId !== "undefined" && mId !== "false") { - url += "&merchantId=" + mId - } - } - uni_navigateTo(NavigateToOptions(url = url)) - } - val goShopping = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - val navigateToProduct = fun(product: Any){ - console.log("navigateToProduct", product, " at pages/main/cart.uvue:867") - val productJson = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/main/cart.uvue:870") as UTSJSONObject - var productId = productJson.getString("productId") - if (productId == null || productId == "") { - productId = productJson.getString("id") - } - if (productId == null || productId == "") { - console.error("无法获取商品ID", product, " at pages/main/cart.uvue:879") - return - } - var paramsArr: UTSArray = _uA() - paramsArr.push("id=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:885")) - paramsArr.push("productId=" + UTSAndroid.consoleDebugError(encodeURIComponent(productId), " at pages/main/cart.uvue:886")) - val price = productJson.getNumber("price") ?: 0 - paramsArr.push("price=" + price) - var originalPrice = productJson.getNumber("original_price") - if (originalPrice == null) { - originalPrice = productJson.getNumber("originalPrice") - } - if (originalPrice == null) { - originalPrice = parseFloat((price * 1.2).toFixed(2)) - } - paramsArr.push("originalPrice=" + originalPrice) - val name = productJson.getString("name") ?: "" - paramsArr.push("name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/main/cart.uvue:901")) - val image = productJson.getString("image") ?: "/static/images/default-product.png" - paramsArr.push("image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/main/cart.uvue:904")) - val url = "/pages/mall/consumer/product-detail?" + paramsArr.join("&") - console.log("Navigate to:", url, " at pages/main/cart.uvue:907") - uni_navigateTo(NavigateToOptions(url = url)) - } - val goToCheckout = fun(){ - if (selectedCount.value === 0) { - uni_showToast(ShowToastOptions(title = "请选择商品", icon = "none")) - return - } - val selectedItems = cartItems.value.filter(fun(item): Boolean { - return item.selected - } - ).map(fun(item): UTSJSONObject { - return (object : UTSJSONObject() { - var id = item.id - var product_id = item.productId ?: item.id - var sku_id = item.skuId ?: item.id - var product_name = item.name - var shop_id = item.shopId - var shop_name = item.shopName - var merchant_id = item.merchantId - var product_image = item.image - var sku_specifications = item.spec - var price = item.price - var quantity = item.quantity - }) - } - ) - uni_setStorageSync("checkout_type", "cart") - try { - uni_setStorageSync("checkout_items", JSON.stringify(selectedItems)) - } - catch (e: Throwable) { - console.error("存储结算数据失败", e, " at pages/main/cart.uvue:946") - uni_showToast(ShowToastOptions(title = "系统异常,请重试", icon = "none")) - return - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/checkout")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "cart-page"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "nav-container", "style" to _nS(_uM("paddingRight" to ((if (navBarRight.value > 0) { - navBarRight.value - } else { - 16 - } - ) + "px")))), _uA( - _cE("text", _uM("class" to "nav-title"), "购物车"), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to toggleManageMode), _uA( - _cE("text", _uM("class" to "action-icon"), _tD(if (isManageMode.value) { - "✓" - } else { - "⚙️" - } - ), 1), - _cE("text", _uM("class" to "action-text"), _tD(if (isManageMode.value) { - "完成" - } else { - "管理" - } - ), 1) - )) - )) - ), 4) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("scroll-view", _uM("scroll-y" to true, "class" to "cart-content", "show-scrollbar" to false, "enhanced" to true, "bounces" to true), _uA( - if (isTrue(!loading.value && cartItems.value.length === 0)) { - _cE("view", _uM("key" to 0, "class" to "empty-cart"), _uA( - _cE("text", _uM("class" to "empty-icon"), "🛒"), - _cE("text", _uM("class" to "empty-title"), "购物车是空的"), - _cE("text", _uM("class" to "empty-desc"), "快去挑选喜欢的商品吧"), - _cE("button", _uM("class" to "go-shopping-btn", "onClick" to goShopping), "去逛逛") - )) - } else { - _cE("view", _uM("key" to 1, "class" to "cart-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(cartGroups.value, fun(group, __key, __index, _cached): Any { - return _cE("view", _uM("key" to group.shopId, "class" to "shop-group"), _uA( - _cE("view", _uM("class" to "shop-header"), _uA( - _cE("view", _uM("class" to "shop-select", "onClick" to fun(){ - toggleShopSelect(group.shopId) - } - ), _uA( - if (isTrue(isShopSelected(group.shopId))) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - } - ), 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-icon", "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), "🏪", 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-name", "lines" to 1, "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), _tD(group.shopName), 9, _uA( - "onClick" - )), - _cE("text", _uM("class" to "shop-arrow", "onClick" to fun(){ - navigateToShop(group.shopId, group.merchantId) - } - ), ">", 8, _uA( - "onClick" - )) - )), - _cE(Fragment, null, RenderHelpers.renderList(group.items, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "cart-item"), _uA( - _cE("view", _uM("class" to "item-select", "onClick" to fun(){ - toggleSelect(item.id) - } - ), _uA( - if (isTrue(item.selected)) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - } - ), 8, _uA( - "onClick" - )), - _cE("image", _uM("class" to "item-image", "src" to item.image, "mode" to "aspectFill", "onClick" to fun(){ - navigateToProduct(item) - } - ), null, 8, _uA( - "src", - "onClick" - )), - _cE("view", _uM("class" to "item-info"), _uA( - _cE("view", _uM("class" to "info-top"), _uA( - _cE("text", _uM("class" to "item-name", "lines" to 1), _tD(item.name), 1), - _cE("text", _uM("class" to "item-spec"), _tD(item.spec), 1) - )), - _cE("view", _uM("class" to "item-footer"), _uA( - _cE("text", _uM("class" to "item-price"), "¥" + _tD(item.price), 1), - _cE("view", _uM("class" to "quantity-control"), _uA( - _cE("text", _uM("class" to "quantity-btn", "onClick" to fun(){ - decreaseQuantity(item.id) - } - ), "-", 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "quantity-value"), _tD(item.quantity), 1), - _cE("text", _uM("class" to "quantity-btn", "onClick" to fun(){ - increaseQuantity(item.id) - } - ), "+", 8, _uA( - "onClick" - )) - )) - )) - )) - )) - } - ), 128) - )) - } - ), 128) - )) - } - , - if (cartItems.value.length > 0) { - _cE("view", _uM("key" to 2, "class" to "cart-action-bar"), _uA( - _cE("view", _uM("class" to "action-bar-content"), _uA( - _cE("view", _uM("class" to "action-left"), _uA( - _cE("view", _uM("class" to "select-all", "onClick" to toggleSelectAll), _uA( - if (isTrue(allSelected.value)) { - _cE("text", _uM("key" to 0, "class" to "selected-icon"), "✓") - } else { - _cE("text", _uM("key" to 1, "class" to "unselected-icon")) - }, - _cE("text", _uM("class" to "select-all-text"), "全选") - )) - )), - _cE("view", _uM("class" to "action-right"), _uA( - if (isTrue(!isManageMode.value)) { - _cE("view", _uM("key" to 0, "class" to "total-info"), _uA( - _cE("text", _uM("class" to "total-text"), "合计:"), - _cE("text", _uM("class" to "total-price"), "¥" + _tD(totalPrice.value), 1), - if (parseFloat(memberSavedAmount.value) > 0) { - _cE("text", _uM("key" to 0, "class" to "member-saved"), "会员已省¥" + _tD(memberSavedAmount.value), 1) - } else { - _cC("v-if", true) - } - )) - } else { - _cC("v-if", true) - }, - if (isTrue(!isManageMode.value)) { - _cE("button", _uM("key" to 1, "class" to "checkout-btn", "onClick" to goToCheckout), " 去结算(" + _tD(selectedCount.value) + ") ", 1) - } else { - _cE("button", _uM("key" to 2, "class" to "delete-btn", "onClick" to deleteSelectedItems), " 删除(" + _tD(selectedCount.value) + ") ", 1) - } - )) - )) - )) - } else { - _cC("v-if", true) - } - , - if (recommendProducts.value.length > 0) { - _cE("view", _uM("key" to 3, "class" to "recommend-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "猜你喜欢"), - _cE("view", _uM("class" to "refresh-btn", "onClick" to refreshRecommend), _uA( - _cE("text", _uM("class" to "refresh-icon"), "🔄"), - _cE("text", _uM("class" to "refresh-text"), "换一批") - )) - )), - _cE("view", _uM("class" to "recommend-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(recommendProducts.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "recommend-item", "onClick" to fun(){ - navigateToProduct(product) - }), _uA( - _cE("view", _uM("class" to "recommend-image-wrapper"), _uA( - _cE("image", _uM("class" to "recommend-image", "src" to product.image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )) - )), - _cE("text", _uM("class" to "recommend-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "recommend-bottom"), _uA( - _cE("text", _uM("class" to "recommend-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "recommend-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "recommend-add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "tabbar-safe-area")) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("cart-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start", "flexShrink" to 0)), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#FFFFFF")), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "action-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4, "color" to "#FFFFFF")), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#FFFFFF", "fontWeight" to "bold")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "cart-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%", "paddingBottom" to 20)), "cart-action-bar" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 10, "marginRight" to 10, "marginBottom" to 10, "marginLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)", "zIndex" to 10, "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15)), "action-bar-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 15, "paddingBottom" to 12, "paddingLeft" to 15, "width" to "100%")), "action-left" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "action-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-end", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0)), "select-all" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "select-all-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginLeft" to 8, "whiteSpace" to "nowrap")), "total-info" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginRight" to 10, "alignItems" to "center", "flexShrink" to 1, "overflow" to "hidden")), "total-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginRight" to 2, "whiteSpace" to "nowrap", "flexShrink" to 0)), "total-price" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold", "marginLeft" to 4, "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "checkout-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "fontSize" to 14, "fontWeight" to "bold", "minWidth" to 100, "whiteSpace" to "nowrap", "flexShrink" to 0, "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "delete-btn" to _pS(_uM("backgroundColor" to "#ff3b30", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 6, "paddingRight" to 20, "paddingBottom" to 6, "paddingLeft" to 20, "fontSize" to 14, "fontWeight" to "bold", "minWidth" to 100, "whiteSpace" to "nowrap", "flexShrink" to 0, "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "empty-cart" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20, "textAlign" to "center")), "empty-icon" to _pS(_uM("fontSize" to 80, "color" to "#dddddd", "marginBottom" to 20)), "empty-title" to _pS(_uM("fontSize" to 18, "color" to "#666666", "marginBottom" to 10)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-shopping-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "fontSize" to 16)), "cart-list" to _pS(_uM("backgroundColor" to "rgba(0,0,0,0)", "marginTop" to 10, "marginRight" to 10, "marginBottom" to 10, "marginLeft" to 10, "borderTopLeftRadius" to 0, "borderTopRightRadius" to 0, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "overflow" to "visible")), "shop-group" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 12, "overflow" to "hidden")), "shop-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-start", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "shop-select" to _pS(_uM("width" to 24, "height" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 8, "flexShrink" to 0)), "shop-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6, "flexShrink" to 0)), "shop-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "700", "color" to "#333333", "marginRight" to 4, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "shop-arrow" to _pS(_uM("fontSize" to 12, "color" to "#999999", "flexShrink" to 0)), "cart-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "alignItems" to "center", "height" to 100, "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "item-select" to _pS(_uM("width" to 30, "height" to "100%", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 5)), "selected-icon" to _pS(_uM("width" to 18, "height" to 18, "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9, "textAlign" to "center", "lineHeight" to "18px", "fontSize" to 12)), "unselected-icon" to _pS(_uM("width" to 18, "height" to 18, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9)), "item-image" to _pS(_uM("width" to 70, "height" to 70, "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "marginRight" to 10, "flexShrink" to 0)), "item-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between", "height" to 70, "overflow" to "hidden")), "info-top" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "item-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 2, "overflow" to "hidden", "fontWeight" to "bold", "textOverflow" to "ellipsis")), "item-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to "auto")), "item-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "width" to "100%")), "item-price" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold")), "quantity-control" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden", "height" to 28)), "quantity-btn" to _pS(_uM("width" to 28, "height" to 28, "textAlign" to "center", "lineHeight" to "28px", "fontSize" to 16, "color" to "#333333", "backgroundColor" to "#eeeeee")), "quantity-value" to _pS(_uM("minWidth" to 36, "textAlign" to "center", "fontSize" to 14, "lineHeight" to "28px", "color" to "#333333")), "recommend-section" to _pS(_uM("marginTop" to 20, "marginRight" to 10, "marginBottom" to 20, "marginLeft" to 10, "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-header" to _pS(_uM("marginBottom" to 15, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "refresh-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8)), "refresh-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4)), "refresh-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "recommend-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between")), "recommend-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "recommend-image-wrapper" to _pS(_uM("width" to "100%", "paddingBottom" to "100%", "position" to "relative", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "recommend-image" to _pS(_uM("position" to "absolute", "top" to 0, "left" to 0, "width" to "100%", "height" to "100%", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "recommend-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis")), "recommend-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingRight" to 8)), "recommend-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "recommend-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "recommend-add-icon" to _pS(_uM("color" to "#FFFFFF", "fontSize" to 16, "lineHeight" to 1, "fontWeight" to "bold")), "tabbar-safe-area" to _pS(_uM("height" to 100, "width" to "100%", "backgroundColor" to "rgba(0,0,0,0)")), "@TRANSITION" to _uM("action-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/main/category.kt b/unpackage/cache/.app-android/src/pages/main/category.kt deleted file mode 100644 index d708c63c..00000000 --- a/unpackage/cache/.app-android/src/pages/main/category.kt +++ /dev/null @@ -1,714 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.scanCode as uni_scanCode -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMainCategory : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMainCategory) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMainCategory - val _cache = __ins.renderCache - val statusBarHeight = ref(0) - val headerHeight = ref(44) - val capsuleButtonInfo = ref(null) - val navBarRight = ref(0) - val primaryCategories = ref(_uA()) - val subCategories = ref(_uA()) - val productList = ref(_uA()) - val activePrimary = ref("") - val activeSubCategory = ref("") - val selectedParentId = ref("") - val cartCount = ref(3) - val hasMore = ref(true) - val hasLoadedFromParams = ref(false) - val currentPage = ref(1) - val loading = ref(false) - val scrollTop = ref(0) - val pendingCategoryId = ref("") - val currentCategoryName = ref("") - val currentCategoryDesc = ref("") - val pageParams = ref(UTSJSONObject() as Any) - fun gen_loadProducts_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (loading.value) { - return@w1 - } - if (activePrimary.value == "") { - console.warn("activePrimary为空,无法加载商品", " at pages/main/category.uvue:184") - return@w1 - } - loading.value = true - try { - console.log("开始加载商品,分类ID:", activePrimary.value, "页码:", currentPage.value, " at pages/main/category.uvue:190") - val response = await(supabaseService.getProductsByCategory(activePrimary.value, currentPage.value)) - console.log("商品加载结果:", object : UTSJSONObject() { - var dataCount = response.data.length - var total = response.total - var hasmore = response.hasmore - var page = currentPage.value - }, " at pages/main/category.uvue:192") - if (currentPage.value == 1) { - productList.value = response.data - } else { - productList.value.push(*response.data.toTypedArray()) - } - hasMore.value = response.hasmore - var foundCat: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == activePrimary.value) { - foundCat = primaryCategories.value[i] - break - } - i++ - } - } - if (foundCat == null) { - run { - var i: Number = 0 - while(i < subCategories.value.length){ - if (subCategories.value[i].id == activePrimary.value) { - foundCat = subCategories.value[i] - break - } - i++ - } - } - } - if (foundCat != null) { - currentCategoryName.value = foundCat.name - currentCategoryDesc.value = foundCat.description - } - console.log("商品列表加载完成,当前总数量:", productList.value.length, " at pages/main/category.uvue:228") - } - catch (error: Throwable) { - console.error("加载商品数据失败:", error, " at pages/main/category.uvue:230") - if (currentPage.value == 1) { - productList.value = _uA() - } - } - finally { - loading.value = false - } - }) - } - val loadProducts = ::gen_loadProducts_fn - fun gen_loadSubCategories_fn(parentId: String): UTSPromise { - return wrapUTSPromise(suspend { - console.log("加载二级分类,父级ID:", parentId, " at pages/main/category.uvue:241") - try { - val subCats = await(supabaseService.getSubCategories(parentId)) - console.log("获取到二级分类数量:", subCats.length, " at pages/main/category.uvue:244") - val categories: UTSArray = _uA() - run { - var i: Number = 0 - while(i < subCats.length){ - val cat = subCats[i] - categories.push(LocalCategory(id = cat.id, name = cat.name, icon = cat.icon, description = cat.description, color = cat.color)) - i++ - } - } - subCategories.value = categories - } - catch (e: Throwable) { - console.error("加载二级分类失败:", e, " at pages/main/category.uvue:259") - subCategories.value = _uA() - } - }) - } - val loadSubCategories = ::gen_loadSubCategories_fn - fun gen_isPrimaryActive_fn(categoryId: String): Boolean { - return selectedParentId.value == categoryId - } - val isPrimaryActive = ::gen_isPrimaryActive_fn - fun gen_isSubActive_fn(subCategoryId: String): Boolean { - return activeSubCategory.value == subCategoryId || activePrimary.value == subCategoryId - } - val isSubActive = ::gen_isSubActive_fn - fun gen_getPrimaryItemBgColor_fn(item: LocalCategory): String { - if (isPrimaryActive(item.id)) { - return item.color - } - return "transparent" - } - val getPrimaryItemBgColor = ::gen_getPrimaryItemBgColor_fn - fun gen_selectSubCategory_fn(subCategoryId: String): UTSPromise { - return wrapUTSPromise(suspend { - console.log("选择二级分类:", subCategoryId, " at pages/main/category.uvue:284") - activeSubCategory.value = subCategoryId - currentPage.value = 1 - hasMore.value = true - activePrimary.value = subCategoryId - await(loadProducts()) - }) - } - val selectSubCategory = ::gen_selectSubCategory_fn - fun gen_selectPrimaryCategory_fn(reassignedOriginalCategoryId: String): UTSPromise { - var originalCategoryId = reassignedOriginalCategoryId - return wrapUTSPromise(suspend w1@{ - console.log("=== selectPrimaryCategory函数开始执行 ===", " at pages/main/category.uvue:297") - console.log("传入的categoryId:", originalCategoryId, " at pages/main/category.uvue:298") - if (originalCategoryId == "") { - console.error("categoryId为空,尝试使用第一个分类", " at pages/main/category.uvue:301") - if (primaryCategories.value.length > 0) { - originalCategoryId = primaryCategories.value[0].id - } else { - console.error("没有可用的分类", " at pages/main/category.uvue:305") - return@w1 - } - } - var targetParentId = originalCategoryId - var targetSubId = "" - console.log("当前一级分类列表长度:", primaryCategories.value.length, " at pages/main/category.uvue:313") - var foundInPrimary: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == originalCategoryId) { - foundInPrimary = primaryCategories.value[i] - break - } - i++ - } - } - console.log("在一级分类中查找结果:", foundInPrimary != null, " at pages/main/category.uvue:321") - if (foundInPrimary == null) { - console.log("传入的ID不在一级分类中,可能是二级分类ID,尝试查找父级分类", " at pages/main/category.uvue:325") - try { - val categoryInfo = await(supabaseService.getCategoryById(originalCategoryId)) - if (categoryInfo != null && categoryInfo.parent_id != null && categoryInfo.parent_id != "") { - console.log("找到父级分类ID:", categoryInfo.parent_id, " at pages/main/category.uvue:331") - console.log("查找父级分类ID:", categoryInfo.parent_id, " at pages/main/category.uvue:334") - var parentInPrimary: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == categoryInfo.parent_id) { - parentInPrimary = primaryCategories.value[i] - break - } - i++ - } - } - console.log("父级分类查找结果:", parentInPrimary != null, " at pages/main/category.uvue:342") - if (parentInPrimary != null) { - console.log("父级分类在列表中找到:", parentInPrimary.name, " at pages/main/category.uvue:344") - targetParentId = categoryInfo.parent_id!! - targetSubId = originalCategoryId - } else { - console.log("父级分类不在列表中,使用第一个分类", " at pages/main/category.uvue:348") - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - console.log("列表中的分类:", primaryCategories.value[i].id, primaryCategories.value[i].name, " at pages/main/category.uvue:351") - i++ - } - } - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } else { - console.log("未找到父级分类,使用第一个分类", " at pages/main/category.uvue:358") - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } - catch (e: Throwable) { - console.error("获取分类信息失败:", e, " at pages/main/category.uvue:364") - if (primaryCategories.value.length > 0) { - targetParentId = primaryCategories.value[0].id - } - } - } - console.log("最终选中的一级分类ID:", targetParentId, " at pages/main/category.uvue:371") - console.log("需要选中的二级分类ID:", targetSubId, " at pages/main/category.uvue:372") - selectedParentId.value = targetParentId - activePrimary.value = targetParentId - await(loadSubCategories(targetParentId)) - if (targetSubId != "") { - activeSubCategory.value = targetSubId - } else { - if (subCategories.value.length > 0) { - activeSubCategory.value = subCategories.value[0].id - targetSubId = subCategories.value[0].id - console.log("默认选中第一个二级分类:", subCategories.value[0].name, " at pages/main/category.uvue:389") - } else { - activeSubCategory.value = "" - } - } - var foundIndex: Number = -1 - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == targetParentId) { - foundIndex = i - break - } - i++ - } - } - if (foundIndex != -1) { - val systemInfo = uni_getSystemInfoSync() - var itemHeight: Number = 70 - if (systemInfo.windowWidth > 1025) { - itemHeight = 80 - } - val scrollViewHeight = systemInfo.windowHeight - systemInfo.statusBarHeight - 44 - val targetScrollTop = (foundIndex * itemHeight) - (scrollViewHeight / 2) + (itemHeight / 2) - scrollTop.value = Math.max(0, targetScrollTop) - console.log("滚动左侧菜单: index=" + foundIndex + ", target=" + scrollTop.value, " at pages/main/category.uvue:415") - } - var foundCategory: LocalCategory? = null - run { - var i: Number = 0 - while(i < primaryCategories.value.length){ - if (primaryCategories.value[i].id == targetParentId) { - foundCategory = primaryCategories.value[i] - break - } - i++ - } - } - if (foundCategory != null) { - currentCategoryName.value = foundCategory.name - currentCategoryDesc.value = foundCategory.description - } else { - console.log("分类信息未找到,使用第一个分类的信息", " at pages/main/category.uvue:430") - if (primaryCategories.value.length > 0) { - val firstCategory = primaryCategories.value[0] - currentCategoryName.value = firstCategory.name - currentCategoryDesc.value = firstCategory.description - } - } - currentPage.value = 1 - hasMore.value = true - val categoryIdForProducts = if ((targetSubId != "")) { - targetSubId - } else { - targetParentId - } - activePrimary.value = categoryIdForProducts - await(loadProducts()) - }) - } - val selectPrimaryCategory = ::gen_selectPrimaryCategory_fn - fun gen_loadCategories_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - val categoriesData = await(supabaseService.getParentCategories()) - console.log("加载一级分类数据成功,数量:", categoriesData.length, " at pages/main/category.uvue:451") - val categories: UTSArray = _uA() - run { - var i: Number = 0 - while(i < categoriesData.length){ - val cat = categoriesData[i] - val name = cat.name - console.log("一级分类:", cat.id, name, " at pages/main/category.uvue:459") - if (name.includes("医药") || name.includes("健康")) { - console.log("过滤掉分类:", name, " at pages/main/category.uvue:461") - i++ - continue - } - categories.push(LocalCategory(id = cat.id, name = cat.name, icon = cat.icon, description = cat.description, color = cat.color)) - i++ - } - } - console.log("最终一级分类列表数量:", categories.length, " at pages/main/category.uvue:473") - if (categories.length > 0) { - primaryCategories.value = categories - if (pendingCategoryId.value != "") { - console.log("发现待处理的分类ID:", pendingCategoryId.value, " at pages/main/category.uvue:480") - val idToSelect = pendingCategoryId.value - pendingCategoryId.value = "" - selectPrimaryCategory(idToSelect) - return@w1 - } - if (activePrimary.value != "") { - console.log("有预设的分类ID:", activePrimary.value, " at pages/main/category.uvue:490") - val target = categories.find(fun(c: LocalCategory): Boolean { - return c.id == activePrimary.value - } - ) - if (target != null) { - console.log("找到目标分类,执行选中:", target.name, " at pages/main/category.uvue:493") - selectPrimaryCategory(activePrimary.value) - return@w1 - } - } - val defaultCategory = categories.find(fun(c: LocalCategory): Boolean { - return c.name.includes("厨具") - }) ?: categories[0] - if (defaultCategory != null) { - console.log("设置默认分类:", defaultCategory.name, " at pages/main/category.uvue:502") - selectPrimaryCategory(defaultCategory.id) - } - } else { - console.warn("从Supabase获取的分类数据为空", " at pages/main/category.uvue:506") - } - } - catch (error: Throwable) { - console.error("加载分类数据失败:", error, " at pages/main/category.uvue:509") - } - }) - } - val loadCategories = ::gen_loadCategories_fn - fun gen_loadMore_fn(): Unit { - if (hasMore.value && !loading.value) { - currentPage.value++ - loadProducts() - } - } - val loadMore = ::gen_loadMore_fn - onMounted(fun(){ - loadCategories().then(fun(){ - setTimeout(fun(){ - if (!hasLoadedFromParams.value && activePrimary.value != "") { - loadProducts() - } - } - , 300) - } - ) - } - ) - onShow__1(fun(){ - console.log("=== category页面onShow被调用 ===", " at pages/main/category.uvue:534") - val savedCategoryId = uni_getStorageSync("selectedCategory") - console.log("onShow检查Storage:", savedCategoryId, " at pages/main/category.uvue:538") - if (savedCategoryId != null && savedCategoryId != "") { - val targetId = savedCategoryId as String - console.log("onShow发现存储的分类ID:", targetId, " at pages/main/category.uvue:542") - uni_removeStorageSync("selectedCategory") - if (primaryCategories.value.length > 0) { - if (activePrimary.value != targetId) { - console.log("onShow执行切换分类:", targetId, " at pages/main/category.uvue:551") - selectPrimaryCategory(targetId) - } else { - console.log("当前已是目标分类:", targetId, " at pages/main/category.uvue:554") - } - } else { - console.log("分类数据尚未加载,暂存ID等待加载", " at pages/main/category.uvue:558") - pendingCategoryId.value = targetId - } - } - } - ) - onLoad__1(fun(options: Any){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - console.log("=== category页面onLoad被调用 ===", " at pages/main/category.uvue:589") - var categoryId = "" - var categoryName = "" - val optObj = if ((options is UTSJSONObject)) { - (options as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(options ?: UTSJSONObject())), " at pages/main/category.uvue:595") as UTSJSONObject) - } - val optCategoryId = optObj.getString("categoryId") ?: "" - if (optCategoryId !== "") { - categoryId = optCategoryId - categoryName = optObj.getString("name") ?: "" - console.log("✅ onLoad中找到分类参数:", categoryId, categoryName, " at pages/main/category.uvue:600") - } - if (categoryId == "") { - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val rawPageOptions = currentPage.options ?: UTSJSONObject() - console.log("从getCurrentPages()获取参数:", rawPageOptions, " at pages/main/category.uvue:609") - val pageOptObj = if ((rawPageOptions is UTSJSONObject)) { - (rawPageOptions as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawPageOptions)), " at pages/main/category.uvue:610") as UTSJSONObject) - } - val pageCategoryId = pageOptObj.getString("categoryId") ?: "" - if (pageCategoryId !== "") { - categoryId = pageCategoryId - categoryName = pageOptObj.getString("name") ?: "" - console.log("✅ 从getCurrentPages()找到分类参数:", categoryId, categoryName, " at pages/main/category.uvue:615") - } - } - } - if (categoryId != "") { - hasLoadedFromParams.value = true - console.log("✅ 准备选中分类:", categoryId, " at pages/main/category.uvue:623") - console.log("分类名称:", categoryName ?: "未指定", " at pages/main/category.uvue:624") - if (activePrimary.value !== categoryId) { - console.log("当前分类:", activePrimary.value, "与目标分类:", categoryId, "不同,需要更新", " at pages/main/category.uvue:628") - console.log("准备调用selectPrimaryCategory函数...", " at pages/main/category.uvue:629") - selectPrimaryCategory(categoryId) - } else { - console.log("当前分类已经是目标分类,但可能用户想要刷新页面", " at pages/main/category.uvue:632") - console.log("当前分类:", activePrimary.value, "目标分类:", categoryId, " at pages/main/category.uvue:633") - setTimeout(fun(){ - selectPrimaryCategory(categoryId) - }, 100) - } - } else { - console.log("⚠️ onLoad中未找到分类参数,将使用从数据库加载的第一个分类", " at pages/main/category.uvue:641") - } - console.log("=== category页面onLoad执行完成 ===", " at pages/main/category.uvue:645") - } - ) - fun gen_addToCart_fn(product: Product): UTSPromise { - return wrapUTSPromise(suspend w1@{ - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val pid = (product.id ?: "").toString() - val merchantId = product.merchant_id ?: "" - if (pid === "") { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "商品无效", icon = "none")) - return@w1 - } - val skus = await(supabaseService.getProductSkus(pid)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + pid)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(pid, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - cartCount.value++ - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请先登录", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/main/category.uvue:695") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val addToCart = ::gen_addToCart_fn - fun gen_navigateToSearch_fn(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search")) - } - val navigateToSearch = ::gen_navigateToSearch_fn - fun gen_navigateToCart_fn(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/main/cart")) - } - val navigateToCart = ::gen_navigateToCart_fn - fun gen_navigateToProduct_fn(product: Product): Unit { - val id = (product.id ?: "").toString() - if (id === "") { - return - } - val price = (product.base_price ?: 0).toString(10) - val originalPrice = (product.market_price ?: "").toString() - val name = UTSAndroid.consoleDebugError(encodeURIComponent(product.name ?: ""), " at pages/main/category.uvue:709") - val image = UTSAndroid.consoleDebugError(encodeURIComponent(product.main_image_url ?: ""), " at pages/main/category.uvue:710") - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + id + "&productId=" + id + "&price=" + price + "&originalPrice=" + originalPrice + "&name=" + name + "&image=" + image)) - } - val navigateToProduct = ::gen_navigateToProduct_fn - fun gen_onCamera_fn(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, sourceType = _uA( - "camera" - ), success = fun(res){ - console.log("相机拍摄成功:", res.tempFilePaths[0], " at pages/main/category.uvue:723") - uni_showToast(ShowToastOptions(title = "已拍摄,正在识别...", icon = "loading")) - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "识别成功", icon = "success")) - } - , 1000) - } - , fail = fun(err){ - console.error("相机调用失败:", err, " at pages/main/category.uvue:737") - } - )) - } - val onCamera = ::gen_onCamera_fn - fun gen_onScan_fn(): Unit { - uni_scanCode(ScanCodeOptions(success = fun(res){ - console.log("扫码成功:", res, " at pages/main/category.uvue:746") - uni_showToast(ShowToastOptions(title = "扫码成功: " + res.result, icon = "none")) - } - , fail = fun(err){ - console.error("扫码失败:", err, " at pages/main/category.uvue:753") - } - )) - } - val onScan = ::gen_onScan_fn - return fun(): Any? { - return _cE("view", _uM("class" to "category-page"), _uA( - _cE("view", _uM("class" to "search-bar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "search-container", "style" to _nS(_uM("paddingRight" to ((if (navBarRight.value > 0) { - navBarRight.value - } else { - 16 - } - ) + "px")))), _uA( - _cE("view", _uM("class" to "search-box", "onClick" to navigateToSearch, "style" to _nS(_uM("height" to "30px"))), _uA( - _cE("text", _uM("class" to "search-placeholder"), "请输入商品名称、店铺"), - _cE("view", _uM("class" to "nav-icon-btn", "onClick" to withModifiers(onScan, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-icon"), "🔳") - )), - _cE("view", _uM("class" to "nav-camera-btn", "onClick" to withModifiers(onCamera, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-camera-icon"), "📷") - )), - _cE("view", _uM("class" to "nav-inner-search-btn", "style" to _nS(_uM("height" to "22px"))), _uA( - _cE("text", _uM("class" to "nav-inner-search-text"), "搜索") - ), 4) - ), 4) - ), 4) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "category-content"), _uA( - _cE("scroll-view", _uM("scroll-y" to true, "class" to "primary-category", "scroll-top" to scrollTop.value, "scroll-with-animation" to true), _uA( - _cE(Fragment, null, RenderHelpers.renderList(primaryCategories.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to _nC(_uA( - "primary-item", - _uM("active" to isPrimaryActive(item.id)) - )), "onClick" to fun(){ - selectPrimaryCategory(item.id) - } - , "style" to _nS(_uM("backgroundColor" to getPrimaryItemBgColor(item)))), _uA( - _cE("text", _uM("class" to "primary-icon"), _tD(item.icon), 1), - _cE("text", _uM("class" to "primary-name"), _tD(item.name), 1) - ), 14, _uA( - "onClick" - )) - } - ), 128) - ), 8, _uA( - "scroll-top" - )), - _cE("scroll-view", _uM("scroll-y" to true, "class" to "product-content", "onScrolltolower" to loadMore, "lower-threshold" to 50), _uA( - _cE("view", _uM("class" to "category-header"), _uA( - _cE("text", _uM("class" to "category-title"), _tD(currentCategoryName.value), 1), - _cE("text", _uM("class" to "category-desc"), _tD(currentCategoryDesc.value), 1) - )), - if (subCategories.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "sub-category-section"), _uA( - _cE("view", _uM("class" to "sub-category-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(subCategories.value, fun(sub, __key, __index, _cached): Any { - return _cE("view", _uM("key" to sub.id, "class" to _nC(_uA( - "sub-category-item", - _uM("active" to isSubActive(sub.id)) - )), "onClick" to fun(){ - selectSubCategory(sub.id) - }), _uA( - _cE("text", _uM("class" to "sub-category-icon"), _tD(sub.icon), 1), - _cE("text", _uM("class" to "sub-category-name"), _tD(sub.name), 1) - ), 10, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - if (productList.value.length > 0) { - _cE("view", _uM("key" to 1, "class" to "product-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(productList.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "product-card", "onClick" to fun(){ - navigateToProduct(product) - }), _uA( - _cE("view", _uM("class" to "product-image-wrapper"), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.main_image_url, "mode" to "aspectFill"), null, 8, _uA( - "src" - )) - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.base_price ?: product.price ?: 0), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 2, "class" to "loading-state"), _uA( - _cE("view", _uM("class" to "loading-spinner")), - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cE("view", _uM("key" to 3, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-icon"), "�"), - _cE("text", _uM("class" to "empty-text"), "暂无相关商品"), - _cE("text", _uM("class" to "empty-desc"), "该分类下暂无商品,敬请期待") - )) - } - } - , - if (isTrue(hasMore.value)) { - _cE("view", _uM("key" to 4, "class" to "load-more"), _uA( - _cE("text", _uM("class" to "load-text"), "上拉加载更多") - )) - } else { - _cC("v-if", true) - } - ), 32) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("category-page" to _pS(_uM("width" to "100%", "height" to "100%", "overflow" to "hidden", "backgroundColor" to "#f8fafc", "display" to "flex", "flexDirection" to "column", "fontFamily" to "-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, sans-serif")), "search-bar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)")), "navbar-placeholder" to _pS(_uM("flexShrink" to 0)), "search-container" to _pS(_uM("height" to 44, "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%")), "search-box" to _pS(_uM("boxShadow:hover" to "0 2px 8px rgba(0, 0, 0, 0.1)", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "maxWidth" to 600, "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "width" to "100%", "height" to 32)), "search-placeholder" to _pS(_uM("fontSize" to 14, "color" to "#999999", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "nav-inner-search-text" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "fontWeight" to "normal")), "icon" to _pS(_uM("fontSize" to 22, "color" to "#FFFFFF")), "nav-icon-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-icon" to _pS(_uM("fontSize" to 18)), "nav-camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-camera-icon" to _pS(_uM("fontSize" to 20)), "nav-inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 24)), "cart-badge" to _pS(_uM("position" to "absolute", "top" to -5, "right" to -5, "backgroundImage" to "none", "backgroundColor" to "#FF5722", "color" to "#FFFFFF", "fontSize" to 10, "minWidth" to 18, "height" to 18, "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "category-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "display" to "flex", "flexDirection" to "row", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "maxWidth" to 1400, "marginLeft" to "auto", "marginRight" to "auto", "width" to "100%", "overflow" to "hidden")), "primary-category" to _pS(_uM("width" to 63, "height" to "100%", "marginRight" to 6, "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 6, "paddingRight" to 0, "paddingBottom" to 6, "paddingLeft" to 0, "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.08)", "flexShrink" to 0)), "primary-item" to _uM("" to _uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 12, "paddingRight" to 4, "paddingBottom" to 12, "paddingLeft" to 4, "marginTop" to 4, "marginRight" to 6, "marginBottom" to 4, "marginLeft" to 6, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "color" to "#666666", "textAlign" to "center", "transform:hover" to "translateY(-2px)"), ".active" to _uM("!color" to "#FFFFFF", "fontWeight" to "bold")), "primary-icon" to _pS(_uM("fontSize" to 20, "marginBottom" to 4, "marginRight" to 0, "textAlign" to "center")), "primary-name" to _pS(_uM("fontSize" to 11, "lineHeight" to 1.25)), "product-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0)), "category-header" to _pS(_uM("marginBottom" to 16, "paddingTop" to 16, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8, "backgroundColor" to "#f8fafc", "zIndex" to 10)), "category-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "category-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "sub-category-section" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "marginBottom" to 8)), "sub-category-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap", "width" to "100%", "justifyContent" to "space-between")), "sub-category-item" to _uM("" to _uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 8, "paddingRight" to 4, "paddingBottom" to 8, "paddingLeft" to 4, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 50), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000")), "sub-category-name" to _uM(".sub-category-item.active " to _uM("color" to "#FFFFFF"), "" to _uM("fontSize" to 11, "color" to "#333333", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis", "textAlign" to "center", "width" to "100%")), "sub-category-icon" to _pS(_uM("fontSize" to 16, "marginBottom" to 4)), "product-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "width" to "100%", "justifyContent" to "space-between")), "product-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image-wrapper" to _pS(_uM("width" to "100%", "paddingBottom" to "100%", "position" to "relative", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-image" to _pS(_uM("position" to "absolute", "top" to 0, "left" to 0, "width" to "100%", "height" to "100%", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "product-action" to _pS(_uM("marginTop" to 12)), "cart-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "fontSize" to 13, "fontWeight" to "bold", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#388E3C")), "cart-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 6)), "loading-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20, "textAlign" to "center")), "loading-spinner" to _pS(_uM("width" to 40, "height" to 40, "borderTopWidth" to 3, "borderRightWidth" to 3, "borderBottomWidth" to 3, "borderLeftWidth" to 3, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "animation" to "spin 1s linear infinite", "marginBottom" to 15)), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20, "textAlign" to "center")), "empty-icon" to _pS(_uM("fontSize" to 60, "color" to "#ff5000", "marginBottom" to 15)), "empty-text" to _pS(_uM("fontSize" to 18, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 8)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "load-more" to _pS(_uM("textAlign" to "center", "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "color" to "#999999", "fontSize" to 14)), "load-text" to _pS(_uM("paddingTop" to 8, "paddingRight" to 16, "paddingBottom" to 8, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20)), "@TRANSITION" to _uM("search-box" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "primary-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "cart-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/main/index.kt b/unpackage/cache/.app-android/src/pages/main/index.kt deleted file mode 100644 index 8f0038b6..00000000 --- a/unpackage/cache/.app-android/src/pages/main/index.kt +++ /dev/null @@ -1,875 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.scanCode as uni_scanCode -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMainIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMainIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMainIndex - val _cache = __ins.renderCache - val statusBarHeight = ref(0) - val scrollHeight = ref(0) - val refreshing = ref(false) - val loading = ref(false) - val isFirstShow = ref(true) - val hasMore = ref(true) - val activeSort = ref("recommend") - val activeFilter = ref("recommend") - val currentPage = ref(1) - val priceAscending = ref(true) - val capsuleButtonInfo = ref(null) - val navBarRight = ref(0) - val hotProducts = ref(_uA()) - val recommendedProducts = ref(_uA()) - val hotKeywords = ref(_uA()) - val isMobile = ref(false) - val showLoadMore = ref(false) - val showNavbar = ref(true) - val lastScrollTop = ref(0) - val scrollThreshold: Number = 30 - val scrollingUp = ref(false) - val categoryTab = ref("category") - val categories = ref(_uA()) - val brands = ref(_uA()) - val parentCategories = ref(_uA()) - val subCategories = ref(_uA()) - val selectedParentCategory = ref(null) - val showSubCategories = ref(false) - val sortTabs = _uA( - SortTab(id = "recommend", name = "智能推荐"), - SortTab(id = "sales", name = "销量"), - SortTab(id = "price", name = "价格"), - SortTab(id = "new", name = "新品"), - SortTab(id = "discount", name = "特价") - ) as UTSArray - val loadCategories = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val categoriesData = await(supabaseService.getParentCategories()) - parentCategories.value = categoriesData - categories.value = categoriesData - console.log("一级分类数据:", JSON.stringify(parentCategories.value), " at pages/main/index.uvue:377") - } - catch (error: Throwable) { - console.error("加载分类数据失败:", error, " at pages/main/index.uvue:379") - parentCategories.value = _uA() - categories.value = _uA() - } - }) - } - val loadSubCategories = fun(parentId: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - console.log("[loadSubCategories] 开始加载二级分类, parentId:", parentId, " at pages/main/index.uvue:388") - val subData = await(supabaseService.getSubCategories(parentId)) - console.log("[loadSubCategories] 获取到二级分类数量:", subData.length, " at pages/main/index.uvue:390") - console.log("[loadSubCategories] 二级分类数据:", JSON.stringify(subData), " at pages/main/index.uvue:391") - subCategories.value = subData - } - catch (error: Throwable) { - console.error("加载子分类数据失败:", error, " at pages/main/index.uvue:394") - subCategories.value = _uA() - } - }) - } - val onParentCategoryClick = fun(category: Category): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("[onParentCategoryClick] 点击一级分类:", category.name, "id:", category.id, " at pages/main/index.uvue:401") - if (selectedParentCategory.value != null && selectedParentCategory.value!!.id === category.id) { - console.log("[onParentCategoryClick] 切换显示状态", " at pages/main/index.uvue:405") - showSubCategories.value = !showSubCategories.value - return@w1 - } - selectedParentCategory.value = category - showSubCategories.value = true - console.log("[onParentCategoryClick] showSubCategories 设置为 true", " at pages/main/index.uvue:413") - await(loadSubCategories(category.id)) - if (subCategories.value.length == 0) { - console.log("[onParentCategoryClick] 没有二级分类,直接跳转到分类页", " at pages/main/index.uvue:420") - uni_setStorageSync("selectedCategory", category.id) - uni_switchTab(SwitchTabOptions(url = "/pages/main/category")) - } - }) - } - val onSubCategoryClick = fun(category: Category): Unit { - uni_setStorageSync("selectedCategory", category.id) - val timestamp = Date.now() - val randomParam = Math.random().toString(36).substring(2, 8) - val url = "/pages/main/category?categoryId=" + category.id + "&name=" + UTSAndroid.consoleDebugError(encodeURIComponent(category.name), " at pages/main/index.uvue:434") + "×tamp=" + timestamp + "&random=" + randomParam - uni_switchTab(SwitchTabOptions(url = "/pages/main/category")) - } - val loadBrands = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val brandsData = await(supabaseService.getBrands()) - brands.value = brandsData - } - catch (e: Throwable) { - console.error("加载品牌失败:", e, " at pages/main/index.uvue:447") - brands.value = _uA() - } - }) - } - val getBrandIcon = fun(name: String): String { - if (name == null || name === "") { - return "🏢" - } - val iconKeys = _uA( - "感冒", - "发烧", - "咳嗽", - "消炎", - "维生素", - "钙片", - "胃药", - "止痛", - "过敏", - "皮肤", - "眼药水", - "口腔", - "血压", - "血糖", - "血脂", - "保健", - "养生", - "减肥", - "美容", - "母婴", - "儿童", - "老人", - "男性", - "女性", - "维生素C", - "维生素D", - "蛋白粉", - "鱼油", - "蜂胶", - "阿胶", - "红枣", - "枸杞", - "菊花", - "金银花", - "口罩", - "消毒液", - "体温计", - "创可贴", - "棉签", - "九芝堂", - "同仁堂", - "云南白药", - "东阿阿胶", - "太极", - "江中", - "三九", - "华素制药", - "汤臣倍健", - "白云山", - "修正", - "葵花", - "哈药", - "扬子江", - "恒瑞", - "复星", - "辉瑞", - "阿斯利康", - "罗氏", - "默沙东", - "赛诺菲", - "诺华", - "雅培", - "雀巢", - "蒙牛", - "伊利", - "海尔", - "美的", - "飞利浦", - "西门子", - "松下", - "苏泊尔", - "九阳", - "华为", - "小米", - "苹果", - "三星" - ) - val iconValues = _uA( - "💊", - "🌡️", - "😷", - "🔬", - "💊", - "🦴", - "🫁", - "💉", - "🌸", - "🧴", - "👁️", - "🦷", - "❤️", - "🩸", - "💓", - "🧬", - "🍵", - "⚖️", - "💅", - "👶", - "🧒", - "👴", - "♂️", - "♀️", - "🍊", - "☀️", - "🥛", - "🐟", - "🐝", - "🍯", - "🫘", - "🌿", - "🌼", - "🌸", - "😷", - "🧴", - "🌡️", - "🩹", - "🧺", - "📜", - "🏛️", - "⛰️", - "🍯", - "☯️", - "🌿", - "9️⃣", - "💊", - "💪", - "⛰️", - "🩹", - "🌻", - "🧪", - "🚢", - "🔬", - "⭐", - "🧬", - "🧪", - "🧬", - "💊", - "🧬", - "🔬", - "🏥", - "🥣", - "🐄", - "🥛", - "🏠", - "❄️", - "🪒", - "⚡", - "🔋", - "🍳", - "🥛", - "📱", - "🍚", - "🍎", - "📱" - ) - run { - var i: Number = 0 - while(i < iconKeys.length){ - if (name === iconKeys[i]) { - return iconValues[i] - } - i++ - } - } - run { - var i: Number = 0 - while(i < iconKeys.length){ - if (name.indexOf(iconKeys[i]) !== -1) { - return iconValues[i] - } - i++ - } - } - return "🏢" - } - val defaultLoadLimit: Number = 6 - val doLoadHotProducts = fun(targetLimit: Number, resolve: (value: Unit) -> Unit, reject: (reason: Any?) -> Unit): UTSPromise { - return wrapUTSPromise(suspend { - try { - var products: UTSArray = _uA() - val limit = targetLimit - console.log("加载热销商品,当前排序方式:", activeSort.value, "limit:", limit, " at pages/main/index.uvue:492") - when (activeSort.value) { - "sales" -> - { - console.log("调用 getProductsBySales", " at pages/main/index.uvue:496") - products = await(supabaseService.getProductsBySales(limit)) - } - "price" -> - { - console.log("调用 getProductsByPrice, 升序:", priceAscending.value, " at pages/main/index.uvue:500") - products = await(supabaseService.getProductsByPrice(limit, priceAscending.value)) - } - "new" -> - { - console.log("调用 getProductsByNewest", " at pages/main/index.uvue:504") - products = await(supabaseService.getProductsByNewest(limit)) - } - "recommend" -> - { - console.log("调用 getSmartRecommendations", " at pages/main/index.uvue:508") - products = await(supabaseService.getSmartRecommendations(limit)) - } - "discount" -> - { - console.log("调用 getDiscountProducts", " at pages/main/index.uvue:512") - products = await(supabaseService.getDiscountProducts(limit)) - } - else -> - { - console.log("调用默认 getProductsBySales", " at pages/main/index.uvue:516") - products = await(supabaseService.getProductsBySales(limit)) - } - } - console.log("加载到的商品数量:", products.length, " at pages/main/index.uvue:520") - if (products.length > 0) { - console.log("Sample Product Merchant IDs:", " at pages/main/index.uvue:522") - run { - var i: Number = 0 - while(i < Math.min(products.length, 3)){ - val p = products[i] - console.log(" - Product: " + p.name + ", MerchantID: " + p.merchant_id, " at pages/main/index.uvue:525") - i++ - } - } - } - hotProducts.value = products - } - catch (error: Throwable) { - console.error("加载热销商品失败:", error, " at pages/main/index.uvue:530") - hotProducts.value = _uA() - } - }) - } - fun gen_loadHotProducts_fn(targetLimit: Number): UTSPromise { - return UTSPromise(fun(resolve, reject){ - doLoadHotProducts(targetLimit, resolve, reject) - } - ) - } - val loadHotProducts = ::gen_loadHotProducts_fn - val doLoadRecommendedProducts = fun(limit: Number, resolve: (value: Unit) -> Unit, reject: (reason: Any?) -> Unit): UTSPromise { - return wrapUTSPromise(suspend { - recommendedProducts.value = await(supabaseService.getRecommendedProducts(limit)) - resolve(Unit) - }) - } - fun gen_loadRecommendedProducts_fn(limit: Number): UTSPromise { - return UTSPromise(fun(resolve, reject){ - doLoadRecommendedProducts(limit, resolve, reject) - } - ) - } - val loadRecommendedProducts = ::gen_loadRecommendedProducts_fn - val loadHotKeywords = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val keywords = await(supabaseService.getHotKeywords(10)) - hotKeywords.value = keywords - console.log("加载热搜词:", keywords.length, "个", " at pages/main/index.uvue:560") - } - catch (error: Throwable) { - console.error("加载热搜词失败:", error, " at pages/main/index.uvue:562") - hotKeywords.value = _uA() - } - }) - } - val initData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - await(getCurrentUser()) - console.log("主页初始化:用户资料加载完成", " at pages/main/index.uvue:579") - } - catch (error: Throwable) { - console.error("加载用户资料失败:", error, " at pages/main/index.uvue:581") - } - await(loadCategories()) - await(loadBrands()) - await(loadHotKeywords()) - await(loadHotProducts(defaultLoadLimit)) - await(loadRecommendedProducts(defaultLoadLimit)) - }) - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - navBarRight.value = 0 - val screenWidth = systemInfo.screenWidth - isMobile.value = screenWidth < 768 - } - onMounted(fun(){ - initPage() - initData() - } - ) - onShow__1(fun(){ - console.log("=== index页面onShow被调用 ===", " at pages/main/index.uvue:682") - console.log("主页重新显示,重置页面状态", " at pages/main/index.uvue:683") - showNavbar.value = true - lastScrollTop.value = 0 - if (!isFirstShow.value) { - getCurrentUser().then(fun(profile){ - if (profile != null) { - console.log("主页onShow:用户资料更新成功", " at pages/main/index.uvue:701") - } else { - console.log("主页onShow:用户资料为空,可能未登录", " at pages/main/index.uvue:703") - } - }).`catch`(fun(error){ - console.error("主页onShow:加载用户资料失败:", error, " at pages/main/index.uvue:706") - }) - } else { - isFirstShow.value = false - console.log("主页首次显示,跳过onShow中的用户资料检查,交由initData处理", " at pages/main/index.uvue:710") - } - console.log("=== index页面onShow执行完成 ===", " at pages/main/index.uvue:713") - } - ) - val handleScroll = fun(event: Any){ - try { - val eventObj = event as UTSJSONObject - val detailRaw = eventObj.get("detail") - if (detailRaw == null) { - return - } - val detail = detailRaw as UTSJSONObject - val scrollTop = detail.getNumber("scrollTop") ?: 0 - val currentTime = Date.now() - if (scrollTop > lastScrollTop.value) { - scrollingUp.value = false - if (scrollTop > scrollThreshold && showNavbar.value) { - showNavbar.value = false - } - } else if (scrollTop < lastScrollTop.value) { - scrollingUp.value = true - if (!showNavbar.value) { - showNavbar.value = true - } - } - if (scrollTop <= 10) { - showNavbar.value = true - } - lastScrollTop.value = scrollTop - } - catch (e: Throwable) {} - } - val switchBrand = fun(brand: Brand){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search?keyword=" + UTSAndroid.consoleDebugError(encodeURIComponent(brand.name), " at pages/main/index.uvue:796") + "&type=brand&brandId=" + brand.id)) - } - val switchSort = fun(sortId: String){ - if (sortId === "price" && activeSort.value === "price") { - priceAscending.value = !priceAscending.value - console.log("切换价格排序方向,升序:", priceAscending.value, " at pages/main/index.uvue:805") - } else { - if (sortId !== "price") { - priceAscending.value = true - } - activeSort.value = sortId - } - hasMore.value = true - loadHotProducts(defaultLoadLimit) - } - val onRefresh = fun(): UTSPromise { - return wrapUTSPromise(suspend { - refreshing.value = true - try { - await(initData()) - } - catch (e: Throwable) { - console.error("刷新数据失败:", e, " at pages/main/index.uvue:840") - } - finally { - setTimeout(fun(){ - refreshing.value = false - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "刷新成功", icon = "success")) - } - , 200) - } - , 800) - } - }) - } - val loadMore = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("=== 触发触底事件 ===", " at pages/main/index.uvue:858") - if (loading.value) { - console.log("正在加载中,跳过", " at pages/main/index.uvue:860") - return@w1 - } - showLoadMore.value = true - loading.value = true - try { - val currentCount = hotProducts.value.length - val nextPage = Math.floor(currentCount / 6) + 1 - val additionalLimit: Number = 6 - console.log("开始加载更多,当前数量:", currentCount, "页码:", nextPage, " at pages/main/index.uvue:872") - var newProducts: UTSArray = _uA() - when (activeSort.value) { - "sales" -> - newProducts = await(supabaseService.getProductsBySales(currentCount + additionalLimit)) - "price" -> - newProducts = await(supabaseService.getProductsByPrice(currentCount + additionalLimit, priceAscending.value)) - "new" -> - newProducts = await(supabaseService.getProductsByNewest(currentCount + additionalLimit)) - "recommend" -> - newProducts = await(supabaseService.getSmartRecommendations(currentCount + additionalLimit)) - "discount" -> - newProducts = await(supabaseService.getDiscountProducts(currentCount + additionalLimit)) - else -> - newProducts = await(supabaseService.getProductsBySales(currentCount + additionalLimit)) - } - console.log("加载到的新商品数量:", newProducts.length, " at pages/main/index.uvue:896") - if (newProducts.length <= currentCount) { - hasMore.value = false - uni_showToast(ShowToastOptions(title = "没有更多了", icon = "none")) - } else { - hotProducts.value = newProducts - } - } - catch (error: Throwable) { - console.error("加载更多失败:", error, " at pages/main/index.uvue:910") - } - finally { - loading.value = false - setTimeout(fun(){ - showLoadMore.value = false - } - , 500) - } - }) - } - val addToCart = fun(product: Any): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val prodObj = if ((product is UTSJSONObject)) { - (product as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/main/index.uvue:925") as UTSJSONObject) - } - val productId = prodObj.getString("id") ?: "" - val merchantId = prodObj.getString("merchant_id") ?: "" - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请先登录", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/main/index.uvue:962") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作异常", icon = "none")) - } - }) - } - val onScan = fun(): Unit { - uni_scanCode(ScanCodeOptions(success = fun(res){ - console.log("扫码成功:", res, " at pages/main/index.uvue:975") - uni_showToast(ShowToastOptions(title = "扫码成功: " + res.result, icon = "none")) - } - , fail = fun(err){ - console.error("扫码失败:", err, " at pages/main/index.uvue:982") - } - )) - } - val onCamera = fun(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, sourceType = _uA( - "camera" - ), success = fun(res){ - console.log("相机拍摄成功:", res.tempFilePaths[0], " at pages/main/index.uvue:993") - uni_showToast(ShowToastOptions(title = "已拍摄,正在识别...", icon = "loading")) - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "识别成功", icon = "success")) - } - , 1000) - } - , fail = fun(err){ - console.error("相机调用失败:", err, " at pages/main/index.uvue:1006") - } - )) - } - val navigateToSearch = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/search")) - } - val navigateToProduct = fun(product: Any){ - val prodObj = if ((product is UTSJSONObject)) { - (product as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/main/index.uvue:1016") as UTSJSONObject) - } - val productId = prodObj.getString("productId") ?: prodObj.getString("id") ?: "" - val name = prodObj.getString("name") ?: "" - val image = prodObj.getString("main_image_url") ?: prodObj.getString("image") ?: "/static/images/default-product.png" - val price = (prodObj.getNumber("base_price") ?: prodObj.getNumber("price") ?: 0).toString(10) - val marketPrice = prodObj.getNumber("market_price") ?: prodObj.getNumber("original_price") ?: (parseFloat(price) * 1.2) - val originalPrice = marketPrice.toString(10) - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId + "&price=" + price + "&originalPrice=" + originalPrice + "&name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/main/index.uvue:1029") + "&image=" + UTSAndroid.consoleDebugError(encodeURIComponent(image), " at pages/main/index.uvue:1029"))) - } - return fun(): Any? { - return _cE("view", _uM("class" to "medic-home"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px"), "transform" to if (showNavbar.value) { - "translateY(0)" - } else { - "translateY(-100%)" - } - ))), _uA( - _cE("view", _uM("class" to "search-container", "style" to _nS(_uM("paddingRight" to ((if (navBarRight.value > 0) { - navBarRight.value - } else { - 16 - } - ) + "px")))), _uA( - _cE("view", _uM("class" to "search-box", "onClick" to navigateToSearch, "style" to _nS(_uM("height" to "30px"))), _uA( - _cE("text", _uM("class" to "search-placeholder"), "请输入商品名称、店铺"), - _cE("view", _uM("class" to "nav-icon-btn", "onClick" to withModifiers(onScan, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-icon"), "🔳") - )), - _cE("view", _uM("class" to "nav-camera-btn", "onClick" to withModifiers(onCamera, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "nav-camera-icon"), "📷") - )), - _cE("view", _uM("class" to "nav-inner-search-btn", "style" to _nS(_uM("height" to "22px"))), _uA( - _cE("text", _uM("class" to "nav-inner-search-text"), "搜索") - ), 4) - ), 4) - ), 4) - ), 4), - _cE("scroll-view", _uM("direction" to "vertical", "class" to "main-scroll", "refresher-enabled" to "", "refresher-triggered" to refreshing.value, "lower-threshold" to 50, "onRefresherrefresh" to onRefresh, "onScrolltolower" to loadMore, "onScroll" to handleScroll), _uA( - _cE("view", _uM("class" to "smart-categories", "style" to _nS(_uM("marginTop" to ((statusBarHeight.value + 44 + 10) + "px")))), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("view", _uM("class" to "category-tabs-pills"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab-pill", - _uM("active" to (categoryTab.value == "category")) - )), "onClick" to fun(){ - categoryTab.value = "category" - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "智能分类") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-pill", - _uM("active" to (categoryTab.value == "brand")) - )), "onClick" to fun(){ - categoryTab.value = "brand" - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "品牌甄选") - ), 10, _uA( - "onClick" - )) - )), - _cE("text", _uM("class" to "section-desc"), "快速定位") - )), - if (categoryTab.value === "category") { - _cE("view", _uM("key" to 0, "class" to "category-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(parentCategories.value, fun(category, __key, __index, _cached): Any { - return _cE("view", _uM("key" to category.id, "class" to "category-card", "onClick" to fun(){ - onParentCategoryClick(category) - }, "style" to _nS(_uM("--card-color" to category.color))), _uA( - _cE("view", _uM("class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(category.icon), 1) - )), - _cE("text", _uM("class" to "card-name"), _tD(category.name), 1) - ), 12, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(categoryTab.value === "category" && showSubCategories.value && subCategories.value.length > 0)) { - _cE("view", _uM("key" to 1, "class" to "sub-category-grid"), _uA( - _cE("view", _uM("class" to "sub-category-header"), _uA( - _cE("text", _uM("class" to "sub-category-title"), _tD(selectedParentCategory.value?.name) + "分类", 1), - _cE("text", _uM("class" to "sub-category-close", "onClick" to fun(){ - showSubCategories.value = false - }), "✕", 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "sub-category-wrapper"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(subCategories.value, fun(subCat, __key, __index, _cached): Any { - return _cE("view", _uM("key" to subCat.id, "class" to "sub-category-card", "onClick" to fun(){ - onSubCategoryClick(subCat) - }), _uA( - _cE("view", _uM("class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(subCat.icon), 1) - )), - _cE("text", _uM("class" to "card-name"), _tD(subCat.name), 1) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - if (categoryTab.value === "brand") { - _cE("view", _uM("key" to 2, "class" to "category-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(brands.value, fun(brand, __key, __index, _cached): Any { - return _cE("view", _uM("key" to brand.id, "class" to "category-card", "onClick" to fun(){ - switchBrand(brand) - }, "style" to _nS(_uM("--card-color" to "#5785e5"))), _uA( - if (isTrue(brand.logo_url == null || brand.logo_url == "")) { - _cE("view", _uM("key" to 0, "class" to "card-icon"), _uA( - _cE("text", _uM("class" to "card-icon-text"), _tD(getBrandIcon(brand.name)), 1) - )) - } else { - _cE("image", _uM("key" to 1, "src" to brand.logo_url, "mode" to "aspectFit", "class" to "brand-logo", "style" to _nS(_uM("width" to "40px", "height" to "40px", "border-radius" to "20px"))), null, 12, _uA( - "src" - )) - }, - _cE("text", _uM("class" to "card-name"), _tD(brand.name), 1) - ), 12, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - ), 4), - _cE("view", _uM("class" to "hot-products"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("view", _uM("class" to "title-section"), _uA( - _cE("text", _uM("class" to "section-icon"), "🔥"), - _cE("text", _uM("class" to "section-title"), "热销商品") - )), - _cE("view", _uM("class" to "sort-tabs"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(sortTabs, fun(tab, __key, __index, _cached): Any { - return _cE("text", _uM("key" to tab.id, "class" to _nC(_uA( - "sort-tab", - _uM("active" to (activeSort.value === tab.id)) - )), "onClick" to fun(){ - switchSort(tab.id) - } - ), _tD(tab.name), 11, _uA( - "onClick" - )) - } - ), 64) - )) - )), - _cE("view", _uM("class" to "products-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(hotProducts.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "product-card", "onClick" to fun(){ - navigateToProduct(product) - } - ), _uA( - _cE("view", _uM("class" to "product-image-wrapper"), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.main_image_url, "mode" to "aspectFill"), null, 8, _uA( - "src" - )) - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )), - if (isTrue(loading.value || showLoadMore.value)) { - _cE("view", _uM("key" to 0, "class" to "load-more-status"), _uA( - _cE("text", _uM("class" to "loading-text"), "正在加载更多商品...") - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "safe-area")) - ), 40, _uA( - "refresher-triggered" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0, - styles1 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("medic-home" to _pS(_uM("width" to "100%", "height" to "100%", "overflow" to "hidden", "backgroundImage" to "none", "backgroundColor" to "#f8fafc", "fontFamily" to "-apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, sans-serif", "lineHeight" to 1.5, "display" to "flex", "flexDirection" to "column")), "main-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 1, "width" to "100%", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "maxWidth" to 1400, "marginLeft" to "auto", "marginRight" to "auto")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "cubic-bezier(0.4,0,0.2,1)")), "search-container" to _pS(_uM("height" to 44, "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%")), "search-box" to _pS(_uM("boxShadow:hover" to "0 2px 8px rgba(0, 0, 0, 0.1)", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "maxWidth" to 600, "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "width" to "100%", "height" to 32)), "search-placeholder" to _pS(_uM("fontSize" to 14, "color" to "#999999", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "whiteSpace" to "nowrap", "overflow" to "hidden", "textOverflow" to "ellipsis")), "nav-icon-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-icon" to _pS(_uM("fontSize" to 18)), "nav-inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 24)), "nav-inner-search-text" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "fontWeight" to "normal")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "nav-camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "nav-camera-icon" to _pS(_uM("fontSize" to 20)), "smart-health-card" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #2196F3 0%, #1976D2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "color" to "#FFFFFF")), "health-content" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "health-header" to _pS(_uM("display" to "flex", "flexDirection" to "column", "marginBottom" to 12)), "health-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "marginBottom" to 4)), "health-subtitle" to _pS(_uM("fontSize" to 14, "opacity" to 0.9)), "health-tips" to _pS(_uM("display" to "flex", "flexWrap" to "wrap", "marginTop" to 8)), "tip-item" to _pS(_uM("fontSize" to 13, "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 12, "marginBottom" to 12)), "smart-categories" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "section-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginBottom" to 20, "flexDirection" to "column", "width" to "100%")), "category-tabs-pills" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#f0f2f5", "paddingTop" to 3, "paddingRight" to 3, "paddingBottom" to 3, "paddingLeft" to 3, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "alignItems" to "center")), "tab-pill" to _uM("" to _uM("paddingTop" to 6, "paddingRight" to 18, "paddingBottom" to 6, "paddingLeft" to 18, "borderTopLeftRadius" to 17, "borderTopRightRadius" to 17, "borderBottomRightRadius" to 17, "borderBottomLeftRadius" to 17, "transitionProperty" to "all", "transitionDuration" to "0.3s", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center"), ".active" to _uM("backgroundColor" to "#ffffff", "boxShadow" to "0 2px 8px rgba(0,0,0,0.08)")), "tab-text" to _uM("" to _uM("fontSize" to 14, "color" to "#888888", "fontWeight" to "normal"), ".tab-pill.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "section-title" to _uM("" to _uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#666666", "transitionProperty" to "color", "transitionDuration" to "0.3s"), ".active" to _uM("color" to "#ff5000", "fontSize" to 20)), "section-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "category-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 0, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "category-card" to _pS(_uM("width" to "18%", "marginTop" to 0, "marginRight" to "1%", "marginBottom" to 12, "marginLeft" to "1%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0)", "borderRightColor" to "rgba(0,0,0,0)", "borderBottomColor" to "rgba(0,0,0,0)", "borderLeftColor" to "rgba(0,0,0,0)", "position" to "relative", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)", "borderTopColor:hover" to "var(--card-color,#ff5000)", "borderRightColor:hover" to "var(--card-color,#ff5000)", "borderBottomColor:hover" to "var(--card-color,#ff5000)", "borderLeftColor:hover" to "var(--card-color,#ff5000)")), "sub-category-grid" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginTop" to 16)), "sub-category-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "paddingBottom" to 8, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e0e0e0")), "sub-category-title" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333")), "sub-category-close" to _pS(_uM("fontSize" to 16, "color" to "#999999", "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8)), "sub-category-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "sub-category-card" to _pS(_uM("width" to "23%", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 10, "paddingRight" to 4, "paddingBottom" to 10, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#eeeeee", "borderRightColor" to "#eeeeee", "borderBottomColor" to "#eeeeee", "borderLeftColor" to "#eeeeee", "marginRight" to "2%", "marginBottom" to 10)), "card-icon" to _uM(".sub-category-card " to _uM("width" to 36, "height" to 36, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "marginBottom" to 6, "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), "" to _uM("width" to 44, "height" to 44, "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "background" to "var(--card-color, #ff5000)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 8)), "card-icon-text" to _uM(".sub-category-card " to _uM("fontSize" to 18), "" to _uM("fontSize" to 20, "color" to "#FFFFFF")), "card-name" to _uM(".sub-category-card " to _uM("fontSize" to 11, "color" to "#333333", "textAlign" to "center", "lines" to 1, "textOverflow" to "ellipsis"), "" to _uM("fontSize" to 12, "fontWeight" to "normal", "color" to "#333333", "marginBottom" to 4, "textAlign" to "center", "width" to "100%")), "card-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666", "textAlign" to "center")), "health-news" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "news-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "news-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "news-more" to _pS(_uM("fontSize" to 14, "color" to "#ff5000")), "news-swiper" to _pS(_uM("height" to 200, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "news-content" to _pS(_uM("position" to "relative", "height" to "100%", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "news-image" to _pS(_uM("width" to "100%", "height" to "100%", "display" to "flex")), "news-caption" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "lineHeight" to 1.4, "display" to "flex")), "smart-services" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "services-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 0, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "service-card" to _pS(_uM("width" to "47%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 20, "marginLeft" to "1.5%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "transform:hover" to "translateY(-4px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)")), "service-icon" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 30, "borderTopRightRadius" to 30, "borderBottomRightRadius" to 30, "borderBottomLeftRadius" to 30, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 12)), "service-icon-text" to _pS(_uM("fontSize" to 28, "color" to "#FFFFFF")), "service-name" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "service-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "hot-keywords-section" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20)), "keywords-list" to _pS(_uM("display" to "flex", "flexWrap" to "wrap", "marginTop" to 15)), "keyword-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 8, "paddingRight" to 16, "paddingBottom" to 8, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#fff0f0")), "keyword-rank" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 12, "fontWeight" to "bold", "color" to "#999999", "backgroundImage" to "none", "backgroundColor" to "#eeeeee", "marginRight" to 8), ".top-three" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff4757", "color" to "#FFFFFF")), "keyword-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "hot-products" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "title-section" to _pS(_uM("display" to "flex", "alignItems" to "center", "width" to "100%")), "section-icon" to _pS(_uM("fontSize" to 20, "color" to "#ff5000", "marginRight" to 8)), "sort-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start", "width" to "100%", "marginTop" to 12)), "sort-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 70, "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginRight" to 8, "backgroundImage:hover" to "none", "backgroundColor:hover" to "#f5f5f5"), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".active:hover" to _uM("backgroundImage" to "none", "backgroundColor" to "#e64a00")), "products-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "marginTop" to 20, "minHeight" to 500, "paddingBottom" to 20)), "product-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "product-image-wrapper" to _pS(_uM("width" to "100%", "paddingBottom" to "100%", "position" to "relative", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-image" to _uM("" to _uM("position" to "absolute", "top" to 0, "left" to 0, "width" to "100%", "height" to "100%", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8), ".product-image-container " to _uM("position" to "absolute", "top" to 0, "left" to 0, "width" to "100%", "height" to "100%", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "cart-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "fontSize" to 13, "fontWeight" to "bold", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#388E3C")), "cart-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6, "color" to "#FFFFFF")), "cart-text" to _pS(_uM("fontSize" to 13)), "family-medicine" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "section-subtitle" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginLeft" to 12)), "family-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 20, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "family-item" to _pS(_uM("width" to "47%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 16, "marginLeft" to "1.5%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 12px rgba(0, 0, 0, 0.1)")), "family-icon" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 12)), "family-icon-text" to _pS(_uM("fontSize" to 20, "color" to "#FFFFFF")), "family-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4)), "family-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "smart-recommend" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginBottom" to 20, "boxShadow" to "0 2px 12px rgba(0, 0, 0, 0.05)")), "recommend-filters" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start", "width" to "100%", "marginTop" to 12)), "filter-item" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 80, "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginRight" to 8, "marginBottom" to 8, "backgroundImage:hover" to "none", "backgroundColor:hover" to "#f5f5f5"), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".active:hover" to _uM("backgroundImage" to "none", "backgroundColor" to "#e64a00")), "recommend-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 20, "marginRight" to "-1.5%", "marginBottom" to 0, "marginLeft" to "-1.5%")), "recommend-product" to _pS(_uM("width" to "97%", "marginTop" to 0, "marginRight" to "1.5%", "marginBottom" to 20, "marginLeft" to "1.5%", "backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transform:hover" to "translateY(-4px)", "boxShadow:hover" to "0 8px 24px rgba(0, 0, 0, 0.12)")), "product-image-container" to _pS(_uM("position" to "relative", "width" to "100%", "paddingBottom" to "100%")), "product-tags" to _pS(_uM("position" to "absolute", "top" to 12, "left" to 12, "display" to "flex", "flexDirection" to "row")), "product-tag" to _pS(_uM("paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF", "marginRight" to 8, "backgroundImage" to "none", "backgroundColor" to "rgba(76,175,80,0.9)")), "featured-tag" to _pS(_uM("paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF", "marginRight" to 8, "backgroundImage" to "none", "backgroundColor" to "rgba(255,87,34,0.9)")), "product-details" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "product-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 4, "lineHeight" to 1.4, "display" to "flex")), "product-specification" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginBottom" to 12, "display" to "flex")), "product-rating" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 12, "fontSize" to 13)), "rating-stars" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginRight" to 8)), "star-icon" to _pS(_uM("fontSize" to 14, "color" to "#FFC107", "marginRight" to 2)), "rating-value" to _pS(_uM("fontWeight" to "bold", "color" to "#333333"))) - } - val styles1: Map>> - get() { - return _uM("reviews-count" to _pS(_uM("color" to "#666666")), "product-actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "marginTop" to 12)), "add-to-cart" to _pS(_uM("width" to 36, "height" to 36, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "backgroundImage" to "none", "backgroundColor" to "#ff5000", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#e64a00", "transform:hover" to "scale(1.1)")), "health-reminder" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #FF9800 0%, #F57C00 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 16, "paddingRight" to 20, "paddingBottom" to 16, "paddingLeft" to 20, "marginBottom" to 20, "color" to "#FFFFFF")), "reminder-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "reminder-icon" to _pS(_uM("fontSize" to 24, "marginRight" to 12)), "reminder-text" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "reminder-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "marginBottom" to 4)), "reminder-desc" to _pS(_uM("fontSize" to 13, "opacity" to 0.9)), "reminder-action" to _pS(_uM("paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-text" to _pS(_uM("fontSize" to 13, "fontWeight" to "bold")), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center")), "loading-spinner" to _pS(_uM("width" to 32, "height" to 32, "borderTopWidth" to 3, "borderRightWidth" to 3, "borderBottomWidth" to 3, "borderLeftWidth" to 3, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "marginBottom" to 12)), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "no-more" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "textAlign" to "center", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0", "marginTop" to 10)), "no-more-text" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "safe-area" to _pS(_uM("height" to 20, "width" to "100%")), "@TRANSITION" to _uM("smart-navbar" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "cubic-bezier(0.4,0,0.2,1)"), "search-box" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "tab-pill" to _uM("property" to "all", "duration" to "0.3s"), "section-title" to _uM("property" to "color", "duration" to "0.3s"), "category-card" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "service-card" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "keyword-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "sort-tab" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "cart-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "family-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "filter-item" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "recommend-product" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "add-to-cart" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "reminder-action" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/main/messages.kt b/unpackage/cache/.app-android/src/pages/main/messages.kt deleted file mode 100644 index a9981ab4..00000000 --- a/unpackage/cache/.app-android/src/pages/main/messages.kt +++ /dev/null @@ -1,567 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMainMessages : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMainMessages) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMainMessages - val _cache = __ins.renderCache - val activeTab = ref("service") - val refreshing = ref(false) - val loading = ref(false) - val unreadCount = ref(12) - val statusBarHeight = ref(0) - val scrollTop = ref(0) - val scrollHeight = ref(0) - val navBarRight = ref(0) - val capsuleButtonInfo = ref(null) - val messageTabs = reactive(_uA(MessageTab(id = "service", name = "客服消息", unread = 5), MessageTab(id = "system", name = "系统通知", unread = 3), MessageTab(id = "order", name = "订单消息", unread = 2), MessageTab(id = "promo", name = "优惠活动", unread = 2))) - val serviceMessages = reactive(_uA()) - val systemMessages = reactive(_uA()) - val orderMessages = reactive(_uA()) - val promoMessages = reactive(_uA()) - val currentMessages = computed>(fun(): UTSArray { - when (activeTab.value) { - "system" -> - return systemMessages - "order" -> - return orderMessages - "service" -> - return serviceMessages - "promo" -> - return promoMessages - else -> - return _uA() - } - } - ) - val formatTime = fun(isoString: String): String { - if (isoString == "") { - return "" - } - try { - return isoString.split("T")[0] - } - catch (e: Throwable) { - return isoString - } - } - val updateUnreadCount = fun(){ - var totalUnread: Number = 0 - var serviceUnread: Number = 0 - serviceMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - serviceUnread++ - } - } - ) - messageTabs[0].unread = serviceUnread - totalUnread += serviceUnread - var systemUnread: Number = 0 - systemMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - systemUnread++ - } - } - ) - messageTabs[1].unread = systemUnread - totalUnread += systemUnread - var orderUnread: Number = 0 - orderMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - orderUnread++ - } - } - ) - messageTabs[2].unread = orderUnread - totalUnread += orderUnread - var promoUnread: Number = 0 - promoMessages.forEach(fun(msg: MessageItem){ - if (!msg.read) { - promoUnread++ - } - } - ) - messageTabs[3].unread = promoUnread - totalUnread += promoUnread - unreadCount.value = totalUnread - } - val initPage = fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight - navBarRight.value = 0 - val windowHeight = systemInfo.windowHeight - scrollHeight.value = windowHeight - statusBarHeight.value - 44 - 42 - } - val loadMessages = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - serviceMessages.length = 0 - systemMessages.length = 0 - orderMessages.length = 0 - promoMessages.length = 0 - console.log("[loadMessages] 开始获取通知...", " at pages/main/messages.uvue:389") - val notes = await(supabaseService.getUserNotifications()) - console.log("[loadMessages] 获取到通知数量:", notes.length, " at pages/main/messages.uvue:391") - run { - var i: Number = 0 - while(i < notes.length){ - val note = notes[i] - console.log("[loadMessages] 通知类型:", note.type, "标题:", note.title, " at pages/main/messages.uvue:396") - val item = MessageItem(id = note.id, title = note.title, content = note.content, time = formatTime(note.created_at ?: ""), read = note.is_read, type = note.type, avatar = note.icon_url, important = note.type == "system", coupon = "点击查看", expiry = "", claimed = false, order_no = "", status = "", statusText = "", role = "", lastMessage = "", online = false, unreadCount = 0, tags = _uA(), icon = "", color = "", active = false) - if (note.type == "system") { - systemMessages.push(item) - } else if (note.type == "order") { - orderMessages.push(item) - } else if (note.type == "promotion") { - item.type = "promo" - promoMessages.push(item) - } - i++ - } - } - console.log("[loadMessages] 系统消息:", systemMessages.length, "订单消息:", orderMessages.length, "优惠消息:", promoMessages.length, " at pages/main/messages.uvue:433") - val rooms = await(supabaseService.getChatRooms()) - rooms.forEach(fun(room: ChatRoom){ - val msgItem = MessageItem(id = room.merchant_id, title = room.shop_name, role = "商家客服", content = room.last_message ?: "暂无消息", lastMessage = room.last_message ?: "暂无消息", time = formatTime(room.last_message_at ?: ""), read = room.unread_count === 0, type = "service", avatar = room.shop_logo ?: "/static/icons/customer-service.png", online = true, unreadCount = room.unread_count, tags = _uA(), icon = "🏪", color = "#FF9800", important = false, coupon = "", expiry = "", claimed = false, order_no = "", status = "", statusText = "", active = false) - serviceMessages.push(msgItem) - } - ) - if (serviceMessages.length === 0) { - val defaultService = MessageItem(id = "default_service", title = "平台客服", role = "智能助手", content = "有问题请随时联系我们", lastMessage = "欢迎咨询", time = "刚刚", read = true, type = "service", avatar = "/static/icons/customer-service.png", online = true, unreadCount = 0, tags = _uA( - "自动回复" - ), icon = "🤖", color = "#2196F3", important = false, coupon = "", expiry = "", claimed = false, order_no = "", status = "", statusText = "", active = false) - serviceMessages.push(defaultService) - } - } - catch (e: Throwable) { - console.error("加载消息失败", e, " at pages/main/messages.uvue:495") - } - finally { - updateUnreadCount() - loading.value = false - } - }) - } - onMounted(fun(){ - console.log("Messages Page Mounted", " at pages/main/messages.uvue:504") - initPage() - } - ) - onShow__1(fun(){ - console.log("Messages Page Show", " at pages/main/messages.uvue:509") - loadMessages() - } - ) - val switchTab = fun(tabId: String){ - activeTab.value = tabId - scrollTop.value = if (scrollTop.value === 0) { - 0.01 - } else { - 0 - } - } - val startChatWithService = fun(message: MessageItem){ - message.read = true - message.unreadCount = 0 - updateUnreadCount() - val merchantId = if (message.id === "default_service") { - "" - } else { - message.id - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchantId + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(message.title), " at pages/main/messages.uvue:531"))) - } - val viewSystemMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/message-detail?id=" + message.id + "&type=system")) - } - val viewOrderMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?id=" + message.order_no)) - } - val viewPromoMessage = fun(message: MessageItem){ - message.read = true - updateUnreadCount() - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons")) - } - val claimCoupon = fun(message: MessageItem){ - if (message.claimed) { - uni_showToast(ShowToastOptions(title = "您已领取该优惠券", icon = "none")) - return - } - message.claimed = true - val claimedCouponsCount = uni_getStorageSync("claimedCoupons") - val count = if ((claimedCouponsCount != null)) { - (claimedCouponsCount as Number) - } else { - 0 - } - uni_setStorageSync("claimedCoupons", count + 1) - val myCoupons = uni_getStorageSync("myCoupons") - var couponsList: UTSArray = _uA() - if (myCoupons != null) { - try { - couponsList = UTSAndroid.consoleDebugError(JSON.parse(myCoupons as String), " at pages/main/messages.uvue:602") as UTSArray - } - catch (e: Throwable) { - console.error("Failed to parse myCoupons", e, " at pages/main/messages.uvue:604") - } - } - couponsList.push(object : UTSJSONObject() { - var title = message.title - var amount = message.coupon - var expiry = message.expiry - var id = message.id - }) - uni_setStorageSync("myCoupons", JSON.stringify(couponsList)) - uni_showToast(ShowToastOptions(title = "领取成功", icon = "success")) - } - val clearAllUnread = fun(){ - uni_showModal(ShowModalOptions(title = "确认操作", content = "确定要标记所有消息为已读吗?", success = fun(res){ - if (res.confirm) { - serviceMessages.forEach(fun(msg: MessageItem){ - msg.read = true - msg.unreadCount = 0 - } - ) - systemMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - orderMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - promoMessages.forEach(fun(msg: MessageItem){ - msg.read = true - } - ) - messageTabs.forEach(fun(tab: MessageTab){ - tab.unread = 0 - } - ) - unreadCount.value = 0 - uni_showToast(ShowToastOptions(title = "已标记所有消息为已读", icon = "success")) - } - } - )) - } - val onRefresh = fun(){ - refreshing.value = true - setTimeout(fun(){ - loadMessages() - refreshing.value = false - uni_showToast(ShowToastOptions(title = "刷新成功", icon = "success")) - } - , 1000) - } - return fun(): Any? { - return _cE("view", _uM("class" to "messages-page"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "nav-container", "style" to _nS(_uM("paddingRight" to ((if (navBarRight.value > 0) { - navBarRight.value - } else { - 16 - } - ) + "px")))), _uA( - _cE("text", _uM("class" to "nav-title"), "消息中心"), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to clearAllUnread), _uA( - _cE("text", _uM("class" to "action-icon"), "🧹"), - _cE("text", _uM("class" to "action-text"), "一键已读") - )) - )) - ), 4) - ), 4), - _cE("view", _uM("class" to "navbar-placeholder", "style" to _nS(_uM("height" to ((statusBarHeight.value + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "tabs-container"), _uA( - _cE("view", _uM("class" to "message-tabs"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(messageTabs, fun(tab, __key, __index, _cached): Any { - return _cE("view", _uM("key" to tab.id, "class" to _nC(_uA( - "tab-item", - _uM("active" to (activeTab.value === tab.id)) - )), "onClick" to fun(){ - switchTab(tab.id) - } - ), _uA( - _cE("text", _uM("class" to "tab-name"), _tD(tab.name), 1), - if (tab.unread > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(if (tab.unread > 99) { - "99+" - } else { - tab.unread - }), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - } - ), 128) - )) - )), - _cE("scroll-view", _uM("scroll-y" to "", "class" to "messages-content", "refresher-enabled" to "", "refresher-triggered" to refreshing.value, "onRefresherrefresh" to onRefresh, "scroll-top" to scrollTop.value), _uA( - if (activeTab.value === "service") { - _cE("view", _uM("key" to 0, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(serviceMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to _nC(_uA( - "message-item", - _uM("active" to message.active) - )), "onClick" to fun(){ - startChatWithService(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - if (isTrue(message.avatar)) { - _cE("image", _uM("key" to 0, "class" to "message-avatar", "src" to message.avatar, "mode" to "aspectFill"), null, 8, _uA( - "src" - )) - } else { - _cE("view", _uM("key" to 1, "class" to "message-icon-default", "style" to _nS(_uM("backgroundColor" to message.color))), _uA( - _cE("text", _uM("class" to "message-icon-text"), _tD(message.icon), 1) - ), 4) - }, - if (message.unreadCount > 0) { - _cE("view", _uM("key" to 2, "class" to "unread-dot")) - } else { - _cC("v-if", true) - }, - if (isTrue(message.online)) { - _cE("view", _uM("key" to 3, "class" to "online-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.role)) { - _cE("text", _uM("key" to 0, "class" to "message-role"), _tD(message.role), 1) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1), - if (message.unreadCount > 0) { - _cE("text", _uM("key" to 0, "class" to "message-unread-count"), _tD(if (message.unreadCount > 99) { - "99+" - } else { - message.unreadCount - }), 1) - } else { - _cC("v-if", true) - } - )) - )) - ), 10, _uA( - "onClick" - )) - }), 128), - _cE("view", _uM("class" to "service-tips"), _uA( - _cE("text", _uM("class" to "tip-icon"), "💡"), - _cE("text", _uM("class" to "tip-text"), "温馨提示:请勿相信任何要求转账、付款的信息,谨防诈骗") - )) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "system") { - _cE("view", _uM("key" to 1, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(systemMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to "message-item", "onClick" to fun(){ - viewSystemMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon-text"), "📢"), - if (isTrue(!message.read)) { - _cE("view", _uM("key" to 0, "class" to "unread-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.important)) { - _cE("text", _uM("key" to 0, "class" to "important-tag"), "重要") - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1) - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "order") { - _cE("view", _uM("key" to 2, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(orderMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to "message-item", "onClick" to fun(){ - viewOrderMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon-text"), "📦"), - if (isTrue(!message.read)) { - _cE("view", _uM("key" to 0, "class" to "unread-dot")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("view", _uM("class" to "message-title-wrapper"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - if (isTrue(message.status)) { - _cE("view", _uM("key" to 0, "class" to _nC(_uA( - "order-status-tag", - message.status - ))), _tD(message.statusText), 3) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("view", _uM("class" to "message-preview-wrapper"), _uA( - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1) - )), - if (isTrue(message.order_no)) { - _cE("text", _uM("key" to 0, "class" to "order-no-text"), "订单号: " + _tD(message.order_no), 1) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "promo") { - _cE("view", _uM("key" to 3, "class" to "message-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(promoMessages, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to _nC(_uA( - "message-item", - _uM("unread" to !message.read) - )), "onClick" to fun(){ - viewPromoMessage(message) - }), _uA( - _cE("view", _uM("class" to "message-icon-wrapper"), _uA( - _cE("text", _uM("class" to "message-icon"), "🎁") - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.title), 1), - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )), - _cE("text", _uM("class" to "message-preview"), _tD(message.content), 1), - if (isTrue(message.coupon)) { - _cE("view", _uM("key" to 0, "class" to "coupon-info", "onClick" to withModifiers(fun(){ - claimCoupon(message) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "coupon-text"), _tD(message.coupon) + "优惠券", 1), - _cE("text", _uM("class" to "coupon-expiry"), "有效期至 " + _tD(message.expiry), 1), - _cE("text", _uM("class" to "coupon-action"), _tD(if (message.claimed) { - "已领取" - } else { - "点击领取" - }), 1) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - ), 10, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && currentMessages.value.length === 0 && activeTab.value !== "service")) { - _cE("view", _uM("key" to 4, "class" to "empty-messages"), _uA( - _cE("text", _uM("class" to "empty-icon"), "💬"), - _cE("text", _uM("class" to "empty-title"), "暂无消息"), - _cE("text", _uM("class" to "empty-desc"), "暂时没有新消息") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "safe-area")) - ), 40, _uA( - "refresher-triggered", - "scroll-top" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("messages-page" to _pS(_uM("width" to "100%", "height" to "100%", "backgroundColor" to "#f8fafc", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start", "flexShrink" to 0)), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#FFFFFF", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "action-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "backgroundImage:hover" to "none", "backgroundColor:hover" to "rgba(255,255,255,0.3)")), "action-icon" to _pS(_uM("fontSize" to 14, "marginRight" to 4)), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#FFFFFF", "fontWeight" to "bold")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "tabs-container" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e0e0e0", "boxShadow" to "0 2px 4px rgba(0, 0, 0, 0.05)", "zIndex" to 900, "height" to 42, "flexShrink" to 0)), "message-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "height" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "justifyContent" to "space-between", "display::-webkit-scrollbar" to "none")), "tab-item" to _uM("" to _uM("paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "marginTop" to 0, "marginRight" to 2, "marginBottom" to 0, "marginLeft" to 2, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "position" to "relative", "height" to "100%", "borderBottomWidth" to 3, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0), ".active" to _uM("color" to "#ff5000", "borderBottomColor" to "#ff5000", "fontWeight" to "bold")), "tab-name" to _pS(_uM("fontSize" to 14, "overflow" to "hidden", "textOverflow" to "ellipsis")), "tab-badge" to _pS(_uM("backgroundColor" to "#FF5722", "color" to "#FFFFFF", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 5, "paddingBottom" to 1, "paddingLeft" to 5, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "minWidth" to 16, "textAlign" to "center", "fontWeight" to "bold", "marginLeft" to 4, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "height" to 16)), "messages-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "paddingBottom" to 20)), "customer-service-info" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.08)")), "service-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 10)), "service-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "service-status" to _uM("" to _uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "fontWeight" to "bold"), ".online" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#ff5000")), "service-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666", "lineHeight" to 1.5, "marginBottom" to 20)), "service-categories" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 6, "paddingRight" to 6, "paddingBottom" to 6, "paddingLeft" to 6)), "category-item" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease", "marginTop" to "1%", "marginRight" to "1%", "marginBottom" to "1%", "marginLeft" to "1%", "width" to "48%", "backgroundImage:hover" to "none", "backgroundColor:hover" to "#e8f5e9", "transform:hover" to "translateY(-2px)", "boxShadow:hover" to "0 4px 8px rgba(76, 175, 80, 0.2)")), "category-icon" to _pS(_uM("fontSize" to 24, "marginBottom" to 8)), "category-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "fontWeight" to "bold")), "message-section" to _pS(_uM("paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10)), "message-item" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "boxShadow" to "0 1px 4px rgba(0, 0, 0, 0.04)", "transitionProperty" to "opacity", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "opacity:active" to 0.7), ".unread" to _uM("backgroundColor" to "#FFFFFF")), "message-icon-wrapper" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "backgroundColor" to "#f8fafc", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 12, "flexShrink" to 0, "position" to "relative")), "message-icon-default" to _pS(_uM("width" to "100%", "height" to "100%", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "message-icon-text" to _pS(_uM("fontSize" to 22)), "message-avatar" to _pS(_uM("width" to "100%", "height" to "100%", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24)), "unread-dot" to _pS(_uM("position" to "absolute", "top" to 0, "right" to 0, "width" to 10, "height" to 10, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "borderTopWidth" to 1.5, "borderRightWidth" to 1.5, "borderBottomWidth" to 1.5, "borderLeftWidth" to 1.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#FFFFFF", "borderRightColor" to "#FFFFFF", "borderBottomColor" to "#FFFFFF", "borderLeftColor" to "#FFFFFF")), "online-dot" to _pS(_uM("position" to "absolute", "bottom" to 0, "right" to 0, "width" to 12, "height" to 12, "backgroundColor" to "#4cd964", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#FFFFFF", "borderRightColor" to "#FFFFFF", "borderBottomColor" to "#FFFFFF", "borderLeftColor" to "#FFFFFF")), "message-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0, "display" to "flex", "flexDirection" to "column")), "message-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 4)), "message-title-wrapper" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "minWidth" to 0, "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "message-title" to _pS(_uM("fontSize" to 16, "color" to "#1a1a1a", "fontWeight" to "bold", "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "message-role" to _pS(_uM("fontSize" to 10, "color" to "#ff5000", "backgroundImage" to "none", "backgroundColor" to "#fff0eb", "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginLeft" to 6, "flexShrink" to 0)), "message-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginLeft" to 10, "flexShrink" to 0)), "message-preview-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between")), "message-preview" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 13, "color" to "#666666", "lineHeight" to 1.4, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap", "marginRight" to 8)), "message-unread-count" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF", "backgroundImage" to "none", "backgroundColor" to "#ff5000", "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "minWidth" to 16, "height" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontWeight" to "bold", "flexShrink" to 0)), "last-message" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "message-tags" to _pS(_uM("display" to "flex", "flexWrap" to "wrap")), "message-tag" to _pS(_uM("fontSize" to 11, "color" to "#666666", "backgroundImage" to "none", "backgroundColor" to "#f0f0f0", "paddingTop" to 3, "paddingRight" to 8, "paddingBottom" to 3, "paddingLeft" to 8, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginRight" to 6, "marginBottom" to 4)), "order-info" to _pS(_uM("fontSize" to 12, "color" to "#ff5000", "backgroundColor" to "#FFF3E0", "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 8, "alignSelf" to "flex-start")), "order-status" to _uM("" to _uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginTop" to 8, "marginLeft" to 8, "alignSelf" to "flex-start"), ".shipping" to _uM("backgroundImage" to "none", "backgroundColor" to "#E3F2FD", "color" to "#2196F3"), ".processing" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#FF9800"), ".completed" to _uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "color" to "#ff5000")), "important-tag" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 8, "alignSelf" to "flex-start", "marginLeft" to 6, "flexShrink" to 0)), "coupon-info" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #FF9800, #FF5722)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "marginTop" to 8, "color" to "#FFFFFF")), "coupon-text" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "marginBottom" to 4)), "coupon-expiry" to _pS(_uM("fontSize" to 12, "opacity" to 0.9)), "coupon-action" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginTop" to 4, "alignSelf" to "flex-start")), "service-tips" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#FFF3E0", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "display" to "flex", "alignItems" to "flex-start")), "tip-icon" to _pS(_uM("fontSize" to 18, "color" to "#FF9800", "flexShrink" to 0, "marginTop" to 2, "marginRight" to 10)), "tip-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "lineHeight" to 1.5)), "order-no-text" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginTop" to 4)), "order-status-tag" to _uM("" to _uM("fontSize" to 10, "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginLeft" to 6, "flexShrink" to 0), ".shipping" to _uM("backgroundImage" to "none", "backgroundColor" to "#e3f2fd", "color" to "#2196f3"), ".processing" to _uM("backgroundImage" to "none", "backgroundColor" to "#fff8e1", "color" to "#ffb300"), ".completed" to _uM("backgroundImage" to "none", "backgroundColor" to "#fff0eb", "color" to "#ff5000")), "empty-messages" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 100)), "empty-icon" to _pS(_uM("fontSize" to 60, "marginBottom" to 16, "opacity" to 0.3)), "empty-title" to _pS(_uM("fontSize" to 16, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 8)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "floating-action" to _pS(_uM("position" to "fixed", "bottom" to 20, "right" to 20, "zIndex" to 100)), "action-button" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff5000, #e64a00)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 12, "paddingRight" to 20, "paddingBottom" to 12, "paddingLeft" to 20, "display" to "flex", "alignItems" to "center", "boxShadow" to "0 4px 12px rgba(76, 175, 80, 0.3)", "fontWeight" to "bold")), "button-icon" to _pS(_uM("fontSize" to 18, "marginRight" to 8)), "button-text" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold")), "safe-area" to _pS(_uM("height" to 80)), "@TRANSITION" to _uM("action-btn" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"), "tab-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "category-item" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"), "message-item" to _uM("property" to "opacity", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/main/profile.kt b/unpackage/cache/.app-android/src/pages/main/profile.kt deleted file mode 100644 index 4be87a9e..00000000 --- a/unpackage/cache/.app-android/src/pages/main/profile.kt +++ /dev/null @@ -1,1369 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.`$off` as uni__off -import io.dcloud.uniapp.extapi.`$on` as uni__on -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMainProfile : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) { - onLoad(fun(_: OnLoadOptions) { - this.initPage() - this.loadUserProfile() - this.loadOrders() - uni__on("orderUpdated", this.handleOrderUpdated) - } - , __ins) - onPageShow(fun() { - this.refreshData() - } - , __ins) - onUnload(fun() { - uni__off("orderUpdated", this.handleOrderUpdated) - } - , __ins) - } - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - override fun `$render`(): Any? { - val _ctx = this - val _cache = this.`$`.renderCache - return _cE("view", _uM("class" to "consumer-profile"), _uA( - _cE("view", _uM("class" to "smart-navbar", "style" to _nS(_uM("paddingTop" to (_ctx.statusBarHeight + "px")))), _uA( - _cE("view", _uM("class" to "nav-container", "style" to _nS(_uM("paddingRight" to ((if (_ctx.navBarRight > 0) { - _ctx.navBarRight - } else { - 16 - } - ) + "px")))), _uA( - _cE("view", _uM("class" to "nav-user-basic", "onClick" to _ctx.editProfile), _uA( - _cE("image", _uM("src" to if (_ctx.userInfo.avatar_url != "") { - _ctx.userInfo.avatar_url - } else { - "/static/images/default-product.png" - } - , "class" to "nav-avatar"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "nav-user-name"), _tD(if (_ctx.userInfo.nickname != "") { - _ctx.userInfo.nickname - } else { - _ctx.userInfo.phone - } - ), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-user-stats"), _uA( - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToPoints), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "积分"), - _cE("text", _uM("class" to "nav-stat-value"), _tD(_ctx.userStats.points), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToWallet), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "余额"), - _cE("text", _uM("class" to "nav-stat-value"), "¥" + _tD(_ctx.userStats.balance), 1) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "nav-stat-item", "onClick" to _ctx.goToCoupons), _uA( - _cE("text", _uM("class" to "nav-stat-label"), "券"), - _cE("text", _uM("class" to "nav-stat-value"), _tD(_ctx.serviceCounts.coupons), 1) - ), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "nav-actions"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to _ctx.goToSettings), _uA( - _cE("text", _uM("class" to "action-icon"), "⚙️") - ), 8, _uA( - "onClick" - )) - )) - ), 4) - ), 4), - _cE("scroll-view", _uM("class" to "profile-scroll-content", "scroll-y" to true), _uA( - _cE("view", _uM("style" to _nS(_uM("height" to ((_ctx.statusBarHeight + 44) + "px")))), null, 4), - _cE("view", _uM("class" to "my-services", "style" to _nS(_uM("margin-top" to "10px"))), _uA( - _cE("view", _uM("class" to "section-title"), "我的服务"), - _cE("view", _uM("class" to "service-grid"), _uA( - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToMessages), _uA( - _cE("text", _uM("class" to "service-icon"), "💬"), - _cE("text", _uM("class" to "service-text"), "消息中心"), - if (_ctx.serviceCounts.unreadMessages > 0) { - _cE("text", _uM("key" to 0, "class" to "service-badge"), _tD(_ctx.serviceCounts.unreadMessages), 1) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToCoupons), _uA( - _cE("text", _uM("class" to "service-icon"), "🎫"), - _cE("text", _uM("class" to "service-text"), "优惠券"), - if (_ctx.serviceCounts.coupons > 0) { - _cE("text", _uM("key" to 0, "class" to "service-badge"), _tD(_ctx.serviceCounts.coupons), 1) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToAddress), _uA( - _cE("text", _uM("class" to "service-icon"), "📍"), - _cE("text", _uM("class" to "service-text"), "收货地址") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFavorites), _uA( - _cE("text", _uM("class" to "service-icon"), "❤️"), - _cE("text", _uM("class" to "service-text"), "我的收藏"), - if (_ctx.serviceCounts.favorites > 0) { - _cE("text", _uM("key" to 0, "class" to "service-badge"), _tD(_ctx.serviceCounts.favorites), 1) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFootprint), _uA( - _cE("text", _uM("class" to "service-icon"), "👣"), - _cE("text", _uM("class" to "service-text"), "浏览足迹") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToRefund), _uA( - _cE("text", _uM("class" to "service-icon"), "🔄"), - _cE("text", _uM("class" to "service-text"), "退款/售后") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToOrderReviews), _uA( - _cE("text", _uM("class" to "service-icon"), "📝"), - _cE("text", _uM("class" to "service-text"), "评价") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToFollowedShops), _uA( - _cE("text", _uM("class" to "service-icon"), "⭐"), - _cE("text", _uM("class" to "service-text"), "关注店铺") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToPoints), _uA( - _cE("text", _uM("class" to "service-icon"), "💰"), - _cE("text", _uM("class" to "service-text"), "我的积分") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToBalance), _uA( - _cE("text", _uM("class" to "service-icon"), "💵"), - _cE("text", _uM("class" to "service-text"), "我的余额") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToShare), _uA( - _cE("text", _uM("class" to "service-icon"), "🔗"), - _cE("text", _uM("class" to "service-text"), "我的分享") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToMember), _uA( - _cE("text", _uM("class" to "service-icon"), "👑"), - _cE("text", _uM("class" to "service-text"), "会员中心") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "service-item", "onClick" to _ctx.goToSettings), _uA( - _cE("text", _uM("class" to "service-icon"), "⚙️"), - _cE("text", _uM("class" to "service-text"), "设置") - ), 8, _uA( - "onClick" - )) - )) - ), 4), - _cE("view", _uM("class" to "order-shortcuts"), _uA( - _cE("view", _uM("class" to "section-header-row"), _uA( - _cE("text", _uM("class" to "section-title"), "我的订单"), - _cE("text", _uM("class" to "view-all", "onClick" to fun(){ - _ctx.goToOrders(_ctx.currentOrderTab) - } - ), "查看更多 ❯", 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "order-tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "all")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("all") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "📋"), - _cE("text", _uM("class" to "tab-text"), "全部"), - if (_ctx.orderCounts.total > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.total), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "pending")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("pending") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "💰"), - _cE("text", _uM("class" to "tab-text"), "待支付"), - if (_ctx.orderCounts.pending > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.pending), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "toship")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("toship") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "🚚"), - _cE("text", _uM("class" to "tab-text"), "待发货"), - if (_ctx.orderCounts.toship > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.toship), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "order-tab", - _uM("active" to (_ctx.currentOrderTab === "shipped")) - )), "onClick" to fun(){ - _ctx.switchOrderTab("shipped") - } - ), _uA( - _cE("text", _uM("class" to "tab-icon"), "📦"), - _cE("text", _uM("class" to "tab-text"), "待收货"), - if (_ctx.orderCounts.shipped > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(_ctx.orderCounts.shipped), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "recent-orders"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), _tD(_ctx.getOrderSectionTitle()), 1) - )), - if (_ctx.filteredOrders.length === 0) { - _cE("view", _uM("key" to 0, "class" to "empty-orders"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无相关订单记录"), - _cE("button", _uM("class" to "start-shopping", "onClick" to _ctx.goShopping), "去逛逛", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - _cE(Fragment, null, RenderHelpers.renderList(_ctx.filteredOrders, fun(order, __key, __index, _cached): Any { - return _cE("view", _uM("key" to order.id, "class" to "order-item", "onClick" to fun(){ - _ctx.viewOrderDetail(order) - } - ), _uA( - _cE("view", _uM("class" to "order-item-header"), _uA( - _cE("view", _uM("class" to "order-shop"), _uA( - _cE("text", _uM("class" to "shop-icon"), "🏪"), - _cE("text", _uM("class" to "shop-name"), _tD(_ctx.getOrderShopName(order)), 1), - _cE("text", _uM("class" to "shop-arrow"), " › ") - )), - _cE("view", _uM("class" to "status-row"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "order-status-text", - _ctx.getOrderStatusClass(order.status) - ))), _tD(_ctx.getOrderStatusText(order.status)), 3), - _cE("text", _uM("class" to "more-btn", "onClick" to withModifiers(fun(){ - _ctx.showOrderMenu(order) - } - , _uA( - "stop" - ))), "⋯", 8, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "order-item-content"), _uA( - _cE("image", _uM("src" to _ctx.getOrderMainImage(order), "class" to "order-item-image", "mode" to "aspectFill", "onClick" to withModifiers(fun(){ - _ctx.goToProductFromOrder(order) - } - , _uA( - "stop" - ))), null, 8, _uA( - "src", - "onClick" - )), - _cE("view", _uM("class" to "order-item-info"), _uA( - _cE("view", _uM("class" to "order-title-row"), _uA( - _cE("text", _uM("class" to "order-item-title"), _tD(_ctx.getOrderTitle(order)), 1), - _cE("text", _uM("class" to "order-item-price"), "¥" + _tD(order.actual_amount), 1) - )), - _cE("view", _uM("class" to "order-spec-row"), _uA( - _cE("text", _uM("class" to "order-item-spec"), _tD(_ctx.getOrderSpec(order)), 1), - _cE("text", _uM("class" to "order-item-num"), "x" + _tD(_ctx.getOrderItemCount(order)), 1) - )), - _cE("text", _uM("class" to "order-item-time"), _tD(_ctx.formatDateTime(order.created_at)), 1) - )) - )), - _cE("view", _uM("class" to "order-item-actions"), _uA( - if (order.status === 1) { - _cE("button", _uM("key" to 0, "class" to "order-action-btn pay", "onClick" to withModifiers(fun(){ - _ctx.payOrder(order) - }, _uA( - "stop" - ))), "立即支付", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 3) { - _cE("button", _uM("key" to 1, "class" to "order-action-btn confirm", "onClick" to withModifiers(fun(){ - _ctx.confirmReceive(order) - }, _uA( - "stop" - ))), "确认收货", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 4) { - _cE("button", _uM("key" to 2, "class" to "order-action-btn review", "onClick" to withModifiers(fun(){ - _ctx.reviewOrder(order) - }, _uA( - "stop" - ))), "评价", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(order.status === 2 || order.status === 3)) { - _cE("button", _uM("key" to 3, "class" to "order-action-btn secondary", "onClick" to withModifiers(fun(){ - _ctx.viewOrderDetail(order) - }, _uA( - "stop" - ))), "查看物流", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )), - _cE("view", _uM("class" to "consumption-stats"), _uA( - _cE("view", _uM("class" to "section-title"), "消费统计"), - _cE("view", _uM("class" to "stats-period"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.statsPeriods, fun(period, __key, __index, _cached): Any { - return _cE("text", _uM("key" to period.key, "class" to _nC(_uA( - "period-tab", - _uM("active" to (_ctx.activeStatsPeriod === period.key)) - )), "onClick" to fun(){ - _ctx.switchStatsPeriod(period.key) - } - ), _tD(period.label), 11, _uA( - "onClick" - )) - } - ), 128) - )), - _cE("view", _uM("class" to "stats-content"), _uA( - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(_ctx.currentStats.total_amount), 1), - _cE("text", _uM("class" to "stat-label"), "总消费") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(_ctx.currentStats.order_count), 1), - _cE("text", _uM("class" to "stat-label"), "订单数") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(_ctx.currentStats.avg_amount), 1), - _cE("text", _uM("class" to "stat-label"), "平均消费") - )), - _cE("view", _uM("class" to "stat-card"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(_ctx.currentStats.save_amount), 1), - _cE("text", _uM("class" to "stat-label"), "节省金额") - )) - )) - )) - )) - )) - } - open var userInfo: UserType by `$data` - open var userStats: UserStatsType__1 by `$data` - open var orderCounts: OrderCountsType by `$data` - open var serviceCounts: ServiceCountsType by `$data` - open var recentOrders: UTSArray by `$data` - open var statsPeriods: UTSArray by `$data` - open var activeStatsPeriod: String by `$data` - open var currentStats: ConsumptionStatsType by `$data` - open var statusBarHeight: Number by `$data` - open var navBarRight: Number by `$data` - open var currentOrderTab: String by `$data` - open var allOrders: UTSArray by `$data` - open var filteredOrders: UTSArray by `$data` - @Suppress("USELESS_CAST") - override fun data(): Map { - return _uM("userInfo" to UserType(id = "", phone = "", email = "", nickname = "", avatar_url = "", gender = 0, user_type = 0, status = 0, created_at = ""), "userStats" to UserStatsType__1(points = 0, balance = 0, level = 1), "orderCounts" to OrderCountsType(total = 0, pending = 0, toship = 0, shipped = 0, review = 0), "serviceCounts" to ServiceCountsType(coupons = 0, favorites = 0, unreadMessages = 0), "recentOrders" to _uA(), "statsPeriods" to _uA(StatsPeriodType(key = "month", label = "本月"), StatsPeriodType(key = "quarter", label = "本季度"), StatsPeriodType(key = "year", label = "本年"), StatsPeriodType(key = "all", label = "全部")), "activeStatsPeriod" to "month", "currentStats" to ConsumptionStatsType(total_amount = 0, order_count = 0, avg_amount = 0, save_amount = 0), "statusBarHeight" to 0, "navBarRight" to 0, "currentOrderTab" to "all" as String, "allOrders" to _uA(), "filteredOrders" to computed>(fun(): UTSArray { - val result: UTSArray = _uA() - if (this.currentOrderTab === "all") { - run { - var i: Number = 0 - while(i < this.allOrders.length){ - result.push(this.allOrders[i]) - i++ - } - } - return result - } - var targetStatus: Number = 0 - if (this.currentOrderTab === "pending") { - targetStatus = 1 - } else if (this.currentOrderTab === "toship") { - targetStatus = 2 - } else if (this.currentOrderTab === "shipped") { - targetStatus = 3 - } else if (this.currentOrderTab === "review") { - targetStatus = 4 - } else { - return result - } - run { - var i: Number = 0 - while(i < this.allOrders.length){ - if (this.allOrders[i].status === targetStatus) { - result.push(this.allOrders[i]) - } - i++ - } - } - return result - } - )) - } - open var loadOrders = ::gen_loadOrders_fn - open fun gen_loadOrders_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val orders = await(supabaseService.getOrders()) - val mappedOrders: UTSArray = _uA() - run { - var i: Number = 0 - while(i < orders.length){ - val rawItem = orders[i] - val o = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(rawItem)), " at pages/main/profile.uvue:440") as UTSJSONObject - var status = o.getNumber("status") - if (status == null) { - val orderStatus = o.getNumber("order_status") - status = if (orderStatus != null) { - orderStatus - } else { - 0 - } - } - var actualAmount = o.getNumber("actual_amount") - if (actualAmount == null) { - val totalAmount = o.getNumber("total_amount") - actualAmount = if (totalAmount != null) { - totalAmount - } else { - 0 - } - } - val mlOrderItems = o.get("ml_order_items") - var itemsCount: Number = 0 - if (mlOrderItems != null && UTSArray.isArray(mlOrderItems)) { - itemsCount = (mlOrderItems as UTSArray).length - } - val orderItem = OrderItemType(id = o.getString("id") ?: "", order_no = o.getString("order_no") ?: "", status = status, actual_amount = actualAmount, created_at = o.getString("created_at") ?: "", ml_order_items = mlOrderItems, ml_shops = o.get("ml_shops"), items_count = itemsCount) - mappedOrders.push(orderItem) - i++ - } - } - run { - var i: Number = 0 - while(i < mappedOrders.length){ - run { - var j: Number = i + 1 - while(j < mappedOrders.length){ - val dateA = mappedOrders[i]["created_at"] as String - val dateB = mappedOrders[j]["created_at"] as String - val timeA = Date(if (dateA != null) { - dateA - } else { - "1970-01-01" - } - ).getTime() - val timeB = Date(if (dateB != null) { - dateB - } else { - "1970-01-01" - } - ).getTime() - if (timeA < timeB) { - val temp = mappedOrders[i] - mappedOrders[i] = mappedOrders[j] - mappedOrders[j] = temp - } - j++ - } - } - i++ - } - } - this.allOrders = mappedOrders - val recentList: UTSArray = _uA() - val limit = if (mappedOrders.length < 5) { - mappedOrders.length - } else { - 5 - } - run { - var i: Number = 0 - while(i < limit){ - recentList.push(mappedOrders[i]) - i++ - } - } - this.recentOrders = recentList - var total: Number = 0 - var pending: Number = 0 - var toship: Number = 0 - var shipped: Number = 0 - var review: Number = 0 - run { - var i: Number = 0 - while(i < mappedOrders.length){ - total++ - val status = mappedOrders[i].status - if (status === 1) { - pending++ - } else if (status === 2) { - toship++ - } else if (status === 3) { - shipped++ - } else if (status === 4) { - review++ - } - i++ - } - } - this.orderCounts = OrderCountsType(total = total, pending = pending, toship = toship, shipped = shipped, review = review) - } - catch (e: Throwable) { - console.error("加载订单异常", e, " at pages/main/profile.uvue:521") - } - }) - } - open var switchOrderTab = ::gen_switchOrderTab_fn - open fun gen_switchOrderTab_fn(tab: String) { - this.currentOrderTab = tab - } - open var getOrderSectionTitle = ::gen_getOrderSectionTitle_fn - open fun gen_getOrderSectionTitle_fn(): String { - if (this.currentOrderTab === "all") { - return "全部订单" - } - if (this.currentOrderTab === "pending") { - return "待支付订单" - } - if (this.currentOrderTab === "shipped") { - return "待收货订单" - } - if (this.currentOrderTab === "review") { - return "待评价订单" - } - return "我的订单" - } - open var initPage = ::gen_initPage_fn - open fun gen_initPage_fn() { - val systemInfo = uni_getSystemInfoSync() - this.statusBarHeight = systemInfo.statusBarHeight ?: 0 - this.navBarRight = 0 - } - open var loadUserProfile = ::gen_loadUserProfile_fn - open fun gen_loadUserProfile_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val profile = await(supabaseService.getUserProfile()) - if (profile != null) { - var uId = "" - var uPhone = "" - var uEmail = "" - var uNickname = "" - var uAvatar = "" - var uGender: Number = 0 - if (profile is UTSJSONObject) { - uId = (profile as UTSJSONObject).getString("user_id") ?: "" - uPhone = (profile as UTSJSONObject).getString("phone") ?: "" - uEmail = (profile as UTSJSONObject).getString("email") ?: "" - uNickname = (profile as UTSJSONObject).getString("nickname") ?: "" - uAvatar = (profile as UTSJSONObject).getString("avatar_url") ?: "" - uGender = (profile as UTSJSONObject).getNumber("gender") ?: 0 - } else { - val profileObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(profile)), " at pages/main/profile.uvue:582") as UTSJSONObject - uId = profileObj.getString("user_id") ?: "" - uPhone = profileObj.getString("phone") ?: "" - uEmail = profileObj.getString("email") ?: "" - uNickname = profileObj.getString("nickname") ?: "" - uAvatar = profileObj.getString("avatar_url") ?: "" - uGender = profileObj.getNumber("gender") ?: 0 - } - if (uNickname === "" && uPhone !== "") { - uNickname = uPhone.substring(0, 3) + "****" + uPhone.substring(7) - } - this.userInfo = UserType(id = uId, phone = uPhone, email = uEmail, nickname = if (uNickname != "") { - uNickname - } else { - "微信用户" - }, avatar_url = if (uAvatar != "") { - uAvatar - } else { - "/static/images/default-product.png" - }, gender = uGender, user_type = 1, status = 1, created_at = Date().toISOString()) - } else { - val userId = supabaseService.getCurrentUserId() - if (userId != null) { - this.userInfo.id = userId - this.userInfo.nickname = "用户" + userId.substring(0, 4) - } else { - this.userInfo.nickname = "未登录" - } - } - val balanceResult = await(supabaseService.getUserBalance()) - val points = await(supabaseService.getUserPoints()) - val balanceValue = balanceResult.getNumber("balance") ?: 0 - this.userStats = UserStatsType__1(points = points, balance = balanceValue, level = this.calculateLevel(points)) - } - catch (e: Throwable) { - console.error("加载用户信息失败", e, " at pages/main/profile.uvue:630") - } - }) - } - open var calculateLevel = ::gen_calculateLevel_fn - open fun gen_calculateLevel_fn(points: Number): Number { - if (points < 1000) { - return 0 - } - if (points < 5000) { - return 1 - } - if (points < 20000) { - return 2 - } - if (points < 50000) { - return 3 - } - return 4 - } - open var loadConsumptionStats = ::gen_loadConsumptionStats_fn - open fun gen_loadConsumptionStats_fn() { - if (this.activeStatsPeriod === "month") { - this.currentStats = ConsumptionStatsType(total_amount = 1280.50, order_count = 8, avg_amount = 160.06, save_amount = 85.20) - } else if (this.activeStatsPeriod === "quarter") { - this.currentStats = ConsumptionStatsType(total_amount = 3680.80, order_count = 18, avg_amount = 204.49, save_amount = 256.30) - } else if (this.activeStatsPeriod === "year") { - this.currentStats = ConsumptionStatsType(total_amount = 15680.90, order_count = 56, avg_amount = 280.02, save_amount = 986.50) - } else { - this.currentStats = ConsumptionStatsType(total_amount = 25680.50, order_count = 89, avg_amount = 288.55, save_amount = 1580.20) - } - } - open var refreshData = ::gen_refreshData_fn - open fun gen_refreshData_fn() { - this.loadUserProfile() - this.loadOrders() - this.updateCouponCount() - } - open var updateCouponCount = ::gen_updateCouponCount_fn - open fun gen_updateCouponCount_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val count = await(supabaseService.getUserCouponCount()) - this.serviceCounts.coupons = count - } - catch (e: Throwable) { - console.error("获取优惠券数量失败", e, " at pages/main/profile.uvue:688") - this.serviceCounts.coupons = 0 - } - }) - } - open var getUserLevel = ::gen_getUserLevel_fn - open fun gen_getUserLevel_fn(): String { - val levels = _uA( - "新手", - "铜牌会员", - "银牌会员", - "金牌会员", - "钻石会员" - ) - if (this.userStats.level >= 0 && this.userStats.level < levels.length) { - return levels[this.userStats.level] - } - return "新手" - } - open var getOrderStatusText = ::gen_getOrderStatusText_fn - open fun gen_getOrderStatusText_fn(status: Number): String { - if (status === 6) { - return "退款中" - } - if (status === 7) { - return "已退款" - } - val statusTexts = _uA( - "异常", - "待支付", - "待发货", - "待收货", - "已完成", - "已取消" - ) - if (status >= 0 && status < statusTexts.length) { - return statusTexts[status] - } - return "未知" - } - open var getOrderStatusClass = ::gen_getOrderStatusClass_fn - open fun gen_getOrderStatusClass_fn(status: Number): String { - if (status === 6) { - return "refunding" - } - if (status === 7) { - return "refunded" - } - val statusClasses = _uA( - "error", - "pending", - "processing", - "shipping", - "completed", - "cancelled" - ) - if (status >= 0 && status < statusClasses.length) { - return statusClasses[status] - } - return "error" - } - open var showOrderMenu = ::gen_showOrderMenu_fn - open fun gen_showOrderMenu_fn(order: OrderItemType) { - val status = order.status - var actions: UTSArray = _uA() - if (status === 1) { - actions = _uA( - "取消订单", - "联系卖家" - ) - } else if (status === 2) { - actions = _uA( - "提醒发货", - "申请退款", - "联系卖家" - ) - } else if (status === 3) { - actions = _uA( - "查看物流", - "确认收货", - "申请退款", - "联系卖家" - ) - } else if (status === 4) { - actions = _uA( - "申请售后", - "再次购买", - "联系卖家" - ) - } else if (status === 5) { - actions = _uA( - "删除订单", - "再次购买", - "联系卖家" - ) - } else if (status === 6) { - actions = _uA( - "退款进度", - "联系卖家" - ) - } else if (status === 7) { - actions = _uA( - "再次购买", - "联系卖家" - ) - } - uni_showActionSheet(ShowActionSheetOptions(itemList = actions, success = fun(res){ - val action = actions[res.tapIndex] - this.handleOrderAction(order, action) - } - )) - } - open var handleOrderAction = ::gen_handleOrderAction_fn - open fun gen_handleOrderAction_fn(order: OrderItemType, action: String) { - if (action === "取消订单") { - this.cancelOrderAction(order) - } else if (action === "联系卖家") { - this.contactSeller(order) - } else if (action === "提醒发货") { - this.remindShipping(order) - } else if (action === "申请退款" || action === "申请售后") { - this.applyRefund(order) - } else if (action === "查看物流") { - this.viewLogistics(order.id) - } else if (action === "确认收货") { - this.confirmReceive(order) - } else if (action === "再次购买") { - this.repurchase(order) - } else if (action === "删除订单") { - this.deleteOrder(order.id) - } else if (action === "退款进度") { - this.viewRefundProgress(order.id) - } - } - open var cancelOrderAction = ::gen_cancelOrderAction_fn - open fun gen_cancelOrderAction_fn(order: OrderItemType) { - uni_showModal(ShowModalOptions(title = "确认取消", content = "确定要取消此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "取消中...")) - supabaseService.cancelOrder(order.id).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单已取消", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - ) - } - } - )) - } - open var contactSeller = ::gen_contactSeller_fn - open fun gen_contactSeller_fn(order: OrderItemType) { - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (merchantId !== "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchantId)) - } else { - uni_showToast(ShowToastOptions(title = "暂无卖家联系方式", icon = "none")) - } - } - open var getMerchantIdFromOrder = ::gen_getMerchantIdFromOrder_fn - open fun gen_getMerchantIdFromOrder_fn(order: OrderItemType): String { - val shopsRaw = order.ml_shops - if (shopsRaw != null) { - val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:807") - if (shopParsed != null) { - val shopObj = shopParsed as UTSJSONObject - return shopObj.getString("merchant_id") ?: "" - } - } - return "" - } - open var remindShipping = ::gen_remindShipping_fn - open fun gen_remindShipping_fn(order: OrderItemType) { - uni_showLoading(ShowLoadingOptions(title = "提醒中...")) - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (merchantId !== "") { - val message = "你好,我的订单[" + order.order_no + "]还没有发货,请尽快安排,谢谢。" - supabaseService.sendChatMessage(message, merchantId).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "已提醒卖家发货", icon = "success")) - }).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "提醒失败", icon = "none")) - }) - } else { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "无法联系卖家", icon = "none")) - } - } - open var applyRefund = ::gen_applyRefund_fn - open fun gen_applyRefund_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/apply-refund?orderId=" + order.id)) - } - open var viewLogistics = ::gen_viewLogistics_fn - open fun gen_viewLogistics_fn(orderId: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/logistics?orderId=" + orderId)) - } - open var repurchase = ::gen_repurchase_fn - open fun gen_repurchase_fn(order: OrderItemType) { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - val itemsRaw = order.ml_order_items - if (itemsRaw == null || (itemsRaw as UTSArray).length === 0) { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单无商品", icon = "none")) - return - } - val items = itemsRaw as UTSArray - var completed: Number = 0 - val total = items.length - var successCount: Number = 0 - run { - var i: Number = 0 - while(i < items.length){ - val itemStr = JSON.stringify(items[i]) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:862") - if (itemParsed == null) { - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - i++ - continue - } - val itemObj = itemParsed as UTSJSONObject - val productId = itemObj.getString("product_id") ?: "" - val merchantId = if (order.ml_shops != null) { - this.getMerchantIdFromOrder(order) - } else { - "" - } - if (productId !== "") { - supabaseService.addToCart(productId, 1, "", merchantId).then(fun(success){ - completed++ - if (success) { - successCount++ - } - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }).`catch`(fun(){ - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }) - } else { - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - i++ - } - } - } - open var deleteOrder = ::gen_deleteOrder_fn - open fun gen_deleteOrder_fn(orderId: String) { - uni_showModal(ShowModalOptions(title = "删除订单", content = "确定要删除此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - supabaseService.deleteOrder(orderId).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单已删除", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - ) - } - } - )) - } - open var viewRefundProgress = ::gen_viewRefundProgress_fn - open fun gen_viewRefundProgress_fn(orderId: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/refund?orderId=" + orderId)) - } - open var getOrderMainImage = ::gen_getOrderMainImage_fn - open fun gen_getOrderMainImage_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "/static/images/default-product.png" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:964") - if (itemParsed == null) { - return "/static/images/default-product.png" - } - val itemObj = itemParsed as UTSJSONObject - val imgUrl = itemObj.getString("image_url") - val prodImg = itemObj.getString("product_image") - val img = if ((imgUrl != null && imgUrl !== "")) { - imgUrl - } else { - prodImg - } - if (img != null && img !== "") { - return img - } - } - return "/static/images/default-product.png" - } - open var getOrderTitle = ::gen_getOrderTitle_fn - open fun gen_getOrderTitle_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "精选商品" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:982") - if (itemParsed == null) { - return "精选商品" - } - val itemObj = itemParsed as UTSJSONObject - val pName = itemObj.getString("product_name") - val name = if ((pName != null && pName !== "")) { - pName - } else { - "商品" - } - return name - } - return "精选商品" - } - open var getOrderSpec = ::gen_getOrderSpec_fn - open fun gen_getOrderSpec_fn(order: OrderItemType): String { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return "" - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:1000") - if (itemParsed == null) { - return "" - } - val itemObj = itemParsed as UTSJSONObject - val specRaw = itemObj.get("specifications") - if (specRaw == null) { - return "" - } - if (UTSAndroid.`typeof`(specRaw) === "string") { - val specStr = specRaw as String - if (specStr.startsWith("{")) { - try { - val specObj = UTSAndroid.consoleDebugError(JSON.parse(specStr), " at pages/main/profile.uvue:1010") as UTSJSONObject - val parts: UTSArray = _uA() - val color = specObj.get("Color") - if (color != null) { - parts.push("颜色: " + color) - } - val size = specObj.get("Size") - if (size != null) { - parts.push("尺码: " + size) - } - if (parts.length > 0) { - return parts.join(" ") - } - return specStr.replace(UTSRegExp("[{}\"]", "g"), "") - } - catch (e: Throwable) { - return specStr - } - } - return specStr - } - return JSON.stringify(specRaw).replace(UTSRegExp("[{}\"]", "g"), "") - } - return "" - } - open var getOrderItemCount = ::gen_getOrderItemCount_fn - open fun gen_getOrderItemCount_fn(order: OrderItemType): Number { - if (order.items_count != null && order.items_count > 0) { - return order.items_count - } - return 1 - } - open var getOrderShopName = ::gen_getOrderShopName_fn - open fun gen_getOrderShopName_fn(order: OrderItemType): String { - val shopsRaw = order.ml_shops - if (shopsRaw != null) { - val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/main/profile.uvue:1041") - if (shopParsed != null) { - val shopObj = shopParsed as UTSJSONObject - val name = shopObj.getString("shop_name") - if (name != null && name !== "") { - return name - } - } - } - return "自营店铺" - } - open var formatDateTime = ::gen_formatDateTime_fn - open fun gen_formatDateTime_fn(timeStr: String): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val h = date.getHours().toString(10).padStart(2, "0") - val i = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + h + ":" + i - } - open var formatTime = ::gen_formatTime_fn - open fun gen_formatTime_fn(timeStr: String): String { - val date = Date(timeStr) - val now = Date() - val diff = now.getTime() - date.getTime() - val days = Math.floor(diff / 86400000) - if (days === 0) { - return "今天" - } else if (days === 1) { - return "昨天" - } else { - return "" + days + "天前" - } - } - open var switchStatsPeriod = ::gen_switchStatsPeriod_fn - open fun gen_switchStatsPeriod_fn(period: String) { - this.activeStatsPeriod = period - this.loadConsumptionStats() - } - open var editProfile = ::gen_editProfile_fn - open fun gen_editProfile_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/edit-profile")) - } - open var goToSettings = ::gen_goToSettings_fn - open fun gen_goToSettings_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/settings")) - } - open var goToWallet = ::gen_goToWallet_fn - open fun gen_goToWallet_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/wallet")) - } - open var goToOrders = ::gen_goToOrders_fn - open fun gen_goToOrders_fn(type: String) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=" + type)) - } - open var goShopping = ::gen_goShopping_fn - open fun gen_goShopping_fn() { - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - open var viewOrderDetail = ::gen_viewOrderDetail_fn - open fun gen_viewOrderDetail_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?orderId=" + order.id)) - } - open var goToProductFromOrder = ::gen_goToProductFromOrder_fn - open fun gen_goToProductFromOrder_fn(order: OrderItemType) { - val itemsRaw = order.ml_order_items - if (itemsRaw == null) { - return - } - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/main/profile.uvue:1127") - if (itemParsed == null) { - return - } - val itemObj = itemParsed as UTSJSONObject - val productId = itemObj.getString("product_id") - if (productId != null && productId !== "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - } - } - } - open var payOrder = ::gen_payOrder_fn - open fun gen_payOrder_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/payment?orderId=" + order.id)) - } - open var confirmReceive = ::gen_confirmReceive_fn - open fun gen_confirmReceive_fn(order: OrderItemType) { - uni_showModal(ShowModalOptions(title = "确认收货", content = "确认已收到商品吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - supabaseService.confirmOrderReceived(order.id).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "确认收货成功", icon = "success")) - this.loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - ) - } - } - )) - } - open var reviewOrder = ::gen_reviewOrder_fn - open fun gen_reviewOrder_fn(order: OrderItemType) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/review?orderId=" + order.id)) - } - open var goToCoupons = ::gen_goToCoupons_fn - open fun gen_goToCoupons_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons")) - } - open var goToMessages = ::gen_goToMessages_fn - open fun gen_goToMessages_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/main/messages")) - } - open var goToAddress = ::gen_goToAddress_fn - open fun gen_goToAddress_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/address-list")) - } - open var goToFavorites = ::gen_goToFavorites_fn - open fun gen_goToFavorites_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/favorites")) - } - open var goToFootprint = ::gen_goToFootprint_fn - open fun gen_goToFootprint_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/footprint")) - } - open var goToRefund = ::gen_goToRefund_fn - open fun gen_goToRefund_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=refund")) - } - open var contactService = ::gen_contactService_fn - open fun gen_contactService_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/service/chat")) - } - open var goToOrderReviews = ::gen_goToOrderReviews_fn - open fun gen_goToOrderReviews_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?type=review")) - } - open var goToMySubscriptions = ::gen_goToMySubscriptions_fn - open fun gen_goToMySubscriptions_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/my-subscriptions")) - } - open var goToFollowedShops = ::gen_goToFollowedShops_fn - open fun gen_goToFollowedShops_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/followed-shops")) - } - open var goToPoints = ::gen_goToPoints_fn - open fun gen_goToPoints_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/index")) - } - open var goToBalance = ::gen_goToBalance_fn - open fun gen_goToBalance_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/balance/index")) - } - open var goToShare = ::gen_goToShare_fn - open fun gen_goToShare_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/share/index")) - } - open var goToMember = ::gen_goToMember_fn - open fun gen_goToMember_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/member/index")) - } - open var changePassword = ::gen_changePassword_fn - open fun gen_changePassword_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/change-password")) - } - open var bindPhone = ::gen_bindPhone_fn - open fun gen_bindPhone_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bind-phone")) - } - open var bindEmail = ::gen_bindEmail_fn - open fun gen_bindEmail_fn() { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bind-email")) - } - open var handleOrderUpdated = ::gen_handleOrderUpdated_fn - open fun gen_handleOrderUpdated_fn(data: Any) { - console.log("收到订单更新事件:", data, " at pages/main/profile.uvue:1283") - this.refreshData() - val dataObj = data as UTSJSONObject - val status = dataObj.getNumber("status") - if (status === 1) { - uni_showToast(ShowToastOptions(title = "订单已保存到待支付", icon = "success")) - } else if (status === 2) { - uni_showToast(ShowToastOptions(title = "支付成功,订单待发货", icon = "success")) - } - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("consumer-profile" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "height" to "100%", "width" to "100%")), "profile-scroll-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "smart-navbar" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ff5000", "zIndex" to 1000, "boxShadow" to "0 2px 12px rgba(255, 80, 0, 0.15)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start")), "nav-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "width" to "100%", "maxWidth" to 1400, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "height" to 44)), "nav-user-basic" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0, "marginRight" to 8)), "nav-user-stats" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-end", "marginRight" to 8)), "nav-user-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#FFFFFF", "width" to 70, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "nav-stat-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.15)", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "marginRight" to 4, "flexShrink" to 0)), "nav-stat-label" to _pS(_uM("fontSize" to 10, "color" to "rgba(255,255,255,0.85)", "marginRight" to 2)), "nav-stat-value" to _pS(_uM("fontSize" to 11, "fontWeight" to "bold", "color" to "#FFFFFF")), "nav-avatar" to _pS(_uM("width" to 32, "height" to 32, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "borderTopWidth" to 1.5, "borderRightWidth" to 1.5, "borderBottomWidth" to 1.5, "borderLeftWidth" to 1.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.8)", "borderRightColor" to "rgba(255,255,255,0.8)", "borderBottomColor" to "rgba(255,255,255,0.8)", "borderLeftColor" to "rgba(255,255,255,0.8)", "marginRight" to 6, "flexShrink" to 0)), "nav-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "action-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to 32, "height" to 32, "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "action-icon" to _pS(_uM("fontSize" to 18, "color" to "#FFFFFF")), "navbar-placeholder" to _pS(_uM("width" to "100%", "flexShrink" to 0)), "order-shortcuts" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "recent-orders" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "my-services" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "consumption-stats" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "account-security" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 15, "marginRight" to 15, "marginBottom" to 15, "marginLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "section-title" to _uM("" to _uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 16), ".section-header-row " to _uM("marginBottom" to 0)), "section-header-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "marginBottom" to 16)), "view-all" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "order-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "width" to "100%")), "order-tab" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "position" to "relative", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0), ".active" to _uM("backgroundColor" to "#fff8f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "tab-icon" to _uM("" to _uM("fontSize" to 20, "marginRight" to 6, "marginBottom" to 0), ".order-tab.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "tab-text" to _uM("" to _uM("fontSize" to 14, "color" to "#333333"), ".order-tab.active " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "tab-badge" to _pS(_uM("position" to "absolute", "top" to 0, "right" to "10%", "backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 5, "paddingBottom" to 1, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 14, "textAlign" to "center", "lineHeight" to 1.2)), "empty-orders" to _pS(_uM("textAlign" to "center", "paddingTop" to "80rpx", "paddingRight" to 0, "paddingBottom" to "80rpx", "paddingLeft" to 0)), "empty-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "marginBottom" to "30rpx")), "start-shopping" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to "20rpx", "paddingRight" to "40rpx", "paddingBottom" to "20rpx", "paddingLeft" to "40rpx", "borderTopLeftRadius" to "25rpx", "borderTopRightRadius" to "25rpx", "borderBottomRightRadius" to "25rpx", "borderBottomLeftRadius" to "25rpx", "fontSize" to "26rpx", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "order-item" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to "16rpx", "borderTopRightRadius" to "16rpx", "borderBottomRightRadius" to "16rpx", "borderBottomLeftRadius" to "16rpx", "paddingTop" to "24rpx", "paddingRight" to "24rpx", "paddingBottom" to "24rpx", "paddingLeft" to "24rpx", "marginBottom" to "20rpx", "boxShadow" to "0 2rpx 12rpx rgba(0, 0, 0, 0.05)")), "order-item-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to "20rpx")), "status-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "more-btn" to _pS(_uM("fontSize" to 18, "color" to "#999999", "marginLeft" to 8, "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5)), "order-shop" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "shop-icon" to _pS(_uM("fontSize" to "32rpx", "marginRight" to "8rpx")), "shop-name" to _pS(_uM("fontSize" to "28rpx", "fontWeight" to "bold", "color" to "#333333")), "shop-arrow" to _pS(_uM("fontSize" to "28rpx", "color" to "#cccccc", "marginLeft" to "4rpx")), "order-status-text" to _uM("" to _uM("fontSize" to "26rpx", "fontWeight" to "bold"), ".pending" to _uM("color" to "#ff5000"), ".processing" to _uM("color" to "#ff9500"), ".shipping" to _uM("color" to "#007aff"), ".completed" to _uM("color" to "#34c759"), ".refunding" to _uM("color" to "#ff9500"), ".refunded" to _uM("color" to "#999999"), ".cancelled" to _uM("color" to "#999999")), "order-item-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to "24rpx")), "order-item-image" to _pS(_uM("width" to "140rpx", "height" to "140rpx", "borderTopLeftRadius" to "12rpx", "borderTopRightRadius" to "12rpx", "borderBottomRightRadius" to "12rpx", "borderBottomLeftRadius" to "12rpx", "marginRight" to "20rpx", "backgroundColor" to "#f8f8f8")), "order-item-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-start")), "order-title-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginBottom" to "12rpx")), "order-item-title" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "color" to "#333333", "lineHeight" to 1.4, "marginRight" to "20rpx", "lines" to 2, "textOverflow" to "ellipsis")), "order-item-price" to _pS(_uM("fontSize" to "32rpx", "color" to "#333333", "fontWeight" to "bold", "textAlign" to "right")), "order-spec-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to "4rpx", "marginBottom" to "8rpx")), "order-item-spec" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "24rpx", "color" to "#999999", "marginRight" to "12rpx", "lines" to 1, "textOverflow" to "ellipsis")), "order-item-time" to _pS(_uM("fontSize" to "22rpx", "color" to "#999999", "marginTop" to "auto")), "order-item-num" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999")), "order-item-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end")), "order-action-btn" to _uM("" to _uM("marginLeft" to "16rpx", "paddingTop" to "10rpx", "paddingRight" to "28rpx", "paddingBottom" to "10rpx", "paddingLeft" to "28rpx", "borderTopLeftRadius" to "30rpx", "borderTopRightRadius" to "30rpx", "borderBottomRightRadius" to "30rpx", "borderBottomLeftRadius" to "30rpx", "fontSize" to "24rpx", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#ffffff"), ".pay" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".confirm" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".review" to _uM("color" to "#ff5000", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".secondary" to _uM("color" to "#666666", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd")), "service-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "service-item" to _pS(_uM("width" to "25%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "position" to "relative", "boxSizing" to "border-box", "marginBottom" to 16)), "service-icon" to _pS(_uM("fontSize" to "48rpx", "marginBottom" to "15rpx")), "service-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#333333")), "service-badge" to _pS(_uM("position" to "absolute", "top" to "-5rpx", "right" to "10rpx", "backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to "18rpx", "paddingTop" to "4rpx", "paddingRight" to "6rpx", "paddingBottom" to "4rpx", "paddingLeft" to "6rpx", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx", "minWidth" to "24rpx", "textAlign" to "center")), "stats-period" to _pS(_uM("display" to "flex", "marginBottom" to "30rpx")), "period-tab" to _uM("" to _uM("fontSize" to "26rpx", "color" to "#666666", "paddingTop" to "12rpx", "paddingRight" to "24rpx", "paddingBottom" to "12rpx", "paddingLeft" to "24rpx", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx", "marginRight" to "30rpx", "backgroundColor" to "#f0f0f0"), ".active" to _uM("backgroundColor" to "#007aff", "color" to "#ffffff")), "stats-content" to _pS(_uM("display" to "flex")), "stat-card" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center", "paddingTop" to "30rpx", "paddingRight" to 0, "paddingBottom" to "30rpx", "paddingLeft" to 0, "backgroundColor" to "#f8f9fa", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "marginRight" to "20rpx", "marginRight:last-child" to 0)), "stat-value" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "8rpx")), "stat-label" to _pS(_uM("fontSize" to "22rpx", "color" to "#666666")), "security-items" to _pS(_uM("marginTop" to "25rpx")), "security-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to "25rpx", "paddingRight" to 0, "paddingBottom" to "25rpx", "paddingLeft" to 0, "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "security-icon" to _pS(_uM("fontSize" to "32rpx", "marginRight" to "20rpx")), "security-text" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "color" to "#333333")), "security-status" to _pS(_uM("display" to "flex", "alignItems" to "center")), "status-text" to _uM("" to _uM("fontSize" to "24rpx", "color" to "#999999", "marginRight" to "10rpx"), ".bound" to _uM("color" to "#4caf50")), "security-arrow" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/address-edit.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/address-edit.kt deleted file mode 100644 index a9fa85d3..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/address-edit.kt +++ /dev/null @@ -1,387 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerAddressEdit : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerAddressEdit) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerAddressEdit - val _cache = __ins.renderCache - val isEdit = ref(false) - val addressId = ref("") - val regionString = ref("") - val tags = _uA( - "家", - "公司", - "学校" - ) - val smartInput = ref("") - val formData = reactive(AddressForm(name = "", phone = "", detail = "", isDefault = false, label = "")) - val loadAddress = fun(id: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - val address = await(supabaseService.getAddressById(id)) - if (address != null) { - formData.name = address.recipient_name - formData.phone = address.phone - formData.detail = address.detail_address - formData.isDefault = address.is_default - formData.label = address.label ?: "" - regionString.value = ("" + address.province + " " + address.city + " " + address.district).trim() - } else { - val storedAddresses = uni_getStorageSync("addresses") - if (storedAddresses != null) { - val addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddresses as String), " at pages/mall/consumer/address-edit.uvue:127") as UTSArray - val localAddress = addresses.find(fun(item): Boolean { - return item.id === id - } - ) - if (localAddress != null) { - formData.name = localAddress.name - formData.phone = localAddress.phone - formData.detail = localAddress.detail - formData.isDefault = localAddress.isDefault - formData.label = localAddress.label ?: "" - regionString.value = ("" + localAddress.province + " " + localAddress.city + " " + localAddress.district).trim() - } - } - } - } - catch (error: Throwable) { - console.error("加载地址详情失败:", error, " at pages/mall/consumer/address-edit.uvue:140") - val storedAddresses = uni_getStorageSync("addresses") - if (storedAddresses != null) { - try { - val addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddresses as String), " at pages/mall/consumer/address-edit.uvue:145") as UTSArray - val address = addresses.find(fun(item): Boolean { - return item.id === id - } - ) - if (address != null) { - formData.name = address.name - formData.phone = address.phone - formData.detail = address.detail - formData.isDefault = address.isDefault - formData.label = address.label ?: "" - regionString.value = ("" + address.province + " " + address.city + " " + address.district).trim() - } - } - catch (e: Throwable) { - console.error("解析本地地址数据失败", e, " at pages/mall/consumer/address-edit.uvue:156") - } - } - } - }) - } - onLoad__1(fun(options){ - if (options["id"] != null) { - isEdit.value = true - addressId.value = options["id"] as String - loadAddress(addressId.value) - } - } - ) - val selectTag = fun(tag: String){ - if (formData.label === tag) { - formData.label = "" - } else { - formData.label = tag - } - } - val onSwitchChange = fun(e: UniSwitchChangeEvent){ - formData.isDefault = e.detail.value - } - val saveAddress = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (formData.name == "") { - uni_showToast(ShowToastOptions(title = "请填写收货人", icon = "none")) - return@w1 - } - if (formData.phone == "") { - uni_showToast(ShowToastOptions(title = "请填写手机号码", icon = "none")) - return@w1 - } - if (regionString.value == "") { - uni_showToast(ShowToastOptions(title = "请填写所在地区", icon = "none")) - return@w1 - } - if (formData.detail == "") { - uni_showToast(ShowToastOptions(title = "请填写详细地址", icon = "none")) - return@w1 - } - val regions = regionString.value.split(" ") - val province = regions[0] ?: "" - val city = regions[1] ?: "" - val district = regions.slice(2).join(" ") - val addressData = AddAddressParams(recipient_name = formData.name, phone = formData.phone, province = province, city = city, district = district, detail_address = formData.detail, postal_code = "", is_default = formData.isDefault, label = formData.label) - var success = false - if (isEdit.value) { - val updateData = UpdateAddressParams(recipient_name = formData.name, phone = formData.phone, province = province, city = city, district = district, detail_address = formData.detail, postal_code = "", is_default = formData.isDefault, label = formData.label) - success = await(supabaseService.updateAddress(addressId.value, updateData)) - } else { - success = await(supabaseService.addAddress(addressData)) - } - if (success) { - val storedAddresses = uni_getStorageSync("addresses") - var addresses: UTSArray = _uA() - if (storedAddresses != null) { - try { - addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddresses as String), " at pages/mall/consumer/address-edit.uvue:246") as UTSArray - } - catch (e: Throwable) { - addresses = _uA() - } - } - if (formData.isDefault) { - addresses.forEach(fun(item){ - item.isDefault = false - } - ) - } - if (isEdit.value) { - val index = addresses.findIndex(fun(item): Boolean { - return item.id === addressId.value - }) - if (index !== -1) { - addresses[index] = UTSJSONObject.assign(UTSJSONObject(), addresses[index], _uO("name" to formData.name, "phone" to formData.phone, "province" to province, "city" to city, "district" to district, "detail" to formData.detail, "isDefault" to formData.isDefault, "label" to formData.label)) as Address__1 - } - } else { - val newAddress = Address__1(id = "addr_" + Date.now(), name = formData.name, phone = formData.phone, province = province, city = city, district = district, detail = formData.detail, isDefault = formData.isDefault, label = formData.label) - addresses.push(newAddress) - } - uni_setStorageSync("addresses", JSON.stringify(addresses)) - uni_showToast(ShowToastOptions(title = "保存成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - }, 1500) - } else { - console.error("保存地址失败", " at pages/mall/consumer/address-edit.uvue:300") - uni_showToast(ShowToastOptions(title = "保存失败", icon = "none")) - } - }) - } - val parseSmartInput = fun(){ - val input = smartInput.value.trim() - if (input == "") { - return - } - val phoneRegex = UTSRegExp("(1[3-9]\\d{9})", "") - val phoneMatch = input.match(phoneRegex) - if (phoneMatch != null) { - formData.phone = phoneMatch[0] ?: "" - } - val nameRegex = UTSRegExp("([\\u4e00-\\u9fa5]{2,4})", "") - val nameMatch = input.match(nameRegex) - if (nameMatch != null) { - formData.name = nameMatch[0] ?: "" - } - var addrText = input - if (formData.name != "") { - addrText = addrText.replace(formData.name, "") - } - if (formData.phone != "") { - addrText = addrText.replace(formData.phone, "") - } - addrText = addrText.replace(UTSRegExp("[,,;;\\s]+", "g"), " ").trim() - val pattern1 = UTSRegExp("^(.*?省)?(.*?市)?(.*?[区县])?(.*)\$", "") - val m = addrText.match(pattern1) - if (m != null) { - val province = m[1] ?: "" - val city = m[2] ?: "" - val district = m[3] ?: "" - val detail = m[4] ?: "" - regionString.value = ("" + province.trim() + " " + city.trim() + " " + district.trim()).trim() - formData.detail = detail.trim() - } else { - formData.detail = addrText - } - } - val deleteAddress = fun(){ - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除该地址吗?", success = fun(res: UniShowModalResult){ - if (res.confirm) { - supabaseService.deleteAddress(addressId.value).then(fun(success){ - if (success) { - val storedAddresses = uni_getStorageSync("addresses") - if (storedAddresses != null) { - try { - var addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddresses as String), " at pages/mall/consumer/address-edit.uvue:359") as UTSArray - addresses = addresses.filter(fun(item): Boolean { - return item.id !== addressId.value - } - ) - uni_setStorageSync("addresses", JSON.stringify(addresses)) - } - catch (e: Throwable) { - console.error("解析本地地址数据失败", e, " at pages/mall/consumer/address-edit.uvue:363") - } - } - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - }, 1500) - } else { - console.error("删除地址失败", " at pages/mall/consumer/address-edit.uvue:376") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - return fun(): Any? { - val _component_switch = resolveComponent("switch") - return _cE("view", _uM("class" to "page-container"), _uA( - _cE("scroll-view", _uM("class" to "address-edit-scroll", "scroll-y" to "true"), _uA( - _cE("view", _uM("class" to "address-edit-content"), _uA( - _cE("view", _uM("class" to "form-group"), _uA( - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "收货人"), - _cE("input", _uM("class" to "input", "modelValue" to formData.name, "onInput" to fun(`$event`: UniInputEvent){ - formData.name = `$event`.detail.value - } - , "placeholder" to "请填写收货人姓名", "placeholder-class" to "placeholder"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "手机号码"), - _cE("input", _uM("class" to "input", "modelValue" to formData.phone, "onInput" to fun(`$event`: UniInputEvent){ - formData.phone = `$event`.detail.value - } - , "type" to "number", "maxlength" to "11", "placeholder" to "请填写手机号码", "placeholder-class" to "placeholder"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "所在地区"), - _cE("input", _uM("class" to "input", "modelValue" to regionString.value, "onInput" to fun(`$event`: UniInputEvent){ - regionString.value = `$event`.detail.value - } - , "placeholder" to "省市区县、乡镇等", "placeholder-class" to "placeholder"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "arrow-icon"), "›") - )), - _cE("view", _uM("class" to "form-item detail-item"), _uA( - _cE("text", _uM("class" to "label"), "详细地址"), - _cE("textarea", _uM("class" to "textarea", "modelValue" to formData.detail, "onInput" to fun(`$event`: UniInputEvent){ - formData.detail = `$event`.detail.value - } - , "placeholder" to "街道、楼牌号等", "placeholder-class" to "placeholder", "maxlength" to "100"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "form-group"), _uA( - _cE("view", _uM("class" to "form-item label-section"), _uA( - _cE("text", _uM("class" to "label"), "地址标签"), - _cE("view", _uM("class" to "tags-container"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(tags, fun(tag, __key, __index, _cached): Any { - return _cE("view", _uM("key" to tag, "class" to _nC(_uA( - "tag-item", - _uM("active" to (formData.label === tag)) - )), "onClick" to fun(){ - selectTag(tag) - } - ), _uA( - _cE("text", _uM("class" to _nC(_uA( - "tag-text", - _uM("tag-text-active" to (formData.label === tag)) - ))), _tD(tag), 3) - ), 10, _uA( - "onClick" - )) - } - ), 64) - )) - )), - _cE("view", _uM("class" to "form-item switch-item"), _uA( - _cE("view", _uM("class" to "switch-label-group"), _uA( - _cE("text", _uM("class" to "label"), "设为默认地址"), - _cE("text", _uM("class" to "sub-label"), "下单时优先使用该地址") - )), - _cV(_component_switch, _uM("checked" to formData.isDefault, "color" to "#ff5000", "onChange" to onSwitchChange), null, 8, _uA( - "checked" - )) - )) - )), - _cE("view", _uM("class" to "form-group smart-group"), _uA( - _cE("view", _uM("class" to "smart-header"), _uA( - _cE("text", _uM("class" to "smart-title"), "智能填写"), - if (isTrue(smartInput.value)) { - _cE("text", _uM("key" to 0, "class" to "smart-clear", "onClick" to fun(){ - smartInput.value = "" - }), "清空", 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )), - _cE("textarea", _uM("class" to "smart-textarea", "modelValue" to smartInput.value, "onInput" to _uA(fun(`$event`: UniInputEvent){ - smartInput.value = `$event`.detail.value - } - , parseSmartInput), "placeholder" to "粘贴整段地址,自动识别姓名、电话、地址", "maxlength" to "200"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("view", _uM("class" to "smart-footer"), _uA( - _cE("text", _uM("class" to "smart-tip"), "示例:张三,13800138000,北京市朝阳区...") - )) - )), - _cE("view", _uM("class" to "footer-actions"), _uA( - _cE("button", _uM("class" to "save-btn", "onClick" to saveAddress), "保存地址"), - if (isTrue(isEdit.value)) { - _cE("button", _uM("key" to 0, "class" to "delete-btn", "onClick" to deleteAddress), "删除此地址") - } else { - _cC("v-if", true) - } - )) - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f8f8f8", "display" to "flex", "flexDirection" to "column")), "address-edit-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "address-edit-content" to _pS(_uM("paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 40, "paddingLeft" to 12)), "form-group" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 12, "boxShadow" to "0 2rpx 10rpx rgba(0, 0, 0, 0.02)")), "form-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "minHeight" to 52, "backgroundColor" to "#f8f8f8", "borderTopLeftRadius" to 26, "borderTopRightRadius" to 26, "borderBottomRightRadius" to 26, "borderBottomLeftRadius" to 26, "marginBottom" to 12, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginBottom:last-child" to 0)), "detail-item" to _pS(_uM("alignItems" to "flex-start", "flexDirection" to "column", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "label" to _uM(".detail-item " to _uM("marginBottom" to 8), "" to _uM("width" to 80, "fontSize" to 15, "color" to "#666666", "fontWeight" to "400"), ".label-section " to _uM("marginBottom" to 16)), "input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 44, "lineHeight" to "44px", "fontSize" to 16, "color" to "#333333", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "backgroundColor" to "rgba(0,0,0,0)", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "textarea" to _pS(_uM("width" to "100%", "height" to 80, "fontSize" to 15, "lineHeight" to 1.6, "color" to "#333333", "paddingTop" to 4, "paddingRight" to 0, "paddingBottom" to 4, "paddingLeft" to 0, "backgroundColor" to "rgba(0,0,0,0)", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "placeholder" to _pS(_uM("color" to "#bbbbbb", "fontSize" to 15)), "arrow-icon" to _pS(_uM("fontSize" to 18, "color" to "#cccccc", "marginLeft" to 8)), "label-section" to _pS(_uM("alignItems" to "flex-start", "flexDirection" to "column")), "tags-container" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap")), "tag-item" to _uM("" to _uM("paddingTop" to 8, "paddingRight" to 20, "paddingBottom" to 8, "paddingLeft" to 20, "backgroundColor" to "#f7f7f7", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 12, "marginBottom" to 8, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0)", "borderRightColor" to "rgba(0,0,0,0)", "borderBottomColor" to "rgba(0,0,0,0)", "borderLeftColor" to "rgba(0,0,0,0)"), ".active" to _uM("backgroundColor" to "#fff1eb", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "tag-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "tag-text-active" to _pS(_uM("color" to "#ff5000", "fontWeight" to "bold")), "switch-item" to _pS(_uM("justifyContent" to "space-between", "minHeight" to 72)), "switch-label-group" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "sub-label" to _pS(_uM("fontSize" to 13, "color" to "#999999", "marginTop" to 6)), "smart-group" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "smart-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12)), "smart-title" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold")), "smart-clear" to _pS(_uM("fontSize" to 12, "color" to "#007aff")), "smart-textarea" to _pS(_uM("width" to "100%", "height" to 80, "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "fontSize" to 13, "lineHeight" to 1.6, "color" to "#666666")), "smart-footer" to _pS(_uM("marginTop" to 8)), "smart-tip" to _pS(_uM("fontSize" to 11, "color" to "#999999")), "footer-actions" to _pS(_uM("marginTop" to 32, "display" to "flex", "flexDirection" to "column")), "save-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "height" to 48, "lineHeight" to "48px", "fontSize" to 16, "fontWeight" to "bold", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginBottom" to 16, "boxShadow" to "0 8rpx 20rpx rgba(255, 80, 0, 0.2)")), "delete-btn" to _pS(_uM("backgroundColor" to "#ffffff", "color" to "#ee0a24", "height" to 48, "lineHeight" to "48px", "fontSize" to 16, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/address-list.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/address-list.kt deleted file mode 100644 index a3abfd80..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/address-list.kt +++ /dev/null @@ -1,211 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.`$emit` as uni__emit -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerAddressList : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerAddressList) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerAddressList - val _cache = __ins.renderCache - val addresses = ref(_uA
()) - val selectionMode = ref(false) - val loadAddresses = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val supabaseAddresses = await(supabaseService.getAddresses()) - val transformedAddresses: UTSArray
= _uA() - run { - var i: Number = 0 - while(i < supabaseAddresses.length){ - val item = supabaseAddresses[i] - val addr: Address = Address(id = item.id, name = item.recipient_name, phone = item.phone, province = item.province, city = item.city, district = item.district, detail = item.detail_address, isDefault = item.is_default, label = "") - transformedAddresses.push(addr) - i++ - } - } - addresses.value = transformedAddresses - uni_setStorageSync("addresses", JSON.stringify(addresses.value)) - } - catch (error: Throwable) { - console.error("加载地址数据失败:", error, " at pages/mall/consumer/address-list.uvue:84") - val storedAddresses = uni_getStorageSync("addresses") - if (storedAddresses != null) { - try { - addresses.value = UTSAndroid.consoleDebugError(JSON.parse(storedAddresses as String), " at pages/mall/consumer/address-list.uvue:89") as UTSArray
- } catch (e: Throwable) { - console.error("解析地址数据失败", e, " at pages/mall/consumer/address-list.uvue:91") - addresses.value = _uA() - } - } else { - addresses.value = _uA() - } - } - }) - } - onLoad__1(fun(options){ - if (options["selectMode"] == "true") { - selectionMode.value = true - } - } - ) - onShow__1(fun(){ - loadAddresses() - } - ) - val getFullAddress = fun(item: Address): String { - return "" + item.province + item.city + item.district + " " + item.detail - } - val addAddress = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/address-edit")) - } - val deleteAddress = fun(id: String){ - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除该地址吗?", success = fun(res){ - if (res.confirm) { - supabaseService.deleteAddress(id).then(fun(success){ - if (success) { - val index = addresses.value.findIndex(fun(addr): Boolean { - return addr.id === id - }) - if (index !== -1) { - addresses.value.splice(index, 1) - uni_setStorageSync("addresses", JSON.stringify(addresses.value)) - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - } - } else { - console.error("删除地址失败", " at pages/mall/consumer/address-list.uvue:145") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - val editAddress = fun(id: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/address-edit?id=" + id)) - } - val selectAddress = fun(item: Address){ - if (selectionMode.value) { - uni__emit("addressSelected", object : UTSJSONObject() { - var id = item.id - var recipient_name = item.name - var phone = item.phone - var province = item.province - var city = item.city - var district = item.district - var detail = item.detail - var is_default = item.isDefault - }) - uni_navigateBack(null) - } else { - editAddress(item.id) - } - } - return fun(): Any? { - return _cE("view", _uM("class" to "address-list-page"), _uA( - _cE("view", _uM("class" to "address-list"), _uA( - if (addresses.value.length === 0) { - _cE("view", _uM("key" to 0, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-icon"), "📍"), - _cE("text", _uM("class" to "empty-text"), "暂无收货地址") - )) - } else { - _cE(Fragment, _uM("key" to 1), RenderHelpers.renderList(addresses.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "address-item", "onClick" to fun(){ - selectAddress(item) - } - ), _uA( - _cE("view", _uM("class" to "item-content"), _uA( - _cE("view", _uM("class" to "item-header"), _uA( - _cE("text", _uM("class" to "user-name"), _tD(item.name), 1), - _cE("text", _uM("class" to "user-phone"), _tD(item.phone), 1), - if (isTrue(item.isDefault)) { - _cE("text", _uM("key" to 0, "class" to "default-tag"), "默认") - } else { - _cC("v-if", true) - } - , - if (isTrue(item.label)) { - _cE("text", _uM("key" to 1, "class" to "label-tag"), _tD(item.label), 1) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "address-text"), _tD(getFullAddress(item)), 1) - )), - _cE("view", _uM("class" to "item-actions"), _uA( - _cE("view", _uM("class" to "action-item", "onClick" to withModifiers(fun(){ - editAddress(item.id) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "action-icon"), "📝") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "action-item", "onClick" to withModifiers(fun(){ - deleteAddress(item.id) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "action-icon"), "🗑️") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - } - )), - _cE("view", _uM("class" to "footer-btn"), _uA( - _cE("button", _uM("class" to "add-btn", "onClick" to addAddress), "新建收货地址") - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("address-list-page" to _pS(_uM("backgroundColor" to "#f8f8f8", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 100, "paddingLeft" to 12)), "address-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "address-item" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "boxShadow" to "0 2rpx 10rpx rgba(0, 0, 0, 0.03)")), "item-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "marginRight" to 12)), "item-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 8, "flexWrap" to "wrap")), "user-name" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 12)), "user-phone" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginRight" to 12)), "default-tag" to _pS(_uM("backgroundColor" to "#fff1eb", "color" to "#ff5000", "fontSize" to 10, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 6, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "label-tag" to _pS(_uM("backgroundColor" to "#eef5ff", "color" to "#007aff", "fontSize" to 10, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "address-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.5, "lines" to 2, "textOverflow" to "ellipsis")), "item-actions" to _pS(_uM("paddingLeft" to 16, "borderLeftWidth" to 1, "borderLeftStyle" to "solid", "borderLeftColor" to "#f0f0f0", "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "action-item" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "empty-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 100)), "empty-icon" to _pS(_uM("fontSize" to 64, "marginBottom" to 16, "opacity" to 0.5)), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "footer-btn" to _pS(_uM("position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 30, "paddingLeft" to 15, "boxShadow" to "0 -2px 10px rgba(0,0,0,0.05)", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "zIndex" to 100)), "add-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "height" to 44, "lineHeight" to "44px", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "width" to "100%"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/apply-refund.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/apply-refund.kt deleted file mode 100644 index ee360c4b..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/apply-refund.kt +++ /dev/null @@ -1,233 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerApplyRefund : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerApplyRefund) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerApplyRefund - val _cache = __ins.renderCache - val orderId = ref("") - val orderItemId = ref("") - val refundType = ref(1) - val refundReason = ref("") - val refundAmount = ref("") - val description = ref("") - val maxAmount = ref(0) - val deliveryFee = ref(0) - val submitting = ref(false) - val reasonList = _uA( - "多拍/错拍/不想要", - "快递一直未送达", - "未按约定时间发货", - "快递无记录", - "空包裹/少货/错发", - "质量问题", - "其他" - ) - val loadOrderInfo = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val orderData = await(supabaseService.getOrderDetail(orderId.value)) - if (orderData != null) { - val order = orderData as UTSJSONObject - val total = order.getNumber("total_amount") ?: 0 - val shipping = order.getNumber("shipping_fee") ?: 0 - maxAmount.value = total - deliveryFee.value = shipping - refundAmount.value = maxAmount.value.toString(10) - } - } - catch (err: Throwable) { - console.error("加载订单信息失败", err, " at pages/mall/consumer/apply-refund.uvue:98") - uni_showToast(ShowToastOptions(title = "加载订单失败", icon = "none")) - } - }) - } - onLoad__1(fun(options){ - if (options["orderId"] != null) { - orderId.value = options["orderId"] as String - loadOrderInfo() - } - } - ) - val handleTypeChange = fun(e: Any){ - val target = e as UTSJSONObject - val detail = target["detail"] as UTSJSONObject - val value = detail["value"] as String - refundType.value = parseInt(value) - } - val handleReasonChange = fun(e: Any){ - val target = e as UTSJSONObject - val detail = target["detail"] as UTSJSONObject - val value = detail["value"] as Number - val index = value - refundReason.value = reasonList[index] - } - val submitRefund = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("=== 提交退款 ===", " at pages/mall/consumer/apply-refund.uvue:136") - console.log("refundReason:", refundReason.value, " at pages/mall/consumer/apply-refund.uvue:137") - console.log("refundAmount:", refundAmount.value, " at pages/mall/consumer/apply-refund.uvue:138") - console.log("maxAmount:", maxAmount.value, " at pages/mall/consumer/apply-refund.uvue:139") - if (refundReason.value == "") { - uni_showToast(ShowToastOptions(title = "请选择退款原因", icon = "none")) - return@w1 - } - val amount = parseFloat(refundAmount.value) - console.log("解析后金额:", amount, " at pages/mall/consumer/apply-refund.uvue:147") - if (isNaN(amount) || amount <= 0 || amount > maxAmount.value) { - uni_showToast(ShowToastOptions(title = "请输入有效的退款金额", icon = "none")) - return@w1 - } - submitting.value = true - uni_showLoading(ShowLoadingOptions(title = "提交中...")) - try { - console.log("调用 createRefund, orderId:", orderId.value, " at pages/mall/consumer/apply-refund.uvue:158") - val result = await(supabaseService.createRefund(object : UTSJSONObject() { - var order_id = orderId.value - var refund_type = refundType.value - var refund_reason = refundReason.value - var refund_amount = amount - var description = description.value - })) - console.log("createRefund 结果:", JSON.stringify(result), " at pages/mall/consumer/apply-refund.uvue:167") - uni_hideLoading() - if (result.success) { - uni_showToast(ShowToastOptions(title = "提交成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - }, 1500) - } else { - uni_showToast(ShowToastOptions(title = result.message, icon = "none")) - } - } - catch (err: Throwable) { - console.error("提交退款失败", err, " at pages/mall/consumer/apply-refund.uvue:180") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "提交异常", icon = "none")) - } - finally { - submitting.value = false - } - }) - } - return fun(): Any? { - val _component_radio = resolveComponent("radio") - val _component_label = resolveComponent("label") - val _component_radio_group = resolveComponent("radio-group") - val _component_picker = resolveComponent("picker") - return _cE("view", _uM("class" to "apply-refund-page"), _uA( - _cE("view", _uM("class" to "section"), _uA( - _cE("view", _uM("class" to "section-title"), "退款类型"), - _cV(_component_radio_group, _uM("onChange" to handleTypeChange, "class" to "type-group"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_label, _uM("class" to "type-item"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_radio, _uM("value" to "1", "checked" to (refundType.value === 1), "color" to "#ff5000", "class" to "type-radio"), null, 8, _uA( - "checked" - )), - _cE("text", null, "仅退款") - ) - } - ), "_" to 1)), - _cV(_component_label, _uM("class" to "type-item"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_radio, _uM("value" to "2", "checked" to (refundType.value === 2), "color" to "#ff5000", "class" to "type-radio"), null, 8, _uA( - "checked" - )), - _cE("text", null, "退货退款") - ) - } - ), "_" to 1)) - ) - } - ), "_" to 1)) - )), - _cE("view", _uM("class" to "section"), _uA( - _cE("view", _uM("class" to "section-title"), "退款原因"), - _cV(_component_picker, _uM("onChange" to handleReasonChange, "range" to reasonList, "class" to "picker"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cE("view", _uM("class" to "picker-content"), _uA( - if (isTrue(refundReason.value)) { - _cE("text", _uM("key" to 0), _tD(refundReason.value), 1) - } else { - _cE("text", _uM("key" to 1, "class" to "placeholder"), "请选择退款原因") - } - , - _cE("text", _uM("class" to "arrow"), ">") - )) - ) - } - ), "_" to 1)) - )), - _cE("view", _uM("class" to "section"), _uA( - _cE("view", _uM("class" to "section-title"), "退款金额"), - _cE("view", _uM("class" to "amount-input-wrap"), _uA( - _cE("text", _uM("class" to "currency"), "¥"), - _cE("input", _uM("type" to "digit", "modelValue" to refundAmount.value, "onInput" to fun(`$event`: UniInputEvent){ - refundAmount.value = `$event`.detail.value - } - , "class" to "amount-input", "placeholder" to ("最多可退 \u00A5" + maxAmount.value)), null, 40, _uA( - "modelValue", - "onInput", - "placeholder" - )) - )), - _cE("text", _uM("class" to "amount-tip"), "最多可退 ¥" + _tD(maxAmount.value) + ",含发货邮费 ¥" + _tD(deliveryFee.value), 1) - )), - _cE("view", _uM("class" to "section"), _uA( - _cE("view", _uM("class" to "section-title"), "退款说明"), - _cE("textarea", _uM("modelValue" to description.value, "onInput" to fun(`$event`: UniInputEvent){ - description.value = `$event`.detail.value - } - , "class" to "desc-input", "placeholder" to "选填:补充详细的退款说明,有助于商家快速处理", "maxlength" to "200"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "submit-bar"), _uA( - _cE("button", _uM("class" to "submit-btn", "onClick" to submitRefund, "loading" to submitting.value), "提交申请", 8, _uA( - "loading" - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("apply-refund-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 80, "paddingLeft" to 15)), "section" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15)), "type-group" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "type-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "marginBottom" to 15, "fontSize" to 14)), "type-radio" to _pS(_uM("marginRight" to 10)), "picker-content" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "fontSize" to 14, "color" to "#333333")), "placeholder" to _pS(_uM("color" to "#999999")), "arrow" to _pS(_uM("color" to "#cccccc")), "amount-input-wrap" to _pS(_uM("display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "paddingBottom" to 10, "marginBottom" to 10)), "currency" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 10)), "amount-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 24, "fontWeight" to "bold", "height" to 40)), "amount-tip" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "desc-input" to _pS(_uM("width" to "100%", "height" to 100, "fontSize" to 14, "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "boxSizing" to "border-box")), "submit-bar" to _pS(_uM("position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "boxShadow" to "0 -2px 10px rgba(0,0,0,0.05)")), "submit-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "fontSize" to 16, "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/balance/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/balance/index.kt deleted file mode 100644 index 06b98b58..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/balance/index.kt +++ /dev/null @@ -1,224 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.showModal as uni_showModal -open class GenPagesMallConsumerBalanceIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerBalanceIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerBalanceIndex - val _cache = __ins.renderCache - val balance = ref(0) - val totalEarned = ref(0) - val totalWithdrawn = ref(0) - val records = ref(_uA()) - val loading = ref(true) - val loadBalance = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.getUserBalance()) - balance.value = result.getNumber("balance") ?: 0 - totalEarned.value = result.getNumber("total_earned") ?: 0 - totalWithdrawn.value = result.getNumber("total_withdrawn") ?: 0 - } - catch (e: Throwable) { - console.error("加载余额失败:", e, " at pages/mall/consumer/balance/index.uvue:90") - } - }) - } - val loadRecords = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val result = await(supabaseService.getBalanceRecords(1, 50)) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - var id = "" - var type = "" - var amount: Number = 0 - var balanceBefore: Number = 0 - var balanceAfter: Number = 0 - var description: String? = null - var createdAt = "" - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/balance/index.uvue:115") as UTSJSONObject - } - id = itemObj.getString("id") ?: "" - type = itemObj.getString("type") ?: "" - amount = itemObj.getNumber("amount") ?: 0 - balanceBefore = itemObj.getNumber("balance_before") ?: 0 - balanceAfter = itemObj.getNumber("balance_after") ?: 0 - description = itemObj.getString("description") - createdAt = itemObj.getString("created_at") ?: "" - parsed.push(BalanceRecord(id = id, type = type, amount = amount, balance_before = balanceBefore, balance_after = balanceAfter, description = description, created_at = createdAt)) - i++ - } - } - records.value = parsed - } - catch (e: Throwable) { - console.error("加载余额记录失败:", e, " at pages/mall/consumer/balance/index.uvue:139") - } - finally { - loading.value = false - } - }) - } - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - await(UTSPromise.all(_uA( - loadBalance(), - loadRecords() - ))) - }) - } - val getTypeText = fun(type: String): String { - if (type === "free_order") { - return "免单奖励" - } - if (type === "rebate") { - return "返利" - } - if (type === "withdraw") { - return "提现" - } - if (type === "clear") { - return "余额清零" - } - if (type === "manual") { - return "手动调整" - } - return "余额变动" - } - val formatTime = fun(timeStr: String): String { - if (timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val hh = date.getHours().toString(10).padStart(2, "0") - val mm = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm - } - val showWithdrawTips = fun(): Unit { - uni_showModal(ShowModalOptions(title = "提现说明", content = "请添加商家微信进行提现处理,商家确认后将通过微信转账给您。", showCancel = false, confirmText = "我知道了")) - } - onMounted(fun(){ - loadData() - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "balance-page", "scroll-y" to ""), _uA( - _cE("view", _uM("class" to "balance-header"), _uA( - _cE("view", _uM("class" to "balance-info"), _uA( - _cE("text", _uM("class" to "balance-label"), "账户余额(元)"), - _cE("text", _uM("class" to "balance-value"), _tD(balance.value), 1) - )), - _cE("view", _uM("class" to "balance-tips"), _uA( - _cE("text", _uM("class" to "tips-text"), "余额来源于免单奖励,请联系商家微信提现") - )) - )), - _cE("view", _uM("class" to "stats-section"), _uA( - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(totalEarned.value), 1), - _cE("text", _uM("class" to "stat-label"), "累计获得") - )), - _cE("view", _uM("class" to "stat-divider")), - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(totalWithdrawn.value), 1), - _cE("text", _uM("class" to "stat-label"), "已提现") - )) - )), - _cE("view", _uM("class" to "records-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "余额明细") - )), - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - if (records.value.length === 0) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无余额记录") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "record-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(records.value, fun(record, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "record-item", "key" to record.id), _uA( - _cE("view", _uM("class" to "record-left"), _uA( - _cE("text", _uM("class" to "record-type"), _tD(getTypeText(record.type)), 1), - _cE("text", _uM("class" to "record-time"), _tD(formatTime(record.created_at)), 1) - )), - _cE("view", _uM("class" to "record-right"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "record-amount", - if (record.amount > 0) { - "positive" - } else { - "negative" - } - ))), _tD(if (record.amount > 0) { - "+" - } else { - "" - } - ) + _tD(record.amount), 3), - _cE("text", _uM("class" to "record-balance"), "余额: " + _tD(record.balance_after), 1) - )) - )) - } - ), 128) - )) - } - } - )), - _cE("view", _uM("class" to "withdraw-section"), _uA( - _cE("button", _uM("class" to "withdraw-btn", "onClick" to showWithdrawTips), _uA( - _cE("text", _uM("class" to "btn-text"), "申请提现") - )), - _cE("text", _uM("class" to "withdraw-tip"), "提现请联系商家微信处理") - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("balance-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "balance-header" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 30, "paddingRight" to 20, "paddingBottom" to 30, "paddingLeft" to 20, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "balance-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "balance-label" to _pS(_uM("fontSize" to 14, "color" to "rgba(255,255,255,0.8)", "marginBottom" to 8)), "balance-value" to _pS(_uM("fontSize" to 42, "fontWeight" to "bold", "color" to "#FFFFFF")), "balance-tips" to _pS(_uM("marginTop" to 16, "paddingTop" to 8, "paddingRight" to 16, "paddingBottom" to 8, "paddingLeft" to 16, "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "tips-text" to _pS(_uM("fontSize" to 12, "color" to "rgba(255,255,255,0.9)")), "stats-section" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF", "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "marginBottom" to 8)), "stat-item" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "stat-value" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#333333")), "stat-label" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4)), "stat-divider" to _pS(_uM("width" to 1, "height" to 40, "backgroundColor" to "#f0f0f0")), "records-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "minHeight" to 200)), "section-header" to _pS(_uM("paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "record-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "record-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "record-left" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "record-type" to _pS(_uM("fontSize" to 15, "color" to "#333333", "marginBottom" to 4)), "record-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "record-right" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "flex-end")), "record-amount" to _uM("" to _uM("fontSize" to 18, "fontWeight" to "bold", "marginBottom" to 4), ".positive" to _uM("color" to "#ff6b35"), ".negative" to _uM("color" to "#333333")), "record-balance" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "withdraw-section" to _pS(_uM("paddingTop" to 20, "paddingRight" to 16, "paddingBottom" to 20, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "withdraw-btn" to _pS(_uM("width" to "100%", "height" to 44, "backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "btn-text" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#FFFFFF")), "withdraw-tip" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 12))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/add.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/add.kt deleted file mode 100644 index dec89f53..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/add.kt +++ /dev/null @@ -1,164 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerBankCardsAdd : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerBankCardsAdd) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerBankCardsAdd - val _cache = __ins.renderCache - val loading = ref(false) - val form = reactive(BankCardForm(holder_name = "", card_no = "", bank_name = "", phone = "", is_default = false)) - val onSwitchChange = fun(e: UniSwitchChangeEvent){ - form.is_default = e.detail.value - } - val detectBank = fun(e: Any){ - val kVal = form.card_no - if (kVal.length >= 6) { - if (kVal.startsWith("6222")) { - form.bank_name = "中国工商银行" - } else if (kVal.startsWith("6227")) { - form.bank_name = "中国建设银行" - } else if (kVal.startsWith("6225")) { - form.bank_name = "招商银行" - } else if (kVal.startsWith("6228")) { - form.bank_name = "中国农业银行" - } - } - } - val submit = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (form.holder_name == "" || form.card_no == "" || form.bank_name == "") { - uni_showToast(ShowToastOptions(title = "请完善卡片信息", icon = "none")) - return@w1 - } - loading.value = true - try { - val cardData = UTSJSONObject(UTSSourceMapPosition("cardData", "pages/mall/consumer/bank-cards/add.uvue", 79, 15)) - cardData.set("holder_name", form.holder_name) - cardData.set("bank_name", form.bank_name) - cardData.set("card_no", form.card_no) - val last4 = if (form.card_no.length > 4) { - form.card_no.slice(-4) - } else { - form.card_no - } - cardData.set("card_no_last4", last4) - cardData.set("phone", form.phone) - cardData.set("is_default", form.is_default) - cardData.set("card_type", "debit") - val success = await(supabaseService.addBankCard(cardData)) - if (success) { - uni_showToast(ShowToastOptions(title = "添加成功")) - setTimeout(fun(){ - uni_navigateBack(null) - }, 1000) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error(e, " at pages/mall/consumer/bank-cards/add.uvue:101") - uni_showToast(ShowToastOptions(title = "系统错误", icon = "none")) - } - finally { - loading.value = false - } - }) - } - return fun(): Any? { - val _component_switch = resolveComponent("switch") - return _cE("view", _uM("class" to "add-card-page"), _uA( - _cE("view", _uM("class" to "form-container"), _uA( - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "持卡人"), - _cE("input", _uM("class" to "input", "type" to "text", "modelValue" to form.holder_name, "onInput" to fun(`$event`: UniInputEvent){ - form.holder_name = `$event`.detail.value - } - , "placeholder" to "请输入持卡人姓名"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "卡号"), - _cE("input", _uM("class" to "input", "type" to "number", "modelValue" to form.card_no, "onInput" to _uA(fun(`$event`: UniInputEvent){ - form.card_no = `$event`.detail.value - } - , detectBank), "placeholder" to "请输入银行卡号", "maxlength" to "19"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "银行"), - _cE("input", _uM("class" to "input", "type" to "text", "modelValue" to form.bank_name, "onInput" to fun(`$event`: UniInputEvent){ - form.bank_name = `$event`.detail.value - } - , "placeholder" to "自动识别或手动输入"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "label"), "手机号"), - _cE("input", _uM("class" to "input", "type" to "number", "modelValue" to form.phone, "onInput" to fun(`$event`: UniInputEvent){ - form.phone = `$event`.detail.value - } - , "placeholder" to "银行预留手机号", "maxlength" to "11"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item switch-item"), _uA( - _cE("text", _uM("class" to "label"), "设为默认卡"), - _cV(_component_switch, _uM("checked" to form.is_default, "onChange" to onSwitchChange, "color" to "#ff5000"), null, 8, _uA( - "checked" - )) - )) - )), - _cE("view", _uM("class" to "action-section"), _uA( - _cE("button", _uM("class" to _nC(_uA( - "submit-btn", - _uM("disabled" to loading.value) - )), "disabled" to loading.value, "onClick" to submit), "确认添加", 10, _uA( - "disabled" - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("add-card-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "form-container" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15)), "form-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "label" to _pS(_uM("width" to 80, "fontSize" to 15, "color" to "#333333")), "input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 15)), "switch-item" to _pS(_uM("justifyContent" to "space-between")), "action-section" to _pS(_uM("paddingTop" to 30, "paddingRight" to 15, "paddingBottom" to 30, "paddingLeft" to 15)), "submit-btn" to _uM("" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16), ".disabled" to _uM("opacity" to 0.6))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/index.kt deleted file mode 100644 index 2e185742..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/bank-cards/index.kt +++ /dev/null @@ -1,175 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerBankCardsIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerBankCardsIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerBankCardsIndex - val _cache = __ins.renderCache - val cards = ref(_uA()) - val loading = ref(true) - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val rawList = await(supabaseService.getUserBankCards()) - val cardList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - var id = "" - var bankName = "" - var last4 = "" - var type = "debit" - var holder = "" - var isDef = false - if (item is UTSJSONObject) { - id = (item as UTSJSONObject).getString("id") ?: "" - bankName = (item as UTSJSONObject).getString("bank_name") ?: "" - last4 = (item as UTSJSONObject).getString("card_no_last4") ?: "" - type = (item as UTSJSONObject).getString("card_type") ?: "debit" - holder = (item as UTSJSONObject).getString("holder_name") ?: "" - isDef = (item as UTSJSONObject).getBoolean("is_default") ?: false - } else { - val obj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/bank-cards/index.uvue:70") as UTSJSONObject - id = obj.getString("id") ?: "" - bankName = obj.getString("bank_name") ?: "" - last4 = obj.getString("card_no_last4") ?: "" - type = obj.getString("card_type") ?: "debit" - holder = obj.getString("holder_name") ?: "" - isDef = obj.getBoolean("is_default") ?: false - } - cardList.push(BankCard__1(id = id, user_id = "", bank_name = bankName, card_no_last4 = last4, card_type = type, holder_name = holder, is_default = isDef)) - i++ - } - } - cards.value = cardList - } - catch (e: Throwable) { - console.error(e, " at pages/mall/consumer/bank-cards/index.uvue:92") - } - finally { - loading.value = false - } - }) - } - onShow(fun(){ - loadData() - } - ) - val addCard = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bank-cards/add")) - } - val deleteCard = fun(card: BankCard__1){ - uni_showModal(ShowModalOptions(title = "删除银行卡", content = "确认删除尾号" + card.card_no_last4 + "的" + card.bank_name + "卡片吗?", success = fun(res){ - if (res.confirm) { - supabaseService.deleteBankCard(card.id).then(fun(success){ - if (success) { - uni_showToast(ShowToastOptions(title = "已删除")) - loadData() - } else { - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - val getCardClass = fun(bankName: String): String { - if (bankName.includes("招商")) { - return "cmb" - } - if (bankName.includes("建设")) { - return "ccb" - } - if (bankName.includes("工商")) { - return "icbc" - } - if (bankName.includes("农业")) { - return "abc" - } - return "default-bank" - } - return fun(): Any? { - return _cE("view", _uM("class" to "bank-cards-page"), _uA( - _cE("view", _uM("class" to "card-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(cards.value, fun(card, __key, __index, _cached): Any { - return _cE("view", _uM("key" to card.id, "class" to _nC(_uA( - "card-item", - getCardClass(card.bank_name) - ))), _uA( - _cE("view", _uM("class" to "card-bg-mask")), - _cE("view", _uM("class" to "card-content"), _uA( - _cE("view", _uM("class" to "card-header"), _uA( - _cE("text", _uM("class" to "bank-name"), _tD(card.bank_name), 1), - _cE("text", _uM("class" to "card-type"), _tD(if (card.card_type === "credit") { - "信用卡" - } else { - "储蓄卡" - } - ), 1) - )), - _cE("view", _uM("class" to "card-number"), _uA( - _cE("text", _uM("class" to "dots"), "**** **** ****"), - _cE("text", _uM("class" to "last-digits"), _tD(card.card_no_last4), 1) - )), - _cE("view", _uM("class" to "delete-btn", "onClick" to withModifiers(fun(){ - deleteCard(card) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "del-text"), "✕") - ), 8, _uA( - "onClick" - )) - )) - ), 2) - } - ), 128), - _cE("view", _uM("class" to "add-card-btn", "onClick" to addCard), _uA( - _cE("text", _uM("class" to "plus-icon"), "+"), - _cE("text", null, "添加银行卡") - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("bank-cards-page" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 140, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 15, "color" to "#ffffff", "position" to "relative", "overflow" to "hidden", "boxShadow" to "0 4px 8px rgba(0,0,0,0.1)")), "cmb" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #f55, #c00)", "backgroundColor" to "rgba(0,0,0,0)")), "ccb" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #09f, #00609c)", "backgroundColor" to "rgba(0,0,0,0)")), "icbc" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #f66, #c00)", "backgroundColor" to "rgba(0,0,0,0)")), "abc" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #0b9, #086)", "backgroundColor" to "rgba(0,0,0,0)")), "default-bank" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #666, #333)", "backgroundColor" to "rgba(0,0,0,0)")), "card-content" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "zIndex" to 2, "position" to "relative", "height" to "100%", "boxSizing" to "border-box", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "card-header" to _pS(_uM("display" to "flex", "alignItems" to "center")), "bank-name" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "marginRight" to 10)), "card-type" to _pS(_uM("fontSize" to 12, "backgroundColor" to "rgba(255,255,255,0.2)", "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "card-number" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "flex-end", "marginBottom" to 10)), "dots" to _pS(_uM("fontSize" to 24, "marginRight" to 15, "lineHeight" to 1)), "last-digits" to _pS(_uM("fontSize" to 24, "fontFamily" to "monospace")), "add-card-btn" to _pS(_uM("backgroundColor" to "#ffffff", "height" to 60, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "color" to "#666666", "fontSize" to 16, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "dashed", "borderRightStyle" to "dashed", "borderBottomStyle" to "dashed", "borderLeftStyle" to "dashed", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc")), "plus-icon" to _pS(_uM("fontSize" to 24, "marginRight" to 5)), "delete-btn" to _pS(_uM("position" to "absolute", "top" to 15, "right" to 15, "width" to 24, "height" to 24, "backgroundColor" to "rgba(0,0,0,0.2)", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "del-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 14, "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt deleted file mode 100644 index 8e224b33..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/chat.kt +++ /dev/null @@ -1,628 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideKeyboard as uni_hideKeyboard -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.previewImage as uni_previewImage -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerChat : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerChat) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerChat - val _cache = __ins.renderCache - val messages = ref(_uA()) - val inputMessage = ref("") - val inputFocus = ref(false) - val showEmoji = ref(false) - val scrollToView = ref("") - val currentUserId = ref("") - val merchantId = ref("") - val headerTitle = ref("在线客服") - val merchantAvatar = ref("/static/default-shop.png") - val navPaddingTop = ref("30px") - val isInitialLoading = ref(true) - var realtimeChannel: AkSupaRealtimeChannel? = null - val emojiList = _uA( - "😊", - "😂", - "🤣", - "😍", - "😘", - "🥰", - "😭", - "😡", - "👍", - "👏", - "🙏", - "🎉", - "❤️", - "🔥", - "⭐" - ) - fun gen_scrollToBottom_fn(): Unit { - if (messages.value.length === 0) { - return - } - val lastMsg = messages.value[messages.value.length - 1] - val targetId = lastMsg.viewId - scrollToView.value = "" - setTimeout(fun(){ - scrollToView.value = targetId - console.log("[scrollToBottom] 发起滚动定位:", targetId, " at pages/mall/consumer/chat.uvue:193") - setTimeout(fun(){ - scrollToView.value = "" - setTimeout(fun(){ - scrollToView.value = targetId - console.log("[scrollToBottom] 第一阶段校准:", targetId, " at pages/mall/consumer/chat.uvue:200") - } - , 50) - } - , 500) - setTimeout(fun(){ - scrollToView.value = "" - setTimeout(fun(){ - scrollToView.value = targetId - console.log("[scrollToBottom] 最终校准:", targetId, " at pages/mall/consumer/chat.uvue:209") - } - , 50) - } - , 1200) - } - , 300) - } - val scrollToBottom = ::gen_scrollToBottom_fn - fun gen_getCurrentTime_fn(): String { - val now = Date() - val hours = now.getHours().toString(10).padStart(2, "0") - val minutes = now.getMinutes().toString(10).padStart(2, "0") - return "" + hours + ":" + minutes - } - val getCurrentTime = ::gen_getCurrentTime_fn - fun gen_setupRealtimeSubscription_fn(): Unit { - console.log("开始建立聊天实时订阅...", " at pages/mall/consumer/chat.uvue:223") - console.log("当前用户ID:", currentUserId.value, "商家ID:", merchantId.value, " at pages/mall/consumer/chat.uvue:224") - realtimeChannel = supaInstance.channel("chat-messages-" + Date.now().toString(10)).on("postgres_changes", object : UTSJSONObject() { - var event = "INSERT" - var schema = "public" - var table = "ml_chat_messages" - }, fun(payload: Any){ - console.log("=== 收到实时订阅回调 ===", " at pages/mall/consumer/chat.uvue:232") - val payloadObj = if ((payload is UTSJSONObject)) { - (payload as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(payload ?: UTSJSONObject())), " at pages/mall/consumer/chat.uvue:233") as UTSJSONObject) - } - val newMsgAny = payloadObj.get("new") - if (newMsgAny == null) { - console.log("newMsgAny 为空,跳过", " at pages/mall/consumer/chat.uvue:236") - return - } - val newMsg = if ((newMsgAny is UTSJSONObject)) { - (newMsgAny as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(newMsgAny)), " at pages/mall/consumer/chat.uvue:239") as UTSJSONObject) - } - console.log("收到新消息:", newMsg, " at pages/mall/consumer/chat.uvue:240") - val senderId = newMsg.getString("sender_id") ?: "" - val receiverId = newMsg.getString("receiver_id") ?: "" - val msgId = newMsg.getString("id") ?: "" - val content = newMsg.getString("content") ?: "" - val msgType = newMsg.getString("msg_type") ?: "text" - console.log("=== 消息详情 ===", " at pages/mall/consumer/chat.uvue:248") - console.log("消息ID:", msgId, " at pages/mall/consumer/chat.uvue:249") - console.log("发送者ID:", senderId, " at pages/mall/consumer/chat.uvue:250") - console.log("接收者ID:", receiverId, " at pages/mall/consumer/chat.uvue:251") - console.log("当前用户ID:", currentUserId.value, " at pages/mall/consumer/chat.uvue:252") - console.log("商家ID:", merchantId.value, " at pages/mall/consumer/chat.uvue:253") - console.log("消息内容:", content, " at pages/mall/consumer/chat.uvue:254") - console.log("消息类型 msgType:", msgType, " at pages/mall/consumer/chat.uvue:255") - run { - var i: Number = 0 - while(i < messages.value.length){ - if (messages.value[i].id == msgId) { - console.log("消息已存在,跳过", " at pages/mall/consumer/chat.uvue:260") - return - } - i++ - } - } - val isMyMessage = (senderId == currentUserId.value) - val isForMe = (receiverId == currentUserId.value) - val isRelatedToCurrentChat = (senderId == merchantId.value || receiverId == merchantId.value) - console.log("=== 条件判断 ===", " at pages/mall/consumer/chat.uvue:270") - console.log("isMyMessage:", isMyMessage, " at pages/mall/consumer/chat.uvue:271") - console.log("isForMe:", isForMe, " at pages/mall/consumer/chat.uvue:272") - console.log("isRelatedToCurrentChat:", isRelatedToCurrentChat, " at pages/mall/consumer/chat.uvue:273") - if (!isRelatedToCurrentChat) { - console.log("消息与当前聊天无关,跳过", " at pages/mall/consumer/chat.uvue:277") - return - } - if (isMyMessage || isForMe) { - val createdAt = newMsg.getString("created_at") ?: Date().toISOString() - val date = Date(createdAt) - val timeStr = "" + date.getHours().toString(10).padStart(2, "0") + ":" + date.getMinutes().toString(10).padStart(2, "0") - val safeViewId = "msg_" + msgId.replace(UTSRegExp("[^a-zA-Z0-9]", "g"), "_") - val incomingMsg = UiChatMessage(id = msgId, viewId = safeViewId, type = if (isMyMessage) { - "sent" - } else { - "received" - }, content = content, time = timeStr, msgType = msgType) - console.log("=== 添加新消息到列表 ===", " at pages/mall/consumer/chat.uvue:299") - console.log("消息类型:", incomingMsg.type, " at pages/mall/consumer/chat.uvue:300") - console.log("消息内容:", incomingMsg.content, " at pages/mall/consumer/chat.uvue:301") - messages.value.push(incomingMsg) - scrollToBottom() - } else { - console.log("条件不满足,不添加消息", " at pages/mall/consumer/chat.uvue:305") - } - } - ).subscribe(fun(status: String, err: Any?){ - console.log("订阅状态:", status, " at pages/mall/consumer/chat.uvue:309") - if (err != null) { - console.log("订阅错误:", err, " at pages/mall/consumer/chat.uvue:311") - } - } - ) - } - val setupRealtimeSubscription = ::gen_setupRealtimeSubscription_fn - fun gen_loadChatHistory_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - var rawMsgs: UTSArray = _uA() - if (merchantId.value != "") { - rawMsgs = await(supabaseService.getChatMessages(merchantId.value)) - } else { - console.warn("No merchant ID provided for chat", " at pages/mall/consumer/chat.uvue:322") - return@w1 - } - val sortedRawMsgs = rawMsgs.sort(fun(a, b): Number { - val timeA = Date(a.created_at ?: "").getTime() - val timeB = Date(b.created_at ?: "").getTime() - return timeA - timeB - } - ) - val uiMessages: UTSArray = _uA() - run { - var i: Number = 0 - while(i < sortedRawMsgs.length){ - val m = sortedRawMsgs[i] - val date = Date(m.created_at ?: Date().toISOString()) - val timeStr = "" + date.getHours().toString(10).padStart(2, "0") + ":" + date.getMinutes().toString(10).padStart(2, "0") - val sender = m.sender_id ?: "" - val msgType = if ((currentUserId.value != "" && sender == currentUserId.value)) { - "sent" - } else { - "received" - } - val rawId = (m.id ?: "").toString() - val msgId = if (rawId != "") { - rawId - } else { - Date.now().toString(10) + i.toString(10) - } - val safeViewId = "msg_" + msgId.replace(UTSRegExp("[^a-zA-Z0-9]", "g"), "_") - val uiMsg = UiChatMessage(id = msgId, viewId = safeViewId, type = msgType, content = m.content ?: "", time = timeStr, msgType = m.msg_type ?: "text") - uiMessages.push(uiMsg) - i++ - } - } - messages.value = uiMessages - if (isInitialLoading.value) { - setTimeout(fun(){ - scrollToBottom() - isInitialLoading.value = false - } - , 500) - } - }) - } - val loadChatHistory = ::gen_loadChatHistory_fn - fun gen_onScrollToUpper_fn(e: Any): Unit { - console.log("[onScrollToUpper] 触发加载历史记录", " at pages/mall/consumer/chat.uvue:368") - } - val onScrollToUpper = ::gen_onScrollToUpper_fn - fun gen_loadMerchantInfo_fn(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (merchantId.value == "") { - return@w1 - } - try { - val response = await(supaInstance.from("ml_shops").select("shop_logo, shop_name").eq("merchant_id", merchantId.value).limit(1).execute()) - if (response.error != null) { - console.error("[loadMerchantInfo] 获取商家信息失败:", response.error, " at pages/mall/consumer/chat.uvue:383") - return@w1 - } - val rawData = response.data - if (rawData == null) { - return@w1 - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - return@w1 - } - val shopData = rawList[0] - val shopObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(shopData)), " at pages/mall/consumer/chat.uvue:394") as UTSJSONObject - val logo = shopObj.getString("shop_logo") - if (logo != null && logo != "") { - merchantAvatar.value = logo - } - val name = shopObj.getString("shop_name") - if (name != null && name != "" && headerTitle.value == "在线客服") { - headerTitle.value = name - } - } - catch (e: Throwable) { - console.error("[loadMerchantInfo] 获取商家信息异常:", e, " at pages/mall/consumer/chat.uvue:406") - } - }) - } - val loadMerchantInfo = ::gen_loadMerchantInfo_fn - onLoad(fun(options: Any){ - val sysInfo = uni_getSystemInfoSync() - val statusBarH = sysInfo.statusBarHeight - navPaddingTop.value = (statusBarH + 10) + "px" - val optObj = if ((options is UTSJSONObject)) { - (options as UTSJSONObject) - } else { - (UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(options ?: UTSJSONObject())), " at pages/mall/consumer/chat.uvue:418") as UTSJSONObject) - } - val mid = optObj.getString("merchantId") ?: "" - if (mid !== "") { - merchantId.value = mid - } - val mname = optObj.getString("merchantName") ?: "" - if (mname !== "") { - headerTitle.value = mname - } - } - ) - onMounted(fun(){ - supabaseService.ensureSession().then(fun(uid){ - if (uid != null) { - currentUserId.value = uid - } else { - getCurrentUser().then(fun(user){ - if (user != null) { - currentUserId.value = user.id ?: "" - } - } - ) - } - loadMerchantInfo() - loadChatHistory() - setupRealtimeSubscription() - } - ) - } - ) - onUnmounted(fun(){ - if (realtimeChannel != null) { - supaInstance.removeChannel(realtimeChannel!!!!) - } - } - ) - val sendMessage = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val content = inputMessage.value.trim() - if (content == "") { - return@w1 - } - inputMessage.value = "" - showEmoji.value = false - if (merchantId.value != "") { - console.log("[sendMessage] 开始发送消息到:", merchantId.value, " at pages/mall/consumer/chat.uvue:464") - val success = await(supabaseService.sendMessage(merchantId.value, content)) - console.log("[sendMessage] 发送结果:", success, " at pages/mall/consumer/chat.uvue:466") - if (!success) { - uni_showToast(ShowToastOptions(title = "发送失败", icon = "none")) - } - } - }) - } - fun gen_insertEmoji_fn(emoji: String): Unit { - inputMessage.value += emoji - showEmoji.value = false - inputFocus.value = true - } - val insertEmoji = ::gen_insertEmoji_fn - fun gen_showEmojiPicker_fn(): Unit { - showEmoji.value = !showEmoji.value - if (showEmoji.value) { - uni_hideKeyboard(null) - } - } - val showEmojiPicker = ::gen_showEmojiPicker_fn - fun gen_doUploadImage_fn(filePath: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - console.log("[doUploadImage] 开始上传图片:", filePath, " at pages/mall/consumer/chat.uvue:504") - uni_showLoading(ShowLoadingOptions(title = "发送中...", mask = true)) - try { - val imageUrl = await(supabaseService.uploadChatImage(filePath)) - uni_hideLoading() - if (imageUrl == "") { - uni_showToast(ShowToastOptions(title = "图片上传失败", icon = "none")) - return@w1 - } - console.log("[doUploadImage] 图片上传成功:", imageUrl, " at pages/mall/consumer/chat.uvue:526") - val success = await(supabaseService.sendMessage(merchantId.value, imageUrl, "image")) - if (!success) { - uni_showToast(ShowToastOptions(title = "发送失败", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("[doUploadImage] 上传异常:", e, " at pages/mall/consumer/chat.uvue:538") - uni_showToast(ShowToastOptions(title = "上传失败", icon = "none")) - } - }) - } - val doUploadImage = ::gen_doUploadImage_fn - fun gen_showImagePicker_fn(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, success = fun(res){ - console.log("选择图片成功:", JSON.stringify(res), " at pages/mall/consumer/chat.uvue:551") - var filePath: String = "" - val tempFilePaths = res.tempFilePaths - if (tempFilePaths != null) { - if (UTSArray.isArray(tempFilePaths)) { - val arr = tempFilePaths as UTSArray - if (arr.length > 0) { - filePath = arr[0] - } - } else if (tempFilePaths is UTSJSONObject) { - val keys = UTSJSONObject.keys(tempFilePaths as UTSJSONObject) - if (keys.length > 0) { - filePath = (tempFilePaths as UTSJSONObject).getString(keys[0]) ?: "" - } - } else if (UTSAndroid.`typeof`(tempFilePaths) === "string") { - filePath = tempFilePaths as String - } - } - if (filePath == "" && res.tempFiles != null) { - val tempFiles = res.tempFiles - if (UTSArray.isArray(tempFiles)) { - val files = tempFiles as UTSArray - if (files.length > 0) { - val firstFile = files[0] - if (firstFile is UTSJSONObject) { - filePath = (firstFile as UTSJSONObject).getString("path") ?: "" - } else if (UTSAndroid.`typeof`(firstFile) === "object" && firstFile != null) { - val fileObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(firstFile)), " at pages/mall/consumer/chat.uvue:582") as UTSJSONObject - filePath = fileObj.getString("path") ?: "" - } - } - } - } - console.log("[showImagePicker] 文件路径:", filePath, " at pages/mall/consumer/chat.uvue:589") - if (filePath == "") { - uni_showToast(ShowToastOptions(title = "获取图片路径失败", icon = "none")) - return - } - doUploadImage(filePath) - } - , fail = fun(err){ - console.log("选择图片失败:", err, " at pages/mall/consumer/chat.uvue:603") - uni_showToast(ShowToastOptions(title = "选择图片失败", icon = "none")) - } - )) - } - val showImagePicker = ::gen_showImagePicker_fn - fun gen_previewImage_fn(url: String): Unit { - uni_previewImage(PreviewImageOptions(urls = _uA( - url - ), current = url)) - } - val previewImage = ::gen_previewImage_fn - fun gen_showMoreTools_fn(): Unit { - uni_showActionSheet(ShowActionSheetOptions(itemList = _uA( - "发送位置", - "发送文件", - "发送语音" - ), success = fun(res){ - console.log("选择工具:", res.tapIndex, " at pages/mall/consumer/chat.uvue:625") - } - )) - } - val showMoreTools = ::gen_showMoreTools_fn - fun gen_showMoreActions_fn(): Unit { - uni_showActionSheet(ShowActionSheetOptions(itemList = _uA( - "投诉客服", - "结束对话", - "清除记录" - ), success = fun(res){ - when (res.tapIndex) { - 0 -> - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/complaint")) - 1 -> - uni_showModal(ShowModalOptions(title = "确认结束", content = "确定要结束本次对话吗?", success = fun(res){ - if (res.confirm) { - uni_navigateBack(null) - } - } - )) - 2 -> - uni_showModal(ShowModalOptions(title = "确认清除", content = "确定要清除聊天记录吗?", success = fun(res){ - if (res.confirm) { - messages.value = _uA() - } - } - )) - } - } - )) - } - val showMoreActions = ::gen_showMoreActions_fn - val goBack = fun(){ - uni_navigateBack(null) - } - return fun(): Any? { - return _cE("view", _uM("class" to "chat-page"), _uA( - _cE("view", _uM("class" to "chat-header", "style" to _nS(_uM("paddingTop" to navPaddingTop.value))), _uA( - _cE("view", _uM("class" to "header-back", "onClick" to goBack), _uA( - _cE("text", _uM("class" to "back-icon"), "❮") - )), - _cE("view", _uM("class" to "header-info"), _uA( - _cE("view", _uM("class" to "header-info-text-wrapper"), _uA( - _cE("text", _uM("class" to "chat-title"), _tD(headerTitle.value), 1), - _cE("text", _uM("class" to "chat-status"), "在线") - )) - )), - _cE("view", _uM("class" to "header-actions"), _uA( - _cE("view", _uM("class" to "action-icon", "onClick" to showMoreActions), _uA( - _cE("text", _uM("class" to "action-icon-text"), "⋯") - )) - )) - ), 4), - _cE("scroll-view", _uM("scroll-y" to "true", "class" to "chat-content", "scroll-into-view" to scrollToView.value, "scroll-with-animation" to true, "show-scrollbar" to false, "upper-threshold" to "100", "onScrolltoupper" to onScrollToUpper), _uA( - _cE("view", _uM("class" to "chat-messages"), _uA( - _cE("view", _uM("class" to "message-item system"), _uA( - _cE("text", _uM("class" to "system-text"), "客服 小美 已接入,请描述您的问题") - )), - _cE("view", _uM("class" to "time-divider"), _uA( - _cE("text", _uM("class" to "time-text"), "今天 14:30") - )), - _cE(Fragment, null, RenderHelpers.renderList(messages.value, fun(message, __key, __index, _cached): Any { - return _cE("view", _uM("key" to message.id, "class" to _nC(_uA( - "message-item", - message.type - )), "id" to message.viewId), _uA( - if (message.type === "received") { - _cE("view", _uM("key" to 0, "class" to "message-wrapper"), _uA( - _cE("image", _uM("class" to "avatar", "src" to merchantAvatar.value, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "message-content-wrapper"), _uA( - _cE("text", _uM("class" to "sender-name"), _tD(headerTitle.value), 1), - _cE("view", _uM("class" to "message-bubble received-bubble"), _uA( - if (message.msgType == "image") { - _cE("image", _uM("key" to 0, "class" to "message-image", "src" to message.content, "mode" to "widthFix", "onClick" to fun(){ - previewImage(message.content) - }), null, 8, _uA( - "src", - "onClick" - )) - } else { - _cC("v-if", true) - }, - if (message.msgType != "image") { - _cE("text", _uM("key" to 1, "class" to "message-text"), _tD(message.content), 1) - } else { - _cC("v-if", true) - }, - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )) - )) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "message-wrapper me"), _uA( - _cE("view", _uM("class" to "message-content-wrapper"), _uA( - _cE("view", _uM("class" to "message-bubble me"), _uA( - if (message.msgType == "image") { - _cE("image", _uM("key" to 0, "class" to "message-image", "src" to message.content, "mode" to "widthFix", "onClick" to fun(){ - previewImage(message.content) - }), null, 8, _uA( - "src", - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (message.msgType != "image") { - _cE("text", _uM("key" to 1, "class" to "message-text"), _tD(message.content), 1) - } else { - _cC("v-if", true) - } - , - _cE("text", _uM("class" to "message-time"), _tD(message.time), 1) - )) - )), - _cE("image", _uM("class" to "avatar me", "src" to "/static/images/default-product.png", "mode" to "aspectFill")) - )) - } - ), 10, _uA( - "id" - )) - } - ), 128) - )) - ), 40, _uA( - "scroll-into-view" - )), - _cE("view", _uM("class" to "chat-input"), _uA( - _cE("view", _uM("class" to "input-tools"), _uA( - _cE("text", _uM("class" to "tool-icon", "onClick" to showEmojiPicker), "😊"), - _cE("text", _uM("class" to "tool-icon", "onClick" to showImagePicker), "📷"), - _cE("text", _uM("class" to "tool-icon", "onClick" to showMoreTools), "➕") - )), - _cE("view", _uM("class" to "input-wrapper"), _uA( - _cE("input", _uM("class" to "message-input", "modelValue" to inputMessage.value, "onInput" to fun(`$event`: UniInputEvent){ - inputMessage.value = `$event`.detail.value - } - , "placeholder" to "请输入消息...", "focus" to inputFocus.value, "onConfirm" to sendMessage, "confirm-type" to "send"), null, 40, _uA( - "modelValue", - "onInput", - "focus" - )), - _cE("button", _uM("class" to _nC(_uA( - "send-button", - _uM("active" to inputMessage.value.trim()) - )), "onClick" to sendMessage), " 发送 ", 2) - )) - )), - if (isTrue(showEmoji.value)) { - _cE("scroll-view", _uM("key" to 0, "class" to "emoji-picker", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "emoji-category"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(emojiList, fun(emoji, __key, __index, _cached): Any { - return _cE("text", _uM("key" to emoji, "class" to "emoji-item", "onClick" to fun(){ - insertEmoji(emoji) - }), _tD(emoji), 9, _uA( - "onClick" - )) - }), 64) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("chat-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column", "overflow" to "hidden")), "chat-header" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "flexShrink" to 0)), "header-back" to _pS(_uM("width" to 40)), "back-icon" to _pS(_uM("fontSize" to 20, "color" to "#333333")), "header-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-info-text-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "chat-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 2)), "chat-status" to _pS(_uM("fontSize" to 12, "color" to "#34c759")), "action-icon" to _uM(".header-actions " to _uM("fontSize" to 20, "color" to "#333333", "width" to 40)), "action-icon-text" to _pS(_uM("textAlign" to "right", "width" to "100%")), "chat-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 20, "paddingLeft" to 10, "boxSizing" to "border-box")), "chat-messages" to _pS(_uM("display" to "flex", "flexDirection" to "column", "paddingBottom" to 80)), "message-item" to _uM(".system" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginBottom" to 20)), "system-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 5, "paddingRight" to 15, "paddingBottom" to 5, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "textAlign" to "center")), "time-divider" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginTop" to 20, "marginRight" to 0, "marginBottom" to 20, "marginLeft" to 0)), "time-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f0f0f0", "paddingTop" to 3, "paddingRight" to 10, "paddingBottom" to 3, "paddingLeft" to 10, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "textAlign" to "center")), "message-wrapper" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 15), ".me" to _uM("justifyContent" to "flex-end")), "avatar" to _uM("" to _uM("width" to 40, "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginRight" to 10, "flexShrink" to 0), ".me" to _uM("marginRight" to 0, "marginLeft" to 10)), "message-content-wrapper" to _pS(_uM("width" to 260, "display" to "flex", "flexDirection" to "column")), "message-bubble" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "position" to "relative", "boxShadow" to "0 1px 3px rgba(0, 0, 0, 0.05)"), ".me" to _uM("backgroundColor" to "#95ec69", "alignSelf" to "flex-end", "borderTopRightRadius" to 2)), "received-bubble" to _pS(_uM("alignSelf" to "flex-start", "borderTopLeftRadius" to 2)), "sender-name" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginBottom" to 2, "alignSelf" to "flex-start")), "message-text" to _pS(_uM("fontSize" to 15, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5, "whiteSpace" to "pre-wrap")), "message-image" to _pS(_uM("maxWidth" to 200, "minWidth" to 100, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 5)), "message-time" to _pS(_uM("fontSize" to 11, "color" to "#999999", "textAlign" to "right")), "chat-input" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "flexShrink" to 0)), "input-tools" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 10)), "tool-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "color" to "#666666")), "input-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "message-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "fontSize" to 15, "marginRight" to 10, "minHeight" to 40, "maxHeight" to 100)), "send-button" to _uM("" to _uM("backgroundColor" to "#cccccc", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 8, "paddingRight" to 20, "paddingBottom" to 8, "paddingLeft" to 20, "fontSize" to 14, "minWidth" to 60, "transitionProperty" to "all", "transitionDuration" to "0.3s", "transitionTimingFunction" to "ease"), ".active" to _uM("backgroundColor" to "#ff5000")), "emoji-picker" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "height" to 200, "position" to "fixed", "bottom" to 80, "left" to 0, "right" to 0, "zIndex" to 99)), "emoji-category" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap")), "emoji-item" to _pS(_uM("fontSize" to 24, "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8, "width" to 45, "height" to 45, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "@TRANSITION" to _uM("send-button" to _uM("property" to "all", "duration" to "0.3s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/checkout.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/checkout.kt deleted file mode 100644 index 5764c6a1..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/checkout.kt +++ /dev/null @@ -1,1397 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.`$emit` as uni__emit -import io.dcloud.uniapp.extapi.`$off` as uni__off -import io.dcloud.uniapp.extapi.`$on` as uni__on -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.redirectTo as uni_redirectTo -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerCheckout : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerCheckout) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerCheckout - val _cache = __ins.renderCache - fun gen_getObjectKeys_fn(obj: Any): UTSArray { - val keys: UTSArray = _uA() - val tempObj = obj as Record - try { - val commonKeys = _uA( - "id", - "name", - "value", - "label", - "key", - "recipient_name", - "phone", - "province", - "city", - "district", - "detail", - "is_default" - ) - run { - var i: Number = 0 - while(i < commonKeys.length){ - val key = commonKeys[i] - if (tempObj[key] != null) { - keys.push(key) - } - i++ - } - } - } - catch (e: Throwable) {} - return keys - } - val getObjectKeys = ::gen_getObjectKeys_fn - val checkoutItems = ref(_uA()) - val selectedAddress = ref(null) - val deliveryOptions = ref(_uA(DeliveryOptionType(id = "express", name = "物流快递", price = 8.00, description = "普通快递配送"), DeliveryOptionType(id = "local", name = "同城配送", price = 15.00, description = "同城极速上门"))) - val selectedDelivery = ref("express") - val selectedCoupon = ref(null) - val remark = ref("") - val showAddressPopup = ref(false) - val addressList = ref(_uA()) - val newAddress = ref(NewAddressForm(recipient_name = "", phone = "", province = "", city = "", district = "", detail = "", is_default = false)) - val showNewAddressForm = ref(false) - val showSaveConfirm = ref(false) - val smartAddressInput = ref("") - val toUTSJSONObject = fun(value: Any): UTSJSONObject { - if (value is UTSJSONObject) { - return value as UTSJSONObject - } - return UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(value ?: UTSJSONObject())), " at pages/mall/consumer/checkout.uvue:446") as UTSJSONObject - } - val shopGroups = computed(fun(): UTSArray { - val groups: UTSArray = _uA() - checkoutItems.value.forEach(fun(item){ - val shopId = item.shop_id ?: "unknown" - var target: ShopGroupType? = null - run { - var i: Number = 0 - while(i < groups.length){ - if (groups[i].shopId == shopId) { - target = groups[i] - break - } - i++ - } - } - if (target == null) { - target = ShopGroupType(shopId = shopId, shopName = item.shop_name ?: "商城优选", merchant_id = item.merchant_id ?: item.shop_id ?: "", items = _uA()) - groups.push(target) - } - target.items.push(item) - } - ) - return groups - } - ) - val totalAmount = computed(fun(): Number { - console.log("计算商品总价,checkoutItems:", checkoutItems.value, " at pages/mall/consumer/checkout.uvue:493") - if (checkoutItems.value.length == 0) { - console.log("商品列表为空,返回0", " at pages/mall/consumer/checkout.uvue:495") - return 0 - } - val total = checkoutItems.value.reduce(fun(sum, item): Number { - if (item == null) { - return sum - } - var price = item.price - if (item.member_price != null && item.member_price > 0 && item.member_price < item.price) { - price = item.member_price - } - val quantity = item.quantity - if (isNaN(price) || isNaN(quantity) || price <= 0 || quantity <= 0) { - console.warn("商品价格或数量无效:", item, "price:", price, "quantity:", quantity, " at pages/mall/consumer/checkout.uvue:513") - return sum - } - val itemTotal = price * quantity - return sum + itemTotal - } - , 0) - return total - } - ) - val deliveryFee = computed(fun(): Number { - val option = deliveryOptions.value.find(fun(opt): Boolean { - return opt.id === selectedDelivery.value - } - ) - return option?.price ?: 0 - } - ) - val discountAmount = computed(fun(): Number { - val coupon = selectedCoupon.value?.template - if (coupon == null) { - return 0 - } - if (totalAmount.value < coupon.min_order_amount) { - return 0 - } - return coupon.discount_value - } - ) - val actualAmount = computed(fun(): Number { - val total = if (UTSAndroid.`typeof`(totalAmount.value) === "number") { - totalAmount.value - } else { - 0 - } - val delivery = if (UTSAndroid.`typeof`(deliveryFee.value) === "number") { - deliveryFee.value - } else { - 0 - } - val discount = if (UTSAndroid.`typeof`(discountAmount.value) === "number") { - discountAmount.value - } else { - 0 - } - var amount = total + delivery - discount - return if (amount > 0) { - amount - } else { - 0 - } - } - ) - watch(checkoutItems, fun(newItems: UTSArray){ - console.log("checkoutItems变化了:", newItems, " at pages/mall/consumer/checkout.uvue:554") - console.log("商品总价计算:", totalAmount.value, " at pages/mall/consumer/checkout.uvue:555") - } - , WatchOptions(deep = true)) - val processCheckoutItems = fun(items: UTSArray): UTSPromise { - return wrapUTSPromise(suspend { - var memberDiscount: Number = 1.0 - try { - val memberInfo = await(supabaseService.getUserMemberInfo()) - val discountRaw = memberInfo.get("discount") - if (discountRaw != null) { - memberDiscount = discountRaw as Number - } - } - catch (e: Throwable) { - console.log("获取会员信息失败,使用默认折扣:", e, " at pages/mall/consumer/checkout.uvue:569") - } - val converted: UTSArray = _uA() - if (items != null && items.length > 0) { - run { - var i: Number = 0 - while(i < items.length){ - val obj = toUTSJSONObject(items[i]) - val id = obj.getString("id") ?: "" - val productId = obj.getString("product_id") ?: obj.getString("productId") ?: id - val skuId = obj.getString("sku_id") ?: obj.getString("skuId") ?: id - val productName = obj.getString("product_name") ?: obj.getString("name") ?: "" - val productImage = obj.getString("product_image") ?: obj.getString("image") ?: "" - var specs: Any = UTSJSONObject() - val skuSpecsAny = obj.get("sku_specifications") - if (skuSpecsAny != null) { - specs = skuSpecsAny - } else { - val specAny = obj.get("spec") - if (specAny != null) { - specs = (object : UTSJSONObject() { - var spec = specAny - } as Any) - } - } - var price: Number = 0 - val priceAny = obj.get("price") - if (priceAny != null) { - val parsed = parseFloat(priceAny.toString()) - if (isNaN(parsed) == false) { - price = parsed - } - } - var quantity: Number = 1 - val quantityAny = obj.get("quantity") - if (quantityAny != null) { - val parsedQ = parseInt(quantityAny.toString()) - if (isNaN(parsedQ) == false && parsedQ >= 1) { - quantity = parsedQ - } - } - val shopId = obj.getString("shop_id") ?: obj.getString("shopId") ?: "unknown" - val shopName = obj.getString("shop_name") ?: obj.getString("shopName") ?: "" - val merchantId = obj.getString("merchant_id") ?: obj.getString("merchantId") ?: "" - var memberPrice: Number = 0 - if (memberDiscount > 0 && memberDiscount < 1 && price > 0) { - memberPrice = Math.round(price * memberDiscount * 100) / 100 - } - converted.push(CheckoutItemType(id = id, product_id = productId, sku_id = skuId, product_name = productName, product_image = productImage, sku_specifications = specs, price = parseFloat(price.toFixed(2)), original_price = parseFloat(price.toFixed(2)), member_price = memberPrice, quantity = quantity, shop_id = shopId, shop_name = shopName, merchant_id = merchantId)) - i++ - } - } - } - checkoutItems.value = converted - if (checkoutItems.value.length > 0) { - console.log("清洗后商品价格明细:", " at pages/mall/consumer/checkout.uvue:636") - checkoutItems.value.forEach(fun(item: CheckoutItemType, index: Number){ - console.log("商品" + index + ":", item.product_name, "原价:", item.price, "会员价:", item.member_price, "shop:", item.shop_id, " at pages/mall/consumer/checkout.uvue:638") - } - ) - } - }) - } - fun gen_getCurrentUserId_fn(): String { - val userId = supabaseService.getCurrentUserId() - return userId ?: "" - } - val getCurrentUserId = ::gen_getCurrentUserId_fn - onMounted(fun(){ - uni__on("addressUpdated", fun(updatedAddressList: UTSArray){ - addressList.value = updatedAddressList - if (selectedAddress.value == null && addressList.value.length > 0) { - var defaultAddress: AddressItem? = null - run { - var i: Number = 0 - while(i < addressList.value.length){ - val addr = addressList.value[i] - if (addr.is_default) { - defaultAddress = addr - break - } - i++ - } - } - if (defaultAddress != null) { - selectedAddress.value = defaultAddress - } - } - } - ) - } - ) - onUnmounted(fun(){ - uni__off("addressUpdated", null) - uni__off("checkoutPageShow", null) - uni_removeStorageSync("checkout_type") - uni_removeStorageSync("checkout_items") - } - ) - fun gen_loadDefaultAddress_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val currentUserId = getCurrentUserId() - if (currentUserId != "") { - val supabaseAddresses = await(supabaseService.getAddresses()) - if (supabaseAddresses != null && supabaseAddresses.length > 0) { - val defaultAddress = supabaseAddresses.find(fun(addr: UserAddress): Boolean { - return addr.is_default === true - } - ) - if (defaultAddress != null) { - val addr = AddressItem(id = defaultAddress.id, recipient_name = defaultAddress.recipient_name, phone = defaultAddress.phone, province = defaultAddress.province, city = defaultAddress.city, district = defaultAddress.district, detail = defaultAddress.detail_address, is_default = defaultAddress.is_default) - selectedAddress.value = addr - } else { - val firstAddress = supabaseAddresses[0] - val addr = AddressItem(id = firstAddress.id, recipient_name = firstAddress.recipient_name, phone = firstAddress.phone, province = firstAddress.province, city = firstAddress.city, district = firstAddress.district, detail = firstAddress.detail_address, is_default = firstAddress.is_default) - selectedAddress.value = addr - } - val localAddresses: UTSArray = _uA() - run { - var i: Number = 0 - while(i < supabaseAddresses.length){ - val addr = supabaseAddresses[i] - localAddresses.push(object : UTSJSONObject() { - var id = addr.id - var name = addr.recipient_name - var phone = addr.phone - var province = addr.province - var city = addr.city - var district = addr.district - var detail = addr.detail_address - var isDefault = addr.is_default - }) - i++ - } - } - uni_setStorageSync("addresses", JSON.stringify(localAddresses)) - } - } - if (selectedAddress.value == null) { - val storedAddresses = uni_getStorageSync("addresses") - val storedAddressesStr = if (storedAddresses != null) { - storedAddresses.toString() - } else { - "" - } - if (storedAddressesStr != "") { - try { - val addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddressesStr), " at pages/mall/consumer/checkout.uvue:746") as UTSArray - if (addresses != null && addresses.length > 0) { - var picked: UTSJSONObject? = null - run { - var i: Number = 0 - while(i < addresses.length){ - val obj = toUTSJSONObject(addresses[i]) - val isDef = obj.getBoolean("isDefault") ?: obj.getBoolean("is_default") ?: false - if (isDef) { - picked = obj - break - } - i++ - } - } - if (picked == null) { - picked = toUTSJSONObject(addresses[0]) - } - val addr = AddressItem(id = picked.getString("id") ?: "", recipient_name = picked.getString("recipient_name") ?: picked.getString("name") ?: "", phone = picked.getString("phone") ?: "", province = picked.getString("province") ?: "", city = picked.getString("city") ?: "", district = picked.getString("district") ?: "", detail = picked.getString("detail") ?: picked.getString("detail_address") ?: "", is_default = picked.getBoolean("isDefault") ?: picked.getBoolean("is_default") ?: false) - selectedAddress.value = addr - } - } - catch (err: Throwable) { - console.error("解析本地地址数据失败:", err, " at pages/mall/consumer/checkout.uvue:772") - } - } - } - if (selectedAddress.value == null) { - val mockAddresses = _uA( - MockAddress(id = "addr_001", name = "张三", phone = "13800138001", province = "北京市", city = "北京市", district = "朝阳区", detail = "建国路88号SOHO现代城A座1001", isDefault = true), - MockAddress(id = "addr_002", name = "李四", phone = "13900139001", province = "上海市", city = "上海市", district = "浦东新区", detail = "陆家嘴环路1000号汇亚大厦20层", isDefault = false) - ) as UTSArray - uni_setStorageSync("addresses", JSON.stringify(mockAddresses)) - val first = mockAddresses[0] - val addr = AddressItem(id = first.id, recipient_name = first.name, phone = first.phone, province = first.province, city = first.city, district = first.district, detail = first.detail, is_default = first.isDefault) - selectedAddress.value = addr - } - } - catch (error: Throwable) { - console.error("加载地址失败:", error, " at pages/mall/consumer/checkout.uvue:822") - } - }) - } - val loadDefaultAddress = ::gen_loadDefaultAddress_fn - val isLoggedIn = computed(fun(): Boolean { - val userId = getCurrentUserId() - return userId != "" - } - ) - val getFullAddress = fun(address: AddressItem): String { - return "" + address.province + address.city + address.district + address.detail - } - fun gen_loadAddressList_fn(): UTSPromise { - return wrapUTSPromise(suspend { - console.log("[loadAddressList] 开始加载地址列表", " at pages/mall/consumer/checkout.uvue:839") - try { - val currentUserId = getCurrentUserId() - console.log("[loadAddressList] currentUserId:", currentUserId, " at pages/mall/consumer/checkout.uvue:842") - if (currentUserId != "") { - val supabaseAddresses = await(supabaseService.getAddresses()) - console.log("[loadAddressList] supabaseAddresses 数量:", if (supabaseAddresses != null) { - supabaseAddresses.length - } else { - 0 - } - , " at pages/mall/consumer/checkout.uvue:846") - if (supabaseAddresses != null && supabaseAddresses.length > 0) { - val list: UTSArray = _uA() - val localAddresses: UTSArray = _uA() - run { - var i: Number = 0 - while(i < supabaseAddresses.length){ - val addr = supabaseAddresses[i] - console.log("[loadAddressList] 地址", i, ":", addr.recipient_name, addr.phone, addr.detail_address, " at pages/mall/consumer/checkout.uvue:853") - list.push(AddressItem(id = addr.id, recipient_name = addr.recipient_name, phone = addr.phone, province = addr.province, city = addr.city, district = addr.district, detail = addr.detail_address, is_default = addr.is_default)) - localAddresses.push(object : UTSJSONObject() { - var id = addr.id - var name = addr.recipient_name - var phone = addr.phone - var province = addr.province - var city = addr.city - var district = addr.district - var detail = addr.detail_address - var isDefault = addr.is_default - }) - i++ - } - } - addressList.value = list - console.log("[loadAddressList] addressList.value 设置完成, 数量:", addressList.value.length, " at pages/mall/consumer/checkout.uvue:876") - uni_setStorageSync("addresses", JSON.stringify(localAddresses)) - } - } - if (addressList.value.length == 0) { - val storedAddresses = uni_getStorageSync("addresses") - val storedAddressesStr = if (storedAddresses != null) { - storedAddresses.toString() - } else { - "" - } - if (storedAddressesStr != "") { - try { - val addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddressesStr), " at pages/mall/consumer/checkout.uvue:886") as UTSArray - if (addresses != null && addresses.length > 0) { - val list: UTSArray = _uA() - run { - var i: Number = 0 - while(i < addresses.length){ - val obj = toUTSJSONObject(addresses[i]) - list.push(AddressItem(id = obj.getString("id") ?: "", recipient_name = obj.getString("recipient_name") ?: obj.getString("name") ?: "", phone = obj.getString("phone") ?: "", province = obj.getString("province") ?: "", city = obj.getString("city") ?: "", district = obj.getString("district") ?: "", detail = obj.getString("detail") ?: obj.getString("detail_address") ?: "", is_default = obj.getBoolean("isDefault") ?: obj.getBoolean("is_default") ?: false)) - i++ - } - } - addressList.value = list - } else { - addressList.value = _uA() - } - } catch (err: Throwable) { - addressList.value = _uA() - } - } else { - addressList.value = _uA() - } - } - if (addressList.value.length == 0) { - val mockAddresses = _uA( - MockAddress(id = "addr_001", name = "张三", phone = "13800138001", province = "北京市", city = "北京市", district = "朝阳区", detail = "建国路88号SOHO现代城A座1001", isDefault = true), - MockAddress(id = "addr_002", name = "李四", phone = "13900139001", province = "上海市", city = "上海市", district = "浦东新区", detail = "陆家嘴环路1000号汇亚大厦20层", isDefault = false) - ) as UTSArray - uni_setStorageSync("addresses", JSON.stringify(mockAddresses)) - val list: UTSArray = _uA() - run { - var i: Number = 0 - while(i < mockAddresses.length){ - val addr = mockAddresses[i] - list.push(AddressItem(id = addr.id, recipient_name = addr.name, phone = addr.phone, province = addr.province, city = addr.city, district = addr.district, detail = addr.detail, is_default = addr.isDefault)) - i++ - } - } - addressList.value = list - } - } - catch (error: Throwable) { - console.error("加载地址列表失败:", error, " at pages/mall/consumer/checkout.uvue:957") - } - }) - } - val loadAddressList = ::gen_loadAddressList_fn - fun gen_loadFromLocalStorage_fn(): UTSPromise { - return wrapUTSPromise(suspend { - val cartData = uni_getStorageSync("cart") - val cartDataStr = if (cartData != null) { - cartData.toString() - } else { - "" - } - if (cartDataStr != "") { - try { - val cartItems = UTSAndroid.consoleDebugError(JSON.parse(cartDataStr), " at pages/mall/consumer/checkout.uvue:967") as UTSArray - val selectedCartItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < cartItems.length){ - val obj = toUTSJSONObject(cartItems[i]) - val selected = obj.getBoolean("selected") ?: false - if (selected) { - selectedCartItems.push(obj) - } - i++ - } - } - if (selectedCartItems.length > 0) { - await(processCheckoutItems(selectedCartItems)) - } - } - catch (e: Throwable) { - console.error("解析购物车数据失败:", e, " at pages/mall/consumer/checkout.uvue:978") - } - } - loadDefaultAddress() - }) - } - val loadFromLocalStorage = ::gen_loadFromLocalStorage_fn - fun gen_loadCheckoutData_fn(): Unit { - loadFromLocalStorage() - } - val loadCheckoutData = ::gen_loadCheckoutData_fn - fun gen_initCheckoutData_fn(): UTSPromise { - return wrapUTSPromise(suspend { - var dataLoaded = false - val checkoutTypeAny = uni_getStorageSync("checkout_type") - val checkoutType = if (checkoutTypeAny != null) { - checkoutTypeAny.toString() - } else { - "" - } - if (checkoutType == "buy_now" || checkoutType == "cart") { - console.log("检测到结算模式(" + checkoutType + "),从Storage加载数据", " at pages/mall/consumer/checkout.uvue:995") - val itemsStrAny = uni_getStorageSync("checkout_items") - val itemsStr = if (itemsStrAny != null) { - itemsStrAny.toString() - } else { - "" - } - if (itemsStr != "") { - try { - val items = UTSAndroid.consoleDebugError(JSON.parse(itemsStr as String), " at pages/mall/consumer/checkout.uvue:1000") - console.log("从Storage加载的商品数据:", items, " at pages/mall/consumer/checkout.uvue:1001") - if (items != null && UTSArray.isArray(items) && (items as UTSArray).length > 0) { - await(processCheckoutItems(items as UTSArray)) - dataLoaded = true - } - } - catch (e: Throwable) { - console.error("解析结算数据失败", e, " at pages/mall/consumer/checkout.uvue:1007") - } - } - } - if (dataLoaded == false) { - console.log("未找到预结算数据,尝试从购物车本地存储加载", " at pages/mall/consumer/checkout.uvue:1013") - await(loadFromLocalStorage()) - } - loadDefaultAddress() - loadAddressList() - }) - } - val initCheckoutData = ::gen_initCheckoutData_fn - onLoad__1(fun(options: Any){ - initCheckoutData() - } - ) - fun gen_onShow_fn(): Unit { - val userId = getCurrentUserId() - if (userId != "") { - loadDefaultAddress() - loadAddressList() - } - } - val onShow__1 = ::gen_onShow_fn - uni__on("checkoutPageShow", onShow__1) - val handleSelectAddress = fun(address: AddressItem){ - selectedAddress.value = address - showAddressPopup.value = false - } - val handleAddNewAddress = fun(){ - showNewAddressForm.value = true - } - val saveNewAddress = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (newAddress.value.recipient_name == "" || newAddress.value.phone == "" || newAddress.value.detail == "") { - uni_showToast(ShowToastOptions(title = "请填写完整信息", icon = "none")) - return@w1 - } - showSaveConfirm.value = true - }) - } - val handleSaveConfirm = fun(save: Boolean): UTSPromise { - return wrapUTSPromise(suspend { - showSaveConfirm.value = false - val newAddressData = NewAddressData(id = "addr_" + Date.now(), name = newAddress.value.recipient_name, phone = newAddress.value.phone, province = newAddress.value.province, city = newAddress.value.city, district = newAddress.value.district, detail = newAddress.value.detail, isDefault = newAddress.value.is_default) - if (save) { - val storedAddresses = uni_getStorageSync("addresses") - var addresses: UTSArray = _uA() - val storedAddressesStr = if (storedAddresses != null) { - storedAddresses.toString() - } else { - "" - } - if (storedAddressesStr != "") { - try { - addresses = UTSAndroid.consoleDebugError(JSON.parse(storedAddressesStr), " at pages/mall/consumer/checkout.uvue:1081") as UTSArray - } - catch (e: Throwable) { - addresses = _uA() - } - } - val normalized: UTSArray = _uA() - run { - var i: Number = 0 - while(i < addresses.length){ - val obj = toUTSJSONObject(addresses[i]) - val isDef = obj.getBoolean("isDefault") ?: obj.getBoolean("is_default") ?: false - normalized.push(object : UTSJSONObject() { - var id = obj.getString("id") ?: "" - var name = obj.getString("name") ?: obj.getString("recipient_name") ?: "" - var phone = obj.getString("phone") ?: "" - var province = obj.getString("province") ?: "" - var city = obj.getString("city") ?: "" - var district = obj.getString("district") ?: "" - var detail = obj.getString("detail") ?: obj.getString("detail_address") ?: "" - var isDefault = if (newAddressData.isDefault) { - false - } else { - isDef as Boolean - } - var label = obj.getString("label") ?: "" - }) - i++ - } - } - if (normalized.length === 0 && newAddressData.isDefault == false) { - newAddressData.isDefault = true - } - normalized.unshift(newAddressData) - uni_setStorageSync("addresses", JSON.stringify(normalized)) - val updatedList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < normalized.length){ - val obj = toUTSJSONObject(normalized[i]) - updatedList.push(AddressItem(id = obj.getString("id") ?: "", recipient_name = obj.getString("recipient_name") ?: obj.getString("name") ?: "", phone = obj.getString("phone") ?: "", province = obj.getString("province") ?: "", city = obj.getString("city") ?: "", district = obj.getString("district") ?: "", detail = obj.getString("detail") ?: obj.getString("detail_address") ?: "", is_default = obj.getBoolean("isDefault") ?: obj.getBoolean("is_default") ?: false)) - i++ - } - } - uni__emit("addressUpdated", updatedList) - } - val checkoutFormatAddress = AddressItem(id = newAddressData.id ?: "", recipient_name = newAddressData.name ?: "", phone = newAddressData.phone ?: "", province = newAddressData.province, city = newAddressData.city, district = newAddressData.district, detail = newAddressData.detail, is_default = newAddressData.isDefault) - if (checkoutFormatAddress.is_default) { - run { - var i: Number = 0 - while(i < addressList.value.length){ - addressList.value[i].is_default = false - i++ - } - } - } - addressList.value.unshift(checkoutFormatAddress) - if (checkoutFormatAddress.is_default || selectedAddress.value == null) { - selectedAddress.value = checkoutFormatAddress - } - newAddress.value = NewAddressForm(recipient_name = "", phone = "", province = "", city = "", district = "", detail = "", is_default = false) - smartAddressInput.value = "" - showNewAddressForm.value = false - uni_showToast(ShowToastOptions(title = "地址保存成功", icon = "success")) - }) - } - val parseSmartAddress = fun(){ - val input = smartAddressInput.value.trim() - if (input == "") { - return - } - newAddress.value.recipient_name = "" - newAddress.value.phone = "" - newAddress.value.province = "" - newAddress.value.city = "" - newAddress.value.district = "" - newAddress.value.detail = "" - val phoneRegex = UTSRegExp("(1[3-9]\\d{9})", "g") - val phoneMatches = input.match(phoneRegex) - if (phoneMatches != null && phoneMatches.length > 0) { - newAddress.value.phone = phoneMatches[0] ?: "" - } - val nameRegex = UTSRegExp("([\\u4e00-\\u9fa5]{2,4})", "g") - val nameMatches = input.match(nameRegex) - if (nameMatches != null && nameMatches.length > 0) { - newAddress.value.recipient_name = nameMatches[0] ?: "" - } - var addressText = input - if (newAddress.value.recipient_name != "") { - addressText = addressText.replace(newAddress.value.recipient_name, "") - } - if (newAddress.value.phone != "") { - addressText = addressText.replace(newAddress.value.phone, "") - } - addressText = addressText.replace(UTSRegExp("[,,;;\\s]+", "g"), " ").trim() - val patterns = _uA( - UTSRegExp("^(.*?省)?(.*?市)?(.*?[区县])?(.*)\$", ""), - UTSRegExp("^(.*?省)?(.*?市)?(.*)\$", "") - ) - for(pattern in resolveUTSValueIterator(patterns)){ - val match = addressText.match(pattern) - if (match != null) { - val province = match[1] - val city = match[2] - val district = match[3] - val detail = match[4] - if (province != null) { - newAddress.value.province = province.replace("省", "").trim() - } - if (city != null) { - newAddress.value.city = city.replace("市", "").trim() - } - if (district != null) { - newAddress.value.district = district.trim() - } - if (detail != null) { - newAddress.value.detail = detail.trim() - } - if (newAddress.value.detail == "" && district != null && detail != null) { - newAddress.value.detail = detail.trim() - } - break - } - } - if (newAddress.value.province == "" && newAddress.value.city == "" && newAddress.value.district == "") { - val parts = addressText.split(UTSRegExp("[省市县区]", "")) - if (parts.length >= 2) { - newAddress.value.province = parts[0] ?: "" - newAddress.value.city = parts[1] ?: "" - newAddress.value.detail = parts.slice(2).join("").trim() - if (newAddress.value.detail == "") { - newAddress.value.detail = addressText - } - } else { - newAddress.value.detail = addressText - } - } - if (newAddress.value.detail == "" && addressText.trim() != "") { - newAddress.value.detail = addressText.trim() - } - } - val cancelNewAddress = fun(){ - showNewAddressForm.value = false - newAddress.value = NewAddressForm(recipient_name = "", phone = "", province = "", city = "", district = "", detail = "", is_default = false) - smartAddressInput.value = "" - } - fun gen_formatSpecs_fn(specs: Any): String { - if (specs == null) { - return "" - } - try { - val specsStr = JSON.stringify(specs) - if (specsStr == "{}" || specsStr == "[]" || specsStr == "\"\"" || specsStr == "") { - return "" - } - val specsObj = UTSAndroid.consoleDebugError(JSON.parse(specsStr), " at pages/mall/consumer/checkout.uvue:1269") as Record - val parts: UTSArray = _uA() - val possibleKeys = _uA( - "颜色", - "尺寸", - "规格", - "型号", - "版本", - "材质", - "款式", - "color", - "size", - "spec", - "version", - "style" - ) - run { - var i: Number = 0 - while(i < possibleKeys.length){ - val key = possibleKeys[i] - val value = specsObj[key] - if (value != null && value.toString() != "") { - parts.push("" + key + ": " + value.toString()) - } - i++ - } - } - if (parts.length === 0) { - val keyValueRegex = UTSRegExp("\"([^\"]+)\":\\s*\"([^\"]+)\"", "g") - var match: RegExpExecArray? = null - while(true){ - match = keyValueRegex.exec(specsStr) - if (match == null) { - break - } - val key = match[1] - val value = match[2] - if (key != null && value != null && value != "") { - parts.push("" + key + ": " + value) - } - } - } - if (parts.length === 0) { - return "" - } - return parts.join("; ") - } - catch (e: Throwable) { - return "" - } - } - val formatSpecs = ::gen_formatSpecs_fn - val selectDelivery = fun(option: DeliveryOptionType){ - selectedDelivery.value = option.id - } - val selectCoupon = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons", success = fun(res: Any){})) - uni__on("couponSelected", fun(coupon: Any){ - selectedCoupon.value = coupon as UserCouponType - uni__off("couponSelected", null) - } - ) - } - val submitOrder = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (selectedAddress.value == null) { - uni_showToast(ShowToastOptions(title = "请选择收货地址", icon = "none")) - return@w1 - } - if (checkoutItems.value.length === 0) { - uni_showToast(ShowToastOptions(title = "订单中没有商品", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "提交中...")) - try { - val userId = supabaseService.getCurrentUserId() - if (userId == null || userId == "") { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "请先登录", icon = "none")) - return@w1 - } - console.log("[submitOrder] 开始创建订单, userId:", userId, " at pages/mall/consumer/checkout.uvue:1354") - console.log("[submitOrder] shopGroups数量:", shopGroups.value.length, " at pages/mall/consumer/checkout.uvue:1355") - val groups: UTSArray = _uA() - run { - var i: Number = 0 - while(i < shopGroups.value.length){ - val group = shopGroups.value[i] - console.log("[submitOrder] 处理店铺组 " + i + ":", object : UTSJSONObject() { - var shopId = group.shopId - var shopName = group.shopName - var merchant_id = group.merchant_id - var itemsCount = group.items.length - }, " at pages/mall/consumer/checkout.uvue:1360") - val items: UTSArray = _uA() - run { - var j: Number = 0 - while(j < group.items.length){ - val item = group.items[j] - items.push(object : UTSJSONObject() { - var id = item.id - var product_id = item.product_id - var sku_id = item.sku_id - var quantity = item.quantity - var price = item.price - var member_price = item.member_price - var product_name = item.product_name - var product_image = item.product_image - var specifications = item.sku_specifications - }) - j++ - } - } - val finalMerchantId = if ((group.merchant_id != null && group.merchant_id != "")) { - group.merchant_id - } else { - group.shopId - } - console.log("[submitOrder] 店铺组 " + i + " 最终使用的 merchant_id:", finalMerchantId, " at pages/mall/consumer/checkout.uvue:1382") - groups.push(_uO("merchant_id" to finalMerchantId, "shopId" to group.shopId, "shopName" to group.shopName, "items" to items)) - i++ - } - } - console.log("[submitOrder] 准备传递的 groups 数量:", groups.length, " at pages/mall/consumer/checkout.uvue:1391") - val result = await(supabaseService.createOrdersByShop(ShopOrderParams(shipping_address = if (selectedAddress.value != null) { - toUTSJSONObject(selectedAddress.value!!) - } else { - UTSJSONObject() - } - , shopGroups = groups, deliveryFee = deliveryFee.value, discountAmount = discountAmount.value))) - uni_hideLoading() - console.log("[submitOrder] 创建结果 success:", result.success, " at pages/mall/consumer/checkout.uvue:1402") - if (result.success) { - try { - uni_removeStorageSync("checkout_items") - uni_removeStorageSync("checkout_type") - } catch (e: Throwable) { - console.error(e, " at pages/mall/consumer/checkout.uvue:1408") - } - val orderIds = result.orderIds - if (orderIds.length === 1) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/payment?orderId=" + orderIds[0] + "&amount=" + actualAmount.value)) - } else { - uni_showToast(ShowToastOptions(title = "成功创建" + orderIds.length + "个订单", icon = "success")) - setTimeout(fun(){ - uni_redirectTo(RedirectToOptions(url = "/pages/mall/consumer/orders")) - }, 1500) - } - } else { - val errMsg = if ((result.error != null && result.error !== "")) { - result.error!! - } else { - "创建订单失败" - } - console.error("[submitOrder] 订单创建失败:", errMsg, " at pages/mall/consumer/checkout.uvue:1423") - uni_showToast(ShowToastOptions(title = errMsg, icon = "none")) - } - } - catch (err: Throwable) { - uni_hideLoading() - console.error("[submitOrder] 提交订单错误:", err, " at pages/mall/consumer/checkout.uvue:1429") - val errMsg = if ((err.message != null && err.message !== "")) { - (err.message as String) - } else { - "提交订单失败" - } - uni_showToast(ShowToastOptions(title = errMsg, icon = "none")) - } - }) - } - val selectAddress = fun(){ - showAddressPopup.value = true - } - val goToLogin = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/login/login")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "checkout-page"), _uA( - _cE("scroll-view", _uM("class" to "checkout-content", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "section-card address-section", "onClick" to selectAddress), _uA( - _cE("view", _uM("class" to "address-icon-wrapper"), _uA( - _cE("text", _uM("class" to "location-icon"), "📍") - )), - if (isTrue(selectedAddress.value)) { - _cE("view", _uM("key" to 0, "class" to "address-info"), _uA( - _cE("view", _uM("class" to "address-header"), _uA( - _cE("text", _uM("class" to "recipient"), _tD(selectedAddress.value!!!!.recipient_name), 1), - _cE("text", _uM("class" to "phone"), _tD(selectedAddress.value!!!!.phone), 1), - if (isTrue(selectedAddress.value!!!!.is_default)) { - _cE("view", _uM("key" to 0, "class" to "default-tag"), _uA( - _cE("text", _uM("class" to "tag-text"), "默认") - )) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "address-detail"), _tD(getFullAddress(selectedAddress.value!!!!)), 1) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "no-address"), _uA( - _cE("text", _uM("class" to "no-address-text"), "请选择收货地址") - )) - } - , - _cE("view", _uM("class" to "address-arrow-wrapper"), _uA( - _cE("text", _uM("class" to "address-arrow"), "›") - )) - )), - _cE("view", _uM("class" to "section-card products-section"), _uA( - if (shopGroups.value.length > 0) { - _cE("view", _uM("key" to 0), _uA( - _cE(Fragment, null, RenderHelpers.renderList(shopGroups.value, fun(group, __key, __index, _cached): Any { - return _cE("view", _uM("key" to group.shopId, "class" to "shop-group"), _uA( - _cE("view", _uM("class" to "shop-header"), _uA( - _cE("text", _uM("class" to "shop-icon"), "🏪"), - _cE("text", _uM("class" to "shop-name"), _tD(group.shopName), 1) - )), - _cE(Fragment, null, RenderHelpers.renderList(group.items, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "product-item"), _uA( - _cE("image", _uM("class" to "product-image", "src" to item.product_image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("view", _uM("class" to "product-name-row"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(item.product_name), 1), - _cE("text", _uM("class" to "product-price"), "¥" + _tD(item.price), 1) - )), - _cE("view", _uM("class" to "product-spec-row"), _uA( - if (isTrue(item.sku_specifications)) { - _cE("text", _uM("key" to 0, "class" to "product-spec"), _tD(formatSpecs(item.sku_specifications)), 1) - } else { - _cC("v-if", true) - }, - _cE("text", _uM("class" to "product-quantity"), "×" + _tD(item.quantity), 1) - )), - _cE("view", _uM("class" to "item-subtotal-row"), _uA( - _cE("text", _uM("class" to "item-subtotal-label"), "小计:"), - _cE("text", _uM("class" to "item-subtotal-price"), "¥" + _tD((item.price * item.quantity).toFixed(2)), 1) - )) - )) - )) - }), 128) - )) - }), 128) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "no-products"), _uA( - _cE("text", _uM("class" to "no-products-text"), "暂无商品信息") - )) - } - )), - _cE("view", _uM("class" to "section-card delivery-section"), _uA( - _cE("view", _uM("class" to "delivery-row"), _uA( - _cE("text", _uM("class" to "section-title"), "配送方式"), - _cE("view", _uM("class" to "delivery-selector"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(deliveryOptions.value, fun(option, __key, __index, _cached): Any { - return _cE("view", _uM("key" to option.id, "class" to _nC(_uA( - "delivery-pill", - _uM("selected" to (selectedDelivery.value === option.id)) - )), "onClick" to fun(){ - selectDelivery(option) - } - ), _uA( - _cE("text", _uM("class" to "pill-name"), _tD(option.name), 1) - ), 10, _uA( - "onClick" - )) - } - ), 128) - )) - )), - if (isTrue(selectedDelivery.value)) { - _cE("view", _uM("key" to 0, "class" to "delivery-detail"), _uA( - _cE("text", _uM("class" to "detail-desc"), _tD(deliveryOptions.value.find(fun(opt): Boolean { - return opt.id === selectedDelivery.value - })?.description), 1), - _cE("text", _uM("class" to "detail-price"), "费用: ¥" + _tD(deliveryOptions.value.find(fun(opt): Boolean { - return opt.id === selectedDelivery.value - })?.price?.toFixed(2)), 1) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "section-card coupon-section", "onClick" to selectCoupon), _uA( - _cE("view", _uM("class" to "coupon-row"), _uA( - _cE("text", _uM("class" to "section-title"), "优惠券"), - _cE("view", _uM("class" to "coupon-right-content"), _uA( - if (selectedCoupon.value != null) { - _cE("text", _uM("key" to 0, "class" to "coupon-selected-name"), _tD(selectedCoupon.value!!.template?.name ?: "已选择优惠券"), 1) - } else { - _cE("text", _uM("key" to 1, "class" to "coupon-placeholder"), "暂无可用优惠券") - } - , - _cE("text", _uM("class" to "arrow-icon"), "›") - )) - )) - )), - _cE("view", _uM("class" to "section-card remark-section"), _uA( - _cE("view", _uM("class" to "remark-row"), _uA( - _cE("text", _uM("class" to "section-title"), "买家留言"), - _cE("input", _uM("class" to "remark-input-compact", "modelValue" to remark.value, "onInput" to fun(`$event`: UniInputEvent){ - remark.value = `$event`.detail.value - } - , "placeholder" to "选填,给商家留言", "maxlength" to "100"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "section-card price-section"), _uA( - _cE("view", _uM("class" to "price-grid"), _uA( - _cE("view", _uM("class" to "price-item-inline"), _uA( - _cE("text", _uM("class" to "price-item-label"), "商品"), - _cE("text", _uM("class" to "price-item-value"), "¥" + _tD(totalAmount.value.toFixed(2)), 1) - )), - _cE("view", _uM("class" to "price-item-inline"), _uA( - _cE("text", _uM("class" to "price-item-label"), "运费"), - _cE("text", _uM("class" to "price-item-value"), "+¥" + _tD(deliveryFee.value.toFixed(2)), 1) - )), - if (discountAmount.value > 0) { - _cE("view", _uM("key" to 0, "class" to "price-item-inline"), _uA( - _cE("text", _uM("class" to "price-item-label"), "优惠"), - _cE("text", _uM("class" to "price-item-value discount-text"), "-¥" + _tD(discountAmount.value.toFixed(2)), 1) - )) - } else { - _cC("v-if", true) - } - )) - )), - _cE("view", _uM("class" to "safe-area-bottom")) - )), - _cE("view", _uM("class" to "footer-action-bar"), _uA( - _cE("view", _uM("class" to "footer-left"), _uA( - _cE("text", _uM("class" to "footer-total-label"), "合计:"), - _cE("text", _uM("class" to "footer-currency"), "¥"), - _cE("text", _uM("class" to "footer-price"), _tD(actualAmount.value.toFixed(2)), 1) - )), - _cE("button", _uM("class" to "footer-submit-btn", "onClick" to submitOrder), "提交订单") - )), - if (isTrue(showAddressPopup.value)) { - _cE("view", _uM("key" to 0, "class" to "address-popup-mask", "onClick" to fun(){ - showAddressPopup.value = false - }), _uA( - _cE("view", _uM("class" to "address-popup", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "选择收货地址"), - _cE("text", _uM("class" to "popup-close", "onClick" to fun(){ - showAddressPopup.value = false - }), "×", 8, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("class" to "address-list-container", "direction" to "vertical", "scroll-with-animation" to true), _uA( - if (isLoggedIn.value == false) { - _cE("view", _uM("key" to 0, "class" to "login-prompt", "onClick" to goToLogin), _uA( - _cE("text", _uM("class" to "login-prompt-icon"), "🔒"), - _cE("text", _uM("class" to "login-prompt-text"), "您尚未登录,点击登录以同步服务器地址"), - _cE("text", _uM("class" to "login-prompt-arrow"), "›") - )) - } else { - _cC("v-if", true) - }, - if (isTrue(isLoggedIn.value)) { - _cE("view", _uM("key" to 1), _uA( - if (addressList.value.length > 0) { - _cE("view", _uM("key" to 0), _uA( - _cE(Fragment, null, RenderHelpers.renderList(addressList.value, fun(address, __key, __index, _cached): Any { - return _cE("view", _uM("key" to address.id, "class" to "popup-address-item", "onClick" to fun(){ - handleSelectAddress(address) - }), _uA( - _cE("view", _uM("class" to "popup-address-header"), _uA( - _cE("text", _uM("class" to "popup-address-name"), _tD(address.recipient_name), 1), - _cE("text", _uM("class" to "popup-address-phone"), _tD(address.phone), 1), - if (isTrue(address.is_default)) { - _cE("view", _uM("key" to 0, "class" to "popup-default-tag"), _uA( - _cE("text", _uM("class" to "popup-tag-text"), "默认") - )) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "popup-address-detail"), _tD(getFullAddress(address)), 1), - if (isTrue(selectedAddress.value != null && selectedAddress.value!!.id === address.id)) { - _cE("view", _uM("key" to 0, "class" to "popup-selected-indicator"), _uA( - _cE("text", null, "✓") - )) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "popup-empty-address"), _uA( - _cE("text", _uM("class" to "popup-empty-icon"), "📍"), - _cE("text", _uM("class" to "popup-empty-text"), "暂无收货地址") - )) - } - )) - } else { - _cC("v-if", true) - }, - if (isTrue(isLoggedIn.value == false && addressList.value.length > 0)) { - _cE("view", _uM("key" to 2), _uA( - _cE("text", _uM("class" to "local-address-title"), "本地地址(未同步)"), - _cE(Fragment, null, RenderHelpers.renderList(addressList.value, fun(address, __key, __index, _cached): Any { - return _cE("view", _uM("key" to address.id, "class" to "popup-address-item", "onClick" to fun(){ - handleSelectAddress(address) - }), _uA( - _cE("view", _uM("class" to "popup-address-header"), _uA( - _cE("text", _uM("class" to "popup-address-name"), _tD(address.recipient_name), 1), - _cE("text", _uM("class" to "popup-address-phone"), _tD(address.phone), 1), - if (isTrue(address.is_default)) { - _cE("view", _uM("key" to 0, "class" to "popup-default-tag"), _uA( - _cE("text", _uM("class" to "popup-tag-text"), "默认") - )) - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "popup-address-detail"), _tD(getFullAddress(address)), 1), - if (isTrue(selectedAddress.value != null && selectedAddress.value!!.id === address.id)) { - _cE("view", _uM("key" to 0, "class" to "popup-selected-indicator"), _uA( - _cE("text", null, "✓") - )) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(isLoggedIn.value && addressList.value.length === 0)) { - _cE("view", _uM("key" to 3, "class" to "popup-empty-address"), _uA( - _cE("text", _uM("class" to "popup-empty-icon"), "📍"), - _cE("text", _uM("class" to "popup-empty-text"), "暂无收货地址") - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "popup-add-address-btn", "onClick" to handleAddNewAddress), _uA( - _cE("text", _uM("class" to "popup-btn-icon"), "+"), - _cE("text", _uM("class" to "popup-btn-text"), "新建收货地址") - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showNewAddressForm.value)) { - _cE("view", _uM("key" to 1, "class" to "address-form-mask", "onClick" to cancelNewAddress), _uA( - _cE("view", _uM("class" to "address-form-popup", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "form-header"), _uA( - _cE("text", _uM("class" to "form-title"), "新建收货地址"), - _cE("view", _uM("class" to "form-close-btn", "onClick" to cancelNewAddress), _uA( - _cE("text", _uM("class" to "form-close-icon"), "✕") - )) - )), - _cE("scroll-view", _uM("class" to "form-content", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "form-section"), _uA( - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "form-label"), "收货人"), - _cE("input", _uM("class" to "form-input", "modelValue" to newAddress.value.recipient_name, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.recipient_name = `$event`.detail.value - }, "placeholder" to "请输入收货人姓名"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "form-label"), "手机号"), - _cE("input", _uM("class" to "form-input", "modelValue" to newAddress.value.phone, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.phone = `$event`.detail.value - }, "placeholder" to "请输入手机号码", "type" to "number"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "form-section"), _uA( - _cE("view", _uM("class" to "form-item"), _uA( - _cE("view", _uM("class" to "label-row"), _uA( - _cE("text", _uM("class" to "form-label"), "智能填写"), - _cE("text", _uM("class" to "smart-tag"), "识别姓名/电话/地址") - )), - _cE("textarea", _uM("class" to "form-textarea smart-address-input", "modelValue" to smartAddressInput.value, "onInput" to _uA(fun(`$event`: UniInputEvent){ - smartAddressInput.value = `$event`.detail.value - }, parseSmartAddress), "placeholder" to "粘贴收货信息文本,自动拆分字段", "maxlength" to "200"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "form-section"), _uA( - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "form-label"), "所在地区"), - _cE("view", _uM("class" to "region-inputs"), _uA( - _cE("input", _uM("class" to "form-input region-input form-input-readonly", "modelValue" to newAddress.value.province, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.province = `$event`.detail.value - }, "placeholder" to "省", "readonly" to ""), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("input", _uM("class" to "form-input region-input form-input-readonly", "modelValue" to newAddress.value.city, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.city = `$event`.detail.value - }, "placeholder" to "市", "readonly" to ""), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("input", _uM("class" to "form-input region-input form-input-readonly", "modelValue" to newAddress.value.district, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.district = `$event`.detail.value - }, "placeholder" to "区/县", "readonly" to ""), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "form-item"), _uA( - _cE("text", _uM("class" to "form-label"), "详细地址"), - _cE("textarea", _uM("class" to "form-textarea detail-textarea", "modelValue" to newAddress.value.detail, "onInput" to fun(`$event`: UniInputEvent){ - newAddress.value.detail = `$event`.detail.value - }, "placeholder" to "如街道、楼栋、门牌号等", "maxlength" to "100"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "form-item checkbox-item"), _uA( - _cE("view", _uM("class" to "checkbox-wrapper", "onClick" to fun(){ - newAddress.value.is_default = !newAddress.value.is_default - }), _uA( - _cE("view", _uM("class" to _nC(_uA( - "checkbox", - _uM("checked" to newAddress.value.is_default) - ))), _uA( - if (isTrue(newAddress.value.is_default)) { - _cE("text", _uM("key" to 0, "class" to "checkbox-check"), "✓") - } else { - _cC("v-if", true) - } - ), 2), - _cE("text", _uM("class" to "checkbox-label"), "设为默认地址") - ), 8, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "form-buttons"), _uA( - _cE("button", _uM("class" to "form-submit-btn", "onClick" to saveNewAddress), "保存并使用") - )) - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showSaveConfirm.value)) { - _cE("view", _uM("key" to 2, "class" to "confirm-popup-mask"), _uA( - _cE("view", _uM("class" to "confirm-popup"), _uA( - _cE("view", _uM("class" to "confirm-header"), _uA( - _cE("text", _uM("class" to "confirm-title"), "保存地址") - )), - _cE("view", _uM("class" to "confirm-content"), _uA( - _cE("text", _uM("class" to "confirm-message"), "是否保存该地址用于下次使用?") - )), - _cE("view", _uM("class" to "confirm-buttons"), _uA( - _cE("button", _uM("class" to "confirm-btn cancel", "onClick" to fun(){ - handleSaveConfirm(false) - }), "仅本次", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "confirm-btn confirm", "onClick" to fun(){ - handleSaveConfirm(true) - }), "保存", 8, _uA( - "onClick" - )) - )) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0, - styles1 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("checkout-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "position" to "absolute", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "#f8f8f8", "overflow" to "hidden", "alignItems" to "center")), "checkout-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0", "flexShrink" to 0, "width" to "100%")), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "textAlign" to "center")), "checkout-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "maxWidth" to 800, "minHeight" to 0, "backgroundColor" to "#f8f8f8")), "no-products" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0)), "no-products-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "section-card" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "paddingTop" to 18, "paddingRight" to 18, "paddingBottom" to 18, "paddingLeft" to 18, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "boxShadow" to "0 2px 8px rgba(0,0,0,0.02)")), "address-section" to _pS(_uM("marginTop" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "position" to "relative", "backgroundColor" to "#ffffff")), "address-icon-wrapper" to _pS(_uM("marginRight" to 12, "display" to "flex", "alignItems" to "center")), "location-icon" to _pS(_uM("fontSize" to 24, "color" to "#ff5000")), "address-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "address-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 4)), "recipient" to _pS(_uM("fontSize" to 17, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 12)), "phone" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginRight" to 8)), "default-tag" to _pS(_uM("backgroundColor" to "#fff0eb", "borderTopWidth" to 0.5, "borderRightWidth" to 0.5, "borderBottomWidth" to 0.5, "borderLeftWidth" to 0.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "paddingTop" to 0, "paddingRight" to 6, "paddingBottom" to 0, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "tag-text" to _pS(_uM("color" to "#ff5000", "fontSize" to 11)), "address-detail" to _pS(_uM("fontSize" to 13, "color" to "#666666", "lineHeight" to 1.5, "lines" to 2, "textOverflow" to "ellipsis", "overflow" to "hidden")), "address-arrow-wrapper" to _pS(_uM("marginLeft" to 8)), "address-arrow" to _pS(_uM("color" to "#cccccc", "fontSize" to 20)), "no-address" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "alignItems" to "center")), "no-address-text" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "products-section" to _pS(_uM("paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0)), "debug-info" to _pS(_uM("paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "marginBottom" to 10)), "debug-text" to _pS(_uM("fontSize" to 12, "color" to "#999999", "textAlign" to "center")), "shop-group" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0)), "shop-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 5, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0)), "shop-icon" to _pS(_uM("fontSize" to 17, "marginRight" to 6)), "shop-name" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333")), "shop-subtotal" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 5, "paddingLeft" to 0, "marginTop" to 5, "borderTopWidth" to 1, "borderTopStyle" to "dashed", "borderTopColor" to "#f0f0f0")), "subtotal-label" to _pS(_uM("color" to "#888888", "marginRight" to 8, "fontSize" to 13)), "subtotal-value" to _pS(_uM("color" to "#666666", "fontSize" to 13)), "subtotal-text" to _pS(_uM("color" to "#333333", "marginRight" to 5, "fontSize" to 14)), "subtotal-price" to _pS(_uM("color" to "#ff5000", "fontWeight" to "bold", "fontSize" to 16)), "product-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0)), "product-image" to _pS(_uM("width" to 85, "height" to 85, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginRight" to 12, "backgroundColor" to "#f8f8f8")), "product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "product-name-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start")), "product-name" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "lines" to 2, "textOverflow" to "ellipsis", "overflow" to "hidden", "marginRight" to 12)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#333333", "fontWeight" to "normal")), "product-spec-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 4)), "product-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f7f7f7", "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "product-quantity" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "delivery-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "delivery-selector" to _pS(_uM("display" to "flex", "flexDirection" to "row", "gap" to "8px")), "delivery-pill" to _uM("" to _uM("paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0)", "borderRightColor" to "rgba(0,0,0,0)", "borderBottomColor" to "rgba(0,0,0,0)", "borderLeftColor" to "rgba(0,0,0,0)"), ".selected" to _uM("backgroundColor" to "#fff9f6", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "pill-name" to _uM("" to _uM("fontSize" to 12, "color" to "#666666"), ".delivery-pill.selected " to _uM("color" to "#ff5000")), "delivery-detail" to _pS(_uM("marginTop" to 10, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "paddingTop" to 8, "borderTopWidth" to 0.5, "borderTopStyle" to "solid", "borderTopColor" to "#f9f9f9")), "detail-desc" to _pS(_uM("fontSize" to 11, "color" to "#999999")), "detail-price" to _pS(_uM("fontSize" to 11, "color" to "#ff5000")), "coupon-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "coupon-right-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "remark-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "remark-input-compact" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 15, "fontSize" to 14, "color" to "#333333", "height" to 30)), "price-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between")), "price-item-inline" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "price-item-label" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginRight" to 4)), "price-item-value" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "item-subtotal-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end", "alignItems" to "center", "marginTop" to 4)), "item-subtotal-label" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginRight" to 4)), "item-subtotal-price" to _pS(_uM("fontSize" to 14, "color" to "#ff5000", "fontWeight" to "bold")), "delivery-options-grid" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "delivery-card" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginBottom" to 10, "backgroundColor" to "#fafafa"), ".selected" to _uM("borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "backgroundColor" to "#fff9f6")), "option-main" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "option-name" to _pS(_uM("fontSize" to 15, "color" to "#333333", "marginBottom" to 4)), "option-desc" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "option-side" to _pS(_uM("display" to "flex", "alignItems" to "center")), "option-price" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginRight" to 10)), "select-icon" to _pS(_uM("width" to 18, "height" to 18, "backgroundColor" to "#ff5000", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "check-mark" to _pS(_uM("color" to "#ffffff", "fontSize" to 12, "marginTop" to -1)), "coupon-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "coupon-left" to _pS(_uM("display" to "flex", "alignItems" to "center")), "coupon-tag" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 4, "paddingBottom" to 1, "paddingLeft" to 4, "borderTopLeftRadius" to 2, "borderTopRightRadius" to 2, "borderBottomRightRadius" to 2, "borderBottomLeftRadius" to 2, "marginLeft" to 8)), "coupon-right" to _pS(_uM("display" to "flex", "alignItems" to "center")), "coupon-selected-name" to _pS(_uM("fontSize" to 14, "color" to "#ff5000")), "coupon-placeholder" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "arrow-icon" to _pS(_uM("fontSize" to 18, "color" to "#cccccc", "marginLeft" to 5)), "remark-input-new" to _pS(_uM("width" to "100%", "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "fontSize" to 14, "minHeight" to 48)), "price-list" to _pS(_uM("marginTop" to 5)), "price-item" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 6, "paddingRight" to 0, "paddingBottom" to 6, "paddingLeft" to 0)), "discount-text" to _pS(_uM("color" to "#ff5000")), "section-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333")), "footer-action-bar" to _pS(_uM("position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "height" to 60, "backgroundColor" to "#ffffff", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to "env(safe-area-inset-bottom)", "paddingLeft" to 16, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0", "zIndex" to 100)), "footer-left" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "footer-total-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginRight" to 4)), "footer-currency" to _pS(_uM("fontSize" to 14, "color" to "#ff5000", "fontWeight" to "bold")), "footer-price" to _pS(_uM("fontSize" to 22, "color" to "#ff5000", "fontWeight" to "bold")), "footer-submit-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "paddingTop" to 0, "paddingRight" to 28, "paddingBottom" to 0, "paddingLeft" to 28, "height" to 42, "lineHeight" to "42px", "borderTopLeftRadius" to 21, "borderTopRightRadius" to 21, "borderBottomRightRadius" to 21, "borderBottomLeftRadius" to 21, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "safe-area-bottom" to _pS(_uM("height" to 100, "width" to "100%")), "address-popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "zIndex" to 9998, "display" to "flex", "alignItems" to "flex-end", "justifyContent" to "center")), "address-form-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "zIndex" to 10000, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "confirm-popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "zIndex" to 9998, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "address-popup" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "height" to 450, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "display" to "flex", "flexDirection" to "column", "position" to "relative", "zIndex" to 9999)), "address-form-popup" to _pS(_uM("backgroundColor" to "#f8f8f8", "width" to "92%", "maxWidth" to 500, "height" to 600, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "column", "overflow" to "hidden", "position" to "relative", "zIndex" to 10001)), "popup-header" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 0.5, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "flexShrink" to 0, "position" to "relative")), "popup-title" to _pS(_uM("fontSize" to 17, "fontWeight" to "bold", "color" to "#333333")), "popup-close" to _pS(_uM("position" to "absolute", "right" to 16, "fontSize" to 20, "color" to "#999999", "paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4)), "address-list-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxSizing" to "border-box")), "popup-address-item" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 12, "backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "position" to "relative")), "popup-address-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 8)), "popup-address-name" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 12))) - } - val styles1: Map>> - get() { - return _uM("popup-address-phone" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginRight" to 8)), "popup-default-tag" to _pS(_uM("backgroundColor" to "#fff0eb", "paddingTop" to 1, "paddingRight" to 6, "paddingBottom" to 1, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "popup-tag-text" to _pS(_uM("color" to "#ff5000", "fontSize" to 10)), "popup-address-detail" to _pS(_uM("fontSize" to 13, "color" to "#666666", "lineHeight" to 1.4)), "popup-selected-indicator" to _pS(_uM("position" to "absolute", "right" to 16, "top" to "50%", "transform" to "translateY(-50%)", "color" to "#ff5000", "fontWeight" to "bold", "fontSize" to 18)), "popup-empty-address" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 60, "paddingRight" to 20, "paddingBottom" to 60, "paddingLeft" to 20)), "popup-empty-icon" to _pS(_uM("fontSize" to 48, "marginBottom" to 12, "opacity" to 0.3)), "popup-empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "popup-add-address-btn" to _pS(_uM("backgroundColor" to "#ff5000", "marginTop" to 12, "marginRight" to 16, "marginBottom" to 30, "marginLeft" to 16, "height" to 44, "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "flexShrink" to 0)), "popup-btn-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 20, "marginRight" to 6, "fontWeight" to "normal")), "popup-btn-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 15, "fontWeight" to "bold")), "form-header" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "backgroundColor" to "#ffffff", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "position" to "relative", "borderBottomWidth" to 0.5, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "flexShrink" to 0)), "form-title" to _pS(_uM("fontSize" to 17, "fontWeight" to "bold", "color" to "#333333")), "form-close-btn" to _pS(_uM("position" to "absolute", "right" to 12, "width" to 28, "height" to 28, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "form-close-icon" to _pS(_uM("fontSize" to 18, "color" to "#999999")), "form-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "backgroundColor" to "#ffffff", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12)), "form-section" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "marginBottom" to 12)), "form-item" to _pS(_uM("paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 0.5, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "form-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 10, "display" to "flex")), "label-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 10)), "smart-tag" to _pS(_uM("fontSize" to 11, "color" to "#ff5000", "backgroundColor" to "#fff0eb", "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "form-input" to _pS(_uM("width" to "100%", "height" to 32, "fontSize" to 15, "color" to "#333333")), "form-input-readonly" to _pS(_uM("color" to "#888888")), "region-inputs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between")), "region-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center")), "form-textarea" to _pS(_uM("width" to "100%", "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "fontSize" to 14, "color" to "#333333", "boxSizing" to "border-box")), "smart-address-input" to _pS(_uM("height" to 80)), "detail-textarea" to _pS(_uM("height" to 60)), "checkbox-item" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "checkbox-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "checkbox" to _uM("" to _uM("width" to 18, "height" to 18, "borderTopWidth" to 1.5, "borderRightWidth" to 1.5, "borderBottomWidth" to 1.5, "borderLeftWidth" to 1.5, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "borderTopLeftRadius" to 9, "borderTopRightRadius" to 9, "borderBottomRightRadius" to 9, "borderBottomLeftRadius" to 9, "marginRight" to 10, "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".checked" to _uM("backgroundColor" to "#ff5000", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "checkbox-check" to _pS(_uM("color" to "#ffffff", "fontSize" to 12)), "checkbox-label" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "form-buttons" to _pS(_uM("paddingTop" to 12, "paddingRight" to 16, "paddingBottom" to 30, "paddingLeft" to 16, "backgroundColor" to "#ffffff", "flexShrink" to 0)), "form-submit-btn" to _pS(_uM("width" to "100%", "backgroundColor" to "#ff5000", "color" to "#ffffff", "height" to 44, "lineHeight" to "44px", "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "confirm-popup" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "80%", "maxWidth" to 320, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "confirm-header" to _pS(_uM("paddingTop" to 24, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0, "textAlign" to "center")), "confirm-title" to _pS(_uM("fontSize" to 17, "fontWeight" to "bold", "color" to "#333333")), "confirm-content" to _pS(_uM("paddingTop" to 0, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "textAlign" to "center")), "confirm-message" to _pS(_uM("fontSize" to 14, "color" to "#666666", "lineHeight" to 1.5)), "confirm-buttons" to _pS(_uM("display" to "flex", "flexDirection" to "row", "borderTopWidth" to 0.5, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee")), "confirm-btn" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 48, "lineHeight" to "48px", "textAlign" to "center", "fontSize" to 16, "backgroundColor" to "#ffffff", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 0, "borderTopRightRadius" to 0, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0), ".cancel" to _uM("color" to "#666666", "borderRightWidth" to 0.5, "borderRightStyle" to "solid", "borderRightColor" to "#eeeeee"), ".confirm" to _uM("color" to "#ff5000", "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/coupons.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/coupons.kt deleted file mode 100644 index 1f2d128c..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/coupons.kt +++ /dev/null @@ -1,122 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerCoupons : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerCoupons) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerCoupons - val _cache = __ins.renderCache - val coupons = ref(_uA()) - val loadCoupons = fun(): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "加载中...")) - try { - val userCoupons = await(supabaseService.getUserCoupons(1)) - val couponList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < userCoupons.length){ - val item = userCoupons[i] - val amountVal = item.amount ?: 0 - val expiryVal = if ((item.expire_at != null && item.expire_at !== "")) { - item.expire_at.substring(0, 10) - } else { - "长期有效" - } - val coupon: Coupon = Coupon(id = item.id, title = if ((item.template_name != null && item.template_name !== "")) { - item.template_name!! - } else { - "优惠券" - } - , amount = "\u00A5" + amountVal, expiry = expiryVal) - couponList.push(coupon) - i++ - } - } - coupons.value = couponList - } - catch (e: Throwable) { - console.error("加载优惠券失败", e, " at pages/mall/consumer/coupons.uvue:59") - coupons.value = _uA() - } - finally { - uni_hideLoading() - } - }) - } - onMounted(fun(){ - loadCoupons() - } - ) - val useCoupon = fun(coupon: Coupon){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "coupons-page"), _uA( - _cE("view", _uM("class" to "coupon-list"), _uA( - if (coupons.value.length === 0) { - _cE("view", _uM("key" to 0, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-icon"), "🎫"), - _cE("text", _uM("class" to "empty-text"), "暂无优惠券") - )) - } else { - _cE(Fragment, _uM("key" to 1), RenderHelpers.renderList(coupons.value, fun(coupon, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "coupon-item"), _uA( - _cE("view", _uM("class" to "coupon-left"), _uA( - _cE("text", _uM("class" to "coupon-amount"), _tD(coupon.amount), 1), - _cE("text", _uM("class" to "coupon-type"), "优惠券") - )), - _cE("view", _uM("class" to "coupon-right"), _uA( - _cE("text", _uM("class" to "coupon-title"), _tD(coupon.title), 1), - _cE("text", _uM("class" to "coupon-expiry"), "有效期至: " + _tD(coupon.expiry), 1), - _cE("button", _uM("class" to "use-btn", "onClick" to fun(){ - useCoupon(coupon) - } - ), "去使用", 8, _uA( - "onClick" - )) - )) - )) - } - ), 128) - } - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("coupons-page" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "empty-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 100)), "empty-icon" to _pS(_uM("fontSize" to 60, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "coupon-item" to _pS(_uM("display" to "flex", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 15, "overflow" to "hidden", "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "coupon-left" to _pS(_uM("width" to 100, "backgroundImage" to "linear-gradient(135deg, #FF9800, #FF5722)", "backgroundColor" to "rgba(0,0,0,0)", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "color" to "#FFFFFF", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "coupon-amount" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold")), "coupon-type" to _pS(_uM("fontSize" to 12, "marginTop" to 5)), "coupon-right" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "coupon-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 8)), "coupon-expiry" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to 10)), "use-btn" to _pS(_uM("alignSelf" to "flex-end", "fontSize" to 12, "backgroundColor" to "#FF5722", "color" to "#FFFFFF", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "lineHeight" to 1.5))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/favorites.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/favorites.kt deleted file mode 100644 index a496b2a2..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/favorites.kt +++ /dev/null @@ -1,413 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerFavorites : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerFavorites) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerFavorites - val _cache = __ins.renderCache - val favorites = ref(_uA()) - val isEditMode = ref(false) - val isLoading = ref(false) - val selectedCount = computed(fun(): Number { - return favorites.value.filter(fun(item): Boolean { - return item.selected === true - } - ).length - } - ) - val isAllSelected = computed(fun(): Boolean { - return favorites.value.length > 0 && favorites.value.every(fun(item): Boolean { - return item.selected === true - } - ) - } - ) - val loadFavorites = fun(): UTSPromise { - return wrapUTSPromise(suspend { - isLoading.value = true - try { - val res = await(supabaseService.getFavorites()) - console.log("收藏数据加载完成,数量:", res.length, " at pages/mall/consumer/favorites.uvue:92") - val productList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < res.length){ - val item = res[i] - var prod: Any? = null - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - prod = itemObj.get("ml_products") - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/favorites.uvue:104") as UTSJSONObject - prod = itemObj.get("ml_products") - } - var image = "/static/default-product.png" - var id = "" - var name = "未知商品" - var price: Number = 0 - var merchantId = "" - if (prod != null) { - var prodObj: UTSJSONObject - if (prod is UTSJSONObject) { - prodObj = prod as UTSJSONObject - } else { - prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(prod)), " at pages/mall/consumer/favorites.uvue:119") as UTSJSONObject - } - id = prodObj.getString("id") ?: "" - name = prodObj.getString("name") ?: "未知商品" - price = prodObj.getNumber("base_price") ?: 0 - image = prodObj.getString("main_image_url") ?: image - merchantId = prodObj.getString("merchant_id") ?: "" - if (image === "/static/default-product.png") { - val imgUrls = prodObj.getString("image_urls") - if (imgUrls != null) { - try { - val arr = UTSAndroid.consoleDebugError(JSON.parse(imgUrls), " at pages/mall/consumer/favorites.uvue:132") - if (UTSArray.isArray(arr) && (arr as UTSArray).length > 0) { - image = (arr as UTSArray)[0] as String - } - } - catch (e: Throwable) {} - } - } - } else { - if (itemObj != null) { - id = itemObj.getString("target_id") ?: "" - } - } - val product = FavoriteType(id = id, name = name, price = price, main_image_url = image, merchant_id = merchantId, selected = false) - productList.push(product) - i++ - } - } - favorites.value = productList - console.log("收藏列表更新完成,数量:", favorites.value.length, " at pages/mall/consumer/favorites.uvue:156") - } - catch (e: Throwable) { - console.error("加载收藏失败", e, " at pages/mall/consumer/favorites.uvue:158") - } - finally { - isLoading.value = false - } - }) - } - val toggleEditMode = fun(){ - isEditMode.value = !isEditMode.value - run { - var i: Number = 0 - while(i < favorites.value.length){ - favorites.value[i].selected = false - i++ - } - } - } - val clearAll = fun(){ - if (favorites.value.length === 0) { - return - } - uni_showModal(ShowModalOptions(title = "清空收藏", content = "确定要清空所有收藏商品吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "清空中...")) - val productIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < favorites.value.length){ - productIds.push(favorites.value[i].id) - i++ - } - } - var completed: Number = 0 - run { - var i: Number = 0 - while(i < productIds.length){ - supabaseService.toggleFavorite(productIds[i]).then(fun(){ - completed++ - if (completed === productIds.length) { - uni_hideLoading() - favorites.value = _uA() - uni_showToast(ShowToastOptions(title = "已清空", icon = "success")) - } - } - ).`catch`(fun(){ - completed++ - if (completed === productIds.length) { - uni_hideLoading() - loadFavorites() - uni_showToast(ShowToastOptions(title = "部分清空失败", icon = "none")) - } - } - ) - i++ - } - } - } - } - )) - } - val toggleSelect = fun(item: FavoriteType){ - item.selected = !(item.selected === true) - favorites.value = favorites.value.slice() - } - val toggleSelectAll = fun(){ - val newSelectedState = !isAllSelected.value - run { - var i: Number = 0 - while(i < favorites.value.length){ - favorites.value[i].selected = newSelectedState - i++ - } - } - favorites.value = favorites.value.slice() - } - val deleteSelected = fun(){ - val selectedItems = favorites.value.filter(fun(item): Boolean { - return item.selected === true - } - ) - if (selectedItems.length === 0) { - uni_showToast(ShowToastOptions(title = "请选择要删除的商品", icon = "none")) - return - } - uni_showModal(ShowModalOptions(title = "删除收藏", content = "确定要删除选中的 " + selectedItems.length + " 个商品吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - var completed: Number = 0 - val total = selectedItems.length - run { - var i: Number = 0 - while(i < selectedItems.length){ - supabaseService.toggleFavorite(selectedItems[i].id).then(fun(){ - completed++ - if (completed === total) { - uni_hideLoading() - loadFavorites() - uni_showToast(ShowToastOptions(title = "已删除", icon = "success")) - } - } - ).`catch`(fun(){ - completed++ - if (completed === total) { - uni_hideLoading() - loadFavorites() - uni_showToast(ShowToastOptions(title = "部分删除失败", icon = "none")) - } - } - ) - i++ - } - } - } - } - )) - } - val viewProduct = fun(product: FavoriteType){ - if (isEditMode.value) { - toggleSelect(product) - return - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + product.id)) - } - val addToCart = fun(product: FavoriteType): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val merchantId = product.merchant_id ?: "" - val skus = await(supabaseService.getProductSkus(product.id)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + product.id)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(product.id, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/favorites.uvue:313") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val goShopping = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - onMounted(fun(){ - loadFavorites() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "favorites-page"), _uA( - _cE("view", _uM("class" to "favorites-header"), _uA( - if (favorites.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "header-actions"), _uA( - _cE("text", _uM("class" to "action-btn", "onClick" to toggleEditMode), _tD(if (isEditMode.value) { - "完成" - } else { - "编辑" - }), 1), - _cE("text", _uM("class" to "action-btn", "onClick" to clearAll), "清空") - )) - } else { - _cC("v-if", true) - } - )), - _cE("scroll-view", _uM("class" to "favorites-content", "scroll-y" to true), _uA( - if (isTrue(favorites.value.length === 0 && !isLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "empty-favorites"), _uA( - _cE("text", _uM("class" to "empty-icon"), "❤️"), - _cE("text", _uM("class" to "empty-text"), "暂无收藏商品"), - _cE("text", _uM("class" to "empty-subtext"), "快去收藏喜欢的商品吧"), - _cE("button", _uM("class" to "go-shopping-btn", "onClick" to goShopping), "去逛逛") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "product-group"), _uA( - _cE("view", _uM("class" to "group-items"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(favorites.value, fun(product, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "product-item"), _uA( - if (isTrue(isEditMode.value)) { - _cE("view", _uM("key" to 0, "class" to "item-selector", "onClick" to fun(){ - toggleSelect(product) - }), _uA( - _cE("view", _uM("class" to _nC(_uA( - "select-icon", - _uM("selected" to (product.selected === true)) - ))), _uA( - if (product.selected === true) { - _cE("text", _uM("key" to 0, "class" to "icon-text"), "✓") - } else { - _cC("v-if", true) - } - ), 2) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "item-content", "onClick" to fun(){ - viewProduct(product) - } - ), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.main_image_url, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - if (isTrue(!isEditMode.value)) { - _cE("view", _uM("key" to 0, "class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - )) - } - ), 128) - )) - )), - if (isTrue(isLoading.value)) { - _cE("view", _uM("key" to 1, "class" to "loading-more"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!isLoading.value && favorites.value.length > 0)) { - _cE("view", _uM("key" to 2, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "没有更多了") - )) - } else { - _cC("v-if", true) - } - )), - if (isTrue(isEditMode.value && favorites.value.length > 0)) { - _cE("view", _uM("key" to 0, "class" to "edit-bar"), _uA( - _cE("view", _uM("class" to "select-all", "onClick" to toggleSelectAll), _uA( - _cE("view", _uM("class" to _nC(_uA( - "all-select-icon", - _uM("selected" to isAllSelected.value) - ))), _uA( - if (isTrue(isAllSelected.value)) { - _cE("text", _uM("key" to 0, "class" to "icon-text"), "✓") - } else { - _cC("v-if", true) - } - ), 2), - _cE("text", _uM("class" to "select-all-text"), "全选") - )), - _cE("view", _uM("class" to "delete-btn", "onClick" to deleteSelected), _uA( - _cE("text", _uM("class" to "delete-text"), "删除(" + _tD(selectedCount.value) + ")", 1) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("favorites-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "favorites-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5", "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "header-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "justifyContent" to "flex-end", "alignItems" to "center", "paddingRight" to 0)), "action-btn" to _pS(_uM("color" to "#007aff", "fontSize" to 14, "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginLeft" to 20)), "favorites-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0)), "empty-favorites" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20, "backgroundColor" to "#ffffff")), "empty-icon" to _pS(_uM("fontSize" to 80, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-shopping-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 14, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "product-group" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10)), "group-items" to _pS(_uM("paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between")), "product-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12, "position" to "relative")), "item-selector" to _pS(_uM("position" to "absolute", "top" to 5, "right" to 5, "zIndex" to 10, "width" to 30, "height" to 30, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "select-icon" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "rgba(255,255,255,0.5)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".selected" to _uM("backgroundColor" to "#007aff", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "icon-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 12)), "item-content" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "edit-bar" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "select-all" to _pS(_uM("display" to "flex", "alignItems" to "center")), "all-select-icon" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginRight" to 10, "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".selected" to _uM("backgroundColor" to "#007aff", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "select-all-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "delete-btn" to _pS(_uM("backgroundColor" to "#ff4757", "paddingTop" to 10, "paddingRight" to 20, "paddingBottom" to 10, "paddingLeft" to 20, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15)), "delete-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 14, "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/footprint.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/footprint.kt deleted file mode 100644 index 696d0b83..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/footprint.kt +++ /dev/null @@ -1,510 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerFootprint : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerFootprint) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerFootprint - val _cache = __ins.renderCache - val footprints = ref(_uA()) - val isEditMode = ref(false) - val isLoading = ref(false) - val hasMore = ref(false) - val selectedCount = computed(fun(): Number { - return footprints.value.filter(fun(item): Boolean { - return item.selected === true - } - ).length - } - ) - val isAllSelected = computed(fun(): Boolean { - return footprints.value.length > 0 && footprints.value.every(fun(item): Boolean { - return item.selected === true - } - ) - } - ) - val formatGroupDate = fun(dateStr: String): String { - val date = Date(dateStr) - val today = Date() - val yesterday = Date(today) - yesterday.setDate(yesterday.getDate() - 1) - if (date.toDateString() === today.toDateString()) { - return "今天" - } else if (date.toDateString() === yesterday.toDateString()) { - return "昨天" - } else { - val month = date.getMonth() + 1 - val day = date.getDate() - return "" + month + "月" + day + "日" - } - } - val groupedFootprints = computed(fun(): UTSArray { - val result: UTSArray = _uA() - run { - var i: Number = 0 - while(i < footprints.value.length){ - val item = footprints.value[i] - val dateKey = Date(item.viewTime).toDateString() - var foundGroup: FootprintGroup? = null - run { - var j: Number = 0 - while(j < result.length){ - if (result[j].dateKey === dateKey) { - foundGroup = result[j] - break - } - j++ - } - } - if (foundGroup != null) { - foundGroup.items.push(item) - } else { - val newGroup: FootprintGroup = FootprintGroup(dateLabel = formatGroupDate(dateKey), dateKey = dateKey, items = _uA( - item - )) - result.push(newGroup) - } - i++ - } - } - return result - } - ) - val toggleEditMode = fun(){ - isEditMode.value = !isEditMode.value - run { - var i: Number = 0 - while(i < footprints.value.length){ - footprints.value[i].selected = false - i++ - } - } - } - val clearAll = fun(){ - if (footprints.value.length === 0) { - return - } - uni_showModal(ShowModalOptions(title = "清空足迹", content = "确定要清空所有浏览记录吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "清空中...")) - supabaseService.clearFootprints().then(fun(success){ - uni_hideLoading() - if (success) { - footprints.value = _uA() - uni_removeStorageSync("footprints") - uni_showToast(ShowToastOptions(title = "已清空", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "清空失败", icon = "none")) - } - } - ) - } - } - )) - } - val toggleSelect = fun(item: FootprintType){ - item.selected = !(item.selected === true) - footprints.value = footprints.value.slice() - } - val toggleGroupSelect = fun(groupIndex: Number){ - val group = groupedFootprints.value[groupIndex] - if (group == null) { - return - } - val allSelected = group.items.every(fun(item): Boolean { - return item.selected === true - } - ) - val newSelectedState = !allSelected - run { - var i: Number = 0 - while(i < group.items.length){ - group.items[i].selected = newSelectedState - i++ - } - } - footprints.value = footprints.value.slice() - } - val isGroupSelected = fun(groupIndex: Number): Boolean { - val group = groupedFootprints.value[groupIndex] - if (group == null || group.items.length === 0) { - return false - } - return group.items.every(fun(item): Boolean { - return item.selected === true - } - ) - } - val toggleSelectAll = fun(){ - val newSelectedState = !isAllSelected.value - run { - var i: Number = 0 - while(i < footprints.value.length){ - footprints.value[i].selected = newSelectedState - i++ - } - } - footprints.value = footprints.value.slice() - } - val deleteSelected = fun(){ - val selectedItems = footprints.value.filter(fun(item): Boolean { - return item.selected === true - } - ) - if (selectedItems.length === 0) { - uni_showToast(ShowToastOptions(title = "请选择要删除的记录", icon = "none")) - return - } - uni_showModal(ShowModalOptions(title = "确认删除", content = "确定要删除选中的" + selectedItems.length + "条记录吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - val productIds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < selectedItems.length){ - productIds.push(selectedItems[i].id) - i++ - } - } - supabaseService.deleteFootprints(productIds).then(fun(success){ - uni_hideLoading() - if (success) { - footprints.value = footprints.value.filter(fun(item): Boolean { - return item.selected !== true - }) - val dataToSave: UTSArray = _uA() - run { - var i: Number = 0 - while(i < footprints.value.length){ - val item = footprints.value[i] - dataToSave.push(FootprintSaveType(id = item.id, name = item.name, price = item.price, original_price = item.original_price, image = item.image, sales = item.sales, shopId = item.shopId, shopName = item.shopName, viewTime = item.viewTime)) - i++ - } - } - uni_setStorageSync("footprints", JSON.stringify(dataToSave)) - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - if (footprints.value.length === 0) { - isEditMode.value = false - } - } else { - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - ) - } - } - )) - } - val addToCart = fun(item: FootprintType): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val productId = item.id - val merchantId = item.merchant_id ?: item.shopId ?: "" - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/footprint.uvue:347") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val viewProduct = fun(item: FootprintType){ - if (isEditMode.value) { - return - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?productId=" + item.id + "&price=" + item.price + "&originalPrice=" + item.original_price)) - } - val loadMore = fun(){} - val goShopping = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - val parseFootprintItem = fun(item: Any): FootprintType { - var itemObj: UTSJSONObject - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/footprint.uvue:378") as UTSJSONObject - } - return FootprintType(id = itemObj.getString("id") ?: "", name = itemObj.getString("name") ?: "", price = itemObj.getNumber("price") ?: 0, original_price = itemObj.getNumber("original_price") ?: 0, image = itemObj.getString("image") ?: "", sales = itemObj.getNumber("sales") ?: 0, shopId = itemObj.getString("shopId") ?: "", shopName = itemObj.getString("shopName") ?: "", viewTime = itemObj.getNumber("viewTime") ?: 0, selected = false, merchant_id = itemObj.getString("merchant_id") ?: "") - } - val loadFootprints = fun(): UTSPromise { - return wrapUTSPromise(suspend { - isLoading.value = true - try { - val remoteData = await(supabaseService.getFootprints()) - if (remoteData.length > 0) { - console.log("获取到远程足迹数据:", remoteData.length, " at pages/mall/consumer/footprint.uvue:403") - val newFootprints: UTSArray = _uA() - run { - var i: Number = 0 - while(i < remoteData.length){ - newFootprints.push(parseFootprintItem(remoteData[i])) - i++ - } - } - footprints.value = newFootprints - val dataToSave: UTSArray = _uA() - run { - var i: Number = 0 - while(i < footprints.value.length){ - val item = footprints.value[i] - dataToSave.push(FootprintSaveType(id = item.id, name = item.name, price = item.price, original_price = item.original_price, image = item.image, sales = item.sales, shopId = item.shopId, shopName = item.shopName, viewTime = item.viewTime)) - i++ - } - } - uni_setStorageSync("footprints", JSON.stringify(dataToSave)) - } else { - val storedFootprints = uni_getStorageSync("footprints") - if (storedFootprints != null) { - try { - val data = UTSAndroid.consoleDebugError(JSON.parse(storedFootprints as String), " at pages/mall/consumer/footprint.uvue:430") as UTSArray - val newFootprints: UTSArray = _uA() - run { - var i: Number = 0 - while(i < data.length){ - newFootprints.push(parseFootprintItem(data[i])) - i++ - } - } - footprints.value = newFootprints - } catch (e: Throwable) { - console.error("Failed to parse footprints", e, " at pages/mall/consumer/footprint.uvue:437") - footprints.value = _uA() - } - } else { - footprints.value = _uA() - } - } - } - catch (e: Throwable) { - console.error("加载足迹失败", e, " at pages/mall/consumer/footprint.uvue:445") - val storedFootprints = uni_getStorageSync("footprints") - if (storedFootprints != null) { - try { - val data = UTSAndroid.consoleDebugError(JSON.parse(storedFootprints as String), " at pages/mall/consumer/footprint.uvue:449") as UTSArray - val newFootprints: UTSArray = _uA() - run { - var i: Number = 0 - while(i < data.length){ - newFootprints.push(parseFootprintItem(data[i])) - i++ - } - } - footprints.value = newFootprints - } - catch (err: Throwable) { - footprints.value = _uA() - } - } - } - isLoading.value = false - hasMore.value = false - }) - } - onMounted(fun(){ - loadFootprints() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "footprint-page"), _uA( - _cE("view", _uM("class" to "footprint-header"), _uA( - if (footprints.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "header-actions"), _uA( - _cE("text", _uM("class" to "action-btn", "onClick" to toggleEditMode), _tD(if (isEditMode.value) { - "完成" - } else { - "编辑" - }), 1), - _cE("text", _uM("class" to "action-btn", "onClick" to clearAll), "清空") - )) - } else { - _cC("v-if", true) - } - )), - _cE("scroll-view", _uM("class" to "footprint-content", "scroll-y" to true, "onScrolltolower" to loadMore), _uA( - if (isTrue(footprints.value.length === 0 && !isLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "empty-footprints"), _uA( - _cE("text", _uM("class" to "empty-icon"), "👣"), - _cE("text", _uM("class" to "empty-text"), "暂无浏览记录"), - _cE("text", _uM("class" to "empty-subtext"), "快去浏览喜欢的商品吧"), - _cE("button", _uM("class" to "go-shopping-btn", "onClick" to goShopping), "去逛逛") - )) - } else { - _cC("v-if", true) - } - , - _cE(Fragment, null, RenderHelpers.renderList(groupedFootprints.value, fun(group, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "date-group"), _uA( - _cE("view", _uM("class" to "group-header"), _uA( - _cE("text", _uM("class" to "group-date"), _tD(group.dateLabel), 1), - if (isTrue(isEditMode.value)) { - _cE("text", _uM("key" to 0, "class" to "group-select", "onClick" to fun(){ - toggleGroupSelect(index) - }), _tD(if (isGroupSelected(index)) { - "取消全选" - } else { - "全选" - }), 9, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "group-items"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(group.items, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "footprint-item"), _uA( - if (isTrue(isEditMode.value)) { - _cE("view", _uM("key" to 0, "class" to "item-selector", "onClick" to fun(){ - toggleSelect(item) - }), _uA( - _cE("view", _uM("class" to _nC(_uA( - "select-icon", - _uM("selected" to (item.selected === true)) - ))), _uA( - if (item.selected === true) { - _cE("text", _uM("key" to 0, "class" to "icon-text"), "✓") - } else { - _cC("v-if", true) - } - ), 2) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "item-content", "onClick" to fun(){ - viewProduct(item) - } - ), _uA( - _cE("image", _uM("class" to "product-image", "src" to item.image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(item.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(item.price), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(item) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - )) - } - ), 128) - )) - )) - } - ), 128), - if (isTrue(isLoading.value)) { - _cE("view", _uM("key" to 1, "class" to "loading-more"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!hasMore.value && footprints.value.length > 0)) { - _cE("view", _uM("key" to 2, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "没有更多了") - )) - } else { - _cC("v-if", true) - } - ), 32), - if (isTrue(isEditMode.value && footprints.value.length > 0)) { - _cE("view", _uM("key" to 0, "class" to "edit-bar"), _uA( - _cE("view", _uM("class" to "select-all", "onClick" to toggleSelectAll), _uA( - _cE("view", _uM("class" to _nC(_uA( - "all-select-icon", - _uM("selected" to isAllSelected.value) - ))), _uA( - if (isTrue(isAllSelected.value)) { - _cE("text", _uM("key" to 0, "class" to "icon-text"), "✓") - } else { - _cC("v-if", true) - } - ), 2), - _cE("text", _uM("class" to "select-all-text"), "全选") - )), - _cE("view", _uM("class" to "delete-btn", "onClick" to deleteSelected), _uA( - _cE("text", _uM("class" to "delete-text"), "删除(" + _tD(selectedCount.value) + ")", 1) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("footprint-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "footprint-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5", "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "header-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "justifyContent" to "flex-end", "alignItems" to "center", "paddingRight" to 0)), "action-btn" to _pS(_uM("color" to "#007aff", "fontSize" to 14, "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginLeft" to 20)), "footprint-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0)), "empty-footprints" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20, "backgroundColor" to "#ffffff")), "empty-icon" to _pS(_uM("fontSize" to 80, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-shopping-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 14, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "date-group" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10)), "group-header" to _pS(_uM("paddingTop" to 15, "paddingRight" to 5, "paddingBottom" to 15, "paddingLeft" to 5, "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "group-date" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "group-select" to _pS(_uM("color" to "#007aff", "fontSize" to 14)), "group-items" to _pS(_uM("paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between")), "footprint-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12, "position" to "relative")), "item-selector" to _pS(_uM("position" to "absolute", "top" to 5, "right" to 5, "zIndex" to 10, "width" to 30, "height" to 30, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "select-icon" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "rgba(255,255,255,0.5)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".selected" to _uM("backgroundColor" to "#007aff", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "icon-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 12)), "item-content" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5")), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "edit-bar" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "select-all" to _pS(_uM("display" to "flex", "alignItems" to "center")), "all-select-icon" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginRight" to 10, "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".selected" to _uM("backgroundColor" to "#007aff", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "select-all-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "delete-btn" to _pS(_uM("backgroundColor" to "#ff4757", "paddingTop" to 10, "paddingRight" to 20, "paddingBottom" to 10, "paddingLeft" to 20, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15)), "delete-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 14, "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/logistics.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/logistics.kt deleted file mode 100644 index d4430123..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/logistics.kt +++ /dev/null @@ -1,195 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -open class GenPagesMallConsumerLogistics : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerLogistics) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerLogistics - val _cache = __ins.renderCache - val orderId = ref("") - val productImage = ref("/static/product1.jpg") - val logisticsStatus = ref("暂无物流信息") - val courierName = ref("") - val courierPhone = ref("") - val trackingNo = ref("") - val trackList = ref(_uA()) - val loadLogisticsInfo = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (orderId.value == "") { - return@w1 - } - try { - console.log("[logistics] 开始加载物流信息, orderId:", orderId.value, " at pages/mall/consumer/logistics.uvue:60") - val order = await(supabaseService.getOrderDetail(orderId.value)) - console.log("[logistics] 获取订单结果:", if (order != null) { - "成功" - } else { - "失败" - } - , " at pages/mall/consumer/logistics.uvue:62") - if (order != null) { - val orderStr = JSON.stringify(order) - console.log("[logistics] 订单JSON:", orderStr, " at pages/mall/consumer/logistics.uvue:66") - val orderParsed = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at pages/mall/consumer/logistics.uvue:67") - if (orderParsed == null) { - console.error("[logistics] 解析订单数据失败", " at pages/mall/consumer/logistics.uvue:69") - return@w1 - } - val orderObj = orderParsed as UTSJSONObject - val trackingNoVal = orderObj.getString("tracking_no") - val carrierNameVal = orderObj.getString("carrier_name") - val shippingStatus = orderObj.getNumber("shipping_status") - console.log("[logistics] tracking_no:", trackingNoVal, " at pages/mall/consumer/logistics.uvue:79") - console.log("[logistics] carrier_name:", carrierNameVal, " at pages/mall/consumer/logistics.uvue:80") - console.log("[logistics] shipping_status:", shippingStatus, " at pages/mall/consumer/logistics.uvue:81") - if (trackingNoVal != null && trackingNoVal != "") { - trackingNo.value = trackingNoVal - } else { - console.log("[logistics] 物流单号为空,订单可能未发货", " at pages/mall/consumer/logistics.uvue:86") - trackingNo.value = "暂无物流单号" - logisticsStatus.value = "商家未填写物流信息" - } - if (carrierNameVal != null && carrierNameVal != "") { - courierName.value = carrierNameVal - if (carrierNameVal.includes("顺丰")) { - courierPhone.value = "95338" - } else if (carrierNameVal.includes("中通")) { - courierPhone.value = "95311" - } else if (carrierNameVal.includes("圆通")) { - courierPhone.value = "95554" - } else if (carrierNameVal.includes("韵达")) { - courierPhone.value = "95546" - } else if (carrierNameVal.includes("申通")) { - courierPhone.value = "95543" - } else { - courierPhone.value = "" - } - } - if (shippingStatus == 2) { - logisticsStatus.value = "已签收" - } else if (shippingStatus == 1) { - logisticsStatus.value = "运输中" - } else { - logisticsStatus.value = "待发货" - } - val itemsRaw = orderObj.get("ml_order_items") - if (itemsRaw != null && UTSArray.isArray(itemsRaw)) { - val items = itemsRaw as UTSArray - if (items.length > 0) { - val firstItem = items[0] - val itemStr = JSON.stringify(firstItem) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/logistics.uvue:126") - if (itemParsed != null) { - val itemObj = itemParsed as UTSJSONObject - val imgUrl = itemObj.getString("image_url") - if (imgUrl != null && imgUrl != "") { - productImage.value = imgUrl - } - } - } - } - val shippedAt = orderObj.getString("shipped_at") - if (shippedAt != null && shippedAt != "") { - val trackItem = TrackItem(desc = "商家已发货,等待快递揽收", time = shippedAt) - trackList.value.push(trackItem) - } - val deliveredAt = orderObj.getString("delivered_at") - if (deliveredAt != null && deliveredAt != "") { - val trackItem = TrackItem(desc = "快件已签收", time = deliveredAt) - trackList.value.unshift(trackItem) - logisticsStatus.value = "已签收" - } - } - } - catch (e: Throwable) { - console.error("加载物流信息失败:", e, " at pages/mall/consumer/logistics.uvue:159") - } - }) - } - onLoad__1(fun(options){ - if (options == null) { - return - } - val orderIdValue = options["orderId"] - if (orderIdValue != null) { - orderId.value = orderIdValue as String - loadLogisticsInfo() - } - } - ) - onMounted(fun(){}) - return fun(): Any? { - return _cE("view", _uM("class" to "logistics-page"), _uA( - _cE("view", _uM("class" to "logistics-header"), _uA( - _cE("view", _uM("class" to "product-info"), _uA( - _cE("image", _uM("class" to "product-image", "src" to productImage.value, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "info-right"), _uA( - _cE("text", _uM("class" to "status-text"), _tD(logisticsStatus.value), 1), - _cE("text", _uM("class" to "courier-name"), _tD(courierName.value) + ": " + _tD(trackingNo.value), 1), - _cE("text", _uM("class" to "phone-text"), "官方电话: " + _tD(courierPhone.value), 1) - )) - )) - )), - _cE("view", _uM("class" to "logistics-body"), _uA( - _cE("view", _uM("class" to "track-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(trackList.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to _nC(_uA( - "track-item", - _uM("first" to (index === 0)) - ))), _uA( - _cE("view", _uM("class" to "node-icon"), _uA( - _cE("view", _uM("class" to "dot")), - if (index !== trackList.value.length - 1) { - _cE("view", _uM("key" to 0, "class" to "line")) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "node-content"), _uA( - _cE("text", _uM("class" to "track-desc"), _tD(item.desc), 1), - _cE("text", _uM("class" to "track-time"), _tD(item.time), 1) - )) - ), 2) - } - ), 128) - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("logistics-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "paddingBottom" to 20)), "logistics-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 10)), "product-info" to _pS(_uM("display" to "flex", "alignItems" to "center")), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 15, "backgroundColor" to "#eeeeee")), "info-right" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "status-text" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold", "marginBottom" to 5)), "courier-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 2)), "phone-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "logistics-body" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15)), "track-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "track-item" to _pS(_uM("display" to "flex", "position" to "relative", "paddingBottom" to 25, "paddingBottom:last-child" to 0)), "node-icon" to _pS(_uM("width" to 20, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginRight" to 15)), "dot" to _uM("" to _uM("width" to 8, "height" to 8, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4), ".first " to _uM("backgroundColor" to "#ff5000", "width" to 12, "height" to 12, "marginTop" to 4, "boxShadow" to "0 0 0 4px rgba(255, 80, 0, 0.2)")), "line" to _pS(_uM("width" to 1, "backgroundColor" to "#eeeeee", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginTop" to 2)), "node-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "track-desc" to _uM("" to _uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.5, "marginBottom" to 5), ".first " to _uM("color" to "#ff5000", "fontWeight" to "bold")), "track-time" to _pS(_uM("fontSize" to 12, "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt deleted file mode 100644 index 15feaa63..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/member/index.kt +++ /dev/null @@ -1,312 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -open class GenPagesMallConsumerMemberIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerMemberIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerMemberIndex - val _cache = __ins.renderCache - val memberInfo = ref(MemberInfo(member_level = 0, level_name = "普通会员", discount = 1.0, total_spent = 0, next_level = null, progress_percent = 0, manual_level = false)) - val levels = ref(_uA()) - val logs = ref(_uA()) - val logsLoading = ref(false) - val loadMemberInfo = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.getUserMemberInfo()) - val info = MemberInfo(member_level = result.getNumber("member_level") ?: 0, level_name = result.getString("level_name") ?: "普通会员", discount = result.getNumber("discount") ?: 1.0, total_spent = result.getNumber("total_spent") ?: 0, next_level = null, progress_percent = result.getNumber("progress_percent") ?: 0, manual_level = result.getBoolean("manual_level") ?: false) - val nextLevelRaw = result.get("next_level") - if (nextLevelRaw != null) { - var nextLevelObj: UTSJSONObject? = null - if (nextLevelRaw is UTSJSONObject) { - nextLevelObj = nextLevelRaw as UTSJSONObject - } else { - nextLevelObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(nextLevelRaw)), " at pages/mall/consumer/member/index.uvue:173") as UTSJSONObject - } - val nextLevel = MemberLevel(id = nextLevelObj.getNumber("id") ?: 0, name = nextLevelObj.getString("name") ?: "", min_amount = nextLevelObj.getNumber("min_amount") ?: 0, discount = 1.0, description = null) - info.next_level = nextLevel - } - memberInfo.value = info - } - catch (e: Throwable) { - console.error("加载会员信息失败:", e, " at pages/mall/consumer/member/index.uvue:186") - } - }) - } - val loadLevels = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.getMemberLevels()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:201") as UTSJSONObject - } - parsed.push(MemberLevel(id = itemObj.getNumber("id") ?: 0, name = itemObj.getString("name") ?: "", min_amount = itemObj.getNumber("min_amount") ?: 0, discount = itemObj.getNumber("discount") ?: 1.0, description = itemObj.getString("description"))) - i++ - } - } - levels.value = parsed - } - catch (e: Throwable) { - console.error("加载会员等级失败:", e, " at pages/mall/consumer/member/index.uvue:215") - } - }) - } - val loadLogs = fun(): UTSPromise { - return wrapUTSPromise(suspend { - logsLoading.value = true - try { - val result = await(supabaseService.getMemberLevelLogs()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/member/index.uvue:231") as UTSJSONObject - } - parsed.push(LevelLog(id = itemObj.getString("id") ?: "", old_level = itemObj.getNumber("old_level") ?: 0, new_level = itemObj.getNumber("new_level") ?: 0, reason = itemObj.getString("reason"), created_at = itemObj.getString("created_at") ?: "")) - i++ - } - } - logs.value = parsed - } - catch (e: Throwable) { - console.error("加载变更记录失败:", e, " at pages/mall/consumer/member/index.uvue:245") - } - finally { - logsLoading.value = false - } - }) - } - val getDiscountText = fun(discount: Number): String { - if (discount >= 1) { - return "无折扣" - } - return Math.round(discount * 100) / 10 + "折" - } - val getNextLevelName = fun(): String { - if (memberInfo.value.next_level != null) { - return memberInfo.value.next_level!!.name - } - return "" - } - val getNextLevelMinAmount = fun(): Number { - if (memberInfo.value.next_level != null) { - return memberInfo.value.next_level!!.min_amount - } - return 0 - } - val getRemainingAmount = fun(): Number { - if (memberInfo.value.next_level != null) { - return memberInfo.value.next_level!!.min_amount - memberInfo.value.total_spent - } - return 0 - } - val getLevelName = fun(level: Number): String { - run { - var i: Number = 0 - while(i < levels.value.length){ - if (levels.value[i].id === level) { - return levels.value[i].name - } - i++ - } - } - return "普通会员" - } - val formatDate = fun(dateStr: String): String { - if (dateStr === "") { - return "" - } - val date = Date(dateStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d - } - onMounted(fun(){ - loadMemberInfo() - loadLevels() - loadLogs() - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "member-page", "scroll-y" to ""), _uA( - _cE("view", _uM("class" to "member-header"), _uA( - _cE("view", _uM("class" to "member-info"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "level-badge", - "level-" + memberInfo.value.member_level - ))), _uA( - _cE("text", _uM("class" to "level-name"), _tD(memberInfo.value.level_name), 1) - ), 2), - _cE("view", _uM("class" to "discount-info"), _uA( - _cE("text", _uM("class" to "discount-value"), _tD(getDiscountText(memberInfo.value.discount)), 1), - _cE("text", _uM("class" to "discount-label"), "会员折扣") - )) - )) - )), - if (memberInfo.value.next_level != null) { - _cE("view", _uM("key" to 0, "class" to "progress-section"), _uA( - _cE("view", _uM("class" to "progress-header"), _uA( - _cE("text", _uM("class" to "progress-title"), "距离" + _tD(getNextLevelName()) + "还需", 1), - _cE("text", _uM("class" to "progress-amount"), _tD(getRemainingAmount()) + "元", 1) - )), - _cE("view", _uM("class" to "progress-bar"), _uA( - _cE("view", _uM("class" to "progress-fill", "style" to _nS(_uM("width" to (memberInfo.value.progress_percent + "%")))), null, 4) - )), - _cE("view", _uM("class" to "progress-footer"), _uA( - _cE("text", _uM("class" to "current-amount"), "已消费 " + _tD(memberInfo.value.total_spent) + "元", 1), - _cE("text", _uM("class" to "target-amount"), "目标 " + _tD(getNextLevelMinAmount()) + "元", 1) - )) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "levels-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "会员等级") - )), - _cE("view", _uM("class" to "level-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(levels.value, fun(level, __key, __index, _cached): Any { - return _cE("view", _uM("class" to _nC(_uA( - "level-item", - _uM("current" to (level.id === memberInfo.value.member_level)) - )), "key" to level.id), _uA( - _cE("view", _uM("class" to "level-left"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "level-icon", - "level-bg-" + level.id - ))), _uA( - _cE("text", _uM("class" to "icon-text"), _tD(level.name.charAt(0)), 1) - ), 2), - _cE("view", _uM("class" to "level-detail"), _uA( - _cE("text", _uM("class" to "level-title"), _tD(level.name), 1), - _cE("text", _uM("class" to "level-condition"), _tD(if (level.description != null && level.description != "") { - level.description - } else { - ("累计消费" + level.min_amount + "元") - } - ), 1) - )) - )), - _cE("view", _uM("class" to "level-right"), _uA( - _cE("text", _uM("class" to "level-discount"), _tD(getDiscountText(level.discount)), 1), - if (level.id === memberInfo.value.member_level) { - _cE("view", _uM("key" to 0, "class" to "current-tag"), _uA( - _cE("text", _uM("class" to "tag-text"), "当前") - )) - } else { - _cC("v-if", true) - } - )) - ), 2) - } - ), 128) - )) - )), - _cE("view", _uM("class" to "benefits-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "会员权益") - )), - _cE("view", _uM("class" to "benefit-list"), _uA( - _cE("view", _uM("class" to "benefit-item"), _uA( - _cE("text", _uM("class" to "benefit-icon"), "💰"), - _cE("text", _uM("class" to "benefit-text"), "专属折扣价格") - )), - _cE("view", _uM("class" to "benefit-item"), _uA( - _cE("text", _uM("class" to "benefit-icon"), "🎁"), - _cE("text", _uM("class" to "benefit-text"), "生日专属优惠") - )), - _cE("view", _uM("class" to "benefit-item"), _uA( - _cE("text", _uM("class" to "benefit-icon"), "🚀"), - _cE("text", _uM("class" to "benefit-text"), "优先发货权益") - )), - _cE("view", _uM("class" to "benefit-item"), _uA( - _cE("text", _uM("class" to "benefit-icon"), "📞"), - _cE("text", _uM("class" to "benefit-text"), "专属客服通道") - )) - )) - )), - _cE("view", _uM("class" to "logs-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "等级变更记录") - )), - if (isTrue(logsLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - if (logs.value.length === 0) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无变更记录") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "log-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(logs.value, fun(log, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "log-item", "key" to log.id), _uA( - _cE("view", _uM("class" to "log-left"), _uA( - _cE("text", _uM("class" to "log-change"), _tD(getLevelName(log.old_level)) + " → " + _tD(getLevelName(log.new_level)), 1), - _cE("text", _uM("class" to "log-reason"), _tD(if (log.reason != null && log.reason != "") { - log.reason - } else { - "系统升级" - } - ), 1) - )), - _cE("text", _uM("class" to "log-time"), _tD(formatDate(log.created_at)), 1) - )) - } - ), 128) - )) - } - } - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("member-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "member-header" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #667eea 0%, #764ba2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 30, "paddingRight" to 20, "paddingBottom" to 30, "paddingLeft" to 20, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "member-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "level-badge" to _uM("" to _uM("paddingTop" to 8, "paddingRight" to 24, "paddingBottom" to 8, "paddingLeft" to 24, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginBottom" to 16), ".level-0" to _uM("backgroundColor" to "rgba(255,255,255,0.3)"), ".level-1" to _uM("backgroundImage" to "linear-gradient(135deg, #cd7f32 0%, #daa520 100%)", "backgroundColor" to "rgba(0,0,0,0)"), ".level-2" to _uM("backgroundImage" to "linear-gradient(135deg, #c0c0c0 0%, #e8e8e8 100%)", "backgroundColor" to "rgba(0,0,0,0)"), ".level-3" to _uM("backgroundImage" to "linear-gradient(135deg, #ffd700 0%, #ffec8b 100%)", "backgroundColor" to "rgba(0,0,0,0)"), ".level-4" to _uM("backgroundImage" to "linear-gradient(135deg, #b9f2ff 0%, #89cff0 100%)", "backgroundColor" to "rgba(0,0,0,0)"), ".level-5" to _uM("backgroundImage" to "linear-gradient(135deg, #ff6b6b 0%, #ff8e8e 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "level-name" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#FFFFFF")), "discount-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "discount-value" to _pS(_uM("fontSize" to 36, "fontWeight" to "bold", "color" to "#FFFFFF")), "discount-label" to _pS(_uM("fontSize" to 14, "color" to "rgba(255,255,255,0.8)", "marginTop" to 4)), "progress-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "progress-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12)), "progress-title" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "progress-amount" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#667eea")), "progress-bar" to _pS(_uM("height" to 8, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "overflow" to "hidden")), "progress-fill" to _pS(_uM("height" to "100%", "backgroundImage" to "linear-gradient(90deg, #667eea 0%, #764ba2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "progress-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "marginTop" to 8)), "current-amount" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "target-amount" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "levels-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "overflow" to "hidden")), "section-header" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "level-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "level-item" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9"), ".current" to _uM("backgroundColor" to "#f8f5ff")), "level-left" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "level-icon" to _pS(_uM("width" to 40, "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginRight" to 12)), "level-bg-0" to _pS(_uM("backgroundColor" to "#f0f0f0")), "level-bg-1" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #cd7f32 0%, #daa520 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "level-bg-2" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #c0c0c0 0%, #e8e8e8 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "level-bg-3" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ffd700 0%, #ffec8b 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "level-bg-4" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #b9f2ff 0%, #89cff0 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "level-bg-5" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff6b6b 0%, #ff8e8e 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "icon-text" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#FFFFFF")), "level-detail" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "level-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333")), "level-condition" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 2)), "level-right" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "flex-end")), "level-discount" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#667eea")), "current-tag" to _pS(_uM("backgroundColor" to "#667eea", "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 4)), "tag-text" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF")), "benefits-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "benefit-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "benefit-item" to _pS(_uM("width" to "50%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 8, "paddingBottom" to 12, "paddingLeft" to 8)), "benefit-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 8)), "benefit-text" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "logs-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "loading-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "log-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "log-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 16, "paddingBottom" to 12, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "log-left" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "log-change" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "log-reason" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 2)), "log-time" to _pS(_uM("fontSize" to 12, "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt deleted file mode 100644 index dde8dcd9..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/message-detail.kt +++ /dev/null @@ -1,205 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerMessageDetail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerMessageDetail) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerMessageDetail - val _cache = __ins.renderCache - val message = ref(MessageType(id = "", type = "", title = "", content = "", icon_url = null, link_url = null, extra_data = null, created_at = "")) - val extraInfo = ref(_uA()) - val formatLabel = fun(key: String): String { - if (key === "share_code") { - return "分享码" - } - if (key === "product_name") { - return "商品名称" - } - if (key === "reward_amount") { - return "奖励金额" - } - if (key === "order_no") { - return "订单号" - } - if (key === "buyer_name") { - return "购买者" - } - if (key === "quantity") { - return "数量" - } - return key - } - val parseExtraData = fun(data: Any){ - extraInfo.value = _uA() - if (data == null) { - return - } - try { - var dataObj: UTSJSONObject? = null - if (UTSAndroid.`typeof`(data) === "string") { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(data as String), " at pages/mall/consumer/message-detail.uvue:82") - if (parsed != null) { - dataObj = parsed as UTSJSONObject - } - } else if (data is UTSJSONObject) { - dataObj = data as UTSJSONObject - } else { - dataObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(data)), " at pages/mall/consumer/message-detail.uvue:89") as UTSJSONObject - } - if (dataObj != null) { - val keys = UTSJSONObject.keys(dataObj) - run { - var i: Number = 0 - while(i < keys.length){ - val key = keys[i] as String - val value = dataObj.get(key) - if (value != null) { - val item = ExtraInfoItem(label = formatLabel(key), value = "" + value) - extraInfo.value.push(item) - } - i++ - } - } - } - } - catch (e: Throwable) { - console.error("解析extra_data失败:", e, " at pages/mall/consumer/message-detail.uvue:107") - } - } - val loadMessage = fun(id: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - val notifications = await(supabaseService.getUserNotifications(null)) - val found = notifications.find(fun(n): Boolean { - return n.id === id - } - ) - if (found != null) { - val extraData = found.extra_data - val msg = MessageType(id = found.id, type = found.type, title = found.title, content = found.content, icon_url = found.icon_url, link_url = found.link_url, extra_data = extraData, created_at = found.created_at ?: "") - message.value = msg - if (extraData != null) { - parseExtraData(extraData) - } - } - } - catch (e: Throwable) { - console.error("加载消息失败:", e, " at pages/mall/consumer/message-detail.uvue:135") - } - }) - } - val formatTime = fun(timeStr: String): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val hh = date.getHours().toString(10).padStart(2, "0") - val mm = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm - } - val goToLink = fun(){ - val url = message.value.link_url - if (url != null && url !== "") { - if (url.startsWith("/pages/")) { - uni_navigateTo(NavigateToOptions(url = url)) - } else { - uni_setClipboardData(SetClipboardDataOptions(data = url, success = fun(_){ - uni_showToast(ShowToastOptions(title = "链接已复制", icon = "success")) - } - )) - } - } - } - onLoad__1(fun(options){ - if (options != null) { - val idVal = options["id"] - if (idVal != null) { - loadMessage(idVal as String) - } - } - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "message-detail-page", "scroll-y" to ""), _uA( - _cE("view", _uM("class" to "message-header"), _uA( - _cE("text", _uM("class" to "message-title"), _tD(message.value.title), 1), - _cE("text", _uM("class" to "message-time"), _tD(formatTime(message.value.created_at)), 1) - )), - _cE("view", _uM("class" to "message-content"), _uA( - _cE("text", _uM("class" to "content-text"), _tD(message.value.content), 1) - )), - if (isTrue(message.value.link_url)) { - _cE("view", _uM("key" to 0, "class" to "message-action", "onClick" to goToLink), _uA( - _cE("text", _uM("class" to "action-text"), "查看详情"), - _cE("text", _uM("class" to "action-arrow"), "›") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(message.value.icon_url)) { - _cE("view", _uM("key" to 1, "class" to "message-image"), _uA( - _cE("image", _uM("src" to message.value.icon_url, "mode" to "widthFix", "class" to "icon-image"), null, 8, _uA( - "src" - )) - )) - } else { - _cC("v-if", true) - } - , - if (extraInfo.value.length > 0) { - _cE("view", _uM("key" to 2, "class" to "extra-info"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(extraInfo.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "extra-item"), _uA( - _cE("text", _uM("class" to "extra-label"), _tD(item.label), 1), - _cE("text", _uM("class" to "extra-value"), _tD(item.value), 1) - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("message-detail-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "message-header" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 20, "paddingRight" to 16, "paddingBottom" to 20, "paddingLeft" to 16, "marginBottom" to 8)), "message-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "display" to "flex", "marginBottom" to 10)), "message-time" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "message-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "content-text" to _pS(_uM("fontSize" to 15, "color" to "#333333", "lineHeight" to 1.8)), "message-action" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "action-text" to _pS(_uM("fontSize" to 15, "color" to "#ff6b35")), "action-arrow" to _pS(_uM("fontSize" to 18, "color" to "#cccccc")), "message-image" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "icon-image" to _pS(_uM("width" to "100%", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "extra-info" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "extra-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "paddingTop" to 10, "paddingRight" to 0, "paddingBottom" to 10, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "extra-label" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "extra-value" to _pS(_uM("fontSize" to 14, "color" to "#333333"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt deleted file mode 100644 index 3d9509fd..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/my-reviews.kt +++ /dev/null @@ -1,436 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.previewImage as uni_previewImage -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerMyReviews : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerMyReviews) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerMyReviews - val _cache = __ins.renderCache - val activeTab = ref("published") - val reviews = ref(_uA()) - val pendingItems = ref(_uA()) - val loading = ref(true) - val showAppendModal = ref(false) - val appendContent = ref("") - val selectedReview = ref(null) - val defaultImage: String = "/static/images/default-product.png" - val loadReviews = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val result = await(supabaseService.getMyReviews()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - var reviewObj: UTSJSONObject - if (item is UTSJSONObject) { - reviewObj = item as UTSJSONObject - } else { - reviewObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/my-reviews.uvue:180") as UTSJSONObject - } - var images: UTSArray = _uA() - val imagesRaw = reviewObj.get("images") - if (imagesRaw != null && UTSAndroid.`typeof`(imagesRaw) === "string") { - try { - val parsedImages = UTSAndroid.consoleDebugError(JSON.parse(imagesRaw as String), " at pages/mall/consumer/my-reviews.uvue:187") - if (UTSArray.isArray(parsedImages)) { - images = parsedImages as UTSArray - } - } - catch (e: Throwable) { - console.error("解析图片失败:", e, " at pages/mall/consumer/my-reviews.uvue:192") - } - } - val review = MyReviewItem(id = reviewObj.getString("id") ?: "", product_id = reviewObj.getString("product_id") ?: "", product_name = reviewObj.getString("product_name") ?: "", product_image = reviewObj.getString("product_image") ?: "", rating = reviewObj.getNumber("rating") ?: 5, content = reviewObj.getString("content") ?: "", images = images, append_content = reviewObj.getString("append_content"), can_append = reviewObj.getBoolean("can_append") ?: false, can_edit = reviewObj.getBoolean("can_edit") ?: false, created_at = reviewObj.getString("created_at") ?: "") - parsed.push(review) - i++ - } - } - reviews.value = parsed - } - catch (e: Throwable) { - console.error("加载评价失败:", e, " at pages/mall/consumer/my-reviews.uvue:214") - } - finally { - loading.value = false - } - }) - } - val loadPendingItems = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val orders = await(supabaseService.getOrders(4)) - val pending: UTSArray = _uA() - run { - var i: Number = 0 - while(i < orders.length){ - val order = orders[i] - var orderObj: UTSJSONObject - if (order is UTSJSONObject) { - orderObj = order as UTSJSONObject - } else { - orderObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(order)), " at pages/mall/consumer/my-reviews.uvue:232") as UTSJSONObject - } - val orderId = orderObj.getString("id") ?: "" - val itemsRaw = orderObj.get("items") - if (itemsRaw != null && UTSArray.isArray(itemsRaw)) { - val items = itemsRaw as UTSArray - run { - var j: Number = 0 - while(j < items.length){ - val orderItem = items[j] - var itemObj: UTSJSONObject - if (orderItem is UTSJSONObject) { - itemObj = orderItem as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(orderItem)), " at pages/mall/consumer/my-reviews.uvue:246") as UTSJSONObject - } - pending.push(PendingItem(order_id = orderId, product_id = itemObj.getString("product_id") ?: "", product_name = itemObj.getString("product_name") ?: "", product_image = itemObj.getString("product_image") ?: "", order_time = orderObj.getString("created_at") ?: "")) - j++ - } - } - } - i++ - } - } - pendingItems.value = pending - } - catch (e: Throwable) { - console.error("加载待评价商品失败:", e, " at pages/mall/consumer/my-reviews.uvue:262") - } - finally { - loading.value = false - } - }) - } - val switchTab = fun(tab: String): Unit { - activeTab.value = tab - if (tab === "published" && reviews.value.length === 0) { - loadReviews() - } else if (tab === "pending" && pendingItems.value.length === 0) { - loadPendingItems() - } - } - val goToProduct = fun(productId: String): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - } - val goToReview = fun(item: PendingItem): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/review?order_id=" + item.order_id)) - } - val showAppendPopup = fun(review: MyReviewItem): Unit { - selectedReview.value = review - appendContent.value = "" - showAppendModal.value = true - } - val closeAppendPopup = fun(): Unit { - showAppendModal.value = false - selectedReview.value = null - appendContent.value = "" - } - val submitAppend = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (selectedReview.value == null || appendContent.value.trim() === "") { - uni_showToast(ShowToastOptions(title = "请输入评价内容", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "提交中...")) - try { - val success = await(supabaseService.appendReview(selectedReview.value!!.id, appendContent.value.trim(), _uA())) - if (success) { - selectedReview.value!!.append_content = appendContent.value.trim() - selectedReview.value!!.can_append = false - closeAppendPopup() - uni_showToast(ShowToastOptions(title = "追加成功", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "追加失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("追加评价失败:", e, " at pages/mall/consumer/my-reviews.uvue:325") - uni_showToast(ShowToastOptions(title = "追加失败", icon = "none")) - } - finally { - uni_hideLoading() - } - }) - } - val doDelete = fun(review: MyReviewItem): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - try { - val success = await(supabaseService.deleteReview(review.id)) - if (success) { - val index = reviews.value.indexOf(review) - if (index > -1) { - reviews.value.splice(index, 1) - } - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("删除评价失败:", e, " at pages/mall/consumer/my-reviews.uvue:347") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - finally { - uni_hideLoading() - } - }) - } - val confirmDelete = fun(review: MyReviewItem): Unit { - uni_showModal(ShowModalOptions(title = "提示", content = "确定要删除这条评价吗?", success = fun(res){ - if (res.confirm) { - doDelete(review) - } - } - )) - } - val previewImage = fun(images: UTSArray, index: Number): Unit { - uni_previewImage(PreviewImageOptions(urls = images, current = index)) - } - val formatTime = fun(timeStr: String?): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d - } - onMounted(fun(){ - loadReviews() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "my-reviews-page"), _uA( - _cE("view", _uM("class" to "tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - _uM("active" to (activeTab.value === "published")) - )), "onClick" to fun(){ - switchTab("published") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "已评价") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - _uM("active" to (activeTab.value === "pending")) - )), "onClick" to fun(){ - switchTab("pending") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "待评价") - ), 10, _uA( - "onClick" - )) - )), - if (activeTab.value === "published") { - _cE("view", _uM("key" to 0, "class" to "review-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(reviews.value, fun(review, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "review-item", "key" to review.id), _uA( - _cE("view", _uM("class" to "product-info", "onClick" to fun(){ - goToProduct(review.product_id) - }), _uA( - _cE("image", _uM("class" to "product-image", "src" to if (review.product_image.length > 0) { - review.product_image - } else { - defaultImage - }, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-detail"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(review.product_name), 1), - _cE("view", _uM("class" to "rating-row"), _uA( - _cE("view", _uM("class" to "rating-stars"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star", - _uM("filled" to (star <= review.rating)) - ))), "★", 2) - }), 64) - )), - _cE("text", _uM("class" to "review-time"), _tD(formatTime(review.created_at)), 1) - )) - )) - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "review-content"), _uA( - _cE("text", _uM("class" to "review-text"), _tD(review.content), 1) - )), - if (review.images.length > 0) { - _cE("view", _uM("key" to 0, "class" to "review-images"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(review.images.slice(0, 4), fun(img, idx, __index, _cached): Any { - return _cE("image", _uM("key" to idx, "class" to "review-image", "src" to img, "mode" to "aspectFill", "onClick" to fun(){ - previewImage(review.images, idx) - }), null, 8, _uA( - "src", - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(review.append_content)) { - _cE("view", _uM("key" to 1, "class" to "review-append"), _uA( - _cE("text", _uM("class" to "append-label"), "追评:"), - _cE("text", _uM("class" to "append-text"), _tD(review.append_content), 1) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "review-actions"), _uA( - if (isTrue(review.can_append)) { - _cE("view", _uM("key" to 0, "class" to "action-btn append", "onClick" to fun(){ - showAppendPopup(review) - }), _uA( - _cE("text", _uM("class" to "action-text"), "追加评价") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "action-btn delete", "onClick" to fun(){ - confirmDelete(review) - }), _uA( - _cE("text", _uM("class" to "action-text"), "删除") - ), 8, _uA( - "onClick" - )) - )) - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === "pending") { - _cE("view", _uM("key" to 1, "class" to "pending-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(pendingItems.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "pending-item", "key" to item.order_id), _uA( - _cE("view", _uM("class" to "product-info"), _uA( - _cE("image", _uM("class" to "product-image", "src" to if (item.product_image.length > 0) { - item.product_image - } else { - defaultImage - }, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-detail"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(item.product_name), 1), - _cE("text", _uM("class" to "order-time"), "下单时间:" + _tD(formatTime(item.order_time)), 1) - )) - )), - _cE("view", _uM("class" to "pending-actions"), _uA( - _cE("button", _uM("class" to "review-btn", "onClick" to fun(){ - goToReview(item) - }), "去评价", 8, _uA( - "onClick" - )) - )) - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && ((activeTab.value === "published" && reviews.value.length === 0) || (activeTab.value === "pending" && pendingItems.value.length === 0)))) { - _cE("view", _uM("key" to 2, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), _tD(if (activeTab.value === "published") { - "暂无评价记录" - } else { - "暂无待评价商品" - }), 1) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 3, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showAppendModal.value)) { - _cE("view", _uM("key" to 4, "class" to "append-popup", "onClick" to closeAppendPopup), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "追加评价"), - _cE("text", _uM("class" to "popup-close", "onClick" to closeAppendPopup), "×") - )), - _cE("textarea", _uM("class" to "append-input", "modelValue" to appendContent.value, "onInput" to fun(`$event`: UniInputEvent){ - appendContent.value = `$event`.detail.value - }, "placeholder" to "请输入追加评价内容", "maxlength" to 500), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("view", _uM("class" to "popup-footer"), _uA( - _cE("button", _uM("class" to "cancel-btn", "onClick" to closeAppendPopup), "取消"), - _cE("button", _uM("class" to "submit-btn", "onClick" to submitAppend), "提交") - )) - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("my-reviews-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF")), "tab-item" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 14, "paddingRight" to 0, "paddingBottom" to 14, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)"), ".active" to _uM("borderBottomColor" to "#ff6b35")), "tab-text" to _uM("" to _uM("fontSize" to 15, "color" to "#666666"), ".tab-item.active " to _uM("color" to "#ff6b35", "fontWeight" to "bold")), "review-list" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "review-item" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "marginBottom" to 8)), "product-info" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "product-detail" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 10, "display" to "flex", "flexDirection" to "column", "justifyContent" to "center")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lines" to 2, "textOverflow" to "ellipsis")), "rating-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to 6)), "rating-stars" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "star" to _uM("" to _uM("fontSize" to 12, "color" to "#dddddd"), ".filled" to _uM("color" to "#ff6b35")), "review-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "review-content" to _pS(_uM("marginTop" to 10)), "review-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to "20px")), "review-images" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginTop" to 10)), "review-image" to _pS(_uM("width" to 70, "height" to 70, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 8, "marginBottom" to 8)), "review-append" to _pS(_uM("backgroundColor" to "#f9f9f9", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginTop" to 10)), "append-label" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35")), "append-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "review-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end", "marginTop" to 10, "paddingTop" to 10, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0")), "action-btn" to _uM("" to _uM("paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "marginLeft" to 10), ".append" to _uM("backgroundColor" to "#fff5f0"), ".delete" to _uM("backgroundColor" to "#f5f5f5")), "action-text" to _uM(".action-btn.append " to _uM("color" to "#ff6b35"), ".action-btn.delete " to _uM("color" to "#999999"), "" to _uM("fontSize" to 13)), "pending-list" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "pending-item" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "marginBottom" to 8)), "pending-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end", "marginTop" to 10, "paddingTop" to 10, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0")), "review-btn" to _pS(_uM("backgroundColor" to "#ff6b35", "color" to "#FFFFFF", "fontSize" to 14, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 0, "paddingRight" to 20, "paddingBottom" to 0, "paddingLeft" to 20, "height" to 32, "lineHeight" to "32px")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4)), "empty-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "append-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "flex-end", "justifyContent" to "center", "zIndex" to 1000)), "popup-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "width" to "100%", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "popup-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "popup-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "popup-close" to _pS(_uM("fontSize" to 24, "color" to "#999999")), "append-input" to _pS(_uM("width" to "100%", "height" to 120, "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "fontSize" to 14)), "popup-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginTop" to 16)), "cancel-btn" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "color" to "#666666", "fontSize" to 16, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "height" to 44, "lineHeight" to "44px", "marginRight" to 10)), "submit-btn" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#ff6b35", "color" to "#FFFFFF", "fontSize" to 16, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "height" to 44, "lineHeight" to "44px"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/order-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/order-detail.kt deleted file mode 100644 index ba0bd12f..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/order-detail.kt +++ /dev/null @@ -1,817 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.makePhoneCall as uni_makePhoneCall -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onBackPress as onBackPress__1 -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.redirectTo as uni_redirectTo -import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerOrderDetail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerOrderDetail) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerOrderDetail - val _cache = __ins.renderCache - val orderId = ref("") - val order = ref(null) - val orderItems = ref(_uA()) - val shopName = ref("店铺名称") - val deliveryAddress = ref(null) - val deliveryInfo = ref(null) - val getStatusText = fun(): String { - val status = order.value?.order_status ?: 0 - if (status == 1) { - return "待付款" - } - if (status == 2) { - return "待发货" - } - if (status == 3) { - return "待收货" - } - if (status == 4) { - return "已完成" - } - if (status == 5) { - return "已取消" - } - if (status == 6) { - return "退款中" - } - if (status == 7) { - return "已退款" - } - return "未知状态" - } - val getStatusDesc = fun(): String { - val status = order.value?.order_status ?: 0 - if (status == 1) { - return "请尽快完成支付" - } - if (status == 2) { - return "商家正在打包商品" - } - if (status == 3) { - return "商品正在赶往您的地址" - } - if (status == 4) { - return "订单已完成,感谢支持" - } - if (status == 5) { - return "订单已取消" - } - if (status == 6) { - return "售后处理中" - } - if (status == 7) { - return "钱款已退回" - } - return "" - } - val getStatusIcon = fun(): String { - val status = order.value?.order_status ?: 0 - if (status === 1) { - return "💳" - } - if (status === 2) { - return "📦" - } - if (status === 3) { - return "🚚" - } - if (status === 4) { - return "✅" - } - return "📝" - } - val getStatusClass = fun(): String { - val status = order.value?.order_status ?: 0 - return "status-" + status - } - val getFullAddress = fun(addr: Any): String { - if (addr == null) { - return "" - } - if (UTSAndroid.`typeof`(addr) === "string") { - return addr as String - } - try { - val addrObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(addr)), " at pages/mall/consumer/order-detail.uvue:268") as UTSJSONObject - val addressField = addrObj.getString("address") - if (addressField != null && addressField != "") { - return addressField - } - val province = addrObj.getString("province") ?: "" - val city = addrObj.getString("city") ?: "" - val district = addrObj.getString("district") ?: "" - val detail = addrObj.getString("detail") ?: addrObj.getString("address_detail") ?: "" - return province + city + district + detail - } - catch (e: Throwable) { - console.error("[getFullAddress] 解析地址失败:", e, " at pages/mall/consumer/order-detail.uvue:278") - return "" - } - } - fun gen_formatSpecs_fn(specs: Any): String { - if (specs == null) { - return "" - } - if (UTSAndroid.`typeof`(specs) === "string") { - if (specs as String == "") { - return "" - } - try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(specs as String), " at pages/mall/consumer/order-detail.uvue:288") - if (parsed != null) { - return gen_formatSpecs_fn(parsed) - } - return specs as String - } - catch (e: Throwable) { - return specs as String - } - } - try { - val specStr = JSON.stringify(specs) - val specObj = UTSAndroid.consoleDebugError(JSON.parse(specStr), " at pages/mall/consumer/order-detail.uvue:300") as UTSJSONObject - val keys = _uA( - "Color", - "Size", - "颜色", - "尺寸", - "规格", - "默认", - "spec", - "color", - "size" - ) - val parts: UTSArray = _uA() - run { - var i: Number = 0 - while(i < keys.length){ - val key = keys[i] - val kVal = specObj.get(key) - if (kVal != null && kVal != "") { - parts.push(kVal.toString()) - } - i++ - } - } - if (parts.length > 0) { - return parts.join(" | ") - } - return specStr.replace(UTSRegExp("[{}\"]", "g"), "").replace(UTSRegExp(":", "g"), ": ").replace(UTSRegExp(",", "g"), " | ") - } - catch (e: Throwable) { - return "" - } - } - val formatSpecs = ::gen_formatSpecs_fn - val getSpecText = fun(specs: Any): String { - return formatSpecs(specs) - } - val formatTime = fun(iso: String): String { - if (iso == "") { - return "" - } - val d = Date(iso) - return "" + d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes() - } - val getPaymentMethodText = fun(method: Any): String { - return "在线支付" - } - val copyText = fun(text: String){ - if (text == "") { - return - } - uni_setClipboardData(SetClipboardDataOptions(data = text, success = fun(_){ - return uni_showToast(ShowToastOptions(title = "已复制")) - } - )) - } - val loadShopInfo = fun(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - val result = await(supaInstance.from("ml_shops").select("shop_name").eq("merchant_id", merchantId).limit(1).execute()) - if (result.error != null) { - console.error("[loadShopInfo] 获取店铺信息失败:", result.error, " at pages/mall/consumer/order-detail.uvue:359") - return@w1 - } - val rawData = result.data - if (rawData == null) { - return@w1 - } - val rawList = rawData as UTSArray - if (rawList.length == 0) { - return@w1 - } - val shopData = rawList[0] - val shopObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(shopData)), " at pages/mall/consumer/order-detail.uvue:370") as UTSJSONObject - shopName.value = (shopObj.getString("shop_name") ?: "店铺") as String - } - catch (e: Throwable) { - console.error("[loadShopInfo] 获取店铺信息异常:", e, " at pages/mall/consumer/order-detail.uvue:373") - } - }) - } - val loadOrderDetail = fun(): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "加载中")) - try { - val data = await(supabaseService.getOrderDetail(orderId.value)) - console.log("[loadOrderDetail] 获取到的数据:", JSON.stringify(data), " at pages/mall/consumer/order-detail.uvue:381") - if (data != null) { - val dataObj = data as UTSJSONObject - order.value = OrderType(order_no = (dataObj.get("order_no") ?: "") as String, order_status = (dataObj.get("order_status") ?: 1) as Number, total_amount = (dataObj.get("total_amount") ?: 0) as Number, product_amount = (dataObj.get("product_amount") ?: 0) as Number, shipping_fee = (dataObj.get("shipping_fee") ?: 0) as Number, discount_amount = (dataObj.get("discount_amount") ?: 0) as Number, payment_method = (dataObj.get("payment_method") ?: "") as String, created_at = (dataObj.get("created_at") ?: "") as String, paid_at = (dataObj.get("paid_at") ?: "") as String, shipped_at = (dataObj.get("shipped_at") ?: "") as String, completed_at = (dataObj.get("completed_at") ?: "") as String, merchant_id = (dataObj.get("merchant_id") ?: "") as String, shipping_address = (dataObj.get("shipping_address") ?: null) as Any) - val itemsRaw = dataObj.get("ml_order_items") - console.log("[loadOrderDetail] 订单商品数据:", itemsRaw, " at pages/mall/consumer/order-detail.uvue:403") - if (itemsRaw != null && UTSArray.isArray(itemsRaw)) { - val items = itemsRaw as UTSArray - orderItems.value = _uA() - run { - var i: Number = 0 - while(i < items.length){ - val item = items[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/order-detail.uvue:410") as UTSJSONObject - val orderItem = OrderItemType__1(id = (itemObj.get("id") ?: "") as String, product_id = (itemObj.get("product_id") ?: "") as String, product_name = (itemObj.get("product_name") ?: "未知商品") as String, price = (itemObj.get("price") ?: 0) as Number, quantity = (itemObj.get("quantity") ?: 1) as Number, image_url = (itemObj.get("image_url") ?: "") as String, specifications = (itemObj.get("specifications") ?: "") as Any) - orderItems.value.push(orderItem) - i++ - } - } - } - val addressRaw = dataObj.get("shipping_address") - console.log("[loadOrderDetail] 收货地址数据:", addressRaw, " at pages/mall/consumer/order-detail.uvue:426") - if (addressRaw != null) { - var addressObj: UTSJSONObject - if (addressRaw is UTSJSONObject) { - addressObj = addressRaw as UTSJSONObject - } else if (UTSAndroid.`typeof`(addressRaw) === "string") { - addressObj = UTSAndroid.consoleDebugError(JSON.parse(addressRaw as String), " at pages/mall/consumer/order-detail.uvue:433") as UTSJSONObject - } else { - addressObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(addressRaw)), " at pages/mall/consumer/order-detail.uvue:435") as UTSJSONObject - } - val province = (addressObj.get("province") ?: "") as String - val city = (addressObj.get("city") ?: "") as String - val district = (addressObj.get("district") ?: "") as String - val detail = (addressObj.get("detail") ?: (addressObj.get("address_detail") ?: "")) as String - deliveryAddress.value = AddressType(name = (addressObj.get("name") ?: (addressObj.get("recipient_name") ?: (addressObj.get("receiver_name") ?: ""))) as String, phone = (addressObj.get("phone") ?: (addressObj.get("recipient_phone") ?: (addressObj.get("receiver_phone") ?: ""))) as String, province = province, city = city, district = district, detail = detail, address = province + city + district + detail) - } - val merchantId = (dataObj.get("merchant_id") ?: "") as String - if (merchantId != "") { - loadShopInfo(merchantId) - } - val trackingNoVal = dataObj.getString("tracking_no") - val carrierNameVal = dataObj.getString("carrier_name") - if (trackingNoVal != null && trackingNoVal != "") { - deliveryInfo.value = DeliveryInfoType(tracking_no = trackingNoVal, carrier_name = carrierNameVal ?: "") - } - console.log("[loadOrderDetail] 订单详情加载成功,商品数量:", orderItems.value.length, " at pages/mall/consumer/order-detail.uvue:469") - } else { - uni_showToast(ShowToastOptions(title = "订单不存在", icon = "none")) - } - } - catch (e: Throwable) { - console.error("[loadOrderDetail] 加载订单详情失败:", e, " at pages/mall/consumer/order-detail.uvue:474") - uni_showToast(ShowToastOptions(title = "加载失败", icon = "none")) - } - finally { - uni_hideLoading() - } - }) - } - val contactService = fun(){ - if (order.value != null && order.value?.merchant_id != "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + order.value?.merchant_id + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(shopName.value), " at pages/mall/consumer/order-detail.uvue:486"))) - } else { - uni_showActionSheet(ShowActionSheetOptions(itemList = _uA( - "在线客服", - "拨打电话" - ), success = fun(res){ - if (res.tapIndex === 1) { - uni_makePhoneCall(MakePhoneCallOptions(phoneNumber = "400-123-4567")) - } else { - uni_showToast(ShowToastOptions(title = "连接到了系统客服")) - } - } - )) - } - } - val payOrder = fun(){ - val totalAmount = order.value?.total_amount ?: 0 - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/payment?orderId=" + orderId.value + "&amount=" + totalAmount)) - } - val doCancelOrder = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val updatePayload = UTSJSONObject(UTSSourceMapPosition("updatePayload", "pages/mall/consumer/order-detail.uvue", 512, 15)) - updatePayload.set("order_status", 5) - updatePayload.set("updated_at", Date().toISOString()) - val result = await(supaInstance.from("ml_orders").update(updatePayload).eq("id", orderId.value).execute()) - if (result.error == null) { - if (order.value != null) { - order.value!!.order_status = 5 - } - uni_showToast(ShowToastOptions(title = "订单已取消")) - } else { - console.error("[doCancelOrder] 取消订单失败:", result.error, " at pages/mall/consumer/order-detail.uvue:528") - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("[doCancelOrder] 取消订单异常:", e, " at pages/mall/consumer/order-detail.uvue:532") - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - }) - } - val cancelOrder = fun(){ - uni_showModal(ShowModalOptions(title = "提示", content = "确定要取消订单吗?", success = fun(res){ - if (res.confirm) { - doCancelOrder() - } - } - )) - } - val remindDelivery = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val merchantId = order.value?.merchant_id - if (merchantId == null || merchantId == "") { - uni_showToast(ShowToastOptions(title = "商家信息不存在", icon = "none")) - return@w1 - } - val orderNo = order.value?.order_no ?: "" - val message = "您好,订单 " + orderNo + " 已付款,请尽快安排发货,谢谢!" - uni_showLoading(ShowLoadingOptions(title = "发送中...")) - val success = await(supabaseService.sendChatMessage(message, merchantId, "text")) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已提醒商家尽快发货")) - } else { - uni_showToast(ShowToastOptions(title = "发送失败,请稍后重试", icon = "none")) - } - }) - } - val viewLogistics = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/logistics?orderId=" + orderId.value)) - } - val goToReview = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/review?orderId=" + orderId.value)) - } - val doConfirmReceive = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.confirmReceipt(orderId.value)) - if (result.success) { - if (order.value != null) { - order.value!!.order_status = 4 - } - uni_showToast(ShowToastOptions(title = "收货成功")) - setTimeout(fun(){ - return goToReview() - }, 1500) - } else { - uni_showToast(ShowToastOptions(title = result.error ?: "失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("[doConfirmReceive] 确认收货异常:", e, " at pages/mall/consumer/order-detail.uvue:591") - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val confirmReceive = fun(){ - uni_showModal(ShowModalOptions(title = "确认收货", content = "确保您已收到货物", success = fun(res){ - if (res.confirm) { - doConfirmReceive() - } - } - )) - } - val rePurchase = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - uni_showLoading(ShowLoadingOptions(title = "处理中")) - try { - val items = orderItems.value - if (items.length == 0) { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "没有可购买的商品", icon = "none")) - return@w1 - } - var successCount: Number = 0 - run { - var i: Number = 0 - while(i < items.length){ - val item = items[i] - val result = await(supabaseService.addToCart(item.product_id, item.quantity, "", order.value?.merchant_id ?: "")) - if (result) { - successCount++ - } - i++ - } - } - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已加入购物车")) - setTimeout(fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/cart")) - }, 1000) - } else { - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("[rePurchase] 再次购买异常:", e, " at pages/mall/consumer/order-detail.uvue:642") - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val doApplyRefund = fun(reason: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - val success = await(supabaseService.applyRefund(orderId.value, reason)) - if (success) { - if (order.value != null) { - order.value!!.order_status = 6 - } - uni_showToast(ShowToastOptions(title = "申请已提交")) - } else { - uni_showToast(ShowToastOptions(title = "提交失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("[doApplyRefund] 申请退款异常:", e, " at pages/mall/consumer/order-detail.uvue:659") - uni_showToast(ShowToastOptions(title = "提交失败", icon = "none")) - } - }) - } - val applyRefund = fun(){ - uni_showModal(ShowModalOptions(title = "申请退款", editable = true, placeholderText = "请输入退款原因", success = fun(res){ - if (res.confirm) { - val reason = res.content ?: "用户主动申请" - doApplyRefund(reason) - } - } - )) - } - val applyAfterSales = fun(){ - applyRefund() - } - val goToShop = fun(){ - val merchantId = order.value?.merchant_id ?: "" - if (merchantId != "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/shop-detail?id=" + merchantId)) - } else { - uni_showToast(ShowToastOptions(title = "商家信息不存在", icon = "none")) - } - } - val goToProduct = fun(pid: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + pid)) - } - val shareForFree = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (orderItems.value.length === 0) { - uni_showToast(ShowToastOptions(title = "没有可分享的商品", icon = "none")) - return@w1 - } - val firstItem = orderItems.value[0] - try { - uni_showLoading(ShowLoadingOptions(title = "创建分享...")) - val result = await(supabaseService.createShareRecord(firstItem.product_id, orderId.value, firstItem.id, firstItem.product_name, firstItem.image_url, firstItem.price)) - uni_hideLoading() - val shareIdRaw = result.get("id") - val shareCodeRaw = result.get("share_code") - if (shareIdRaw != null && shareCodeRaw != null) { - val shareId = shareIdRaw as String - val shareCode = shareCodeRaw as String - uni_showModal(ShowModalOptions(title = "分享成功", content = "您的分享码: " + shareCode + "\n分享给好友,当有4人购买后即可免单!", confirmText = "查看详情", success = fun(res){ - if (res.confirm) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/share/detail?id=" + shareId)) - } - })) - } else { - uni_showToast(ShowToastOptions(title = "分享创建失败", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("[shareForFree] 创建分享失败:", e, " at pages/mall/consumer/order-detail.uvue:741") - uni_showToast(ShowToastOptions(title = "分享失败", icon = "none")) - } - }) - } - onBackPress__1(fun(_): Boolean { - val pages = getCurrentPages() - console.log("[order-detail onBackPress] pages count:", pages.length, " at pages/mall/consumer/order-detail.uvue:749") - if (pages.length > 1) { - return false - } - uni_redirectTo(RedirectToOptions(url = "/pages/mall/consumer/orders")) - return true - } - ) - onLoad__1(fun(options){ - val id = options["id"] - val orderIdParam = options["orderId"] - if (id != null && id != "") { - orderId.value = id as String - loadOrderDetail() - } else if (orderIdParam != null && orderIdParam != "") { - orderId.value = orderIdParam as String - loadOrderDetail() - } - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "order-detail-page"), _uA( - _cE("scroll-view", _uM("scroll-y" to "true", "class" to "scroll-content"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "order-status", - getStatusClass() - ))), _uA( - _cE("view", _uM("class" to "status-content"), _uA( - _cE("view", _uM("class" to "status-info"), _uA( - _cE("view", _uM("class" to "status-title-row"), _uA( - _cE("text", _uM("class" to "status-emoji"), _tD(getStatusIcon()), 1), - _cE("text", _uM("class" to "status-text"), _tD(getStatusText()), 1) - )), - _cE("text", _uM("class" to "status-desc"), _tD(getStatusDesc()), 1) - )), - if (order.value?.order_status === 4) { - _cE("view", _uM("key" to 0, "class" to "share-free-entry", "onClick" to shareForFree), _uA( - _cE("text", _uM("class" to "share-free-icon"), "🎁"), - _cE("view", _uM("class" to "share-free-info"), _uA( - _cE("text", _uM("class" to "share-free-title"), "分享免单"), - _cE("text", _uM("class" to "share-free-desc"), "分享给好友,4人购买即可免单") - )), - _cE("text", _uM("class" to "share-free-arrow"), "›") - )) - } else { - _cC("v-if", true) - } - )) - ), 2), - if (isTrue(order.value != null && (order.value?.order_status ?: 0) >= 2)) { - _cE("view", _uM("key" to 0, "class" to "delivery-info card"), _uA( - _cE("view", _uM("class" to "delivery-header"), _uA( - _cE("text", _uM("class" to "section-title"), "配送信息") - )), - _cE("view", _uM("class" to "delivery-info-content"), _uA( - _cE("view", _uM("class" to "delivery-address"), _uA( - _cE("view", _uM("class" to "address-icon"), "📍"), - _cE("view", _uM("class" to "address-content"), _uA( - _cE("view", _uM("class" to "address-user"), _uA( - _cE("text", _uM("class" to "recipient"), _tD(deliveryAddress.value?.name ?: ""), 1), - _cE("text", _uM("class" to "phone"), _tD(deliveryAddress.value?.phone ?: ""), 1) - )), - _cE("text", _uM("class" to "address-detail"), _tD(getFullAddress(deliveryAddress.value as Any)), 1) - )) - )), - if (isTrue(deliveryInfo.value != null && deliveryInfo.value?.tracking_no != "")) { - _cE("view", _uM("key" to 0, "class" to "courier-info"), _uA( - _cE("view", _uM("class" to "courier-icon"), "🚚"), - _cE("view", _uM("class" to "courier-content"), _uA( - _cE("text", _uM("class" to "courier-label"), "物流信息"), - _cE("view", _uM("class" to "tracking-row"), _uA( - _cE("text", _uM("class" to "carrier-name"), _tD(deliveryInfo.value?.carrier_name ?: "快递运单"), 1), - _cE("text", _uM("class" to "tracking-no"), _tD(deliveryInfo.value?.tracking_no ?: ""), 1), - _cE("view", _uM("class" to "copy-tag", "onClick" to fun(){ - copyText(deliveryInfo.value?.tracking_no ?: "") - }), _uA( - _cE("text", _uM("class" to "copy-tag-text"), "复制") - ), 8, _uA( - "onClick" - )) - )) - )) - )) - } else { - _cC("v-if", true) - } - )) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "order-products card"), _uA( - _cE("view", _uM("class" to "shop-header", "onClick" to goToShop), _uA( - _cE("text", _uM("class" to "shop-icon"), "🏪"), - _cE("text", _uM("class" to "shop-name"), _tD(shopName.value), 1), - _cE("text", _uM("class" to "arrow-right"), "›") - )), - _cE(Fragment, null, RenderHelpers.renderList(orderItems.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "product-item", "onClick" to fun(){ - goToProduct(item.product_id) - } - ), _uA( - _cE("image", _uM("src" to if (item.image_url != null && item.image_url != "") { - item.image_url - } else { - "/static/default-product.png" - } - , "class" to "product-image", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(item.product_name), 1), - if (isTrue(item.specifications)) { - _cE("text", _uM("key" to 0, "class" to "product-spec"), _tD(getSpecText(item.specifications)), 1) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "price-quantity"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(item.price), 1), - _cE("text", _uM("class" to "product-quantity"), "×" + _tD(item.quantity), 1) - )) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )), - if (order.value != null) { - _cE("view", _uM("key" to 1, "class" to "order-info card"), _uA( - _cE("view", _uM("class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "订单编号"), - _cE("text", _uM("class" to "info-value copyable", "onClick" to fun(){ - copyText(order.value?.order_no ?: "") - }), _uA( - _tD(order.value?.order_no ?: "") + " ", - _cE("text", _uM("class" to "copy-icon"), "📄") - ), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "下单时间"), - _cE("text", _uM("class" to "info-value"), _tD(formatTime(order.value?.created_at ?: "")), 1) - )), - if (isTrue(order.value?.payment_method != null && order.value?.payment_method != "")) { - _cE("view", _uM("key" to 0, "class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "支付方式"), - _cE("text", _uM("class" to "info-value"), _tD(getPaymentMethodText(order.value?.payment_method as Any)), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(order.value?.paid_at != null && order.value?.paid_at != "")) { - _cE("view", _uM("key" to 1, "class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "支付时间"), - _cE("text", _uM("class" to "info-value"), _tD(formatTime(order.value?.paid_at ?: "")), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(order.value?.shipped_at != null && order.value?.shipped_at != "")) { - _cE("view", _uM("key" to 2, "class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "发货时间"), - _cE("text", _uM("class" to "info-value"), _tD(formatTime(order.value?.shipped_at ?: "")), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(order.value?.completed_at != null && order.value?.completed_at != "")) { - _cE("view", _uM("key" to 3, "class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "完成时间"), - _cE("text", _uM("class" to "info-value"), _tD(formatTime(order.value?.completed_at ?: "")), 1) - )) - } else { - _cC("v-if", true) - } - )) - } else { - _cC("v-if", true) - } - , - if (order.value != null) { - _cE("view", _uM("key" to 2, "class" to "cost-detail card"), _uA( - _cE("view", _uM("class" to "cost-row"), _uA( - _cE("text", _uM("class" to "cost-label"), "商品总额"), - _cE("text", _uM("class" to "cost-value"), "¥" + _tD(order.value?.product_amount ?: 0), 1) - )), - _cE("view", _uM("class" to "cost-row"), _uA( - _cE("text", _uM("class" to "cost-label"), "运费"), - _cE("text", _uM("class" to "cost-value"), "+¥" + _tD(if (order.value?.shipping_fee != null) { - order.value?.shipping_fee - } else { - 0 - }), 1) - )), - if ((order.value?.discount_amount ?: 0) > 0) { - _cE("view", _uM("key" to 0, "class" to "cost-row"), _uA( - _cE("text", _uM("class" to "cost-label"), "优惠金额"), - _cE("text", _uM("class" to "cost-value"), "-¥" + _tD(order.value?.discount_amount ?: 0), 1) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "cost-row total"), _uA( - _cE("text", _uM("class" to "cost-label"), "实付金额"), - _cE("text", _uM("class" to "cost-value price"), "¥" + _tD(order.value?.total_amount ?: 0), 1) - )) - )) - } else { - _cC("v-if", true) - } - )), - if (order.value != null) { - _cE("view", _uM("key" to 0, "class" to "bottom-actions"), _uA( - _cE("view", _uM("class" to "action-bar-wrapper"), _uA( - _cE("view", _uM("class" to "action-left", "onClick" to contactService), _uA( - _cE("view", _uM("class" to "service-item"), _uA( - _cE("text", _uM("class" to "service-icon"), "🎧"), - _cE("text", _uM("class" to "service-label"), "客服") - )) - )), - _cE("view", _uM("class" to "action-right"), _uA( - if (order.value?.order_status === 1) { - _cE("view", _uM("key" to 0, "class" to "btn-group"), _uA( - _cE("button", _uM("class" to "btn", "onClick" to cancelOrder), "取消订单"), - _cE("button", _uM("class" to "btn primary", "onClick" to payOrder), "立即支付") - )) - } else { - _cC("v-if", true) - }, - if (order.value?.order_status === 2) { - _cE("view", _uM("key" to 1, "class" to "btn-group"), _uA( - _cE("button", _uM("class" to "btn", "onClick" to applyRefund), "申请退款"), - _cE("button", _uM("class" to "btn primary", "onClick" to remindDelivery), "提醒发货") - )) - } else { - _cC("v-if", true) - }, - if (order.value?.order_status === 3) { - _cE("view", _uM("key" to 2, "class" to "btn-group"), _uA( - _cE("button", _uM("class" to "btn", "onClick" to viewLogistics), "查看物流"), - _cE("button", _uM("class" to "btn primary", "onClick" to confirmReceive), "确认收货") - )) - } else { - _cC("v-if", true) - }, - if (order.value?.order_status === 4) { - _cE("view", _uM("key" to 3, "class" to "btn-group"), _uA( - _cE("button", _uM("class" to "btn", "onClick" to applyAfterSales), "申请售后"), - _cE("button", _uM("class" to "btn share-free", "onClick" to shareForFree), "分享免单"), - _cE("button", _uM("class" to "btn", "onClick" to rePurchase), "再次购买"), - _cE("button", _uM("class" to "btn primary", "onClick" to goToReview), "评价订单") - )) - } else { - _cC("v-if", true) - }, - if (order.value?.order_status === 5) { - _cE("view", _uM("key" to 4, "class" to "btn-group"), _uA( - _cE("button", _uM("class" to "btn primary", "onClick" to rePurchase), "重新购买") - )) - } else { - _cC("v-if", true) - } - )) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("order-detail-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "scroll-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingBottom" to 20)), "card" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "marginRight" to 10, "marginBottom" to 10, "marginLeft" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10)), "order-status" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff9000, #ff5000)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 30, "paddingRight" to 20, "paddingBottom" to 30, "paddingLeft" to 20, "color" to "#FFFFFF", "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "status-content" to _pS(_uM("maxWidth" to 1200, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "textAlign" to "center")), "status-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "status-title-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 8)), "status-emoji" to _pS(_uM("fontSize" to 28, "marginRight" to 12)), "status-text" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "letterSpacing" to 1)), "status-desc" to _pS(_uM("fontSize" to 14, "opacity" to 0.95, "textAlign" to "center")), "share-free-entry" to _pS(_uM("marginTop" to 20, "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 14, "paddingRight" to 16, "paddingBottom" to 14, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "width" to "100%", "maxWidth" to 400)), "share-free-icon" to _pS(_uM("fontSize" to 28, "marginRight" to 12)), "share-free-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "alignItems" to "flex-start")), "share-free-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#FFFFFF", "marginBottom" to 4)), "share-free-desc" to _pS(_uM("fontSize" to 12, "color" to "rgba(255,255,255,0.85)")), "share-free-arrow" to _pS(_uM("fontSize" to 20, "color" to "rgba(255,255,255,0.8)")), "section-title" to _pS(_uM("fontWeight" to "bold", "fontSize" to 16, "marginBottom" to 10)), "delivery-address" to _pS(_uM("display" to "flex", "alignItems" to "flex-start")), "address-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 10, "color" to "#666666")), "address-user" to _pS(_uM("marginBottom" to 5, "fontWeight" to "bold", "fontSize" to 14)), "phone" to _pS(_uM("marginLeft" to 10, "color" to "#666666", "fontWeight" to "normal")), "address-detail" to _pS(_uM("fontSize" to 13, "color" to "#333333", "lineHeight" to 1.4)), "courier-info" to _pS(_uM("marginTop" to 15, "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "row", "alignItems" to "flex-start")), "courier-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 10, "color" to "#666666")), "courier-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "courier-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 5)), "tracking-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap")), "carrier-name" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginRight" to 8)), "tracking-no" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginRight" to 10, "fontFamily" to "monospace")), "copy-tag" to _pS(_uM("backgroundColor" to "#fff2f0", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffccc7", "borderRightColor" to "#ffccc7", "borderBottomColor" to "#ffccc7", "borderLeftColor" to "#ffccc7", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "paddingTop" to 1, "paddingRight" to 8, "paddingBottom" to 1, "paddingLeft" to 8, "display" to "flex", "justifyContent" to "center", "alignItems" to "center")), "copy-tag-text" to _pS(_uM("color" to "#ff4d4f", "fontSize" to 11)), "shop-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 15, "paddingBottom" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "width" to "100%")), "shop-icon" to _pS(_uM("marginRight" to 8, "fontSize" to 16)), "shop-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "color" to "#333333")), "arrow-right" to _pS(_uM("color" to "#999999", "fontSize" to 14, "marginLeft" to "auto")), "product-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 15, "alignItems" to "flex-start", "marginBottom:last-child" to 0)), "product-image" to _pS(_uM("width" to 90, "height" to 90, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginRight" to 12, "backgroundColor" to "#f9f9f9", "flexShrink" to 0)), "product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between", "minHeight" to 90)), "product-name" to _pS(_uM("fontSize" to 14, "lineHeight" to 1.4, "color" to "#333333", "overflow" to "hidden", "textOverflow" to "ellipsis", "lines" to 2, "marginBottom" to 4)), "product-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999", "backgroundColor" to "#f5f5f5", "paddingTop" to 2, "paddingRight" to 5, "paddingBottom" to 2, "paddingLeft" to 5, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "alignSelf" to "flex-start", "marginTop" to 5)), "price-quantity" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to 5, "width" to "100%")), "product-price" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "product-quantity" to _pS(_uM("color" to "#999999", "fontSize" to 12)), "info-row" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "marginBottom" to 10, "fontSize" to 13)), "info-label" to _pS(_uM("color" to "#999999")), "info-value" to _pS(_uM("color" to "#333333")), "copy-icon" to _pS(_uM("fontSize" to 12)), "cost-detail" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15)), "cost-row" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "marginBottom" to 12, "fontSize" to 14, "width" to "100%", "maxWidth" to 400), ".total" to _uM("marginTop" to 15, "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5", "alignItems" to "center")), "cost-value" to _uM(".price" to _uM("color" to "#ff5000", "fontSize" to 20, "fontWeight" to "bold")), "bottom-actions" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 12, "paddingRight" to 15, "paddingBottom" to 30, "paddingLeft" to 15, "boxShadow" to "0 -2px 15px rgba(0,0,0,0.08)")), "action-bar-wrapper" to _pS(_uM("maxWidth" to 1200, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "width" to "100%", "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "action-left" to _pS(_uM("paddingTop" to 0, "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to 0, "marginRight" to 0)), "service-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "minWidth" to 50)), "service-icon" to _pS(_uM("fontSize" to 20, "marginBottom" to 2)), "service-label" to _pS(_uM("fontSize" to 11, "color" to "#666666")), "action-right" to _pS(_uM("display" to "flex", "justifyContent" to "center", "alignItems" to "center")), "btn-group" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end")), "btn" to _uM("" to _uM("marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 12, "paddingTop" to 0, "paddingRight" to 18, "paddingBottom" to 0, "paddingLeft" to 18, "height" to 36, "lineHeight" to "36px", "fontSize" to 14, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "color" to "#444444"), ".primary" to _uM("backgroundImage" to "linear-gradient(to right, #ff9000, #ff5000)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "fontWeight" to "bold", "boxShadow" to "0 4px 8px rgba(255, 80, 0, 0.2)"), ".share-free" to _uM("backgroundImage" to "linear-gradient(to right, #52c41a, #73d13d)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt deleted file mode 100644 index d213aab8..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/orders.kt +++ /dev/null @@ -1,1210 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerOrders : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerOrders) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerOrders - val _cache = __ins.renderCache - val orders = ref(_uA()) - val allOrdersList = ref(_uA()) - val loading = ref(false) - val loadingMore = ref(false) - val hasMore = ref(true) - val refreshing = ref(false) - val page = ref(1) - val activeTab = ref("all") - val statusBarHeight = ref(0) - val searchKeyword = ref("") - val merchantShareFreeEnabled = ref(UTSJSONObject()) - val merchantRequiredCount = ref(UTSJSONObject()) - val orderTabs = ref(_uA(OrderTabItem(id = "all", name = "全部", count = 0), OrderTabItem(id = "pending", name = "待付款", count = 0), OrderTabItem(id = "shipping", name = "待发货", count = 0), OrderTabItem(id = "delivering", name = "待收货", count = 0), OrderTabItem(id = "completed", name = "已完成", count = 0), OrderTabItem(id = "aftersale", name = "售后", count = 0), OrderTabItem(id = "cancelled", name = "已取消", count = 0))) - val orderTabsMobile = computed(fun(): UTSArray { - return orderTabs.value.filter(fun(tab: OrderTabItem): Boolean { - return tab.id !== "all" - } - ) - } - ) - val getStatusByTab = fun(tabId: String): Number { - if (tabId == "pending") { - return 1 - } - if (tabId == "shipping") { - return 2 - } - if (tabId == "delivering") { - return 3 - } - if (tabId == "completed") { - return 4 - } - if (tabId == "cancelled") { - return 5 - } - if (tabId == "aftersale") { - return 6 - } - return 0 - } - fun gen_formatSpecObj_fn(obj: Any): String { - if (obj == null) { - return "" - } - if (UTSAndroid.`typeof`(obj) !== "object") { - if (UTSAndroid.`typeof`(obj) === "string") { - return obj as String - } - if (UTSAndroid.`typeof`(obj) === "number") { - return (obj as Number).toString() - } - return "" - } - try { - val objStr = JSON.stringify(obj) - val objParsed = UTSAndroid.consoleDebugError(JSON.parse(objStr), " at pages/mall/consumer/orders.uvue:281") - if (objParsed == null) { - return "" - } - val specObj = objParsed as UTSJSONObject - val specObjStr = JSON.stringify(specObj) - val specObjForKeys = UTSAndroid.consoleDebugError(JSON.parse(specObjStr), " at pages/mall/consumer/orders.uvue:288") as UTSJSONObject - val parts: UTSArray = _uA() - val colorVal = specObjForKeys.getString("Color") - if (colorVal != null && colorVal != "") { - parts.push("Color: " + colorVal) - } - val sizeVal = specObjForKeys.getString("Size") - if (sizeVal != null && sizeVal != "") { - parts.push("Size: " + sizeVal) - } - val defaultVal = specObjForKeys.getString("默认") - if (defaultVal != null && defaultVal != "") { - parts.push("默认: " + defaultVal) - } - if (parts.length === 0) { - val objAny = specObjForKeys as Any - if (objAny != null) { - return specObjStr.replace(UTSRegExp("[{}\"]", "g"), "").replace(UTSRegExp(":", "g"), ": ").replace(UTSRegExp(",", "g"), " | ") - } - } - return parts.join(" | ") - } - catch (e: Throwable) { - return "" - } - } - val formatSpecObj = ::gen_formatSpecObj_fn - fun gen_parseSpecText_fn(specs: Any): String { - if (specs == null) { - return "" - } - if (UTSAndroid.`typeof`(specs) === "string") { - if ((specs as String).startsWith("{") || (specs as String).startsWith("[")) { - try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(specs as String), " at pages/mall/consumer/orders.uvue:331") - if (parsed == null) { - return specs as String - } - return formatSpecObj(parsed) - } - catch (e: Throwable) { - return specs as String - } - } - return specs as String - } - return formatSpecObj(specs) - } - val parseSpecText = ::gen_parseSpecText_fn - val updateTabsCounts = fun(allOrders: UTSArray){ - val countAll = allOrders.length - val countPending = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 1 - } - ).length - val countShipping = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 2 - } - ).length - val countDelivering = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 3 - } - ).length - val countCompleted = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 4 - } - ).length - val countCancelled = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 5 - } - ).length - val countAftersale = allOrders.filter(fun(o: OrderItem): Boolean { - return o.status === 6 || o.status === 7 - } - ).length - orderTabs.value[0].count = countAll - orderTabs.value[1].count = countPending - orderTabs.value[2].count = countShipping - orderTabs.value[3].count = countDelivering - orderTabs.value[4].count = countCompleted - orderTabs.value[5].count = countAftersale - orderTabs.value[6].count = countCancelled - } - val filterOrdersByTab = fun(){ - if (activeTab.value === "all") { - orders.value = allOrdersList.value - } else if (activeTab.value === "aftersale") { - orders.value = allOrdersList.value.filter(fun(o: OrderItem): Boolean { - return o.status === 6 || o.status === 7 - }) - } else { - val targetStatus = getStatusByTab(activeTab.value) - orders.value = allOrdersList.value.filter(fun(o: OrderItem): Boolean { - return o.status === targetStatus - } - ) - } - } - val isShareFreeEnabled = fun(merchantId: String): Boolean { - val kVal = merchantShareFreeEnabled.value.get(merchantId) - return kVal === true - } - val getRequiredCount = fun(merchantId: String): Number { - val kVal = merchantRequiredCount.value.get(merchantId) - if (kVal != null && UTSAndroid.`typeof`(kVal) === "number") { - return kVal as Number - } - return 4 - } - val loadMerchantPromotionConfigs = fun(orderList: UTSArray): UTSPromise { - return wrapUTSPromise(suspend { - val merchantIds = Set() - run { - var i: Number = 0 - while(i < orderList.length){ - val merchantId = orderList[i].merchant_id - val existingVal = merchantShareFreeEnabled.value.get(merchantId) - if (merchantId != null && merchantId !== "" && existingVal == null) { - merchantIds.add(merchantId) - } - i++ - } - } - val merchantIdArray = UTSArray.from(merchantIds) - run { - var i: Number = 0 - while(i < merchantIdArray.length){ - val merchantIdRaw = merchantIdArray[i] - val merchantId = merchantIdRaw as String - try { - val config = await(supabaseService.getMerchantPromotionConfig(merchantId)) - val promotionEnabled = config.get("promotion_enabled") - val shareFreeEnabled = config.get("share_free_enabled") - val requiredCount = config.get("required_count") - val isEnabled: Any = (promotionEnabled === true || promotionEnabled === "true") && (shareFreeEnabled === true || shareFreeEnabled === "true") - merchantShareFreeEnabled.value.set(merchantId, isEnabled) - if (requiredCount != null) { - merchantRequiredCount.value.set(merchantId, requiredCount) - } else { - merchantRequiredCount.value.set(merchantId, 4 as Any) - } - } - catch (e: Throwable) { - console.error("加载商家推销配置失败:", merchantId, e, " at pages/mall/consumer/orders.uvue:428") - merchantShareFreeEnabled.value.set(merchantId, false as Any) - merchantRequiredCount.value.set(merchantId, 4 as Any) - } - i++ - } - } - }) - } - val loadOrders = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val fetchedOrders = await(supabaseService.getOrders(0)) - console.log("[loadOrders] 获取到订单数量:", fetchedOrders.length, " at pages/mall/consumer/orders.uvue:442") - val mappedOrders: UTSArray = _uA() - run { - var i: Number = 0 - while(i < fetchedOrders.length){ - val order = fetchedOrders[i] - val orderStr = JSON.stringify(order) - val orderParsed = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at pages/mall/consumer/orders.uvue:450") - if (orderParsed == null) { - i++ - continue - } - val orderObj = orderParsed as UTSJSONObject - val itemsRaw = orderObj.get("ml_order_items") - val productsList: UTSArray = _uA() - console.log("[loadOrders] 订单商品数据:", itemsRaw, " at pages/mall/consumer/orders.uvue:457") - if (itemsRaw != null) { - if (UTSArray.isArray(itemsRaw)) { - val items = itemsRaw as UTSArray - console.log("[loadOrders] 商品数量:", items.length, " at pages/mall/consumer/orders.uvue:463") - run { - var j: Number = 0 - while(j < items.length){ - val item = items[j] - val itemStr = JSON.stringify(item) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/orders.uvue:467") - if (itemParsed == null) { - j++ - continue - } - val itemObj = itemParsed as UTSJSONObject - val specRaw = itemObj.get("specifications") - val specText = if (specRaw != null) { - parseSpecText(specRaw) - } else { - "" - } - val productId = itemObj.getString("product_id") - val productName = itemObj.getString("product_name") - val price = itemObj.getNumber("price") - val imageUrl = itemObj.getString("image_url") - val quantity = itemObj.getNumber("quantity") - console.log("[loadOrders] 商品:", productName, "图片:", imageUrl, "规格:", specText, " at pages/mall/consumer/orders.uvue:480") - val productItem = OrderProduct(id = productId ?: "", name = productName ?: "未知商品", price = price ?: 0, image = imageUrl ?: "/static/default-product.png", spec = specText, quantity = quantity ?: 1) - productsList.push(productItem) - j++ - } - } - } - } - val orderId = orderObj.getString("id") - val orderNo = orderObj.getString("order_no") - val orderStatus = orderObj.getNumber("order_status") - val createdAt = orderObj.getString("created_at") - val productAmount = orderObj.getNumber("product_amount") - val shippingFee = orderObj.getNumber("shipping_fee") - val totalAmount = orderObj.getNumber("total_amount") - val paidAmount = orderObj.getNumber("paid_amount") - val merchantId = orderObj.getString("merchant_id") - var shopName = "自营店铺" - val shopsRaw = orderObj.get("ml_shops") - if (shopsRaw != null) { - val shopStr = JSON.stringify(shopsRaw) - val shopParsed = UTSAndroid.consoleDebugError(JSON.parse(shopStr), " at pages/mall/consumer/orders.uvue:510") - if (shopParsed != null) { - val shopObj = shopParsed as UTSJSONObject - val shopNameFromDb = shopObj.getString("shop_name") - if (shopNameFromDb != null && shopNameFromDb != "") { - shopName = shopNameFromDb - } - } - } else if (merchantId != null && merchantId != "") { - shopName = "商家店铺" - } - console.log("[loadOrders] 订单号:", orderNo, "店铺:", shopName, "商品数:", productsList.length, " at pages/mall/consumer/orders.uvue:522") - if (productsList.length === 0) { - val placeholderProduct = OrderProduct(id = "placeholder", name = "订单商品", price = totalAmount ?: paidAmount ?: 0, image = "/static/default-product.png", spec = "", quantity = 1) - productsList.push(placeholderProduct) - } - val mappedOrder = OrderItem(id = orderId ?: "", order_no = orderNo ?: "", status = orderStatus ?: 1, create_time = createdAt ?: "", product_amount = productAmount ?: 0, shipping_fee = shippingFee ?: 0, total_amount = totalAmount ?: paidAmount ?: 0, merchant_id = merchantId ?: "", shop_name = shopName, products = productsList) - mappedOrders.push(mappedOrder) - i++ - } - } - mappedOrders.sort(fun(a: OrderItem, b: OrderItem): Number { - val timeA = Date(a.create_time).getTime() - val timeB = Date(b.create_time).getTime() - return timeB - timeA - } - ) - allOrdersList.value = mappedOrders - updateTabsCounts(mappedOrders) - filterOrdersByTab() - loadMerchantPromotionConfigs(mappedOrders) - } - catch (err: Throwable) { - console.error("加载订单异常:", err, " at pages/mall/consumer/orders.uvue:571") - uni_showToast(ShowToastOptions(title = "加载订单失败", icon = "none")) - } - finally { - loading.value = false - } - }) - } - onLoad__1(fun(options){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight ?: 0 - if (options == null) { - return - } - val statusVal = options["status"] - if (statusVal != null) { - val status = statusVal as String - if (_uA( - "all", - "pending", - "shipping", - "delivering", - "completed", - "aftersale", - "cancelled" - ).includes(status)) { - activeTab.value = status - } - } - val typeVal = options["type"] - if (typeVal != null) { - val type = typeVal as String - if (type === "pending") { - activeTab.value = "pending" - } else if (type === "shipped") { - activeTab.value = "delivering" - } else if (type === "review") { - activeTab.value = "completed" - } else if (type === "refund") { - activeTab.value = "aftersale" - } - } - } - ) - onShow__1(fun(){ - loadOrders() - } - ) - val formatDate = fun(isoString: String): String { - if (isoString == "") { - return "" - } - val date = Date(isoString) - return "" + date.getFullYear() + "-" + (date.getMonth() + 1).toString(10).padStart(2, "0") + "-" + date.getDate().toString(10).padStart(2, "0") + " " + date.getHours().toString(10).padStart(2, "0") + ":" + date.getMinutes().toString(10).padStart(2, "0") - } - fun gen_getCurrentOrderData_fn(): UTSArray { - return allOrdersList.value - } - val getCurrentOrderData = ::gen_getCurrentOrderData_fn - val performSearch = fun(){ - val keyword = searchKeyword.value.trim().toLowerCase() - if (keyword == "") { - loadOrders() - return - } - val allOrders = getCurrentOrderData() - val filtered = allOrders.filter(fun(order: Any): Boolean { - val orderObj = order as Record - val orderNo = orderObj["order_no"] as String - if (orderNo != null && orderNo.toLowerCase().includes(keyword)) { - return true - } - val products = orderObj["products"] - if (products != null && UTSArray.isArray(products)) { - return (products as UTSArray).some(fun(product: Any): Boolean { - val productObj = product as Record - val name = productObj["name"] as String - return name != null && name.toLowerCase().includes(keyword) - } - ) - } - return false - } - ) - orders.value = filtered - } - val onSearchInput = fun(e: Any){ - val eObj = e as Record - val detail = eObj["detail"] as Record - searchKeyword.value = detail["value"] as String - performSearch() - } - val onSearchConfirm = fun(){ - performSearch() - } - val clearSearch = fun(){ - searchKeyword.value = "" - performSearch() - } - val switchTab = fun(tabId: String){ - activeTab.value = tabId - filterOrdersByTab() - } - val getStatusText = fun(status: Number): String { - if (status == 1) { - return "待付款" - } - if (status == 2) { - return "待发货" - } - if (status == 3) { - return "待收货" - } - if (status == 4) { - return "已完成" - } - if (status == 5) { - return "已取消" - } - if (status == 6) { - return "退款中" - } - if (status == 7) { - return "已退款" - } - return "未知状态" - } - val getStatusClass = fun(status: Number): String { - if (status == 1) { - return "status-pending" - } - if (status == 2) { - return "status-shipping" - } - if (status == 3) { - return "status-delivering" - } - if (status == 4) { - return "status-completed" - } - if (status == 5) { - return "status-cancelled" - } - if (status == 6) { - return "status-refunding" - } - if (status == 7) { - return "status-refunded" - } - return "status-unknown" - } - val contactSeller = fun(order: OrderItem){ - if (order.merchant_id != "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + order.merchant_id)) - } else { - uni_showToast(ShowToastOptions(title = "暂无卖家联系方式", icon = "none")) - } - } - val deleteOrder = fun(orderId: String){ - uni_showModal(ShowModalOptions(title = "删除订单", content = "确定要删除此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "删除中...")) - supabaseService.deleteOrder(orderId).then(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "订单已删除", icon = "success")) - loadOrders() - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - ) - } - } - )) - } - val onRefresh = fun(){ - refreshing.value = true - setTimeout(fun(){ - loadOrders() - refreshing.value = false - uni_showToast(ShowToastOptions(title = "刷新成功", icon = "success")) - } - , 1000) - } - val loadMore = fun(){ - if (loadingMore.value || !hasMore.value) { - return - } - hasMore.value = false - } - val cancelOrder = fun(orderId: String){ - uni_showModal(ShowModalOptions(title = "确认取消", content = "确定要取消此订单吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "取消中...")) - supabaseService.cancelOrder(orderId).then(fun(success){ - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "订单已取消", icon = "success")) - loadOrders() - } else { - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - } - ).`catch`(fun(){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - ) - } - } - )) - } - val payOrder = fun(orderId: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/payment?orderId=" + orderId)) - } - val remindShipping = fun(orderId: String): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "正在提醒...")) - try { - val order = orders.value.find(fun(o): Boolean { - return o.id === orderId - } - ) - if (order != null) { - val merchantId = order.merchant_id - val orderNo = order.order_no - if (merchantId != "") { - val message = "你好,我的订单[" + orderNo + "]还没有发货,请尽快安排,谢谢。" - val success = await(supabaseService.sendChatMessage(message, merchantId)) - if (success) { - console.log("催单消息发送成功", " at pages/mall/consumer/orders.uvue:826") - } else { - console.warn("催单消息发送失败,可能是由于网络原因", " at pages/mall/consumer/orders.uvue:828") - } - } - } - } - catch (e: Throwable) { - console.error("提醒发货异常:", e, " at pages/mall/consumer/orders.uvue:833") - } - finally { - uni_hideLoading() - } - uni_showToast(ShowToastOptions(title = "已提醒卖家发货", icon = "success")) - }) - } - val viewLogistics = fun(orderId: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/logistics?orderId=" + orderId)) - } - val goReview = fun(order: OrderItem){ - val productIds = order.products.map(fun(p: OrderProduct): String { - return p.id - } - ).join(",") - val orderId = order.id - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/review?orderId=" + orderId + "&productIds=" + productIds)) - } - val doConfirmReceipt = fun(orderId: String): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - try { - val result = await(supabaseService.confirmReceipt(orderId)) - uni_hideLoading() - if (result.success) { - uni_showToast(ShowToastOptions(title = "收货成功", icon = "success")) - val allIndex = allOrdersList.value.findIndex(fun(o: OrderItem): Boolean { - return o.id === orderId - }) - if (allIndex !== -1) { - allOrdersList.value[allIndex].status = 4 - allOrdersList.value = allOrdersList.value.slice() - } - updateTabsCounts(allOrdersList.value) - filterOrdersByTab() - setTimeout(fun(){ - val order = allOrdersList.value.find(fun(o: OrderItem): Boolean { - return o.id === orderId - }) - if (order != null) { - goReview(order) - } - }, 1000) - } else { - uni_showToast(ShowToastOptions(title = result.error ?: "确认收货失败", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "系统异常", icon = "none")) - } - }) - } - val confirmReceipt = fun(orderId: String){ - uni_showModal(ShowModalOptions(title = "确认收货", content = "请确认您已收到商品,且商品无误", success = fun(res){ - if (res.confirm) { - doConfirmReceipt(orderId) - } - } - )) - } - val repurchase = fun(order: OrderItem){ - val products = order.products - if (products.length === 0) { - uni_showToast(ShowToastOptions(title = "订单无商品", icon = "none")) - return - } - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - var completed: Number = 0 - val total = products.length - var successCount: Number = 0 - run { - var i: Number = 0 - while(i < products.length){ - val product = products[i] - val productId = product.id - val merchantId = order.merchant_id - if (productId != null && productId !== "") { - supabaseService.addToCart(productId, 1, "", merchantId ?: "").then(fun(success: Boolean){ - completed++ - if (success) { - successCount++ - } - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }).`catch`(fun(){ - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - }) - } else { - completed++ - if (completed === total) { - uni_hideLoading() - if (successCount > 0) { - uni_showToast(ShowToastOptions(title = "已添加" + successCount + "件商品", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败", icon = "none")) - } - } - } - i++ - } - } - } - val viewOrderDetail = fun(orderId: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?id=" + orderId)) - } - val onApplyRefund = fun(order: OrderItem){ - val orderId = order.id - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/apply-refund?orderId=" + orderId)) - } - val viewRefundProgress = fun(orderId: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/refund?orderId=" + orderId)) - } - val doCancelRefund = fun(orderId: String): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - val result = await(supabaseService.cancelRefund(orderId)) - uni_hideLoading() - if (result.success) { - uni_showToast(ShowToastOptions(title = "已取消退款", icon = "success")) - loadOrders() - } else { - uni_showToast(ShowToastOptions(title = result.message, icon = "none")) - } - }) - } - val cancelRefund = fun(orderId: String){ - uni_showModal(ShowModalOptions(title = "确认取消", content = "确定要取消退款申请吗?", success = fun(res){ - if (res.confirm) { - doCancelRefund(orderId) - } - } - )) - } - val handleOrderAction = fun(order: OrderItem, action: String){ - if (action === "取消订单") { - cancelOrder(order.id) - } else if (action === "联系卖家") { - contactSeller(order) - } else if (action === "提醒发货") { - remindShipping(order.id) - } else if (action === "申请退款" || action === "申请售后") { - onApplyRefund(order) - } else if (action === "查看物流") { - viewLogistics(order.id) - } else if (action === "确认收货") { - confirmReceipt(order.id) - } else if (action === "再次购买") { - repurchase(order) - } else if (action === "删除订单") { - deleteOrder(order.id) - } else if (action === "退款进度") { - viewRefundProgress(order.id) - } else if (action === "取消退款") { - cancelRefund(order.id) - } - } - val showOrderMenu = fun(order: OrderItem){ - val status = order.status - var actions: UTSArray = _uA() - if (status === 1) { - actions = _uA( - "取消订单", - "联系卖家" - ) - } else if (status === 2) { - actions = _uA( - "提醒发货", - "申请退款", - "联系卖家" - ) - } else if (status === 3) { - actions = _uA( - "查看物流", - "确认收货", - "申请退款", - "联系卖家" - ) - } else if (status === 4) { - actions = _uA( - "申请售后", - "再次购买", - "联系卖家" - ) - } else if (status === 5) { - actions = _uA( - "删除订单", - "再次购买", - "联系卖家" - ) - } else if (status === 6) { - actions = _uA( - "取消退款", - "退款进度", - "联系卖家" - ) - } else if (status === 7) { - actions = _uA( - "再次购买", - "联系卖家" - ) - } - uni_showActionSheet(ShowActionSheetOptions(itemList = actions, success = fun(res){ - val action = actions[res.tapIndex] - handleOrderAction(order, action) - } - )) - } - val navigateToProduct = fun(product: OrderProduct){ - val productId = product.id - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - } - val goShopping = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - val shareForFree = fun(order: OrderItem): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (order.products.length === 0) { - uni_showToast(ShowToastOptions(title = "没有可分享的商品", icon = "none")) - return@w1 - } - val firstProduct = order.products[0] - try { - uni_showLoading(ShowLoadingOptions(title = "创建分享...")) - val result = await(supabaseService.createShareRecord(firstProduct.id, order.id, "", firstProduct.name, firstProduct.image, firstProduct.price)) - uni_hideLoading() - val shareIdRaw = result.get("id") - val shareCodeRaw = result.get("share_code") - if (shareIdRaw != null && shareCodeRaw != null) { - val shareId = shareIdRaw as String - val shareCode = shareCodeRaw as String - uni_showModal(ShowModalOptions(title = "分享成功", content = "您的分享码: " + shareCode + "\n分享给好友,当有4人购买后即可免单!", confirmText = "查看详情", success = fun(res){ - if (res.confirm) { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/share/detail?id=" + shareId)) - } - })) - } else { - uni_showToast(ShowToastOptions(title = "分享创建失败", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("[shareForFree] 创建分享失败:", e, " at pages/mall/consumer/orders.uvue:1153") - uni_showToast(ShowToastOptions(title = "分享失败", icon = "none")) - } - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "orders-page"), _uA( - _cE("view", _uM("class" to "orders-header", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "header-search full-width"), _uA( - _cE("input", _uM("class" to "search-input", "type" to "text", "placeholder" to "搜索订单号或商品名称", "value" to searchKeyword.value, "onInput" to onSearchInput, "onConfirm" to onSearchConfirm), null, 40, _uA( - "value" - )), - if (isTrue(searchKeyword.value)) { - _cE("text", _uM("key" to 0, "class" to "search-clear", "onClick" to clearSearch), "×") - } else { - _cE("text", _uM("key" to 1, "class" to "search-icon"), "🔍") - } - )) - ), 4), - _cE("view", _uM("class" to "order-tabs-fixed-container"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab-item-fixed", - _uM("active" to (activeTab.value === "all")) - )), "onClick" to fun(){ - switchTab("all") - } - ), _uA( - _cE("text", _uM("class" to "tab-name"), "全部"), - if (activeTab.value === "all") { - _cE("view", _uM("key" to 0, "class" to "active-indicator")) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("scroll-view", _uM("scroll-x" to "true", "class" to "tab-scroll-mobile", "show-scrollbar" to false, "scroll-with-animation" to true), _uA( - _cE("view", _uM("class" to "tab-container-mobile"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(orderTabsMobile.value, fun(tab, __key, __index, _cached): Any { - return _cE("view", _uM("key" to tab.id, "class" to _nC(_uA( - "tab-item-mobile", - _uM("active" to (activeTab.value === tab.id)) - )), "onClick" to fun(){ - switchTab(tab.id) - } - ), _uA( - _cE("text", _uM("class" to "tab-name"), _tD(tab.name), 1), - if (tab.count > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-count"), _tD(tab.count), 1) - } else { - _cC("v-if", true) - } - , - if (activeTab.value === tab.id) { - _cE("view", _uM("key" to 1, "class" to "active-indicator")) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - } - ), 128) - )) - )) - )), - _cE("scroll-view", _uM("direction" to "vertical", "class" to "orders-content", "refresher-enabled" to "", "refresher-triggered" to refreshing.value, "onRefresherrefresh" to onRefresh, "onScrolltolower" to loadMore), _uA( - if (isTrue(!loading.value && orders.value.length === 0)) { - _cE("view", _uM("key" to 0, "class" to "empty-orders"), _uA( - _cE("text", _uM("class" to "empty-icon"), "📦"), - _cE("text", _uM("class" to "empty-title"), "暂无订单"), - _cE("text", _uM("class" to "empty-desc"), "去逛逛,发现心仪的商品"), - _cE("button", _uM("class" to "go-shopping-btn", "onClick" to goShopping), "去逛逛") - )) - } else { - _cE("view", _uM("key" to 1, "class" to "order-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(orders.value, fun(order, __key, __index, _cached): Any { - return _cE("view", _uM("key" to order.id, "class" to "order-card", "onClick" to fun(){ - viewOrderDetail(order.id) - } - ), _uA( - _cE("view", _uM("class" to "order-card-header"), _uA( - _cE("view", _uM("class" to "shop-info"), _uA( - _cE("text", _uM("class" to "shop-icon"), "🏪"), - _cE("text", _uM("class" to "shop-name"), _tD(if (order.shop_name != null && order.shop_name != "") { - order.shop_name - } else { - "自营店铺" - } - ), 1), - _cE("text", _uM("class" to "arrow-right"), "›") - )), - _cE("view", _uM("class" to "status-row"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "order-status", - getStatusClass(order.status) - ))), _tD(getStatusText(order.status)), 3), - _cE("text", _uM("class" to "more-btn", "onClick" to withModifiers(fun(){ - showOrderMenu(order) - } - , _uA( - "stop" - ))), "⋯", 8, _uA( - "onClick" - )) - )) - )), - _cE("view", _uM("class" to "order-products"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(order.products, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "order-product"), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.image, "mode" to "aspectFill", "onClick" to withModifiers(fun(){ - navigateToProduct(product) - } - , _uA( - "stop" - ))), null, 8, _uA( - "src", - "onClick" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("view", _uM("class" to "product-top-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(product.name), 1), - _cE("text", _uM("class" to "product-spec"), _tD(product.spec), 1) - )), - _cE("view", _uM("class" to "product-footer"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - _cE("text", _uM("class" to "product-quantity"), "x" + _tD(product.quantity), 1) - )) - )) - )) - } - ), 128) - )), - _cE("view", _uM("class" to "order-summary"), _uA( - _cE("text", _uM("class" to "order-time"), _tD(formatDate(order.create_time)), 1), - _cE("view", _uM("class" to "summary-right"), _uA( - _cE("text", _uM("class" to "summary-label"), "共" + _tD(order.products.length) + "件商品 实付:", 1), - _cE("text", _uM("class" to "summary-price"), "¥" + _tD(order.total_amount), 1) - )) - )), - if (isTrue(order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id))) { - _cE("view", _uM("key" to 0, "class" to "share-free-row", "onClick" to withModifiers(fun(){ - shareForFree(order) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "share-free-icon"), "🎁"), - _cE("text", _uM("class" to "share-free-text"), "分享免单"), - _cE("text", _uM("class" to "share-free-tip"), "分享给好友," + _tD(getRequiredCount(order.merchant_id)) + "人购买即可免单", 1), - _cE("text", _uM("class" to "share-free-arrow"), "›") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "order-actions", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - if (order.status === 1) { - _cE("view", _uM("key" to 0, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn cancel", "onClick" to fun(){ - cancelOrder(order.id) - }), "取消订单", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn pay", "onClick" to fun(){ - payOrder(order.id) - }), "立即支付", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 2) { - _cE("view", _uM("key" to 1, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn remind", "onClick" to withModifiers(fun(){ - remindShipping(order.id) - }, _uA( - "stop" - ))), "提醒发货", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn refund", "onClick" to withModifiers(fun(){ - onApplyRefund(order) - }, _uA( - "stop" - ))), "申请售后", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 3) { - _cE("view", _uM("key" to 2, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn view", "onClick" to withModifiers(fun(){ - viewLogistics(order.id) - }, _uA( - "stop" - ))), "查看物流", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn confirm", "onClick" to withModifiers(fun(){ - confirmReceipt(order.id) - }, _uA( - "stop" - ))), "确认收货", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn refund", "onClick" to withModifiers(fun(){ - onApplyRefund(order) - }, _uA( - "stop" - ))), "申请售后", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 4) { - _cE("view", _uM("key" to 3, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn review", "onClick" to withModifiers(fun(){ - goReview(order) - }, _uA( - "stop" - ))), "评价", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn refund", "onClick" to withModifiers(fun(){ - onApplyRefund(order) - }, _uA( - "stop" - ))), "申请售后", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn repurchase", "onClick" to withModifiers(fun(){ - repurchase(order) - }, _uA( - "stop" - ))), "再次购买", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 5) { - _cE("view", _uM("key" to 4, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn view", "onClick" to withModifiers(fun(){ - viewOrderDetail(order.id) - }, _uA( - "stop" - ))), "查看详情", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 6) { - _cE("view", _uM("key" to 5, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn view", "onClick" to withModifiers(fun(){ - viewOrderDetail(order.id) - }, _uA( - "stop" - ))), "查看详情", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn cancel", "onClick" to withModifiers(fun(){ - cancelRefund(order.id) - }, _uA( - "stop" - ))), "取消退款", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn refund", "onClick" to withModifiers(fun(){ - viewRefundProgress(order.id) - }, _uA( - "stop" - ))), "退款进度", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (order.status === 7) { - _cE("view", _uM("key" to 6, "class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "action-btn view", "onClick" to fun(){ - viewOrderDetail(order.id) - }), "查看详情", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn repurchase", "onClick" to fun(){ - repurchase(order) - }), "再次购买", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )) - } - , - if (isTrue(loadingMore.value)) { - _cE("view", _uM("key" to 2, "class" to "loading-more"), _uA( - _cE("view", _uM("class" to "loading-spinner")), - _cE("text", null, "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!hasMore.value && orders.value.length > 0)) { - _cE("view", _uM("key" to 3, "class" to "no-more"), _uA( - _cE("text", null, "没有更多订单了") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "safe-area")) - ), 40, _uA( - "refresher-triggered" - )), - _cE("view", _uM("class" to "tabbar-placeholder")) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("orders-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "width" to "100%", "height" to "100%", "backgroundColor" to "#f5f5f5", "overflow" to "hidden")), "orders-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "width" to "100%", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "zIndex" to 999, "position" to "relative", "boxSizing" to "border-box", "flexShrink" to 0)), "header-search" to _uM(".full-width" to _uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "position" to "relative", "width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "search-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 36, "lineHeight" to "36px", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18, "paddingTop" to 0, "paddingRight" to 40, "paddingBottom" to 0, "paddingLeft" to 16, "fontSize" to 14, "backgroundColor" to "#f5f5f5", "color" to "#333333", "width" to "100%", "display" to "flex", "alignItems" to "center", "color::placeholder" to "#999999", "fontSize::placeholder" to 12, "borderTopColor:focus" to "#ff5000", "borderRightColor:focus" to "#ff5000", "borderBottomColor:focus" to "#ff5000", "borderLeftColor:focus" to "#ff5000", "backgroundColor:focus" to "#FFFFFF")), "search-icon" to _pS(_uM("position" to "absolute", "right" to 12, "fontSize" to 18, "color" to "#999999")), "search-clear" to _pS(_uM("position" to "absolute", "right" to 12, "fontSize" to 20, "color" to "#999999", "width" to 20, "height" to 20, "lineHeight" to "18px", "textAlign" to "center", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "#dddddd")), "order-tabs-fixed-container" to _pS(_uM("backgroundColor" to "#ffffff", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "width" to "100%", "!zIndex" to 100, "flexShrink" to 0, "position" to "relative")), "orders-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "minHeight" to 0, "backgroundColor" to "#f5f5f5", "height" to 0)), "tab-item-fixed" to _uM("" to _uM("paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "textAlign" to "center", "position" to "relative", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "whiteSpace" to "nowrap", "flexShrink" to 0, "minWidth" to 60, "height" to "100%"), ".active" to _uM("color" to "#ff5000", "fontWeight" to "bold")), "tab-scroll-mobile" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "whiteSpace" to "nowrap", "display" to "flex", "flexDirection" to "row")), "tab-container-mobile" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap")), "tab-item-mobile" to _uM("" to _uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "textAlign" to "center", "position" to "relative", "display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "alignItems" to "center", "whiteSpace" to "nowrap", "flexShrink" to 0), ".active" to _uM("color" to "#ff5000", "fontWeight" to "bold")), "active-indicator" to _pS(_uM("position" to "absolute", "bottom" to 0, "left" to 10, "right" to 10, "height" to 3, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 2, "borderTopRightRadius" to 2, "borderBottomRightRadius" to 2, "borderBottomLeftRadius" to 2)), "tab-name" to _pS(_uM("fontSize" to 14)), "tab-count" to _pS(_uM("marginLeft" to 4, "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "fontSize" to 10, "paddingTop" to 1, "paddingRight" to 4, "paddingBottom" to 1, "paddingLeft" to 4, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 12, "textAlign" to "center")), "empty-orders" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20)), "empty-icon" to _pS(_uM("fontSize" to 80, "color" to "#dddddd", "marginBottom" to 20)), "empty-title" to _pS(_uM("fontSize" to 18, "color" to "#666666", "marginBottom" to 10)), "empty-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-shopping-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "fontSize" to 16)), "order-list" to _pS(_uM("paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "width" to "100%", "boxSizing" to "border-box")), "order-card" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "marginBottom" to 10, "overflow" to "hidden", "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.08)", "flexShrink" to 0, "boxSizing" to "border-box")), "order-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "order-no" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "order-status" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold")), "status-pending" to _pS(_uM("color" to "#ff5000")), "status-shipping" to _pS(_uM("color" to "#ff9500")), "status-delivering" to _pS(_uM("color" to "#007aff")), "status-completed" to _pS(_uM("color" to "#34c759")), "status-cancelled" to _pS(_uM("color" to "#999999")), "status-refunding" to _pS(_uM("color" to "#ff5000")), "status-refunded" to _pS(_uM("color" to "#999999")), "order-products" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "order-product" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 15, "width" to "100%", "marginBottom:last-child" to 0)), "product-image" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginRight" to 12, "flexShrink" to 0)), "product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between", "height" to 80, "overflow" to "hidden")), "product-top-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "width" to "100%")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "overflow" to "hidden", "textOverflow" to "ellipsis", "lines" to 2)), "product-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 2)), "product-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to "auto")), "product-price" to _pS(_uM("fontSize" to 16, "color" to "#ff5000", "fontWeight" to "bold")), "product-quantity" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "order-info" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "info-row" to _uM("" to _uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 8, "marginBottom:last-child" to 0), ".total" to _uM("marginTop" to 8, "paddingTop" to 8, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "info-label" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "info-value" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "total-price" to _pS(_uM("fontSize" to 18, "color" to "#ff5000", "fontWeight" to "bold")), "order-actions" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "action-buttons" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end")), "action-btn" to _uM("" to _uM("paddingTop" to 6, "paddingRight" to 15, "paddingBottom" to 6, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "fontSize" to 13, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "rgba(0,0,0,0)", "marginLeft" to 10), ".cancel" to _uM("color" to "#ff6b6b", "borderTopColor" to "#ff6b6b", "borderRightColor" to "#ff6b6b", "borderBottomColor" to "#ff6b6b", "borderLeftColor" to "#ff6b6b"), ".pay" to _uM("color" to "#ff5000", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000"), ".remind" to _uM("color" to "#666666", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc"), ".view" to _uM("color" to "#666666", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc"), ".confirm" to _uM("color" to "#34c759", "borderTopColor" to "#34c759", "borderRightColor" to "#34c759", "borderBottomColor" to "#34c759", "borderLeftColor" to "#34c759"), ".refund" to _uM("color" to "#666666", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc"), ".review" to _uM("color" to "#ff9500", "borderTopColor" to "#ff9500", "borderRightColor" to "#ff9500", "borderBottomColor" to "#ff9500", "borderLeftColor" to "#ff9500"), ".repurchase" to _uM("color" to "#ff5000", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center")), "loading-spinner" to _pS(_uM("width" to 24, "height" to 24, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#f0f5ff", "borderBottomColor" to "#f0f5ff", "borderLeftColor" to "#f0f5ff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 10)), "no-more" to _pS(_uM("textAlign" to "center", "color" to "#999999", "fontSize" to 13, "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0)), "safe-area" to _pS(_uM("height" to 20)), "tabbar-placeholder" to _pS(_uM("height" to 50, "backgroundColor" to "#f5f5f5")), "order-card-header" to _pS(_uM("paddingTop" to 12, "paddingRight" to 15, "paddingBottom" to 12, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "status-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "more-btn" to _pS(_uM("fontSize" to 18, "color" to "#999999", "marginLeft" to 8, "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5)), "shop-info" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "shop-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6)), "shop-name" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333", "maxWidth" to 150, "overflow" to "hidden", "textOverflow" to "ellipsis", "lines" to 1)), "arrow-right" to _pS(_uM("fontSize" to 14, "color" to "#cccccc", "marginLeft" to 4)), "product-title-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginBottom" to 4)), "product-spec-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start", "marginTop" to 2)), "order-summary" to _pS(_uM("paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f9f9f9")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "summary-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "summary-label" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginRight" to 5)), "summary-price" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "share-free-row" to _pS(_uM("marginTop" to 0, "marginRight" to 15, "marginBottom" to 10, "marginLeft" to 15, "paddingTop" to 12, "paddingRight" to 15, "paddingBottom" to 12, "paddingLeft" to 15, "backgroundImage" to "linear-gradient(135deg, #fff5f0 0%, #ffecd2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "share-free-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 8)), "share-free-text" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#ff6b35", "marginRight" to 8)), "share-free-tip" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 12, "color" to "#ff8c42")), "share-free-arrow" to _pS(_uM("fontSize" to 16, "color" to "#ff8c42"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/payment-success.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/payment-success.kt deleted file mode 100644 index 9080bd6c..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/payment-success.kt +++ /dev/null @@ -1,129 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerPaymentSuccess : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPaymentSuccess) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPaymentSuccess - val _cache = __ins.renderCache - val orderId = ref("") - val orderNo = ref("") - val amount = ref(0) - val loadOrderInfo = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val response = await(supabaseService.getOrderById(orderId.value)) - console.log("[payment-success] getOrderById response:", JSON.stringify(response), " at pages/mall/consumer/payment-success.uvue:35") - if (response != null) { - val orderData = response as UTSJSONObject - val totalAmount = orderData.getNumber("total_amount") - val paidAmount = orderData.getNumber("paid_amount") - console.log("[payment-success] total_amount:", totalAmount, "paid_amount:", paidAmount, " at pages/mall/consumer/payment-success.uvue:41") - if (paidAmount != null && paidAmount > 0) { - amount.value = paidAmount - } else if (totalAmount != null && totalAmount > 0) { - amount.value = totalAmount - } - val orderNoVal = orderData.getString("order_no") - if (orderNoVal != null && orderNoVal != "") { - orderNo.value = orderNoVal - } - } - } - catch (err: Throwable) { - console.error("[payment-success] 加载订单信息失败:", err, " at pages/mall/consumer/payment-success.uvue:55") - } - }) - } - onLoad(fun(options){ - if (options == null) { - return - } - val orderIdValue = options["orderId"] - if (orderIdValue != null) { - orderId.value = orderIdValue as String - orderNo.value = orderIdValue as String - val amountValue = options["amount"] - if (amountValue != null) { - val amountStr = amountValue.toString() - console.log("[payment-success] amountStr:", amountStr, " at pages/mall/consumer/payment-success.uvue:70") - val parsed = parseFloat(amountStr) - console.log("[payment-success] parsed:", parsed, " at pages/mall/consumer/payment-success.uvue:72") - if (isNaN(parsed) == false) { - amount.value = parsed - } - } - if (amount.value == 0) { - console.log("[payment-success] amount为0,尝试从数据库查询", " at pages/mall/consumer/payment-success.uvue:79") - } - loadOrderInfo() - } - } - ) - onMounted(fun(){}) - val viewOrder = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders")) - } - val goHome = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "payment-success-page"), _uA( - _cE("view", _uM("class" to "success-content"), _uA( - _cE("view", _uM("class" to "icon-wrapper"), _uA( - _cE("text", _uM("class" to "success-icon"), "✓") - )), - _cE("text", _uM("class" to "success-title"), "支付成功"), - _cE("text", _uM("class" to "success-desc"), "您的订单已支付成功,我们将尽快为您发货"), - if (isTrue(orderId.value)) { - _cE("view", _uM("key" to 0, "class" to "order-info"), _uA( - _cE("text", _uM("class" to "info-text"), "订单编号:" + _tD(orderNo.value), 1), - _cE("text", _uM("class" to "info-text"), "支付金额:¥" + _tD(amount.value.toFixed(2)), 1) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "action-buttons"), _uA( - _cE("button", _uM("class" to "btn primary-btn", "onClick" to viewOrder), "查看订单"), - _cE("button", _uM("class" to "btn secondary-btn", "onClick" to goHome), "返回首页") - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("payment-success-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#ffffff", "paddingTop" to 0, "paddingRight" to 30, "paddingBottom" to 0, "paddingLeft" to 30)), "success-content" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "width" to "100%")), "icon-wrapper" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 40, "borderTopRightRadius" to 40, "borderBottomRightRadius" to 40, "borderBottomLeftRadius" to 40, "backgroundColor" to "#4cd964", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 20, "boxShadow" to "0 4px 10px rgba(76, 217, 100, 0.3)")), "success-icon" to _pS(_uM("fontSize" to 40, "color" to "#ffffff", "fontWeight" to "bold")), "success-title" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 10)), "success-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999", "textAlign" to "center", "marginBottom" to 30, "lineHeight" to 1.5)), "order-info" to _pS(_uM("backgroundColor" to "#f9f9f9", "paddingTop" to 15, "paddingRight" to 20, "paddingBottom" to 15, "paddingLeft" to 20, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "width" to "100%", "marginBottom" to 30, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "info-text" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 5)), "action-buttons" to _pS(_uM("width" to "100%", "display" to "flex", "flexDirection" to "column")), "btn" to _pS(_uM("width" to "100%", "height" to 45, "lineHeight" to "45px", "textAlign" to "center", "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold", "marginBottom" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center")), "primary-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "secondary-btn" to _pS(_uM("backgroundColor" to "#ffffff", "color" to "#666666", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/payment.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/payment.kt deleted file mode 100644 index a44b4d03..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/payment.kt +++ /dev/null @@ -1,539 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.`$emit` as uni__emit -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.redirectTo as uni_redirectTo -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerPayment : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPayment) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPayment - val _cache = __ins.renderCache - val orderId = ref("") - val orderNo = ref("") - val amount = ref(0) - val paymentMethods = ref(_uA()) - val selectedMethod = ref("wechat") - val userBalance = ref(0) - val isPaying = ref(false) - val showPassword = ref(false) - val password = ref("") - val productAmount = ref(0) - val deliveryFee = ref(0) - val discountAmount = ref(0) - val loadPaymentMethods = fun(){ - val methods = _uA( - PaymentMethodType(id = "wechat", name = "微信支付", description = "推荐安装微信5.0及以上版本使用", icon = "💳", enabled = true), - PaymentMethodType(id = "alipay", name = "支付宝", description = "推荐安装支付宝10.0及以上版本使用", icon = "💳", enabled = true), - PaymentMethodType(id = "balance", name = "余额支付", description = "使用账户余额支付", icon = "💰", enabled = true), - PaymentMethodType(id = "bankcard", name = "银行卡支付", description = "支持储蓄卡、信用卡", icon = "💳", enabled = true) - ) as UTSArray - paymentMethods.value = methods - } - val loadUserBalance = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val balance = await(supabaseService.getUserBalanceNumber()) - userBalance.value = balance - } - catch (err: Throwable) { - console.error("加载用户余额异常:", err, " at pages/mall/consumer/payment.uvue:178") - userBalance.value = 0 - } - }) - } - val calculatePriceDetails = fun(totalAmount: Number){ - productAmount.value = totalAmount * 0.8 - deliveryFee.value = totalAmount * 0.1 - discountAmount.value = totalAmount * 0.1 - val calculatedTotal = productAmount.value + deliveryFee.value - discountAmount.value - if (Math.abs(calculatedTotal - totalAmount) > 0.01) { - productAmount.value = totalAmount + discountAmount.value - deliveryFee.value - } - } - val updateOrderInStorage = fun(targetOrderId: String, status: Number){ - try { - val ordersStr = uni_getStorageSync("orders") - var orders: UTSArray> = _uA() - if (ordersStr != null && ordersStr !== "") { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(ordersStr as String), " at pages/mall/consumer/payment.uvue:206") - if (UTSArray.isArray(parsed)) { - run { - var i: Number = 0 - while(i < (parsed as UTSArray).length){ - val itemStr = JSON.stringify((parsed as UTSArray)[i]) - val itemParsed = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/payment.uvue:211") - if (itemParsed != null) { - orders.push(itemParsed as Record) - } - i++ - } - } - } - } - var foundIndex: Number = -1 - run { - var i: Number = 0 - while(i < orders.length){ - val o = orders[i] - if (o["id"] === targetOrderId) { - foundIndex = i - break - } - i++ - } - } - if (foundIndex !== -1) { - orders[foundIndex]["status"] = status - orders[foundIndex]["payment_status"] = if (status === 2) { - 1 - } else { - 0 - } - orders[foundIndex]["updated_at"] = Date().toISOString() - uni_setStorageSync("orders", JSON.stringify(orders)) - console.log("订单状态已更新到Storage (orders):", targetOrderId, status, " at pages/mall/consumer/payment.uvue:234") - } else { - console.log("本地缓存中无订单数据,已忽略:", targetOrderId, " at pages/mall/consumer/payment.uvue:237") - } - } - catch (e: Throwable) { - console.error("更新订单状态失败", e, " at pages/mall/consumer/payment.uvue:240") - } - } - val cancelPayment = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - updateOrderInStorage(orderId.value, 1) - uni__emit("orderUpdated", object : UTSJSONObject() { - var orderId = orderId.value - var status: Number = 1 - }) - uni_showToast(ShowToastOptions(title = "已保存到待支付订单", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - } - catch (err: Throwable) { - console.error("取消支付异常:", err, " at pages/mall/consumer/payment.uvue:267") - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val goBack = fun(){ - uni_showModal(ShowModalOptions(title = "取消支付", content = "确定要取消支付吗?取消后订单将保存到待支付订单中", confirmText = "取消支付", cancelText = "继续支付", success = fun(res){ - if (res.confirm) { - cancelPayment() - } - } - )) - } - val loadOrderInfo = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - if (orderId.value == "") { - return@w1 - } - val order = await(supabaseService.getOrderDetail(orderId.value)) - if (order != null) { - val orderStr = JSON.stringify(order) - val orderParsed = UTSAndroid.consoleDebugError(JSON.parse(orderStr), " at pages/mall/consumer/payment.uvue:300") - if (orderParsed == null) { - console.error("订单数据解析失败", " at pages/mall/consumer/payment.uvue:302") - return@w1 - } - val orderObj = orderParsed as UTSJSONObject - val orderNoVal = orderObj.getString("order_no") - if (orderNoVal != null) { - orderNo.value = orderNoVal - } - val totalAmount = orderObj.getNumber("total_amount") - val dbAmount = totalAmount ?: 0 - if (dbAmount > 0) { - amount.value = dbAmount - } - val items = orderObj.get("items") - if (items != null && UTSArray.isArray(items) && (items as UTSArray).length > 0) {} - } else { - console.warn("Order not found in DB", orderId.value, " at pages/mall/consumer/payment.uvue:323") - if (orderNo.value == "") { - orderNo.value = "ORD_PENDING_" + Date.now() - } - } - } - catch (err: Throwable) { - console.error("加载订单信息异常:", err, " at pages/mall/consumer/payment.uvue:327") - } - }) - } - onLoad(fun(options){ - if (options != null) { - val orderIdValue = options["orderId"] - if (orderIdValue != null) { - orderId.value = orderIdValue as String - loadOrderInfo() - } - val amountValue = options["amount"] - if (amountValue != null) { - amount.value = parseFloat(amountValue.toString()) - } - val productAmountValue = options["productAmount"] - if (productAmountValue != null) { - productAmount.value = parseFloat(productAmountValue.toString()) - } - val deliveryFeeValue = options["deliveryFee"] - if (deliveryFeeValue != null) { - deliveryFee.value = parseFloat(deliveryFeeValue.toString()) - } - val discountAmountValue = options["discountAmount"] - if (discountAmountValue != null) { - discountAmount.value = parseFloat(discountAmountValue.toString()) - } - if (productAmountValue == null && amount.value > 0) { - calculatePriceDetails(amount.value) - } - loadPaymentMethods() - loadUserBalance() - } - } - ) - onMounted(fun(){}) - onBackPress(fun(options): Boolean? { - if (options.from === "navigateBack") { - return false - } - goBack() - return true - } - ) - val getCurrentUserId = fun(): String { - val userStore = uni_getStorageSync("userInfo") - if (userStore != null) { - val userStr = JSON.stringify(userStore) - val userParsed = UTSAndroid.consoleDebugError(JSON.parse(userStr), " at pages/mall/consumer/payment.uvue:391") - if (userParsed != null) { - val userObj = userParsed as UTSJSONObject - val id = userObj.getString("id") - if (id != null) { - return id - } - } - } - return "" - } - val getMethodBrandIcon = fun(methodId: String): String { - if (methodId === "wechat") { - return "/static/logo.png" - } else if (methodId === "alipay") { - return "/static/logo.png" - } else if (methodId === "balance") { - return "/static/logo.png" - } else if (methodId === "bankcard") { - return "/static/logo.png" - } - return "/static/logo.png" - } - val selectMethod = fun(method: PaymentMethodType){ - if (!method.enabled) { - uni_showToast(ShowToastOptions(title = "该支付方式暂不可用", icon = "none")) - return - } - selectedMethod.value = method.id - showPassword.value = false - password.value = "" - } - val closePasswordPopup = fun(){ - showPassword.value = false - password.value = "" - } - val getPayButtonText = fun(): String { - if (selectedMethod.value === "balance" && userBalance.value < amount.value) { - return "余额不足" - } - if (selectedMethod.value === "wechat") { - return "微信支付" - } else if (selectedMethod.value === "alipay") { - return "支付宝支付" - } else if (selectedMethod.value === "balance") { - return "余额支付" - } else if (selectedMethod.value === "bankcard") { - return "银行卡支付" - } - return "确认支付" - } - val confirmPayment = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (isPaying.value) { - return@w1 - } - if (selectedMethod.value === "balance" || selectedMethod.value === "bankcard") { - if (selectedMethod.value === "balance" && userBalance.value < amount.value) { - uni_showToast(ShowToastOptions(title = "余额不足", icon = "none")) - return@w1 - } - if (!showPassword.value) { - showPassword.value = true - password.value = "" - return@w1 - } - if (password.value.length !== 6) { - uni_showToast(ShowToastOptions(title = "请输入6位支付密码", icon = "none")) - return@w1 - } - } - isPaying.value = true - uni_showLoading(ShowLoadingOptions(title = "支付中...")) - try { - console.log("[confirmPayment] 开始支付, orderId:", orderId.value, "method:", selectedMethod.value, " at pages/mall/consumer/payment.uvue:509") - val success = await(supabaseService.payOrder(orderId.value, selectedMethod.value, amount.value)) - console.log("[confirmPayment] 支付结果:", success, " at pages/mall/consumer/payment.uvue:512") - if (!success) { - console.error("[confirmPayment] payOrder 返回 false", " at pages/mall/consumer/payment.uvue:515") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "支付处理失败", icon = "none")) - isPaying.value = false - return@w1 - } - uni_hideLoading() - updateOrderInStorage(orderId.value, 2) - uni_showToast(ShowToastOptions(title = "支付成功", icon = "success", duration = 2000)) - uni__emit("orderUpdated", object : UTSJSONObject() { - var orderId = orderId.value - var status: Number = 2 - }) - setTimeout(fun(){ - uni_redirectTo(RedirectToOptions(url = "/pages/mall/consumer/payment-success?orderId=" + orderId.value)) - } - , 1500) - } - catch (err: Throwable) { - console.error("[confirmPayment] 支付异常:", err, " at pages/mall/consumer/payment.uvue:544") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "支付失败", icon = "none")) - isPaying.value = false - } - }) - } - val verifyPassword = fun(): UTSPromise { - return wrapUTSPromise(suspend { - val userId = getCurrentUserId() - try { - await(UTSPromise(fun(resolve: (value: Unit) -> Unit, _reject){ - setTimeout(fun(){ - resolve(Unit) - } - , 500) - } - )) - val isCorrect = true - if (isCorrect) { - confirmPayment() - } else { - password.value = "" - uni_showToast(ShowToastOptions(title = "密码错误", icon = "none")) - } - } - catch (err: Throwable) { - console.error("验证密码异常:", err, " at pages/mall/consumer/payment.uvue:596") - } - }) - } - val inputPassword = fun(num: String){ - if (password.value.length >= 6) { - return - } - password.value += num - } - val deletePassword = fun(){ - if (password.value.length > 0) { - password.value = password.value.slice(0, -1) - } - } - watch(password, fun(newPassword: String){ - if (newPassword.length === 6) { - verifyPassword() - } - } - ) - val forgotPassword = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/forgot-password")) - } - onUnmounted(fun(){}) - return fun(): Any? { - return _cE("view", _uM("class" to "payment-page"), _uA( - _cE("scroll-view", _uM("class" to "payment-content", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "payment-amount-header"), _uA( - _cE("text", _uM("class" to "amount-label"), "支付金额"), - _cE("view", _uM("class" to "amount-value-row"), _uA( - _cE("text", _uM("class" to "amount-currency"), "¥"), - _cE("text", _uM("class" to "amount-number"), _tD(amount.value.toFixed(2)), 1) - )), - _cE("text", _uM("class" to "order-no-text"), "订单号: " + _tD(orderNo.value), 1) - )), - _cE("view", _uM("class" to "methods-section-new"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "选择支付方式") - )), - _cE("view", _uM("class" to "method-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(paymentMethods.value, fun(method, __key, __index, _cached): Any { - return _cE("view", _uM("key" to method.id, "class" to "method-item-modern", "onClick" to fun(){ - selectMethod(method) - } - ), _uA( - _cE("view", _uM("class" to "method-left"), _uA( - _cE("image", _uM("class" to "method-img", "src" to getMethodBrandIcon(method.id), "mode" to "aspectFit"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "method-info"), _uA( - _cE("text", _uM("class" to "method-name"), _tD(method.name), 1), - if (method.id === "balance") { - _cE("text", _uM("key" to 0, "class" to "method-desc"), "当前余额: ¥" + _tD(userBalance.value.toFixed(2)), 1) - } else { - _cE("text", _uM("key" to 1, "class" to "method-desc"), _tD(method.description), 1) - } - )) - )), - _cE("view", _uM("class" to "method-right"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "radio-circle", - _uM("checked" to (selectedMethod.value === method.id)) - ))), _uA( - if (selectedMethod.value === method.id) { - _cE("view", _uM("key" to 0, "class" to "radio-inner")) - } else { - _cC("v-if", true) - } - ), 2) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )) - )), - if (isTrue(showPassword.value)) { - _cE("view", _uM("key" to 0, "class" to "password-popup-mask", "onClick" to closePasswordPopup), _uA( - _cE("view", _uM("class" to "password-popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-close", "onClick" to closePasswordPopup), "✕"), - _cE("text", _uM("class" to "popup-title"), "请输入支付密码"), - _cE("view", _uM("class" to "popup-placeholder")) - )), - _cE("view", _uM("class" to "popup-amount-info"), _uA( - _cE("text", _uM("class" to "popup-amount-label"), "支付金额"), - _cE("view", _uM("class" to "popup-amount-row"), _uA( - _cE("text", _uM("class" to "popup-currency"), "¥"), - _cE("text", _uM("class" to "popup-value"), _tD(amount.value.toFixed(2)), 1) - )) - )), - _cE("view", _uM("class" to "password-input-row"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(6, fun(_, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "password-box"), _uA( - if (password.value.length > index) { - _cE("view", _uM("key" to 0, "class" to "password-dot")) - } else { - _cC("v-if", true) - } - )) - }), 64) - )), - _cE("text", _uM("class" to "forgot-password-link", "onClick" to forgotPassword), "忘记密码?"), - _cE("view", _uM("class" to "password-keyboard-popup"), _uA( - _cE("view", _uM("class" to "keyboard-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(9, fun(num, __key, __index, _cached): Any { - return _cE("view", _uM("key" to num, "class" to "keyboard-key", "onClick" to fun(){ - inputPassword(num.toString(10)) - }), _uA( - _cE("text", _uM("class" to "key-text"), _tD(num), 1) - ), 8, _uA( - "onClick" - )) - }), 64), - _cE("view", _uM("class" to "keyboard-key")), - _cE("view", _uM("class" to "keyboard-key", "onClick" to fun(){ - inputPassword("0") - }), _uA( - _cE("text", _uM("class" to "key-text"), "0") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "keyboard-key", "onClick" to deletePassword), _uA( - _cE("text", _uM("class" to "key-text"), "⌫") - )) - )) - )) - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )), - if (isTrue(!showPassword.value)) { - _cE("view", _uM("key" to 0, "class" to "payment-bottom"), _uA( - _cE("view", _uM("class" to "price-summary"), _uA( - _cE("text", _uM("class" to "summary-label"), "需支付:"), - _cE("text", _uM("class" to "summary-price"), "¥" + _tD(amount.value.toFixed(2)), 1) - )), - _cE("button", _uM("class" to _nC(_uA( - "pay-btn", - _uM("disabled" to (isPaying.value || (selectedMethod.value === "balance" && userBalance.value < amount.value))) - )), "onClick" to confirmPayment), _uA( - if (isTrue(!isPaying.value)) { - _cE("text", _uM("key" to 0, "class" to "pay-text"), _tD(getPayButtonText()), 1) - } else { - _cE("text", _uM("key" to 1, "class" to "pay-text"), "支付中...") - } - ), 2) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("payment-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "width" to "100%", "height" to "100%", "backgroundColor" to "#f5f5f5", "overflow" to "hidden")), "payment-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "back-btn" to _pS(_uM("fontSize" to 24, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "payment-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f8f8f8")), "payment-amount-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 40, "paddingRight" to 15, "paddingBottom" to 40, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 12)), "amount-label" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 10)), "amount-value-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 10)), "amount-currency" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 4)), "amount-number" to _pS(_uM("fontSize" to 40, "fontWeight" to "bold", "color" to "#333333")), "order-no-text" to _pS(_uM("fontSize" to 13, "color" to "#999999")), "methods-section-new" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 0, "marginRight" to 12, "marginBottom" to 0, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-header" to _pS(_uM("marginBottom" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "method-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "method-item-modern" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 0.5, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "method-left" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "method-img" to _pS(_uM("width" to 28, "height" to 28, "marginRight" to 12)), "method-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "method-name" to _pS(_uM("fontSize" to 15, "color" to "#333333")), "method-desc" to _pS(_uM("fontSize" to 11, "color" to "#999999", "marginTop" to 2)), "radio-circle" to _uM("" to _uM("width" to 20, "height" to 20, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".checked" to _uM("borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "backgroundColor" to "#ff5000")), "radio-inner" to _pS(_uM("width" to 10, "height" to 10, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "backgroundColor" to "#ffffff")), "balance-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 10)), "balance-info" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 10)), "balance-label" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "balance-value" to _pS(_uM("fontSize" to 18, "color" to "#ff4757", "fontWeight" to "bold")), "balance-tip" to _pS(_uM("paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "backgroundColor" to "#fff0f0", "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5)), "tip-text" to _pS(_uM("fontSize" to 12, "color" to "#ff4757")), "password-popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.6)", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-end", "zIndex" to 1000)), "password-popup-content" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "animation" to "slideUp 0.3s ease-out", "width" to "100%")), "popup-header" to _pS(_uM("width" to "100%", "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 30, "paddingTop" to 0, "paddingRight" to 20, "paddingBottom" to 0, "paddingLeft" to 20)), "popup-close" to _pS(_uM("fontSize" to 20, "color" to "#999999", "paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4)), "popup-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "popup-placeholder" to _pS(_uM("width" to 28)), "popup-amount-info" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginBottom" to 30)), "popup-amount-label" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 8)), "popup-amount-row" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "popup-currency" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "marginRight" to 2)), "popup-value" to _pS(_uM("fontSize" to 32, "fontWeight" to "bold", "color" to "#333333")), "password-input-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "center", "marginBottom" to 20)), "password-box" to _pS(_uM("width" to 45, "height" to 45, "borderTopWidth" to 1, "borderRightWidth" to "medium", "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "none", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#000000", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#f9f9f9", "borderTopLeftRadius:first-child" to 4, "borderTopRightRadius:first-child" to 0, "borderBottomRightRadius:first-child" to 0, "borderBottomLeftRadius:first-child" to 4, "borderRightWidth:last-child" to 1, "borderRightStyle:last-child" to "solid", "borderRightColor:last-child" to "#dddddd", "borderTopLeftRadius:last-child" to 0, "borderTopRightRadius:last-child" to 4, "borderBottomRightRadius:last-child" to 4, "borderBottomLeftRadius:last-child" to 0)), "password-dot" to _pS(_uM("width" to 10, "height" to 10, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "backgroundColor" to "#000000")), "forgot-password-link" to _pS(_uM("fontSize" to 13, "color" to "#576b95", "marginBottom" to 20)), "password-section" to _pS(_uM("display" to "none")), "password-keyboard-popup" to _pS(_uM("width" to "100%", "backgroundColor" to "#f5f5f5", "paddingTop" to 6, "paddingRight" to 6, "paddingBottom" to "env(safe-area-inset-bottom)", "paddingLeft" to 6)), "password-keyboard" to _pS(_uM("display" to "none", "backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10)), "keyboard-grid" to _pS(_uM("display" to "flex", "flexWrap" to "wrap", "backgroundColor" to "#e5e5e5")), "keyboard-key" to _pS(_uM("width" to "33.33%", "backgroundColor" to "#ffffff", "height" to 60, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f5f5f5", "borderRightColor" to "#f5f5f5", "borderBottomColor" to "#f5f5f5", "borderLeftColor" to "#f5f5f5", "boxSizing" to "border-box", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor:active" to "#e0e0e0")), "key-text" to _pS(_uM("fontSize" to 24, "color" to "#333333")), "payment-bottom" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f0f0f0", "paddingTop" to 12, "paddingRight" to 16, "paddingBottom" to "env(safe-area-inset-bottom)", "paddingLeft" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "price-summary" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "summary-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginRight" to 4)), "summary-price" to _pS(_uM("fontSize" to 24, "color" to "#ff5000", "fontWeight" to "bold")), "pay-btn" to _uM("" to _uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "paddingTop" to 0, "paddingRight" to 40, "paddingBottom" to 0, "paddingLeft" to 40, "height" to 44, "lineHeight" to "44px", "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0), ".disabled" to _uM("backgroundColor" to "#cccccc", "opacity" to 0.6))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange-records.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange-records.kt deleted file mode 100644 index 3499aa20..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange-records.kt +++ /dev/null @@ -1,213 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -open class GenPagesMallConsumerPointsExchangeRecords : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPointsExchangeRecords) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPointsExchangeRecords - val _cache = __ins.renderCache - val records = ref(_uA()) - val loading = ref(true) - val loadRecords = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val result = await(supabaseService.getExchangeRecords()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - val itemAny = item as Any - var recordData: Any - if (UTSArray.isArray(itemAny)) { - recordData = (itemAny as UTSArray)[0] - } else { - recordData = itemAny - } - var id = "" - var quantity: Number = 1 - var points_used: Number = 0 - var status: Number = 0 - var tracking_no: String? = null - var created_at = "" - var product_name = "" - var product_image: String? = null - var product_type = "coupon" - var recordObj: UTSJSONObject? = null - if (recordData is UTSJSONObject) { - recordObj = recordData as UTSJSONObject - } else { - recordObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(recordData)), " at pages/mall/consumer/points/exchange-records.uvue:93") as UTSJSONObject - } - id = recordObj.getString("id") ?: "" - quantity = recordObj.getNumber("quantity") ?: 1 - points_used = recordObj.getNumber("points_used") ?: 0 - status = recordObj.getNumber("status") ?: 0 - tracking_no = recordObj.getString("tracking_no") - created_at = recordObj.getString("created_at") ?: "" - val product = recordObj.get("product") - if (product != null) { - var productObj: UTSJSONObject? = null - if (product is UTSJSONObject) { - productObj = product as UTSJSONObject - } else { - productObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/mall/consumer/points/exchange-records.uvue:110") as UTSJSONObject - } - product_name = productObj.getString("name") ?: "" - product_image = productObj.getString("image_url") - product_type = productObj.getString("product_type") ?: "coupon" - } - parsed.push(ExchangeRecord(id = id, product_name = product_name, product_image = product_image, product_type = product_type, quantity = quantity, points_used = points_used, status = status, tracking_no = tracking_no, created_at = created_at)) - i++ - } - } - records.value = parsed - } - catch (e: Throwable) { - console.error("加载兑换记录失败:", e, " at pages/mall/consumer/points/exchange-records.uvue:132") - } - finally { - loading.value = false - } - }) - } - val getStatusText = fun(status: Number): String { - if (status === 0) { - return "待处理" - } - if (status === 1) { - return "已发货" - } - if (status === 2) { - return "已完成" - } - if (status === 3) { - return "已取消" - } - return "未知" - } - val getStatusClass = fun(status: Number): String { - if (status === 0) { - return "status-pending" - } - if (status === 1) { - return "status-shipped" - } - if (status === 2) { - return "status-completed" - } - if (status === 3) { - return "status-cancelled" - } - return "" - } - val formatTime = fun(timeStr: String): String { - if (timeStr == "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val hh = date.getHours().toString(10).padStart(2, "0") - val mm = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm - } - onMounted(fun(){ - loadRecords() - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "records-page", "direction" to "vertical"), _uA( - if (isTrue(!loading.value && records.value.length === 0)) { - _cE("view", _uM("key" to 0, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无兑换记录") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 1, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && records.value.length > 0)) { - _cE("view", _uM("key" to 2, "class" to "record-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(records.value, fun(record, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "record-item", "key" to record.id), _uA( - _cE("view", _uM("class" to "record-header"), _uA( - _cE("text", _uM("class" to "record-product-name"), _tD(record.product_name), 1), - _cE("text", _uM("class" to _nC(_uA( - "record-status", - getStatusClass(record.status) - ))), _tD(getStatusText(record.status)), 3) - )), - _cE("view", _uM("class" to "record-info"), _uA( - _cE("view", _uM("class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "消耗积分"), - _cE("text", _uM("class" to "info-value"), _tD(record.points_used), 1) - )), - _cE("view", _uM("class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "兑换数量"), - _cE("text", _uM("class" to "info-value"), _tD(record.quantity), 1) - )), - _cE("view", _uM("class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "兑换时间"), - _cE("text", _uM("class" to "info-value"), _tD(formatTime(record.created_at)), 1) - )), - if (isTrue(record.tracking_no)) { - _cE("view", _uM("key" to 0, "class" to "info-row"), _uA( - _cE("text", _uM("class" to "info-label"), "物流单号"), - _cE("text", _uM("class" to "info-value"), _tD(record.tracking_no), 1) - )) - } else { - _cC("v-if", true) - } - )) - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("records-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12)), "empty-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "record-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "record-item" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "marginBottom" to 8)), "record-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "paddingBottom" to 8, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "record-product-name" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "record-status" to _pS(_uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 8, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "status-pending" to _pS(_uM("backgroundColor" to "#fff7e6", "color" to "#d48806")), "status-shipped" to _pS(_uM("backgroundColor" to "#e6f7ff", "color" to "#1890ff")), "status-completed" to _pS(_uM("backgroundColor" to "#f6ffed", "color" to "#52c41a")), "status-cancelled" to _pS(_uM("backgroundColor" to "#f5f5f5", "color" to "#999999")), "record-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "info-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 6, "paddingRight" to 0, "paddingBottom" to 6, "paddingLeft" to 0)), "info-label" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "info-value" to _pS(_uM("fontSize" to 14, "color" to "#333333"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange.kt deleted file mode 100644 index 0a2b2e30..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/points/exchange.kt +++ /dev/null @@ -1,413 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerPointsExchange : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPointsExchange) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPointsExchange - val _cache = __ins.renderCache - val totalPoints = ref(0) - val products = ref(_uA()) - val loading = ref(true) - val activeTab = ref("all") - val showPopup = ref(false) - val showSuccess = ref(false) - val selectedProduct = ref(null) - val exchangeQuantity = ref(1) - val exchanging = ref(false) - val defaultImage: String = "/static/images/default-product.png" - val filteredProducts = computed(fun(): UTSArray { - if (activeTab.value === "all") { - return products.value - } - val filtered: UTSArray = _uA() - run { - var i: Number = 0 - while(i < products.value.length){ - if (products.value[i].product_type === activeTab.value) { - filtered.push(products.value[i]) - } - i++ - } - } - return filtered - } - ) - val totalPointsCost = computed(fun(): Number { - if (selectedProduct.value == null) { - return 0 - } - return selectedProduct.value!!.points_required * exchangeQuantity.value - } - ) - val loadProducts = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val points = await(supabaseService.getUserPoints()) - totalPoints.value = points - val productList = await(supabaseService.getPointProducts()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < productList.length){ - val item = productList[i] - var id = "" - var name = "" - var description: String? = null - var image_url: String? = null - var product_type = "coupon" - var points_required: Number = 0 - var original_price: Number? = null - var stock: Number = 0 - var status: Number = 1 - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/points/exchange.uvue:218") as UTSJSONObject - } - id = itemObj.getString("id") ?: "" - name = itemObj.getString("name") ?: "" - description = itemObj.getString("description") - image_url = itemObj.getString("image_url") - product_type = itemObj.getString("product_type") ?: "coupon" - points_required = itemObj.getNumber("points_required") ?: 0 - original_price = itemObj.getNumber("original_price") - stock = itemObj.getNumber("stock") ?: 0 - status = itemObj.getNumber("status") ?: 1 - val product = PointProduct(id = id, name = name, description = description, image_url = image_url, product_type = product_type, points_required = points_required, original_price = original_price, stock = stock, status = status) - parsed.push(product) - i++ - } - } - products.value = parsed - } - catch (e: Throwable) { - console.error("加载商品失败:", e, " at pages/mall/consumer/points/exchange.uvue:246") - } - finally { - loading.value = false - } - }) - } - val switchTab = fun(tab: String): Unit { - activeTab.value = tab - } - val showExchangePopup = fun(product: PointProduct): Unit { - selectedProduct.value = product - exchangeQuantity.value = 1 - showPopup.value = true - } - val closePopup = fun(): Unit { - showPopup.value = false - selectedProduct.value = null - } - val increaseQuantity = fun(): Unit { - if (selectedProduct.value != null && exchangeQuantity.value < selectedProduct.value!!.stock) { - exchangeQuantity.value++ - } - } - val decreaseQuantity = fun(): Unit { - if (exchangeQuantity.value > 1) { - exchangeQuantity.value-- - } - } - val confirmExchange = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (selectedProduct.value == null) { - return@w1 - } - if (totalPoints.value < totalPointsCost.value) { - return@w1 - } - exchanging.value = true - try { - val result = await(supabaseService.exchangeProduct(selectedProduct.value!!.id, exchangeQuantity.value, null)) - if (result.getBoolean("success") === true) { - showPopup.value = false - totalPoints.value -= totalPointsCost.value - showSuccess.value = true - loadProducts() - } else { - val message = result.getString("message") ?: "兑换失败" - uni_showToast(ShowToastOptions(title = message, icon = "none")) - } - } - catch (e: Throwable) { - console.error("兑换异常:", e, " at pages/mall/consumer/points/exchange.uvue:302") - uni_showToast(ShowToastOptions(title = "兑换异常", icon = "none")) - } - finally { - exchanging.value = false - } - }) - } - val closeSuccess = fun(): Unit { - showSuccess.value = false - } - val goToRecords = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/exchange-records")) - } - onMounted(fun(){ - loadProducts() - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "exchange-page", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("view", _uM("class" to "points-info"), _uA( - _cE("text", _uM("class" to "points-label"), "可用积分"), - _cE("text", _uM("class" to "points-value"), _tD(totalPoints.value), 1) - )), - _cE("view", _uM("class" to "header-actions"), _uA( - _cE("text", _uM("class" to "records-link", "onClick" to goToRecords), "兑换记录") - )) - )), - _cE("view", _uM("class" to "tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - if (activeTab.value === "all") { - "active" - } else { - "" - } - )), "onClick" to fun(){ - switchTab("all") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "全部") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - if (activeTab.value === "coupon") { - "active" - } else { - "" - } - )), "onClick" to fun(){ - switchTab("coupon") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "优惠券") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - if (activeTab.value === "physical") { - "active" - } else { - "" - } - )), "onClick" to fun(){ - switchTab("physical") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "实物") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab-item", - if (activeTab.value === "virtual") { - "active" - } else { - "" - } - )), "onClick" to fun(){ - switchTab("virtual") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "虚拟") - ), 10, _uA( - "onClick" - )) - )), - if (isTrue(!loading.value)) { - _cE("view", _uM("key" to 0, "class" to "product-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(filteredProducts.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "product-card", "key" to product.id, "onClick" to fun(){ - showExchangePopup(product) - }), _uA( - _cE("image", _uM("class" to "product-image", "src" to if (product.image_url != null && product.image_url!!.length > 0) { - product.image_url - } else { - defaultImage - }, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(product.name), 1), - if (isTrue(product.description)) { - _cE("text", _uM("key" to 0, "class" to "product-desc"), _tD(product.description), 1) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("view", _uM("class" to "product-points"), _uA( - _cE("text", _uM("class" to "points-num"), _tD(product.points_required), 1), - _cE("text", _uM("class" to "points-unit"), "积分") - )), - _cE("text", _uM("class" to "product-stock"), "库存" + _tD(product.stock) + "件", 1), - if (isTrue(product.original_price)) { - _cE("text", _uM("key" to 0, "class" to "product-original"), "¥" + _tD(product.original_price), 1) - } else { - _cC("v-if", true) - } - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && filteredProducts.value.length === 0)) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无可兑换商品") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 2, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showPopup.value)) { - _cE("view", _uM("key" to 3, "class" to "exchange-popup", "onClick" to closePopup), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "确认兑换"), - _cE("text", _uM("class" to "popup-close", "onClick" to closePopup), "×") - )), - if (selectedProduct.value != null) { - _cE("view", _uM("key" to 0, "class" to "popup-product"), _uA( - _cE("image", _uM("class" to "popup-product-image", "src" to if (selectedProduct.value!!.image_url != null && selectedProduct.value!!.image_url!!.length > 0) { - selectedProduct.value!!.image_url - } else { - defaultImage - }, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "popup-product-info"), _uA( - _cE("text", _uM("class" to "popup-product-name"), _tD(selectedProduct.value!!.name), 1), - _cE("view", _uM("class" to "popup-product-points"), _uA( - _cE("text", _uM("class" to "popup-points-num"), _tD(selectedProduct.value!!.points_required), 1), - _cE("text", _uM("class" to "popup-points-unit"), "积分") - )) - )) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "popup-quantity"), _uA( - _cE("text", _uM("class" to "quantity-label"), "兑换数量"), - _cE("view", _uM("class" to "quantity-control"), _uA( - _cE("text", _uM("class" to "quantity-btn", "onClick" to decreaseQuantity), "-"), - _cE("text", _uM("class" to "quantity-value"), _tD(exchangeQuantity.value), 1), - _cE("text", _uM("class" to "quantity-btn", "onClick" to increaseQuantity), "+") - )) - )), - _cE("view", _uM("class" to "popup-summary"), _uA( - _cE("view", _uM("class" to "summary-row"), _uA( - _cE("text", _uM("class" to "summary-label"), "消耗积分"), - _cE("text", _uM("class" to "summary-value"), _tD(totalPointsCost.value), 1) - )), - _cE("view", _uM("class" to "summary-row"), _uA( - _cE("text", _uM("class" to "summary-label"), "当前积分"), - _cE("text", _uM("class" to "summary-value"), _tD(totalPoints.value), 1) - )), - if (totalPoints.value < totalPointsCost.value) { - _cE("view", _uM("key" to 0, "class" to "summary-row"), _uA( - _cE("text", _uM("class" to "summary-label insufficient"), "积分不足"), - _cE("text", _uM("class" to "summary-value insufficient"), "差" + _tD(totalPointsCost.value - totalPoints.value), 1) - )) - } else { - _cC("v-if", true) - } - )), - _cE("button", _uM("class" to _nC(_uA( - "popup-btn", - _uM("disabled" to (totalPoints.value < totalPointsCost.value)) - )), "disabled" to (totalPoints.value < totalPointsCost.value || exchanging.value), "onClick" to confirmExchange), _tD(if (exchanging.value) { - "兑换中..." - } else { - "确认兑换" - }), 11, _uA( - "disabled" - )) - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showSuccess.value)) { - _cE("view", _uM("key" to 4, "class" to "success-popup", "onClick" to closeSuccess), _uA( - _cE("view", _uM("class" to "success-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "success-icon"), "✓"), - _cE("text", _uM("class" to "success-title"), "兑换成功"), - _cE("text", _uM("class" to "success-desc"), "消耗 " + _tD(totalPointsCost.value) + " 积分", 1), - _cE("button", _uM("class" to "success-btn", "onClick" to closeSuccess), "确定") - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("exchange-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "header" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "points-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "points-label" to _pS(_uM("fontSize" to 12, "color" to "rgba(255,255,255,0.8)")), "points-value" to _pS(_uM("fontSize" to 28, "fontWeight" to "bold", "color" to "#FFFFFF")), "header-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "records-link" to _pS(_uM("fontSize" to 14, "color" to "#FFFFFF", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16)), "tab-item" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)"), ".active" to _uM("borderBottomColor" to "#ff6b35")), "tab-text" to _uM("" to _uM("fontSize" to 14, "color" to "#666666"), ".tab-item.active " to _uM("color" to "#ff6b35", "fontWeight" to "bold")), "product-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-card" to _pS(_uM("width" to "48%", "marginTop" to 4, "marginRight" to 4, "marginBottom" to 4, "marginLeft" to 4, "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden")), "product-image" to _pS(_uM("width" to "100%", "height" to 150)), "product-info" to _pS(_uM("paddingTop" to 8, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lines" to 2, "textOverflow" to "ellipsis")), "product-desc" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4, "lines" to 1, "textOverflow" to "ellipsis")), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to 8)), "product-points" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "points-num" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#ff6b35")), "points-unit" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35", "marginLeft" to 2)), "product-stock" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35")), "product-original" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "exchange-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "flex-end", "justifyContent" to "center", "zIndex" to 1000)), "popup-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "width" to "100%", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "popup-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "popup-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "popup-close" to _pS(_uM("fontSize" to 24, "color" to "#999999")), "popup-product" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 16)), "popup-product-image" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "popup-product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 12, "display" to "flex", "flexDirection" to "column", "justifyContent" to "center")), "popup-product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lines" to 2)), "popup-product-points" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginTop" to 8)), "popup-points-num" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#ff6b35")), "popup-points-unit" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35", "marginLeft" to 2)), "popup-quantity" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "quantity-label" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "quantity-control" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "quantity-btn" to _pS(_uM("width" to 28, "height" to 28, "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 18, "color" to "#666666")), "quantity-value" to _pS(_uM("width" to 40, "textAlign" to "center", "fontSize" to 16, "color" to "#333333")), "popup-summary" to _pS(_uM("paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0)), "summary-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 8)), "summary-label" to _uM("" to _uM("fontSize" to 14, "color" to "#666666"), ".insufficient" to _uM("color" to "#ff6b35")), "summary-value" to _uM("" to _uM("fontSize" to 14, "color" to "#333333"), ".insufficient" to _uM("color" to "#ff6b35")), "popup-btn" to _uM("" to _uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#FFFFFF", "fontSize" to 16, "fontWeight" to "bold", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "height" to 44, "lineHeight" to "44px", "marginTop" to 16), ".disabled" to _uM("backgroundImage" to "none", "backgroundColor" to "#cccccc")), "success-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "zIndex" to 1001)), "success-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 32, "paddingRight" to 32, "paddingBottom" to 32, "paddingLeft" to 32, "width" to 280, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "success-icon" to _pS(_uM("width" to 60, "height" to 60, "backgroundColor" to "#52c41a", "borderTopLeftRadius" to 30, "borderTopRightRadius" to 30, "borderBottomRightRadius" to 30, "borderBottomLeftRadius" to 30, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 30, "color" to "#FFFFFF", "marginBottom" to 16)), "success-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 8)), "success-desc" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 24)), "success-btn" to _pS(_uM("backgroundColor" to "#ff6b35", "color" to "#FFFFFF", "fontSize" to 16, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "width" to "100%", "height" to 40, "lineHeight" to "40px"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/points/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/points/index.kt deleted file mode 100644 index 20d9652d..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/points/index.kt +++ /dev/null @@ -1,325 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -open class GenPagesMallConsumerPointsIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPointsIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPointsIndex - val _cache = __ins.renderCache - val totalPoints = ref(0) - val records = ref(_uA()) - val loading = ref(true) - val signedToday = ref(false) - val continuousDays = ref(0) - val expiringPoints = ref(0) - val expiringDate = ref("") - val expiringDetails = ref(_uA()) - val showExpiringPopup = ref(false) - val loadPoints = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val points = await(supabaseService.getUserPoints()) - totalPoints.value = points - } - catch (e: Throwable) { - console.error("获取积分失败", e, " at pages/mall/consumer/points/index.uvue:146") - } - }) - } - val loadRecords = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val list = await(supabaseService.getPointRecords()) - records.value = list as UTSArray - } - catch (e: Throwable) { - console.error("获取积分记录失败", e, " at pages/mall/consumer/points/index.uvue:155") - } - }) - } - val loadSigninStatus = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val status = await(supabaseService.getTodaySigninStatus()) - signedToday.value = status.getBoolean("signed") ?: false - continuousDays.value = status.getNumber("continuous_days") ?: 0 - } - catch (e: Throwable) { - console.error("获取签到状态失败", e, " at pages/mall/consumer/points/index.uvue:165") - } - }) - } - val loadExpiringPoints = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.getExpiringPoints()) - expiringPoints.value = result.getNumber("expiring_points") ?: 0 - expiringDate.value = result.getString("expiring_date") ?: "" - val detailsRaw = result.get("details") - if (detailsRaw != null && UTSArray.isArray(detailsRaw)) { - val details: UTSArray = _uA() - val arr = detailsRaw as UTSArray - run { - var i: Number = 0 - while(i < arr.length){ - val item = arr[i] - var itemObj: UTSJSONObject - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/points/index.uvue:185") as UTSJSONObject - } - details.push(ExpiringDetail(points = itemObj.getNumber("points") ?: 0, description = itemObj.getString("description"), expires_at = itemObj.getString("expires_at") ?: "", created_at = itemObj.getString("created_at") ?: "")) - i++ - } - } - expiringDetails.value = details - } - } - catch (e: Throwable) { - console.error("获取即将过期积分失败", e, " at pages/mall/consumer/points/index.uvue:197") - } - }) - } - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - await(UTSPromise.all(_uA( - loadPoints(), - loadRecords(), - loadSigninStatus(), - loadExpiringPoints() - ))) - loading.value = false - }) - } - onMounted(fun(){ - loadData() - } - ) - val handleExchange = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/exchange")) - } - val goToSignin = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/signin")) - } - val goToMyReviews = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/my-reviews")) - } - val showExpiringDetails = fun(): Unit { - showExpiringPopup.value = true - } - val closeExpiringPopup = fun(): Unit { - showExpiringPopup.value = false - } - val getTypeText = fun(type: String): String { - if (type == "signin") { - return "每日签到" - } else if (type == "shopping") { - return "购物奖励" - } else if (type == "redeem") { - return "积分兑换" - } else if (type == "admin") { - return "系统调整" - } else if (type == "register") { - return "注册赠送" - } else if (type == "expire") { - return "积分过期" - } else { - return "积分变动" - } - } - val formatTime = fun(timeStr: String): String { - if (timeStr == "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val hh = date.getHours().toString(10).padStart(2, "0") - val mm = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm - } - val formatDate = fun(dateStr: String): String { - if (dateStr == "") { - return "" - } - val date = Date(dateStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d - } - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "points-page", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "points-header"), _uA( - _cE("view", _uM("class" to "points-info"), _uA( - _cE("text", _uM("class" to "points-label"), "当前积分"), - _cE("text", _uM("class" to "points-value"), _tD(totalPoints.value), 1) - )), - _cE("view", _uM("class" to "points-actions"), _uA( - _cE("button", _uM("class" to "exchange-btn", "onClick" to handleExchange), "积分兑换") - )) - )), - _cE("view", _uM("class" to "quick-actions"), _uA( - _cE("view", _uM("class" to "action-item", "onClick" to goToSignin), _uA( - _cE("view", _uM("class" to "action-icon signin-icon"), "📅"), - _cE("text", _uM("class" to "action-text"), "每日签到"), - if (isTrue(!signedToday.value)) { - _cE("view", _uM("key" to 0, "class" to "action-badge"), _uA( - _cE("text", _uM("class" to "badge-text"), "+5") - )) - } else { - _cE("view", _uM("key" to 1, "class" to "signed-badge"), _uA( - _cE("text", _uM("class" to "signed-text"), "已签") - )) - } - )), - _cE("view", _uM("class" to "action-item", "onClick" to handleExchange), _uA( - _cE("view", _uM("class" to "action-icon exchange-icon"), "🎁"), - _cE("text", _uM("class" to "action-text"), "积分兑换") - )), - _cE("view", _uM("class" to "action-item", "onClick" to goToMyReviews), _uA( - _cE("view", _uM("class" to "action-icon review-icon"), "⭐"), - _cE("text", _uM("class" to "action-text"), "我的评价") - )) - )), - if (isTrue(!signedToday.value)) { - _cE("view", _uM("key" to 0, "class" to "signin-card"), _uA( - _cE("view", _uM("class" to "signin-info"), _uA( - _cE("text", _uM("class" to "signin-title"), "今日未签到"), - _cE("text", _uM("class" to "signin-desc"), "连续签到可获得额外奖励") - )), - _cE("button", _uM("class" to "signin-btn", "onClick" to goToSignin), "去签到") - )) - } else { - _cE("view", _uM("key" to 1, "class" to "signin-card signed"), _uA( - _cE("view", _uM("class" to "signin-info"), _uA( - _cE("text", _uM("class" to "signin-title"), "今日已签到"), - _cE("text", _uM("class" to "signin-desc"), "已连续签到 " + _tD(continuousDays.value) + " 天", 1) - )), - _cE("text", _uM("class" to "signed-icon"), "✓") - )) - } - , - if (expiringPoints.value > 0) { - _cE("view", _uM("key" to 2, "class" to "expiring-card", "onClick" to showExpiringDetails), _uA( - _cE("view", _uM("class" to "expiring-icon"), "⚠️"), - _cE("view", _uM("class" to "expiring-info"), _uA( - _cE("text", _uM("class" to "expiring-title"), _tD(expiringPoints.value) + " 积分即将过期", 1), - _cE("text", _uM("class" to "expiring-date"), "过期日期:" + _tD(expiringDate.value), 1) - )), - _cE("text", _uM("class" to "expiring-arrow"), "›") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "records-section"), _uA( - _cE("text", _uM("class" to "section-title"), "积分明细"), - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", null, "加载中...") - )) - } else { - if (records.value.length === 0) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无积分记录") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "record-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(records.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "record-item"), _uA( - _cE("view", _uM("class" to "record-left"), _uA( - _cE("text", _uM("class" to "record-title"), _tD(item.description ?: getTypeText(item.type)), 1), - _cE("text", _uM("class" to "record-time"), _tD(formatTime(item.created_at)), 1) - )), - _cE("view", _uM("class" to "record-right"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "record-amount", - _uM("positive" to (item.points > 0), "negative" to (item.points < 0)) - ))), _tD(if (item.points > 0) { - "+" - } else { - "" - } - ) + _tD(item.points), 3) - )) - )) - } - ), 128) - )) - } - } - )), - if (isTrue(showExpiringPopup.value)) { - _cE("view", _uM("key" to 3, "class" to "expiring-popup", "onClick" to closeExpiringPopup), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "即将过期积分"), - _cE("text", _uM("class" to "popup-close", "onClick" to closeExpiringPopup), "×") - )), - _cE("view", _uM("class" to "popup-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(expiringDetails.value, fun(detail, index, __index, _cached): Any { - return _cE("view", _uM("class" to "popup-item", "key" to index), _uA( - _cE("view", _uM("class" to "popup-item-info"), _uA( - _cE("text", _uM("class" to "popup-item-points"), "+" + _tD(detail.points) + " 积分", 1), - _cE("text", _uM("class" to "popup-item-desc"), _tD(detail.description ?: "积分获取"), 1) - )), - _cE("view", _uM("class" to "popup-item-expire"), _uA( - _cE("text", _uM("class" to "popup-item-date"), _tD(formatDate(detail.expires_at)), 1), - _cE("text", _uM("class" to "popup-item-label"), "过期") - )) - )) - }), 128) - )), - _cE("view", _uM("class" to "popup-tip"), _uA( - _cE("text", _uM("class" to "tip-text"), "积分有效期为获取后365天,请及时使用避免过期") - )) - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("points-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "points-header" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 30, "paddingRight" to 20, "paddingBottom" to 30, "paddingLeft" to 20, "color" to "#FFFFFF", "display" to "flex", "justifyContent" to "space-between", "alignItems" to "center")), "points-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "points-label" to _pS(_uM("fontSize" to 14, "opacity" to 0.9, "marginBottom" to 8)), "points-value" to _pS(_uM("fontSize" to 36, "fontWeight" to "bold")), "exchange-btn" to _pS(_uM("backgroundColor" to "rgba(255,255,255,0.2)", "color" to "#FFFFFF", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.4)", "borderRightColor" to "rgba(255,255,255,0.4)", "borderBottomColor" to "rgba(255,255,255,0.4)", "borderLeftColor" to "rgba(255,255,255,0.4)", "fontSize" to 14, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "height" to 32, "lineHeight" to "32px")), "quick-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "marginBottom" to 8)), "action-item" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "position" to "relative")), "action-icon" to _pS(_uM("width" to 44, "height" to 44, "borderTopLeftRadius" to 22, "borderTopRightRadius" to 22, "borderBottomRightRadius" to 22, "borderBottomLeftRadius" to 22, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 20, "marginBottom" to 6)), "signin-icon" to _pS(_uM("backgroundColor" to "#fff5f0")), "exchange-icon" to _pS(_uM("backgroundColor" to "#f0f5ff")), "review-icon" to _pS(_uM("backgroundColor" to "#fff5f0")), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "action-badge" to _pS(_uM("position" to "absolute", "top" to 0, "right" to 20, "backgroundColor" to "#ff6b35", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6)), "badge-text" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF")), "signed-badge" to _pS(_uM("position" to "absolute", "top" to 0, "right" to 20, "backgroundColor" to "#52c41a", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 2, "paddingRight" to 6, "paddingBottom" to 2, "paddingLeft" to 6)), "signed-text" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF")), "signin-card" to _uM("" to _uM("backgroundColor" to "#FFFFFF", "marginTop" to 0, "marginRight" to 12, "marginBottom" to 8, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center"), ".signed" to _uM("backgroundImage" to "linear-gradient(135deg, #f6ffed 0%, #e6fffb 100%)", "backgroundColor" to "rgba(0,0,0,0)")), "signin-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "signin-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "signin-desc" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4)), "signin-btn" to _pS(_uM("backgroundColor" to "#ff6b35", "color" to "#FFFFFF", "fontSize" to 14, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 0, "paddingRight" to 20, "paddingBottom" to 0, "paddingLeft" to 20, "height" to 32, "lineHeight" to "32px")), "signed-icon" to _pS(_uM("width" to 32, "height" to 32, "backgroundColor" to "#52c41a", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "fontSize" to 16, "color" to "#FFFFFF")), "expiring-card" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #fff7e6 0%, #ffe7ba 100%)", "backgroundColor" to "rgba(0,0,0,0)", "marginTop" to 0, "marginRight" to 12, "marginBottom" to 8, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 14, "paddingRight" to 16, "paddingBottom" to 14, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "expiring-icon" to _pS(_uM("fontSize" to 24, "marginRight" to 12)), "expiring-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "expiring-title" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#d48806")), "expiring-date" to _pS(_uM("fontSize" to 12, "color" to "#ad8b00", "marginTop" to 2)), "expiring-arrow" to _pS(_uM("fontSize" to 20, "color" to "#d48806")), "records-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "minHeight" to 300)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0", "display" to "flex")), "record-item" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 0, "paddingBottom" to 16, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "record-left" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "record-title" to _pS(_uM("marginBottom" to 4, "fontSize" to 15, "color" to "#333333")), "record-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "record-amount" to _uM("" to _uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333"), ".positive" to _uM("color" to "#ff6b35"), ".negative" to _uM("color" to "#333333")), "empty-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "justifyContent" to "center")), "empty-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "justifyContent" to "center")), "expiring-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "flex-end", "justifyContent" to "center", "zIndex" to 1000)), "popup-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "width" to "100%", "maxHeight" to 400, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "popup-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "popup-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "popup-close" to _pS(_uM("fontSize" to 24, "color" to "#999999")), "popup-list" to _pS(_uM("maxHeight" to 300)), "popup-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "popup-item-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "popup-item-points" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#ff6b35")), "popup-item-desc" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 2)), "popup-item-expire" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "flex-end")), "popup-item-date" to _pS(_uM("fontSize" to 12, "color" to "#d48806")), "popup-item-label" to _pS(_uM("fontSize" to 10, "color" to "#999999")), "popup-tip" to _pS(_uM("marginTop" to 16, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "backgroundColor" to "#f9f9f9", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "tip-text" to _pS(_uM("fontSize" to 12, "color" to "#666666"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/points/signin.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/points/signin.kt deleted file mode 100644 index 15736682..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/points/signin.kt +++ /dev/null @@ -1,307 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerPointsSignin : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerPointsSignin) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerPointsSignin - val _cache = __ins.renderCache - val totalPoints = ref(0) - val continuousDays = ref(0) - val signedToday = ref(false) - val currentYear = ref(Date().getFullYear()) - val currentMonth = ref(Date().getMonth() + 1) - val signinRecords = ref(_uA()) - val showPopup = ref(false) - val popupPoints = ref(0) - val popupBonus = ref(0) - val popupContinuousDays = ref(0) - val weekdays = _uA( - "日", - "一", - "二", - "三", - "四", - "五", - "六" - ) as UTSArray - val calendarDays = computed(fun(): UTSArray { - val days: UTSArray = _uA() - val year = currentYear.value - val month = currentMonth.value - val firstDay = Date(year, month - 1, 1).getDay() - val daysInMonth = Date(year, month, 0).getDate() - val today = Date() - val todayStr = today.toISOString().split("T")[0] - run { - var i: Number = 0 - while(i < firstDay){ - days.push(CalendarDay(day = 0, signed = false, isToday = false)) - i++ - } - } - run { - var i: Number = 1 - while(i <= daysInMonth){ - val dateStr = "" + year + "-" + month.toString(10).padStart(2, "0") + "-" + i.toString(10).padStart(2, "0") - val isToday = dateStr === todayStr - val signed = signinRecords.value.includes(dateStr) - days.push(CalendarDay(day = i, signed = signed, isToday = isToday)) - i++ - } - } - return days - } - ) - val loadSigninData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "加载中...")) - try { - val points = await(supabaseService.getUserPoints()) - totalPoints.value = points - val status = await(supabaseService.getTodaySigninStatus()) - signedToday.value = status.getBoolean("signed") ?: false - continuousDays.value = status.getNumber("continuous_days") ?: 0 - val records = await(supabaseService.getSigninRecords(currentYear.value, currentMonth.value)) - val dates: UTSArray = _uA() - run { - var i: Number = 0 - while(i < records.length){ - val record = records[i] - var dateStr = "" - if (record is UTSJSONObject) { - dateStr = (record as UTSJSONObject).getString("signin_date") ?: "" - } else { - val rObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(record)), " at pages/mall/consumer/points/signin.uvue:171") as UTSJSONObject - dateStr = rObj.getString("signin_date") ?: "" - } - if (dateStr !== "") { - dates.push(dateStr) - } - i++ - } - } - signinRecords.value = dates - } - catch (e: Throwable) { - console.error("加载签到数据失败:", e, " at pages/mall/consumer/points/signin.uvue:180") - } - finally { - uni_hideLoading() - } - }) - } - val doSignin = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (signedToday.value) { - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "签到中...")) - try { - val result = await(supabaseService.signin()) - if (result.getBoolean("success") === true) { - popupPoints.value = result.getNumber("points") ?: 0 - popupBonus.value = result.getNumber("bonus_points") ?: 0 - popupContinuousDays.value = result.getNumber("continuous_days") ?: 0 - totalPoints.value = result.getNumber("total_points") ?: 0 - continuousDays.value = popupContinuousDays.value - signedToday.value = true - val today = Date().toISOString().split("T")[0] - signinRecords.value.push(today) - showPopup.value = true - } else { - val message = result.getString("message") ?: "签到失败" - uni_showToast(ShowToastOptions(title = message, icon = "none")) - } - } - catch (e: Throwable) { - console.error("签到异常:", e, " at pages/mall/consumer/points/signin.uvue:211") - uni_showToast(ShowToastOptions(title = "签到异常", icon = "none")) - } - finally { - uni_hideLoading() - } - }) - } - val closePopup = fun(): Unit { - showPopup.value = false - } - val prevMonth = fun(): Unit { - if (currentMonth.value === 1) { - currentYear.value-- - currentMonth.value = 12 - } else { - currentMonth.value-- - } - loadSigninData() - } - val nextMonth = fun(): Unit { - if (currentMonth.value === 12) { - currentYear.value++ - currentMonth.value = 1 - } else { - currentMonth.value++ - } - loadSigninData() - } - onMounted(fun(){ - loadSigninData() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "signin-page"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("view", _uM("class" to "header-content"), _uA( - _cE("text", _uM("class" to "title"), "每日签到"), - _cE("text", _uM("class" to "subtitle"), "连续签到可获得额外奖励") - )), - _cE("view", _uM("class" to "points-display"), _uA( - _cE("text", _uM("class" to "points-label"), "当前积分"), - _cE("text", _uM("class" to "points-value"), _tD(totalPoints.value), 1) - )) - )), - _cE("view", _uM("class" to "calendar-section"), _uA( - _cE("view", _uM("class" to "calendar-header"), _uA( - _cE("view", _uM("class" to "month-nav"), _uA( - _cE("text", _uM("class" to "nav-btn", "onClick" to prevMonth), "<"), - _cE("text", _uM("class" to "current-month"), _tD(currentYear.value) + "年" + _tD(currentMonth.value) + "月", 1), - _cE("text", _uM("class" to "nav-btn", "onClick" to nextMonth), ">") - )), - _cE("view", _uM("class" to "continuous-info"), _uA( - _cE("text", _uM("class" to "continuous-label"), "已连续签到"), - _cE("text", _uM("class" to "continuous-value"), _tD(continuousDays.value) + "天", 1) - )) - )), - _cE("view", _uM("class" to "calendar-weekdays"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(weekdays, fun(day, __key, __index, _cached): Any { - return _cE("text", _uM("class" to "weekday", "key" to day), _tD(day), 1) - } - ), 64) - )), - _cE("view", _uM("class" to "calendar-days"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(calendarDays.value, fun(day, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to _nC(_uA( - "day-cell", - _uM("empty" to (day.day === 0), "signed" to day.signed, "today" to day.isToday) - ))), _uA( - if (day.day > 0) { - _cE("text", _uM("key" to 0, "class" to "day-number"), _tD(day.day), 1) - } else { - _cC("v-if", true) - } - , - if (isTrue(day.signed)) { - _cE("view", _uM("key" to 1, "class" to "signed-mark"), _uA( - _cE("text", _uM("class" to "check-icon"), "✓") - )) - } else { - _cC("v-if", true) - } - ), 2) - } - ), 128) - )) - )), - _cE("view", _uM("class" to "signin-btn-section"), _uA( - _cE("button", _uM("class" to _nC(_uA( - "signin-btn", - _uM("signed-today" to signedToday.value) - )), "disabled" to signedToday.value, "onClick" to doSignin), _tD(if (signedToday.value) { - "今日已签到" - } else { - "立即签到" - } - ), 11, _uA( - "disabled" - )) - )), - _cE("view", _uM("class" to "rules-section"), _uA( - _cE("text", _uM("class" to "section-title"), "签到规则"), - _cE("view", _uM("class" to "rule-list"), _uA( - _cE("view", _uM("class" to "rule-item"), _uA( - _cE("text", _uM("class" to "rule-icon"), "📅"), - _cE("text", _uM("class" to "rule-text"), "每日签到可获得5积分") - )), - _cE("view", _uM("class" to "rule-item"), _uA( - _cE("text", _uM("class" to "rule-icon"), "🔥"), - _cE("text", _uM("class" to "rule-text"), "连续签到7天额外奖励20积分") - )), - _cE("view", _uM("class" to "rule-item"), _uA( - _cE("text", _uM("class" to "rule-icon"), "🏆"), - _cE("text", _uM("class" to "rule-text"), "连续签到30天额外奖励100积分") - )), - _cE("view", _uM("class" to "rule-item"), _uA( - _cE("text", _uM("class" to "rule-icon"), "⚠️"), - _cE("text", _uM("class" to "rule-text"), "中断签到后连续天数将重置") - )) - )) - )), - if (isTrue(showPopup.value)) { - _cE("view", _uM("key" to 0, "class" to "signin-popup", "onClick" to closePopup), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-icon"), "🎉"), - _cE("text", _uM("class" to "popup-title"), "签到成功"), - _cE("view", _uM("class" to "popup-points"), _uA( - _cE("text", _uM("class" to "popup-points-label"), "获得积分"), - _cE("text", _uM("class" to "popup-points-value"), "+" + _tD(popupPoints.value), 1) - )), - if (popupBonus.value > 0) { - _cE("view", _uM("key" to 0, "class" to "popup-bonus"), _uA( - _cE("text", _uM("class" to "popup-bonus-label"), "连续签到奖励"), - _cE("text", _uM("class" to "popup-bonus-value"), "+" + _tD(popupBonus.value), 1) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "popup-continuous"), _uA( - _cE("text", null, "已连续签到 " + _tD(popupContinuousDays.value) + " 天", 1) - )), - _cE("button", _uM("class" to "popup-btn", "onClick" to closePopup), "确定") - ), 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("signin-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "header" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 20, "paddingRight" to 16, "paddingBottom" to 20, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "header-content" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "title" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#FFFFFF")), "subtitle" to _pS(_uM("fontSize" to 12, "color" to "rgba(255,255,255,0.8)", "marginTop" to 4)), "points-display" to _pS(_uM("backgroundColor" to "rgba(255,255,255,0.2)", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 10, "paddingRight" to 16, "paddingBottom" to 10, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "points-label" to _pS(_uM("fontSize" to 12, "color" to "rgba(255,255,255,0.8)")), "points-value" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#FFFFFF")), "calendar-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "calendar-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "month-nav" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "nav-btn" to _pS(_uM("fontSize" to 18, "color" to "#666666", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12)), "current-month" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginTop" to 0, "marginRight" to 8, "marginBottom" to 0, "marginLeft" to 8)), "continuous-info" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundColor" to "#fff5f0", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16)), "continuous-label" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35")), "continuous-value" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#ff6b35", "marginLeft" to 4)), "calendar-weekdays" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginBottom" to 8)), "weekday" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center", "fontSize" to 12, "color" to "#999999", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0)), "calendar-days" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap")), "day-cell" to _uM("" to _uM("width" to "14.28%", "height" to 45, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "position" to "relative"), ".empty" to _uM("backgroundColor" to "rgba(0,0,0,0)"), ".signed" to _uM("backgroundColor" to "#fff5f0", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "day-number" to _uM("" to _uM("fontSize" to 14, "color" to "#333333"), ".day-cell.today " to _uM("color" to "#ff6b35", "fontWeight" to "bold")), "signed-mark" to _pS(_uM("position" to "absolute", "bottom" to 2, "width" to 16, "height" to 16, "backgroundColor" to "#ff6b35", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "check-icon" to _pS(_uM("fontSize" to 10, "color" to "#FFFFFF")), "signin-btn-section" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "signin-btn" to _uM("" to _uM("backgroundImage" to "linear-gradient(135deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#FFFFFF", "fontSize" to 18, "fontWeight" to "bold", "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "height" to 48, "lineHeight" to "48px"), ".signed-today" to _uM("backgroundImage" to "none", "backgroundColor" to "#cccccc")), "rules-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginTop" to 12, "marginRight" to 12, "marginBottom" to 12, "marginLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 12)), "rule-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "rule-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0)), "rule-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 8)), "rule-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "signin-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "zIndex" to 1000)), "popup-content" to _pS(_uM("backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 24, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "width" to 280, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "popup-icon" to _pS(_uM("fontSize" to 48, "marginBottom" to 12)), "popup-title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 16)), "popup-points" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 8)), "popup-points-label" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "popup-points-value" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#ff6b35", "marginLeft" to 8)), "popup-bonus" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 8)), "popup-bonus-label" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "popup-bonus-value" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#ff6b35", "marginLeft" to 8)), "popup-continuous" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 16)), "popup-btn" to _pS(_uM("backgroundColor" to "#ff6b35", "color" to "#FFFFFF", "fontSize" to 16, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "width" to "100%", "height" to 40, "lineHeight" to "40px"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt deleted file mode 100644 index a2e436fa..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/product-detail.kt +++ /dev/null @@ -1,1312 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.downloadFile as uni_downloadFile -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.previewImage as uni_previewImage -import io.dcloud.uniapp.extapi.saveImageToPhotosAlbum as uni_saveImageToPhotosAlbum -import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData -import io.dcloud.uniapp.extapi.setNavigationBarTitle as uni_setNavigationBarTitle -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerProductDetail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) { - onLoad(fun(options: Any) { - val opts = options as UTSJSONObject - val productId = (opts["productId"] ?: opts["id"]) as String? - val priceStr = opts["price"] as String? - val productPrice = if (priceStr != null) { - parseFloat(priceStr) - } else { - null - } - val originalPriceStr = opts["originalPrice"] as String? - val productOriginalPrice = if (originalPriceStr != null) { - parseFloat(originalPriceStr) - } else { - null - } - var productName = opts["name"] as String? - if (productName != null) { - try { - val decodedName = UTSAndroid.consoleDebugError(decodeURIComponent(productName), " at pages/mall/consumer/product-detail.uvue:409") - productName = decodedName - } - catch (e: Throwable) { - console.warn("ProductName decode failed, using original:", productName, " at pages/mall/consumer/product-detail.uvue:412") - } - } - var productImage = opts["image"] as String? - if (productImage != null) { - try { - val decodedImage = UTSAndroid.consoleDebugError(decodeURIComponent(productImage), " at pages/mall/consumer/product-detail.uvue:419") - productImage = decodedImage - } - catch (e: Throwable) { - console.warn("ProductImage decode failed, using original:", productImage, " at pages/mall/consumer/product-detail.uvue:422") - } - } - if (productId != null) { - this.loadProductDetail(productId, object : UTSJSONObject() { - var price = productPrice - var originalPrice = productOriginalPrice - var name = productName - var image = productImage - }) - this.checkFavoriteStatus(productId) - this.saveFootprint(productId) - if (productName != null) { - uni_setNavigationBarTitle(SetNavigationBarTitleOptions(title = productName)) - } - } - } - , __ins) - } - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - override fun `$render`(): Any? { - val _ctx = this - val _cache = this.`$`.renderCache - return _cE("view", _uM("class" to "product-detail-page"), _uA( - _cE("scroll-view", _uM("class" to "page-scroll", "scroll-y" to "true"), _uA( - _cE("view", _uM("class" to "product-images"), _uA( - _cE("swiper", _uM("class" to "image-swiper", "indicator-dots" to true, "autoplay" to false, "onChange" to _ctx.onSwiperChange), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.product.images, fun(image, index, __index, _cached): Any { - return _cE("swiper-item", _uM("key" to index), _uA( - _cE("image", _uM("src" to image, "class" to "product-image", "mode" to "aspectFit"), null, 8, _uA( - "src" - )) - )) - } - ), 128) - ), 40, _uA( - "onChange" - )), - _cE("view", _uM("class" to "image-indicator"), _tD(_ctx.currentImageIndex + 1) + " / " + _tD(_ctx.product.images.length), 1) - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("view", _uM("class" to "price-section"), _uA( - if (isTrue(_ctx.memberDiscount > 0 && _ctx.memberPrice > 0 && _ctx.memberPrice < _ctx.product.price)) { - _cE("view", _uM("key" to 0, "class" to "price-header"), _uA( - _cE("view", _uM("class" to "member-badge"), _uA( - _cE("text", _uM("class" to "member-badge-text"), "VIP") - )), - _cE("text", _uM("class" to "member-discount-label"), _tD(_ctx.memberDiscount) + "折", 1) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "price-row"), _uA( - _cE("text", _uM("class" to "price-symbol"), "¥"), - _cE("text", _uM("class" to "price-value"), _tD(if (_ctx.memberPrice > 0 && _ctx.memberPrice < _ctx.product.price) { - _ctx.memberPrice - } else { - _ctx.product.price - } - ), 1), - if (isTrue(_ctx.memberPrice > 0 && _ctx.memberPrice < _ctx.product.price)) { - _cE("text", _uM("key" to 0, "class" to "price-original"), "¥" + _tD(_ctx.product.price), 1) - } else { - if (isTrue(_ctx.product.original_price != null && _ctx.product.original_price!! > _ctx.product.price)) { - _cE("text", _uM("key" to 1, "class" to "price-original"), "¥" + _tD(_ctx.product.original_price), 1) - } else { - _cC("v-if", true) - } - } - )), - if (isTrue(_ctx.memberPrice > 0 && _ctx.memberPrice < _ctx.product.price)) { - _cE("view", _uM("key" to 1, "class" to "save-row"), _uA( - _cE("text", _uM("class" to "save-text"), "已省 ¥" + _tD((_ctx.product.price - _ctx.memberPrice).toFixed(2)), 1) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "product-name-row"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(_ctx.product.name), 1), - _cE("view", _uM("class" to "share-btn", "onClick" to _ctx.showSharePopup), _uA( - _cE("text", _uM("class" to "share-icon"), "📤"), - _cE("text", _uM("class" to "share-text"), "分享") - ), 8, _uA( - "onClick" - )) - )), - _cE("text", _uM("class" to "sales-info"), "已售" + _tD(_ctx.product.sales) + "件 · 库存" + _tD(_ctx.product.stock) + "件", 1) - )), - _cE("view", _uM("class" to "shop-info", "onClick" to _ctx.goToShop), _uA( - _cE("image", _uM("src" to (_ctx.merchant.shop_logo ?: "/static/default-shop.png"), "class" to "shop-logo"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "shop-details"), _uA( - _cE("text", _uM("class" to "shop-name", "onClick" to withModifiers(_ctx.goToShop, _uA( - "stop" - ))), _tD(_ctx.merchant.shop_name), 9, _uA( - "onClick" - )), - _cE("view", _uM("class" to "shop-stats-row"), _uA( - _cE("text", _uM("class" to "rating-text"), "评分: " + _tD(_ctx.merchant.rating.toFixed(1)), 1), - _cE("text", _uM("class" to "sales-text"), "销量: " + _tD(_ctx.merchant.total_sales), 1) - )) - )), - _cE("text", _uM("class" to "enter-shop", "onClick" to withModifiers(_ctx.goToShop, _uA( - "stop" - ))), "进店 ❯", 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )), - if (isTrue(_ctx.product.usage)) { - _cE("view", _uM("key" to 0, "class" to "function-section"), _uA( - _cE("text", _uM("class" to "function-title"), "功能主治"), - _cE("text", _uM("class" to "function-content"), _tD(_ctx.product.usage), 1) - )) - } else { - _cC("v-if", true) - } - , - if (_ctx.coupons.length > 0) { - _cE("view", _uM("key" to 1, "class" to "detail-cell coupon-entry", "onClick" to _ctx.showCouponModal), _uA( - _cE("text", _uM("class" to "cell-label"), "优惠"), - _cE("view", _uM("class" to "cell-content flex-row"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.coupons.slice(0, 2), fun(coupon, index, __index, _cached): Any { - return _cE("text", _uM("class" to "coupon-tag", "key" to index), _tD(coupon.name), 1) - }), 128) - )), - _cE("text", _uM("class" to "cell-arrow"), "领券 ❯") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "detail-cell params-section", "onClick" to _ctx.showParamsModal), _uA( - _cE("text", _uM("class" to "cell-label"), "参数"), - _cE("view", _uM("class" to "cell-content"), _uA( - _cE("text", _uM("class" to "params-summary-text"), _tD(_ctx.getParamsSummary()), 1) - )), - _cE("text", _uM("class" to "cell-arrow"), "❯") - ), 8, _uA( - "onClick" - )), - if (_ctx.productSkus.length > 0) { - _cE("view", _uM("key" to 2, "class" to "detail-cell spec-section", "onClick" to _ctx.showSpecModal), _uA( - _cE("text", _uM("class" to "cell-label"), "规格"), - _cE("view", _uM("class" to "cell-content"), _uA( - _cE("text", _uM("class" to "spec-selected"), _tD(if (_ctx.selectedSpec != "") { - _ctx.selectedSpec - } else { - "请选择规格" - }), 1) - )), - _cE("text", _uM("class" to "cell-arrow"), "❯") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "detail-cell quantity-section"), _uA( - _cE("text", _uM("class" to "cell-label"), "数量"), - _cE("view", _uM("class" to "cell-content flex-row align-center justify-between"), _uA( - _cE("view", _uM("class" to "quantity-selector flex-row align-center"), _uA( - _cE("view", _uM("class" to "quantity-btn minus", "onClick" to _ctx.decreaseQuantity), _uA( - _cE("text", _uM("class" to "quantity-btn-text"), "-") - ), 8, _uA( - "onClick" - )), - _cE("input", _uM("class" to "quantity-input", "type" to "number", "value" to _ctx.quantity.toString(10), "min" to 1, "max" to _ctx.getMaxQuantity(), "onInput" to _ctx.validateQuantity), null, 40, _uA( - "value", - "max", - "onInput" - )), - _cE("view", _uM("class" to "quantity-btn plus", "onClick" to _ctx.increaseQuantity), _uA( - _cE("text", _uM("class" to "quantity-btn-text"), "+") - ), 8, _uA( - "onClick" - )) - )), - _cE("text", _uM("class" to "quantity-stock"), "库存" + _tD(_ctx.getAvailableStock()) + "件", 1) - )) - )), - _cE("view", _uM("class" to "product-description"), _uA( - _cE("view", _uM("class" to "section-title"), "商品详情"), - _cE("text", _uM("class" to "description-text"), _tD(_ctx.product.description ?: "暂无详细描述"), 1), - if (_ctx.product.images.length > 0) { - _cE("view", _uM("key" to 0, "class" to "detail-images"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.product.images, fun(img, index, __index, _cached): Any { - return _cE("image", _uM("key" to index, "src" to img, "class" to "detail-image", "mode" to "widthFix", "onClick" to fun(){ - _ctx.previewImage(index) - }), null, 8, _uA( - "src", - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - )) - )), - _cE("view", _uM("class" to "bottom-actions"), _uA( - _cE("view", _uM("class" to "action-buttons"), _uA( - _cE("view", _uM("class" to "action-btn", "onClick" to _ctx.contactMerchant), _uA( - _cE("image", _uM("src" to "/static/icons/customer-service.png", "class" to "action-icon-img")), - _cE("text", _uM("class" to "action-text"), "客服") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "action-btn", "onClick" to _ctx.goToCart), _uA( - _cE("image", _uM("src" to "/static/tabbar/cart.png", "class" to "action-icon-img")), - _cE("text", _uM("class" to "action-text"), "购物车") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "action-btn", "onClick" to _ctx.toggleFavorite), _uA( - _cE("image", _uM("src" to if (_ctx.isFavorite) { - "/static/icons/favorite.png" - } else { - "/static/icons/favorite-active.png" - } - , "class" to "action-icon-img"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "action-text"), _tD(if (_ctx.isFavorite) { - "已收藏" - } else { - "收藏" - } - ), 1) - ), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "btn-group"), _uA( - _cE("button", _uM("class" to "cart-btn", "onClick" to _ctx.addToCart), "加入购物车", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "buy-btn", "onClick" to _ctx.buyNow), "立即购买", 8, _uA( - "onClick" - )) - )) - )), - if (isTrue(_ctx.showSpec)) { - _cE("view", _uM("key" to 0, "class" to "spec-modal", "onClick" to _ctx.hideSpecModal), _uA( - _cE("view", _uM("class" to "spec-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - if (_ctx.selectedSkuId == "") { - _cE("view", _uM("key" to 0, "class" to "spec-error-tip"), _uA( - _cE("text", _uM("class" to "error-tip-text"), "请选择规格") - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "spec-header-jd"), _uA( - _cE("image", _uM("src" to _ctx.getSelectedSkuImage(), "class" to "spec-product-img", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "spec-info-jd"), _uA( - _cE("view", _uM("class" to "spec-price-row"), _uA( - _cE("text", _uM("class" to "price-symbol"), "¥"), - _cE("text", _uM("class" to "price-value"), _tD(_ctx.getSelectedSkuPrice()), 1) - )), - _cE("text", _uM("class" to "spec-stock-jd"), "库存: " + _tD(_ctx.getSelectedSkuStock()) + "件", 1), - _cE("text", _uM("class" to "spec-choosed-jd"), "已选: " + _tD(if (_ctx.selectedSpec != "") { - _ctx.selectedSpec - } else { - "请选择规格" - }), 1) - )), - _cE("text", _uM("class" to "close-btn-jd", "onClick" to _ctx.hideSpecModal), "×", 8, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("class" to "spec-list-jd", "scroll-y" to "true"), _uA( - _cE("view", _uM("class" to "spec-group"), _uA( - _cE("text", _uM("class" to "group-title"), "规格"), - _cE("view", _uM("class" to "group-tags"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.productSkus, fun(sku, __key, __index, _cached): Any { - return _cE("view", _uM("key" to sku.id, "class" to _nC(_uA( - "spec-tag", - _uM("active" to (_ctx.selectedSkuId === sku.id)) - )), "onClick" to fun(){ - _ctx.selectSku(sku) - }), _uA( - _cE("text", _uM("class" to "tag-text"), _tD(_ctx.getSkuSpecText(sku)), 1) - ), 10, _uA( - "onClick" - )) - }), 128) - )) - )), - _cE("view", _uM("class" to "spec-quantity-row"), _uA( - _cE("text", _uM("class" to "group-title"), "数量"), - _cE("view", _uM("class" to "quantity-selector-jd"), _uA( - _cE("view", _uM("class" to "q-btn", "onClick" to _ctx.decreaseQuantity), _uA( - _cE("text", _uM("class" to "q-btn-text"), "-") - ), 8, _uA( - "onClick" - )), - _cE("input", _uM("class" to "q-input", "type" to "number", "value" to _ctx.quantity.toString(10), "onInput" to _ctx.validateQuantity), null, 40, _uA( - "value", - "onInput" - )), - _cE("view", _uM("class" to "q-btn", "onClick" to _ctx.increaseQuantity), _uA( - _cE("text", _uM("class" to "q-btn-text"), "+") - ), 8, _uA( - "onClick" - )) - )) - )) - )), - _cE("view", _uM("class" to "spec-footer-jd"), _uA( - _cE("button", _uM("class" to "footer-btn cart", "onClick" to _ctx.addToCart), "加入购物车", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "footer-btn buy", "onClick" to _ctx.buyNow), "立即购买", 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(_ctx.showParams)) { - _cE("view", _uM("key" to 1, "class" to "params-modal", "onClick" to _ctx.hideParamsModal), _uA( - _cE("view", _uM("class" to "params-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "params-header"), _uA( - _cE("text", _uM("class" to "params-title"), "商品参数"), - _cE("text", _uM("class" to "close-btn", "onClick" to _ctx.hideParamsModal), "×", 8, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("class" to "params-list", "direction" to "vertical"), _uA( - if (isTrue(_ctx.product.specification)) { - _cE("view", _uM("key" to 0, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "规格"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.specification), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.usage)) { - _cE("view", _uM("key" to 1, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "功能主治"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.usage), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.side_effects)) { - _cE("view", _uM("key" to 2, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "副作用"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.side_effects), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.precautions)) { - _cE("view", _uM("key" to 3, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "注意事项"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.precautions), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.expiry_date)) { - _cE("view", _uM("key" to 4, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "有效期"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.expiry_date), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.storage_conditions)) { - _cE("view", _uM("key" to 5, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "储存条件"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.storage_conditions), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.approval_number)) { - _cE("view", _uM("key" to 6, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "批准文号"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.approval_number), 1) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(_ctx.product.tags != null && _ctx.product.tags!!.length > 0)) { - _cE("view", _uM("key" to 7, "class" to "params-item"), _uA( - _cE("text", _uM("class" to "params-label"), "标签"), - _cE("text", _uM("class" to "params-value"), _tD(_ctx.product.tags!!.join(", ")), 1) - )) - } else { - _cC("v-if", true) - } - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(_ctx.showCoupons)) { - _cE("view", _uM("key" to 2, "class" to "popup-mask", "onClick" to _ctx.hideCouponModal), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "优惠券"), - _cE("text", _uM("class" to "close-btn", "onClick" to _ctx.hideCouponModal), "×", 8, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("scroll-y" to "true", "class" to "coupon-list-scroll"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(_ctx.coupons, fun(coupon, __key, __index, _cached): Any { - return _cE("view", _uM("key" to coupon.id, "class" to "coupon-item"), _uA( - _cE("view", _uM("class" to "coupon-left"), _uA( - _cE("text", _uM("class" to "coupon-amount"), _uA( - _cE("text", _uM("class" to "symbol"), "¥"), - _tD(coupon.discount_value) - )), - _cE("text", _uM("class" to "coupon-cond"), "满" + _tD(coupon.min_order_amount) + "可用", 1) - )), - _cE("view", _uM("class" to "coupon-right"), _uA( - _cE("view", _uM("class" to "coupon-info-text"), _uA( - _cE("text", _uM("class" to "coupon-name"), _tD(coupon.name), 1), - _cE("text", _uM("class" to "coupon-time"), _tD(_ctx.formatDate(coupon.start_time)) + "-" + _tD(_ctx.formatDate(coupon.end_time)), 1) - )), - _cE("button", _uM("class" to "coupon-btn", "onClick" to fun(){ - _ctx.claimCoupon(coupon) - }), "领取", 8, _uA( - "onClick" - )) - )) - )) - }), 128) - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(_ctx.showShare)) { - _cE("view", _uM("key" to 3, "class" to "share-popup-mask", "onClick" to _ctx.hideSharePopup), _uA( - _cE("view", _uM("class" to "share-popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "share-popup-header"), _uA( - _cE("text", _uM("class" to "share-popup-title"), "分享至"), - _cE("text", _uM("class" to "close-btn", "onClick" to _ctx.hideSharePopup), "×", 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "share-options"), _uA( - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.shareToWechat), _uA( - _cE("view", _uM("class" to "share-icon-wrapper wechat"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "💬") - )), - _cE("text", _uM("class" to "share-option-text"), "微信好友") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.shareToMoments), _uA( - _cE("view", _uM("class" to "share-icon-wrapper moments"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "🔄") - )), - _cE("text", _uM("class" to "share-option-text"), "朋友圈") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.shareToQQ), _uA( - _cE("view", _uM("class" to "share-icon-wrapper qq"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "🐧") - )), - _cE("text", _uM("class" to "share-option-text"), "QQ") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.copyLink), _uA( - _cE("view", _uM("class" to "share-icon-wrapper link"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "🔗") - )), - _cE("text", _uM("class" to "share-option-text"), "复制链接") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.saveImage), _uA( - _cE("view", _uM("class" to "share-icon-wrapper image"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "🖼️") - )), - _cE("text", _uM("class" to "share-option-text"), "保存图片") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "share-option", "onClick" to _ctx.generatePoster), _uA( - _cE("view", _uM("class" to "share-icon-wrapper poster"), _uA( - _cE("text", _uM("class" to "share-option-icon"), "📋") - )), - _cE("text", _uM("class" to "share-option-text"), "生成海报") - ), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "share-cancel-btn", "onClick" to _ctx.hideSharePopup), _uA( - _cE("text", _uM("class" to "cancel-text"), "取消") - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - } - open var product: ProductType by `$data` - open var merchant: MerchantType by `$data` - open var productSkus: UTSArray by `$data` - open var currentImageIndex: Number by `$data` - open var showSpec: Boolean by `$data` - open var selectedSkuId: String by `$data` - open var selectedSpec: String by `$data` - open var quantity: Number by `$data` - open var isFavorite: Boolean by `$data` - open var showParams: Boolean by `$data` - open var coupons: UTSArray by `$data` - open var showCoupons: Boolean by `$data` - open var showShare: Boolean by `$data` - open var memberPrice: Number by `$data` - open var memberDiscount: Number by `$data` - open var memberLevelName: String by `$data` - open var displayPrice: Number by `$data` - @Suppress("USELESS_CAST") - override fun data(): Map { - return _uM("product" to ProductType(id = "", merchant_id = "", category_id = "", name = "", description = "", images = _uA(), price = 0, original_price = 0, stock = 0, sales = 0, status = 0, created_at = ""), "merchant" to MerchantType(id = "", user_id = "", shop_name = "", shop_logo = "", shop_banner = "", shop_description = "", contact_name = "", contact_phone = "", shop_status = 0, rating = 0, total_sales = 0, created_at = ""), "productSkus" to _uA(), "currentImageIndex" to 0, "showSpec" to false, "selectedSkuId" to "", "selectedSpec" to "", "quantity" to 1 as Number, "isFavorite" to false, "showParams" to false, "coupons" to _uA(), "showCoupons" to false, "showShare" to false, "memberPrice" to 0 as Number, "memberDiscount" to 0 as Number, "memberLevelName" to "" as String, "displayPrice" to computed(fun(): Number { - if (this.selectedSkuId != null && this.selectedSkuId !== "") { - val sku = this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - } - ) - if (sku != null) { - return sku!!.price - } - } - return this.product.price - } - )) - } - open var saveFootprint = ::gen_saveFootprint_fn - open fun gen_saveFootprint_fn(productId: String) { - supabaseService.addFootprint(productId).then(fun(success){ - if (success === true) { - console.log("足迹已同步到服务器", " at pages/mall/consumer/product-detail.uvue:457") - } - } - ) - val footprintData = uni_getStorageSync("footprints") as String? - var footprints: UTSArray = _uA() - if (footprintData != null && footprintData !== "") { - try { - footprints = UTSAndroid.consoleDebugError(JSON.parse(footprintData), " at pages/mall/consumer/product-detail.uvue:466") as UTSArray - } - catch (e: Throwable) { - console.error("Failed to parse footprints", e, " at pages/mall/consumer/product-detail.uvue:468") - } - } - val productIdStr = productId - footprints = footprints.filter(fun(item: Any): Boolean { - val itemObj = item as UTSJSONObject - val itemId = itemObj.getString("id") ?: "" - return itemId != productIdStr - } - ) - val productImage = if (this.product.images.length > 0) { - this.product.images[0] - } else { - "/static/default-product.png" - } - footprints.unshift(FootprintItemType(id = this.product.id, name = this.product.name, price = this.product.price, original_price = this.product.original_price, image = productImage, sales = this.product.sales, shopId = this.merchant.id, shopName = this.merchant.shop_name, viewTime = Date.now())) - if (footprints.length > 50) { - footprints = footprints.slice(0, 50) - } - uni_setStorageSync("footprints", JSON.stringify(footprints)) - } - open fun loadProductDetail(productId: String, options: Any = UTSJSONObject()): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "加载中...")) - try { - val dbProduct = await(supabaseService.getProductById(productId)) - if (dbProduct != null) { - this.product = ProductType(id = dbProduct.id, merchant_id = dbProduct.merchant_id ?: "", category_id = dbProduct.category_id ?: "", name = dbProduct.name, description = dbProduct.description ?: "", images = dbProduct.images ?: _uA(), price = dbProduct.price ?: dbProduct.base_price ?: 0, original_price = dbProduct.original_price ?: dbProduct.market_price ?: 0, stock = dbProduct.stock ?: dbProduct.total_stock ?: 0, sales = dbProduct.sale_count ?: 0, status = dbProduct.status ?: 1, created_at = dbProduct.created_at ?: Date().toISOString(), specification = dbProduct.specification ?: null, usage = dbProduct.usage ?: null, side_effects = dbProduct.side_effects ?: null, precautions = dbProduct.precautions ?: null, expiry_date = dbProduct.expiry_date ?: null, storage_conditions = dbProduct.storage_conditions ?: null, approval_number = dbProduct.approval_number ?: null, tags = _uA()) - if (dbProduct.tags != null && dbProduct.tags != "") { - try { - val parsedTags = UTSAndroid.consoleDebugError(JSON.parse(dbProduct.tags!!), " at pages/mall/consumer/product-detail.uvue:534") - if (UTSArray.isArray(parsedTags)) { - this.product.tags = (parsedTags as UTSArray).map(fun(t: Any): String { - return t as String - } - ) - } - } - catch (e: Throwable) {} - } - if (this.product.images.length == 0 && dbProduct.main_image_url != null && dbProduct.main_image_url != "") { - this.product.images.push(dbProduct.main_image_url!!) - } - if (this.product.images.length == 0) { - this.product.images.push("/static/default-product.png") - } - console.log("商品详情加载成功:", this.product.name, "库存:", this.product.stock, "销量:", this.product.sales, " at pages/mall/consumer/product-detail.uvue:550") - } else { - throw UTSError("No product found") - } - } - catch (e: Throwable) { - console.error("Failed to load product detail:", e, " at pages/mall/consumer/product-detail.uvue:555") - this.product.id = productId - val opts = options as UTSJSONObject - val nameOpt = opts["name"] - this.product.name = if ((nameOpt != null && nameOpt != "")) { - UTSAndroid.consoleDebugError(decodeURIComponent(nameOpt as String), " at pages/mall/consumer/product-detail.uvue:560") ?: "未知商品" - } else { - "未知商品" - } - val priceOpt = opts["price"] - if (UTSAndroid.`typeof`(priceOpt) == "number") { - this.product.price = priceOpt as Number - } else if (UTSAndroid.`typeof`(priceOpt) == "string") { - this.product.price = parseFloat(priceOpt as String) - } else { - this.product.price = 0 - } - val imageOpt = opts["image"] - val decodedImage = if ((imageOpt != null && imageOpt != "")) { - UTSAndroid.consoleDebugError(decodeURIComponent(imageOpt as String), " at pages/mall/consumer/product-detail.uvue:573") - } else { - null - } - this.product.images = if (decodedImage != null) { - _uA( - decodedImage - ) - } else { - _uA( - "/static/default-product.png" - ) - } - } - if (this.product.merchant_id != null && this.product.merchant_id !== "") { - await(this.loadMerchantInfo(this.product.merchant_id)) - this.loadCoupons() - } - if (this.product.id != null && this.product.id !== "") { - this.loadProductSkus(this.product.id) - } - this.loadMemberPrice() - uni_hideLoading() - }) - } - open var loadMerchantInfo = ::gen_loadMerchantInfo_fn - open fun gen_loadMerchantInfo_fn(merchantId: String): UTSPromise { - return wrapUTSPromise(suspend { - var realMerchantLoaded = false - if (merchantId.includes("-") || !merchantId.startsWith("merchant_")) { - try { - val shopResponse = await(supabaseService.getShopByMerchantId(merchantId)) - if (shopResponse != null) { - this.merchant = MerchantType(id = shopResponse.id, user_id = shopResponse.merchant_id, shop_name = shopResponse.shop_name, shop_logo = shopResponse.shop_logo ?: "/static/default-shop.png", shop_banner = shopResponse.shop_banner ?: "/static/default-banner.png", shop_description = shopResponse.description ?: "", contact_name = shopResponse.contact_name ?: "店主", contact_phone = shopResponse.contact_phone ?: "", shop_status = 1, rating = shopResponse.rating_avg ?: 5.0, total_sales = shopResponse.total_sales ?: 0, created_at = shopResponse.created_at ?: Date().toISOString()) - realMerchantLoaded = true - console.log("店铺信息加载成功:", this.merchant.shop_name, " at pages/mall/consumer/product-detail.uvue:615") - } - } - catch (e: Throwable) { - console.error("Load shop failed", e, " at pages/mall/consumer/product-detail.uvue:618") - } - } - if (!realMerchantLoaded) { - var charSum: Number = 0 - run { - var i: Number = 0 - while(i < merchantId.length){ - val charCode = merchantId.charCodeAt(i) - if (charCode != null) { - charSum += charCode - } - i++ - } - } - val merchantIndex = Math.abs(charSum) % 5 - val shopNames = _uA( - "优质好店", - "品牌直营店", - "官方旗舰店", - "专卖店", - "精品小店" - ) - this.merchant = MerchantType(id = merchantId, user_id = "user_mock_" + merchantIndex, shop_name = shopNames[merchantIndex], shop_logo = "/static/shop-logo.png", shop_banner = "/static/shop-banner.png", shop_description = "优质服务,正品保障", contact_name = "店主", contact_phone = "", shop_status = 1, rating = 4.8, total_sales = 999, created_at = "2023-01-01") - } - }) - } - open var loadProductSkus = ::gen_loadProductSkus_fn - open fun gen_loadProductSkus_fn(productId: String): UTSPromise { - return wrapUTSPromise(suspend w@{ - try { - val skus = await(supabaseService.getProductSkus(productId)) - if (skus.length > 0) { - console.log("加载到商品SKU:", skus.length, " at pages/mall/consumer/product-detail.uvue:655") - this.productSkus = _uA() - run { - var i: Number = 0 - while(i < skus.length){ - val skuData = skus[i] - var specs: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("specs", "pages/mall/consumer/product-detail.uvue", 660, 20)) { - } - if (skuData.specifications != null && skuData.specifications != "") { - try { - specs = UTSAndroid.consoleDebugError(JSON.parse(skuData.specifications), " at pages/mall/consumer/product-detail.uvue:663") as UTSJSONObject - } - catch (e: Throwable) { - console.error("解析SKU规格失败", e, " at pages/mall/consumer/product-detail.uvue:665") - } - } - val sku = ProductSkuType(id = skuData.id, product_id = skuData.product_id, sku_code = skuData.sku_code, specifications = specs, price = skuData.price, stock = skuData.stock ?: 0, image_url = skuData.image_url ?: "", status = skuData.status ?: 1) - this.productSkus.push(sku) - i++ - } - } - return@w - } - } - catch (e: Throwable) { - console.error("Fetch SKUs error", e, " at pages/mall/consumer/product-detail.uvue:683") - } - }) - } - open var loadMemberPrice = ::gen_loadMemberPrice_fn - open fun gen_loadMemberPrice_fn(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val memberInfo = await(supabaseService.getUserMemberInfo()) - val levelNameRaw = memberInfo.get("level_name") - val discountRaw = memberInfo.get("discount") - if (levelNameRaw != null) { - this.memberLevelName = levelNameRaw as String - } - if (discountRaw != null) { - val discountRate = discountRaw as Number - if (discountRate > 0 && discountRate < 1) { - this.memberDiscount = Math.round(discountRate * 10) / 10 * 10 - this.memberPrice = Math.round(this.product.price * discountRate * 100) / 100 - } - } - } - catch (e: Throwable) { - console.log("获取会员信息失败,可能未登录或非会员:", e, " at pages/mall/consumer/product-detail.uvue:709") - } - }) - } - open var loadCoupons = ::gen_loadCoupons_fn - open fun gen_loadCoupons_fn(): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (this.product.merchant_id == "") { - return@w - } - try { - val couponData = await(supabaseService.fetchShopCoupons(this.product.merchant_id)) - this.coupons = _uA() - if (couponData != null && couponData.length > 0) { - run { - var i: Number = 0 - while(i < couponData.length){ - val item = couponData[i] - val couponObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/product-detail.uvue:724") as UTSJSONObject - val getSafeString = fun(key: String): String { - val kVal = couponObj.get(key) - if (kVal == null) { - return "" - } - if (UTSAndroid.`typeof`(kVal) == "string") { - return kVal as String - } - return "" - } - val getSafeNumber = fun(key: String): Number { - val kVal = couponObj.get(key) - if (kVal == null) { - return 0 - } - if (UTSAndroid.`typeof`(kVal) == "number") { - return kVal as Number - } - return 0 - } - val coupon = CouponTemplateType(id = getSafeString("id"), name = getSafeString("name"), description = getSafeString("description"), coupon_type = getSafeNumber("coupon_type"), discount_type = getSafeNumber("discount_type"), discount_value = getSafeNumber("discount_value"), min_order_amount = getSafeNumber("min_order_amount"), max_discount_amount = getSafeNumber("max_discount_amount"), total_quantity = getSafeNumber("total_quantity"), per_user_limit = getSafeNumber("per_user_limit"), usage_limit = getSafeNumber("usage_limit"), merchant_id = getSafeString("merchant_id"), category_ids = _uA(), product_ids = _uA(), user_type_limit = getSafeNumber("user_type_limit"), start_time = getSafeString("start_time"), end_time = getSafeString("end_time"), status = getSafeNumber("status"), created_at = getSafeString("created_at")) - this.coupons.push(coupon) - i++ - } - } - } - } - catch (e: Throwable) { - console.warn("SupabaseService coupon methods not available:", e, " at pages/mall/consumer/product-detail.uvue:765") - } - }) - } - open var contactMerchant = ::gen_contactMerchant_fn - open fun gen_contactMerchant_fn() { - if (supabaseService.getCurrentUserId() == "") { - uni_navigateTo(NavigateToOptions(url = "/pages/auth/login")) - return - } - val merchId = this.merchant.user_id ?: this.merchant.id ?: this.product.merchant_id - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchId + "&merchantName=" + this.merchant.shop_name)) - } - open var showCouponModal = ::gen_showCouponModal_fn - open fun gen_showCouponModal_fn() { - this.showCoupons = true - } - open var hideCouponModal = ::gen_hideCouponModal_fn - open fun gen_hideCouponModal_fn() { - this.showCoupons = false - } - open var claimCoupon = ::gen_claimCoupon_fn - open fun gen_claimCoupon_fn(coupon: CouponTemplateType): UTSPromise { - return wrapUTSPromise(suspend w@{ - val userId = supabaseService.getCurrentUserId() - if (userId == "") { - uni_navigateTo(NavigateToOptions(url = "/pages/auth/login")) - return@w - } - uni_showLoading(ShowLoadingOptions(title = "领取中")) - var success = false - val couponId = coupon.id - try { - success = await(supabaseService.claimShopCoupon(couponId, userId!!)) - } - catch (e: Throwable) { - try { - success = await(supabaseService.claimCoupon(couponId, userId!!)) - } - catch (e2: Throwable) { - console.warn("claimCoupon method missing:", e2, " at pages/mall/consumer/product-detail.uvue:809") - } - } - }) - } - open var getSelectedSkuImage = ::gen_getSelectedSkuImage_fn - open fun gen_getSelectedSkuImage_fn(): String { - if (this.selectedSkuId != "") { - val sku = this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - } - ) - if (sku != null && sku.image_url != null && sku.image_url != "") { - return sku.image_url as String - } - } - return if (this.product.images.length > 0) { - this.product.images[0] - } else { - "/static/default-product.png" - } - } - open var getSelectedSkuPrice = ::gen_getSelectedSkuPrice_fn - open fun gen_getSelectedSkuPrice_fn(): String { - if (this.selectedSkuId != "") { - val sku = this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - } - ) - if (sku != null) { - return sku.price.toFixed(2) - } - } - return this.product.price.toFixed(2) - } - open var getSelectedSkuStock = ::gen_getSelectedSkuStock_fn - open fun gen_getSelectedSkuStock_fn(): Number { - if (this.selectedSkuId != "") { - val sku = this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - } - ) - this.showSpecModal() - if (sku != null) { - return sku.stock - } - } - return this.product.stock - } - open var formatDate = ::gen_formatDate_fn - open fun gen_formatDate_fn(dateStr: String): String { - if (dateStr == "") { - return "" - } - val date = Date(dateStr) - return "" + date.getFullYear() + "." + (date.getMonth() + 1) + "." + date.getDate() - } - open var onSwiperChange = ::gen_onSwiperChange_fn - open fun gen_onSwiperChange_fn(e: Any) { - val eventObj = e as UTSJSONObject - val detail = eventObj["detail"] as UTSJSONObject - this.currentImageIndex = detail["current"] as Number - } - open var showSpecModal = ::gen_showSpecModal_fn - open fun gen_showSpecModal_fn() { - this.showSpec = true - } - open var hideSpecModal = ::gen_hideSpecModal_fn - open fun gen_hideSpecModal_fn() { - this.showSpec = false - } - open var selectSku = ::gen_selectSku_fn - open fun gen_selectSku_fn(sku: ProductSkuType) { - this.selectedSkuId = sku.id - this.selectedSpec = this.getSkuSpecText(sku) - } - open var getSkuSpecText = ::gen_getSkuSpecText_fn - open fun gen_getSkuSpecText_fn(sku: ProductSkuType): String { - if (sku.specifications != null) { - val specs = sku.specifications as UTSJSONObject - var specStr = "" - for(key in resolveUTSKeyIterator(specs)){ - val kVal = specs[key] - if (kVal != null) { - specStr += (if (specStr === "") { - "" - } else { - " " - } - ) + kVal.toString() - } - } - if (specStr !== "") { - return specStr - } - } - return sku.sku_code ?: "" - } - open var addToCart = ::gen_addToCart_fn - open fun gen_addToCart_fn(): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === "")) { - if (!this.showSpec) { - this.showSpecModal() - } - return@w - } - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - try { - val success = await(supabaseService.addToCart(this.product.id, this.quantity, this.selectedSkuId, this.product.merchant_id)) - uni_hideLoading() - if (success === true) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - this.hideSpecModal() - } else { - console.error("添加购物车返回失败", " at pages/mall/consumer/product-detail.uvue:913") - uni_showToast(ShowToastOptions(title = "添加失败,请登录重试", icon = "none")) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("添加购物车异常", e, " at pages/mall/consumer/product-detail.uvue:918") - uni_showToast(ShowToastOptions(title = "添加异常", icon = "none")) - } - }) - } - open var buyNow = ::gen_buyNow_fn - open fun gen_buyNow_fn() { - if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === "")) { - if (!this.showSpec) { - this.showSpecModal() - } - return - } - val sku = if ((this.selectedSkuId != null && this.selectedSkuId !== "")) { - this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - }) - } else { - null - } - val selectedItem: UTSJSONObject = _uO("__\$originalPosition" to UTSSourceMapPosition("selectedItem", "pages/mall/consumer/product-detail.uvue", 933, 12), "id" to this.selectedSkuId, "product_id" to this.product.id, "sku_id" to this.selectedSkuId, "product_name" to this.product.name, "product_image" to if ((sku != null && sku.image_url != null)) { - sku!!.image_url - } else { - this.product.images[0] - } - , "sku_specifications" to if (sku != null) { - sku!!.specifications - } else { - UTSJSONObject() - } - , "price" to parseFloat((if (sku != null) { - sku!!.price - } else { - this.product.price - } - ).toString(10)).toFixed(2) as String, "quantity" to this.quantity as Number, "shop_id" to this.merchant.id, "shop_name" to this.merchant.shop_name, "merchant_id" to (this.merchant.user_id ?: this.product.merchant_id)) - uni_setStorageSync("checkout_type", "buy_now") - uni_setStorageSync("checkout_items", JSON.stringify(_uA( - selectedItem - ))) - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/checkout")) - } - open var checkFavoriteStatus = ::gen_checkFavoriteStatus_fn - open fun gen_checkFavoriteStatus_fn(id: String) { - this.checkFavorite(id) - } - open var checkFavorite = ::gen_checkFavorite_fn - open fun gen_checkFavorite_fn(id: String): UTSPromise { - return wrapUTSPromise(suspend { - val isFav = await(supabaseService.checkFavorite(id)) - this.isFavorite = isFav - }) - } - open var toggleFavorite = ::gen_toggleFavorite_fn - open fun gen_toggleFavorite_fn(): UTSPromise { - return wrapUTSPromise(suspend w@{ - if (this.product.id == "") { - return@w - } - uni_showLoading(ShowLoadingOptions(title = "处理中")) - try { - val wasFavorite = this.isFavorite - val isNowFavorite = await(supabaseService.toggleFavorite(this.product.id)) - uni_hideLoading() - if (isNowFavorite !== wasFavorite) { - this.isFavorite = isNowFavorite - uni_showToast(ShowToastOptions(title = if (isNowFavorite) { - "收藏成功" - } else { - "已取消收藏" - }, icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - this.checkFavoriteStatus(this.product.id) - } - } - catch (e: Throwable) { - uni_hideLoading() - console.error("Toggle favorite failed", e, " at pages/mall/consumer/product-detail.uvue:985") - uni_showToast(ShowToastOptions(title = "操作异常", icon = "none")) - } - }) - } - open var goToHome = ::gen_goToHome_fn - open fun gen_goToHome_fn() { - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/home")) - } - open var goToShop = ::gen_goToShop_fn - open fun gen_goToShop_fn() { - val merchantId = this.merchant.id ?: this.product.merchant_id ?: "" - if (merchantId != "") { - console.log("进店点击,merchantId:", merchantId, " at pages/mall/consumer/product-detail.uvue:997") - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/shop-detail?merchantId=" + merchantId)) - } else { - uni_showToast(ShowToastOptions(title = "店铺信息加载中", icon = "none")) - } - } - open var goToCart = ::gen_goToCart_fn - open fun gen_goToCart_fn() { - uni_switchTab(SwitchTabOptions(url = "/pages/main/cart")) - } - open var decreaseQuantity = ::gen_decreaseQuantity_fn - open fun gen_decreaseQuantity_fn() { - if (this.quantity > 1) { - this.quantity-- - } - } - open var increaseQuantity = ::gen_increaseQuantity_fn - open fun gen_increaseQuantity_fn() { - val maxQuantity = this.getMaxQuantity() - if (this.quantity < maxQuantity) { - this.quantity++ - } else { - uni_showToast(ShowToastOptions(title = "最多只能购买" + maxQuantity + "件", icon = "none")) - } - } - open var validateQuantity = ::gen_validateQuantity_fn - open fun gen_validateQuantity_fn() { - var num = this.quantity - val maxQuantity = this.getMaxQuantity() - if (num < 1) { - num = 1 - } else if (num > maxQuantity) { - num = maxQuantity - uni_showToast(ShowToastOptions(title = "最多只能购买" + maxQuantity + "件", icon = "none")) - } - this.quantity = num - } - open var getMaxQuantity = ::gen_getMaxQuantity_fn - open fun gen_getMaxQuantity_fn(): Number { - if (this.selectedSkuId != null && this.selectedSkuId !== "") { - val sku = this.productSkus.find(fun(s): Boolean { - return s.id === this.selectedSkuId - } - ) - if (sku != null) { - return sku!!.stock - } - } - return this.product.stock - } - open var getAvailableStock = ::gen_getAvailableStock_fn - open fun gen_getAvailableStock_fn(): Number { - return this.getMaxQuantity() - } - open var previewImage = ::gen_previewImage_fn - open fun gen_previewImage_fn(index: Number) { - uni_previewImage(PreviewImageOptions(current = index, urls = this.product.images)) - } - open var showParamsModal = ::gen_showParamsModal_fn - open fun gen_showParamsModal_fn() { - this.showParams = true - } - open var hideParamsModal = ::gen_hideParamsModal_fn - open fun gen_hideParamsModal_fn() { - this.showParams = false - } - open var getParamsSummary = ::gen_getParamsSummary_fn - open fun gen_getParamsSummary_fn(): String { - var summary = "" - if (this.product.specification != null && (this.product.specification as String) != "") { - summary += "规格 " - } - if (this.product.expiry_date != null && (this.product.expiry_date as String) != "") { - summary += "有效期 " - } - if (this.product.approval_number != null && (this.product.approval_number as String) != "") { - summary += "批准文号 " - } - val finalSummary = summary.trim() - return if (finalSummary != "") { - finalSummary - } else { - "查看详情" - } - } - open var showSharePopup = ::gen_showSharePopup_fn - open fun gen_showSharePopup_fn() { - this.showShare = true - } - open var hideSharePopup = ::gen_hideSharePopup_fn - open fun gen_hideSharePopup_fn() { - this.showShare = false - } - open var shareToWechat = ::gen_shareToWechat_fn - open fun gen_shareToWechat_fn() { - this.hideSharePopup() - uni_showToast(ShowToastOptions(title = "请在微信中打开分享", icon = "none")) - } - open var shareToMoments = ::gen_shareToMoments_fn - open fun gen_shareToMoments_fn() { - this.hideSharePopup() - uni_showToast(ShowToastOptions(title = "请在微信中打开分享", icon = "none")) - } - open var shareToQQ = ::gen_shareToQQ_fn - open fun gen_shareToQQ_fn() { - this.hideSharePopup() - uni_showToast(ShowToastOptions(title = "QQ分享开发中", icon = "none")) - } - open var copyLink = ::gen_copyLink_fn - open fun gen_copyLink_fn() { - this.hideSharePopup() - val shareLink = "pages/mall/consumer/product-detail?id=" + this.product.id - uni_setClipboardData(SetClipboardDataOptions(data = shareLink, success = fun(_){ - uni_showToast(ShowToastOptions(title = "链接已复制", icon = "success")) - } - )) - } - open var saveImage = ::gen_saveImage_fn - open fun gen_saveImage_fn() { - this.hideSharePopup() - if (this.product.images.length > 0) { - uni_showLoading(ShowLoadingOptions(title = "保存中...")) - uni_downloadFile(DownloadFileOptions(url = this.product.images[0], success = fun(res){ - uni_saveImageToPhotosAlbum(SaveImageToPhotosAlbumOptions(filePath = res.tempFilePath, success = fun(_){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "已保存到相册", icon = "success")) - }, fail = fun(_){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "保存失败", icon = "none")) - })) - }, fail = fun(_){ - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "下载失败", icon = "none")) - })) - } else { - uni_showToast(ShowToastOptions(title = "暂无图片可保存", icon = "none")) - } - } - open var generatePoster = ::gen_generatePoster_fn - open fun gen_generatePoster_fn() { - this.hideSharePopup() - uni_showToast(ShowToastOptions(title = "海报生成功能开发中", icon = "none")) - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0, - styles1 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("product-detail-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "page-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%")), "product-images" to _pS(_uM("position" to "relative", "height" to "750rpx", "backgroundColor" to "#ffffff")), "image-swiper" to _pS(_uM("width" to "100%", "height" to "100%")), "product-image" to _pS(_uM("width" to "100%", "height" to "100%")), "image-indicator" to _pS(_uM("position" to "absolute", "bottom" to "20rpx", "right" to "20rpx", "backgroundColor" to "rgba(0,0,0,0.5)", "color" to "#ffffff", "paddingTop" to "10rpx", "paddingRight" to "20rpx", "paddingBottom" to "10rpx", "paddingLeft" to "20rpx", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx", "fontSize" to "24rpx")), "product-info" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "marginBottom" to "20rpx")), "price-section" to _pS(_uM("marginBottom" to "20rpx", "backgroundImage" to "linear-gradient(135deg, #fff5f0 0%, #ffffff 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to "16rpx", "borderTopRightRadius" to "16rpx", "borderBottomRightRadius" to "16rpx", "borderBottomLeftRadius" to "16rpx", "paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "marginTop" to "-10rpx", "marginRight" to "-10rpx", "marginLeft" to "-10rpx")), "price-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to "12rpx")), "member-badge" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #ff5000 0%, #ff7a00 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to "6rpx", "borderTopRightRadius" to "6rpx", "borderBottomRightRadius" to "6rpx", "borderBottomLeftRadius" to "6rpx", "paddingTop" to "4rpx", "paddingRight" to "16rpx", "paddingBottom" to "4rpx", "paddingLeft" to "16rpx", "marginRight" to "12rpx")), "member-badge-text" to _pS(_uM("fontSize" to "22rpx", "color" to "#ffffff", "fontWeight" to "bold")), "member-discount-label" to _pS(_uM("fontSize" to "26rpx", "color" to "#ff5000", "fontWeight" to "bold")), "price-row" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "price-symbol" to _pS(_uM("fontSize" to "24rpx", "color" to "#ff5000", "fontWeight" to "bold", "marginRight" to "4rpx")), "price-value" to _pS(_uM("fontSize" to "36rpx", "color" to "#ff5000", "fontWeight" to "bold")), "price-original" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "textDecorationLine" to "line-through", "marginLeft" to "16rpx")), "save-row" to _pS(_uM("marginTop" to "12rpx")), "save-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#52c41a", "backgroundColor" to "#f6ffed", "paddingTop" to "6rpx", "paddingRight" to "16rpx", "paddingBottom" to "6rpx", "paddingLeft" to "16rpx", "borderTopLeftRadius" to "6rpx", "borderTopRightRadius" to "6rpx", "borderBottomRightRadius" to "6rpx", "borderBottomLeftRadius" to "6rpx")), "current-price" to _uM("" to _uM("fontSize" to "48rpx", "fontWeight" to "bold", "color" to "#ff5000", "marginRight" to "20rpx"), ".has-discount" to _uM("color" to "#ff5000")), "member-price-tag" to _pS(_uM("fontSize" to "28rpx", "fontWeight" to "bold", "color" to "#52c41a", "backgroundColor" to "#f6ffed", "paddingTop" to "4rpx", "paddingRight" to "12rpx", "paddingBottom" to "4rpx", "paddingLeft" to "12rpx", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx", "marginRight" to "20rpx")), "member-discount-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to "15rpx", "marginTop" to "10rpx")), "member-tag" to _pS(_uM("fontSize" to "20rpx", "color" to "#ffffff", "backgroundImage" to "linear-gradient(135deg, #ff5000 0%, #ff7a00 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to "4rpx", "paddingRight" to "12rpx", "paddingBottom" to "4rpx", "paddingLeft" to "12rpx", "borderTopLeftRadius" to "4rpx", "borderTopRightRadius" to "4rpx", "borderBottomRightRadius" to "4rpx", "borderBottomLeftRadius" to "4rpx", "marginRight" to "10rpx", "fontWeight" to "bold")), "member-discount-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#ff5000", "fontWeight" to "bold", "marginRight" to "15rpx")), "member-save-text" to _pS(_uM("fontSize" to "22rpx", "color" to "#52c41a")), "original-price" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "textDecorationLine" to "line-through")), "product-name" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333", "lineHeight" to 1.4, "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "product-name-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "flex-start", "justifyContent" to "space-between", "marginBottom" to "15rpx")), "share-btn" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to "8rpx", "paddingRight" to "16rpx", "paddingBottom" to "8rpx", "paddingLeft" to "16rpx", "backgroundColor" to "#f8f8f8", "borderTopLeftRadius" to "12rpx", "borderTopRightRadius" to "12rpx", "borderBottomRightRadius" to "12rpx", "borderBottomLeftRadius" to "12rpx", "flexShrink" to 0, "marginLeft" to "20rpx")), "share-icon" to _pS(_uM("fontSize" to "32rpx")), "share-text" to _pS(_uM("fontSize" to "22rpx", "color" to "#666666", "marginTop" to "4rpx")), "sales-info" to _pS(_uM("fontSize" to "26rpx", "color" to "#666666")), "shop-info" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "marginBottom" to "20rpx", "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "shop-logo" to _pS(_uM("width" to "80rpx", "height" to "80rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "marginRight" to "20rpx")), "shop-details" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center")), "shop-name" to _pS(_uM("fontSize" to "30rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "10rpx")), "shop-stats-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "rating-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#666666", "marginRight" to "30rpx")), "sales-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#666666", "marginRight" to "30rpx")), "enter-shop" to _pS(_uM("fontSize" to "26rpx", "color" to "#666666")), "popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "justifyContent" to "flex-end", "flexDirection" to "column", "zIndex" to 1000)), "popup-content" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "display" to "flex", "flexDirection" to "column", "maxHeight" to "1000rpx")), "popup-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to "30rpx", "paddingBottom" to "20rpx", "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee")), "popup-title" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333")), "close-btn" to _pS(_uM("fontSize" to "48rpx", "color" to "#999999")), "coupon-list-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "coupon-item" to _pS(_uM("display" to "flex", "backgroundColor" to "#fff5f5", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "marginBottom" to "20rpx")), "coupon-left" to _pS(_uM("width" to "180rpx", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center", "alignItems" to "center", "borderRightWidth" to 1, "borderRightStyle" to "dashed", "borderRightColor" to "#ffccc7", "color" to "#ff5000")), "coupon-amount" to _pS(_uM("fontSize" to "40rpx", "fontWeight" to "bold")), "symbol" to _pS(_uM("fontSize" to "24rpx")), "coupon-cond" to _pS(_uM("fontSize" to "22rpx", "marginTop" to "5rpx")), "coupon-right" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingLeft" to "20rpx", "display" to "flex", "justifyContent" to "space-between", "alignItems" to "center")), "coupon-info-text" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "coupon-name" to _pS(_uM("fontSize" to "28rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "10rpx")), "coupon-time" to _pS(_uM("fontSize" to "22rpx", "color" to "#999999")), "coupon-btn" to _pS(_uM("backgroundColor" to "#ff5000", "color" to "#ffffff", "fontSize" to "24rpx", "paddingTop" to 0, "paddingRight" to "24rpx", "paddingBottom" to 0, "paddingLeft" to "24rpx", "height" to "50rpx", "lineHeight" to "50rpx", "borderTopLeftRadius" to "25rpx", "borderTopRightRadius" to "25rpx", "borderBottomRightRadius" to "25rpx", "borderBottomLeftRadius" to "25rpx", "marginTop" to 0, "marginRight" to 0, "marginBottom" to 0, "marginLeft" to 0)), "product-description" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "140rpx", "paddingLeft" to "30rpx", "marginBottom" to "20rpx")), "section-title" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "20rpx")), "description-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#666666", "lineHeight" to 1.6)), "detail-cell" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to "32rpx", "paddingRight" to "30rpx", "paddingBottom" to "32rpx", "paddingLeft" to "30rpx", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#f8f8f8")), "cell-label" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "width" to "90rpx", "flexShrink" to 0)), "cell-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to "10rpx")), "cell-arrow" to _pS(_uM("fontSize" to "24rpx", "color" to "#cccccc", "marginLeft" to "10rpx")), "coupon-entry" to _pS(_uM("marginBottom" to 0)), "params-section" to _pS(_uM("marginBottom" to "20rpx", "backgroundColor" to "#ffffff", "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "display" to "flex", "alignItems" to "center")), "spec-section" to _pS(_uM("marginBottom" to 0)), "quantity-section" to _pS(_uM("marginBottom" to "20rpx", "borderBottomWidth" to "medium", "borderBottomStyle" to "none", "borderBottomColor" to "#000000")), "params-summary-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#333333")), "spec-selected" to _pS(_uM("fontSize" to "28rpx", "color" to "#333333")), "flex-row" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "align-center" to _pS(_uM("alignItems" to "center")), "justify-between" to _pS(_uM("justifyContent" to "space-between")), "quantity-selector" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "borderTopWidth" to "1rpx", "borderRightWidth" to "1rpx", "borderBottomWidth" to "1rpx", "borderLeftWidth" to "1rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx", "overflow" to "hidden")), "quantity-btn" to _uM("" to _uM("width" to "60rpx", "height" to "60rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#f5f5f5"), ".minus" to _uM("borderRightWidth" to "1rpx", "borderRightStyle" to "solid", "borderRightColor" to "#e5e5e5"), ".plus" to _uM("borderLeftWidth" to "1rpx", "borderLeftStyle" to "solid", "borderLeftColor" to "#e5e5e5")), "quantity-btn-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#333333")), "quantity-input" to _pS(_uM("width" to "80rpx", "height" to "60rpx", "textAlign" to "center", "fontSize" to "28rpx", "color" to "#333333", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#ffffff")), "quantity-stock" to _pS(_uM("fontSize" to "24rpx", "color" to "#666666")), "bottom-actions" to _pS(_uM("position" to "fixed", "bottom" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ffffff", "paddingTop" to "10rpx", "paddingRight" to "20rpx", "paddingBottom" to "10rpx", "paddingLeft" to "20rpx", "boxShadow" to "0 -2rpx 10rpx rgba(0, 0, 0, 0.1)", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between")), "action-buttons" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginRight" to "20rpx")), "action-btn" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "marginRight" to "20rpx", "minWidth" to "80rpx")), "action-icon-img" to _pS(_uM("width" to "44rpx", "height" to "44rpx", "marginBottom" to "4rpx")), "action-text" to _pS(_uM("fontSize" to "20rpx", "color" to "#666666")), "btn-group" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "cart-btn" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "72rpx", "lineHeight" to "72rpx", "borderTopLeftRadius" to "36rpx", "borderTopRightRadius" to "36rpx", "borderBottomRightRadius" to "36rpx", "borderBottomLeftRadius" to "36rpx", "fontSize" to "26rpx", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginTop" to 0, "marginRight" to "10rpx", "marginBottom" to 0, "marginLeft" to "10rpx", "backgroundColor" to "#ff5000", "opacity" to 0.8, "color" to "#ffffff")), "buy-btn" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "72rpx", "lineHeight" to "72rpx", "borderTopLeftRadius" to "36rpx", "borderTopRightRadius" to "36rpx", "borderBottomRightRadius" to "36rpx", "borderBottomLeftRadius" to "36rpx", "fontSize" to "26rpx", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "marginTop" to 0, "marginRight" to "10rpx", "marginBottom" to 0, "marginLeft" to "10rpx", "backgroundColor" to "#ff5000", "color" to "#ffffff")), "spec-modal" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.6)", "display" to "flex", "justifyContent" to "flex-end", "flexDirection" to "column", "zIndex" to 1000)), "spec-content" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "borderTopLeftRadius" to "24rpx", "borderTopRightRadius" to "24rpx", "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "display" to "flex", "flexDirection" to "column", "position" to "relative")), "spec-header-jd" to _pS(_uM("display" to "flex", "flexDirection" to "row", "position" to "relative", "paddingBottom" to "30rpx", "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#f2f2f2", "alignItems" to "flex-end")), "spec-product-img" to _pS(_uM("width" to "180rpx", "height" to "180rpx", "borderTopLeftRadius" to "12rpx", "borderTopRightRadius" to "12rpx", "borderBottomRightRadius" to "12rpx", "borderBottomLeftRadius" to "12rpx", "marginTop" to "-60rpx", "backgroundColor" to "#ffffff", "borderTopWidth" to "4rpx", "borderRightWidth" to "4rpx", "borderBottomWidth" to "4rpx", "borderLeftWidth" to "4rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffffff", "borderRightColor" to "#ffffff", "borderBottomColor" to "#ffffff", "borderLeftColor" to "#ffffff", "boxShadow" to "0 4rpx 12rpx rgba(0,0,0,0.1)", "flexShrink" to 0)), "spec-info-jd" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to "24rpx", "display" to "flex", "flexDirection" to "column", "justifyContent" to "flex-end", "paddingBottom" to "10rpx")), "spec-price-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "color" to "#fa2c19", "marginBottom" to "8rpx")), "spec-error-tip" to _pS(_uM("position" to "absolute", "top" to "-80rpx", "left" to "50%", "transform" to "translateX(-50%)", "backgroundColor" to "rgba(0,0,0,0.7)", "paddingTop" to "12rpx", "paddingRight" to "30rpx", "paddingBottom" to "12rpx", "paddingLeft" to "30rpx", "borderTopLeftRadius" to "40rpx", "borderTopRightRadius" to "40rpx", "borderBottomRightRadius" to "40rpx", "borderBottomLeftRadius" to "40rpx", "zIndex" to 2000, "whiteSpace" to "nowrap")), "error-tip-text" to _pS(_uM("color" to "#ffffff", "fontSize" to "24rpx")), "spec-stock-jd" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999", "marginBottom" to "8rpx")), "spec-choosed-jd" to _pS(_uM("fontSize" to "26rpx", "color" to "#333333")), "close-btn-jd" to _pS(_uM("fontSize" to "48rpx", "color" to "#999999", "position" to "absolute", "right" to "-10rpx", "top" to "-10rpx", "paddingTop" to "10rpx", "paddingRight" to "10rpx", "paddingBottom" to "10rpx", "paddingLeft" to "10rpx")), "spec-list-jd" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "overflowY" to "hidden")), "spec-group" to _pS(_uM("paddingTop" to "30rpx", "paddingRight" to 0, "paddingBottom" to "30rpx", "paddingLeft" to 0)), "group-title" to _pS(_uM("fontSize" to "28rpx", "fontWeight" to "bold", "color" to "#333333", "marginBottom" to "24rpx")), "group-tags" to _pS(_uM("display" to "flex", "flexWrap" to "wrap")), "spec-tag" to _uM("" to _uM("backgroundColor" to "#f6f6f6", "paddingTop" to "16rpx", "paddingRight" to "32rpx", "paddingBottom" to "16rpx", "paddingLeft" to "32rpx", "borderTopLeftRadius" to "40rpx", "borderTopRightRadius" to "40rpx", "borderBottomRightRadius" to "40rpx", "borderBottomLeftRadius" to "40rpx", "marginRight" to "20rpx", "marginBottom" to "20rpx", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f6f6f6", "borderRightColor" to "#f6f6f6", "borderBottomColor" to "#f6f6f6", "borderLeftColor" to "#f6f6f6"), ".active" to _uM("backgroundColor" to "#fcedeb", "borderTopColor" to "#fa2c19", "borderRightColor" to "#fa2c19", "borderBottomColor" to "#fa2c19", "borderLeftColor" to "#fa2c19"))) - } - val styles1: Map>> - get() { - return _uM("tag-text" to _uM(".spec-tag.active " to _uM("color" to "#fa2c19"), "" to _uM("fontSize" to "26rpx", "color" to "#333333")), "spec-quantity-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to "30rpx", "paddingRight" to 0, "paddingBottom" to "30rpx", "paddingLeft" to 0)), "quantity-selector-jd" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "backgroundColor" to "#f6f6f6", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx")), "q-btn" to _pS(_uM("width" to "60rpx", "height" to "60rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "q-btn-text" to _pS(_uM("fontSize" to "36rpx", "color" to "#333333")), "q-input" to _pS(_uM("width" to "80rpx", "textAlign" to "center", "fontSize" to "28rpx", "color" to "#333333")), "spec-footer-jd" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to "20rpx", "paddingRight" to 0, "paddingBottom" to "10rpx", "paddingLeft" to 0, "justifyContent" to "space-between")), "footer-btn" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "80rpx", "lineHeight" to "80rpx", "fontSize" to "28rpx", "fontWeight" to "bold", "borderTopLeftRadius" to "40rpx", "borderTopRightRadius" to "40rpx", "borderBottomRightRadius" to "40rpx", "borderBottomLeftRadius" to "40rpx", "marginTop" to 0, "marginRight" to "10rpx", "marginBottom" to 0, "marginLeft" to "10rpx", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "display" to "flex", "alignItems" to "center", "justifyContent" to "center"), ".cart" to _uM("backgroundImage" to "linear-gradient(90deg, #ffba0d, #ffc30d)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff"), ".buy" to _uM("backgroundImage" to "linear-gradient(90deg, #f2140c, #f2270c)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff")), "function-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "marginBottom" to "20rpx")), "function-title" to _pS(_uM("fontSize" to "30rpx", "color" to "#333333", "fontWeight" to "bold", "marginBottom" to "15rpx")), "function-content" to _pS(_uM("fontSize" to "28rpx", "color" to "#666666", "lineHeight" to 1.5)), "params-title" to _pS(_uM("fontSize" to "32rpx", "color" to "#333333", "width" to "auto", "flexShrink" to 0, "fontWeight" to "bold")), "params-summary" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "alignItems" to "center")), "params-item" to _pS(_uM("fontSize" to "26rpx", "color" to "#666666", "lineHeight" to 1.5, "marginRight" to "20rpx", "marginBottom" to "5rpx", "whiteSpace" to "nowrap", "display" to "flex", "alignItems" to "flex-start", "paddingTop" to "20rpx", "paddingRight" to 0, "paddingBottom" to "20rpx", "paddingLeft" to 0, "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "params-arrow" to _pS(_uM("fontSize" to "28rpx", "color" to "#999999", "flexShrink" to 0, "marginLeft" to "10rpx")), "share-popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "justifyContent" to "flex-end", "flexDirection" to "column", "zIndex" to 1000)), "share-popup-content" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "borderTopLeftRadius" to "24rpx", "borderTopRightRadius" to "24rpx", "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx")), "share-popup-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to "30rpx")), "share-popup-title" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "bold", "color" to "#333333")), "share-options" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start", "paddingTop" to "20rpx", "paddingRight" to 0, "paddingBottom" to "20rpx", "paddingLeft" to 0)), "share-option" to _pS(_uM("width" to "25%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginBottom" to "30rpx")), "share-icon-wrapper" to _uM("" to _uM("width" to "100rpx", "height" to "100rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to "16rpx"), ".wechat" to _uM("backgroundColor" to "#07C160"), ".moments" to _uM("backgroundColor" to "#07C160"), ".qq" to _uM("backgroundColor" to "#12B7F5"), ".link" to _uM("backgroundColor" to "#FF9500"), ".image" to _uM("backgroundColor" to "#FF2D55"), ".poster" to _uM("backgroundColor" to "#5856D6")), "share-option-icon" to _pS(_uM("fontSize" to "44rpx", "color" to "#ffffff")), "share-option-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#333333")), "share-cancel-btn" to _pS(_uM("width" to "100%", "height" to "88rpx", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to "44rpx", "borderTopRightRadius" to "44rpx", "borderBottomRightRadius" to "44rpx", "borderBottomLeftRadius" to "44rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "marginTop" to "20rpx")), "cancel-text" to _pS(_uM("fontSize" to "30rpx", "color" to "#333333")), "params-modal" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "justifyContent" to "flex-end", "flexDirection" to "column", "zIndex" to 1000)), "params-content" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to 0, "borderBottomLeftRadius" to 0, "paddingTop" to "30rpx", "paddingRight" to "30rpx", "paddingBottom" to "30rpx", "paddingLeft" to "30rpx", "display" to "flex", "flexDirection" to "column", "maxHeight" to "1000rpx")), "params-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to "30rpx", "paddingBottom" to "20rpx", "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee")), "params-list" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "params-label" to _pS(_uM("fontSize" to "28rpx", "color" to "#333333", "fontWeight" to "bold", "width" to "150rpx", "flexShrink" to 0)), "params-value" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "color" to "#666666", "lineHeight" to 1.5)), "detail-images" to _pS(_uM("marginTop" to "30rpx")), "detail-image" to _pS(_uM("width" to "100%", "marginBottom" to "20rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "boxShadow" to "0 2rpx 10rpx rgba(0, 0, 0, 0.1)"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt deleted file mode 100644 index b8488f9e..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/product-reviews.kt +++ /dev/null @@ -1,439 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.previewImage as uni_previewImage -open class GenPagesMallConsumerProductReviews : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerProductReviews) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerProductReviews - val _cache = __ins.renderCache - val productId = ref("") - val reviews = ref(_uA()) - val stats = ref(StatsType__1(total_count = 0, avg_rating = 0, good_rate = 0, rating_distribution = Map())) - val loading = ref(true) - val hasMore = ref(true) - val page = ref(1) - val pageSize: Number = 10 - val filterRating = ref(0) - val hasImageFilter = ref(false) - val defaultAvatar: String = "/static/images/default-avatar.png" - val getRatingCount = fun(rating: Number): Number { - return stats.value.rating_distribution.get(rating.toString(10)) ?: 0 - } - val getRatingPercent = fun(rating: Number): Number { - if (stats.value.total_count === 0) { - return 0 - } - val count = getRatingCount(rating) - return Math.round((count / stats.value.total_count) * 100) - } - val loadStats = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.getReviewStats(productId.value)) - val distMap = Map() - val dist = result.get("rating_distribution") - if (dist != null && dist is UTSJSONObject) { - run { - var i: Number = 1 - while(i <= 5){ - distMap.set(i.toString(10), (dist as UTSJSONObject).getNumber(i.toString(10)) ?: 0) - i++ - } - } - } - val statsData = StatsType__1(total_count = result.getNumber("total_count") ?: 0, avg_rating = result.getNumber("avg_rating") ?: 0, good_rate = result.getNumber("good_rate") ?: 0, rating_distribution = distMap) - stats.value = statsData - } - catch (e: Throwable) { - console.error("加载统计失败:", e, " at pages/mall/consumer/product-reviews.uvue:234") - } - }) - } - val loadReviews = fun(pageNum: Number): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val result = await(supabaseService.getProductReviews(productId.value, pageNum, pageSize, filterRating.value, hasImageFilter.value)) - val total = result.getNumber("total") ?: 0 - val data = result.get("data") - val reviewList: UTSArray = _uA() - if (data != null && UTSArray.isArray(data)) { - val rawList = data as UTSArray - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] - var reviewObj: UTSJSONObject - if (item is UTSJSONObject) { - reviewObj = item as UTSJSONObject - } else { - reviewObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/product-reviews.uvue:262") as UTSJSONObject - } - var images: UTSArray = _uA() - val imagesRaw = reviewObj.get("images") - if (imagesRaw != null && UTSAndroid.`typeof`(imagesRaw) === "string") { - try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(imagesRaw as String), " at pages/mall/consumer/product-reviews.uvue:269") - if (UTSArray.isArray(parsed)) { - images = parsed as UTSArray - } - } - catch (e: Throwable) { - console.error("解析图片失败:", e, " at pages/mall/consumer/product-reviews.uvue:274") - } - } - val review = ReviewItem(id = reviewObj.getString("id") ?: "", user_id = reviewObj.getString("user_id") ?: "", user_name = reviewObj.getString("user_name") ?: "匿名用户", user_avatar = reviewObj.getString("user_avatar") ?: "", rating = reviewObj.getNumber("rating") ?: 5, content = reviewObj.getString("content") ?: "", images = images, is_anonymous = reviewObj.getBoolean("is_anonymous") ?: false, like_count = reviewObj.getNumber("like_count") ?: 0, is_liked = reviewObj.getBoolean("is_liked") ?: false, append_content = reviewObj.getString("append_content"), append_at = reviewObj.getString("append_at"), reply = reviewObj.getString("reply"), created_at = reviewObj.getString("created_at") ?: "") - reviewList.push(review) - i++ - } - } - } - if (pageNum === 1) { - reviews.value = reviewList - } else { - reviews.value = reviews.value.concat(reviewList) - } - hasMore.value = reviews.value.length < total - page.value = pageNum - } - catch (e: Throwable) { - console.error("加载评价失败:", e, " at pages/mall/consumer/product-reviews.uvue:307") - } - finally { - loading.value = false - } - }) - } - val loadMore = fun(): Unit { - if (!loading.value && hasMore.value) { - loadReviews(page.value + 1) - } - } - val setFilterRating = fun(rating: Number): Unit { - filterRating.value = rating - hasImageFilter.value = false - page.value = 1 - loadReviews(1) - } - val toggleHasImage = fun(): Unit { - hasImageFilter.value = !hasImageFilter.value - filterRating.value = 0 - page.value = 1 - loadReviews(1) - } - val toggleLike = fun(review: ReviewItem): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.toggleReviewLike(review.id)) - if (result.getBoolean("success") === true) { - review.is_liked = result.getBoolean("is_liked") ?: false - review.like_count = result.getNumber("like_count") ?: 0 - } - } - catch (e: Throwable) { - console.error("点赞失败:", e, " at pages/mall/consumer/product-reviews.uvue:341") - } - }) - } - val previewImage = fun(images: UTSArray, index: Number): Unit { - uni_previewImage(PreviewImageOptions(urls = images, current = index)) - } - val formatTime = fun(timeStr: String?): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val now = Date() - val diff = now.getTime() - date.getTime() - val days = Math.floor(diff / 86400000) - if (days === 0) { - val hours = Math.floor(diff / 3600000) - if (hours === 0) { - val minutes = Math.floor(diff / 60000) - return if (minutes <= 1) { - "刚刚" - } else { - "" + minutes + "分钟前" - } - } - return "" + hours + "小时前" - } else if (days < 7) { - return "" + days + "天前" - } else { - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d - } - } - onLoad__1(fun(options){ - if (options != null) { - val idVal = options["product_id"] - if (idVal != null) { - productId.value = idVal as String - loadStats() - loadReviews(1) - } - } - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "reviews-page"), _uA( - if (stats.value.total_count > 0) { - _cE("view", _uM("key" to 0, "class" to "stats-section"), _uA( - _cE("view", _uM("class" to "stats-header"), _uA( - _cE("view", _uM("class" to "stats-main"), _uA( - _cE("text", _uM("class" to "stats-avg"), _tD(stats.value.avg_rating), 1), - _cE("text", _uM("class" to "stats-label"), "综合评分") - )), - _cE("view", _uM("class" to "stats-detail"), _uA( - _cE("view", _uM("class" to "stats-row"), _uA( - _cE("text", _uM("class" to "stats-good"), _tD(stats.value.good_rate) + "%", 1), - _cE("text", _uM("class" to "stats-good-label"), "好评率") - )), - _cE("view", _uM("class" to "stats-row"), _uA( - _cE("text", _uM("class" to "stats-total"), _tD(stats.value.total_count), 1), - _cE("text", _uM("class" to "stats-total-label"), "评价数") - )) - )) - )), - _cE("view", _uM("class" to "rating-bars"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(i, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "rating-bar", "key" to i), _uA( - _cE("text", _uM("class" to "rating-label"), _tD(6 - i) + "星", 1), - _cE("view", _uM("class" to "rating-progress"), _uA( - _cE("view", _uM("class" to "rating-fill", "style" to _nS(_uM("width" to (getRatingPercent(6 - i) + "%")))), null, 4) - )), - _cE("text", _uM("class" to "rating-count"), _tD(getRatingCount(6 - i)), 1) - )) - }), 64) - )) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "filter-section"), _uA( - _cE("scroll-view", _uM("scroll-x" to "", "class" to "filter-scroll"), _uA( - _cE("view", _uM("class" to "filter-list"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "filter-item", - _uM("active" to (filterRating.value === 0)) - )), "onClick" to fun(){ - setFilterRating(0) - } - ), _uA( - _cE("text", _uM("class" to "filter-text"), "全部(" + _tD(stats.value.total_count) + ")", 1) - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "filter-item", - _uM("active" to (filterRating.value === 5)) - )), "onClick" to fun(){ - setFilterRating(5) - } - ), _uA( - _cE("text", _uM("class" to "filter-text"), "好评(" + _tD(getRatingCount(5)) + ")", 1) - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "filter-item", - _uM("active" to (filterRating.value === 4)) - )), "onClick" to fun(){ - setFilterRating(4) - } - ), _uA( - _cE("text", _uM("class" to "filter-text"), "中评(" + _tD(getRatingCount(4) + getRatingCount(3)) + ")", 1) - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "filter-item", - _uM("active" to (filterRating.value === 2)) - )), "onClick" to fun(){ - setFilterRating(2) - } - ), _uA( - _cE("text", _uM("class" to "filter-text"), "差评(" + _tD(getRatingCount(2) + getRatingCount(1)) + ")", 1) - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "filter-item", - _uM("active" to hasImageFilter.value) - )), "onClick" to toggleHasImage), _uA( - _cE("text", _uM("class" to "filter-text"), "有图") - ), 2) - )) - )) - )), - _cE("view", _uM("class" to "review-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(reviews.value, fun(review, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "review-item", "key" to review.id), _uA( - _cE("view", _uM("class" to "review-header"), _uA( - _cE("image", _uM("class" to "user-avatar", "src" to if (review.user_avatar.length > 0) { - review.user_avatar - } else { - defaultAvatar - } - , "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "user-info"), _uA( - _cE("text", _uM("class" to "user-name"), _tD(review.user_name), 1), - _cE("view", _uM("class" to "rating-stars"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star", - _uM("filled" to (star <= review.rating)) - ))), "★", 2) - } - ), 64) - )) - )), - _cE("text", _uM("class" to "review-time"), _tD(formatTime(review.created_at)), 1) - )), - _cE("view", _uM("class" to "review-content"), _uA( - _cE("text", _uM("class" to "review-text"), _tD(review.content), 1) - )), - if (review.images.length > 0) { - _cE("view", _uM("key" to 0, "class" to "review-images"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(review.images.slice(0, 3), fun(img, idx, __index, _cached): Any { - return _cE("image", _uM("key" to idx, "class" to "review-image", "src" to img, "mode" to "aspectFill", "onClick" to fun(){ - previewImage(review.images, idx) - }), null, 8, _uA( - "src", - "onClick" - )) - }), 128), - if (review.images.length > 3) { - _cE("view", _uM("key" to 0, "class" to "more-images"), _uA( - _cE("text", _uM("class" to "more-images-text"), "+" + _tD(review.images.length - 3), 1) - )) - } else { - _cC("v-if", true) - } - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(review.append_content)) { - _cE("view", _uM("key" to 1, "class" to "review-append"), _uA( - _cE("text", _uM("class" to "append-label"), "追评"), - _cE("text", _uM("class" to "append-text"), _tD(review.append_content), 1), - _cE("text", _uM("class" to "append-time"), _tD(formatTime(review.append_at)), 1) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(review.reply)) { - _cE("view", _uM("key" to 2, "class" to "review-reply"), _uA( - _cE("text", _uM("class" to "reply-label"), "商家回复:"), - _cE("text", _uM("class" to "reply-text"), _tD(review.reply), 1) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "review-footer"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "like-btn", - _uM("liked" to review.is_liked) - )), "onClick" to fun(){ - toggleLike(review) - } - ), _uA( - _cE("text", _uM("class" to "like-icon"), _tD(if (review.is_liked) { - "❤" - } else { - "♡" - } - ), 1), - _cE("text", _uM("class" to "like-count"), _tD(if (review.like_count != null) { - review.like_count - } else { - 0 - } - ), 1) - ), 10, _uA( - "onClick" - )) - )) - )) - } - ), 128) - )), - if (isTrue(!loading.value && reviews.value.length === 0)) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无评价") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 2, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && hasMore.value && reviews.value.length > 0)) { - _cE("view", _uM("key" to 3, "class" to "load-more", "onClick" to loadMore), _uA( - _cE("text", _uM("class" to "load-more-text"), "加载更多") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && !hasMore.value && reviews.value.length > 0)) { - _cE("view", _uM("key" to 4, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "没有更多了") - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("reviews-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "stats-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "stats-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "stats-main" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "stats-avg" to _pS(_uM("fontSize" to 36, "fontWeight" to "bold", "color" to "#ff6b35")), "stats-label" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "stats-detail" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "stats-row" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginLeft" to 24)), "stats-good" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#ff6b35")), "stats-good-label" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "stats-total" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "stats-total-label" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "rating-bars" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "rating-bar" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 4)), "rating-label" to _pS(_uM("fontSize" to 12, "color" to "#999999", "width" to 30)), "rating-progress" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 6, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 3, "borderTopRightRadius" to 3, "borderBottomRightRadius" to 3, "borderBottomLeftRadius" to 3, "marginTop" to 0, "marginRight" to 8, "marginBottom" to 0, "marginLeft" to 8, "overflow" to "hidden")), "rating-fill" to _pS(_uM("height" to "100%", "backgroundColor" to "#ff6b35", "borderTopLeftRadius" to 3, "borderTopRightRadius" to 3, "borderBottomRightRadius" to 3, "borderBottomLeftRadius" to 3)), "rating-count" to _pS(_uM("fontSize" to 12, "color" to "#999999", "width" to 30, "textAlign" to "right")), "filter-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginBottom" to 8)), "filter-scroll" to _pS(_uM("whiteSpace" to "nowrap")), "filter-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 12, "paddingRight" to 16, "paddingBottom" to 12, "paddingLeft" to 16)), "filter-item" to _uM("" to _uM("paddingTop" to 6, "paddingRight" to 16, "paddingBottom" to 6, "paddingLeft" to 16, "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "marginRight" to 12), ".active" to _uM("backgroundColor" to "#fff5f0")), "filter-text" to _uM("" to _uM("fontSize" to 13, "color" to "#666666"), ".filter-item.active " to _uM("color" to "#ff6b35")), "review-list" to _pS(_uM("backgroundColor" to "#FFFFFF")), "review-item" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "review-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 12)), "user-avatar" to _pS(_uM("width" to 36, "height" to 36, "borderTopLeftRadius" to 18, "borderTopRightRadius" to 18, "borderBottomRightRadius" to 18, "borderBottomLeftRadius" to 18)), "user-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 10, "display" to "flex", "flexDirection" to "column")), "user-name" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "rating-stars" to _pS(_uM("display" to "flex", "flexDirection" to "row", "marginTop" to 2)), "star" to _uM("" to _uM("fontSize" to 12, "color" to "#dddddd"), ".filled" to _uM("color" to "#ff6b35")), "review-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "review-content" to _pS(_uM("marginBottom" to 12)), "review-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to "20px")), "review-images" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginBottom" to 12)), "review-image" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 8, "marginBottom" to 8)), "more-images" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "backgroundColor" to "rgba(0,0,0,0.5)", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "more-images-text" to _pS(_uM("fontSize" to 14, "color" to "#FFFFFF")), "review-append" to _pS(_uM("backgroundColor" to "#f9f9f9", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginBottom" to 12)), "append-label" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35", "marginRight" to 8)), "append-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "append-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 8, "display" to "flex")), "review-reply" to _pS(_uM("backgroundColor" to "#f5f5f5", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginBottom" to 12)), "reply-label" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "reply-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "review-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-end")), "like-btn" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12)), "like-icon" to _uM(".like-btn.liked " to _uM("color" to "#ff6b35"), "" to _uM("fontSize" to 16, "color" to "#999999", "marginRight" to 4)), "like-count" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#FFFFFF")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#FFFFFF")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "load-more" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#FFFFFF")), "load-more-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "no-more" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#FFFFFF")), "no-more-text" to _pS(_uM("fontSize" to 12, "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/red-packets/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/red-packets/index.kt deleted file mode 100644 index f2320e5b..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/red-packets/index.kt +++ /dev/null @@ -1,190 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerRedPacketsIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerRedPacketsIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerRedPacketsIndex - val _cache = __ins.renderCache - val loading = ref(true) - val currentTab = ref(0) - val packets = ref(_uA()) - val filteredPackets = computed(fun(): UTSArray { - val result: UTSArray = _uA() - if (currentTab.value === 0) { - run { - var i: Number = 0 - while(i < packets.value.length){ - if (packets.value[i].status === 0) { - result.push(packets.value[i]) - } - i++ - } - } - } else { - run { - var i: Number = 0 - while(i < packets.value.length){ - if (packets.value[i].status !== 0) { - result.push(packets.value[i]) - } - i++ - } - } - } - return result - } - ) - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val rawList = await(supabaseService.getUserRedPackets()) - val mappedList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < rawList.length){ - val item = rawList[i] as UTSJSONObject - val packet: RedPacket = RedPacket(id = item.getString("id") ?: "", user_id = "", amount = item.getNumber("amount") ?: 0, name = item.getString("name") ?: "", status = item.getNumber("status") ?: 0, expire_at = item.getString("expire_at") ?: "", created_at = item.getString("created_at") ?: "") - mappedList.push(packet) - i++ - } - } - packets.value = mappedList - } - catch (e: Throwable) { - console.error(e, " at pages/mall/consumer/red-packets/index.uvue:98") - } - finally { - loading.value = false - } - }) - } - onMounted(fun(){ - loadData() - } - ) - val usePacket = fun(item: RedPacket){ - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - val getStatusText = fun(status: Number): String { - if (status === 1) { - return "已使用" - } - if (status === 2) { - return "已过期" - } - return "" - } - val formatTime = fun(timeStr: String): String { - if (timeStr == "") { - return "永久有效" - } - val date = Date(timeStr) - return "" + date.getFullYear() + "-" + (date.getMonth() + 1).toString(10).padStart(2, "0") + "-" + date.getDate().toString(10).padStart(2, "0") - } - return fun(): Any? { - return _cE("view", _uM("class" to "red-packets-page"), _uA( - _cE("view", _uM("class" to "tab-header", "style" to _nS(_uM("position" to "fixed", "top" to "0", "left" to "0", "right" to "0", "z-index" to "10"))), _uA( - _cE("text", _uM("class" to _nC(_uA( - "tab-item", - _uM("active" to (currentTab.value === 0)) - )), "onClick" to fun(){ - currentTab.value = 0 - } - ), "未使用", 10, _uA( - "onClick" - )), - _cE("text", _uM("class" to _nC(_uA( - "tab-item", - _uM("active" to (currentTab.value === 1)) - )), "onClick" to fun(){ - currentTab.value = 1 - } - ), "已使用/过期", 10, _uA( - "onClick" - )) - ), 4), - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", null, "加载中...") - )) - } else { - _cE("scroll-view", _uM("key" to 1, "class" to "packet-list", "direction" to "vertical"), _uA( - if (filteredPackets.value.length === 0) { - _cE("view", _uM("key" to 0, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无相关红包") - )) - } else { - _cE(Fragment, _uM("key" to 1), RenderHelpers.renderList(filteredPackets.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to _nC(_uA( - "packet-item", - _uM("disabled" to (item.status !== 0)) - ))), _uA( - _cE("view", _uM("class" to "packet-left"), _uA( - _cE("text", _uM("class" to "packet-amount"), _uA( - "¥", - _cE("text", _uM("class" to "amount-num"), _tD(item.amount), 1) - )), - _cE("text", _uM("class" to "packet-condition"), "无门槛") - )), - _cE("view", _uM("class" to "packet-right"), _uA( - _cE("view", _uM("class" to "packet-info"), _uA( - _cE("text", _uM("class" to "packet-name"), _tD(item.name), 1), - _cE("text", _uM("class" to "packet-date"), "有效期至 " + _tD(formatTime(item.expire_at)), 1) - )), - _cE("view", _uM("class" to "packet-action"), _uA( - if (item.status === 0) { - _cE("button", _uM("key" to 0, "class" to "use-btn", "onClick" to fun(){ - usePacket(item) - }), "立即使用", 8, _uA( - "onClick" - )) - } else { - _cE("text", _uM("key" to 1, "class" to "status-text"), _tD(getStatusText(item.status)), 1) - } - )) - )) - ), 2) - } - ), 128) - } - )) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("red-packets-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "tab-header" to _pS(_uM("display" to "flex", "backgroundColor" to "#ffffff", "paddingTop" to 10, "paddingRight" to 0, "paddingBottom" to 10, "paddingLeft" to 0)), "tab-item" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center", "fontSize" to 14, "color" to "#666666", "paddingBottom" to 8, "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)"), ".active" to _uM("color" to "#ff5000", "borderBottomColor" to "#ff5000", "fontWeight" to "bold")), "packet-list" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "packet-item" to _pS(_uM("display" to "flex", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 12, "overflow" to "hidden", "boxShadow" to "0 2px 4px rgba(0,0,0,0.05)")), "packet-left" to _uM(".packet-item.disabled " to _uM("color" to "#999999", "backgroundColor" to "#e0e0e0"), "" to _uM("width" to 100, "backgroundColor" to "#fff5f0", "color" to "#ff5000", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0)), "packet-name" to _uM(".packet-item.disabled " to _uM("color" to "#999999", "backgroundColor" to "#f0f0f0"), "" to _uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 8)), "amount-num" to _uM(".packet-item.disabled " to _uM("color" to "#999999", "backgroundColor" to "#f0f0f0"), "" to _uM("fontSize" to 28, "fontWeight" to "bold")), "packet-amount" to _pS(_uM("fontSize" to 14)), "packet-condition" to _pS(_uM("fontSize" to 12, "marginTop" to 4)), "packet-right" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "justifyContent" to "space-between", "alignItems" to "center")), "packet-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "packet-date" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "use-btn" to _pS(_uM("fontSize" to 12, "backgroundColor" to "#ff5000", "color" to "#ffffff", "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "lineHeight" to 1.5)), "status-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 40, "paddingBottom" to 40, "paddingLeft" to 40, "alignItems" to "center", "justifyContent" to "center", "display" to "flex")), "empty-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 40, "paddingBottom" to 40, "paddingLeft" to 40, "alignItems" to "center", "justifyContent" to "center", "display" to "flex"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/refund-review.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/refund-review.kt deleted file mode 100644 index 49ac3e2b..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/refund-review.kt +++ /dev/null @@ -1,115 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerRefundReview : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerRefundReview) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerRefundReview - val _cache = __ins.renderCache - val rating = ref(5) - val comment = ref("") - val submitting = ref(false) - val ratingText = computed(fun(): String { - val texts = _uA( - "非常不满意", - "不满意", - "一般", - "满意", - "非常满意" - ) - return texts[rating.value - 1] - } - ) - val setRating = fun(kVal: Number){ - rating.value = kVal - } - val submitReview = fun(){ - if (submitting.value) { - return - } - submitting.value = true - setTimeout(fun(){ - uni_showToast(ShowToastOptions(title = "评价成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - submitting.value = false - } - , 1000) - } - return fun(): Any? { - return _cE("view", _uM("class" to "review-page"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("text", _uM("class" to "title"), "服务评价"), - _cE("text", _uM("class" to "subtitle"), "请对本次售后服务进行评价") - )), - _cE("view", _uM("class" to "rating-section"), _uA( - _cE("text", _uM("class" to "label"), "服务评分"), - _cE("view", _uM("class" to "stars"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(i, __key, __index, _cached): Any { - return _cE("text", _uM("key" to i, "class" to _nC(_uA( - "star", - _uM("active" to (i <= rating.value)) - )), "onClick" to fun(){ - setRating(i) - } - ), "★", 10, _uA( - "onClick" - )) - } - ), 64) - )), - _cE("text", _uM("class" to "rating-text"), _tD(ratingText.value), 1) - )), - _cE("view", _uM("class" to "comment-section"), _uA( - _cE("textarea", _uM("modelValue" to comment.value, "onInput" to fun(`$event`: UniInputEvent){ - comment.value = `$event`.detail.value - } - , "class" to "comment-input", "placeholder" to "请输入您的评价内容,您的建议是我们改进的动力", "maxlength" to "200"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "word-count"), _tD(comment.value.length) + "/200", 1) - )), - _cE("button", _uM("class" to "submit-btn", "onClick" to submitReview, "loading" to submitting.value), "提交评价", 8, _uA( - "loading" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("review-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "header" to _pS(_uM("marginBottom" to 30, "textAlign" to "center")), "title" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 10)), "subtitle" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "rating-section" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginBottom" to 30)), "label" to _pS(_uM("fontSize" to 16, "color" to "#333333", "marginBottom" to 15)), "stars" to _pS(_uM("display" to "flex", "marginBottom" to 10)), "star" to _uM("" to _uM("marginRight" to 10, "fontSize" to 32, "color" to "#dddddd", "transitionProperty" to "color", "transitionDuration" to "0.2s"), ".active" to _uM("color" to "#ffca28")), "rating-text" to _pS(_uM("fontSize" to 14, "color" to "#666666")), "comment-section" to _pS(_uM("position" to "relative", "marginBottom" to 30)), "comment-input" to _pS(_uM("width" to "100%", "height" to 120, "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "fontSize" to 14, "boxSizing" to "border-box")), "word-count" to _pS(_uM("position" to "absolute", "bottom" to 10, "right" to 10, "fontSize" to 12, "color" to "#999999")), "submit-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "fontWeight" to "bold", "height" to 50, "lineHeight" to "50px")), "@TRANSITION" to _uM("star" to _uM("property" to "color", "duration" to "0.2s"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt deleted file mode 100644 index a06af072..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/refund.kt +++ /dev/null @@ -1,571 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerRefund : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerRefund) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerRefund - val _cache = __ins.renderCache - val activeTab = ref("all") - val refunds = ref(_uA()) - val tabCounts = ref(TabCountsType(processing = 0)) - val isLoading = ref(false) - val currentPage = ref(1) - val pageSize = ref(15) - val hasMore = ref(true) - val getCurrentUserId = fun(): String { - return supabaseService.getCurrentUserId() ?: "" - } - val resetData = fun(){ - refunds.value = _uA() - currentPage.value = 1 - hasMore.value = true - } - val loadRefunds = fun(loadMore: Boolean): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (isLoading.value || (!hasMore.value && loadMore)) { - return@w1 - } - isLoading.value = true - try { - val userId = getCurrentUserId() - if (userId == "") { - uni_navigateTo(NavigateToOptions(url = "/pages/user/login")) - return@w1 - } - val page = if (loadMore) { - currentPage.value + 1 - } else { - 1 - } - var statusList: UTSArray = _uA() - if (activeTab.value === "processing") { - statusList = _uA( - 1, - 2 - ) - } else if (activeTab.value === "completed") { - statusList = _uA( - 3, - 4, - 5 - ) - } - val rawData = await(supabaseService.getRefunds(statusList, page, pageSize.value)) - val newRefunds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < rawData.length){ - val item = rawData[i] as UTSJSONObject - val orderObjRaw = item.get("order") - val orderObj = if ((orderObjRaw != null)) { - (orderObjRaw as UTSJSONObject) - } else { - UTSJSONObject() - } - val dbItemsRaw = orderObj.get("ml_order_items") - val dbItems = if ((dbItemsRaw != null)) { - (dbItemsRaw as UTSArray) - } else { - _uA() - } - val uiItems: UTSArray = _uA() - run { - var j: Number = 0 - while(j < dbItems.length){ - val di = dbItems[j] as UTSJSONObject - val imgRaw = di.get("image_url") - val imgUrl = if ((imgRaw != null)) { - (imgRaw as String) - } else { - "/static/default-product.png" - } - val productInfo: RefundProductInfo = RefundProductInfo(images = _uA( - imgUrl - )) - val specRaw = di.get("specifications") - val specifications = if ((specRaw != null)) { - (specRaw as Any) - } else { - null - } - val orderItem: RefundOrderItem = RefundOrderItem(id = di.getString("id") ?: "", product_name = di.getString("product_name") ?: "", sku_specifications = specifications, price = 0, quantity = di.getNumber("quantity") ?: 1, product = productInfo) - uiItems.push(orderItem) - j++ - } - } - val statusHistoryRaw = item.get("status_history") - val statusHistory = if ((statusHistoryRaw != null)) { - (statusHistoryRaw as UTSArray) - } else { - _uA() - } - val refundItem: RefundType = RefundType(id = item.getString("id") ?: "", user_id = item.getString("user_id") ?: "", order_id = item.getString("order_id") ?: "", refund_no = item.getString("refund_no") ?: "", refund_type = item.getNumber("refund_type") ?: 1, refund_reason = item.getString("refund_reason") ?: "", refund_amount = item.getNumber("refund_amount") ?: 0, status = item.getNumber("status") ?: 1, status_history = statusHistory, created_at = item.getString("created_at") ?: "", order = RefundOrderInfo(id = item.getString("order_id") ?: "", order_no = orderObj.getString("order_no") ?: "", created_at = orderObj.getString("created_at") ?: "", order_items = uiItems)) - newRefunds.push(refundItem) - i++ - } - } - if (loadMore) { - refunds.value.push(*newRefunds.toTypedArray()) - currentPage.value = page - } else { - refunds.value = newRefunds - currentPage.value = 1 - } - hasMore.value = newRefunds.length === pageSize.value - } - catch (err: Throwable) { - console.error("加载售后记录异常:", err, " at pages/mall/consumer/refund.uvue:261") - } - finally { - isLoading.value = false - } - }) - } - val loadTabCounts = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val userId = getCurrentUserId() - if (userId == "") { - return@w1 - } - try { - val processingRefunds = await(supabaseService.getRefunds(_uA( - 1, - 2 - ), 1, 100)) - tabCounts.value.processing = processingRefunds.length - } - catch (err: Throwable) { - console.error("加载计数异常:", err, " at pages/mall/consumer/refund.uvue:275") - } - }) - } - watch(activeTab, fun(){ - resetData() - loadRefunds(false) - } - ) - onMounted(fun(){ - loadRefunds(false) - loadTabCounts() - } - ) - val getStatusText = fun(status: Number): String { - if (status === 1) { - return "待处理" - } - if (status === 2) { - return "处理中" - } - if (status === 3) { - return "已完成" - } - if (status === 4) { - return "已取消" - } - if (status === 5) { - return "已拒绝" - } - return "未知状态" - } - val getStatusClass = fun(status: Number): String { - if (status === 1) { - return "status-pending" - } - if (status === 2) { - return "status-processing" - } - if (status === 3) { - return "status-completed" - } - if (status === 4) { - return "status-cancelled" - } - if (status === 5) { - return "status-rejected" - } - return "status-unknown" - } - val getProductImage = fun(refund: RefundType): String { - val firstItem = refund.order?.order_items?.get(0) - if (firstItem?.product?.images == null || firstItem?.product?.images?.length == 0) { - return "/static/default-product.png" - } - return firstItem.product!!.images[0] - } - val getProductName = fun(refund: RefundType): String { - val items = refund.order?.order_items ?: _uA() - if (items.length === 0) { - return "未知商品" - } - if (items.length === 1) { - return items[0].product_name - } else { - return "" + items[0].product_name + "等" + items.length + "件商品" - } - } - val formatTime = fun(timeStr: String?): String { - if (timeStr == null || timeStr == "") { - return "" - } - val date = Date(timeStr) - val month = (date.getMonth() + 1).toString(10).padStart(2, "0") - val day = date.getDate().toString(10).padStart(2, "0") - return "" + month + "-" + day - } - val getCurrentStepIndex = fun(status: Number): Number { - if (status === 1) { - return 0 - } - if (status === 2) { - return 1 - } - if (status === 3) { - return 2 - } - if (status === 4) { - return 0 - } - if (status === 5) { - return 1 - } - return 0 - } - val getTimelineSteps = fun(refund: RefundType): UTSArray { - val steps = _uA( - TimelineStepType(status = 0, title = "提交申请", time = refund.created_at, active = false, completed = false, desc = ""), - TimelineStepType(status = 1, title = "商家处理", time = "", active = false, completed = false, desc = ""), - TimelineStepType(status = 3, title = "退款完成", time = "", active = false, completed = false, desc = "") - ) as UTSArray - if (refund.status_history != null) { - run { - var i: Number = 0 - while(i < refund.status_history!!.length){ - val history = refund.status_history!![i] - if (history.status === 1 || history.status === 2) { - steps[1].time = history.created_at ?: "" - steps[1].desc = history.remark ?: "" - } else if (history.status === 3) { - steps[2].time = history.created_at ?: "" - steps[2].desc = history.remark ?: "" - } - i++ - } - } - } - val currentStepIndex = getCurrentStepIndex(refund.status) - val result: UTSArray = _uA() - run { - var i: Number = 0 - while(i < steps.length){ - val step = steps[i] - result.push(TimelineStepType(status = step.status, title = step.title, time = step.time, desc = step.desc, active = i === currentStepIndex, completed = i < currentStepIndex)) - i++ - } - } - return result - } - val changeTab = fun(tab: String){ - activeTab.value = tab - } - val loadMore = fun(){ - if (hasMore.value && !isLoading.value) { - loadRefunds(true) - } - } - val viewOrder = fun(orderId: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/order-detail?id=" + orderId)) - } - val doCancelRefund = fun(refund: RefundType): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.createRefund(object : UTSJSONObject() { - var id = refund.id - var status: Number = 4 - } as Any)) - if (result.success) { - refund.status = 4 - loadTabCounts() - uni_showToast(ShowToastOptions(title = "已取消", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - } - catch (err: Throwable) { - console.error("取消退款失败:", err, " at pages/mall/consumer/refund.uvue:431") - uni_showToast(ShowToastOptions(title = "取消失败", icon = "none")) - } - }) - } - val cancelRefund = fun(refund: RefundType){ - uni_showModal(ShowModalOptions(title = "取消申请", content = "确定要取消这个退款申请吗?", success = fun(res){ - if (res.confirm) { - doCancelRefund(refund) - } - } - )) - } - val contactService = fun(refund: RefundType){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/service/chat?refundId=" + refund.id)) - } - val reviewRefund = fun(refund: RefundType){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/refund-review?id=" + refund.id)) - } - val doDeleteRefund = fun(refund: RefundType): UTSPromise { - return wrapUTSPromise(suspend { - try { - val result = await(supabaseService.deleteRefund(refund.id)) - if (result) { - val newRefunds: UTSArray = _uA() - run { - var i: Number = 0 - while(i < refunds.value.length){ - if (refunds.value[i].id !== refund.id) { - newRefunds.push(refunds.value[i]) - } - i++ - } - } - refunds.value = newRefunds - uni_showToast(ShowToastOptions(title = "删除成功", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - } - catch (err: Throwable) { - console.error("删除记录失败:", err, " at pages/mall/consumer/refund.uvue:489") - uni_showToast(ShowToastOptions(title = "删除失败", icon = "none")) - } - }) - } - val deleteRefund = fun(refund: RefundType){ - uni_showModal(ShowModalOptions(title = "删除记录", content = "确定要删除这个售后记录吗?", success = fun(res){ - if (res.confirm) { - doDeleteRefund(refund) - } - } - )) - } - val applyRefund = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/apply-refund")) - } - val goToOrders = fun(){ - uni_switchTab(SwitchTabOptions(url = "/pages/mall/consumer/orders")) - } - val goBack = fun(){ - uni_navigateBack(null) - } - return fun(): Any? { - return _cE("view", _uM("class" to "refund-page"), _uA( - _cE("view", _uM("class" to "refund-header"), _uA( - _cE("text", _uM("class" to "back-btn", "onClick" to goBack), "❮"), - _cE("text", _uM("class" to "header-title"), "退款/售后") - )), - _cE("view", _uM("class" to "refund-tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "refund-tab", - _uM("active" to (activeTab.value === "all")) - )), "onClick" to fun(){ - changeTab("all") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "全部") - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "refund-tab", - _uM("active" to (activeTab.value === "processing")) - )), "onClick" to fun(){ - changeTab("processing") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "处理中"), - if (tabCounts.value.processing > 0) { - _cE("text", _uM("key" to 0, "class" to "tab-badge"), _tD(tabCounts.value.processing), 1) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "refund-tab", - _uM("active" to (activeTab.value === "completed")) - )), "onClick" to fun(){ - changeTab("completed") - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "已完成") - ), 10, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("class" to "refund-content", "direction" to "vertical", "onScrolltolower" to loadMore), _uA( - if (isTrue(refunds.value.length === 0 && !isLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "empty-refunds"), _uA( - _cE("text", _uM("class" to "empty-icon"), "🔄"), - _cE("text", _uM("class" to "empty-text"), "暂无售后记录"), - _cE("text", _uM("class" to "empty-subtext"), "您可以在订单详情中申请售后"), - _cE("button", _uM("class" to "go-orders-btn", "onClick" to goToOrders), "查看订单") - )) - } else { - _cC("v-if", true) - } - , - _cE(Fragment, null, RenderHelpers.renderList(refunds.value, fun(refund, __key, __index, _cached): Any { - return _cE("view", _uM("key" to refund.id, "class" to "refund-item"), _uA( - _cE("view", _uM("class" to "refund-header"), _uA( - _cE("text", _uM("class" to "refund-no"), "售后单号: " + _tD(refund.refund_no), 1), - _cE("text", _uM("class" to _nC(_uA( - "refund-status", - getStatusClass(refund.status) - ))), _tD(getStatusText(refund.status)), 3) - )), - _cE("view", _uM("class" to "order-info"), _uA( - _cE("text", _uM("class" to "order-no"), "订单号: " + _tD(refund.order?.order_no), 1), - _cE("text", _uM("class" to "order-time"), _tD(formatTime(refund.order?.created_at)), 1) - )), - _cE("view", _uM("class" to "product-info", "onClick" to fun(){ - viewOrder(refund.order_id) - } - ), _uA( - _cE("image", _uM("class" to "product-image", "src" to getProductImage(refund)), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-details"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(getProductName(refund)), 1), - if (isTrue(refund.refund_reason)) { - _cE("text", _uM("key" to 0, "class" to "refund-reason"), "原因: " + _tD(refund.refund_reason), 1) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "refund-amount"), _uA( - _cE("text", _uM("class" to "amount-label"), "退款金额:"), - _cE("text", _uM("class" to "amount-value"), "¥" + _tD(refund.refund_amount), 1) - )) - )) - ), 8, _uA( - "onClick" - )), - if (isTrue(refund.status_history != null && refund.status_history!!.length > 0)) { - _cE("view", _uM("key" to 0, "class" to "timeline"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(getTimelineSteps(refund), fun(step, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "timeline-step"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "step-dot", - _uM("active" to step.active, "completed" to step.completed) - ))), null, 2), - _cE("view", _uM("class" to "step-info"), _uA( - _cE("text", _uM("class" to "step-title"), _tD(step.title), 1), - _cE("text", _uM("class" to "step-time"), _tD(step.time), 1), - if (isTrue(step.desc)) { - _cE("text", _uM("key" to 0, "class" to "step-desc"), _tD(step.desc), 1) - } else { - _cC("v-if", true) - } - )) - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (refund.status === 1) { - _cE("view", _uM("key" to 1, "class" to "refund-actions"), _uA( - _cE("button", _uM("class" to "action-btn cancel", "onClick" to fun(){ - cancelRefund(refund) - }), "取消申请", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn contact", "onClick" to fun(){ - contactService(refund) - }), "联系客服", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - , - if (refund.status === 3) { - _cE("view", _uM("key" to 2, "class" to "refund-actions"), _uA( - _cE("button", _uM("class" to "action-btn review", "onClick" to fun(){ - reviewRefund(refund) - }), "评价服务", 8, _uA( - "onClick" - )), - _cE("button", _uM("class" to "action-btn delete", "onClick" to fun(){ - deleteRefund(refund) - }), "删除记录", 8, _uA( - "onClick" - )) - )) - } else { - _cC("v-if", true) - } - )) - } - ), 128), - if (isTrue(isLoading.value)) { - _cE("view", _uM("key" to 1, "class" to "loading-more"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!hasMore.value && refunds.value.length > 0)) { - _cE("view", _uM("key" to 2, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "没有更多了") - )) - } else { - _cC("v-if", true) - } - ), 32), - _cE("view", _uM("class" to "apply-btn-container"), _uA( - _cE("button", _uM("class" to "apply-btn", "onClick" to applyRefund), "申请售后") - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("refund-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "refund-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "justifyContent" to "space-between", "marginBottom" to 10)), "back-btn" to _pS(_uM("fontSize" to 20, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "refund-tabs" to _pS(_uM("backgroundColor" to "#ffffff", "display" to "flex", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "refund-tab" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "textAlign" to "center", "position" to "relative"), ".active" to _uM("color" to "#007aff", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "#007aff")), "tab-text" to _uM("" to _uM("fontSize" to 16, "color" to "#666666"), ".refund-tab.active " to _uM("color" to "#007aff", "fontWeight" to "bold")), "tab-badge" to _pS(_uM("position" to "absolute", "top" to 10, "right" to 20, "backgroundColor" to "#ff4757", "color" to "#ffffff", "fontSize" to 10, "paddingTop" to 2, "paddingRight" to 5, "paddingBottom" to 2, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "minWidth" to 16, "textAlign" to "center")), "refund-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "empty-refunds" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 80, "paddingRight" to 20, "paddingBottom" to 80, "paddingLeft" to 20, "backgroundColor" to "#ffffff")), "empty-icon" to _pS(_uM("fontSize" to 80, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginBottom" to 30)), "go-orders-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "paddingTop" to 10, "paddingRight" to 40, "paddingBottom" to 10, "paddingLeft" to 40, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 14, "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000")), "refund-item" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "refund-no" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "refund-status" to _pS(_uM("fontSize" to 14, "paddingTop" to 4, "paddingRight" to 10, "paddingBottom" to 4, "paddingLeft" to 10, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "color" to "#ffffff")), "status-pending" to _pS(_uM("backgroundColor" to "#ff5000")), "status-processing" to _pS(_uM("backgroundColor" to "#2196f3")), "status-completed" to _pS(_uM("backgroundColor" to "#4caf50")), "status-cancelled" to _pS(_uM("backgroundColor" to "#9e9e9e")), "status-rejected" to _pS(_uM("backgroundColor" to "#f44336")), "order-info" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 15, "paddingBottom" to 10, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "order-no" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "product-info" to _pS(_uM("display" to "flex", "marginBottom" to 15)), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "marginRight" to 15)), "product-details" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5)), "refund-reason" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginBottom" to 8)), "refund-amount" to _pS(_uM("display" to "flex", "alignItems" to "flex-end")), "amount-label" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginRight" to 5)), "amount-value" to _pS(_uM("fontSize" to 16, "color" to "#ff4757", "fontWeight" to "bold")), "timeline" to _pS(_uM("paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "timeline-step" to _pS(_uM("display" to "flex", "marginBottom" to 15, "marginBottom:last-child" to 0)), "step-dot" to _uM("" to _uM("width" to 12, "height" to 12, "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "marginRight" to 15, "position" to "relative", "top" to 3), ".active" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "backgroundColor" to "#007aff"), ".completed" to _uM("borderTopColor" to "#4caf50", "borderRightColor" to "#4caf50", "borderBottomColor" to "#4caf50", "borderLeftColor" to "#4caf50", "backgroundColor" to "#4caf50")), "step-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "step-title" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 3)), "step-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to 3)), "step-desc" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "refund-actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#f5f5f5")), "action-btn" to _uM("" to _uM("marginLeft" to 10, "paddingTop" to 6, "paddingRight" to 15, "paddingBottom" to 6, "paddingLeft" to 15, "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "fontSize" to 12, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#ffffff"), ".cancel" to _uM("borderTopColor" to "#666666", "borderRightColor" to "#666666", "borderBottomColor" to "#666666", "borderLeftColor" to "#666666", "color" to "#666666"), ".contact" to _uM("borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff", "color" to "#007aff"), ".review" to _uM("borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "color" to "#ff5000"), ".delete" to _uM("borderTopColor" to "#f44336", "borderRightColor" to "#f44336", "borderBottomColor" to "#f44336", "borderLeftColor" to "#f44336", "color" to "#f44336")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center", "backgroundColor" to "#ffffff")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "apply-btn-container" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5")), "apply-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "height" to 50, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/review.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/review.kt deleted file mode 100644 index 9f209048..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/review.kt +++ /dev/null @@ -1,571 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerReview : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerReview) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerReview - val _cache = __ins.renderCache - val orderId = ref("") - val order = ref(null) - val orderItems = ref(_uA()) - val merchant = ref(null) - val ratings = ref(_uA()) - val contents = ref(_uA()) - val images = ref(_uA>()) - val anonymous = ref(false) - val merchantRating = ref(MerchantRatingType(description = 5, logistics = 5, service = 5)) - val isSubmitting = ref(false) - val loadOrderData = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - try { - console.log("[loadOrderData] 开始加载订单数据, orderId:", orderId.value, " at pages/mall/consumer/review.uvue:200") - val orderDetailRaw = await(supabaseService.getOrderDetail(orderId.value)) - console.log("[loadOrderData] orderDetailRaw:", JSON.stringify(orderDetailRaw), " at pages/mall/consumer/review.uvue:204") - if (orderDetailRaw == null) { - console.error("加载订单失败: 未找到订单", " at pages/mall/consumer/review.uvue:207") - uni_showToast(ShowToastOptions(title = "订单不存在", icon = "none")) - return@w1 - } - val orderDetail = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(orderDetailRaw)), " at pages/mall/consumer/review.uvue:213") as UTSJSONObject - order.value = OrderType__1(id = orderDetail.getString("id") ?: "", order_no = orderDetail.getString("order_no") ?: "", created_at = orderDetail.getString("created_at") ?: "", merchant_id = orderDetail.getString("merchant_id") ?: "") - val itemsRaw = orderDetail.get("ml_order_items") - console.log("[loadOrderData] itemsRaw:", JSON.stringify(itemsRaw), " at pages/mall/consumer/review.uvue:225") - if (itemsRaw != null) { - val itemsList = itemsRaw as UTSArray - val processedItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < itemsList.length){ - val itemStr = JSON.stringify(itemsList[i]) - val item = UTSAndroid.consoleDebugError(JSON.parse(itemStr), " at pages/mall/consumer/review.uvue:233") as UTSJSONObject - val skuSpec = item.get("sku_specifications") - processedItems.push(OrderItemType__2(id = (item.getNumber("id") ?: 0) as Number, order_id = (item.getNumber("order_id") ?: 0) as Number, product_id = (item.getNumber("product_id") ?: 0) as Number, product_name = item.getString("product_name") ?: "", price = (item.getNumber("price") ?: 0) as Number, quantity = (item.getNumber("quantity") ?: 1) as Number, sku_specifications = skuSpec, product_image = item.getString("product_image") ?: item.getString("image_url") ?: "/static/default-product.png")) - i++ - } - } - orderItems.value = processedItems - console.log("[loadOrderData] processedItems count:", processedItems.length, " at pages/mall/consumer/review.uvue:248") - } - val count = orderItems.value.length - val newRatings: UTSArray = _uA() - val newContents: UTSArray = _uA() - val newImages: UTSArray> = _uA() - run { - var i: Number = 0 - while(i < count){ - newRatings.push(5) - newContents.push("") - newImages.push(_uA()) - i++ - } - } - ratings.value = newRatings - contents.value = newContents - images.value = newImages - val orderObj = order.value!! - if (orderObj != null) { - val merchantId = orderObj.merchant_id - if (merchantId != "") { - val shopInfo = await(supabaseService.getShopByMerchantId(merchantId)) - if (shopInfo != null) { - merchant.value = MerchantType__1(id = shopInfo.id, shop_name = shopInfo.shop_name, rating = shopInfo.rating_avg ?: 5) - } - } - } - } - catch (err: Throwable) { - console.error("加载订单数据异常:", err, " at pages/mall/consumer/review.uvue:282") - uni_showToast(ShowToastOptions(title = "加载失败", icon = "none")) - } - }) - } - val canSubmit = computed(fun(): Boolean { - if (ratings.value.length === 0) { - return false - } - run { - var i: Number = 0 - while(i < ratings.value.length){ - if (ratings.value[i] <= 0) { - return false - } - i++ - } - } - return true - } - ) - onLoad__1(fun(options: Any){ - if (options != null) { - val optObj = options as UTSJSONObject - orderId.value = optObj.getString("orderId") ?: "" - if (orderId.value != "") { - loadOrderData() - } - } - } - ) - val formatTime = fun(timeStr: String?): String { - if (timeStr == null) { - return "" - } - val date = Date(timeStr) - val year = date.getFullYear() - val month = (date.getMonth() + 1).toString(10).padStart(2, "0") - val day = date.getDate().toString(10).padStart(2, "0") - return "" + year + "-" + month + "-" + day - } - val getSpecText = fun(specs: Any?): String { - if (specs == null) { - return "" - } - if (UTSAndroid.`typeof`(specs) === "string") { - return specs as String - } - try { - val specObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(specs)), " at pages/mall/consumer/review.uvue:318") as UTSJSONObject - val jsonStr = JSON.stringify(specObj) - if (jsonStr == "{}" || jsonStr == "null") { - return "" - } - val cleanStr = jsonStr.replace(UTSRegExp("^\\{|\\}\$", "g"), "").replace(UTSRegExp("\"", "g"), "").replace(UTSRegExp(":", "g"), ": ").replace(UTSRegExp(",", "g"), "; ") - return cleanStr - } - catch (e: Throwable) { - return "" - } - } - val getRatingText = fun(rating: Number): String { - if (rating === 1) { - return "非常差" - } - if (rating === 2) { - return "差" - } - if (rating === 3) { - return "一般" - } - if (rating === 4) { - return "好" - } - if (rating === 5) { - return "非常好" - } - return "未评价" - } - val setRating = fun(index: Number, rating: Number){ - ratings.value[index] = rating - val newRatings: UTSArray = _uA() - run { - var i: Number = 0 - while(i < ratings.value.length){ - newRatings.push(ratings.value[i]) - i++ - } - } - ratings.value = newRatings - } - val setMerchantRating = fun(type: String, rating: Number){ - if (type === "description") { - merchantRating.value.description = rating - } else if (type === "logistics") { - merchantRating.value.logistics = rating - } else if (type === "service") { - merchantRating.value.service = rating - } - } - val toggleAnonymous = fun(event: Any){ - val eventObj = event as UTSJSONObject - val detailRaw = eventObj.get("detail") - val detail = if (detailRaw != null) { - (detailRaw as UTSJSONObject) - } else { - UTSJSONObject() - } - val valueRaw = detail.get("value") - anonymous.value = if (valueRaw != null) { - (valueRaw as Boolean) - } else { - false - } - } - val uploadImage = fun(index: Number): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (images.value[index].length >= 9) { - uni_showToast(ShowToastOptions(title = "最多上传9张图片", icon = "none")) - return@w1 - } - uni_chooseImage(ChooseImageOptions(count = 9 - images.value[index].length, sizeType = _uA( - "compressed" - ), sourceType = _uA( - "album", - "camera" - ), success = fun(res){ - val resObj = res as UTSJSONObject - val tempFilesRaw = resObj.get("tempFilePaths") - val tempFiles = if (tempFilesRaw != null) { - (tempFilesRaw as UTSArray) - } else { - _uA() - } - uni_showLoading(ShowLoadingOptions(title = "上传中...")) - setTimeout(fun(){ - run { - var i: Number = 0 - while(i < tempFiles.length){ - images.value[index].push(tempFiles[i]) - i++ - } - } - val newImages: UTSArray> = _uA() - run { - var i: Number = 0 - while(i < images.value.length){ - val innerArray: UTSArray = _uA() - run { - var j: Number = 0 - while(j < images.value[i].length){ - innerArray.push(images.value[i][j]) - j++ - } - } - newImages.push(innerArray) - i++ - } - } - images.value = newImages - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "上传成功", icon = "success")) - } - , 1000) - } - )) - }) - } - val deleteImage = fun(index: Number, imgIndex: Number){ - images.value[index].splice(imgIndex, 1) - val newImages: UTSArray> = _uA() - run { - var i: Number = 0 - while(i < images.value.length){ - val innerArray: UTSArray = _uA() - run { - var j: Number = 0 - while(j < images.value[i].length){ - innerArray.push(images.value[i][j]) - j++ - } - } - newImages.push(innerArray) - i++ - } - } - images.value = newImages - } - val getCurrentUserId = fun(): String { - val userStore = uni_getStorageSync("userInfo") - if (userStore == null) { - return "" - } - val userInfo = userStore as UTSJSONObject - return userInfo.getString("id") ?: "" - } - val submitReview = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (canSubmit.value === false || isSubmitting.value) { - return@w1 - } - isSubmitting.value = true - try { - val userId = getCurrentUserId() - if (userId == "") { - uni_showToast(ShowToastOptions(title = "用户信息错误", icon = "none")) - return@w1 - } - val productReviews: UTSArray = _uA() - run { - var index: Number = 0 - while(index < orderItems.value.length){ - val item = orderItems.value[index] - val reviewObj: UTSJSONObject = UTSJSONObject(UTSSourceMapPosition("reviewObj", "pages/mall/consumer/review.uvue", 469, 10)) - reviewObj.set("user_id", userId) - reviewObj.set("product_id", item.product_id) - reviewObj.set("order_id", orderId.value) - reviewObj.set("rating", ratings.value[index]) - reviewObj.set("content", if (contents.value[index] != "") { - contents.value[index] - } else { - "" - } - ) - reviewObj.set("images", images.value[index]) - reviewObj.set("is_anonymous", anonymous.value) - productReviews.push(reviewObj) - index++ - } - } - val reviewsSuccess = await(supabaseService.submitProductReviews(productReviews)) - if (reviewsSuccess == false) { - uni_showToast(ShowToastOptions(title = "提交失败", icon = "none")) - isSubmitting.value = false - return@w1 - } - if (merchant.value != null) { - val merchantReviewObj: UTSJSONObject = UTSJSONObject(UTSSourceMapPosition("merchantReviewObj", "pages/mall/consumer/review.uvue", 499, 10)) - merchantReviewObj.set("user_id", userId) - merchantReviewObj.set("shop_id", merchant.value!!.id) - merchantReviewObj.set("order_id", orderId.value) - merchantReviewObj.set("description_rating", merchantRating.value.description) - merchantReviewObj.set("logistics_rating", merchantRating.value.logistics) - merchantReviewObj.set("service_rating", merchantRating.value.service) - await(supabaseService.submitShopReview(merchantReviewObj)) - } - await(supabaseService.updateOrderStatus(orderId.value, 4)) - uni_showToast(ShowToastOptions(title = "评价成功", icon = "success", duration = 2000)) - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - } - catch (err: Throwable) { - console.error("提交评价失败:", err, " at pages/mall/consumer/review.uvue:524") - uni_showToast(ShowToastOptions(title = "提交失败", icon = "none")) - } - finally { - isSubmitting.value = false - } - }) - } - val goBack = fun(): Unit { - uni_navigateBack(null) - } - return fun(): Any? { - val _component_switch = resolveComponent("switch") - return _cE("view", _uM("class" to "review-page"), _uA( - _cE("view", _uM("class" to "review-header"), _uA( - _cE("view", _uM("class" to "header-back", "onClick" to goBack), _uA( - _cE("image", _uM("class" to "back-icon", "src" to "/static/icons/back.png", "mode" to "aspectFit")) - )), - _cE("view", _uM("class" to "header-title-placeholder")), - _cE("view", _uM("class" to "header-right")) - )), - _cE("scroll-view", _uM("class" to "review-content", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "order-section"), _uA( - _cE("text", _uM("class" to "order-no"), "订单号: " + _tD(if (order.value != null) { - order.value!!.order_no - } else { - "" - } - ), 1), - _cE("text", _uM("class" to "order-time"), "下单时间: " + _tD(formatTime(if (order.value != null) { - order.value!!.created_at - } else { - "" - } - )), 1) - )), - _cE("view", _uM("class" to "products-section"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(orderItems.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "product-review"), _uA( - _cE("view", _uM("class" to "product-header"), _uA( - _cE("image", _uM("class" to "product-image", "src" to (item.product_image ?: "/static/default-product.png")), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(item.product_name), 1), - if (item.sku_specifications != null) { - _cE("text", _uM("key" to 0, "class" to "product-spec"), _tD(getSpecText(item.sku_specifications)), 1) - } else { - _cC("v-if", true) - } - )) - )), - _cE("view", _uM("class" to "rating-section"), _uA( - _cE("text", _uM("class" to "rating-label"), "评分"), - _cE("view", _uM("class" to "rating-stars"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star-icon", - _uM("active" to (star <= ratings.value[index])) - )), "onClick" to fun(){ - setRating(index, star) - } - ), " ⭐ ", 10, _uA( - "onClick" - )) - } - ), 64) - )), - _cE("text", _uM("class" to "rating-text"), _tD(getRatingText(ratings.value[index])), 1) - )), - _cE("view", _uM("class" to "content-section"), _uA( - _cE("textarea", _uM("class" to "review-textarea", "modelValue" to contents.value[index], "onInput" to fun(`$event`: UniInputEvent){ - contents.value[index] = `$event`.detail.value - } - , "placeholder" to "请写下您的使用感受,分享给其他小伙伴吧", "maxlength" to "500"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "word-count"), _tD(contents.value[index]?.length ?: 0) + "/500", 1) - )), - _cE("view", _uM("class" to "images-section"), _uA( - _cE("text", _uM("class" to "images-label"), "上传图片(可选)"), - _cE("view", _uM("class" to "images-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(images.value[index], fun(image, imgIndex, __index, _cached): Any { - return _cE("view", _uM("key" to imgIndex, "class" to "image-item"), _uA( - _cE("image", _uM("class" to "uploaded-image", "src" to image), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "delete-image", "onClick" to fun(){ - deleteImage(index, imgIndex) - } - ), "×", 8, _uA( - "onClick" - )) - )) - } - ), 128), - if (images.value[index].length < 9) { - _cE("view", _uM("key" to 0, "class" to "upload-btn", "onClick" to fun(){ - uploadImage(index) - }), _uA( - _cE("text", _uM("class" to "upload-icon"), "+"), - _cE("text", _uM("class" to "upload-text"), "添加图片") - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - )), - _cE("view", _uM("class" to "anonymous-section"), _uA( - _cE("view", _uM("class" to "anonymous-switch"), _uA( - _cE("text", _uM("class" to "switch-label"), "匿名评价"), - _cV(_component_switch, _uM("checked" to anonymous.value, "onChange" to toggleAnonymous), null, 8, _uA( - "checked" - )) - )), - _cE("text", _uM("class" to "anonymous-tip"), "评价内容对其他用户不可见") - )) - )) - } - ), 128) - )), - if (isTrue(merchant.value)) { - _cE("view", _uM("key" to 0, "class" to "merchant-section"), _uA( - _cE("text", _uM("class" to "section-title"), "店铺评价"), - _cE("view", _uM("class" to "merchant-rating"), _uA( - _cE("text", _uM("class" to "rating-item"), "商品描述相符"), - _cE("view", _uM("class" to "rating-stars small"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star-icon", - _uM("active" to (star <= merchantRating.value.description)) - )), "onClick" to fun(){ - setMerchantRating("description", star) - }), " ⭐ ", 10, _uA( - "onClick" - )) - }), 64) - )) - )), - _cE("view", _uM("class" to "merchant-rating"), _uA( - _cE("text", _uM("class" to "rating-item"), "物流服务"), - _cE("view", _uM("class" to "rating-stars small"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star-icon", - _uM("active" to (star <= merchantRating.value.logistics)) - )), "onClick" to fun(){ - setMerchantRating("logistics", star) - }), " ⭐ ", 10, _uA( - "onClick" - )) - }), 64) - )) - )), - _cE("view", _uM("class" to "merchant-rating"), _uA( - _cE("text", _uM("class" to "rating-item"), "服务态度"), - _cE("view", _uM("class" to "rating-stars small"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(5, fun(star, __key, __index, _cached): Any { - return _cE("text", _uM("key" to star, "class" to _nC(_uA( - "star-icon", - _uM("active" to (star <= merchantRating.value.service)) - )), "onClick" to fun(){ - setMerchantRating("service", star) - }), " ⭐ ", 10, _uA( - "onClick" - )) - }), 64) - )) - )) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "tips-section"), _uA( - _cE("text", _uM("class" to "tip-title"), "评价须知"), - _cE("text", _uM("class" to "tip-item"), "1. 评价后不可修改,请谨慎评价"), - _cE("text", _uM("class" to "tip-item"), "2. 上传图片需为真实商品照片"), - _cE("text", _uM("class" to "tip-item"), "3. 恶意评价将被删除并限制评价功能"), - _cE("text", _uM("class" to "tip-item"), "4. 优质评价可获得积分奖励") - )) - )), - _cE("view", _uM("class" to "submit-section"), _uA( - _cE("button", _uM("class" to _nC(_uA( - "submit-btn", - _uM("disabled" to (canSubmit.value === false || isSubmitting.value)) - )), "onClick" to submitReview), _uA( - if (isSubmitting.value === false) { - _cE("text", _uM("key" to 0, "class" to "submit-text"), "提交评价") - } else { - _cE("text", _uM("key" to 1, "class" to "submit-text"), "提交中...") - } - ), 2) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("review-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "review-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "height" to 44, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0", "position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "zIndex" to 100)), "header-back" to _pS(_uM("width" to 44, "height" to 44, "display" to "flex", "alignItems" to "center", "justifyContent" to "flex-start")), "back-icon" to _pS(_uM("width" to 20, "height" to 20)), "header-title-placeholder" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-right" to _pS(_uM("width" to 44)), "review-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "order-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 10, "display" to "flex", "justifyContent" to "space-between", "alignItems" to "center")), "order-no" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "order-time" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "products-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10)), "product-review" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "product-header" to _pS(_uM("display" to "flex", "marginBottom" to 20)), "product-image" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "marginRight" to 15)), "product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4, "marginBottom" to 5)), "product-spec" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "rating-section" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 20, "paddingTop" to 5, "paddingRight" to 0, "paddingBottom" to 5, "paddingLeft" to 0)), "rating-label" to _pS(_uM("fontSize" to 15, "color" to "#333333", "fontWeight" to "bold", "marginRight" to 20)), "rating-stars" to _uM("" to _uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginRight" to 15), ".merchant-rating .small" to _uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "star-icon" to _uM("" to _uM("fontSize" to 26, "marginRight" to 8, "color" to "#e0e0e0", "transitionProperty" to "transform", "transitionDuration" to "0.1s", "transitionTimingFunction" to "ease"), ".active" to _uM("color" to "#ff5000", "transform" to "scale(1.1)"), ".merchant-rating .rating-stars.small " to _uM("fontSize" to 20, "marginRight" to 5, "color" to "#e0e0e0"), ".merchant-rating .rating-stars.small .active" to _uM("color" to "#ff5000")), "rating-text" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginLeft" to 5)), "content-section" to _pS(_uM("marginBottom" to 15)), "review-textarea" to _pS(_uM("width" to "100%", "minHeight" to 80, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "fontSize" to 14, "color" to "#333333", "lineHeight" to 1.4)), "word-count" to _pS(_uM("textAlign" to "right", "fontSize" to 12, "color" to "#999999", "marginTop" to 5)), "images-section" to _pS(_uM("marginBottom" to 15)), "images-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 10)), "images-grid" to _pS(_uM("display" to "flex", "flexWrap" to "wrap")), "image-item" to _pS(_uM("marginRight" to 10, "marginBottom" to 10, "width" to 70, "height" to 70, "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "overflow" to "hidden", "position" to "relative")), "uploaded-image" to _pS(_uM("width" to "100%", "height" to "100%")), "delete-image" to _pS(_uM("position" to "absolute", "top" to 2, "right" to 2, "width" to 16, "height" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor" to "rgba(0,0,0,0.5)", "color" to "#ffffff", "fontSize" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "upload-btn" to _pS(_uM("width" to 70, "height" to 70, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "dashed", "borderRightStyle" to "dashed", "borderBottomStyle" to "dashed", "borderLeftStyle" to "dashed", "borderTopColor" to "#cccccc", "borderRightColor" to "#cccccc", "borderBottomColor" to "#cccccc", "borderLeftColor" to "#cccccc", "borderTopLeftRadius" to 5, "borderTopRightRadius" to 5, "borderBottomRightRadius" to 5, "borderBottomLeftRadius" to 5, "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center")), "upload-icon" to _pS(_uM("fontSize" to 24, "color" to "#999999", "marginBottom" to 5)), "upload-text" to _pS(_uM("fontSize" to 10, "color" to "#999999")), "anonymous-section" to _pS(_uM("marginBottom" to 15)), "anonymous-switch" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 5)), "switch-label" to _pS(_uM("fontSize" to 14)), "anonymous-tip" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "merchant-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "marginTop" to 15, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 20, "paddingLeft" to 10, "borderLeftWidth" to 4, "borderLeftStyle" to "solid", "borderLeftColor" to "#ff5000")), "merchant-rating" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 20, "paddingTop" to 0, "paddingRight" to 5, "paddingBottom" to 0, "paddingLeft" to 5)), "rating-item" to _pS(_uM("fontSize" to 14, "color" to "#666666", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "tips-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "marginBottom" to 10)), "tip-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 10)), "tip-item" to _pS(_uM("fontSize" to 12, "color" to "#666666", "lineHeight" to 1.6, "marginBottom" to 5)), "submit-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#e5e5e5")), "submit-btn" to _uM("" to _uM("backgroundColor" to "#007aff", "color" to "#ffffff", "height" to 50, "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000"), ".disabled" to _uM("backgroundColor" to "#cccccc", "opacity" to 0.6)), "@TRANSITION" to _uM("star-icon" to _uM("property" to "transform", "duration" to "0.1s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt deleted file mode 100644 index 73104e08..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/search.kt +++ /dev/null @@ -1,933 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onPageScroll -import io.dcloud.uniapp.framework.onReachBottom as onReachBottom__1 -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerSearch : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerSearch) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerSearch - val _cache = __ins.renderCache - val statusBarHeight = ref(0) - val scrollHeight = ref(0) - val searchKeyword = ref("") - val showResults = ref(false) - val loading = ref(false) - val hasMore = ref(true) - val isError = ref(false) - val autoFocus = ref(true) - val activeSort = ref("default") - val priceSortAsc = ref(false) - val searchHistory = ref(_uA()) - val hotSearchList = ref(_uA()) - val guessList = ref(_uA()) - val allGuessItems = ref(_uA()) - val searchResults = ref(_uA()) - val searchShopResults = ref(_uA()) - val loadSearchHistory = fun(){ - val history = uni_getStorageSync("searchHistory") - if (history != null) { - try { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(history as String), " at pages/mall/consumer/search.uvue:302") - if (UTSArray.isArray(parsed)) { - searchHistory.value = parsed as UTSArray - } - } - catch (e: Throwable) { - searchHistory.value = _uA() - } - } - } - val saveSearchHistory = fun(){ - uni_setStorageSync("searchHistory", JSON.stringify(searchHistory.value)) - } - val addToHistory = fun(keyword: String){ - if (keyword == "") { - return - } - val index = searchHistory.value.indexOf(keyword) - if (index > -1) { - searchHistory.value.splice(index, 1) - } - searchHistory.value.unshift(keyword) - if (searchHistory.value.length > 10) { - searchHistory.value.pop() - } - saveSearchHistory() - } - val clearHistory = fun(){ - uni_showModal(ShowModalOptions(title = "提示", content = "确定清空搜索历史吗?", success = fun(res){ - if (res.confirm) { - searchHistory.value = _uA() - uni_removeStorageSync("searchHistory") - } - } - )) - } - val deleteHistoryItem = fun(index: Number){ - searchHistory.value.splice(index, 1) - saveSearchHistory() - } - val refreshGuessListItems = fun(){ - if (allGuessItems.value.length > 0) { - val arr: UTSArray = _uA() - run { - var i: Number = 0 - while(i < allGuessItems.value.length){ - arr.push(allGuessItems.value[i]) - i++ - } - } - run { - var i: Number = arr.length - 1 - while(i > 0){ - val j = Math.floor(Math.random() * (i + 1)) - val temp = arr[i] - arr[i] = arr[j] - arr[j] = temp - i-- - } - } - val result: UTSArray = _uA() - val limit = if (arr.length < 6) { - arr.length - } else { - 6 - } - run { - var i: Number = 0 - while(i < limit){ - result.push(arr[i]) - i++ - } - } - guessList.value = result - } - } - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - isError.value = false - try { - loadSearchHistory() - var hotProducts: UTSArray = _uA() - try { - val hotResult = await(supabaseService.getHotProducts(30)) - hotProducts = hotResult as UTSArray - } - catch (hotError: Throwable) { - console.error("获取热销商品失败,使用空列表:", hotError, " at pages/mall/consumer/search.uvue:378") - hotProducts = _uA() - } - val hotList: UTSArray = _uA() - val limit1 = if (hotProducts.length < 10) { - hotProducts.length - } else { - 10 - } - run { - var i: Number = 0 - while(i < limit1){ - val p = hotProducts[i] - val item = HotSearchItemType(keyword = p.name ?: "", hot = true) - hotList.push(item) - i++ - } - } - hotSearchList.value = hotList - val allItems: UTSArray = _uA() - run { - var i: Number = 0 - while(i < hotProducts.length){ - val p = hotProducts[i] - val saleCount = p.sale_count - val item = GuessItemType(id = p.id ?: "", name = p.name ?: "", price = p.base_price ?: 0, image = p.main_image_url ?: "/static/default.jpg", sales = if (saleCount != null) { - saleCount - } else { - 0 - } - , merchant_id = p.merchant_id ?: "") - allItems.push(item) - i++ - } - } - allGuessItems.value = allItems - refreshGuessListItems() - } - catch (e: Throwable) { - console.error("Load data failed", e, " at pages/mall/consumer/search.uvue:413") - isError.value = false - } - }) - } - val retryLoad = fun(){ - uni_showLoading(ShowLoadingOptions(title = "重新加载中")) - setTimeout(fun(){ - uni_hideLoading() - loadData() - } - , 1000) - } - val searchSuggestions = ref(_uA()) - var suggestTimer: Number = 0 - val fetchSuggestions = fun(kw: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (kw == "" || showResults.value) { - return@w1 - } - try { - val res = await(supabaseService.searchProducts(kw.trim(), 1, 5)) - if (res.data != null && res.data.length > 0) { - val names: UTSArray = _uA() - run { - var i: Number = 0 - while(i < res.data.length){ - val p = res.data[i] - var name = "" - if (p is UTSJSONObject) { - name = p.getString("name") ?: "" - } else { - val pObj = p as UTSJSONObject - name = pObj.getString("name") ?: "" - } - var found = false - run { - var j: Number = 0 - while(j < names.length){ - if (names[j] === name) { - found = true - break - } - j++ - } - } - if (found === false && name !== "") { - names.push(name) - } - i++ - } - } - searchSuggestions.value = names - } else { - searchSuggestions.value = _uA() - } - } - catch (e: Throwable) { - searchSuggestions.value = _uA() - } - }) - } - val currentPage = ref(1) - val performSearch = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - showResults.value = true - loading.value = true - currentPage.value = 1 - val keyword = searchKeyword.value.trim() - if (keyword == "") { - loading.value = false - return@w1 - } - console.log("Search execution started for keyword:", keyword, " at pages/mall/consumer/search.uvue:479") - var sortBy = "sales" - var ascending = false - if (activeSort.value === "price") { - sortBy = "price" - ascending = priceSortAsc.value - } else if (activeSort.value === "default") { - sortBy = "default" - } - try { - console.log("Calling searchProducts with params:", keyword, currentPage.value, sortBy, ascending, " at pages/mall/consumer/search.uvue:491") - val prodResp = await(supabaseService.searchProducts(keyword, currentPage.value, 20, sortBy, ascending)) - console.log("searchProducts response received:", if (prodResp.data != null) { - prodResp.data.length - } else { - 0 - } - , "items", " at pages/mall/consumer/search.uvue:493") - var shopList: UTSArray = _uA() - if (currentPage.value === 1 && activeSort.value === "default") { - val shopResp = await(supabaseService.searchShops(keyword)) - if (shopResp.data != null && shopResp.data.length > 0) { - run { - var i: Number = 0 - while(i < shopResp.data.length){ - val s = shopResp.data[i] - val shopItem = ShopResultType(id = s.id ?: "", name = s.shop_name ?: "", logo = s.shop_logo ?: "/static/shop_logo_default.png", productCount = s.product_count ?: 0) - shopList.push(shopItem) - i++ - } - } - } - } - searchShopResults.value = shopList - val prodData = if (prodResp.data != null) { - prodResp.data - } else { - _uA() - } - val resultList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < prodData.length){ - val p = prodData[i] as Product - var tag = "" - val tagsRaw = p.tags - if (tagsRaw != null) { - try { - val tagsStr = p.tags - if (tagsStr != null) { - val tags = UTSAndroid.consoleDebugError(JSON.parse(tagsStr as String), " at pages/mall/consumer/search.uvue:523") - if (UTSArray.isArray(tags) && (tags as UTSArray).length > 0) { - val firstTag = (tags as UTSArray)[0] - tag = if (firstTag != null) { - (firstTag as String) - } else { - "" - } - } - } - } - catch (e: Throwable) {} - } - val searchItem = SearchResultType(id = p.id ?: "", name = p.name ?: "", image = p.main_image_url ?: "/static/default.jpg", price = p.base_price ?: 0, specification = p.specification ?: "标准规格", tag = tag, sales = p.sale_count ?: 0, merchant_id = p.merchant_id ?: "") - resultList.push(searchItem) - i++ - } - } - searchResults.value = resultList - hasMore.value = prodResp.hasmore - } - catch (e: Throwable) { - console.error("Search failed detailed error:", e, " at pages/mall/consumer/search.uvue:548") - } - finally { - loading.value = false - } - }) - } - val initPage = fun(){ - try { - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight ?: 0 - val windowHeight = systemInfo.windowHeight - scrollHeight.value = windowHeight - (60 + statusBarHeight.value) - loadData() - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPageObj = pages[pages.length - 1] - val options = currentPageObj.options - if (options != null) { - val optObj = options as UTSJSONObject - val kwRaw = optObj.getString("keyword") - if (kwRaw != null && kwRaw !== "") { - val decoded = UTSAndroid.consoleDebugError(decodeURIComponent(kwRaw), " at pages/mall/consumer/search.uvue:572") - val keyword = if (decoded != null) { - decoded - } else { - kwRaw - } - searchKeyword.value = keyword - val typeVal = optObj.getString("type") - if (typeVal === "family" || typeVal === "brand") { - if (typeVal === "family") { - addToHistory(keyword) - } - showResults.value = true - loading.value = true - performSearch() - } - } - } - } - } - catch (e: Throwable) { - console.error("初始化失败", e, " at pages/mall/consumer/search.uvue:589") - isError.value = true - } - } - onMounted(fun(){ - initPage() - } - ) - val onInput = fun(e: Any){ - try { - var kVal = "" - if (e != null) { - if (e is UTSJSONObject) { - val eObj = e as UTSJSONObject - val detailObj = eObj.get("detail") - if (detailObj != null && detailObj is UTSJSONObject) { - val detail = detailObj as UTSJSONObject - val v = detail.get("value") - kVal = if (v != null) { - (v as String) - } else { - "" - } - } - } else { - val eObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(e)), " at pages/mall/consumer/search.uvue:614") as UTSJSONObject - val detailObj = eObj.get("detail") - if (detailObj != null) { - val detail = detailObj as UTSJSONObject - val v = detail.get("value") - kVal = if (v != null) { - (v as String) - } else { - "" - } - } else { - val v = eObj.get("value") - kVal = if (v != null) { - (v as String) - } else { - "" - } - } - } - } - searchKeyword.value = kVal - if (kVal == "") { - showResults.value = false - searchSuggestions.value = _uA() - return - } - if (suggestTimer > 0) { - clearTimeout(suggestTimer) - } - suggestTimer = setTimeout(fun(){ - fetchSuggestions(kVal) - } - , 300) - } - catch (err: Throwable) { - console.error("onInput error:", err, " at pages/mall/consumer/search.uvue:638") - } - } - val clearSearch = fun(){ - searchKeyword.value = "" - showResults.value = false - } - val onSearch = fun(){ - if (searchKeyword.value.trim() == "") { - return - } - addToHistory(searchKeyword.value.trim()) - performSearch() - } - val searchFromHistory = fun(keyword: String){ - searchKeyword.value = keyword - performSearch() - } - val searchFromHot = fun(keyword: String){ - searchKeyword.value = keyword - addToHistory(keyword) - performSearch() - } - val selectSuggestion = fun(suggestion: String){ - searchKeyword.value = suggestion - addToHistory(suggestion) - performSearch() - } - val switchSort = fun(type: String){ - if (type === "price") { - if (activeSort.value === "price") { - priceSortAsc.value = !priceSortAsc.value - } else { - activeSort.value = "price" - priceSortAsc.value = true - } - } else { - activeSort.value = type - } - performSearch() - } - val loadMore = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (loading.value || hasMore.value == false || searchKeyword.value.trim() == "") { - return@w1 - } - loading.value = true - currentPage.value++ - val keyword = searchKeyword.value.trim() - var sortBy = "sales" - var ascending = false - if (activeSort.value === "price") { - sortBy = "price" - ascending = priceSortAsc.value - } else if (activeSort.value === "default") { - sortBy = "default" - } - try { - val response = await(supabaseService.searchProducts(keyword, currentPage.value, 20, sortBy, ascending)) - val respData = if (response.data != null) { - response.data - } else { - _uA() - } - run { - var i: Number = 0 - while(i < respData.length){ - val p = respData[i] as Product - var tag = "" - val tagsRaw = p.tags - if (tagsRaw != null) { - try { - val tagsStr = p.tags - if (tagsStr != null) { - val tags = UTSAndroid.consoleDebugError(JSON.parse(tagsStr as String), " at pages/mall/consumer/search.uvue:711") - if (UTSArray.isArray(tags) && (tags as UTSArray).length > 0) { - val firstTag = (tags as UTSArray)[0] - tag = if (firstTag != null) { - (firstTag as String) - } else { - "" - } - } - } - } - catch (e: Throwable) {} - } - val searchItem = SearchResultType(id = p.id ?: "", name = p.name ?: "", image = p.main_image_url ?: "/static/default.jpg", price = p.base_price ?: 0, specification = p.specification ?: "标准规格", tag = tag, sales = p.sale_count ?: 0, merchant_id = p.merchant_id ?: "") - searchResults.value.push(searchItem) - i++ - } - } - hasMore.value = response.hasmore - } - catch (e: Throwable) { - console.error("Load more failed", e, " at pages/mall/consumer/search.uvue:734") - hasMore.value = false - } - finally { - loading.value = false - } - }) - } - onReachBottom__1(fun(){ - if (showResults.value) { - loadMore() - } - } - ) - val refreshGuessList = fun(){ - uni_showLoading(ShowLoadingOptions(title = "刷新中")) - setTimeout(fun(){ - refreshGuessListItems() - uni_hideLoading() - } - , 500) - } - val viewProductDetail = fun(item: UTSUnionTypeObject){ - val id = (item as GuessItemType).id - val price = (item as GuessItemType).price - val name = (item as GuessItemType).name - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?productId=" + id + "&price=" + price + "&name=" + UTSAndroid.consoleDebugError(encodeURIComponent(name), " at pages/mall/consumer/search.uvue:760"))) - } - val viewShopDetail = fun(shop: ShopResultType){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/shop-detail?id=" + shop.id)) - } - val addToCart = fun(product: UTSUnionTypeObject): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val prodObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(product)), " at pages/mall/consumer/search.uvue:774") as UTSJSONObject - val productId = prodObj.getString("id") ?: "" - val merchantId = prodObj.getString("merchant_id") ?: "" - val skus = await(supabaseService.getProductSkus(productId)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + productId)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(productId, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请先登录", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/search.uvue:802") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作异常", icon = "none")) - } - }) - } - val openCamera = fun(){ - uni_chooseImage(ChooseImageOptions(count = 1, sourceType = _uA( - "camera" - ), success = fun(res){ - console.log("拍摄图片路径:", res.tempFilePaths[0], " at pages/mall/consumer/search.uvue:813") - uni_showToast(ShowToastOptions(title = "已启用相机", icon = "none")) - } - , fail = fun(err){ - console.error("启用相机失败", err, " at pages/mall/consumer/search.uvue:817") - } - )) - } - val goBack = fun(){ - if (showResults.value) { - showResults.value = false - searchKeyword.value = "" - } else { - val pages = getCurrentPages() - if (pages.length > 1) { - uni_navigateBack(null) - } else { - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - } - } - return fun(): Any? { - return _cE("view", _uM("class" to "search-page"), _uA( - _cE("view", _uM("class" to "search-header", "style" to _nS(_uM("paddingTop" to (statusBarHeight.value + "px")))), _uA( - _cE("view", _uM("class" to "search-bar-container"), _uA( - _cE("view", _uM("class" to "back-btn", "onClick" to goBack), _uA( - _cE("text", _uM("class" to "back-icon"), "❮") - )), - _cE("view", _uM("class" to "search-input-container"), _uA( - _cE("input", _uM("class" to "search-input", "type" to "text", "value" to searchKeyword.value, "onInput" to onInput, "onConfirm" to onSearch, "placeholder" to "请输入商品名称、店铺", "placeholder-class" to "placeholder", "focus" to autoFocus.value), null, 40, _uA( - "value", - "focus" - )), - if (isTrue(searchKeyword.value)) { - _cE("view", _uM("key" to 0, "class" to "clear-btn", "onClick" to clearSearch), _uA( - _cE("text", _uM("class" to "clear-icon"), "×") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "camera-btn", "onClick" to openCamera), _uA( - _cE("text", _uM("class" to "camera-icon"), "📷") - )), - _cE("view", _uM("class" to "inner-search-btn", "onClick" to onSearch), _uA( - _cE("text", _uM("class" to "inner-search-text"), "搜索") - )) - )) - )) - ), 4), - if (isTrue(isError.value)) { - _cE("view", _uM("key" to 0, "class" to "error-state", "onClick" to retryLoad), _uA( - _cE("view", _uM("class" to "error-content"), _uA( - _cE("text", _uM("class" to "error-icon"), "⚠️"), - _cE("text", _uM("class" to "error-title"), "加载服务器超时"), - _cE("text", _uM("class" to "error-desc"), "请点击屏幕重试") - )) - )) - } else { - _cE("scroll-view", _uM("key" to 1, "class" to "main-content", "direction" to "vertical", "scroll-y" to true, "show-scrollbar" to false), _uA( - if (isTrue(searchKeyword.value == "" && showResults.value == false)) { - _cE("view", _uM("key" to 0), _uA( - if (searchHistory.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "search-history"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "搜索历史"), - _cE("view", _uM("class" to "header-right", "onClick" to clearHistory), _uA( - _cE("text", _uM("class" to "clear-text"), "清空"), - _cE("text", _uM("class" to "clear-icon-trash"), "🗑️") - )) - )), - _cE("view", _uM("class" to "history-tags"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(searchHistory.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "history-tag", "onClick" to fun(){ - searchFromHistory(item) - }), _uA( - _cE("text", _uM("class" to "history-text"), _tD(item), 1), - _cE("view", _uM("class" to "delete-tag-btn", "onClick" to withModifiers(fun(){ - deleteHistoryItem(index) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "delete-icon"), "×") - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "hot-search"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "热门搜索") - )), - _cE("view", _uM("class" to "hot-tags"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(hotSearchList.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to _nC(_uA( - "hot-tag", - if (item.hot == true) { - "hot" - } else { - "" - } - )), "onClick" to fun(){ - searchFromHot(item.keyword) - }), _uA( - _cE("text", _uM("class" to _nC(_uA( - "hot-rank", - if (index < 3) { - "top-three" - } else { - "" - } - ))), _tD(index + 1), 3), - _cE("text", _uM("class" to "hot-text"), _tD(item.keyword), 1), - if (item.hot == true) { - _cE("text", _uM("key" to 0, "class" to "hot-icon"), "🔥") - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - }), 128) - )) - )), - _cE("view", _uM("class" to "guess-you-like"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("view", _uM("class" to "title-with-icon"), _uA( - _cE("text", _uM("class" to "section-icon"), "✨"), - _cE("text", _uM("class" to "section-title"), "猜你需要") - )), - _cE("text", _uM("class" to "refresh-btn", "onClick" to refreshGuessList), "换一批") - )), - _cE("view", _uM("class" to "guess-grid"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(guessList.value, fun(item, __key, __index, _cached): Any { - return _cE("view", _uM("key" to item.id, "class" to "guess-item", "onClick" to fun(){ - viewProductDetail(item) - }), _uA( - _cE("image", _uM("class" to "guess-img", "src" to item.image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "guess-name", "lines" to 2), _tD(item.name), 1), - _cE("view", _uM("class" to "guess-bottom"), _uA( - _cE("text", _uM("class" to "guess-price"), "¥" + _tD(item.price), 1), - _cE("view", _uM("class" to "guess-add-btn", "onClick" to withModifiers(fun(){ - addToCart(item) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "guess-add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(searchKeyword.value != "" && showResults.value == false)) { - _cE("view", _uM("key" to 1, "class" to "search-suggestions"), _uA( - _cE("view", _uM("class" to "suggestions-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(searchSuggestions.value, fun(suggestion, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "suggestion-item", "onClick" to fun(){ - selectSuggestion(suggestion) - }), _uA( - _cE("view", _uM("class" to "suggestion-icon"), "🔍"), - _cE("text", _uM("class" to "suggestion-text"), _tD(suggestion), 1) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(showResults.value)) { - _cE("view", _uM("key" to 2, "class" to "search-results"), _uA( - if (searchShopResults.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "shop-results-section"), _uA( - _cE("view", _uM("class" to "section-top"), _uA( - _cE("text", _uM("class" to "result-title-sm"), "相关店铺") - )), - _cE("scroll-view", _uM("direction" to "horizontal", "class" to "shop-list-scroll"), _uA( - _cE("view", _uM("class" to "shop-list-row"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(searchShopResults.value, fun(shop, __key, __index, _cached): Any { - return _cE("view", _uM("key" to shop.id, "class" to "shop-card", "onClick" to fun(){ - viewShopDetail(shop) - }), _uA( - _cE("image", _uM("class" to "shop-logo", "src" to shop.logo, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "shop-info"), _uA( - _cE("text", _uM("class" to "shop-name-txt"), _tD(shop.name), 1), - _cE("text", _uM("class" to "shop-products-txt"), "共" + _tD(shop.productCount) + "件商品", 1) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - )) - } else { - _cC("v-if", true) - }, - _cE("view", _uM("class" to "results-header"), _uA( - _cE("text", _uM("class" to "results-title"), "商品结果"), - _cE("view", _uM("class" to "filter-tabs"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeSort.value === "default")) - )), "onClick" to fun(){ - switchSort("default") - }), "综合", 10, _uA( - "onClick" - )), - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeSort.value === "sales")) - )), "onClick" to fun(){ - switchSort("sales") - }), "销量", 10, _uA( - "onClick" - )), - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeSort.value === "price")) - )), "onClick" to fun(){ - switchSort("price") - }), " 价格 " + _tD(if (activeSort.value === "price") { - if (priceSortAsc.value) { - "↑" - } else { - "↓" - } - } else { - "" - }), 11, _uA( - "onClick" - )) - )) - )), - if (searchResults.value.length > 0) { - _cE("view", _uM("key" to 1, "class" to "results-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(searchResults.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "result-item", "onClick" to fun(){ - viewProductDetail(product) - }), _uA( - _cE("image", _uM("class" to "product-image", "src" to product.image, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - }, _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - }, - if (isTrue(!loading.value && searchResults.value.length === 0)) { - _cE("view", _uM("key" to 2, "class" to "empty-result"), _uA( - _cE("text", _uM("class" to "empty-icon"), "🤔"), - _cE("text", _uM("class" to "empty-text"), "未找到相关商品"), - _cE("text", _uM("class" to "empty-sub"), "换个关键词试试吧") - )) - } else { - _cC("v-if", true) - }, - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 3, "class" to "loading-more"), _uA( - _cE("view", _uM("class" to "loading-spinner")), - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - }, - if (isTrue(!hasMore.value && searchResults.value.length > 0)) { - _cE("view", _uM("key" to 4, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "--- 到底了 ---") - )) - } else { - _cC("v-if", true) - } - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "safe-area")) - )) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("search-page" to _pS(_uM("width" to "100%", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5", "display" to "flex", "flexDirection" to "column")), "shop-results-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 10, "paddingRight" to 0, "paddingBottom" to 10, "paddingLeft" to 0)), "section-top" to _pS(_uM("paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 10, "paddingLeft" to 12)), "result-title-sm" to _pS(_uM("fontSize" to 14, "fontWeight" to "bold", "color" to "#333333")), "shop-list-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap")), "shop-list-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "shop-card" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "width" to 80, "marginRight" to 15, "backgroundColor" to "#f9f9f9", "paddingTop" to 10, "paddingRight" to 5, "paddingBottom" to 10, "paddingLeft" to 5, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "shop-logo" to _pS(_uM("width" to 48, "height" to 48, "borderTopLeftRadius" to 24, "borderTopRightRadius" to 24, "borderBottomRightRadius" to 24, "borderBottomLeftRadius" to 24, "marginBottom" to 5, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "backgroundColor" to "#FFFFFF")), "shop-info" to _pS(_uM("width" to "100%", "textAlign" to "center")), "shop-name-txt" to _pS(_uM("fontSize" to 12, "color" to "#333333", "width" to "100%", "overflow" to "hidden", "whiteSpace" to "nowrap", "textOverflow" to "ellipsis", "marginBottom" to 2)), "shop-products-txt" to _pS(_uM("fontSize" to 10, "color" to "#999999")), "search-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 10, "flexShrink" to 0)), "search-bar-container" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 16, "paddingBottom" to 10, "paddingLeft" to 16, "boxSizing" to "border-box")), "back-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "width" to 32, "height" to 32, "marginRight" to 12, "flexShrink" to 0)), "back-icon" to _pS(_uM("fontSize" to 20, "color" to "#333333")), "search-input-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 40, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 12)), "search-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333", "height" to "100%", "backgroundColor" to "rgba(0,0,0,0)")), "placeholder" to _pS(_uM("color" to "#999999")), "clear-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 4, "paddingBottom" to 4, "paddingLeft" to 4, "marginRight" to 2, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "clear-icon" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "camera-btn" to _pS(_uM("paddingTop" to 4, "paddingRight" to 8, "paddingBottom" to 4, "paddingLeft" to 4, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#dddddd", "marginRight" to 8)), "camera-icon" to _pS(_uM("fontSize" to 20)), "inner-search-btn" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 0, "paddingLeft" to 16, "backgroundColor" to "#87CEEB", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "height" to 32)), "inner-search-text" to _pS(_uM("fontSize" to 13, "color" to "#ffffff", "fontWeight" to "bold")), "main-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxSizing" to "border-box", "height" to 0)), "section-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12, "marginTop" to 8, "width" to "100%")), "section-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header-right" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0)), "clear-text" to _pS(_uM("marginRight" to 4, "fontSize" to 12, "color" to "#999999")), "clear-icon-trash" to _pS(_uM("fontSize" to 14)), "search-history" to _pS(_uM("marginBottom" to 24, "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "history-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4, "alignItems" to "center")), "history-tag" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "alignItems" to "center", "flexShrink" to 0, "marginRight" to 10, "marginBottom" to 10)), "history-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap", "marginRight" to 6)), "delete-tag-btn" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to 16, "height" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor" to "#f0f0f0")), "delete-icon" to _pS(_uM("fontSize" to 12, "color" to "#999999", "lineHeight" to 1)), "hot-search" to _pS(_uM("marginBottom" to 24)), "hot-tags" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "hot-tag" to _uM("" to _uM("marginRight" to 10, "marginBottom" to 10, "backgroundColor" to "#ffffff", "paddingTop" to 6, "paddingRight" to 12, "paddingBottom" to 6, "paddingLeft" to 12, "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexShrink" to 0), ".hot" to _uM("backgroundColor" to "#fff0f0")), "hot-rank" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "fontWeight" to "bold", "marginRight" to 6), ".top-three" to _uM("color" to "#ff5000")), "hot-text" to _pS(_uM("fontSize" to 13, "color" to "#333333")), "hot-icon" to _pS(_uM("fontSize" to 12, "marginLeft" to 4)), "guess-you-like" to _pS(_uM("marginBottom" to 20)), "title-with-icon" to _pS(_uM("display" to "flex", "alignItems" to "center")), "section-icon" to _pS(_uM("fontSize" to 16, "marginRight" to 6)), "refresh-btn" to _pS(_uM("fontSize" to 12, "color" to "#4CAF50")), "guess-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "space-between", "paddingTop" to 0, "paddingRight" to 4, "paddingBottom" to 0, "paddingLeft" to 4)), "guess-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12)), "guess-img" to _pS(_uM("width" to "100%", "height" to 170, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8, "backgroundImage" to "none", "backgroundColor" to "#f5f5f5", "objectFit" to "cover")), "guess-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "guess-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "guess-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "guess-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "guess-add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "search-suggestions" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12)), "suggestion-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "height" to 44, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "suggestion-icon" to _pS(_uM("marginRight" to 10, "fontSize" to 14, "color" to "#999999")), "suggestion-text" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "results-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 12, "paddingBottom" to 10, "paddingLeft" to 12, "backgroundColor" to "#ffffff", "marginBottom" to 2, "width" to "100%", "boxSizing" to "border-box")), "results-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333")), "filter-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "filter-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginLeft" to 8, "backgroundImage:hover" to "none", "backgroundColor:hover" to "#f5f5f5"), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "search-results" to _pS(_uM("paddingBottom" to 20, "width" to "100%", "display" to "flex", "flexDirection" to "column", "alignItems" to "flex-start")), "results-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "width" to "100%", "boxSizing" to "border-box", "marginTop" to 5, "backgroundColor" to "#ffffff")), "result-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12, "marginRight" to "2%", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0")), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "objectFit" to "cover", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8)), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "error-state" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "backgroundColor" to "#ffffff")), "error-content" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "error-icon" to _pS(_uM("fontSize" to 48, "marginBottom" to 12)), "error-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 12)), "error-desc" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "loading-spinner" to _pS(_uM("width" to 24, "height" to 24, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#4CAF50", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "marginBottom" to 8)), "loading-text" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "textAlign" to "center")), "no-more-text" to _pS(_uM("fontSize" to 12, "color" to "#cccccc")), "empty-result" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0)), "empty-icon" to _pS(_uM("fontSize" to 40, "marginBottom" to 12)), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 4)), "empty-sub" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "safe-area" to _pS(_uM("height" to 20)), "@TRANSITION" to _uM("filter-tab" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt deleted file mode 100644 index 517ad44a..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/settings.kt +++ /dev/null @@ -1,503 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getAppBaseInfo as uni_getAppBaseInfo -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.getSystemInfoSync as uni_getSystemInfoSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onBackPress as onBackPress__1 -import io.dcloud.uniapp.extapi.reLaunch as uni_reLaunch -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showActionSheet as uni_showActionSheet -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerSettings : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerSettings) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerSettings - val _cache = __ins.renderCache - onBackPress__1(fun(options): Boolean { - uni_switchTab(SwitchTabOptions(url = "/pages/main/profile")) - return true - } - ) - val userInfo = ref(UserType__1(id = "", phone = null, email = null, nickname = null, avatar_url = null)) - val notifications = ref(NotificationType(order = true, promotion = true, review = true)) - val privacy = ref(PrivacyType(hidePurchase = false, allowSearchByPhone = true, receiveMerchantMsg = true)) - val cacheSize = ref("0.0 MB") - val currentLanguage = ref("简体中文") - val currentTheme = ref("自动") - val appVersion = ref("1.0.0") - val statusBarHeight = ref(0) - val loadUserInfo = fun(){ - val userStore = uni_getStorageSync("userInfo") - if (userStore != null) { - val storeObj = userStore as UTSJSONObject - val user: UserType__1 = UserType__1(id = storeObj.getString("id") ?: "", phone = storeObj.getString("phone"), email = storeObj.getString("email"), nickname = storeObj.getString("nickname"), avatar_url = storeObj.getString("avatar_url")) - userInfo.value = user - } - } - val loadSettings = fun(){ - val savedNotifications = uni_getStorageSync("userNotifications") - if (savedNotifications != null) { - val notifObj = savedNotifications as UTSJSONObject - val notif: NotificationType = NotificationType(order = notifObj.getBoolean("order") ?: true, promotion = notifObj.getBoolean("promotion") ?: true, review = notifObj.getBoolean("review") ?: true) - notifications.value = notif - } - val savedPrivacy = uni_getStorageSync("userPrivacy") - if (savedPrivacy != null) { - val privacyObj = savedPrivacy as UTSJSONObject - val priv: PrivacyType = PrivacyType(hidePurchase = privacyObj.getBoolean("hidePurchase") ?: false, allowSearchByPhone = privacyObj.getBoolean("allowSearchByPhone") ?: true, receiveMerchantMsg = privacyObj.getBoolean("receiveMerchantMsg") ?: true) - privacy.value = priv - } - cacheSize.value = "12.5 MB" - val appInfo = uni_getAppBaseInfo(null) - if (appInfo != null) { - val infoObj = appInfo as UTSJSONObject - val version = infoObj.getString("appVersion") - if (version != null) { - appVersion.value = version - } - } - } - onMounted(fun(){ - val systemInfo = uni_getSystemInfoSync() - statusBarHeight.value = systemInfo.statusBarHeight ?: 0 - loadUserInfo() - loadSettings() - } - ) - val goToProfile = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/profile")) - } - val goToAddressList = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/address-list")) - } - val changePassword = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/change-password")) - } - val bindPhone = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/bind-phone")) - } - val bindEmail = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/bind-email")) - } - val toggleNotification = fun(type: String){ - if (type === "order") { - notifications.value.order = notifications.value.order === false - } else if (type === "promotion") { - notifications.value.promotion = notifications.value.promotion === false - } else if (type === "review") { - notifications.value.review = notifications.value.review === false - } - uni_setStorageSync("userNotifications", notifications.value) - } - val togglePrivacy = fun(type: String){ - if (type === "hidePurchase") { - privacy.value.hidePurchase = privacy.value.hidePurchase === false - } else if (type === "allowSearchByPhone") { - privacy.value.allowSearchByPhone = privacy.value.allowSearchByPhone === false - } else if (type === "receiveMerchantMsg") { - privacy.value.receiveMerchantMsg = privacy.value.receiveMerchantMsg === false - } - uni_setStorageSync("userPrivacy", privacy.value) - } - val clearCache = fun(){ - uni_showModal(ShowModalOptions(title = "清除缓存", content = "确定要清除 " + cacheSize.value + " 缓存吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "清除中...")) - setTimeout(fun(){ - cacheSize.value = "0.0 MB" - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "缓存已清除", icon = "success")) - } - , 1000) - } - } - )) - } - val changeLanguage = fun(){ - uni_showActionSheet(ShowActionSheetOptions(itemList = _uA( - "简体中文", - "English", - "日本語" - ), success = fun(res){ - val languages = _uA( - "简体中文", - "English", - "日本語" - ) - currentLanguage.value = languages[res.tapIndex] - uni_setStorageSync("appLanguage", currentLanguage.value) - uni_showToast(ShowToastOptions(title = "语言已切换", icon = "success")) - } - )) - } - val changeTheme = fun(){ - uni_showActionSheet(ShowActionSheetOptions(itemList = _uA( - "自动", - "浅色模式", - "深色模式" - ), success = fun(res){ - val themes = _uA( - "自动", - "浅色模式", - "深色模式" - ) - currentTheme.value = themes[res.tapIndex] - uni_setStorageSync("appTheme", currentTheme.value) - uni_showToast(ShowToastOptions(title = "主题已切换", icon = "success")) - } - )) - } - val goToMyReviews = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/orders?status=completed")) - } - val aboutUs = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/terms?type=about")) - } - val userAgreement = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/terms?type=agreement")) - } - val privacyPolicy = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/user/terms?type=privacy")) - } - val checkUpdate = fun(){ - uni_showLoading(ShowLoadingOptions(title = "检查更新中...")) - setTimeout(fun(){ - uni_hideLoading() - uni_showModal(ShowModalOptions(title = "检查更新", content = "当前已是最新版本", showCancel = false)) - } - , 1000) - } - val contactService = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat")) - } - val feedback = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/info/feedback")) - } - val rateApp = fun(){ - uni_showModal(ShowModalOptions(title = "给个好评", content = "如果喜欢我们的应用,请给个好评吧!感谢您的支持!", confirmText = "好的", showCancel = false)) - } - val logout = fun(){ - uni_showModal(ShowModalOptions(title = "退出登录", content = "确定要退出登录吗?", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "正在退出...")) - uni_removeStorageSync("userInfo") - uni_removeStorageSync("user_id") - uni_removeStorageSync("access_token") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "已退出登录", icon = "success")) - setTimeout(fun(){ - uni_reLaunch(ReLaunchOptions(url = "/pages/user/login")) - } - , 1000) - } - } - )) - } - val deleteAccount = fun(){ - uni_showModal(ShowModalOptions(title = "注销账号", content = "确定要注销账号吗?此操作不可恢复,所有数据将被删除!", confirmText = "注销", confirmColor = "#ff4757", success = fun(res){ - if (res.confirm) { - uni_showLoading(ShowLoadingOptions(title = "注销中...")) - var userId: String? = userInfo.value.id - if (userId == null || userId === "") { - val storageId = uni_getStorageSync("user_id") - userId = if ((storageId != null)) { - storageId as String - } else { - null - } - } - if (userId != null) { - val updateObj: UTSJSONObject = UTSJSONObject(UTSSourceMapPosition("updateObj", "pages/mall/consumer/settings.uvue", 558, 27)) - updateObj.set("status", 3) - supaInstance.from("ml_user_profiles").update(updateObj).eq("user_id", userId).execute() - } - uni_removeStorageSync("userInfo") - uni_removeStorageSync("user_id") - uni_removeStorageSync("access_token") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "账号已注销", icon = "success", duration = 2000)) - setTimeout(fun(){ - uni_reLaunch(ReLaunchOptions(url = "/pages/user/login")) - } - , 1500) - } - } - )) - } - return fun(): Any? { - val _component_switch = resolveComponent("switch") - return _cE("view", _uM("class" to "settings-page"), _uA( - _cE("scroll-view", _uM("class" to "settings-content", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "账户设置"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item", "onClick" to goToProfile), _uA( - _cE("text", _uM("class" to "item-icon"), "👤"), - _cE("text", _uM("class" to "item-text"), "个人资料"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to goToAddressList), _uA( - _cE("text", _uM("class" to "item-icon"), "📍"), - _cE("text", _uM("class" to "item-text"), "收货地址"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to changePassword), _uA( - _cE("text", _uM("class" to "item-icon"), "🔒"), - _cE("text", _uM("class" to "item-text"), "修改密码"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to bindPhone), _uA( - _cE("text", _uM("class" to "item-icon"), "📱"), - _cE("text", _uM("class" to "item-text"), "手机绑定"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "item-status", - if (userInfo.value.phone != null && userInfo.value.phone != "") { - "bound" - } else { - "" - } - ))), _tD(if (userInfo.value.phone != null && userInfo.value.phone != "") { - "已绑定" - } else { - "未绑定" - } - ), 3), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )), - _cE("view", _uM("class" to "list-item", "onClick" to bindEmail), _uA( - _cE("text", _uM("class" to "item-icon"), "📧"), - _cE("text", _uM("class" to "item-text"), "邮箱绑定"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "item-status", - if (userInfo.value.email != null && userInfo.value.email != "") { - "bound" - } else { - "" - } - ))), _tD(if (userInfo.value.email != null && userInfo.value.email != "") { - "已绑定" - } else { - "未绑定" - } - ), 3), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "消息通知"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "🔔"), - _cE("text", _uM("class" to "item-text"), "订单消息"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to notifications.value.order, "onChange" to fun(){ - toggleNotification("order") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )), - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "🎁"), - _cE("text", _uM("class" to "item-text"), "促销活动"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to notifications.value.promotion, "onChange" to fun(){ - toggleNotification("promotion") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )), - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "⭐"), - _cE("text", _uM("class" to "item-text"), "评价提醒"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to notifications.value.review, "onChange" to fun(){ - toggleNotification("review") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "隐私设置"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "👁️"), - _cE("text", _uM("class" to "item-text"), "隐藏购物记录"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to privacy.value.hidePurchase, "onChange" to fun(){ - togglePrivacy("hidePurchase") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )), - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "🔍"), - _cE("text", _uM("class" to "item-text"), "允许通过手机号找到我"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to privacy.value.allowSearchByPhone, "onChange" to fun(){ - togglePrivacy("allowSearchByPhone") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )), - _cE("view", _uM("class" to "list-item"), _uA( - _cE("text", _uM("class" to "item-icon"), "💬"), - _cE("text", _uM("class" to "item-text"), "接收商家消息"), - _cV(_component_switch, _uM("class" to "settings-switch", "checked" to privacy.value.receiveMerchantMsg, "onChange" to fun(){ - togglePrivacy("receiveMerchantMsg") - } - ), null, 8, _uA( - "checked", - "onChange" - )) - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "通用设置"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item", "onClick" to clearCache), _uA( - _cE("text", _uM("class" to "item-icon"), "🗑️"), - _cE("text", _uM("class" to "item-text"), "清除缓存"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to "item-cache"), _tD(cacheSize.value), 1), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )), - _cE("view", _uM("class" to "list-item", "onClick" to changeLanguage), _uA( - _cE("text", _uM("class" to "item-icon"), "🌐"), - _cE("text", _uM("class" to "item-text"), "语言设置"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to "item-status"), _tD(currentLanguage.value), 1), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )), - _cE("view", _uM("class" to "list-item", "onClick" to changeTheme), _uA( - _cE("text", _uM("class" to "item-icon"), "🎨"), - _cE("text", _uM("class" to "item-text"), "主题设置"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to "item-status"), _tD(currentTheme.value), 1), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "我的服务"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item", "onClick" to goToMyReviews), _uA( - _cE("text", _uM("class" to "item-icon"), "📝"), - _cE("text", _uM("class" to "item-text"), "我的评价"), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "关于我们"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item", "onClick" to aboutUs), _uA( - _cE("text", _uM("class" to "item-icon"), "ℹ️"), - _cE("text", _uM("class" to "item-text"), "关于商城"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to userAgreement), _uA( - _cE("text", _uM("class" to "item-icon"), "📜"), - _cE("text", _uM("class" to "item-text"), "用户协议"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to privacyPolicy), _uA( - _cE("text", _uM("class" to "item-icon"), "🛡️"), - _cE("text", _uM("class" to "item-text"), "隐私政策"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to checkUpdate), _uA( - _cE("text", _uM("class" to "item-icon"), "🔄"), - _cE("text", _uM("class" to "item-text"), "检查更新"), - _cE("view", _uM("class" to "item-right"), _uA( - _cE("text", _uM("class" to "item-status"), _tD(appVersion.value), 1), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )) - )) - )), - _cE("view", _uM("class" to "settings-section"), _uA( - _cE("text", _uM("class" to "section-title"), "客服与反馈"), - _cE("view", _uM("class" to "section-list"), _uA( - _cE("view", _uM("class" to "list-item", "onClick" to contactService), _uA( - _cE("text", _uM("class" to "item-icon"), "💬"), - _cE("text", _uM("class" to "item-text"), "联系客服"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to feedback), _uA( - _cE("text", _uM("class" to "item-icon"), "📝"), - _cE("text", _uM("class" to "item-text"), "意见反馈"), - _cE("text", _uM("class" to "item-arrow"), "›") - )), - _cE("view", _uM("class" to "list-item", "onClick" to rateApp), _uA( - _cE("text", _uM("class" to "item-icon"), "⭐"), - _cE("text", _uM("class" to "item-text"), "给个好评"), - _cE("text", _uM("class" to "item-arrow"), "›") - )) - )) - )), - _cE("view", _uM("class" to "logout-section"), _uA( - _cE("button", _uM("class" to "logout-btn", "onClick" to logout), "退出登录") - )), - _cE("view", _uM("class" to "delete-account-section"), _uA( - _cE("text", _uM("class" to "delete-account", "onClick" to deleteAccount), "注销账号") - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("section-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "list-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "backgroundColor" to "#ffffff", "width" to "25%", "flexDirection" to "column", "justifyContent" to "center", "textAlign" to "center", "boxSizing" to "border-box", "borderRightWidth" to 1, "borderRightStyle" to "solid", "borderRightColor" to "#f5f5f5")), "item-icon" to _pS(_uM("fontSize" to 20, "marginRight" to 15, "marginBottom" to 5)), "item-text" to _pS(_uM("fontSize" to 14, "color" to "#333333", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "item-arrow" to _pS(_uM("display" to "none", "color" to "#999999", "fontSize" to 16, "marginLeft" to 10)), "item-right" to _pS(_uM("display" to "flex", "alignItems" to "center")), "settings-switch" to _pS(_uM("transform" to "scale(0.7)", "marginTop" to 5)), "settings-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "width" to "100%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "settings-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "back-btn" to _pS(_uM("fontSize" to 24, "color" to "#333333", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5, "marginRight" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "settings-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "width" to "100%", "height" to 100)), "settings-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15)), "item-status" to _uM("" to _uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10), ".bound" to _uM("color" to "#4caf50")), "item-cache" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginRight" to 10)), "logout-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "logout-btn" to _pS(_uM("backgroundColor" to "#ffffff", "color" to "#ff4757", "height" to 45, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff4757", "borderRightColor" to "#ff4757", "borderBottomColor" to "#ff4757", "borderLeftColor" to "#ff4757", "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold")), "delete-account-section" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "textAlign" to "center")), "delete-account" to _pS(_uM("color" to "#999999", "fontSize" to 14))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt deleted file mode 100644 index 65163f27..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/share/detail.kt +++ /dev/null @@ -1,285 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.setClipboardData as uni_setClipboardData -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerShareDetail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerShareDetail) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerShareDetail - val _cache = __ins.renderCache - val shareId = ref("") - val shareRecord = ref(ShareRecordType(id = "", product_name = "", product_image = null, product_price = 0, share_code = "", required_count = 4, current_count = 0, status = 0, reward_amount = null, created_at = "", completed_at = null)) - val buyers = ref(_uA()) - val buyersLoading = ref(false) - val defaultImage: String = "/static/images/default-product.png" - val loadShareDetail = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (shareId.value === "") { - return@w1 - } - try { - val result = await(supabaseService.getShareDetail(shareId.value)) - val recordRaw = result.get("share_record") - if (recordRaw != null) { - var recordObj: UTSJSONObject? = null - if (recordRaw is UTSJSONObject) { - recordObj = recordRaw as UTSJSONObject - } else { - recordObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(recordRaw)), " at pages/mall/consumer/share/detail.uvue:152") as UTSJSONObject - } - val record = ShareRecordType(id = recordObj.getString("id") ?: "", product_name = recordObj.getString("product_name") ?: "", product_image = recordObj.getString("product_image"), product_price = recordObj.getNumber("product_price") ?: 0, share_code = recordObj.getString("share_code") ?: "", required_count = recordObj.getNumber("required_count") ?: 4, current_count = recordObj.getNumber("current_count") ?: 0, status = recordObj.getNumber("status") ?: 0, reward_amount = recordObj.getNumber("reward_amount"), created_at = recordObj.getString("created_at") ?: "", completed_at = recordObj.getString("completed_at")) - shareRecord.value = record - } - val purchasesRaw = result.get("secondary_purchases") - if (purchasesRaw != null && UTSArray.isArray(purchasesRaw)) { - val parsed: UTSArray = _uA() - val arr = purchasesRaw as UTSArray - run { - var i: Number = 0 - while(i < arr.length){ - val item = arr[i] - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/share/detail.uvue:182") as UTSJSONObject - } - parsed.push(BuyerType(id = itemObj.getString("id") ?: "", buyer_id = itemObj.getString("buyer_id") ?: "", buyer_name = "用户" + (i + 1), quantity = itemObj.getNumber("quantity") ?: 1, created_at = itemObj.getString("created_at") ?: "")) - i++ - } - } - buyers.value = parsed - } - } - catch (e: Throwable) { - console.error("加载分享详情失败:", e, " at pages/mall/consumer/share/detail.uvue:197") - } - }) - } - val getProgressPercent = fun(): Number { - if (shareRecord.value.required_count <= 0) { - return 0 - } - return Math.min(100, Math.round((shareRecord.value.current_count / shareRecord.value.required_count) * 100)) - } - val getStatusText = fun(status: Number): String { - if (status === 0) { - return "进行中" - } - if (status === 1) { - return "已免单" - } - if (status === 2) { - return "已失效" - } - if (status === 3) { - return "已过期" - } - return "未知" - } - val getStatusClass = fun(status: Number): String { - if (status === 0) { - return "status-progress" - } - if (status === 1) { - return "status-completed" - } - if (status === 2) { - return "status-invalid" - } - if (status === 3) { - return "status-expired" - } - return "" - } - val copyShareCode = fun(): Unit { - uni_setClipboardData(SetClipboardDataOptions(data = shareRecord.value.share_code, success = fun(_){ - uni_showToast(ShowToastOptions(title = "已复制分享码", icon = "success")) - } - )) - } - val getBuyerInitial = fun(name: String): String { - if (name.length > 0) { - return name.charAt(0) - } - return "用" - } - val maskName = fun(name: String): String { - if (name.length <= 2) { - return name.charAt(0) + "*" - } - return name.charAt(0) + "***" + name.charAt(name.length - 1) - } - val formatTime = fun(timeStr: String?): String { - if (timeStr == null || timeStr === "") { - return "" - } - val date = Date(timeStr) - val y = date.getFullYear() - val m = (date.getMonth() + 1).toString(10).padStart(2, "0") - val d = date.getDate().toString(10).padStart(2, "0") - val hh = date.getHours().toString(10).padStart(2, "0") - val mm = date.getMinutes().toString(10).padStart(2, "0") - return "" + y + "-" + m + "-" + d + " " + hh + ":" + mm - } - onLoad__1(fun(options){ - if (options != null) { - val idVal = options["id"] - if (idVal != null) { - shareId.value = idVal as String - loadShareDetail() - } - } - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "share-detail-page", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "product-section"), _uA( - _cE("image", _uM("class" to "product-image", "src" to if (shareRecord.value.product_image != null && shareRecord.value.product_image!!.length > 0) { - shareRecord.value.product_image - } else { - defaultImage - } - , "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "product-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(shareRecord.value.product_name), 1), - _cE("text", _uM("class" to "product-price"), "¥" + _tD(shareRecord.value.product_price), 1) - )) - )), - _cE("view", _uM("class" to "progress-section"), _uA( - _cE("view", _uM("class" to "progress-header"), _uA( - _cE("text", _uM("class" to "progress-title"), "免单进度"), - _cE("text", _uM("class" to _nC(_uA( - "progress-status", - getStatusClass(shareRecord.value.status) - ))), _tD(getStatusText(shareRecord.value.status)), 3) - )), - _cE("view", _uM("class" to "progress-content"), _uA( - _cE("view", _uM("class" to "progress-bar"), _uA( - _cE("view", _uM("class" to "progress-fill", "style" to _nS(_uM("width" to (getProgressPercent() + "%")))), null, 4) - )), - _cE("view", _uM("class" to "progress-numbers"), _uA( - _cE("text", _uM("class" to "current-count"), _tD(shareRecord.value.current_count), 1), - _cE("text", _uM("class" to "divider"), "/"), - _cE("text", _uM("class" to "required-count"), _tD(shareRecord.value.required_count), 1) - )) - )), - if (shareRecord.value.status === 0) { - _cE("view", _uM("key" to 0, "class" to "progress-tip"), _uA( - _cE("text", _uM("class" to "tip-text"), "还需 " + _tD(shareRecord.value.required_count - shareRecord.value.current_count) + " 人购买即可免单", 1) - )) - } else { - _cC("v-if", true) - } - , - if (shareRecord.value.status === 1) { - _cE("view", _uM("key" to 1, "class" to "reward-info"), _uA( - _cE("text", _uM("class" to "reward-label"), "已获得免单奖励"), - _cE("text", _uM("class" to "reward-amount"), "¥" + _tD(shareRecord.value.reward_amount), 1) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "share-code-section"), _uA( - _cE("view", _uM("class" to "code-header"), _uA( - _cE("text", _uM("class" to "code-title"), "分享码"), - _cE("text", _uM("class" to "copy-btn", "onClick" to copyShareCode), "复制") - )), - _cE("view", _uM("class" to "code-content"), _uA( - _cE("text", _uM("class" to "code-value"), _tD(shareRecord.value.share_code), 1) - )), - _cE("view", _uM("class" to "code-tip"), _uA( - _cE("text", _uM("class" to "tip-text"), "将分享码告诉好友,好友下单时填写即可") - )) - )), - _cE("view", _uM("class" to "buyers-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "购买记录"), - _cE("text", _uM("class" to "section-count"), "(" + _tD(buyers.value.length) + "人)", 1) - )), - if (isTrue(buyersLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - if (buyers.value.length === 0) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无购买记录") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "buyer-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(buyers.value, fun(buyer, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "buyer-item", "key" to buyer.id), _uA( - _cE("view", _uM("class" to "buyer-avatar"), _uA( - _cE("text", _uM("class" to "avatar-text"), _tD(getBuyerInitial(buyer.buyer_name)), 1) - )), - _cE("view", _uM("class" to "buyer-info"), _uA( - _cE("text", _uM("class" to "buyer-name"), _tD(maskName(buyer.buyer_name)), 1), - _cE("text", _uM("class" to "buyer-time"), _tD(formatTime(buyer.created_at)), 1) - )), - _cE("view", _uM("class" to "buyer-count"), _uA( - _cE("text", _uM("class" to "count-text"), "购买 " + _tD(buyer.quantity) + " 件", 1) - )) - )) - } - ), 128) - )) - } - } - )), - _cE("view", _uM("class" to "time-section"), _uA( - _cE("view", _uM("class" to "time-item"), _uA( - _cE("text", _uM("class" to "time-label"), "创建时间"), - _cE("text", _uM("class" to "time-value"), _tD(formatTime(shareRecord.value.created_at)), 1) - )), - if (isTrue(shareRecord.value.completed_at)) { - _cE("view", _uM("key" to 0, "class" to "time-item"), _uA( - _cE("text", _uM("class" to "time-label"), "完成时间"), - _cE("text", _uM("class" to "time-value"), _tD(formatTime(shareRecord.value.completed_at)), 1) - )) - } else { - _cC("v-if", true) - } - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("share-detail-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "product-section" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "product-image" to _pS(_uM("width" to 100, "height" to 100, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "product-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 12, "display" to "flex", "flexDirection" to "column", "justifyContent" to "center")), "product-name" to _pS(_uM("fontSize" to 15, "color" to "#333333", "lines" to 2, "marginBottom" to 8)), "product-price" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#ff6b35")), "progress-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "progress-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 16)), "progress-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "progress-status" to _pS(_uM("fontSize" to 14, "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "status-progress" to _pS(_uM("backgroundColor" to "#fff5f0", "color" to "#ff6b35")), "status-completed" to _pS(_uM("backgroundColor" to "#f6ffed", "color" to "#52c41a")), "status-invalid" to _pS(_uM("backgroundColor" to "#f5f5f5", "color" to "#999999")), "status-expired" to _pS(_uM("backgroundColor" to "#fff1f0", "color" to "#ff4d4f")), "progress-content" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "progress-bar" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 12, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "overflow" to "hidden")), "progress-fill" to _pS(_uM("height" to "100%", "backgroundImage" to "linear-gradient(90deg, #ff6b35 0%, #ff8c42 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6)), "progress-numbers" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginLeft" to 12)), "current-count" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#ff6b35")), "divider" to _pS(_uM("fontSize" to 16, "color" to "#999999", "marginTop" to 0, "marginRight" to 4, "marginBottom" to 0, "marginLeft" to 4)), "required-count" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "progress-tip" to _pS(_uM("marginTop" to 12, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "backgroundColor" to "#fff5f0", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "tip-text" to _pS(_uM("fontSize" to 13, "color" to "#ff6b35")), "reward-info" to _pS(_uM("marginTop" to 12, "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "backgroundImage" to "linear-gradient(135deg, #f6ffed 0%, #e6fffb 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "reward-label" to _pS(_uM("fontSize" to 15, "color" to "#52c41a")), "reward-amount" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#52c41a")), "share-code-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "marginBottom" to 8)), "code-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 12)), "code-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "copy-btn" to _pS(_uM("fontSize" to 14, "color" to "#ff6b35", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff6b35", "borderRightColor" to "#ff6b35", "borderBottomColor" to "#ff6b35", "borderLeftColor" to "#ff6b35", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12)), "code-content" to _pS(_uM("backgroundColor" to "#f9f9f9", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "code-value" to _pS(_uM("fontSize" to 28, "fontWeight" to "bold", "color" to "#333333", "letterSpacing" to 8)), "code-tip" to _pS(_uM("marginTop" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "buyers-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginBottom" to 8)), "section-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "section-count" to _pS(_uM("fontSize" to 14, "color" to "#999999", "marginLeft" to 4)), "loading-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 30, "paddingRight" to 0, "paddingBottom" to 30, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "buyer-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "buyer-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 16, "paddingBottom" to 12, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "buyer-avatar" to _pS(_uM("width" to 40, "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "backgroundColor" to "#f0f0f0", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "avatar-text" to _pS(_uM("fontSize" to 16, "color" to "#999999")), "buyer-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 12, "display" to "flex", "flexDirection" to "column")), "buyer-name" to _pS(_uM("fontSize" to 14, "color" to "#333333")), "buyer-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 2)), "buyer-count" to _pS(_uM("display" to "flex", "alignItems" to "center")), "count-text" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "time-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "time-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0)), "time-label" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "time-value" to _pS(_uM("fontSize" to 14, "color" to "#333333"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/share/index.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/share/index.kt deleted file mode 100644 index 7b7a1cc0..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/share/index.kt +++ /dev/null @@ -1,251 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -open class GenPagesMallConsumerShareIndex : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerShareIndex) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerShareIndex - val _cache = __ins.renderCache - val shares = ref(_uA()) - val loading = ref(true) - val showRules = ref(false) - val defaultImage: String = "/static/images/default-product.png" - val totalShares = computed(fun(): Number { - return shares.value.length - } - ) - val completedShares = computed(fun(): Number { - var count: Number = 0 - run { - var i: Number = 0 - while(i < shares.value.length){ - if (shares.value[i].status === 1) { - count++ - } - i++ - } - } - return count - } - ) - val totalReward = computed(fun(): Number { - var total: Number = 0 - run { - var i: Number = 0 - while(i < shares.value.length){ - if (shares.value[i].reward_amount != null) { - total += shares.value[i].reward_amount!! - } - i++ - } - } - return total - } - ) - val loadShares = fun(): UTSPromise { - return wrapUTSPromise(suspend { - loading.value = true - try { - val result = await(supabaseService.getMyShareRecords()) - val parsed: UTSArray = _uA() - run { - var i: Number = 0 - while(i < result.length){ - val item = result[i] - var itemObj: UTSJSONObject? = null - if (item is UTSJSONObject) { - itemObj = item as UTSJSONObject - } else { - itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/share/index.uvue:125") as UTSJSONObject - } - parsed.push(ShareRecord(id = itemObj.getString("id") ?: "", product_id = itemObj.getString("product_id") ?: "", product_name = itemObj.getString("product_name") ?: "", product_image = itemObj.getString("product_image"), product_price = itemObj.getNumber("product_price") ?: 0, share_code = itemObj.getString("share_code") ?: "", required_count = itemObj.getNumber("required_count") ?: 4, current_count = itemObj.getNumber("current_count") ?: 0, status = itemObj.getNumber("status") ?: 0, reward_amount = itemObj.getNumber("reward_amount"), created_at = itemObj.getString("created_at") ?: "")) - i++ - } - } - shares.value = parsed - } - catch (e: Throwable) { - console.error("加载分享记录失败:", e, " at pages/mall/consumer/share/index.uvue:145") - } - finally { - loading.value = false - } - }) - } - val toggleRules = fun(): Unit { - showRules.value = !showRules.value - } - val getProgressPercent = fun(current: Number, required: Number): Number { - if (required <= 0) { - return 0 - } - return Math.min(100, Math.round((current / required) * 100)) - } - val getStatusText = fun(status: Number): String { - if (status === 0) { - return "进行中" - } - if (status === 1) { - return "已免单" - } - if (status === 2) { - return "已失效" - } - if (status === 3) { - return "已过期" - } - return "未知" - } - val getStatusClass = fun(status: Number): String { - if (status === 0) { - return "status-progress" - } - if (status === 1) { - return "status-completed" - } - if (status === 2) { - return "status-invalid" - } - if (status === 3) { - return "status-expired" - } - return "" - } - val goToShareDetail = fun(shareId: String): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/share/detail?id=" + shareId)) - } - onMounted(fun(){ - loadShares() - } - ) - return fun(): Any? { - return _cE("scroll-view", _uM("class" to "share-page", "direction" to "vertical"), _uA( - _cE("view", _uM("class" to "share-summary"), _uA( - _cE("view", _uM("class" to "summary-item"), _uA( - _cE("text", _uM("class" to "summary-value"), _tD(totalShares.value), 1), - _cE("text", _uM("class" to "summary-label"), "分享次数") - )), - _cE("view", _uM("class" to "summary-divider")), - _cE("view", _uM("class" to "summary-item"), _uA( - _cE("text", _uM("class" to "summary-value"), _tD(completedShares.value), 1), - _cE("text", _uM("class" to "summary-label"), "免单成功") - )), - _cE("view", _uM("class" to "summary-divider")), - _cE("view", _uM("class" to "summary-item"), _uA( - _cE("text", _uM("class" to "summary-value"), _tD(totalReward.value), 1), - _cE("text", _uM("class" to "summary-label"), "累计奖励(元)") - )) - )), - _cE("view", _uM("class" to "rules-section"), _uA( - _cE("view", _uM("class" to "rules-header", "onClick" to toggleRules), _uA( - _cE("text", _uM("class" to "rules-title"), "免单规则"), - _cE("text", _uM("class" to "rules-arrow"), _tD(if (showRules.value) { - "▲" - } else { - "▼" - } - ), 1) - )), - if (isTrue(showRules.value)) { - _cE("view", _uM("key" to 0, "class" to "rules-content"), _uA( - _cE("text", _uM("class" to "rules-text"), "1. 购买商品后可生成分享链接"), - _cE("text", _uM("class" to "rules-text"), "2. 分享给好友,好友通过链接购买"), - _cE("text", _uM("class" to "rules-text"), "3. 累计4人购买后,即可免单"), - _cE("text", _uM("class" to "rules-text"), "4. 免单金额存入余额,可联系商家提现") - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "share-list-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "我的分享") - )), - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-state"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - if (shares.value.length === 0) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无分享记录"), - _cE("text", _uM("class" to "empty-tip"), "购买商品后可以分享免单哦~") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "share-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(shares.value, fun(share, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "share-item", "key" to share.id, "onClick" to fun(){ - goToShareDetail(share.id) - } - ), _uA( - _cE("image", _uM("class" to "product-image", "src" to if (share.product_image != null && share.product_image!!.length > 0) { - share.product_image - } else { - defaultImage - } - , "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "share-info"), _uA( - _cE("text", _uM("class" to "product-name"), _tD(share.product_name), 1), - _cE("view", _uM("class" to "progress-section"), _uA( - _cE("view", _uM("class" to "progress-bar"), _uA( - _cE("view", _uM("class" to "progress-fill", "style" to _nS(_uM("width" to (getProgressPercent(share.current_count, share.required_count) + "%")))), null, 4) - )), - _cE("text", _uM("class" to "progress-text"), _tD(share.current_count) + "/" + _tD(share.required_count), 1) - )), - _cE("view", _uM("class" to "share-bottom"), _uA( - _cE("text", _uM("class" to "share-code"), "分享码: " + _tD(share.share_code), 1), - _cE("text", _uM("class" to _nC(_uA( - "share-status", - getStatusClass(share.status) - ))), _tD(getStatusText(share.status)), 3) - )) - )), - _cE("text", _uM("class" to "share-arrow"), "›") - ), 8, _uA( - "onClick" - )) - } - ), 128) - )) - } - } - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("share-page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to "100%", "backgroundColor" to "#f5f5f5")), "share-summary" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#FFFFFF", "paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "marginBottom" to 8)), "summary-item" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "summary-value" to _pS(_uM("fontSize" to 24, "fontWeight" to "bold", "color" to "#ff6b35")), "summary-label" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4)), "summary-divider" to _pS(_uM("width" to 1, "height" to 40, "backgroundColor" to "#f0f0f0")), "rules-section" to _pS(_uM("backgroundColor" to "#FFFFFF", "marginBottom" to 8)), "rules-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16)), "rules-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333")), "rules-arrow" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "rules-content" to _pS(_uM("paddingTop" to 0, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "display" to "flex", "flexDirection" to "column")), "rules-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "lineHeight" to "24px")), "share-list-section" to _pS(_uM("backgroundColor" to "#FFFFFF")), "section-header" to _pS(_uM("paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0")), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "loading-state" to _pS(_uM("paddingTop" to 40, "paddingRight" to 0, "paddingBottom" to 40, "paddingLeft" to 0, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "loading-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-state" to _pS(_uM("paddingTop" to 60, "paddingRight" to 0, "paddingBottom" to 60, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "empty-text" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "empty-tip" to _pS(_uM("fontSize" to 12, "color" to "#cccccc", "marginTop" to 8)), "share-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "share-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "paddingTop" to 16, "paddingRight" to 16, "paddingBottom" to 16, "paddingLeft" to 16, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f9f9f9")), "product-image" to _pS(_uM("width" to 80, "height" to 80, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "share-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginLeft" to 12, "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "product-name" to _pS(_uM("fontSize" to 14, "color" to "#333333", "lines" to 2)), "progress-section" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginTop" to 8)), "progress-bar" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 6, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 3, "borderTopRightRadius" to 3, "borderBottomRightRadius" to 3, "borderBottomLeftRadius" to 3, "overflow" to "hidden")), "progress-fill" to _pS(_uM("height" to "100%", "backgroundColor" to "#ff6b35", "borderTopLeftRadius" to 3, "borderTopRightRadius" to 3, "borderBottomRightRadius" to 3, "borderBottomLeftRadius" to 3)), "progress-text" to _pS(_uM("fontSize" to 12, "color" to "#ff6b35", "marginLeft" to 8)), "share-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginTop" to 8)), "share-code" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "share-status" to _pS(_uM("fontSize" to 12, "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "status-progress" to _pS(_uM("backgroundColor" to "#fff5f0", "color" to "#ff6b35")), "status-completed" to _pS(_uM("backgroundColor" to "#f6ffed", "color" to "#52c41a")), "status-invalid" to _pS(_uM("backgroundColor" to "#f5f5f5", "color" to "#999999")), "status-expired" to _pS(_uM("backgroundColor" to "#fff1f0", "color" to "#ff4d4f")), "share-arrow" to _pS(_uM("fontSize" to 20, "color" to "#cccccc", "marginLeft" to 8, "alignSelf" to "center"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt deleted file mode 100644 index 49e1a50d..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/shop-detail.kt +++ /dev/null @@ -1,538 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.stopPullDownRefresh as uni_stopPullDownRefresh -open class GenPagesMallConsumerShopDetail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerShopDetail) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerShopDetail - val _cache = __ins.renderCache - val currentPage = ref(1) - val pageSize = ref(6) - val hasMore = ref(true) - val isLoading = ref(false) - val currentMerchantId = ref("") - val merchant = ref(MerchantType(id = "", user_id = "", shop_name = "", shop_logo = "", shop_banner = "", shop_description = "", contact_name = "", contact_phone = "", shop_status = 0, rating = 0, total_sales = 0, created_at = "")) - val products = ref(_uA()) - val isFollowed = ref(false) - val coupons = ref(_uA()) - val isRefresherTriggered = ref(false) - val checkFollowStatus = fun(shopId: String): UTSPromise { - return wrapUTSPromise(suspend { - val userId = supabaseService.getCurrentUserId() - if (userId != null && userId != "") { - try { - isFollowed.value = await(supabaseService.isShopFollowed(shopId, userId)) - } - catch (e: Throwable) { - console.warn("isShopFollowed method not found", " at pages/mall/consumer/shop-detail.uvue:126") - } - } - }) - } - val loadShopData = fun(id: String): UTSPromise { - return wrapUTSPromise(suspend { - console.log("Loading shop data for:", id, " at pages/mall/consumer/shop-detail.uvue:132") - val shop = await(supabaseService.getShopByMerchantId(id)) - if (shop != null) { - console.log("Shop loaded successfully:", shop.shop_name, " at pages/mall/consumer/shop-detail.uvue:136") - val merchantData = MerchantType(id = shop.id, user_id = shop.merchant_id, shop_name = shop.shop_name, shop_logo = if (shop.shop_logo != null) { - shop.shop_logo - } else { - "/static/default-shop.png" - }, shop_banner = if (shop.shop_banner != null) { - shop.shop_banner - } else { - "/static/default-banner.png" - }, shop_description = if (shop.description != null) { - shop.description - } else { - "" - }, contact_name = if (shop.contact_name != null) { - shop.contact_name!! - } else { - "" - }, contact_phone = if (shop.contact_phone != null) { - shop.contact_phone!! - } else { - "" - }, shop_status = 1, rating = if (shop.rating_avg != null) { - shop.rating_avg!! - } else { - 5.0 - }, total_sales = if (shop.total_sales != null) { - shop.total_sales!! - } else { - 0 - }, created_at = if (shop.created_at != null) { - shop.created_at!! - } else { - "" - }) - merchant.value = merchantData - checkFollowStatus(shop.id) - } else { - console.warn("Shop data is null for ID:", id, " at pages/mall/consumer/shop-detail.uvue:157") - uni_showToast(ShowToastOptions(title = "未找到店铺信息", icon = "none", duration = 3000)) - } - }) - } - val loadCoupons = fun(id: String): UTSPromise { - return wrapUTSPromise(suspend { - try { - val res = await(supabaseService.fetchShopCoupons(id)) - if (res != null && UTSArray.isArray(res)) { - val couponList: UTSArray = _uA() - run { - var i: Number = 0 - while(i < res.length){ - val item = res[i] - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/shop-detail.uvue:174") as UTSJSONObject - couponList.push(CouponType(id = itemObj.getString("id") ?: "", discount_value = itemObj.getNumber("discount_value") ?: 0, min_order_amount = itemObj.getNumber("min_order_amount") ?: 0, name = itemObj.getString("name") ?: "", start_time = itemObj.getString("start_time") ?: "", end_time = itemObj.getString("end_time") ?: "", status = itemObj.getNumber("status") ?: 1)) - i++ - } - } - coupons.value = couponList - } - } - catch (e1: Throwable) { - console.warn("SupabaseService.fetchShopCoupons method missing. Please rebuild project.", " at pages/mall/consumer/shop-detail.uvue:188") - } - }) - } - val loadShopProducts = fun(id: String): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (isLoading.value) { - return@w1 - } - isLoading.value = true - if (currentPage.value === 1) { - currentMerchantId.value = id - } - console.log("shop-detail loadShopProducts for: " + id + " page: " + currentPage.value, " at pages/mall/consumer/shop-detail.uvue:201") - var res: Any = UTSJSONObject() - try { - res = await(supabaseService.getProductsByMerchantId(id, currentPage.value, pageSize.value)) - } - catch (e: Throwable) { - console.error("getProductsByMerchantId missing or error", e, " at pages/mall/consumer/shop-detail.uvue:208") - isLoading.value = false - uni_stopPullDownRefresh() - return@w1 - } - console.log("shop-detail getProductsByMerchantId result count: " + res.data?.length, " at pages/mall/consumer/shop-detail.uvue:214") - val rawList = res.data - if (rawList != null && UTSArray.isArray(rawList) && (rawList as UTSArray).length > 0) { - val newItems: UTSArray = _uA() - val existingIds = products.value.map(fun(p): String { - return p.id - }) - val list = (rawList as UTSArray).map(fun(item: Any): ProductType { - var images: UTSArray = _uA() - val itemObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(item)), " at pages/mall/consumer/shop-detail.uvue:227") as UTSJSONObject - val mainImageUrl = itemObj.getString("main_image_url") - if (mainImageUrl != null && mainImageUrl != "") { - images.push(mainImageUrl) - } - val imageUrls = itemObj.get("image_urls") - if (imageUrls != null) { - try { - if (UTSArray.isArray(imageUrls)) { - val arr = imageUrls as UTSArray - if (arr.length > 0) { - if (images.length == 0) { - images.push(*arr.toTypedArray()) - } - } - } else if (UTSAndroid.`typeof`(imageUrls) === "string") { - val rawUrl = imageUrls as String - if (rawUrl.startsWith("[")) { - val parsed = UTSAndroid.consoleDebugError(JSON.parse(rawUrl), " at pages/mall/consumer/shop-detail.uvue:247") - if (UTSArray.isArray(parsed)) { - val arr = parsed as UTSArray - if (images.length == 0) { - images.push(*arr.toTypedArray()) - } - } - } else { - if (images.indexOf(rawUrl) === -1) { - images.push(rawUrl) - } - } - } - } - catch (e: Throwable) { - console.error("解析图片数组失败:", e, " at pages/mall/consumer/shop-detail.uvue:257") - } - } - if (images.length === 0) { - images.push("/static/default-product.png") - } - return ProductType(id = itemObj.getString("id") ?: "", merchant_id = itemObj.getString("merchant_id") ?: "", category_id = itemObj.getString("category_id") ?: "", name = itemObj.getString("name") ?: "未知商品", description = itemObj.getString("description") ?: "", images = images, price = itemObj.getNumber("base_price") ?: 0, original_price = itemObj.getNumber("market_price") ?: 0, stock = itemObj.getNumber("total_stock") ?: 0, sales = itemObj.getNumber("sale_count") ?: 0, status = 1, created_at = itemObj.getString("created_at") ?: "") - }) - if (currentPage.value === 1) { - products.value = list - } else { - run { - var i: Number = 0 - while(i < list.length){ - if (existingIds.indexOf(list[i].id) === -1) { - newItems.push(list[i]) - } - i++ - } - } - if (newItems.length > 0) { - products.value.push(*newItems.toTypedArray()) - } - } - currentPage.value++ - hasMore.value = list.length >= pageSize.value - } else { - hasMore.value = false - } - isLoading.value = false - uni_stopPullDownRefresh() - }) - } - onMounted(fun(){ - val pages = getCurrentPages() - val options = pages[pages.length - 1].options as UTSJSONObject - val mId = options.get("merchantId") - val pId = options.get("id") - val paramId = if (mId != null) { - mId - } else { - pId - } - as String - if (paramId != null && paramId != "") { - console.log("Page mounted with params:", paramId, " at pages/mall/consumer/shop-detail.uvue:315") - loadShopData(paramId).then(fun(){ - val realMerchantId = merchant.value.user_id - if (realMerchantId != null && realMerchantId != "") { - console.log("Chain loading products for Corrected Merchant ID:", realMerchantId, " at pages/mall/consumer/shop-detail.uvue:321") - currentMerchantId.value = realMerchantId - loadShopProducts(realMerchantId) - loadCoupons(realMerchantId) - } else { - console.warn("Shop load failed or id empty, fallback using original id:", paramId, " at pages/mall/consumer/shop-detail.uvue:327") - currentMerchantId.value = paramId - loadShopProducts(paramId) - loadCoupons(paramId) - } - }) - } else { - console.error("No ID passed to shop-detail", " at pages/mall/consumer/shop-detail.uvue:334") - uni_showToast(ShowToastOptions(title = "参数错误", icon = "error")) - } - } - ) - val onRefresherRefresh = fun(){ - isRefresherTriggered.value = true - currentPage.value = 1 - hasMore.value = true - isLoading.value = false - if (currentMerchantId.value != "") { - val id = currentMerchantId.value - UTSPromise.all(_uA( - loadShopData(id), - loadCoupons(id), - loadShopProducts(id) - )).then(fun(){ - isRefresherTriggered.value = false - }) - } else { - setTimeout(fun(){ - isRefresherTriggered.value = false - } - , 500) - } - } - val onScrollToLower = fun(){ - if (hasMore.value && !isLoading.value && currentMerchantId.value != "") { - console.log("Scroll to lower, loading more...", " at pages/mall/consumer/shop-detail.uvue:363") - loadShopProducts(currentMerchantId.value) - } - } - onPullDownRefresh(fun(){ - onRefresherRefresh() - } - ) - onReachBottom(fun(){ - onScrollToLower() - } - ) - val claimCoupon = fun(coupon: Any): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val userId = supabaseService.getCurrentUserId() - if (userId == null) { - uni_navigateTo(NavigateToOptions(url = "/pages/auth/login")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "领取中")) - val couponObj = UTSAndroid.consoleDebugError(JSON.parse(JSON.stringify(coupon)), " at pages/mall/consumer/shop-detail.uvue:385") as UTSJSONObject - val couponId = couponObj.getString("id") ?: "" - var success = false - try { - success = await(supabaseService.claimShopCoupon(couponId, userId)) - } - catch (e1: Throwable) { - try { - success = await(supabaseService.claimCoupon(couponId, userId)) - } - catch (e2: Throwable) { - console.warn("claimCoupon not found", " at pages/mall/consumer/shop-detail.uvue:397") - } - } - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "领取成功", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "领取失败", icon = "none")) - } - }) - } - val toggleFollow = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val userId = supabaseService.getCurrentUserId() - if (userId == null) { - uni_navigateTo(NavigateToOptions(url = "/pages/auth/login")) - return@w1 - } - val shopId = merchant.value.id - if (shopId == null || shopId == "") { - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "处理中")) - if (isFollowed.value) { - val success = await(supabaseService.unfollowShop(shopId, userId)) - if (success) { - isFollowed.value = false - uni_showToast(ShowToastOptions(title = "已取消关注", icon = "none")) - } else { - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - } else { - val success = await(supabaseService.followShop(shopId, userId)) - if (success) { - isFollowed.value = true - uni_showToast(ShowToastOptions(title = "关注成功", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "关注失败", icon = "none")) - } - } - uni_hideLoading() - }) - } - val contactService = fun(){ - val currentUser = supabaseService.getCurrentUserId() - if (currentUser == null) { - uni_navigateTo(NavigateToOptions(url = "/pages/user/login")) - return - } - if (merchant.value.user_id != null && merchant.value.user_id != "") { - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/chat?merchantId=" + merchant.value.user_id + "&merchantName=" + UTSAndroid.consoleDebugError(encodeURIComponent(merchant.value.shop_name), " at pages/mall/consumer/shop-detail.uvue:456"))) - } else { - uni_showToast(ShowToastOptions(title = "无法联系商家", icon = "none")) - } - } - val addToCart = fun(product: ProductType): UTSPromise { - return wrapUTSPromise(suspend { - uni_showLoading(ShowLoadingOptions(title = "检查商品...")) - try { - val merchantId = merchant.value.user_id ?: "" - val skus = await(supabaseService.getProductSkus(product.id)) - uni_hideLoading() - if (skus.length > 0) { - uni_showToast(ShowToastOptions(title = "请选择规格", icon = "none")) - setTimeout(fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?id=" + product.id)) - }, 500) - } else { - uni_showLoading(ShowLoadingOptions(title = "添加中...")) - val success = await(supabaseService.addToCart(product.id, 1, "", merchantId)) - uni_hideLoading() - if (success) { - uni_showToast(ShowToastOptions(title = "已添加到购物车", icon = "success")) - } else { - uni_showToast(ShowToastOptions(title = "添加失败,请重试", icon = "none")) - } - } - } - catch (e: Throwable) { - console.error("添加到购物车异常", e, " at pages/mall/consumer/shop-detail.uvue:504") - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val goToProduct = fun(id: String){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/product-detail?productId=" + id)) - } - return fun(): Any? { - return _cE("view", _uM("class" to "shop-detail-page"), _uA( - _cE("scroll-view", _uM("class" to "page-scroll", "scroll-y" to "true", "onScrolltolower" to onScrollToLower, "refresher-enabled" to "true", "onRefresherrefresh" to onRefresherRefresh, "refresher-triggered" to isRefresherTriggered.value), _uA( - _cE("view", _uM("class" to "shop-header"), _uA( - _cE("image", _uM("src" to if (merchant.value.shop_banner != "") { - merchant.value.shop_banner - } else { - "/static/default-banner.png" - } - , "class" to "shop-banner", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "shop-info-card"), _uA( - _cE("image", _uM("src" to if (merchant.value.shop_logo != "") { - merchant.value.shop_logo - } else { - "/static/default-shop.png" - } - , "class" to "shop-logo"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "shop-basic-info"), _uA( - _cE("text", _uM("class" to "shop-name"), _tD(merchant.value.shop_name), 1), - _cE("view", _uM("class" to "shop-stats"), _uA( - _cE("text", _uM("class" to "stat-item"), "⭐ " + _tD(merchant.value.rating.toFixed(1)), 1), - _cE("text", _uM("class" to "stat-item"), "销量 " + _tD(merchant.value.total_sales), 1) - )) - )), - _cE("view", _uM("class" to "shop-actions"), _uA( - _cE("view", _uM("class" to "action-btn chat-btn", "onClick" to contactService), _uA( - _cE("text", _uM("class" to "action-text"), "客服") - )), - _cE("view", _uM("class" to "action-btn follow-btn", "onClick" to toggleFollow), _uA( - _cE("text", _uM("class" to _nC(_uA( - "action-text", - _uM("followed" to isFollowed.value) - ))), _tD(if (isFollowed.value) { - "已关注" - } else { - "+ 关注" - } - ), 3) - )) - )) - )), - _cE("text", _uM("class" to "shop-desc"), _tD(if (merchant.value.shop_description != "") { - merchant.value.shop_description - } else { - "这家店很懒,什么都没写~" - } - ), 1), - if (coupons.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "shop-coupons"), _uA( - _cE("scroll-view", _uM("scroll-x" to "true", "class" to "coupon-scroll", "show-scrollbar" to "false"), _uA( - _cE("view", _uM("class" to "coupon-wrapper"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(coupons.value, fun(coupon, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "coupon-card", "key" to coupon.id, "onClick" to fun(){ - claimCoupon(coupon) - }), _uA( - _cE("view", _uM("class" to "coupon-left"), _uA( - _cE("text", _uM("class" to "coupon-amount"), _uA( - _cE("text", _uM("style" to _nS(_uM("font-size" to "10px"))), "¥", 4), - _tD(coupon.discount_value) - )), - if (coupon.min_order_amount > 0) { - _cE("text", _uM("key" to 0, "class" to "coupon-cond"), "满" + _tD(coupon.min_order_amount), 1) - } else { - _cE("text", _uM("key" to 1, "class" to "coupon-cond"), "无门槛") - } - )), - _cE("view", _uM("class" to "coupon-right"), _uA( - _cE("text", _uM("class" to "coupon-btn-label"), "领取") - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - )) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "product-section"), _uA( - _cE("view", _uM("class" to "results-header"), _uA( - _cE("text", _uM("class" to "results-title"), "全部商品"), - _cE("view", _uM("class" to "filter-tabs"), _uA( - _cE("text", _uM("class" to "filter-tab active"), "综合"), - _cE("text", _uM("class" to "filter-tab"), "销量"), - _cE("text", _uM("class" to "filter-tab"), "价格") - )) - )), - _cE("view", _uM("class" to "results-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(products.value, fun(product, __key, __index, _cached): Any { - return _cE("view", _uM("key" to product.id, "class" to "result-item", "onClick" to fun(){ - goToProduct(product.id) - } - ), _uA( - _cE("image", _uM("src" to product.images[0], "class" to "product-image", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("text", _uM("class" to "product-name", "lines" to 2), _tD(product.name), 1), - _cE("view", _uM("class" to "product-bottom"), _uA( - _cE("text", _uM("class" to "product-price"), "¥" + _tD(product.price), 1), - _cE("view", _uM("class" to "product-add-btn", "onClick" to withModifiers(fun(){ - addToCart(product) - } - , _uA( - "stop" - ))), _uA( - _cE("text", _uM("class" to "add-icon"), "+") - ), 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - } - ), 128) - )) - )) - ), 40, _uA( - "refresher-triggered" - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("shop-detail-page" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "page-scroll" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0, "width" to "100%")), "shop-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingBottom" to 20, "marginBottom" to 10, "display" to "flex", "flexDirection" to "column")), "shop-banner" to _pS(_uM("width" to "100%", "height" to 200, "backgroundColor" to "#f5f5f5")), "shop-info-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "flex-start", "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "marginTop" to -30, "position" to "relative", "zIndex" to 1, "width" to "100%", "boxSizing" to "border-box")), "shop-logo" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "borderTopWidth" to 2, "borderRightWidth" to 2, "borderBottomWidth" to 2, "borderLeftWidth" to 2, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffffff", "borderRightColor" to "#ffffff", "borderBottomColor" to "#ffffff", "borderLeftColor" to "#ffffff", "backgroundColor" to "#ffffff", "marginRight" to 12, "flexShrink" to 0)), "shop-basic-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "paddingTop" to 35)), "shop-name" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 6, "lineHeight" to 1.2)), "shop-stats" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "stat-item" to _pS(_uM("fontSize" to 11, "color" to "#666666", "marginRight" to 8, "backgroundColor" to "#f5f5f5", "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "shop-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 40, "flexShrink" to 0)), "action-btn" to _pS(_uM("borderTopLeftRadius" to 17, "borderTopRightRadius" to 17, "borderBottomRightRadius" to 17, "borderBottomLeftRadius" to 17, "marginLeft" to 8, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "cursor" to "pointer")), "action-text" to _uM("" to _uM("fontSize" to 12), ".chat-btn " to _uM("color" to "#333333"), ".follow-btn " to _uM("color" to "#ffffff")), "chat-btn" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd")), "follow-btn" to _pS(_uM("backgroundColor" to "#ff5000", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000", "minWidth" to 60)), "followed" to _uM(".follow-btn " to _uM("opacity" to 0.9)), "shop-desc" to _pS(_uM("color" to "#999999", "paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "lineHeight" to 1.5, "width" to "100%", "boxSizing" to "border-box", "fontSize" to 13)), "shop-coupons" to _pS(_uM("marginTop" to 20, "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "width" to "100%", "maxWidth" to 1200, "boxSizing" to "border-box")), "coupon-scroll" to _pS(_uM("width" to "100%", "whiteSpace" to "nowrap", "flexDirection" to "row")), "coupon-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "nowrap", "alignItems" to "center")), "coupon-card" to _pS(_uM("display" to "flex", "flexDirection" to "row", "backgroundColor" to "#fff5f5", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ffccc7", "borderRightColor" to "#ffccc7", "borderBottomColor" to "#ffccc7", "borderLeftColor" to "#ffccc7", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "marginRight" to 15, "width" to 180, "height" to 70, "overflow" to "hidden", "flexShrink" to 0, "cursor" to "pointer")), "coupon-left" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center", "alignItems" to "center", "borderRightWidth" to 1, "borderRightStyle" to "dashed", "borderRightColor" to "#ffccc7", "paddingTop" to 0, "paddingRight" to 10, "paddingBottom" to 0, "paddingLeft" to 10)), "coupon-amount" to _pS(_uM("color" to "#ff5000", "fontWeight" to "bold", "fontSize" to 20)), "coupon-cond" to _pS(_uM("color" to "#999999", "fontSize" to 12)), "coupon-right" to _pS(_uM("width" to 50, "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "backgroundColor" to "#ff5000", "flexDirection" to "column")), "coupon-btn-label" to _pS(_uM("color" to "#ffffff", "fontSize" to 14, "textAlign" to "center", "lineHeight" to 1.2)), "product-section" to _pS(_uM("paddingTop" to 20, "paddingRight" to 0, "paddingBottom" to 20, "paddingLeft" to 0, "width" to "100%", "maxWidth" to 1200, "marginTop" to 0, "marginRight" to "auto", "marginBottom" to 0, "marginLeft" to "auto", "boxSizing" to "border-box", "display" to "flex", "flexDirection" to "column", "alignItems" to "flex-start")), "results-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 10, "paddingRight" to 12, "paddingBottom" to 10, "paddingLeft" to 12, "backgroundColor" to "#ffffff", "marginBottom" to 2, "width" to "100%", "boxSizing" to "border-box")), "results-title" to _pS(_uM("fontSize" to 15, "fontWeight" to "bold", "color" to "#333333", "paddingLeft" to 10, "borderLeftWidth" to 5, "borderLeftStyle" to "solid", "borderLeftColor" to "#ff5000")), "filter-tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "flexWrap" to "wrap", "justifyContent" to "flex-start")), "filter-tab" to _uM("" to _uM("fontSize" to 13, "color" to "#666666", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e0e0e0", "borderRightColor" to "#e0e0e0", "borderBottomColor" to "#e0e0e0", "borderLeftColor" to "#e0e0e0", "transitionProperty" to "all", "transitionDuration" to "0.2s", "transitionTimingFunction" to "ease", "whiteSpace" to "nowrap", "textAlign" to "center", "display" to "flex", "justifyContent" to "center", "alignItems" to "center", "marginLeft" to 8), ".active" to _uM("backgroundImage" to "none", "backgroundColor" to "#ff5000", "color" to "#FFFFFF", "borderTopColor" to "#ff5000", "borderRightColor" to "#ff5000", "borderBottomColor" to "#ff5000", "borderLeftColor" to "#ff5000")), "results-list" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "justifyContent" to "flex-start", "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "width" to "100%", "boxSizing" to "border-box", "marginTop" to 5, "backgroundColor" to "#ffffff")), "result-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "overflow" to "hidden", "width" to "48%", "marginBottom" to 12, "marginRight" to "2%", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#f0f0f0", "borderRightColor" to "#f0f0f0", "borderBottomColor" to "#f0f0f0", "borderLeftColor" to "#f0f0f0", "boxSizing" to "border-box")), "product-image" to _pS(_uM("width" to "100%", "height" to 170, "objectFit" to "cover", "backgroundColor" to "#f5f5f5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 8)), "product-name" to _pS(_uM("fontSize" to 13, "color" to "#333333", "marginBottom" to 5, "lineHeight" to 1.4, "height" to 36, "overflow" to "hidden", "textOverflow" to "ellipsis", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 0, "paddingLeft" to 8)), "product-bottom" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to 8, "paddingBottom" to 8, "paddingLeft" to 8)), "product-price" to _pS(_uM("fontSize" to 15, "color" to "#ff5000", "fontWeight" to "bold")), "product-add-btn" to _pS(_uM("width" to 24, "height" to 24, "backgroundColor" to "#ff5000", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "add-icon" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "bold")), "@TRANSITION" to _uM("filter-tab" to _uM("property" to "all", "duration" to "0.2s", "timingFunction" to "ease"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/followed-shops.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/followed-shops.kt deleted file mode 100644 index c5a8429b..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/followed-shops.kt +++ /dev/null @@ -1,179 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -import io.dcloud.uniapp.extapi.switchTab as uni_switchTab -open class GenPagesMallConsumerSubscriptionFollowedShops : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerSubscriptionFollowedShops) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerSubscriptionFollowedShops - val _cache = __ins.renderCache - val shops = ref(_uA()) - val loading = ref(true) - val loadFollowedShops = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - loading.value = true - val userId = supabaseService.getCurrentUserId() - if (userId == null || userId == "") { - uni_navigateTo(NavigateToOptions(url = "/pages/auth/login")) - return@w1 - } - val res = await(supabaseService.getFollowedShops(userId)) - val list: UTSArray = _uA() - if (res != null && UTSArray.isArray(res)) { - run { - var i: Number = 0 - while(i < res.length){ - val item = res[i] as UTSJSONObject - val shopDataRaw = item.get("ml_shops") - if (shopDataRaw != null) { - val shopData = shopDataRaw as UTSJSONObject - val shop: FollowedShop = FollowedShop(id = shopData.getString("id") ?: "", merchant_id = shopData.getString("merchant_id") ?: "", shop_name = shopData.getString("shop_name") ?: "", shop_logo = shopData.getString("shop_logo"), description = shopData.getString("description"), rating_avg = shopData.getNumber("rating_avg") ?: 5.0, total_sales = shopData.getNumber("total_sales") ?: 0) - list.push(shop) - } - i++ - } - } - } - shops.value = list - loading.value = false - }) - } - val doUnfollow = fun(shopId: String, userId: String): UTSPromise { - return wrapUTSPromise(suspend { - val success = await(supabaseService.unfollowShop(shopId, userId)) - if (success) { - uni_showToast(ShowToastOptions(title = "已取消", icon = "none")) - loadFollowedShops() - } else { - uni_showToast(ShowToastOptions(title = "操作失败", icon = "none")) - } - }) - } - val unfollow = fun(shop: FollowedShop): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val userId = supabaseService.getCurrentUserId() - if (userId == null || userId == "") { - return@w1 - } - uni_showModal(ShowModalOptions(title = "提示", content = "确定取消关注该店铺吗?", success = fun(res){ - if (res.confirm) { - doUnfollow(shop.id, userId) - } - } - )) - }) - } - val goToShop = fun(shop: FollowedShop): Unit { - val targetId = if (shop.merchant_id != "") { - shop.merchant_id - } else { - shop.id - } - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/shop-detail?merchantId=" + targetId)) - } - val goHome = fun(): Unit { - uni_switchTab(SwitchTabOptions(url = "/pages/main/index")) - } - onMounted(fun(){ - loadFollowedShops() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "followed-shops-page"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("text", _uM("class" to "header-title"), "我关注的店铺") - )), - if (shops.value.length > 0) { - _cE("view", _uM("key" to 0, "class" to "shop-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(shops.value, fun(shop, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "shop-item", "key" to shop.id, "onClick" to fun(){ - goToShop(shop) - }), _uA( - _cE("image", _uM("src" to if (shop.shop_logo != null) { - shop.shop_logo - } else { - "/static/default-shop.png" - }, "class" to "shop-logo", "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "shop-info"), _uA( - _cE("text", _uM("class" to "shop-name"), _tD(shop.shop_name), 1), - _cE("text", _uM("class" to "shop-desc"), _tD(if (shop.description != null) { - shop.description - } else { - "暂无介绍" - }), 1), - _cE("view", _uM("class" to "shop-meta"), _uA( - _cE("text", _uM("class" to "rating shop-meta-text"), "⭐ " + _tD(shop.rating_avg), 1), - _cE("text", _uM("class" to "sales shop-meta-text"), "销量: " + _tD(shop.total_sales), 1) - )) - )), - _cE("button", _uM("class" to "unfollow-btn", "onClick" to withModifiers(fun(){ - unfollow(shop) - }, _uA( - "stop" - ))), "已关注", 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - if (loading.value == false) { - _cE("view", _uM("key" to 1, "class" to "empty-state"), _uA( - _cE("text", _uM("class" to "empty-text"), "暂无关注的店铺"), - _cE("button", _uM("class" to "go-shop-btn", "onClick" to goHome), "去逛逛") - )) - } else { - _cC("v-if", true) - } - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 2, "class" to "loading-state"), _uA( - _cE("text", null, "加载中...") - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("followed-shops-page" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "header" to _pS(_uM("marginBottom" to 15)), "header-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold")), "shop-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "shop-item" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 10, "marginBottom:last-child" to 0)), "shop-logo" to _pS(_uM("width" to 50, "height" to 50, "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4, "backgroundColor" to "#eeeeee", "marginRight" to 12)), "shop-info" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column")), "shop-name" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "shop-desc" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 4, "maxWidth" to 200, "overflow" to "hidden", "textOverflow" to "ellipsis", "whiteSpace" to "nowrap")), "shop-meta" to _pS(_uM("fontSize" to 10, "color" to "#999999", "marginTop" to 4, "display" to "flex")), "shop-meta-text" to _pS(_uM("marginRight" to 8)), "unfollow-btn" to _pS(_uM("fontSize" to 12, "paddingTop" to 4, "paddingRight" to 12, "paddingBottom" to 4, "paddingLeft" to 12, "backgroundColor" to "#eeeeee", "color" to "#666666", "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "marginLeft" to 10)), "empty-state" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 100)), "empty-text" to _pS(_uM("color" to "#999999", "marginBottom" to 20)), "go-shop-btn" to _pS(_uM("backgroundColor" to "#ff4444", "color" to "#FFFFFF", "paddingTop" to 8, "paddingRight" to 24, "paddingBottom" to 8, "paddingLeft" to 24, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "fontSize" to 14)), "loading-state" to _pS(_uM("textAlign" to "center", "paddingTop" to 50, "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/plan-list.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/plan-list.kt deleted file mode 100644 index d23b4cc1..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/plan-list.kt +++ /dev/null @@ -1,172 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerSubscriptionPlanList : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerSubscriptionPlanList) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerSubscriptionPlanList - val _cache = __ins.renderCache - val loading = ref(true) - val plans = ref(_uA()) - val toFeatureArray = fun(features: Any): UTSArray { - val arr: UTSArray = _uA() - if (features == null) { - return arr - } - if (features is UTSJSONObject) { - val featureMap = (features as UTSJSONObject).toMap() - val entries = featureMap.entries() - run { - var i: Number = 0 - while(i < entries.length){ - val entry = entries[i] - val v = entry.value - val vs = if (UTSAndroid.`typeof`(v) === "string") { - v - } else { - JSON.stringify(v) - } - arr.push(vs) - i++ - } - } - } - return arr - } - val loadPlans = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - loading.value = true - val res = await(supaInstance.from("ml_subscription_plans").select("*", UTSJSONObject()).eq("is_active", true).order("sort_order", OrderOptions(ascending = true)).execute()) - if (UTSArray.isArray(res.data)) { - plans.value = res.data as UTSArray - } else { - plans.value = _uA() - } - } - catch (e: Throwable) { - console.error("加载订阅方案失败:", e, " at pages/mall/consumer/subscription/plan-list.uvue:73") - uni_showToast(ShowToastOptions(title = "加载失败", icon = "none")) - } - finally { - loading.value = false - } - }) - } - val goPlanDetail = fun(p: UTSJSONObject){ - val id = (p["id"] ?: "") as String - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/plan-detail?id=" + id)) - } - val toCheckout = fun(p: UTSJSONObject){ - val id = (p["id"] ?: "") as String - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/subscription/subscribe-checkout?planId=" + id)) - } - onMounted(loadPlans) - return fun(): Any? { - return _cE("view", _uM("class" to "sub-plan-list"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("text", _uM("class" to "title"), "软件订阅") - )), - if (isTrue(!loading.value && plans.value.length > 0)) { - _cE("view", _uM("key" to 0, "class" to "plan-container"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(plans.value, fun(p, __key, __index, _cached): Any { - return _cE("view", _uM("class" to "plan-card", "key" to p["id"], "onClick" to fun(){ - goPlanDetail(p) - }), _uA( - _cE("view", _uM("class" to "plan-header"), _uA( - _cE("text", _uM("class" to "plan-name"), _tD(p["name"]), 1), - if (p["billing_period"] === "yearly") { - _cE("text", _uM("key" to 0, "class" to "badge"), "年付优惠") - } else { - _cC("v-if", true) - } - )), - _cE("text", _uM("class" to "plan-desc"), _tD(if (p["description"] != null && (p["description"] as String).length > 0) { - p["description"] - } else { - "适用于大部分使用场景" - }), 1), - _cE("view", _uM("class" to "price-row"), _uA( - _cE("text", _uM("class" to "price"), "¥" + _tD(p["price"]), 1), - _cE("text", _uM("class" to "period"), "/" + _tD(if (p["billing_period"] === "yearly") { - "年" - } else { - "月" - }), 1) - )), - _cE("view", _uM("class" to "feature-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(toFeatureArray(p["features"]), fun(v, k, __index, _cached): Any { - return _cE("text", _uM("class" to "feature-item", "key" to k), "• " + _tD(v), 1) - }), 128) - )), - _cE("view", _uM("class" to "actions"), _uA( - _cE("button", _uM("class" to "primary", "onClick" to withModifiers(fun(){ - toCheckout(p) - }, _uA( - "stop" - ))), "立即订阅", 8, _uA( - "onClick" - )) - )) - ), 8, _uA( - "onClick" - )) - }), 128) - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(!loading.value && plans.value.length === 0)) { - _cE("view", _uM("key" to 1, "class" to "empty"), _uA( - _cE("text", null, "暂无可用订阅方案") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 2, "class" to "loading"), _uA( - _cE("text", null, "加载中...") - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("sub-plan-list" to _pS(_uM("paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12)), "header" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "space-between", "marginBottom" to 8)), "title" to _pS(_uM("fontSize" to 18, "fontWeight" to "700")), "plan-container" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "plan-card" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)", "marginBottom" to 12, "marginBottom:last-child" to 0)), "plan-header" to _pS(_uM("display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "plan-name" to _pS(_uM("fontSize" to 16, "fontWeight" to "700", "color" to "#333333")), "badge" to _pS(_uM("fontSize" to 12, "color" to "#ffffff", "backgroundImage" to "none", "backgroundColor" to "#3cc51f", "borderTopLeftRadius" to 999, "borderTopRightRadius" to 999, "borderBottomRightRadius" to 999, "borderBottomLeftRadius" to 999, "paddingTop" to 2, "paddingRight" to 8, "paddingBottom" to 2, "paddingLeft" to 8)), "plan-desc" to _pS(_uM("color" to "#666666", "marginTop" to 6, "marginRight" to 0, "marginBottom" to 6, "marginLeft" to 0, "lineHeight" to 1.5)), "price-row" to _pS(_uM("display" to "flex", "alignItems" to "flex-end", "marginTop" to 6, "marginRight" to 0, "marginBottom" to 6, "marginLeft" to 0)), "price" to _pS(_uM("fontSize" to 22, "color" to "#ff4d4f", "fontWeight" to "700", "marginRight" to 4)), "period" to _pS(_uM("color" to "#999999")), "feature-list" to _pS(_uM("color" to "#444444", "display" to "flex", "flexDirection" to "column", "marginTop" to 6, "marginRight" to 0, "marginBottom" to 6, "marginLeft" to 0)), "feature-item" to _pS(_uM("fontSize" to 12, "color" to "#555555", "marginBottom" to 2)), "actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "marginTop" to 8)), "primary" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#3cc51f", "color" to "#ffffff", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12)), "loading" to _pS(_uM("paddingTop" to 24, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "textAlign" to "center", "color" to "#888888")), "empty" to _pS(_uM("paddingTop" to 24, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "textAlign" to "center", "color" to "#888888"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/subscribe-checkout.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/subscribe-checkout.kt deleted file mode 100644 index e7a138ca..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/subscription/subscribe-checkout.kt +++ /dev/null @@ -1,241 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.framework.onLoad as onLoad__1 -import io.dcloud.uniapp.extapi.redirectTo as uni_redirectTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerSubscriptionSubscribeCheckout : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerSubscriptionSubscribeCheckout) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerSubscriptionSubscribeCheckout - val _cache = __ins.renderCache - val planId = ref("") - val loading = ref(true) - val plan = ref(null) - val payMethod = ref(PAYMENT_METHOD["WECHAT"]) - val trialDays = ref(0) - val submitting = ref(false) - onLoad__1(fun(opts: OnLoadOptions): UTSPromise { - return wrapUTSPromise(suspend { - planId.value = (opts["planId"] ?: "") as String - await(loadPlan()) - }) - } - ) - val loadPlan = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - loading.value = true - val res = await(supaInstance.from("ml_subscription_plans").select("*", UTSJSONObject()).eq("id", planId.value).single().execute()) - if (res != null && res.error == null) { - if (UTSArray.isArray(res.data)) { - plan.value = (res.data as UTSArray)[0] ?: null - } else { - plan.value = res.data as UTSJSONObject - } - trialDays.value = (plan.value!!?.get("trial_days") ?: 0) as Number - } else { - plan.value = null - } - } - catch (e: Throwable) { - console.error("加载方案失败:", e, " at pages/mall/consumer/subscription/subscribe-checkout.uvue:84") - } - finally { - loading.value = false - } - }) - } - val selPay = fun(v: Number){ - payMethod.value = v - } - val getCurrentUserId = fun(): String { - try { - val u = uni_getStorageSync("current_user_id") - return if ((u != null)) { - (u as String) - } else { - "" - } - } - catch (e: Throwable) { - return "" - } - } - val confirmSubscribe = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (plan.value == null) { - return@w1 - } - val userId = getCurrentUserId() - if (userId.length === 0) { - uni_showToast(ShowToastOptions(title = "请先登录", icon = "none")) - return@w1 - } - submitting.value = true - try { - val now = Date() - val start = now.toISOString() - var nextBilling: String? = null - if ((plan.value!!?.get("billing_period") ?: "monthly") === "yearly") { - nextBilling = Date(now.getFullYear() + 1, now.getMonth(), now.getDate()).toISOString() - } else { - nextBilling = Date(now.getFullYear(), now.getMonth() + 1, now.getDate()).toISOString() - } - val body: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("body", "pages/mall/consumer/subscription/subscribe-checkout.uvue", 120, 11)) { - var user_id = userId - var plan_id = plan.value!!["id"] - var status = "active" - var start_date = start - var end_date = null - var next_billing_date = nextBilling - var auto_renew = true - var metadata = object : UTSJSONObject() { - var pay_method = payMethod.value - } - } - val ins = await(supaInstance.from("ml_user_subscriptions").insert(body).single?.invoke()?.execute()) - if (ins != null && ins.error == null) { - uni_showToast(ShowToastOptions(title = "订阅成功", icon = "success")) - setTimeout(fun(){ - uni_redirectTo(RedirectToOptions(url = "/pages/main/profile")) - }, 600) - } else { - uni_showToast(ShowToastOptions(title = ins?.error?.message ?: "订阅失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("订阅失败:", e, " at pages/mall/consumer/subscription/subscribe-checkout.uvue:144") - uni_showToast(ShowToastOptions(title = "订阅失败", icon = "none")) - } - finally { - submitting.value = false - } - }) - } - return fun(): Any? { - val _component_radio = resolveComponent("radio") - val _component_label = resolveComponent("label") - return _cE("view", _uM("class" to "subscribe-checkout"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("text", _uM("class" to "title"), "确认订阅") - )), - if (isTrue(loading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading"), "加载中...") - } else { - if (plan.value == null) { - _cE("view", _uM("key" to 1, "class" to "empty"), "未找到订阅方案") - } else { - _cE("view", _uM("key" to 2, "class" to "card"), _uA( - _cE("view", _uM("class" to "row"), _uA( - _cE("text", _uM("class" to "label"), "方案"), - _cE("text", _uM("class" to "value"), _tD(plan.value!!["name"]), 1) - )), - _cE("view", _uM("class" to "row"), _uA( - _cE("text", _uM("class" to "label"), "价格"), - _cE("text", _uM("class" to "value"), "¥" + _tD(plan.value!!["price"]) + " / " + _tD(if (plan.value!!["billing_period"] === "yearly") { - "年" - } else { - "月" - } - ), 1) - )), - if (trialDays.value > 0) { - _cE("view", _uM("key" to 0, "class" to "row"), _uA( - _cE("text", _uM("class" to "label"), "试用期"), - _cE("text", _uM("class" to "value"), _tD(trialDays.value) + " 天", 1) - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "section-title"), "支付方式"), - _cE("view", _uM("class" to "pay-methods"), _uA( - _cV(_component_label, _uM("class" to "pay-item", "onClick" to fun(){ - selPay(1) - } - ), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_radio, _uM("checked" to (payMethod.value === 1)), null, 8, _uA( - "checked" - )), - _cE("text", null, "微信支付") - ) - } - ), "_" to 1), 8, _uA( - "onClick" - )), - _cV(_component_label, _uM("class" to "pay-item", "onClick" to fun(){ - selPay(2) - } - ), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_radio, _uM("checked" to (payMethod.value === 2)), null, 8, _uA( - "checked" - )), - _cE("text", null, "支付宝") - ) - } - ), "_" to 1), 8, _uA( - "onClick" - )), - _cV(_component_label, _uM("class" to "pay-item", "onClick" to fun(){ - selPay(4) - } - ), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_radio, _uM("checked" to (payMethod.value === 4)), null, 8, _uA( - "checked" - )), - _cE("text", null, "余额") - ) - } - ), "_" to 1), 8, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "actions"), _uA( - _cE("button", _uM("class" to "primary", "disabled" to submitting.value, "onClick" to confirmSubscribe), "确认并支付", 8, _uA( - "disabled" - )) - )) - )) - } - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("subscribe-checkout" to _pS(_uM("paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12)), "header" to _pS(_uM("marginBottom" to 8)), "title" to _pS(_uM("fontSize" to 18, "fontWeight" to "700")), "card" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "boxShadow" to "0 2px 8px rgba(0,0,0,0.05)")), "row" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f0f0f0", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "label" to _pS(_uM("color" to "#666666")), "value" to _pS(_uM("color" to "#111111", "fontWeight" to "700")), "section-title" to _pS(_uM("marginTop" to 12, "fontWeight" to "700")), "pay-methods" to _pS(_uM("display" to "flex", "flexDirection" to "column", "paddingTop" to 8, "paddingRight" to 0, "paddingBottom" to 8, "paddingLeft" to 0)), "pay-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "marginBottom" to 8, "marginBottom:last-child" to 0)), "pay-icon" to _pS(_uM("marginRight" to 8)), "actions" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end", "marginTop" to 12)), "primary" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "#3cc51f", "color" to "#ffffff", "borderTopLeftRadius" to 6, "borderTopRightRadius" to 6, "borderBottomRightRadius" to 6, "borderBottomLeftRadius" to 6, "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12)), "loading" to _pS(_uM("paddingTop" to 24, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "textAlign" to "center", "color" to "#888888")), "empty" to _pS(_uM("paddingTop" to 24, "paddingRight" to 24, "paddingBottom" to 24, "paddingLeft" to 24, "textAlign" to "center", "color" to "#888888"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/wallet.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/wallet.kt deleted file mode 100644 index d4f1b876..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/wallet.kt +++ /dev/null @@ -1,501 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerWallet : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerWallet) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerWallet - val _cache = __ins.renderCache - val balance = ref(0) - val stats = ref(StatsType(totalRecharge = 0, totalConsume = 0, totalWithdraw = 0)) - val transactions = ref(_uA()) - val activeFilter = ref("all") - val isLoading = ref(false) - val currentPage = ref(1) - val pageSize = ref(20) - val hasMore = ref(true) - val showRechargePopup = ref(false) - val rechargeAmount = ref("") - val quickAmounts: UTSArray = _uA( - 50, - 100, - 200, - 500, - 1000 - ) - val getCurrentUserId = fun(): String { - val userStore = uni_getStorageSync("userInfo") - if (userStore == null) { - return "" - } - val userInfo = userStore as UTSJSONObject - return userInfo.getString("id") ?: "" - } - val resetTransactions = fun(): Unit { - transactions.value = _uA() - currentPage.value = 1 - hasMore.value = true - } - val loadBalance = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val realBalance = await(supabaseService.getUserBalanceNumber()) - balance.value = realBalance - val statsData: StatsType = StatsType(totalRecharge = 0, totalConsume = 0, totalWithdraw = 0) - stats.value = statsData - } - catch (err: Throwable) { - console.error("加载钱包异常:", err, " at pages/mall/consumer/wallet.uvue:247") - } - }) - } - val loadTransactions = fun(loadMore: Boolean): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (isLoading.value || (hasMore.value === false && loadMore)) { - return@w1 - } - isLoading.value = true - try { - val userId = getCurrentUserId() - if (userId == "") { - isLoading.value = false - return@w1 - } - val page = if (loadMore) { - currentPage.value + 1 - } else { - 1 - } - val limit: Number = 20 - val data = await(supabaseService.getTransactions(page, limit)) - val mappedData: UTSArray = _uA() - run { - var i: Number = 0 - while(i < data.length){ - val item = data[i] - var id = "" - var amount: Number = 0 - var balanceAfter: Number = 0 - var type = "" - var remark = "" - var createdAt = "" - if (item is UTSJSONObject) { - id = (item as UTSJSONObject).getString("id") ?: "" - amount = (item as UTSJSONObject).getNumber("amount") ?: 0 - balanceAfter = (item as UTSJSONObject).getNumber("balance_after") ?: 0 - type = (item as UTSJSONObject).getString("type") ?: "consume" - remark = (item as UTSJSONObject).getString("description") ?: "" - createdAt = (item as UTSJSONObject).getString("created_at") ?: "" - } else { - val itemObj = item as UTSJSONObject - id = itemObj.getString("id") ?: "" - amount = itemObj.getNumber("amount") ?: 0 - balanceAfter = itemObj.getNumber("balance_after") ?: 0 - type = itemObj.getString("type") ?: "consume" - remark = itemObj.getString("description") ?: "" - createdAt = itemObj.getString("created_at") ?: "" - } - val transaction: TransactionType = TransactionType(id = id, user_id = userId, change_amount = amount, amount = amount, current_balance = balanceAfter, change_type = type, type = type, related_id = null, remark = remark, created_at = createdAt) - mappedData.push(transaction) - i++ - } - } - if (loadMore) { - run { - var i: Number = 0 - while(i < mappedData.length){ - transactions.value.push(mappedData[i]) - i++ - } - } - currentPage.value = page - } else { - transactions.value = mappedData - currentPage.value = 1 - } - hasMore.value = mappedData.length >= limit - } - catch (err: Throwable) { - console.error("加载交易记录失败:", err, " at pages/mall/consumer/wallet.uvue:325") - } - finally { - isLoading.value = false - } - }) - } - val loadWalletData = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - val userId = getCurrentUserId() - if (userId == "") { - return@w1 - } - loadBalance() - loadTransactions(false) - }) - } - val canRecharge = computed(fun(): Boolean { - val amount = parseFloat(rechargeAmount.value) - if (amount == null || amount < 10 || amount > 5000) { - return false - } - return true - } - ) - watch(activeFilter, fun(){ - resetTransactions() - loadTransactions(false) - } - ) - onShow__1(fun(){ - loadWalletData() - } - ) - val getTransactionIcon = fun(type: String): String { - if (type === "recharge") { - return "💳" - } - if (type === "consume") { - return "🛒" - } - if (type === "withdraw") { - return "🏦" - } - if (type === "refund") { - return "🔄" - } - if (type === "reward") { - return "🎁" - } - if (type === "income") { - return "💰" - } - if (type === "expense") { - return "📤" - } - return "💰" - } - val getTransactionTitle = fun(type: String): String { - if (type === "recharge") { - return "账户充值" - } - if (type === "consume") { - return "商品消费" - } - if (type === "withdraw") { - return "余额提现" - } - if (type === "refund") { - return "订单退款" - } - if (type === "reward") { - return "活动奖励" - } - if (type === "income") { - return "收入" - } - if (type === "expense") { - return "支出" - } - return "交易" - } - val formatTime = fun(timeStr: String): String { - val date = Date(timeStr) - val month = (date.getMonth() + 1).toString(10).padStart(2, "0") - val day = date.getDate().toString(10).padStart(2, "0") - val hours = date.getHours().toString(10).padStart(2, "0") - val minutes = date.getMinutes().toString(10).padStart(2, "0") - return "" + month + "-" + day + " " + hours + ":" + minutes - } - val recharge = fun(){ - showRechargePopup.value = true - rechargeAmount.value = "" - } - val withdraw = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/withdraw")) - } - val goToCoupons = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/coupons")) - } - val goToRedPackets = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/red-packets/index")) - } - val goToPoints = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/points/index")) - } - val goToBankCards = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bank-cards/index")) - } - val changeFilter = fun(filter: String){ - activeFilter.value = filter - } - val selectQuickAmount = fun(amount: Number): Unit { - rechargeAmount.value = amount.toString(10) - } - val closeRechargePopup = fun(): Unit { - showRechargePopup.value = false - rechargeAmount.value = "" - } - val confirmRecharge = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (canRecharge.value === false) { - return@w1 - } - val amount = parseFloat(rechargeAmount.value) - if (amount == null || amount < 10 || amount > 5000) { - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "处理中...")) - try { - val success = await(supabaseService.rechargeBalance(amount)) - if (success) { - uni_showToast(ShowToastOptions(title = "充值成功", icon = "success")) - closeRechargePopup() - loadWalletData() - } else { - uni_showToast(ShowToastOptions(title = "充值失败", icon = "none")) - } - } - catch (e: Throwable) { - console.error("充值异常:", e, " at pages/mall/consumer/wallet.uvue:509") - uni_showToast(ShowToastOptions(title = "系统异常,请稍后重试", icon = "none")) - } - finally { - uni_hideLoading() - } - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "wallet-page"), _uA( - _cE("scroll-view", _uM("class" to "wallet-content", "scroll-y" to ""), _uA( - _cE("view", _uM("class" to "dashboard-container"), _uA( - _cE("view", _uM("class" to "dashboard-main"), _uA( - _cE("view", _uM("class" to "balance-overview"), _uA( - _cE("text", _uM("class" to "balance-label"), "账户余额"), - _cE("text", _uM("class" to "balance-value"), "¥" + _tD(balance.value.toFixed(2)), 1), - _cE("view", _uM("class" to "balance-actions"), _uA( - _cE("button", _uM("class" to "action-btn recharge", "onClick" to recharge), "充值"), - _cE("button", _uM("class" to "action-btn withdraw", "onClick" to withdraw), "提现") - )) - )), - _cE("view", _uM("class" to "assets-stats"), _uA( - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-label"), "累计充值"), - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(stats.value.totalRecharge.toFixed(2)), 1) - )), - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-label"), "累计消费"), - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(stats.value.totalConsume.toFixed(2)), 1) - )), - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-label"), "累计提现"), - _cE("text", _uM("class" to "stat-value"), "¥" + _tD(stats.value.totalWithdraw.toFixed(2)), 1) - )) - )), - _cE("view", _uM("class" to "quick-actions"), _uA( - _cE("view", _uM("class" to "action-grid"), _uA( - _cE("view", _uM("class" to "action-item", "onClick" to goToCoupons), _uA( - _cE("text", _uM("class" to "action-icon"), "🎫"), - _cE("text", _uM("class" to "action-text"), "优惠券") - )), - _cE("view", _uM("class" to "action-item", "onClick" to goToRedPackets), _uA( - _cE("text", _uM("class" to "action-icon"), "🧧"), - _cE("text", _uM("class" to "action-text"), "红包") - )), - _cE("view", _uM("class" to "action-item", "onClick" to goToPoints), _uA( - _cE("text", _uM("class" to "action-icon"), "⭐"), - _cE("text", _uM("class" to "action-text"), "积分") - )), - _cE("view", _uM("class" to "action-item", "onClick" to goToBankCards), _uA( - _cE("text", _uM("class" to "action-icon"), "💳"), - _cE("text", _uM("class" to "action-text"), "银行卡") - )) - )) - )), - _cE("view", _uM("class" to "security-tips"), _uA( - _cE("text", _uM("class" to "tip-title"), "安全提示"), - _cE("text", _uM("class" to "tip-item"), "1. 请妥善保管您的支付密码"), - _cE("text", _uM("class" to "tip-item"), "2. 不要向他人透露您的账户信息"), - _cE("text", _uM("class" to "tip-item"), "3. 定期修改密码以确保账户安全") - )) - )), - _cE("view", _uM("class" to "dashboard-side"), _uA( - _cE("view", _uM("class" to "transactions-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "交易记录"), - _cE("view", _uM("class" to "filter-tabs"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeFilter.value === "all")) - )), "onClick" to fun(){ - changeFilter("all") - } - ), "全部", 10, _uA( - "onClick" - )), - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeFilter.value === "income")) - )), "onClick" to fun(){ - changeFilter("income") - } - ), "收入", 10, _uA( - "onClick" - )), - _cE("text", _uM("class" to _nC(_uA( - "filter-tab", - _uM("active" to (activeFilter.value === "expense")) - )), "onClick" to fun(){ - changeFilter("expense") - } - ), "支出", 10, _uA( - "onClick" - )) - )) - )), - if (isTrue(transactions.value.length === 0 && isLoading.value === false)) { - _cE("view", _uM("key" to 0, "class" to "empty-transactions"), _uA( - _cE("text", _uM("class" to "empty-icon"), "💰"), - _cE("text", _uM("class" to "empty-text"), "暂无交易记录"), - _cE("text", _uM("class" to "empty-subtext"), "快去使用钱包功能吧") - )) - } else { - _cC("v-if", true) - } - , - _cE("view", _uM("class" to "transactions-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(transactions.value, fun(transaction, __key, __index, _cached): Any { - return _cE("view", _uM("key" to transaction.id, "class" to "transaction-item"), _uA( - _cE("view", _uM("class" to "transaction-left"), _uA( - _cE("text", _uM("class" to "transaction-icon"), _tD(getTransactionIcon(transaction.type)), 1), - _cE("view", _uM("class" to "transaction-info"), _uA( - _cE("text", _uM("class" to "transaction-title"), _tD(getTransactionTitle(transaction.type)), 1), - _cE("text", _uM("class" to "transaction-time"), _tD(formatTime(transaction.created_at)), 1), - if (isTrue(transaction.remark)) { - _cE("text", _uM("key" to 0, "class" to "transaction-remark"), _tD(transaction.remark), 1) - } else { - _cC("v-if", true) - } - )) - )), - _cE("view", _uM("class" to "transaction-right"), _uA( - _cE("text", _uM("class" to _nC(_uA( - "transaction-amount", - _uM("income" to (transaction.amount > 0), "expense" to (transaction.amount < 0)) - ))), _tD(if (transaction.amount > 0) { - "+" - } else { - "" - } - ) + "¥" + _tD(Math.abs(transaction.amount).toFixed(2)), 3), - _cE("text", _uM("class" to "transaction-balance"), "余额: ¥" + _tD(transaction.current_balance.toFixed(2)), 1) - )) - )) - } - ), 128) - )), - if (isTrue(isLoading.value)) { - _cE("view", _uM("key" to 1, "class" to "loading-more"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - _cC("v-if", true) - } - , - if (isTrue(hasMore.value === false && transactions.value.length > 0)) { - _cE("view", _uM("key" to 2, "class" to "no-more"), _uA( - _cE("text", _uM("class" to "no-more-text"), "没有更多记录了") - )) - } else { - _cC("v-if", true) - } - )) - )) - )) - )), - if (isTrue(showRechargePopup.value)) { - _cE("view", _uM("key" to 0, "class" to "recharge-popup"), _uA( - _cE("view", _uM("class" to "popup-mask", "onClick" to closeRechargePopup)), - _cE("view", _uM("class" to "popup-content"), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "充值"), - _cE("text", _uM("class" to "popup-close", "onClick" to closeRechargePopup), "×") - )), - _cE("view", _uM("class" to "popup-body"), _uA( - _cE("text", _uM("class" to "amount-label"), "充值金额"), - _cE("view", _uM("class" to "amount-input"), _uA( - _cE("text", _uM("class" to "currency-symbol"), "¥"), - _cE("input", _uM("class" to "amount-field", "modelValue" to rechargeAmount.value, "onInput" to fun(`$event`: UniInputEvent){ - rechargeAmount.value = `$event`.detail.value - }, "type" to "number", "placeholder" to "请输入充值金额", "focus" to ""), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "quick-amounts"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(quickAmounts, fun(amount, __key, __index, _cached): Any { - return _cE("text", _uM("key" to amount, "class" to _nC(_uA( - "quick-amount", - _uM("active" to (rechargeAmount.value === amount.toString(10))) - )), "onClick" to fun(){ - selectQuickAmount(amount) - }), " ¥" + _tD(amount), 11, _uA( - "onClick" - )) - }), 64) - )), - _cE("text", _uM("class" to "recharge-tip"), "单笔充值最低10元,最高5000元") - )), - _cE("view", _uM("class" to "popup-footer"), _uA( - _cE("button", _uM("class" to "cancel-btn", "onClick" to closeRechargePopup), "取消"), - _cE("button", _uM("class" to _nC(_uA( - "confirm-btn", - _uM("disabled" to (canRecharge.value === false)) - )), "onClick" to confirmRecharge), " 确认充值 ", 2) - )) - )) - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("wallet-page" to _pS(_uM("display" to "flex", "flexDirection" to "column", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "wallet-content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "dashboard-container" to _pS(_uM("display" to "flex", "flexDirection" to "column", "paddingBottom" to 20)), "dashboard-main" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "dashboard-side" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "balance-overview" to _pS(_uM("backgroundImage" to "linear-gradient(135deg, #667eea 0%, #764ba2 100%)", "backgroundColor" to "rgba(0,0,0,0)", "paddingTop" to 30, "paddingRight" to 20, "paddingBottom" to 30, "paddingLeft" to 20, "color" to "#ffffff")), "balance-label" to _pS(_uM("fontSize" to 14, "opacity" to 0.9, "marginBottom" to 10, "textAlign" to "center")), "balance-value" to _pS(_uM("fontSize" to 36, "fontWeight" to "bold", "marginBottom" to 20, "textAlign" to "center")), "balance-actions" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "action-btn" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 40, "borderTopLeftRadius" to 20, "borderTopRightRadius" to 20, "borderBottomRightRadius" to 20, "borderBottomLeftRadius" to 20, "fontSize" to 14, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000"), ".recharge" to _uM("backgroundColor" to "#ffffff", "color" to "#667eea", "marginRight" to 20), ".withdraw" to _uM("backgroundColor" to "rgba(255,255,255,0.2)", "color" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.5)", "borderRightColor" to "rgba(255,255,255,0.5)", "borderBottomColor" to "rgba(255,255,255,0.5)", "borderLeftColor" to "rgba(255,255,255,0.5)")), "assets-stats" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "boxShadow" to "0 2px 8px rgba(0, 0, 0, 0.1)")), "stat-item" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "textAlign" to "center")), "stat-label" to _pS(_uM("fontSize" to 12, "color" to "#666666", "marginBottom" to 8)), "stat-value" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "quick-actions" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "action-grid" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center")), "action-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "action-icon" to _pS(_uM("fontSize" to 28, "marginBottom" to 8)), "action-text" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "transactions-section" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 15)), "section-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333")), "filter-tab" to _uM("" to _uM("fontSize" to 14, "color" to "#666666", "paddingTop" to 5, "paddingRight" to 0, "paddingBottom" to 5, "paddingLeft" to 0, "position" to "relative", "marginRight" to 15, "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0)"), ".active" to _uM("color" to "#007aff", "fontWeight" to "bold", "borderBottomWidth" to 2, "borderBottomStyle" to "solid", "borderBottomColor" to "#007aff")), "empty-transactions" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 40, "paddingRight" to 20, "paddingBottom" to 40, "paddingLeft" to 20)), "empty-icon" to _pS(_uM("fontSize" to 60, "marginBottom" to 20)), "empty-text" to _pS(_uM("fontSize" to 16, "color" to "#666666", "marginBottom" to 10)), "empty-subtext" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "transactions-list" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "transaction-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "flex-start", "paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "transaction-left" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "flex-start")), "transaction-icon" to _pS(_uM("fontSize" to 24, "marginRight" to 15)), "transaction-info" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "transaction-title" to _pS(_uM("fontSize" to 14, "color" to "#333333", "fontWeight" to "bold", "marginBottom" to 5)), "transaction-time" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginBottom" to 3)), "transaction-remark" to _pS(_uM("fontSize" to 12, "color" to "#666666")), "transaction-right" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "flex-end")), "transaction-amount" to _uM("" to _uM("fontSize" to 16, "fontWeight" to "bold", "marginBottom" to 5), ".income" to _uM("color" to "#4caf50"), ".expense" to _uM("color" to "#333333")), "transaction-balance" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "loading-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center")), "no-more" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "textAlign" to "center")), "loading-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "no-more-text" to _pS(_uM("color" to "#999999", "fontSize" to 14)), "security-tips" to _pS(_uM("backgroundColor" to "#ffffff", "marginTop" to 10, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "tip-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold", "color" to "#333333", "marginBottom" to 15)), "tip-item" to _pS(_uM("marginBottom" to 8, "fontSize" to 12, "color" to "#666666", "lineHeight" to 1.6, "marginBottom:last-child" to 0)), "recharge-popup" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "zIndex" to 999)), "popup-mask" to _pS(_uM("position" to "absolute", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)")), "popup-content" to _pS(_uM("position" to "absolute", "bottom" to 0, "left" to 0, "right" to 0, "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "popup-header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 20, "paddingBottom" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#e5e5e5")), "popup-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "popup-close" to _pS(_uM("fontSize" to 24, "color" to "#999999", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5)), "popup-body" to _pS(_uM("marginBottom" to 20)), "amount-label" to _pS(_uM("fontSize" to 14, "color" to "#333333", "marginBottom" to 10)), "amount-input" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 20, "paddingTop" to 10, "paddingRight" to 10, "paddingBottom" to 10, "paddingLeft" to 10, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8)), "currency-symbol" to _pS(_uM("fontSize" to 20, "color" to "#333333", "marginRight" to 10)), "amount-field" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 24, "fontWeight" to "bold", "color" to "#333333")), "quick-amounts" to _pS(_uM("display" to "flex", "flexDirection" to "row", "flexWrap" to "wrap", "marginBottom" to 15)), "quick-amount" to _uM("" to _uM("paddingTop" to 8, "paddingRight" to 15, "paddingBottom" to 8, "paddingLeft" to 15, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e5e5", "borderRightColor" to "#e5e5e5", "borderBottomColor" to "#e5e5e5", "borderLeftColor" to "#e5e5e5", "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15, "fontSize" to 14, "color" to "#333333", "marginRight" to 10, "marginBottom" to 10), ".active" to _uM("backgroundColor" to "#007aff", "color" to "#ffffff", "borderTopColor" to "#007aff", "borderRightColor" to "#007aff", "borderBottomColor" to "#007aff", "borderLeftColor" to "#007aff")), "recharge-tip" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "popup-footer" to _pS(_uM("display" to "flex", "flexDirection" to "row")), "cancel-btn" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 45, "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#f5f5f5", "color" to "#666666", "marginRight" to 15)), "confirm-btn" to _uM("" to _uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 45, "borderTopLeftRadius" to 22.5, "borderTopRightRadius" to 22.5, "borderBottomRightRadius" to 22.5, "borderBottomLeftRadius" to 22.5, "fontSize" to 16, "fontWeight" to "bold", "borderTopWidth" to "medium", "borderRightWidth" to "medium", "borderBottomWidth" to "medium", "borderLeftWidth" to "medium", "borderTopStyle" to "none", "borderRightStyle" to "none", "borderBottomStyle" to "none", "borderLeftStyle" to "none", "borderTopColor" to "#000000", "borderRightColor" to "#000000", "borderBottomColor" to "#000000", "borderLeftColor" to "#000000", "backgroundColor" to "#007aff", "color" to "#ffffff"), ".disabled" to _uM("backgroundColor" to "#cccccc", "opacity" to 0.6))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/mall/consumer/withdraw.kt b/unpackage/cache/.app-android/src/pages/mall/consumer/withdraw.kt deleted file mode 100644 index 79ad26e1..00000000 --- a/unpackage/cache/.app-android/src/pages/mall/consumer/withdraw.kt +++ /dev/null @@ -1,258 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesMallConsumerWithdraw : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesMallConsumerWithdraw) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesMallConsumerWithdraw - val _cache = __ins.renderCache - val amount = ref("") - val balance = ref(0.00) - val loading = ref(false) - val bankCards = ref(_uA()) - val selectedBank = ref(null) - val showBankPopup = ref(false) - val isValid = computed(fun(): Boolean { - val kVal = parseFloat(amount.value) - if (kVal == null || kVal <= 0) { - return false - } - if (kVal > balance.value) { - return false - } - if (selectedBank.value == null) { - return false - } - return true - } - ) - val loadData = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val bal = await(supabaseService.getUserBalanceNumber()) - balance.value = bal - val res = await(supabaseService.getUserBankCards()) - val list: UTSArray = _uA() - run { - var i: Number = 0 - while(i < res.length){ - val item = res[i] - var id = "" - var bankName = "" - var cardNum = "" - if (item is UTSJSONObject) { - id = (item as UTSJSONObject).getString("id") ?: "" - bankName = (item as UTSJSONObject).getString("bank_name") ?: "" - cardNum = (item as UTSJSONObject).getString("card_number") ?: "" - } else { - val itemObj = item as UTSJSONObject - id = itemObj.getString("id") ?: "" - bankName = itemObj.getString("bank_name") ?: "" - cardNum = itemObj.getString("card_number") ?: "" - } - if (id != "") { - val card: BankCard = BankCard(id = id, bank_name = bankName, card_number = cardNum) - list.push(card) - } - i++ - } - } - bankCards.value = list - if (bankCards.value.length > 0) { - selectedBank.value = bankCards.value[0] - } - } - catch (e: Throwable) { - console.error(e, " at pages/mall/consumer/withdraw.uvue:140") - } - }) - } - onMounted(fun(){ - loadData() - } - ) - val getTailNumber = fun(cardNo: String?): String { - if (cardNo == null) { - return "" - } - if (cardNo.length <= 4) { - return cardNo - } - return cardNo.substring(cardNo.length - 4) - } - val setAll = fun(){ - amount.value = balance.value.toString(10) - } - val openBankSelector = fun(){ - showBankPopup.value = true - } - val selectBank = fun(bank: BankCard){ - selectedBank.value = bank - showBankPopup.value = false - } - val navigateToAddCard = fun(){ - uni_navigateTo(NavigateToOptions(url = "/pages/mall/consumer/bank-cards/add")) - showBankPopup.value = false - } - val submitWithdraw = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (isValid.value === false) { - return@w1 - } - loading.value = true - try { - val kVal = parseFloat(amount.value) - val success = await(supabaseService.withdrawBalance(kVal)) - if (success) { - uni_showToast(ShowToastOptions(title = "提现申请已提交", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - }, 1500) - } else { - uni_showToast(ShowToastOptions(title = "提现失败, " + (if (kVal > balance.value) { - "余额不足" - } else { - "请重试" - } - ), icon = "none")) - } - } - catch (e: Throwable) { - uni_showToast(ShowToastOptions(title = "系统异常", icon = "none")) - } - finally { - loading.value = false - } - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "page-container"), _uA( - _cE("view", _uM("class" to "card"), _uA( - _cE("view", _uM("class" to "section-title"), "提现至"), - _cE("view", _uM("class" to "bank-selector", "onClick" to openBankSelector), _uA( - if (selectedBank.value != null) { - _cE("view", _uM("key" to 0, "class" to "bank-info"), _uA( - _cE("text", _uM("class" to "bank-name"), _tD(selectedBank.value!!.bank_name), 1), - _cE("text", _uM("class" to "card-type"), "储蓄卡"), - _cE("text", _uM("class" to "card-no"), "尾号 " + _tD(getTailNumber(selectedBank.value!!.card_number)), 1) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "bank-info placeholder"), _uA( - _cE("text", null, "请选择到账银行卡") - )) - } - , - _cE("text", _uM("class" to "arrow"), ">") - )), - _cE("view", _uM("class" to "amount-section"), _uA( - _cE("text", _uM("class" to "label"), "提现金额"), - _cE("view", _uM("class" to "input-wrapper"), _uA( - _cE("text", _uM("class" to "currency"), "¥"), - _cE("input", _uM("class" to "amount-input", "type" to "digit", "modelValue" to amount.value, "onInput" to fun(`$event`: UniInputEvent){ - amount.value = `$event`.detail.value - } - , "placeholder" to "请输入提现金额"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "balance-line"), _uA( - _cE("text", _uM("class" to "balance-text"), "当前可提现余额 ¥" + _tD(balance.value), 1), - _cE("text", _uM("class" to "all-btn", "onClick" to setAll), "全部提现") - )) - )), - _cE("button", _uM("class" to "submit-btn", "disabled" to (isValid.value === false), "loading" to loading.value, "onClick" to submitWithdraw), _tD(if (loading.value) { - "处理中..." - } else { - "确认提现" - } - ), 9, _uA( - "disabled", - "loading" - )) - )), - if (isTrue(showBankPopup.value)) { - _cE("view", _uM("key" to 0, "class" to "popup-mask", "onClick" to fun(){ - showBankPopup.value = false - }), _uA( - _cE("view", _uM("class" to "popup-content", "onClick" to withModifiers(fun(){}, _uA( - "stop" - ))), _uA( - _cE("view", _uM("class" to "popup-header"), _uA( - _cE("text", _uM("class" to "popup-title"), "选择到账银行卡"), - _cE("text", _uM("class" to "close-btn", "onClick" to fun(){ - showBankPopup.value = false - }), "×", 8, _uA( - "onClick" - )) - )), - _cE("scroll-view", _uM("scroll-y" to "true", "class" to "bank-list"), _uA( - _cE(Fragment, null, RenderHelpers.renderList(bankCards.value, fun(item, index, __index, _cached): Any { - return _cE("view", _uM("key" to index, "class" to "bank-item", "onClick" to fun(){ - selectBank(item) - }), _uA( - _cE("view", _uM("class" to "bank-row"), _uA( - _cE("text", _uM("class" to "bank-name-popup"), _tD(item.bank_name), 1), - _cE("text", _uM("class" to "card-no-popup"), "(" + _tD(getTailNumber(item.card_number)) + ")", 1) - )), - if (isTrue(selectedBank.value != null && selectedBank.value!!.id == item.id)) { - _cE("text", _uM("key" to 0, "class" to "check"), "✓") - } else { - _cC("v-if", true) - } - ), 8, _uA( - "onClick" - )) - }), 128), - _cE("view", _uM("class" to "add-card-btn", "onClick" to navigateToAddCard), _uA( - _cE("text", null, "+ 添加银行卡") - )) - )) - ), 8, _uA( - "onClick" - )) - ), 8, _uA( - "onClick" - )) - } else { - _cC("v-if", true) - } - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-container" to _pS(_uM("backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "card" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 12, "borderTopRightRadius" to 12, "borderBottomRightRadius" to 12, "borderBottomLeftRadius" to 12, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20)), "section-title" to _pS(_uM("fontSize" to 16, "color" to "#333333", "marginBottom" to 15)), "bank-selector" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee")), "bank-info" to _pS(_uM("display" to "flex", "alignItems" to "center")), "bank-name" to _pS(_uM("marginRight" to 10, "fontWeight" to "bold")), "card-type" to _pS(_uM("marginRight" to 10)), "placeholder" to _pS(_uM("color" to "#999999")), "amount-section" to _pS(_uM("marginTop" to 20)), "label" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 10)), "input-wrapper" to _pS(_uM("display" to "flex", "alignItems" to "center", "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "paddingBottom" to 10, "marginBottom" to 10)), "currency" to _pS(_uM("fontSize" to 30, "fontWeight" to "bold", "marginRight" to 10)), "amount-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 30, "fontWeight" to "bold", "height" to 40)), "balance-line" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "fontSize" to 12)), "balance-text" to _pS(_uM("color" to "#999999")), "all-btn" to _pS(_uM("color" to "#5785e5")), "submit-btn" to _pS(_uM("marginTop" to 40, "backgroundColor" to "#5785e5", "color" to "#ffffff", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "backgroundColor:disabled" to "#cccccc")), "popup-mask" to _pS(_uM("position" to "fixed", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0, "backgroundColor" to "rgba(0,0,0,0.5)", "zIndex" to 999, "display" to "flex", "justifyContent" to "center", "alignItems" to "flex-end")), "popup-content" to _pS(_uM("backgroundColor" to "#ffffff", "width" to "100%", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "minHeight" to 300)), "popup-header" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "marginBottom" to 20)), "popup-title" to _pS(_uM("fontSize" to 16, "fontWeight" to "bold")), "close-btn" to _pS(_uM("fontSize" to 20, "color" to "#999999", "paddingTop" to 5, "paddingRight" to 5, "paddingBottom" to 5, "paddingLeft" to 5)), "bank-item" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5")), "add-card-btn" to _pS(_uM("paddingTop" to 15, "paddingRight" to 0, "paddingBottom" to 15, "paddingLeft" to 0, "textAlign" to "center", "color" to "#5785e5", "fontWeight" to "bold"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/bind-email.kt b/unpackage/cache/.app-android/src/pages/user/bind-email.kt deleted file mode 100644 index edc22d26..00000000 --- a/unpackage/cache/.app-android/src/pages/user/bind-email.kt +++ /dev/null @@ -1,123 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserBindEmail : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserBindEmail) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserBindEmail - val _cache = __ins.renderCache - val email = ref("") - val code = ref("") - val counting = ref(false) - val count = ref(60) - var timer: Number = 0 - val sendCode = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (counting.value) { - return@w1 - } - if (email.value == "" || email.value.includes("@") == false) { - uni_showToast(ShowToastOptions(title = "请输入正确的邮箱", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "发送中...")) - uni_hideLoading() - counting.value = true - count.value = 60 - timer = setInterval(fun(){ - count.value-- - if (count.value <= 0) { - clearInterval(timer) - counting.value = false - } - } - , 1000) - uni_showToast(ShowToastOptions(title = "验证码已发送", icon = "none")) - }) - } - val handleSubmit = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (email.value == "" || code.value == "") { - uni_showToast(ShowToastOptions(title = "请填写完整信息", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "绑定中...")) - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "绑定成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "page-container"), _uA( - _cE("view", _uM("class" to "form-group"), _uA( - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "邮箱"), - _cE("input", _uM("class" to "input", "type" to "text", "placeholder" to "请输入邮箱地址", "modelValue" to email.value, "onInput" to fun(`$event`: UniInputEvent){ - email.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "验证码"), - _cE("input", _uM("class" to "input", "type" to "number", "placeholder" to "请输入验证码", "modelValue" to code.value, "onInput" to fun(`$event`: UniInputEvent){ - code.value = `$event`.detail.value - } - , "maxlength" to "6"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "code-btn", "onClick" to sendCode), _tD(if (counting.value) { - "" + count.value + "s" - } else { - "获取验证码" - } - ), 1) - )) - )), - _cE("button", _uM("class" to "submit-btn", "onClick" to handleSubmit), "确认绑定") - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-container" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "form-group" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 20)), "input-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "label" to _pS(_uM("width" to 70, "fontSize" to 14, "color" to "#333333")), "input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333")), "code-btn" to _pS(_uM("fontSize" to 12, "color" to "#ff4444", "paddingTop" to 5, "paddingRight" to 10, "paddingBottom" to 5, "paddingLeft" to 10, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff4444", "borderRightColor" to "#ff4444", "borderBottomColor" to "#ff4444", "borderLeftColor" to "#ff4444", "borderTopLeftRadius" to 4, "borderTopRightRadius" to 4, "borderBottomRightRadius" to 4, "borderBottomLeftRadius" to 4)), "submit-btn" to _pS(_uM("backgroundColor" to "#ff4444", "color" to "#FFFFFF", "fontSize" to 16, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "textAlign" to "center"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/bind-phone.kt b/unpackage/cache/.app-android/src/pages/user/bind-phone.kt deleted file mode 100644 index 495a7efe..00000000 --- a/unpackage/cache/.app-android/src/pages/user/bind-phone.kt +++ /dev/null @@ -1,131 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.getStorageSync as uni_getStorageSync -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserBindPhone : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserBindPhone) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserBindPhone - val _cache = __ins.renderCache - val phone = ref("") - val code = ref("") - val counting = ref(false) - val count = ref(60) - var timer: Number = 0 - val sendCode = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (counting.value) { - return@w1 - } - if (phone.value == "" || phone.value.length != 11) { - uni_showToast(ShowToastOptions(title = "请输入正确的手机号", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "发送中...")) - uni_hideLoading() - counting.value = true - count.value = 60 - timer = setInterval(fun(){ - count.value-- - if (count.value <= 0) { - clearInterval(timer) - counting.value = false - } - } - , 1000) - uni_showToast(ShowToastOptions(title = "验证码已发送", icon = "none")) - }) - } - val handleSubmit = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (phone.value == "" || code.value == "") { - uni_showToast(ShowToastOptions(title = "请填写完整信息", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "绑定中...")) - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "绑定成功", icon = "success")) - val userInfoRaw = uni_getStorageSync("userInfo") - if (userInfoRaw != null) { - val userInfo = userInfoRaw as UTSJSONObject - userInfo.set("phone", phone.value) - uni_setStorageSync("userInfo", userInfo) - } - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "page-container"), _uA( - _cE("view", _uM("class" to "form-group"), _uA( - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "手机号"), - _cE("input", _uM("class" to "input", "type" to "number", "placeholder" to "请输入新手机号", "modelValue" to phone.value, "onInput" to fun(`$event`: UniInputEvent){ - phone.value = `$event`.detail.value - } - , "maxlength" to "11"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "验证码"), - _cE("input", _uM("class" to "input", "type" to "number", "placeholder" to "请输入验证码", "modelValue" to code.value, "onInput" to fun(`$event`: UniInputEvent){ - code.value = `$event`.detail.value - } - , "maxlength" to "6"), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "code-btn", "onClick" to sendCode), _tD(if (counting.value) { - "" + count.value + "s" - } else { - "获取验证码" - } - ), 1) - )) - )), - _cE("button", _uM("class" to "submit-btn", "onClick" to handleSubmit), "确认绑定") - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-container" to _pS(_uM("paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "backgroundColor" to "#ffffff", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginBottom" to 30)), "input-item" to _pS(_uM("display" to "flex", "alignItems" to "center", "height" to 50, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "label" to _pS(_uM("width" to 70, "fontSize" to 14, "color" to "#333333")), "input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14)), "code-btn" to _pS(_uM("color" to "#007aff", "fontSize" to 14, "paddingTop" to 5, "paddingRight" to 10, "paddingBottom" to 5, "paddingLeft" to 10)), "submit-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/boot.kt b/unpackage/cache/.app-android/src/pages/user/boot.kt deleted file mode 100644 index 0ee090e4..00000000 --- a/unpackage/cache/.app-android/src/pages/user/boot.kt +++ /dev/null @@ -1,96 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.reLaunch as uni_reLaunch -open class GenPagesUserBoot : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) { - onLoad(fun(_: OnLoadOptions) { - this.checkAndRedirect() - } - , __ins) - onPageShow(fun() {}, __ins) - } - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - override fun `$render`(): Any? { - val _cache = this.`$`.renderCache - val _component_navigator = resolveComponent("navigator") - return _cE("view", _uM("class" to "page"), _uA( - _cE("view", _uM("class" to "splash"), _uA( - _cE("view", _uM("class" to "brand"), _uA( - _cE("view", _uM("class" to "brand-mark")), - _cE("view", _uM("class" to "brand-text"), _uA( - _cE("text", _uM("class" to "brand-name"), "Mall"), - _cE("text", _uM("class" to "brand-slogan"), "正品保障 · 省心售后") - )) - )), - _cE("view", _uM("class" to "status"), _uA( - _cE("view", _uM("class" to "spinner")), - _cE("text", _uM("class" to "status-text"), "正在检查登录状态…"), - _cE("text", _uM("class" to "status-sub"), "通常数秒内自动进入首页或登录页") - )), - _cE("view", _uM("class" to "actions"), _uA( - _cV(_component_navigator, _uM("url" to "/pages/user/login", "open-type" to "reLaunch", "class" to "action primary"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - "前往登录" - ) - } - ), "_" to 1)), - _cV(_component_navigator, _uM("url" to "/pages/user/register", "open-type" to "navigate", "class" to "action ghost"), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - "我要注册" - ) - } - ), "_" to 1)) - )) - )) - )) - } - open var checkAndRedirect = ::gen_checkAndRedirect_fn - open fun gen_checkAndRedirect_fn() { - console.log("boot: start redirect check", " at pages/user/boot.uvue:40") - if (IS_TEST_MODE) { - return - } - try { - val sessionInfo = supaInstance.getSession() - if (sessionInfo != null && sessionInfo.user != null) { - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - return - } - } - catch (e: Throwable) { - console.error("boot: error checking session", e, " at pages/user/boot.uvue:54") - } - uni_reLaunch(ReLaunchOptions(url = "/pages/user/login")) - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f7fa", "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to "48rpx", "paddingRight" to "32rpx", "paddingBottom" to "48rpx", "paddingLeft" to "32rpx")), "splash" to _pS(_uM("width" to "100%", "maxWidth" to "640rpx", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to "24rpx", "borderTopRightRadius" to "24rpx", "borderBottomRightRadius" to "24rpx", "borderBottomLeftRadius" to "24rpx", "boxShadow" to "0 12rpx 48rpx rgba(0, 0, 0, 0.08)", "paddingTop" to "48rpx", "paddingRight" to "40rpx", "paddingBottom" to "48rpx", "paddingLeft" to "40rpx", "display" to "flex", "flexDirection" to "column", "justifyContent" to "space-between")), "brand" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "brand-mark" to _pS(_uM("width" to "80rpx", "height" to "80rpx", "borderTopLeftRadius" to "24rpx", "borderTopRightRadius" to "24rpx", "borderBottomRightRadius" to "24rpx", "borderBottomLeftRadius" to "24rpx", "backgroundColor" to "#ff6b6b", "marginRight" to "20rpx")), "brand-text" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "brand-name" to _pS(_uM("marginBottom" to "8rpx", "fontSize" to "36rpx", "fontWeight" to "700", "color" to "#111827")), "brand-slogan" to _pS(_uM("fontSize" to "26rpx", "color" to "#6b7280")), "status" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "textAlign" to "center", "marginTop" to "32rpx", "marginBottom" to "32rpx")), "status-text" to _pS(_uM("marginTop" to "12rpx", "fontSize" to "30rpx", "color" to "#111827", "fontWeight" to "700")), "spinner" to _pS(_uM("width" to "88rpx", "height" to "88rpx", "borderTopLeftRadius" to "44rpx", "borderTopRightRadius" to "44rpx", "borderBottomRightRadius" to "44rpx", "borderBottomLeftRadius" to "44rpx", "borderTopWidth" to "8rpx", "borderRightWidth" to "8rpx", "borderBottomWidth" to "8rpx", "borderLeftWidth" to "8rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#ff6b6b", "borderRightColor" to "#f3f4f6", "borderBottomColor" to "#f3f4f6", "borderLeftColor" to "#f3f4f6")), "status-sub" to _pS(_uM("fontSize" to "24rpx", "color" to "#6b7280")), "actions" to _pS(_uM("display" to "flex", "flexDirection" to "column")), "action" to _uM("" to _uM("marginBottom" to "16rpx", "width" to "100%", "textAlign" to "center", "paddingTop" to "24rpx", "paddingRight" to "24rpx", "paddingBottom" to "24rpx", "paddingLeft" to "24rpx", "borderTopLeftRadius" to "16rpx", "borderTopRightRadius" to "16rpx", "borderBottomRightRadius" to "16rpx", "borderBottomLeftRadius" to "16rpx", "fontSize" to "28rpx", "fontWeight" to "700"), ".primary" to _uM("backgroundImage" to "linear-gradient(135deg, #ff6b6b, #ff9f43)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff"), ".ghost" to _uM("borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e5e7eb", "borderRightColor" to "#e5e7eb", "borderBottomColor" to "#e5e7eb", "borderLeftColor" to "#e5e7eb", "color" to "#374151", "backgroundImage" to "none", "backgroundColor" to "#ffffff"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/center.kt b/unpackage/cache/.app-android/src/pages/user/center.kt deleted file mode 100644 index e37e8f3a..00000000 --- a/unpackage/cache/.app-android/src/pages/user/center.kt +++ /dev/null @@ -1,221 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.framework.onShow as onShow__1 -import io.dcloud.uniapp.extapi.reLaunch as uni_reLaunch -import io.dcloud.uniapp.extapi.removeStorageSync as uni_removeStorageSync -import io.dcloud.uniapp.extapi.showModal as uni_showModal -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserCenter : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserCenter) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserCenter - val _cache = __ins.renderCache - val profile = ref(null) - val userStats = ref(UserStatsType(trainings = 0, points = 0, streak = 0)) - val currentLocale = ref("zh-CN") - val userAvatar = ref("/static/images/default-product.png") - val toggleLanguage = fun(): Unit { - if (currentLocale.value === "zh-CN") { - currentLocale.value = "en-US" - } else { - currentLocale.value = "zh-CN" - } - uni_showToast(ShowToastOptions(title = "语言已切换", icon = "success")) - } - val loadProfile = fun(): UTSPromise { - return wrapUTSPromise(suspend { - try { - val res = await(supabaseService.getUserProfile()) - if (res != null) { - val profileData = res as UTSJSONObject - val p: ProfileType = ProfileType(id = profileData.getString("id") ?: "", username = profileData.getString("username"), email = profileData.getString("email"), avatar_url = profileData.getString("avatar_url")) - profile.value = p - if (p.avatar_url != null && p.avatar_url != "") { - userAvatar.value = p.avatar_url!! - } - } - } - catch (e: Throwable) { - console.error("加载用户资料失败:", e, " at pages/user/center.uvue:134") - } - }) - } - val loadUserStats = fun(): Unit { - userStats.value = UserStatsType(trainings = 12, points = 480, streak = 5) - } - val navigateToProfile = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/user/profile")) - } - val navigateTo = fun(url: String): Unit { - val implementedPages = _uA( - "/pages/user/profile" - ) as UTSArray - var found = false - run { - var i: Number = 0 - while(i < implementedPages.length){ - if (implementedPages[i] == url) { - found = true - break - } - i++ - } - } - if (found) { - uni_navigateTo(NavigateToOptions(url = url)) - } else { - uni_showToast(ShowToastOptions(title = "功能开发中", icon = "none")) - } - } - val handleLogout = fun(): Unit { - uni_removeStorageSync("userInfo") - uni_removeStorageSync("user_id") - uni_removeStorageSync("access_token") - uni_showToast(ShowToastOptions(title = "已退出登录", icon = "success")) - setTimeout(fun(){ - uni_reLaunch(ReLaunchOptions(url = "/pages/user/login")) - } - , 1000) - } - val showLogoutConfirm = fun(): Unit { - uni_showModal(ShowModalOptions(title = "提示", content = "确定要退出登录吗?", success = fun(res){ - if (res.confirm) { - handleLogout() - } - } - )) - } - onShow__1(fun(){ - loadProfile() - loadUserStats() - } - ) - return fun(): Any? { - return _cE("view", _uM("class" to "page-wrapper"), _uA( - _cE("view", _uM("class" to "top-section"), _uA( - _cE("view", _uM("class" to "language-switch"), _uA( - _cE("button", _uM("class" to "language-btn", "onClick" to toggleLanguage), _tD(if (currentLocale.value === "zh-CN") { - "EN" - } else { - "中文" - } - ), 1) - )) - )), - _cE("view", _uM("class" to "main-section"), _uA( - _cE("scroll-view", _uM("direction" to "vertical", "class" to "user-center-container"), _uA( - _cE("view", _uM("class" to "user-header"), _uA( - _cE("view", _uM("class" to "user-info"), _uA( - _cE("image", _uM("class" to "user-avatar", "src" to userAvatar.value, "mode" to "aspectFill"), null, 8, _uA( - "src" - )), - _cE("view", _uM("class" to "user-details"), _uA( - _cE("text", _uM("class" to "user-name"), _tD(if (profile.value != null && profile.value!!.username != null) { - profile.value!!.username - } else { - "未命名用户" - } - ), 1), - _cE("view", _uM("class" to "edit-profile-link", "onClick" to navigateToProfile), _uA( - _cE("text", _uM("class" to "edit-text"), "编辑资料"), - _cE("text", _uM("class" to "edit-icon"), "✏️") - )) - )) - )), - _cE("view", _uM("class" to "stats-container"), _uA( - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(userStats.value.trainings), 1), - _cE("text", _uM("class" to "stat-label"), "训练") - )), - _cE("view", _uM("class" to "stat-divider")), - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(userStats.value.points), 1), - _cE("text", _uM("class" to "stat-label"), "积分") - )), - _cE("view", _uM("class" to "stat-divider")), - _cE("view", _uM("class" to "stat-item"), _uA( - _cE("text", _uM("class" to "stat-value"), _tD(userStats.value.streak), 1), - _cE("text", _uM("class" to "stat-label"), "连续") - )) - )) - )), - _cE("view", _uM("class" to "menu-sections"), _uA( - _cE("view", _uM("class" to "menu-section"), _uA( - _cE("view", _uM("class" to "section-header"), _uA( - _cE("text", _uM("class" to "section-title"), "设置") - )), - _cE("view", _uM("class" to "section-items"), _uA( - _cE("view", _uM("class" to "menu-item", "onClick" to fun(){ - navigateTo("/pages/settings/app") - } - ), _uA( - _cE("view", _uM("class" to "menu-icon app-settings"), "⚙️"), - _cE("text", _uM("class" to "menu-text"), "应用设置"), - _cE("text", _uM("class" to "menu-arrow"), ">") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "menu-item", "onClick" to fun(){ - navigateTo("/pages/settings/about") - } - ), _uA( - _cE("view", _uM("class" to "menu-icon about"), "ℹ️"), - _cE("text", _uM("class" to "menu-text"), "关于"), - _cE("text", _uM("class" to "menu-arrow"), ">") - ), 8, _uA( - "onClick" - )), - _cE("view", _uM("class" to "menu-item", "onClick" to fun(){ - navigateTo("/pages/user/notifications") - } - ), _uA( - _cE("view", _uM("class" to "menu-icon notifications"), "🔔"), - _cE("text", _uM("class" to "menu-text"), "通知"), - _cE("text", _uM("class" to "menu-arrow"), ">") - ), 8, _uA( - "onClick" - )) - )) - )) - )), - _cE("button", _uM("class" to "logout-button", "onClick" to showLogoutConfirm), "退出登录") - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-wrapper" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundColor" to "#f5f5f5")), "top-section" to _pS(_uM("paddingTop" to 10, "paddingRight" to 15, "paddingBottom" to 10, "paddingLeft" to 15, "backgroundColor" to "#ffffff")), "language-switch" to _pS(_uM("display" to "flex", "justifyContent" to "flex-end")), "language-btn" to _pS(_uM("fontSize" to 12, "paddingTop" to 5, "paddingRight" to 15, "paddingBottom" to 5, "paddingLeft" to 15, "backgroundColor" to "#f0f0f0", "borderTopLeftRadius" to 15, "borderTopRightRadius" to 15, "borderBottomRightRadius" to 15, "borderBottomLeftRadius" to 15)), "main-section" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "user-center-container" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "user-header" to _pS(_uM("backgroundColor" to "#ffffff", "paddingTop" to 20, "paddingRight" to 15, "paddingBottom" to 20, "paddingLeft" to 15, "marginBottom" to 10)), "user-info" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "user-avatar" to _pS(_uM("width" to 60, "height" to 60, "borderTopLeftRadius" to 30, "borderTopRightRadius" to 30, "borderBottomRightRadius" to 30, "borderBottomLeftRadius" to 30, "backgroundColor" to "#eeeeee")), "user-details" to _pS(_uM("marginLeft" to 15, "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "user-name" to _pS(_uM("fontSize" to 18, "fontWeight" to "bold", "color" to "#333333")), "edit-profile-link" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginTop" to 5)), "edit-text" to _pS(_uM("fontSize" to 12, "color" to "#007aff")), "edit-icon" to _pS(_uM("fontSize" to 12, "marginLeft" to 5)), "stats-container" to _pS(_uM("display" to "flex", "flexDirection" to "row", "justifyContent" to "space-around", "marginTop" to 20, "paddingTop" to 15, "borderTopWidth" to 1, "borderTopStyle" to "solid", "borderTopColor" to "#eeeeee")), "stat-item" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "stat-value" to _pS(_uM("fontSize" to 20, "fontWeight" to "bold", "color" to "#333333")), "stat-label" to _pS(_uM("fontSize" to 12, "color" to "#999999", "marginTop" to 5)), "stat-divider" to _pS(_uM("width" to 1, "height" to 30, "backgroundColor" to "#eeeeee")), "menu-sections" to _pS(_uM("backgroundColor" to "#ffffff", "marginBottom" to 10)), "menu-section" to _pS(_uM("paddingTop" to 15, "paddingRight" to 15, "paddingBottom" to 15, "paddingLeft" to 15)), "section-header" to _pS(_uM("marginBottom" to 10)), "section-title" to _pS(_uM("fontSize" to 14, "color" to "#999999")), "section-items" to _pS(_uM("backgroundColor" to "#ffffff")), "menu-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "paddingTop" to 12, "paddingRight" to 0, "paddingBottom" to 12, "paddingLeft" to 0, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#f5f5f5", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "menu-icon" to _pS(_uM("width" to 30, "fontSize" to 18)), "menu-text" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14, "color" to "#333333")), "menu-arrow" to _pS(_uM("fontSize" to 14, "color" to "#cccccc")), "logout-button" to _pS(_uM("marginTop" to 20, "marginRight" to 15, "marginBottom" to 20, "marginLeft" to 15, "backgroundColor" to "#ff4444", "color" to "#ffffff", "fontSize" to 16, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "textAlign" to "center"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/change-password.kt b/unpackage/cache/.app-android/src/pages/user/change-password.kt deleted file mode 100644 index 506e8089..00000000 --- a/unpackage/cache/.app-android/src/pages/user/change-password.kt +++ /dev/null @@ -1,105 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.hideLoading as uni_hideLoading -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -import io.dcloud.uniapp.extapi.showLoading as uni_showLoading -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserChangePassword : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserChangePassword) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserChangePassword - val _cache = __ins.renderCache - val oldPassword = ref("") - val newPassword = ref("") - val confirmPassword = ref("") - val handleSubmit = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (oldPassword.value == "" || newPassword.value == "" || confirmPassword.value == "") { - uni_showToast(ShowToastOptions(title = "请填写完整信息", icon = "none")) - return@w1 - } - if (newPassword.value != confirmPassword.value) { - uni_showToast(ShowToastOptions(title = "两次输入的密码不一致", icon = "none")) - return@w1 - } - uni_showLoading(ShowLoadingOptions(title = "提交中...")) - uni_hideLoading() - uni_showToast(ShowToastOptions(title = "修改成功", icon = "success")) - setTimeout(fun(){ - uni_navigateBack(null) - } - , 1500) - }) - } - return fun(): Any? { - return _cE("view", _uM("class" to "page-container"), _uA( - _cE("view", _uM("class" to "form-group"), _uA( - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "旧密码"), - _cE("input", _uM("class" to "input", "type" to "password", "placeholder" to "请输入旧密码", "modelValue" to oldPassword.value, "onInput" to fun(`$event`: UniInputEvent){ - oldPassword.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "新密码"), - _cE("input", _uM("class" to "input", "type" to "password", "placeholder" to "请输入新密码", "modelValue" to newPassword.value, "onInput" to fun(`$event`: UniInputEvent){ - newPassword.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "input-item"), _uA( - _cE("text", _uM("class" to "label"), "确认密码"), - _cE("input", _uM("class" to "input", "type" to "password", "placeholder" to "请再次输入新密码", "modelValue" to confirmPassword.value, "onInput" to fun(`$event`: UniInputEvent){ - confirmPassword.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("button", _uM("class" to "submit-btn", "onClick" to handleSubmit), "确认修改") - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-container" to _pS(_uM("paddingTop" to 20, "paddingRight" to 20, "paddingBottom" to 20, "paddingLeft" to 20, "backgroundColor" to "#f5f5f5", "flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%")), "form-group" to _pS(_uM("backgroundColor" to "#ffffff", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "paddingTop" to 0, "paddingRight" to 15, "paddingBottom" to 0, "paddingLeft" to 15, "marginBottom" to 30)), "input-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "height" to 50, "borderBottomWidth" to 1, "borderBottomStyle" to "solid", "borderBottomColor" to "#eeeeee", "borderBottomWidth:last-child" to "medium", "borderBottomStyle:last-child" to "none", "borderBottomColor:last-child" to "#000000")), "label" to _pS(_uM("width" to 80, "fontSize" to 14, "color" to "#333333")), "input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to 14)), "submit-btn" to _pS(_uM("backgroundColor" to "#007aff", "color" to "#ffffff", "borderTopLeftRadius" to 25, "borderTopRightRadius" to 25, "borderBottomRightRadius" to 25, "borderBottomLeftRadius" to 25, "fontSize" to 16, "paddingTop" to 12, "paddingRight" to 12, "paddingBottom" to 12, "paddingLeft" to 12, "textAlign" to "center"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/forgot-password.kt b/unpackage/cache/.app-android/src/pages/user/forgot-password.kt deleted file mode 100644 index f7435441..00000000 --- a/unpackage/cache/.app-android/src/pages/user/forgot-password.kt +++ /dev/null @@ -1,168 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserForgotPassword : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserForgotPassword) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserForgotPassword - val _cache = __ins.renderCache - val email = ref("") - val emailError = ref("") - val generalError = ref("") - val isLoading = ref(false) - val resetEmailSent = ref(false) - val currentLocale = ref("zh-CN") - val toggleLanguage = fun(): Unit { - if (currentLocale.value === "zh-CN") { - currentLocale.value = "en-US" - } else { - currentLocale.value = "zh-CN" - } - uni_showToast(ShowToastOptions(title = "语言已切换", icon = "success")) - } - val validateEmail = fun(): Boolean { - if (email.value == null || email.value == "") { - emailError.value = "请输入邮箱地址" - return false - } - val atIndex = email.value.indexOf("@") - val dotIndex = email.value.lastIndexOf(".") - if (atIndex == -1 || dotIndex == -1 || atIndex > dotIndex) { - emailError.value = "请输入有效的邮箱地址" - return false - } - emailError.value = "" - return true - } - val handleResetRequest = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - generalError.value = "" - if (validateEmail() == false) { - return@w1 - } - isLoading.value = true - try { - resetEmailSent.value = true - } - catch (err: Throwable) { - console.error("Password reset error:", err, " at pages/user/forgot-password.uvue:107") - generalError.value = "发送失败,请稍后重试" - } - finally { - isLoading.value = false - } - }) - } - val onSubmit = fun(e: UniFormSubmitEvent): Unit { - handleResetRequest() - } - val navigateToLogin = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/user/login")) - } - return fun(): Any? { - val _component_form = resolveComponent("form") - return _cE("scroll-view", _uM("class" to "forgot-password-container", "scroll-y" to "true", "show-scrollbar" to "false"), _uA( - _cE("view", _uM("class" to "language-switch"), _uA( - _cE("button", _uM("class" to "language-btn", "onClick" to toggleLanguage), _tD(if (currentLocale.value === "zh-CN") { - "EN" - } else { - "中" - } - ), 1) - )), - _cE("view", _uM("class" to "content-wrapper"), _uA( - _cE("view", _uM("class" to "logo-section"), _uA( - _cE("text", _uM("class" to "app-title"), "Akmon"), - _cE("text", _uM("class" to "page-title"), "忘记密码"), - _cE("text", _uM("class" to "page-subtitle"), "输入您的邮箱地址,我们将发送重置链接") - )), - _cE("view", _uM("class" to "form-container"), _uA( - if (resetEmailSent.value == false) { - _cE("view", _uM("key" to 0), _uA( - _cV(_component_form, _uM("onSubmit" to onSubmit), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cE("view", _uM("class" to _nC(_uA( - "input-group", - if (emailError.value != "") { - "input-error" - } else { - "" - } - ))), _uA( - _cE("text", _uM("class" to "input-label"), "邮箱"), - _cE("input", _uM("class" to "input-field", "name" to "email", "type" to "text", "modelValue" to email.value, "onInput" to fun(`$event`: UniInputEvent){ - email.value = `$event`.detail.value - }, "placeholder" to "请输入邮箱地址", "onBlur" to validateEmail), null, 40, _uA( - "modelValue", - "onInput" - )), - if (emailError.value != "") { - _cE("text", _uM("key" to 0, "class" to "error-text"), _tD(emailError.value), 1) - } else { - _cC("v-if", true) - } - ), 2), - _cE("button", _uM("form-type" to "submit", "class" to "submit-button", "disabled" to isLoading.value, "loading" to isLoading.value), " 发送重置链接 ", 8, _uA( - "disabled", - "loading" - )), - if (generalError.value != "") { - _cE("text", _uM("key" to 0, "class" to "general-error"), _tD(generalError.value), 1) - } else { - _cC("v-if", true) - } - ) - }), "_" to 1)), - _cE("view", _uM("class" to "login-option"), _uA( - _cE("text", _uM("class" to "login-text"), "想起密码了?"), - _cE("text", _uM("class" to "login-link", "onClick" to navigateToLogin), "返回登录") - )) - )) - } else { - _cE("view", _uM("key" to 1, "class" to "success-container"), _uA( - _cE("view", _uM("class" to "success-icon"), "✓"), - _cE("text", _uM("class" to "success-title"), "邮件已发送"), - _cE("text", _uM("class" to "success-message"), "请检查您的邮箱,按照邮件中的说明重置密码"), - _cE("button", _uM("class" to "back-button", "onClick" to navigateToLogin), " 返回登录 ") - )) - } - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("forgot-password-container" to _pS(_uM("height" to "100%", "paddingTop" to "40rpx", "paddingRight" to "40rpx", "paddingBottom" to "40rpx", "paddingLeft" to "40rpx", "backgroundColor" to "#f8f9fa", "boxSizing" to "border-box")), "content-wrapper" to _pS(_uM("width" to "100%", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "flex-start", "paddingBottom" to "40rpx", "minHeight" to "800rpx")), "language-switch" to _pS(_uM("position" to "absolute", "top" to "40rpx", "right" to "40rpx", "zIndex" to 10)), "language-btn" to _pS(_uM("width" to "80rpx", "height" to "80rpx", "borderTopLeftRadius" to "40rpx", "borderTopRightRadius" to "40rpx", "borderBottomRightRadius" to "40rpx", "borderBottomLeftRadius" to "40rpx", "fontSize" to "28rpx", "backgroundColor" to "rgba(33,150,243,0.8)", "color" to "#ffffff", "fontWeight" to "normal", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.3)", "borderRightColor" to "rgba(255,255,255,0.3)", "borderBottomColor" to "rgba(255,255,255,0.3)", "borderLeftColor" to "rgba(255,255,255,0.3)", "textAlign" to "center", "boxShadow" to "0 4rpx 12rpx rgba(33, 150, 243, 0.3)")), "logo-section" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "marginTop" to "80rpx", "marginBottom" to "40rpx")), "app-title" to _pS(_uM("fontSize" to "36rpx", "fontWeight" to "bold", "color" to "#2196f3")), "page-title" to _pS(_uM("fontSize" to "48rpx", "marginTop" to "20rpx", "fontWeight" to "bold", "color" to "#333333")), "page-subtitle" to _pS(_uM("fontSize" to "28rpx", "marginTop" to "10rpx", "color" to "#666666")), "form-container" to _pS(_uM("width" to "100%", "maxWidth" to "680rpx", "paddingTop" to "40rpx", "paddingRight" to "40rpx", "paddingBottom" to "40rpx", "paddingLeft" to "40rpx", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx", "boxShadow" to "0 10rpx 30rpx rgba(0, 0, 0, 0.1)", "boxSizing" to "border-box")), "input-group" to _pS(_uM("marginBottom" to "30rpx")), "input-label" to _pS(_uM("fontSize" to "28rpx", "marginBottom" to "10rpx", "fontWeight" to "normal", "color" to "#333333", "display" to "flex")), "input-field" to _uM("" to _uM("width" to "100%", "height" to "90rpx", "paddingTop" to 0, "paddingRight" to "30rpx", "paddingBottom" to 0, "paddingLeft" to "30rpx", "fontSize" to "28rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#f9f9f9", "boxSizing" to "border-box"), ".input-error " to _uM("borderTopColor" to "#f44336", "borderRightColor" to "#f44336", "borderBottomColor" to "#f44336", "borderLeftColor" to "#f44336")), "error-text" to _pS(_uM("fontSize" to "24rpx", "marginTop" to "6rpx", "color" to "#f44336")), "submit-button" to _pS(_uM("width" to "100%", "height" to "90rpx", "fontSize" to "32rpx", "marginTop" to "20rpx", "marginRight" to 0, "marginBottom" to "20rpx", "marginLeft" to 0, "borderTopLeftRadius" to "45rpx", "borderTopRightRadius" to "45rpx", "borderBottomRightRadius" to "45rpx", "borderBottomLeftRadius" to "45rpx", "backgroundImage" to "linear-gradient(to right, #2196f3, #03a9f4)", "color" to "#ffffff", "fontWeight" to "normal", "textAlign" to "center", "boxShadow" to "0 10rpx 20rpx rgba(3, 169, 244, 0.2)", "backgroundImage:disabled" to "none", "backgroundColor:disabled" to "#cccccc", "boxShadow:disabled" to "none")), "general-error" to _pS(_uM("width" to "100%", "textAlign" to "center", "color" to "#f44336", "fontSize" to "28rpx", "marginTop" to "20rpx")), "login-option" to _pS(_uM("display" to "flex", "justifyContent" to "center", "marginTop" to "40rpx")), "login-text" to _pS(_uM("fontSize" to "28rpx", "marginRight" to "8rpx", "color" to "#666666")), "login-link" to _pS(_uM("fontSize" to "28rpx", "color" to "#2196f3", "fontWeight" to "normal")), "success-container" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "paddingTop" to "20rpx", "paddingRight" to 0, "paddingBottom" to "20rpx", "paddingLeft" to 0)), "success-icon" to _pS(_uM("width" to "120rpx", "height" to "120rpx", "fontSize" to "60rpx", "marginBottom" to "30rpx", "backgroundColor" to "#4caf50", "color" to "#FFFFFF", "borderTopLeftRadius" to "120rpx", "borderTopRightRadius" to "120rpx", "borderBottomRightRadius" to "120rpx", "borderBottomLeftRadius" to "120rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "success-title" to _pS(_uM("fontSize" to "36rpx", "marginBottom" to "20rpx", "fontWeight" to "bold", "color" to "#333333")), "success-message" to _pS(_uM("fontSize" to "28rpx", "marginBottom" to "40rpx", "color" to "#666666", "textAlign" to "center")), "back-button" to _pS(_uM("width" to "100%", "height" to "90rpx", "fontSize" to "32rpx", "borderTopLeftRadius" to "45rpx", "borderTopRightRadius" to "45rpx", "borderBottomRightRadius" to "45rpx", "borderBottomLeftRadius" to "45rpx", "backgroundColor" to "#f0f0f0", "color" to "#333333", "fontWeight" to "normal", "textAlign" to "center"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/login.kt b/unpackage/cache/.app-android/src/pages/user/login.kt deleted file mode 100644 index 670637b2..00000000 --- a/unpackage/cache/.app-android/src/pages/user/login.kt +++ /dev/null @@ -1,422 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.reLaunch as uni_reLaunch -import io.dcloud.uniapp.extapi.setStorageSync as uni_setStorageSync -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserLogin : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserLogin) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserLogin - val _cache = __ins.renderCache - val cssVars: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("cssVars", "pages/user/login.uvue", 144, 7)) { - var `--bg` = "#f5f6f8" - var `--card` = "#ffffff" - var `--brand` = "#e1251b" - var `--text` = "#333333" - var `--muted` = "#666666" - var `--muted2` = "#999999" - var `--border` = "#eeeeee" - var `--inputbg` = "#f6f7f9" - var `--shadow` = "0 2px 12px rgba(0,0,0,0.06)" - } - val logoUrl = ref("/static/logo.png") - val loginType = ref(0) - val account = ref("") - val password = ref("") - val captcha = ref("") - val TEST_ACCOUNT = "test@mall.com" - val TEST_PASSWORD = "Hf2152111" - val isLoading = ref(false) - val codeDisabled = ref(false) - val codeText = ref("获取验证码") - val codeTimer = ref(0) - val codeCountdown = ref(0) - val checkLoginStatus = fun(): Unit { - try { - if (IS_TEST_MODE) { - return - } - val sessionInfo = supaInstance.getSession() - if (sessionInfo != null && sessionInfo.user != null) { - val pages = getCurrentPages() - if (pages.length > 0) { - val currentPage = pages[pages.length - 1] - val opts = currentPage.options as UTSJSONObject - val redirect = opts.getString("redirect") - if (redirect != null && redirect != "") { - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - } else { - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - } - } else { - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - } - } - } - catch (e: Throwable) { - console.error("检查登录状态失败:", e, " at pages/user/login.uvue:194") - } - } - onMounted(fun(){ - checkLoginStatus() - account.value = TEST_ACCOUNT - password.value = TEST_PASSWORD - } - ) - val validateAccount = fun(): Boolean { - if (account.value.trim() === "") { - uni_showToast(ShowToastOptions(title = "请填写账号", icon = "none")) - return false - } - if (loginType.value === 1) { - if (!UTSRegExp("^1[3-9]\\d{9}\$", "").test(account.value)) { - uni_showToast(ShowToastOptions(title = "请输入正确的手机号码", icon = "none")) - return false - } - } - return true - } - val validatePassword = fun(): Boolean { - if (password.value.trim() === "") { - uni_showToast(ShowToastOptions(title = "请填写密码", icon = "none")) - return false - } - if (password.value.length < 6) { - uni_showToast(ShowToastOptions(title = "密码长度不能少于6位", icon = "none")) - return false - } - return true - } - val validateCaptcha = fun(): Boolean { - if (captcha.value.trim() === "") { - uni_showToast(ShowToastOptions(title = "请填写验证码", icon = "none")) - return false - } - if (!UTSRegExp("^\\d{6}\$", "").test(captcha.value)) { - uni_showToast(ShowToastOptions(title = "请输入正确的验证码", icon = "none")) - return false - } - return true - } - val getCode = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (codeDisabled.value) { - return@w1 - } - if (!validateAccount()) { - return@w1 - } - uni_showToast(ShowToastOptions(title = "验证码已发送", icon = "success")) - codeDisabled.value = true - codeCountdown.value = 60 - codeText.value = "" + codeCountdown.value + "秒后重试" - codeTimer.value = setInterval(fun(){ - codeCountdown.value-- - if (codeCountdown.value > 0) { - codeText.value = "" + codeCountdown.value + "秒后重试" - } else { - codeDisabled.value = false - codeText.value = "获取验证码" - if (codeTimer.value != 0) { - clearInterval(codeTimer.value) - codeTimer.value = 0 - } - } - } - , 1000) as Number - }) - } - val handleLogin = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (!validateAccount()) { - return@w1 - } - if (account.value === "admin" && password.value === "admin") { - setIsLoggedIn(true) - val adminProfile = UserProfile(id = "admin", username = "Admin", email = "admin@mall.com", gender = "unknown", birthday = "", height_cm = 0, weight_kg = 0, bio = "Administrator", avatar_url = "/static/logo.png", preferred_language = "zh-CN", role = "admin", school_id = "", grade_id = "", class_id = "") - setUserProfile(adminProfile) - uni_showToast(ShowToastOptions(title = "管理员登录成功", icon = "success")) - setTimeout(fun(){ - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - } - , 500) - return@w1 - } - if (loginType.value === 0) { - if (!validatePassword()) { - return@w1 - } - } else { - if (!validateCaptcha()) { - return@w1 - } - } - isLoading.value = true - try { - logout() - if (loginType.value === 0) { - val isEmail = account.value.includes("@") - if (isEmail) { - val result = await(supaInstance.signIn(account.value.trim(), password.value)) - console.log("signIn result:", result, " at pages/user/login.uvue:314") - if (result.user == null) { - val rawData = result.raw as UTSJSONObject - val errorMsg = rawData?.getString("msg") ?: "" - val errorCode = rawData?.getString("error_code") ?: "" - if (errorMsg.includes("email") && errorMsg.includes("confirm") || errorCode === "email_not_confirmed" || errorMsg.includes("邮箱") && errorMsg.includes("确认")) { - throw UTSError("邮箱未确认,请先检查邮箱并点击确认链接") - } else if (errorMsg.includes("Invalid login credentials") || errorCode === "invalid_credentials" || errorMsg.includes("credentials") || errorMsg.includes("invalid")) { - throw UTSError("用户名或密码错误") - } else { - throw UTSError(if (errorMsg != "") { - errorMsg - } else { - "登录失败,请重试" - } - ) - } - } - } else { - uni_showToast(ShowToastOptions(title = "手机号密码登录功能开发中", icon = "none")) - return@w1 - } - } else { - uni_showToast(ShowToastOptions(title = "手机验证码登录功能开发中", icon = "none")) - return@w1 - } - try { - val profile = await(getCurrentUser()) - console.log("current user profile:", profile, " at pages/user/login.uvue:348") - } - catch (e: Throwable) { - console.error("获取用户信息失败(忽略,不阻塞登录):", e, " at pages/user/login.uvue:350") - } - val currentSession = supaInstance.getSession() - if (currentSession.user != null) { - val uid = currentSession.user?.getString("id") - if (uid != null) { - uni_setStorageSync("user_id", uid) - console.log("用户ID已保存到本地存储:", uid, " at pages/user/login.uvue:359") - } - } - uni_showToast(ShowToastOptions(title = "登录成功", icon = "success")) - setTimeout(fun(){ - uni_reLaunch(ReLaunchOptions(url = "/pages/main/index")) - } - , 500) - } - catch (err: Throwable) { - console.error("登录错误:", err, " at pages/user/login.uvue:368") - var msg = "登录失败,请重试" - try { - val e = err as UTSError - if (e.message != null && e.message.trim() !== "") { - msg = e.message - } - } - catch (e2: Throwable) {} - uni_showToast(ShowToastOptions(title = msg, icon = "none")) - } - finally { - isLoading.value = false - } - }) - } - val navigateToRegister = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/user/register")) - } - val handleTutorial = fun(){ - return uni_showToast(ShowToastOptions(title = "扫码教程开发中", icon = "none")) - } - val handleForgotPassword = fun(){ - return uni_showToast(ShowToastOptions(title = "忘记密码开发中", icon = "none")) - } - val handleWechatLogin = fun(){ - return uni_showToast(ShowToastOptions(title = "微信登录开发中", icon = "none")) - } - val handleQQLogin = fun(){ - return uni_showToast(ShowToastOptions(title = "QQ登录开发中", icon = "none")) - } - return fun(): Any? { - return _cE("view", _uM("class" to "page", "style" to cssVars), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("view", _uM("class" to "header-left"), _uA( - _cE("image", _uM("src" to logoUrl.value, "mode" to "aspectFit", "class" to "logo"), null, 8, _uA( - "src" - )) - )) - )), - _cE("view", _uM("class" to "main"), _uA( - _cE("view", _uM("class" to "card"), _uA( - _cE("view", _uM("class" to "left"), _uA( - _cE("text", _uM("class" to "left-title"), "APP 扫码登录"), - _cE("view", _uM("class" to "left-hint"), _uA( - _cE("text", _uM("class" to "hint-text"), "打开 APP 扫一扫"), - _cE("text", _uM("class" to "hint-link", "onClick" to handleTutorial), "查看教程") - )), - _cE("view", _uM("class" to "qr-wrap"), _uA( - _cE("view", _uM("class" to "qr"), _uA( - _cE("view", _uM("class" to "qr-placeholder"), _uA( - _cE("text", _uM("class" to "qr-text"), "二维码占位"), - _cE("text", _uM("class" to "qr-sub"), "220×220") - )) - )) - )) - )), - _cE("view", _uM("class" to "divider")), - _cE("view", _uM("class" to "right"), _uA( - _cE("view", _uM("class" to "right-inner"), _uA( - _cE("view", _uM("class" to "tabs"), _uA( - _cE("view", _uM("class" to _nC(_uA( - "tab", - _uM("active" to (loginType.value === 0)) - )), "onClick" to fun(){ - loginType.value = 0 - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "密码登录"), - if (loginType.value === 0) { - _cE("view", _uM("key" to 0, "class" to "tab-line")) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )), - _cE("view", _uM("class" to _nC(_uA( - "tab", - _uM("active" to (loginType.value === 1)) - )), "onClick" to fun(){ - loginType.value = 1 - } - ), _uA( - _cE("text", _uM("class" to "tab-text"), "短信登录"), - if (loginType.value === 1) { - _cE("view", _uM("key" to 0, "class" to "tab-line")) - } else { - _cC("v-if", true) - } - ), 10, _uA( - "onClick" - )) - )), - _cE("view", _uM("class" to "form"), _uA( - if (loginType.value === 0) { - _cE(Fragment, _uM("key" to 0), _uA( - _cE("view", _uM("class" to "field"), _uA( - _cE("input", _uM("class" to "input", "type" to "text", "placeholder" to "账号名/手机号/邮箱", "modelValue" to account.value, "onInput" to fun(`$event`: UniInputEvent){ - account.value = `$event`.detail.value - }), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "field"), _uA( - _cE("input", _uM("class" to "input", "type" to "password", "placeholder" to "密码", "modelValue" to password.value, "onInput" to fun(`$event`: UniInputEvent){ - password.value = `$event`.detail.value - }), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - ), 64) - } else { - _cE(Fragment, _uM("key" to 1), _uA( - _cE("view", _uM("class" to "field"), _uA( - _cE("input", _uM("class" to "input", "type" to "text", "placeholder" to "输入手机号码", "maxlength" to "11", "modelValue" to account.value, "onInput" to fun(`$event`: UniInputEvent){ - account.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "field code-row"), _uA( - _cE("input", _uM("class" to "input code-input", "type" to "text", "placeholder" to "填写验证码", "maxlength" to "6", "modelValue" to captcha.value, "onInput" to fun(`$event`: UniInputEvent){ - captcha.value = `$event`.detail.value - } - ), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("view", _uM("class" to _nC(_uA( - "code-btn", - if (codeDisabled.value) { - "disabled" - } else { - "" - } - )), "onClick" to getCode), _uA( - _cE("text", _uM("class" to "code-text"), _tD(codeText.value), 1) - ), 2) - )) - ), 64) - } - , - _cE("view", _uM("class" to _nC(_uA( - "btn", - _uM("disabled" to isLoading.value) - )), "onClick" to handleLogin), _uA( - _cE("text", _uM("class" to "btn-text"), "登录") - ), 2), - _cE("view", _uM("class" to "actions"), _uA( - _cE("view", _uM("class" to "action-item", "onClick" to handleWechatLogin), _uA( - _cE("view", _uM("class" to "dot wechat")), - _cE("text", _uM("class" to "action-text"), "微信登录") - )), - _cE("text", _uM("class" to "sep"), "|"), - _cE("view", _uM("class" to "action-item", "onClick" to handleQQLogin), _uA( - _cE("view", _uM("class" to "dot qq")), - _cE("text", _uM("class" to "action-text"), "QQ登录") - )), - _cE("text", _uM("class" to "sep"), "|"), - _cE("text", _uM("class" to "action-link", "onClick" to handleForgotPassword), "忘记密码"), - _cE("text", _uM("class" to "sep"), "|"), - _cE("text", _uM("class" to "action-link", "onClick" to navigateToRegister), "立即注册") - )) - )) - )) - )) - )) - )), - _cE("view", _uM("class" to "footer"), _uA( - _cE("text", _uM("class" to "footer-text"), "Copyright ©2024 Mall. All Rights Reserved") - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "backgroundColor" to "#f5f6f8")), "header" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "flex-start", "paddingTop" to 30, "paddingRight" to 40, "paddingBottom" to 30, "paddingLeft" to 40)), "logo" to _pS(_uM("width" to 240, "height" to 64)), "main" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "paddingTop" to 20, "paddingRight" to 10, "paddingBottom" to 20, "paddingLeft" to 10)), "card" to _pS(_uM("width" to "90%", "backgroundColor" to "#ffffff", "borderTopLeftRadius" to 16, "borderTopRightRadius" to 16, "borderBottomRightRadius" to 16, "borderBottomLeftRadius" to 16, "paddingTop" to 30, "paddingRight" to 30, "paddingBottom" to 30, "paddingLeft" to 30, "display" to "flex", "flexDirection" to "column")), "left" to _pS(_uM("flexDirection" to "column", "alignItems" to "flex-start", "justifyContent" to "center", "display" to "none")), "left-title" to _pS(_uM("fontSize" to 18, "fontWeight" to "700", "color" to "#333333", "marginBottom" to 10)), "left-hint" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginBottom" to 18)), "hint-text" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginRight" to 14)), "hint-link" to _pS(_uM("fontSize" to 13, "color" to "#e1251b")), "qr-wrap" to _pS(_uM("width" to "100%", "display" to "flex", "flexDirection" to "row", "justifyContent" to "flex-start")), "qr" to _pS(_uM("width" to 240, "height" to 240, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center")), "qr-placeholder" to _pS(_uM("width" to 220, "height" to 220, "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#e6e6e6", "borderRightColor" to "#e6e6e6", "borderBottomColor" to "#e6e6e6", "borderLeftColor" to "#e6e6e6", "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "backgroundColor" to "#ffffff", "display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center")), "qr-text" to _pS(_uM("fontSize" to 14, "color" to "#666666", "marginBottom" to 8)), "qr-sub" to _pS(_uM("fontSize" to 12, "color" to "#999999")), "divider" to _pS(_uM("display" to "none")), "right" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "justifyContent" to "center")), "right-inner" to _pS(_uM("width" to "100%", "marginLeft" to "auto")), "tabs" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "marginBottom" to 18)), "tab" to _pS(_uM("position" to "relative", "paddingTop" to 8, "paddingRight" to 12, "paddingBottom" to 8, "paddingLeft" to 12, "marginTop" to 0, "marginRight" to 12, "marginBottom" to 0, "marginLeft" to 12)), "tab-text" to _uM("" to _uM("fontSize" to 16, "color" to "#666666"), ".tab.active " to _uM("color" to "#e1251b", "fontWeight" to "700")), "tab-line" to _pS(_uM("position" to "absolute", "left" to 0, "right" to 0, "bottom" to -6, "height" to 2, "backgroundColor" to "#e1251b", "borderTopLeftRadius" to 2, "borderTopRightRadius" to 2, "borderBottomRightRadius" to 2, "borderBottomLeftRadius" to 2)), "form" to _pS(_uM("marginTop" to 10)), "field" to _pS(_uM("marginBottom" to 14)), "input" to _pS(_uM("width" to "100%", "height" to 44, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "#f6f7f9", "paddingTop" to 0, "paddingRight" to 14, "paddingBottom" to 0, "paddingLeft" to 14, "fontSize" to 14, "color" to "#333333")), "code-row" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center")), "code-input" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginRight" to 10)), "code-btn" to _uM("" to _uM("height" to 44, "paddingTop" to 0, "paddingRight" to 12, "paddingBottom" to 0, "paddingLeft" to 12, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "#ffffff", "borderTopWidth" to 1, "borderRightWidth" to 1, "borderBottomWidth" to 1, "borderLeftWidth" to 1, "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#eeeeee", "borderRightColor" to "#eeeeee", "borderBottomColor" to "#eeeeee", "borderLeftColor" to "#eeeeee", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center"), ".disabled" to _uM("opacity" to 0.5)), "code-text" to _pS(_uM("fontSize" to 13, "color" to "#e1251b")), "btn" to _uM("" to _uM("marginTop" to 16, "height" to 46, "borderTopLeftRadius" to 10, "borderTopRightRadius" to 10, "borderBottomRightRadius" to 10, "borderBottomLeftRadius" to 10, "backgroundColor" to "rgba(225,37,27,0.45)", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center"), ".disabled" to _uM("backgroundColor" to "#d9d9d9")), "btn-text" to _pS(_uM("color" to "#ffffff", "fontSize" to 16, "fontWeight" to "700")), "actions" to _pS(_uM("marginTop" to 16, "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "center", "flexWrap" to "wrap")), "action-item" to _pS(_uM("display" to "flex", "flexDirection" to "row", "alignItems" to "center", "marginTop" to 0, "marginRight" to 6, "marginBottom" to 0, "marginLeft" to 6)), "dot" to _uM("" to _uM("width" to 16, "height" to 16, "borderTopLeftRadius" to 8, "borderTopRightRadius" to 8, "borderBottomRightRadius" to 8, "borderBottomLeftRadius" to 8, "marginRight" to 8), ".wechat" to _uM("backgroundColor" to "#19be6b"), ".qq" to _uM("backgroundColor" to "#2d8cf0")), "action-text" to _pS(_uM("fontSize" to 13, "color" to "#666666")), "action-link" to _pS(_uM("fontSize" to 13, "color" to "#666666", "marginTop" to 0, "marginRight" to 6, "marginBottom" to 0, "marginLeft" to 6)), "sep" to _pS(_uM("fontSize" to 13, "color" to "#e0e0e0", "marginTop" to 0, "marginRight" to 6, "marginBottom" to 0, "marginLeft" to 6)), "footer" to _pS(_uM("paddingTop" to 18, "paddingRight" to 0, "paddingBottom" to 28, "paddingLeft" to 0, "display" to "flex", "flexDirection" to "row", "justifyContent" to "center")), "footer-text" to _pS(_uM("fontSize" to 12, "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/profile.kt b/unpackage/cache/.app-android/src/pages/user/profile.kt deleted file mode 100644 index 23831734..00000000 --- a/unpackage/cache/.app-android/src/pages/user/profile.kt +++ /dev/null @@ -1,482 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.chooseImage as uni_chooseImage -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserProfile : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserProfile) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserProfile - val _cache = __ins.renderCache - val isLoading = ref(false) - val saveSuccess = ref("") - val saveError = ref("") - val isSaving = ref(false) - val userAvatar = ref("/static/logo.png") - val currentLocale = ref("zh-CN") - val genderOptions = _uA( - "male", - "female", - "other" - ) as UTSArray - val tempGenderIndex = ref(_uA(0)) - val showGenderPicker = ref(false) - val showBirthdayPicker = ref(false) - val tempBirthday = ref(_uA(2000, 1, 1)) - val profile = ref(UserProfile(id = "", username = "", email = "", gender = "other", birthday = "", height_cm = 0, weight_kg = 0, bio = "", avatar_url = "/static/logo.png", preferred_language = "zh-CN")) - val toggleLanguage = fun(): Unit { - if (currentLocale.value === "zh-CN") { - currentLocale.value = "en-US" - } else { - currentLocale.value = "zh-CN" - } - uni_showToast(ShowToastOptions(title = "语言已切换", icon = "success")) - } - val getGenderText = fun(genderCode: String): String { - if (genderCode == "male") { - return "男" - } else if (genderCode == "female") { - return "女" - } else { - return "其他" - } - } - val loadProfile = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - isLoading.value = true - val user = supaInstance.user - if (user == null) { - profile.value.email = "" - isLoading.value = false - return@w1 - } - val userEmail = user.getString("email") - if (userEmail == null || userEmail == "") { - profile.value.email = "" - isLoading.value = false - return@w1 - } - val filter = "id=eq." + user["id"] as String - val options = AkSupaSelectOptions(single = true) - val result = await(supaInstance.select("ak_users", filter, options)) - val data = result.data - val error = result.error - if (UTSArray.isArray(data) && (data as UTSArray).length > 0) { - val prodata = (data as UTSArray)[0] as UTSJSONObject - val p: UserProfile = UserProfile(id = user["id"] as String, username = prodata.getString("username") ?: "", email = prodata.getString("email") ?: "", gender = prodata.getString("gender") ?: "other", birthday = prodata.getString("birthday") ?: "", height_cm = prodata.getNumber("height_cm") ?: 0, weight_kg = prodata.getNumber("weight_kg") ?: 0, bio = prodata.getString("bio") ?: "", avatar_url = prodata.getString("avatar_url") ?: "/static/logo.png", preferred_language = prodata.getString("preferred_language") ?: "zh-CN") - profile.value = p - if (p.avatar_url != null && p.avatar_url != "") { - userAvatar.value = p.avatar_url!! - } - setUserProfile(p) - } else { - profile.value.id = user.getString("id") ?: "" - profile.value.username = user.getString("username") ?: "" - profile.value.email = user.getString("email") ?: "" - if (profile.value.username == "") { - val emailStr = profile.value.email - if (emailStr != null && emailStr != "") { - val parts = emailStr.split("@") - if (parts.length > 0) { - profile.value.username = parts[0] - } - } - } - val newProfile = UTSJSONObject(object : UTSJSONObject() { - var id = profile.value.id!! - var username = profile.value.username - var email = profile.value.email - var gender = profile.value.gender - var preferred_language = profile.value.preferred_language - }, UTSSourceMapPosition("newProfile", "pages/user/profile.uvue", 220, 11)) - val insertResult = await(supaInstance.from("ak_users").insert(newProfile).execute()) - if (insertResult.error == null) { - val newProfileData: UserProfile = UserProfile(id = profile.value.id, username = profile.value.username, email = profile.value.email, gender = profile.value.gender, preferred_language = profile.value.preferred_language) - setUserProfile(newProfileData) - } - } - isLoading.value = false - }) - } - val saveProfile = fun(): UTSPromise { - return wrapUTSPromise(suspend { - isSaving.value = true - saveSuccess.value = "" - saveError.value = "" - try { - val userid: String = profile.value.id ?: "" - val updateData: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("updateData", "pages/user/profile.uvue", 251, 11)) { - var username = profile.value.username - var gender = profile.value.gender - var birthday = profile.value.birthday - var height_cm = profile.value.height_cm - var weight_kg = profile.value.weight_kg - var bio = profile.value.bio - var avatar_url = profile.value.avatar_url - var preferred_language = profile.value.preferred_language - } - val result = await(supaInstance.from("ak_users").update(updateData).eq("id", userid).execute()) - if (result.error == null) { - saveSuccess.value = "保存成功" - } else { - saveError.value = "保存失败" - } - } - catch (e: Throwable) { - saveError.value = "保存失败" - } - isSaving.value = false - }) - } - val onSubmit = fun(): Unit { - saveProfile() - } - val getUuid = fun(): String { - return "" + Date.now() + "_" + Math.floor(Math.random() * 1e8) - } - val chooseAvatar = fun(): Unit { - uni_chooseImage(ChooseImageOptions(count = 1, sizeType = _uA( - "compressed" - ), sourceType = _uA( - "album", - "camera" - ), success = fun(res: ChooseImageSuccess){ - val upfilepath = res.tempFilePaths[0] - val userId = profile.value.id ?: "" - var ext = "png" - val tempFiles = res.tempFiles - if (UTSArray.isArray(tempFiles) && tempFiles.length > 0) { - val fileObj: ChooseImageTempFile = tempFiles[0] - val fileName = fileObj.name - if (fileName != null && fileName != "") { - val idx = fileName.lastIndexOf(".") - if (idx >= 0) { - ext = fileName.substring(idx + 1) - } - } - } - val uuid = getUuid() - val remotePath = "profiles/" + userId + "_" + uuid + "." + ext - supaInstance.storage.from("zhipao").upload(remotePath, upfilepath, UTSJSONObject()).then(fun(uploadResult){ - if (uploadResult.status == 200 || uploadResult.status == 201) { - val data = uploadResult.data - if (data != null) { - val dataObj = data as UTSJSONObject - var avatarUrl = dataObj.getString("Key") - if (avatarUrl != null && avatarUrl != "") { - avatarUrl = "https://ak3.oulog.com/storage/v1/object/public/" + avatarUrl - userAvatar.value = avatarUrl - profile.value.avatar_url = avatarUrl - saveProfile() - uni_showToast(ShowToastOptions(title = "头像已更新", icon = "success")) - } - } - } else { - uni_showToast(ShowToastOptions(title = "上传失败", icon = "none")) - } - } - ) - } - )) - } - val onHeightInput = fun(e: UniInputEvent): Unit { - val kVal = e.detail.value - if (kVal == "") { - profile.value.height_cm = 0 - } else { - profile.value.height_cm = parseInt(kVal) - } - } - val onWeightInput = fun(e: UniInputEvent): Unit { - val kVal = e.detail.value - if (kVal == "") { - profile.value.weight_kg = 0 - } else { - profile.value.weight_kg = parseInt(kVal) - } - } - val showGenderPickerNow = fun(): Unit { - val genderValue = profile.value.gender - val idx = if (genderValue != null) { - genderOptions.indexOf(genderValue) - } else { - -1 - } - tempGenderIndex.value = _uA( - if (idx >= 0) { - idx - } else { - 0 - } - ) - showGenderPicker.value = true - } - val onGenderPickerViewChange = fun(e: UniPickerViewChangeEvent): Unit { - val idx = e.detail.value[0] - tempGenderIndex.value = _uA( - if ((idx >= 0 && idx < genderOptions.length)) { - idx - } else { - 0 - } - ) - } - val confirmGenderPicker = fun(): Unit { - profile.value.gender = genderOptions[tempGenderIndex.value[0]] - showGenderPicker.value = false - } - val onBirthdayDateChange = fun(vals: UTSArray): Unit { - tempBirthday.value = vals - } - val showBirthdayPickernow = fun(): Unit { - val birthday = profile.value.birthday - if (birthday != null && birthday != "") { - val parts = birthday.split("-") - if (parts.length == 3) { - tempBirthday.value = _uA( - parseInt(parts[0]), - parseInt(parts[1]), - parseInt(parts[2]) - ) - } - } - showBirthdayPicker.value = true - } - val confirmBirthdayPicker = fun(): Unit { - showBirthdayPicker.value = false - val y = tempBirthday.value[0] - val m = tempBirthday.value[1] - val d = tempBirthday.value[2] - val mm = if (m < 10) { - "0" + m - } else { - "" + m - } - val dd = if (d < 10) { - "0" + d - } else { - "" + d - } - profile.value.birthday = "" + y + "-" + mm + "-" + dd - } - onMounted(fun(){ - loadProfile() - } - ) - return fun(): Any? { - val _component_picker_view_column = resolveComponent("picker-view-column") - val _component_picker_view = resolveComponent("picker-view") - val _component_picker_date = resolveComponent("picker-date") - val _component_form = resolveComponent("form") - return _cE("view", _uM("class" to "page-wrapper"), _uA( - _cE("view", _uM("class" to "top-section"), _uA( - _cE("view", _uM("class" to "language-switch"), _uA( - _cE("button", _uM("class" to "language-btn", "onClick" to toggleLanguage), _tD(if (currentLocale.value === "zh-CN") { - "EN" - } else { - "中" - } - ), 1) - )) - )), - _cE("view", _uM("class" to "main-section"), _uA( - _cE("scroll-view", _uM("direction" to "vertical", "class" to "profile-container"), _uA( - if (isTrue(isLoading.value)) { - _cE("view", _uM("key" to 0, "class" to "loading-container"), _uA( - _cE("text", _uM("class" to "loading-text"), "加载中...") - )) - } else { - if (profile.value.email == "") { - _cE("view", _uM("key" to 1, "class" to "error-container"), _uA( - _cE("text", _uM("class" to "error-text"), "加载失败"), - _cE("button", _uM("class" to "retry-button", "onClick" to loadProfile), "重试") - )) - } else { - _cE("view", _uM("key" to 2, "class" to "profile-content"), _uA( - _cE("view", _uM("class" to "avatar-section"), _uA( - _cE("image", _uM("class" to "avatar", "src" to userAvatar.value, "mode" to "aspectFill", "onClick" to chooseAvatar), null, 8, _uA( - "src" - )) - )), - _cV(_component_form, _uM("onSubmit" to onSubmit), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "用户名"), - _cE("input", _uM("class" to "input-field", "name" to "username", "type" to "text", "modelValue" to profile.value.username, "onInput" to fun(`$event`: UniInputEvent){ - profile.value.username = `$event`.detail.value - } - , "placeholder" to "请输入用户名"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "邮箱"), - _cE("input", _uM("class" to "input-field readonly", "name" to "email", "type" to "text", "modelValue" to profile.value.email, "onInput" to fun(`$event`: UniInputEvent){ - profile.value.email = `$event`.detail.value - } - , "disabled" to ""), null, 40, _uA( - "modelValue", - "onInput" - )), - _cE("text", _uM("class" to "hint-text"), "邮箱不可修改") - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "性别"), - _cE("view", _uM("class" to "picker-field", "onClick" to showGenderPickerNow), _uA( - _cE("text", null, _tD(getGenderText(profile.value.gender ?: "other")), 1), - _cE("text", _uM("class" to "picker-arrow"), ">") - )), - if (isTrue(showGenderPicker.value)) { - _cE("view", _uM("key" to 0, "class" to "picker-modal"), _uA( - _cV(_component_picker_view, _uM("class" to "picker-view", "value" to tempGenderIndex.value, "indicator-style" to "height: 50px;", "onChange" to onGenderPickerViewChange), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_picker_view_column, _uM("style" to _nS(_uM("width" to "750rpx"))), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cE(Fragment, null, RenderHelpers.renderList(genderOptions, fun(g, idx, __index, _cached): Any { - return _cE("view", _uM("key" to g, "class" to "picker-item"), _tD(getGenderText(g)), 1) - }), 64) - ) - }), "_" to 1), 8, _uA( - "style" - )) - ) - }), "_" to 1), 8, _uA( - "value" - )), - _cE("view", _uM("class" to "picker-actions"), _uA( - _cE("button", _uM("onClick" to fun(){ - showGenderPicker.value = false - }), "取消", 8, _uA( - "onClick" - )), - _cE("button", _uM("onClick" to confirmGenderPicker, "class" to "picker-actions-button"), "确定") - )) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "生日"), - _cE("view", _uM("class" to "picker-field", "onClick" to showBirthdayPickernow), _uA( - _cE("text", null, _tD(if (profile.value.birthday != null && profile.value.birthday != "") { - profile.value.birthday - } else { - "请选择生日" - } - ), 1), - _cE("text", _uM("class" to "picker-arrow"), ">") - )), - if (isTrue(showBirthdayPicker.value)) { - _cE("view", _uM("key" to 0, "class" to "picker-modal"), _uA( - _cV(_component_picker_date, _uM("startYear" to 1970, "endYear" to Date().getFullYear(), "value" to tempBirthday.value, "onChange" to onBirthdayDateChange), null, 8, _uA( - "endYear", - "value" - )), - _cE("view", _uM("class" to "picker-actions"), _uA( - _cE("button", _uM("onClick" to fun(){ - showBirthdayPicker.value = false - }), "取消", 8, _uA( - "onClick" - )), - _cE("button", _uM("onClick" to confirmBirthdayPicker, "class" to "picker-actions-button"), "确定") - )) - )) - } else { - _cC("v-if", true) - } - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "身高 (cm)"), - _cE("input", _uM("class" to "input-field", "name" to "height", "type" to "number", "value" to if (profile.value.height_cm != null && profile.value.height_cm!! > 0) { - profile.value.height_cm - } else { - "" - } - , "placeholder" to "请输入身高", "onInput" to onHeightInput), null, 40, _uA( - "value" - )) - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "体重 (kg)"), - _cE("input", _uM("class" to "input-field", "name" to "weight", "type" to "number", "value" to if (profile.value.weight_kg != null && profile.value.weight_kg!! > 0) { - profile.value.weight_kg - } else { - "" - } - , "placeholder" to "请输入体重", "onInput" to onWeightInput), null, 40, _uA( - "value" - )) - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("text", _uM("class" to "input-label"), "个人简介"), - _cE("textarea", _uM("class" to "textarea-field", "name" to "bio", "modelValue" to profile.value.bio, "onInput" to fun(`$event`: UniInputEvent){ - profile.value.bio = `$event`.detail.value - } - , "placeholder" to "请输入个人简介"), null, 40, _uA( - "modelValue", - "onInput" - )) - )), - _cE("button", _uM("form-type" to "submit", "class" to "save-button", "disabled" to isSaving.value, "loading" to isSaving.value), " 保存 ", 8, _uA( - "disabled", - "loading" - )) - ) - } - ), "_" to 1)), - if (saveSuccess.value != "") { - _cE("view", _uM("key" to 0, "class" to "success-message"), _uA( - _cE("text", _uM("class" to "success-text"), _tD(saveSuccess.value), 1) - )) - } else { - if (saveError.value != "") { - _cE("view", _uM("key" to 1, "class" to "error-message"), _uA( - _cE("text", _uM("class" to "error-text"), _tD(saveError.value), 1) - )) - } else { - _cC("v-if", true) - } - } - )) - } - } - )) - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page-wrapper" to _pS(_uM("display" to "flex", "flexDirection" to "column", "backgroundColor" to "#f8f9fa", "height" to "100%", "position" to "absolute", "top" to 0, "left" to 0, "right" to 0, "bottom" to 0)), "top-section" to _pS(_uM("flexShrink" to 0, "height" to "100rpx", "position" to "relative", "backgroundColor" to "#f8f9fa")), "main-section" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "height" to 0)), "profile-container" to _pS(_uM("width" to "100%", "height" to "100%", "paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "backgroundColor" to "#f8f9fa", "boxSizing" to "border-box")), "language-switch" to _pS(_uM("position" to "absolute", "top" to "20rpx", "right" to "30rpx", "zIndex" to 10)), "language-btn" to _pS(_uM("width" to "60rpx", "height" to "60rpx", "borderTopLeftRadius" to "30rpx", "borderTopRightRadius" to "30rpx", "borderBottomRightRadius" to "30rpx", "borderBottomLeftRadius" to "30rpx", "fontSize" to "22rpx", "backgroundColor" to "rgba(33,150,243,0.8)", "color" to "#ffffff", "fontWeight" to "normal", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(255,255,255,0.3)", "borderRightColor" to "rgba(255,255,255,0.3)", "borderBottomColor" to "rgba(255,255,255,0.3)", "borderLeftColor" to "rgba(255,255,255,0.3)", "textAlign" to "center")), "loading-container" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "height" to "80%")), "loading-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#666666")), "error-container" to _pS(_uM("display" to "flex", "flexDirection" to "column", "alignItems" to "center", "justifyContent" to "center", "height" to "80%")), "error-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#f44336", "marginBottom" to "20rpx")), "retry-button" to _pS(_uM("paddingTop" to "20rpx", "paddingRight" to "40rpx", "paddingBottom" to "20rpx", "paddingLeft" to "40rpx", "fontSize" to "28rpx", "backgroundColor" to "#2196f3", "color" to "#FFFFFF", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx")), "profile-content" to _pS(_uM("paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "backgroundColor" to "#FFFFFF", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx")), "avatar-section" to _pS(_uM("display" to "flex", "justifyContent" to "center", "marginBottom" to "40rpx")), "avatar" to _pS(_uM("width" to "140rpx", "height" to "140rpx", "borderTopLeftRadius" to "70rpx", "borderTopRightRadius" to "70rpx", "borderBottomRightRadius" to "70rpx", "borderBottomLeftRadius" to "70rpx", "backgroundColor" to "#eeeeee")), "input-group" to _pS(_uM("marginBottom" to "30rpx")), "input-label" to _pS(_uM("fontSize" to "28rpx", "marginBottom" to "10rpx", "fontWeight" to "normal", "color" to "#333333", "display" to "flex")), "input-field" to _uM("" to _uM("width" to "100%", "height" to "80rpx", "paddingTop" to 0, "paddingRight" to "20rpx", "paddingBottom" to 0, "paddingLeft" to "20rpx", "fontSize" to "28rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#ffffff", "boxSizing" to "border-box"), ".readonly" to _uM("backgroundColor" to "#f5f5f5", "color" to "#999999")), "hint-text" to _pS(_uM("fontSize" to "24rpx", "marginTop" to "6rpx", "color" to "#999999")), "picker-field" to _pS(_uM("width" to "100%", "height" to "80rpx", "paddingTop" to 0, "paddingRight" to "20rpx", "paddingBottom" to 0, "paddingLeft" to "20rpx", "fontSize" to "28rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#ffffff", "display" to "flex", "flexDirection" to "row", "alignItems" to "center", "justifyContent" to "space-between", "boxSizing" to "border-box")), "picker-arrow" to _pS(_uM("color" to "#999999", "fontSize" to "24rpx")), "textarea-field" to _pS(_uM("width" to "100%", "height" to "200rpx", "paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "fontSize" to "28rpx", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "borderTopWidth" to "2rpx", "borderRightWidth" to "2rpx", "borderBottomWidth" to "2rpx", "borderLeftWidth" to "2rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#dddddd", "borderRightColor" to "#dddddd", "borderBottomColor" to "#dddddd", "borderLeftColor" to "#dddddd", "backgroundColor" to "#ffffff", "boxSizing" to "border-box")), "save-button" to _pS(_uM("width" to "100%", "height" to "90rpx", "fontSize" to "32rpx", "marginTop" to "20rpx", "marginRight" to 0, "marginBottom" to "20rpx", "marginLeft" to 0, "borderTopLeftRadius" to "45rpx", "borderTopRightRadius" to "45rpx", "borderBottomRightRadius" to "45rpx", "borderBottomLeftRadius" to "45rpx", "backgroundImage" to "linear-gradient(to right, #2196f3, #03a9f4)", "color" to "#ffffff", "fontWeight" to "normal", "textAlign" to "center", "backgroundImage:disabled" to "none", "backgroundColor:disabled" to "#cccccc")), "success-message" to _pS(_uM("paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "marginBottom" to "20rpx", "backgroundColor" to "#e8f5e9", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx")), "success-text" to _pS(_uM("color" to "#43a047", "fontSize" to "28rpx", "textAlign" to "center")), "error-message" to _pS(_uM("paddingTop" to "20rpx", "paddingRight" to "20rpx", "paddingBottom" to "20rpx", "paddingLeft" to "20rpx", "marginBottom" to "20rpx", "backgroundColor" to "#ffebee", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx")), "picker-modal" to _pS(_uM("position" to "fixed", "left" to 0, "right" to 0, "bottom" to 0, "backgroundImage" to "none", "backgroundColor" to "#ffffff", "zIndex" to 1000, "paddingBottom" to "30rpx", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "display" to "flex", "flexDirection" to "column", "alignItems" to "center")), "picker-view" to _pS(_uM("width" to "750rpx", "height" to 320, "backgroundImage" to "none", "backgroundColor" to "#ffffff")), "picker-item" to _pS(_uM("height" to 50, "display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to "750rpx")), "picker-actions" to _pS(_uM("display" to "flex", "justifyContent" to "space-between", "width" to "750rpx", "paddingTop" to "20rpx", "paddingRight" to "40rpx", "paddingBottom" to 0, "paddingLeft" to "40rpx", "boxSizing" to "border-box")), "picker-actions-button" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "marginTop" to 0, "marginRight" to "10rpx", "marginBottom" to 0, "marginLeft" to "10rpx", "backgroundImage" to "none", "backgroundColor" to "#2196f3", "color" to "#ffffff", "borderTopLeftRadius" to "10rpx", "borderTopRightRadius" to "10rpx", "borderBottomRightRadius" to "10rpx", "borderBottomLeftRadius" to "10rpx", "fontSize" to "28rpx", "height" to "80rpx"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/register.kt b/unpackage/cache/.app-android/src/pages/user/register.kt deleted file mode 100644 index 9464fd4a..00000000 --- a/unpackage/cache/.app-android/src/pages/user/register.kt +++ /dev/null @@ -1,306 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateTo as uni_navigateTo -import io.dcloud.uniapp.extapi.redirectTo as uni_redirectTo -import io.dcloud.uniapp.extapi.showToast as uni_showToast -open class GenPagesUserRegister : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - companion object { - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - var setup: (__props: GenPagesUserRegister) -> Any? = fun(__props): Any? { - val __ins = getCurrentInstance()!! - val _ctx = __ins.proxy as GenPagesUserRegister - val _cache = __ins.renderCache - val email = ref("") - val password = ref("") - val confirmPassword = ref("") - val protocol = ref(false) - val inAnimation = ref(false) - val isLoading = ref(false) - val logoUrl = ref("/static/logo.png") - val handleProtocolChange = fun(e: UniCheckboxGroupChangeEvent): Unit { - protocol.value = protocol.value == false - } - val validateEmail = fun(): Boolean { - if (email.value.trim() == "") { - uni_showToast(ShowToastOptions(title = "请填写邮箱", icon = "none")) - return false - } - val atIndex = email.value.indexOf("@") - val dotIndex = email.value.lastIndexOf(".") - if (atIndex == -1 || dotIndex == -1 || atIndex > dotIndex) { - uni_showToast(ShowToastOptions(title = "请输入正确的邮箱", icon = "none")) - return false - } - return true - } - val validatePassword = fun(): Boolean { - if (password.value.trim() == "") { - uni_showToast(ShowToastOptions(title = "请填写密码", icon = "none")) - return false - } - if (password.value.length < 6) { - uni_showToast(ShowToastOptions(title = "密码长度不能少于6位", icon = "none")) - return false - } - return true - } - val validateConfirmPassword = fun(): Boolean { - if (confirmPassword.value.trim() == "") { - uni_showToast(ShowToastOptions(title = "请确认密码", icon = "none")) - return false - } - if (confirmPassword.value != password.value) { - uni_showToast(ShowToastOptions(title = "两次输入的密码不一致", icon = "none")) - return false - } - return true - } - val handleRegister = fun(): UTSPromise { - return wrapUTSPromise(suspend w1@{ - if (protocol.value == false) { - inAnimation.value = true - uni_showToast(ShowToastOptions(title = "请先阅读并同意协议", icon = "none")) - return@w1 - } - if (validateEmail() == false) { - return@w1 - } - if (validatePassword() == false) { - return@w1 - } - if (validateConfirmPassword() == false) { - return@w1 - } - isLoading.value = true - try { - val options = UTSJSONObject(UTSSourceMapPosition("options", "pages/user/register.uvue", 187, 10)) - val metaData = UTSJSONObject(UTSSourceMapPosition("metaData", "pages/user/register.uvue", 188, 10)) - metaData.set("user_role", "consumer") - options.set("data", metaData) - val result = await(supaInstance.signUp(email.value.trim(), password.value, options)) - console.log("注册返回结果:", result, " at pages/user/register.uvue:194") - val errorCode = result?.getString("error_code") ?: "" - val errorMsg = result?.getString("msg") ?: "" - val code = result?.getNumber("code") ?: 0 - console.log("错误代码:", errorCode, "错误信息:", errorMsg, "状态码:", code, " at pages/user/register.uvue:200") - if (code == 500 && (errorCode == "unexpected_failure" || errorMsg.includes("confirmation email"))) { - console.warn("邮件发送失败,但用户可能已创建", " at pages/user/register.uvue:203") - } - var user: UTSJSONObject? = null - var hasSession = false - if (result != null) { - val userField = result.getJSON("user") - if (userField != null) { - user = userField - console.log("找到 user 字段:", user.getString("id"), user.getString("email"), " at pages/user/register.uvue:213") - } else { - val id = result.getString("id") - if (id != null && id != "") { - user = result - console.log("result 本身就是 user 对象:", id, " at pages/user/register.uvue:218") - } else { - console.warn("未找到 user 信息", " at pages/user/register.uvue:220") - } - } - val sessionField = result.getJSON("session") - if (sessionField != null) { - hasSession = true - console.log("找到 session,已自动登录", " at pages/user/register.uvue:227") - } else { - console.log("未找到 session,可能需要邮箱验证", " at pages/user/register.uvue:229") - } - } - if (user == null && code != 0 && code != 200) { - if (code == 500 && errorMsg.includes("confirmation email")) { - throw UTSError("注册失败:邮件服务配置错误") - } else { - throw UTSError(if (errorMsg != "") { - errorMsg - } else { - "注册失败,请重试" - } - ) - } - } - if (user != null) { - try { - val profileResult = await(ensureUserProfile(user)) - if (profileResult != null) { - console.log("用户资料创建成功:", profileResult.id, " at pages/user/register.uvue:245") - } else { - console.warn("用户资料创建失败,但注册已成功", " at pages/user/register.uvue:247") - } - } catch (profileError: Throwable) { - console.error("创建用户资料异常:", profileError, " at pages/user/register.uvue:250") - } - } else { - console.warn("注册成功但未获取到用户信息", " at pages/user/register.uvue:253") - } - if (hasSession == false && user != null) { - console.log("需要邮箱验证", " at pages/user/register.uvue:257") - } - uni_showToast(ShowToastOptions(title = "注册成功", icon = "success")) - setTimeout(fun(){ - uni_redirectTo(RedirectToOptions(url = "/pages/user/login")) - } - , 1500) - } - catch (err: Throwable) { - console.error("注册错误:", err, " at pages/user/register.uvue:271") - var errorMessage = "注册失败,请重试" - if (err != null) { - val error = err as UTSError - if (error.message != null && error.message.trim() != "") { - errorMessage = error.message - if (error.message.includes("confirmation email") || error.message.includes("邮件")) { - errorMessage = "注册可能成功,但邮件发送失败,请稍后尝试登录" - } - } - } - uni_showToast(ShowToastOptions(title = errorMessage, icon = "none", duration = 3000)) - } - finally { - isLoading.value = false - } - }) - } - val navigateToLogin = fun(): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/user/login")) - } - val navigateToTerms = fun(type: Number): Unit { - uni_navigateTo(NavigateToOptions(url = "/pages/user/terms?type=" + type)) - } - return fun(): Any? { - val _component_checkbox = resolveComponent("checkbox") - val _component_checkbox_group = resolveComponent("checkbox-group") - return _cE("view", _uM("class" to "register-wrapper"), _uA( - _cE("view", _uM("class" to "header"), _uA( - _cE("image", _uM("src" to logoUrl.value, "mode" to "aspectFit", "class" to "logo"), null, 8, _uA( - "src" - )) - )), - _cE("view", _uM("class" to "register-box"), _uA( - _cE("view", _uM("class" to "title"), "注册账号"), - _cE("view", _uM("class" to "form-content"), _uA( - _cE("view", _uM("class" to "input-group"), _uA( - _cE("view", _uM("class" to "input-wrapper"), _uA( - _cE("image", _uM("src" to "/static/user/phone_1.png", "class" to "input-icon")), - _cE("input", _uM("type" to "text", "placeholder" to "输入邮箱", "modelValue" to email.value, "onInput" to fun(`$event`: UniInputEvent){ - email.value = `$event`.detail.value - } - , "class" to "input-field"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("view", _uM("class" to "input-wrapper"), _uA( - _cE("image", _uM("src" to "/static/user/code_1.png", "class" to "input-icon")), - _cE("input", _uM("type" to "password", "placeholder" to "填写密码", "modelValue" to password.value, "onInput" to fun(`$event`: UniInputEvent){ - password.value = `$event`.detail.value - } - , "class" to "input-field"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )), - _cE("view", _uM("class" to "input-group"), _uA( - _cE("view", _uM("class" to "input-wrapper"), _uA( - _cE("image", _uM("src" to "/static/user/code_1.png", "class" to "input-icon")), - _cE("input", _uM("type" to "password", "placeholder" to "确认密码", "modelValue" to confirmPassword.value, "onInput" to fun(`$event`: UniInputEvent){ - confirmPassword.value = `$event`.detail.value - } - , "class" to "input-field"), null, 40, _uA( - "modelValue", - "onInput" - )) - )) - )) - )), - _cE("view", _uM("class" to _nC(_uA( - "register-btn", - if (isLoading.value) { - "disabled" - } else { - "" - } - )), "onClick" to handleRegister), " 注册 ", 2), - _cE("view", _uM("class" to "tips"), _uA( - _cE("text", _uM("class" to "tips-text"), "已有账号?"), - _cE("text", _uM("class" to "tips-link", "onClick" to navigateToLogin), "立即登录") - )), - _cE("view", _uM("class" to "protocol"), _uA( - _cV(_component_checkbox_group, _uM("onChange" to handleProtocolChange), _uM("default" to withSlotCtx(fun(): UTSArray { - return _uA( - _cV(_component_checkbox, _uM("class" to _nC(_uA( - "protocol-checkbox", - if (inAnimation.value) { - "trembling" - } else { - "" - } - )), "checked" to protocol.value), null, 8, _uA( - "checked", - "class" - )), - _cE("text", _uM("class" to "protocol-text"), _uA( - " 已阅读并同意 ", - _cE("text", _uM("class" to "main-color", "onClick" to fun(){ - navigateToTerms(3) - } - ), "《用户协议》", 8, _uA( - "onClick" - )), - " 与 ", - _cE("text", _uM("class" to "main-color", "onClick" to fun(){ - navigateToTerms(4) - } - ), "《隐私协议》", 8, _uA( - "onClick" - )) - )) - ) - } - ), "_" to 1)) - )) - )), - _cE("view", _uM("class" to "footer"), _uA( - _cE("text", _uM("class" to "footer-text"), "Copyright ©2024 Mall. All Rights Reserved") - )) - )) - } - } - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("register-wrapper" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "display" to "flex", "flexDirection" to "column", "backgroundImage" to "none", "backgroundColor" to "#F5F5F5")), "header" to _pS(_uM("paddingTop" to "40rpx", "paddingRight" to 0, "paddingBottom" to 0, "paddingLeft" to "60rpx", "backgroundImage" to "none", "backgroundColor" to "#F5F5F5")), "logo" to _pS(_uM("width" to "200rpx", "height" to "80rpx")), "register-box" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF", "marginTop" to "60rpx", "marginRight" to "40rpx", "marginBottom" to 0, "marginLeft" to "40rpx", "borderTopLeftRadius" to "8rpx", "borderTopRightRadius" to "8rpx", "borderBottomRightRadius" to "8rpx", "borderBottomLeftRadius" to "8rpx", "paddingTop" to "60rpx", "paddingRight" to "50rpx", "paddingBottom" to "40rpx", "paddingLeft" to "50rpx", "boxShadow" to "0 2rpx 8rpx rgba(0, 0, 0, 0.08)")), "title" to _pS(_uM("fontSize" to "40rpx", "fontWeight" to "700", "color" to "#333333", "textAlign" to "center", "marginBottom" to "50rpx")), "form-content" to _pS(_uM("marginBottom" to "40rpx")), "input-group" to _pS(_uM("marginBottom" to "30rpx")), "input-wrapper" to _pS(_uM("position" to "relative", "display" to "flex", "alignItems" to "center", "paddingTop" to 0, "paddingRight" to "20rpx", "paddingBottom" to 0, "paddingLeft" to "20rpx", "height" to "88rpx", "borderTopWidth" to "1rpx", "borderRightWidth" to "1rpx", "borderBottomWidth" to "1rpx", "borderLeftWidth" to "1rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "#E0E0E0", "borderRightColor" to "#E0E0E0", "borderBottomColor" to "#E0E0E0", "borderLeftColor" to "#E0E0E0", "borderTopLeftRadius" to "4rpx", "borderTopRightRadius" to "4rpx", "borderBottomRightRadius" to "4rpx", "borderBottomLeftRadius" to "4rpx", "backgroundImage" to "none", "backgroundColor" to "#FFFFFF")), "input-icon" to _pS(_uM("width" to "32rpx", "height" to "32rpx", "flexShrink" to 0, "marginRight" to "20rpx")), "input-field" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "fontSize" to "28rpx", "height" to "100%", "color" to "#333333")), "register-btn" to _uM("" to _uM("display" to "flex", "alignItems" to "center", "justifyContent" to "center", "width" to "100%", "height" to "88rpx", "marginTop" to "50rpx", "backgroundImage" to "linear-gradient(135deg, #FF4D4F 0%, #FF7A45 100%)", "backgroundColor" to "rgba(0,0,0,0)", "borderTopLeftRadius" to "4rpx", "borderTopRightRadius" to "4rpx", "borderBottomRightRadius" to "4rpx", "borderBottomLeftRadius" to "4rpx", "color" to "#FFFFFF", "fontSize" to "32rpx", "fontWeight" to "700", "boxShadow" to "0 4rpx 12rpx rgba(255, 77, 79, 0.3)"), ".disabled" to _uM("backgroundImage" to "none", "backgroundColor" to "#D9D9D9", "boxShadow" to "none", "opacity" to 0.6)), "tips" to _pS(_uM("marginTop" to "30rpx", "textAlign" to "center")), "tips-text" to _pS(_uM("fontSize" to "28rpx", "color" to "#666666")), "tips-link" to _pS(_uM("fontSize" to "28rpx", "color" to "#FF4D4F", "marginLeft" to "8rpx")), "protocol" to _pS(_uM("marginTop" to "40rpx", "display" to "flex", "alignItems" to "center", "justifyContent" to "center")), "protocol-checkbox" to _pS(_uM("marginRight" to "10rpx")), "protocol-text" to _pS(_uM("fontSize" to "24rpx", "color" to "#999999")), "main-color" to _pS(_uM("color" to "#FF4D4F")), "footer" to _pS(_uM("paddingTop" to "40rpx", "paddingRight" to 0, "paddingBottom" to "40rpx", "paddingLeft" to 0, "textAlign" to "center", "backgroundImage" to "none", "backgroundColor" to "#F5F5F5")), "footer-text" to _pS(_uM("fontSize" to "22rpx", "color" to "#999999"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/src/pages/user/terms.kt b/unpackage/cache/.app-android/src/pages/user/terms.kt deleted file mode 100644 index 382df11e..00000000 --- a/unpackage/cache/.app-android/src/pages/user/terms.kt +++ /dev/null @@ -1,73 +0,0 @@ -@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") -package uni.UNICONSUMER -import io.dcloud.uniapp.* -import io.dcloud.uniapp.extapi.* -import io.dcloud.uniapp.framework.* -import io.dcloud.uniapp.runtime.* -import io.dcloud.uniapp.vue.* -import io.dcloud.uniapp.vue.shared.* -import io.dcloud.unicloud.* -import io.dcloud.uts.* -import io.dcloud.uts.Map -import io.dcloud.uts.Set -import io.dcloud.uts.UTSAndroid -import kotlin.properties.Delegates -import io.dcloud.uniapp.extapi.navigateBack as uni_navigateBack -open class GenPagesUserTerms : BasePage { - constructor(__ins: ComponentInternalInstance, __renderer: String?) : super(__ins, __renderer) {} - @Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE") - override fun `$render`(): Any? { - val _ctx = this - val _cache = this.`$`.renderCache - return _cE("view", _uM("class" to "page"), _uA( - _cE("view", _uM("class" to "topbar"), _uA( - _cE("text", _uM("class" to "back", "onClick" to _ctx.goBack), "返回", 8, _uA( - "onClick" - )), - _cE("text", _uM("class" to "title"), "用户协议与隐私政策"), - _cE("text", _uM("class" to "ghost")) - )), - _cE("scroll-view", _uM("class" to "content", "scroll-y" to "true", "show-scrollbar" to "false"), _uA( - _cE("view", _uM("class" to "card"), _uA( - _cE("text", _uM("class" to "h1"), "用户协议"), - _cE("text", _uM("class" to "p"), "1. 本应用为商城系统示例/项目使用。 "), - _cE("text", _uM("class" to "p"), "2. 你在使用本应用服务时,应遵守法律法规与平台规则。 "), - _cE("text", _uM("class" to "p"), "3. 账号与密码由你自行保管,因泄露造成的损失由你自行承担。 "), - _cE("view", _uM("class" to "divider")), - _cE("text", _uM("class" to "h1"), "隐私政策"), - _cE("text", _uM("class" to "p"), "1. 我们可能会收集你提供的邮箱等信息,用于账号注册与登录。 "), - _cE("text", _uM("class" to "p"), "2. 我们会采取合理的安全措施保护你的信息安全。 "), - _cE("text", _uM("class" to "p"), "3. 你可以在账号相关页面申请修改或删除个人信息(以实际功能为准)。 ") - )), - _cE("view", _uM("class" to "footer"), _uA( - _cE("button", _uM("class" to "primary", "onClick" to _ctx.goBack), "我已阅读并同意", 8, _uA( - "onClick" - )) - )) - )) - )) - } - open var goBack = ::gen_goBack_fn - open fun gen_goBack_fn() { - uni_navigateBack(null) - } - companion object { - val styles: Map>> by lazy { - _nCS(_uA( - styles0 - ), _uA( - GenApp.styles - )) - } - val styles0: Map>> - get() { - return _uM("page" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "backgroundImage" to "none", "backgroundColor" to "#f7f8fa", "display" to "flex", "flexDirection" to "column")), "topbar" to _pS(_uM("height" to "96rpx", "paddingTop" to 0, "paddingRight" to "24rpx", "paddingBottom" to 0, "paddingLeft" to "24rpx", "backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.96)", "borderBottomWidth" to "1rpx", "borderBottomStyle" to "solid", "borderBottomColor" to "rgba(0,0,0,0.06)", "display" to "flex", "alignItems" to "center", "justifyContent" to "space-between")), "back" to _pS(_uM("fontSize" to "26rpx", "color" to "#ff4d4f", "width" to "120rpx")), "title" to _pS(_uM("fontSize" to "30rpx", "fontWeight" to "700", "color" to "#111111")), "ghost" to _pS(_uM("width" to "120rpx")), "content" to _pS(_uM("flexGrow" to 1, "flexShrink" to 1, "flexBasis" to "0%", "paddingTop" to "18rpx", "paddingRight" to "24rpx", "paddingBottom" to "24rpx", "paddingLeft" to "24rpx", "boxSizing" to "border-box")), "card" to _pS(_uM("backgroundImage" to "none", "backgroundColor" to "rgba(255,255,255,0.96)", "borderTopWidth" to "1rpx", "borderRightWidth" to "1rpx", "borderBottomWidth" to "1rpx", "borderLeftWidth" to "1rpx", "borderTopStyle" to "solid", "borderRightStyle" to "solid", "borderBottomStyle" to "solid", "borderLeftStyle" to "solid", "borderTopColor" to "rgba(0,0,0,0.06)", "borderRightColor" to "rgba(0,0,0,0.06)", "borderBottomColor" to "rgba(0,0,0,0.06)", "borderLeftColor" to "rgba(0,0,0,0.06)", "borderTopLeftRadius" to "20rpx", "borderTopRightRadius" to "20rpx", "borderBottomRightRadius" to "20rpx", "borderBottomLeftRadius" to "20rpx", "paddingTop" to "24rpx", "paddingRight" to "22rpx", "paddingBottom" to "24rpx", "paddingLeft" to "22rpx", "boxShadow" to "0 16rpx 36rpx rgba(0, 0, 0, 0.06)")), "h1" to _pS(_uM("fontSize" to "32rpx", "fontWeight" to "700", "color" to "#111111", "marginBottom" to "12rpx")), "p" to _pS(_uM("fontSize" to "26rpx", "color" to "rgba(0,0,0,0.65)", "lineHeight" to "44rpx", "marginBottom" to "12rpx")), "divider" to _pS(_uM("height" to "1rpx", "backgroundImage" to "none", "backgroundColor" to "rgba(0,0,0,0.08)", "marginTop" to "18rpx", "marginRight" to 0, "marginBottom" to "18rpx", "marginLeft" to 0)), "footer" to _pS(_uM("marginTop" to "18rpx")), "primary" to _pS(_uM("width" to "100%", "height" to "92rpx", "borderTopLeftRadius" to "18rpx", "borderTopRightRadius" to "18rpx", "borderBottomRightRadius" to "18rpx", "borderBottomLeftRadius" to "18rpx", "backgroundImage" to "linear-gradient(135deg, #ff4d4f 0%, #ff7a45 100%)", "backgroundColor" to "rgba(0,0,0,0)", "color" to "#ffffff", "fontSize" to "30rpx", "fontWeight" to "700", "boxShadow" to "0 16rpx 32rpx rgba(255, 77, 79, 0.24)"))) - } - var inheritAttrs = true - var inject: Map> = _uM() - var emits: Map = _uM() - var props = _nP(_uM()) - var propsNeedCastKeys: UTSArray = _uA() - var components: Map = _uM() - } -} diff --git a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo b/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo deleted file mode 100644 index 67f0b536..00000000 --- a/unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo +++ /dev/null @@ -1 +0,0 @@ -{"program":{"fileNames":["../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/boolean.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/console.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/date.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/error.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/json.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/math.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/number.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/regexp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/set.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/string.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/timers.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/utsjsonobject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/arraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/float64array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/int32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint8clampedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint16array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/uint32array.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/dataview.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/shims.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es5.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.collection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2015.iterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asynciterable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.asyncgenerator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2018.promise.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/lib.es2020.symbol.wellknown.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/shims/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uts/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/hbuilderx.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/hbuilder-x/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/shared/dist/shared.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/reactivity/dist/reactivity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/runtime-core/dist/runtime-core.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/@vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/vue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/shims/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/filedescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/ibinder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/iinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sparsebooleanarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/arraymap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/size.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/closeable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/flushable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/outputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/inputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/basebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/persistablebundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/sizef.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/serializable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/bundle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/icu/util/ulocale.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/localelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/blendmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/audioattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationattributes.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrationeffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibrator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/combinedvibration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/vibratormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keyevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidruntimeexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/keycharactermap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/light.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/lights/lightsmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/batterystate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/hardwarebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/memoryfile.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/triggereventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/channel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensordirectchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensoreventlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/printer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messenger.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/message.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/messagequeue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/looper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/handler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/sensormanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputdevice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/insets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rectf.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/writer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/proxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/url.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/watchservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/linkoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedexceptionaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/privilegedaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/provider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/key.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/publickey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certificate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/cert/certpath.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/timestamp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesigner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/codesource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/guard.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/permissioncollection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/protectiondomain.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/domaincombiner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/accesscontrolcontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/javax/security/auth/subject.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/security/principal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/groupprincipal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/userprincipallookupservice.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/pathmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/buffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/byteorder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/doublebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/shortbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/charbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/intbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/floatbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/longbuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/bytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/mappedbytebuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/writablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/gatheringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/openoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/readablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/scatteringbytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/bytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/seekablebytechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/attribute/fileattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/interruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractinterruptiblechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/completionhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronouschannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/asynchronousfilechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filelock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/filechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filestore.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/accessmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/copyoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/directorystream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/spi/filesystemprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/filesystem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/file/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/file.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/printwriter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/motionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalunit.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalamount.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/duration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/path.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/region.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitywindowinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentname.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/credentialoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/credentials/getcredentialrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/outcomereceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/autofill/autofillvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewstructure.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/locusid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentcapture/contentcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/longsparsearray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/property.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/attributeset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/transformation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/timeinterpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/interpolator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/animation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/animator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/statelistanimator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileinputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/fileoutputstream.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/io/ioexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/networkinterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/inetaddress.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagrampacket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoption.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/pipe.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/networkchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/socketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimpl.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/socketimplfactory.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/serversocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/serversocketchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/protocolfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectionkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselector.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/selectorprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/selectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/spi/abstractselectablechannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/membershipkey.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/multicastchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/nio/channels/datagramchannel.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/net/datagramsocket.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/parcelfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetfiledescriptor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/xmlresourceparser.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/assetmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/xfermode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/shader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/patheffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/maskfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/paint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/font.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontfamily.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontvariationaxis.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/fonts/fontstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/typeface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/displaymetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/typedvalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/colorstatelist.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/typedarray.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/changedpackages.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/moduleinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/configuration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/userhandle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/androidexception.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentsender.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/componentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/serviceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/attribution.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featureinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/featuregroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signature.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/signinginfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/instrumentationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/activityinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/patternmatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/pathpermission.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/providerinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/configurationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/permissiongroupinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/versionedpackage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/attributionsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/net/uri.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/contentobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/chararraybuffer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/datasetobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/cursor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentvalues.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/cancellationsignal.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/componentcallbacks2.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/colorspace.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/ninepatch.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/color.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/mesh.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/gainmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmapshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/runtimeshader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendereffect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/linebreakconfig.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/text/measuredtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/recordingcanvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/outline.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/rendernode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/matrix44.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/canvas.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/picture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/bitmap.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/icon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncadaptertype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentproviderclient.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/accounts/account.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncstatusobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/syncinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contentresolver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/urirelativefiltergroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intentfilter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/resolveinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/archivedpackageinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pendingintent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageinstaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/installsourceinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/packageiteminfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/pm/applicationinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/assetsprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayidentifier.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/om/overlayinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/loader/resourcesloader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/movie.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/res/resources.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/drawable/drawable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationresponsevalue.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationresponse.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/viewtranslationcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilitynodeprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/onreceivecontentlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/surroundingtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/inputtype.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/editorinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokedcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/onbackinvokeddispatcher.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuitem.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/submenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/menuinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/actionmode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimationcontrollistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetscontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/inputtransfertoken.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/syncfence.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/attachedsurfacecontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/abssavedstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textsnapshot.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputcontentinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/handwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/completioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/correctioninfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/textattribute.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/previewablehandwritinggesture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/extractedtextrequest.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/inputmethod/inputconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityrecord.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/accessibility/accessibilityeventsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/pointericon.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextmenu.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/point.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/roundedcorner.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/overlayproperties.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/hardware/display/deviceproductinfo.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/display.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhash.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayhash/displayhashresultcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displaycutout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/displayshape.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowinsetsanimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/graphics/surfacetexture.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturesession.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/scrollcapturecallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/touchdelegate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/dragevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationspec.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/translation/translationcapability.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/view.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/textpaint.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/characterstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/updateappearance.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/style/clickablespan.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spanned.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/text/spannable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/textstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporaladjuster.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/decimalstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/resolverstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalfield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/valuerange.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalquery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/temporalaccessor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/parseposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/formatstyle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsettime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/month.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronoperiod.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/era.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/temporal/chronofield.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isoera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/abstractchronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/dayofweek.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/isochronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/period.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localdate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/localtime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronolocaldatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronozoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/chrono/chronology.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/characteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/attributedcharacteriterator.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/fieldposition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/text/format.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/format/datetimeformatter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/offsetdatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instant.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zoneoffsettransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zone/zonerules.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneoffset.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/instantsource.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/clock.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/java/time/zoneddatetime.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/textclassifier/textlinks.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/clipdata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/intent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/serviceconnection.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteclosable.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliteprogram.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitestatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitequery.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitecursordriver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqliterawstatement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/databaseerrorhandler.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitetransactionlistener.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/database/sqlite/sqlitedatabase.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/broadcastreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/sharedpreferences.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/context.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/loader.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/loadermanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/assist/assistcontent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewparent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewoverlay.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/animation/layouttransition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/animation/layoutanimationcontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/viewgroup.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/scene.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/componentcaller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/pathmotion.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transition.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/sharedelementcallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/layoutinflater.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragment.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/draganddroppermissions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/adapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/spinneradapter.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmenttransaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/actionbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/dialoginterface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/searchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/playbackstate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/rating.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediadescription.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/mediametadata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/os/resultreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/media/session/mediacontroller.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/framemetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/transition/transitionmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/window.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/dialog.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/voiceinteractor.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/taskstackbuilder.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/trustedpresentationthresholds.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/choreographer.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/surfacecontrolinputreceiver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmetrics.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/windowmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureuistate.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/content/contextwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/view/contextthemewrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/window/splashscreen.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/widget/toolbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/util/rational.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/remoteaction.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/pictureinpictureparams.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/application.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/fragmentmanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uts-development-android/uts-types/app-android/android/app/activity.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsactivitycallback.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroid.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-js/utsjs.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/app-android/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/worker.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/webviewstyles.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/viewtotempfilepathoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/drawablecontext.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/snapshotoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/cssstyledeclaration.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/domrect.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicallbackwrapper.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/path2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/canvasrenderingcontext2d.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimationplaybackevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unianimation.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unisafeareainsets.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextlayout.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unievent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewservicemessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewmessageevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadingevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nodedata.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/pagenode.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unielement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewdownloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniwebviewcontentheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/univideoelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitouchevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextarealinechangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareafocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextareablurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitextelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unitabtapevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswipertransitionevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniswiperanimationfinishevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistopnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unistartnestedscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltoupperevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrolltolowerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniscrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirichtextitemclickevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeobserver.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniresizeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unirefresherevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniprovider.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipointerevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unidocument.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/asyncapiresult.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iunierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unierror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/nativeloadfontfaceoptions.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagebody.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativepage.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unipagemanager.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninestedprescrollevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uninativeapp.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputkeyboardheightchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputfocusevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputconfirmevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniinputblurevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageloadevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniimageerrorevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrol.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniformcontrolelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicustomelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/unicanvaselement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/sourceerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/uniaggregateerror.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/utsandroidhookproxy.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuninativeviewelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/iuniform.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/inavigationbar.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/native/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/checkboxgroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerviewchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/progressactiveendevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/radiogroupchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/sliderchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/switchchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickerchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/pickercolumnchangeevent.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uninavigatorelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniclouddbelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/uniformelement.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/lifecycle.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vue/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/base/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/env/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-actionsheet/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-addphonecontact/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-arraybuffertobase64/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-authentication/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-barcode-scanning/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-base64toarraybuffer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-chooselocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-choosemedia/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-clipboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createinneraudiocontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createintersectionobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createrequestpermissionlistener/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createselectorquery/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createwebviewcontext/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-createworker/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-dialogpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-event/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-exit/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-file/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-filesystemmanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getaccessibilityinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getappbaseinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getbackgroundaudiomanager/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getdeviceinfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getelementbyid/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getenteroptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlaunchoptionssync/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getlocation-tencent-uni1/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getnetworktype/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getperformance/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getprovider/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsysteminfo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-getsystemsetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-installapk/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-interceptor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-keyboard/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-loadfontface/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-system/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-location/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-makephonecall/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-media/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-modal/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-navigationbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-oauth/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-openappauthorizesetting/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-opendocument/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pagescrollto/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-alipay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-huawei/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment-wxpay/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-payment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-previewimage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-privacy/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-prompt/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-pulldownrefresh/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-recorder/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-requestmerchanttransfer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-route/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-rpx2px/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-scancode/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-screenbrightness/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share-weixin/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-share/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sharewithsystem/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-sse/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-storage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-tabbar/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-theme/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-virtualpayment/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/lib/uni-websocket/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-api/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-ad/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-crash/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-facialverify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-player/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-live-pusher/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-map-tencent/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-fcm/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-gp/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-hms/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-honor/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-mainland/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-meizu/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-oppo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-vivo/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push-xiaomi/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-push/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-secure-network/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/lib/uni-verify/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-biz/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-camera/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/lib/uni-video/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-component/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-openlocation/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-compass/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-canvas/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-locale/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-accelerometer/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-memory/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-preloadpage/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-createmediaqueryobserver/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/lib/uni-__f__/utssdk/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uts-plugin-extend/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-map.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-map-tencent-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/uni-camera-global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni/global.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/unicloud-db/index.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/interface.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/uni-cloud/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/common.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/app.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/page.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/process.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/vite.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uniappx/node_modules/@dcloudio/uni-app-x/types/index.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/uts/types/uni-x/app-android.d.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/interface.uts.ts","../../../../dist/dev/.tsc/app-android/ak/config.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/index.uts.ts","../../../../dist/dev/.tsc/app-android/uni_modules/i18n/index.uts.ts","../../../../dist/dev/.tsc/app-android/utils/utils.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupa.uts.ts","../../../../dist/dev/.tsc/app-android/components/supadb/aksupainstance.uts.ts","../../../../dist/dev/.tsc/app-android/types/mall-types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/types.uts.ts","../../../../dist/dev/.tsc/app-android/pages/sense/sensedataservice.uts.ts","../../../../dist/dev/.tsc/app-android/utils/sapi.uts.ts","../../../../dist/dev/.tsc/app-android/utils/store.uts.ts","../../../../dist/dev/.tsc/app-android/app.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/login.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/router/adminroutes.uts.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminaside.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminsubsider.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminheader.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/types.uts.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/admintagsview.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminfooter.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/store/adminnavstore.uts.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/components/placeholderpage.uvue.ts","../../../../dist/dev/.tsc/app-android/uni_modules/charts/echartsview.vue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticscombochart.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsareachart.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticspiechart.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/pages/homeindex.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsmultilinechart.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsusermaptable.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsusergendersection.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/statistic.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/level.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/group.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/label.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user/memberconfig.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/classify.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/reply.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/attr.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/param.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/label.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product/protection.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/order-statistics/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/aftersales-order/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/cashier-order/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/write-off-records/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order/order-configuration/index.uvue.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/router/admincomponentmap.uts.ts","../../../../dist/dev/.tsc/app-android/layouts/admin/adminlayout.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/homepage/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/boot.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/register.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/forgot-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/terms.uvue.ts","../../../../dist/dev/.tsc/app-android/utils/supabaseservice.uts.ts","../../../../dist/dev/.tsc/app-android/pages/user/center.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/change-password.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-phone.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/user/bind-email.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/category.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/messages.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/cart.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/settings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/wallet.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/withdraw.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/shop-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/coupons.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-edit.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/checkout.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/payment-success.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/orders.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/order-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/logistics.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/apply-refund.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/refund-review.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/chat.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/plan-list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/plan-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/subscribe-checkout.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/my-subscriptions.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/followed-shops.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/points/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/red-packets/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/add.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/earnings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/tasks.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile-edit.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/ratings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-add.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-edit.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/help-center.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/about.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/feedback.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/delivery/settings.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/auth.uts.ts","../../../../dist/dev/.tsc/app-android/utils/authredirect.uts.ts","../../../../dist/dev/.tsc/app-android/services/analytics/authguard.uts.ts","../../../../dist/dev/.tsc/app-android/services/analytics/rpc.uts.ts","../../../../dist/dev/.tsc/app-android/services/analytics/customreportservice.uts.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticssidebarmenu.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticstopbar.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsdaterangepicker.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/daterange.uts.ts","../../../../dist/dev/.tsc/app-android/services/analytics/dashboardservice.uts.ts","../../../../dist/dev/.tsc/app-android/services/analytics/errormapper.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/dashboard.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","../../../../dist/dev/.tsc/app-android/types/analytics/profile.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/components/analytics/analyticsregionmap.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/salesreportservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/common.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/sales.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/sales-report.uvue.ts","../../../../dist/dev/.tsc/app-android/types/analytics/user.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/product.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/deliveryanalysisservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/delivery.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/delivery-analysis.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/couponanalysisservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/coupon.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/coupon-analysis.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/markettrendsservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/market.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/market-trends.uvue.ts","../../../../dist/dev/.tsc/app-android/types/analytics/custom-report.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/reportdetailservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/report-detail.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/datadetailservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/data-detail.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/data-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","../../../../dist/dev/.tsc/app-android/types/analytics/insight.uts.ts","../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user-management.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/product-management.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/order-management.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/finance/record.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/user-statistics.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/system-settings.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/plan-management.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/user-subscriptions.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/coupon/list.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/coupon/receive.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/signin/rule.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/signin/record.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/merchant/product-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/merchant/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/service/index.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/service/profile.uvue.ts","../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","../../../../dist/dev/.tsc/app-android/main.uts.ts"],"fileInfos":[{"version":"6e80ad2ee01e6eea8837f649d0b91002724ec74cef9b3d2b5fda718b14fc6ec9","affectsGlobalScope":true},{"version":"87e0a7f9366dc80be7b72c6d0a6e23c4f68cd2b96c90edd3da8082bfdd237af9","affectsGlobalScope":true},{"version":"2c44751aff2b2161d0450df9812bb5114ba050a522e1d5fa67f66649d678fcb4","affectsGlobalScope":true},{"version":"68566331a40bef8710069a7f5ac951543c5653c1c3fa8cc3a54c95753abbcf7a","affectsGlobalScope":true},{"version":"173b34be3df2099c2da11fb3ceecf87e883bd64f5219c0ee7bc6add9bc812cde","affectsGlobalScope":true},{"version":"9c867cbb4270f3c93a0ffaa8840b3034033a95025cd4f6bf9989ecb7b7c54a4e","affectsGlobalScope":true},{"version":"6d41c5eb02906006bad04d0ba26eafc1b10c433760b9209f4dbb7af1b8231071","affectsGlobalScope":true},{"version":"7b435c510e94d33c438626dff7d8df57d20d69f6599ba461c46fc87b8c572bce","affectsGlobalScope":true},{"version":"25f08344cf6121c92864c9f22b22ab6574001771eb1d75843006938c11f7d4ab","affectsGlobalScope":true},{"version":"f955119e78143380da1b952b56ab8ca46e10776d17e0a748678729086b0fae49","affectsGlobalScope":true},{"version":"b15b894ea3a5bcdfd96e2160e10f71ea6db8563804bbaa4cdf3b86a21c7e7da0","affectsGlobalScope":true},{"version":"db491a26fb6bb04dd6c9aecbe3803dd94c1e5d3dd839ffed552ffaf4e419871a","affectsGlobalScope":true},{"version":"463cb70eebbf68046eba623ed570e54c425ea29d46d7476da84134722a6d155b","affectsGlobalScope":true},{"version":"a7cca769cf6ecd24d991ae00ac9715b012cae512f27d569513eb2e47fc8ef952","affectsGlobalScope":true},{"version":"d27811b28326ce496b3a0810a4b38d9391e929b150d9d8b881a562c9c9d666c0","affectsGlobalScope":true},{"version":"0aca09a3a690438ac20a824d8236bfdb84e4035724e77073c7f144b18339ec65","affectsGlobalScope":true},{"version":"0f844aa90d79ff631b051f5ee8540a8936d48c39914c910e89e7b7949bbac865","affectsGlobalScope":true},{"version":"0fbf8b372e8d8349a3b5a1f470bb7897272bb43aa88066e50dce25fde261cd93","affectsGlobalScope":true},{"version":"0ef38eeb51b042d85f64103ec93a37ba8683a31c22fdfd76c69852e982aa08c6","affectsGlobalScope":true},{"version":"9652d98559378167cb1f4eb57e51119e4fef5861d18c5928c6bae207b80adfe3","affectsGlobalScope":true},{"version":"7c1cfb70557e907294946a14c5eba189f77d5e9dfe7f02832ee5c6f3f34dc4d5","affectsGlobalScope":true},{"version":"baa7e3434cefa49e8965ea72a0c26fe056b2e9d978ac2bb3abd204fcd6c4fc0d","affectsGlobalScope":true},{"version":"aca5b50919b30253d6db79ecb92848d8dae72c7998df1454a19e21dd633a75b1","affectsGlobalScope":true},{"version":"016e96968aee1fb6804200c75a11e876371536a98e772cb55ffbf482ddbd8822","affectsGlobalScope":true},{"version":"4567cbd464d15226a40a5b3d671e20665aa070a2c4fa3f4682700f563f9ab730","affectsGlobalScope":true},{"version":"bfea9c54c2142652e7f2f09b7b395c57f3e7650fb2981d9f183de9eeae8a1487","affectsGlobalScope":true},{"version":"5b4344f074c83584664e93d170e99db772577f7ced22b73deaf3cfb798a76958","affectsGlobalScope":true},"db8eb85d3f5c85cc8b2b051fde29f227ec8fbe50fd53c0dc5fc7a35b0209de4a",{"version":"8b46e06cc0690b9a6bf177133da7a917969cacbd6a58c8b9b1a261abd33cb04d","affectsGlobalScope":true},{"version":"c2e5d9c9ebf7c1dc6e3f4de35ae66c635240fe1f90cccc58c88200a5aa4a227c","affectsGlobalScope":true},{"version":"c5277ad101105fbcb9e32c74cea42b2a3fbebc5b63d26ca5b0c900be136a7584","affectsGlobalScope":true},{"version":"46a47bc3acc0af133029fb44c0c25f102828995c1c633d141ac84240b68cdfad","affectsGlobalScope":true},{"version":"bf7e3cadb46cd342e77f1409a000ea51a26a336be4093ee1791288e990f3dadf","affectsGlobalScope":true},{"version":"3fb65674722f36d0cc143a1eb3f44b3ab9ecd8d5e09febcfbc0393bec72c16b5","affectsGlobalScope":true},{"version":"daf924aae59d404ac5e4b21d9a8b817b2118452e7eb2ec0c2c8494fb25cb4ab3","affectsGlobalScope":true},{"version":"120ddb03b09c36f2e2624563a384123d08f6243018e131e8c97a1bb1f0e73df5","affectsGlobalScope":true},{"version":"0daef79ef17e2d10a96f021096f6c02d51a0648514f39def46c9a8a3018196be","affectsGlobalScope":true},{"version":"571605fec3d26fc2b8fbffb6aa32d2ef810b06aa51c1b0c3c65bbc47bd5b4a5e","affectsGlobalScope":true},{"version":"51536e45c08d8b901d596d8d48db9ab14f2a2fd465ed5e2a18dda1d1bae6fe5a","affectsGlobalScope":true},"897a4b80718f9228e992483fefa164d61e78548e57fbf23c76557f9e9805285e","ab2680cfdaea321773953b64ec757510297477ad349307e93b883f0813e2a744",{"version":"8a931e7299563cecc9c06d5b0b656dca721af7339b37c7b4168e41b63b7cfd04","affectsGlobalScope":true},"7da94064e1304209e28b08779b3e1a9d2e939cf9b736c9c450bc2596521c417f","7cce3fa83b9b8cad28998e2ffa7bb802841bb843f83164ba12342b51bf3ae453","dc44a5ac4c9a05feede6d8acf7e6e768ca266b1ce56030af1a3ab4138234bf45",{"version":"451f4c4dd94dd827770739cc52e3c65ac6c3154ad35ae34ad066de2a664b727a","affectsGlobalScope":true},{"version":"2f2af0034204cd7e4e6fc0c8d7a732152c055e030f1590abea84af9127e0ed46","affectsGlobalScope":true},{"version":"0c26e42734c9bf81c50813761fc91dc16a0682e4faa8944c218f4aaf73d74acf","affectsGlobalScope":true},{"version":"af11b7631baab8e9159d290632eb6d5aa2f44e08c34b5ea5dc3ac45493fffed5","affectsGlobalScope":true},{"version":"9ae2c80b25e85af48286ea185227d52786555ac3b556b304afd2226866a43e2a","affectsGlobalScope":true},"a9f049ea570ee986ad735ceba97a15d423659025fd070da3da67eeb8abf79fb2","5e94ed5f6b634fb2efe8715d7a14898244e87d97de8f30c5f1ce659325f35b63","b7cce00afe96bd61edceeda75e87001c606d6afae1269d408b762909ca550025","753ec8d1da4a289e4c8ab87eaf69ff564ccf882b9b205d748b8fee35e5c13c84","dcb4f549a765d67fd8112c49cb86835f903bbc7b3c744a0e0e6586bfcf6b797a","69bea942e5e363f5afe74ade98131ef7e6424ceb6eafa912c4fd558e95cfd13a","fe9bf6de0f7eb5bcdecbc97a9f9d143fc47ed6b2d4f4c7d626a163fb3683df38","113a30c935a90737c27e5b166753e8cd2c52cb7eb970a6bf8c7aaeb41a50f1ee","345270970a9c2a3acbb36b6e8d6929bd67a51089c1bd5ee69a6e3a7fde03a31b","c9ad66dfbb3053a5c29fccf8365eb0591f842a0238bd6acf7315c69249bd63d7","be45ce8cab2a0fbf2650402c462e99c1d7a881d4722435646ae8ba6f487ff3db","d16e1c53c406a38a3bcf4d00c3d4b563de4b314a20217289fb0e540fa693f30b","1215db238a845972b6d722503f428d9c8af6162341a437202039a397f0a3b4c1","35d891aaa6d58b6b5222cec630cb7cae1c0db8d022bd12aba90010e7fd1e0d5c","155136082237896cfaa4af7370dc01a631ac790fa0dcc2969be674f0a02de5a2","7624ff1625a5d1ebcdb3161f7f5424b21fb3af0204d3f4d35d6e27d1947ad1bc","7bb9019b6498ed08c1ebcf61148f8b793abb3cc3923b0ac3478937211830d85f","ae03093b0feedf80a44033b3103c5e3338014efa3f3e24845bf26274b56502a7","6d7cb1c3550c1cf70353db405d8cdeeeb086ee133481d491a7f18a121296da97","95a912851175159e7e4f743314fb8822cd420106bde2aedd824d46177ba99096","4818294229770bda38c78a67eacc25a54fe3a7139cef63c16dceef161eee3a1e","75c2abd02e246ceac6959a2fff8b140ed7558a53c27e1aff74a799ecfd93e78a","af4a013ff8eadb3da77fad719c7cd817990353cef3e92a71119c4bde4315ace9","6e7baf1a770b2b2511fca9d7eb9262c426571c96a19d4e906dcbd829618d8a07","3281685ed81a5f4cd84de92382261796473bbc121dfacf41fd13db4c256f83a7","75c18be6fbada64942047f2e29116c1598eea0fb259b66553cfe485a36bf98fb","2faab834c91aa96433e7a8754a557b48dfcc62f52d4c9c89c207388ad32ec70b","ffaaa31124382edc748ca1ff1aeb9e9300901546526e1356b10f166ac4f3f3ab","7e7b2aa55273a7f11e445b8f1f23c9e3d15d9aee5ace616534e8b16faf04c7b6","f4555f41566ae26a07b20098b9ab36476f7b185ca1e31204e593c34b51e3d5d2","be7cb8f67c758b1257fd0b90b9d546db908279170299f2df910c5fb05812b453","ef09a4caf8a73b19a1a5d861896499d1bc1d2b7d317af56b613fc379cdcf7f3d","a9826fdd6dfd19e91873c0c69195ebf925c652fd7096ea6a6dcb5d081037f8da","417de4e994c7f3f7c5c7710eaf664ed94347b40fdb7ef3f6a2cb5079a08da145","7f7a841a4438b02913186a76fc16143be3c3d0b9d5e596fc3b1e8b2c86b6a892","dd85cdccad106178a91b0e274bc61c704c0c2758843d29d699c028689e67552d","e2b50c5db2178aa09da186d8b60e2f589bc6998deeefba9be9df4c0686c0dca2","560f73409bc73749185b2d598923d2886dcf259b8864aa28786526164c6ae494","734a97c19cfa217eb74f1da4b933bc0318e53befff66c25043078404a0a5a3fb","f8f34d360348460782fc26f7e70cdeeb8150eaebff535b4075fb64d749142e9b","9c8b8cfe32f699471ca567ec171102bfd8a4abba5693d1837b45de1d93626910","aca17a9829f3267c504ebc02d05115616e4f0398b53e82599fd7a70662c4dd50","236f39f3abf84c47d0663a94647ca67bb92b8ab8eb1d7c0f9b15a77c20400ba3","6b41d23aa626a42b433e913b51024e310aed256d745cda2685c663ebf7a277ba","692673cea6d597777fa0b866c6d93e4cd1fbe7749a49bec3504f3d6852da382d","cd903ae80936070b05eebc6e0c461d9479ce64cf1ba537cfdc8d78b3d9a81e1d","360e08b9f7239540ba530e0f38576059fe0efaae8fcbf67f0fe5ebc169f475d3","6e66fa453a3da37ae7ae2fee12937b38d1210a0bc22a25fa70f999f8a98b8c3f","6898a15ba9329b18503a934d772f8e7d9d8d2172ed3424ea43dcee250e225cee","bc8c6cd4ce4e561453acdc3a22b6f9bfe5ba2bd4557fdef998369081c9134275","3df8d611a65ce138aebef52e24c51687ab9430e4cc9cff0c92bf52834a6c8023","5dcd61aeda70e3af3934446d645000bf91b7b6d71cf75141f9f4bd32ffbf4a1f","5948cfa7a16bb3b6694049a3d7c59566125a575beea799ebf86355888fa15f05","141027c7195a6e49d68ec954a6c850a67183117b1a48ca9e55d586abbcc286a2","ff64b99cc27e43aefdefe313778db4b98e1ec8e66bd8c9e8dd1da7a848852110","0e985df7af2d15cf2ded941415a3132f92fa1f39182c36e2541f0897578a90e0","7b1c9d68ac624e2ce9fbcef42f03df9eb5d7922b697c4eb0625bc5932c7e5626","c9cd9b2f01b474b6d1f824261274d4e2944543cba989e13ec8fb45eaf428fb99","0621f832a6db1c7e15d4b8e27efb3b6a2dfbf0061d548d20a0fa3acd6e7e9ad0","1362b7513042c64d05ef2e4073ca3ef25825e6c953c4d5455580ee50a232e083","f7a55f60dda8daa1e82458d64f4f1dd5f3113320ecdfd98a14ca95d423574207","6e62d79025167711952e5abc46fe773b83dd7fbc3432f3d60e34263ef07b8a88","a07425e97c460bd3c764ce3d857fe37fa7d1808b3ddac022d348e7bacaa58336","6ddf6dc4e11f0041c3d513c6ecbca1a62c71edf8a75606396a9937e97b0976a8","8c907668fe1c4c163e322f2c563c5f1de02ce8bedfe90335a4cf2fbf01e7ec42","2888b08f7df74672945e8913b3f8b482a519d8ead96db6413328531b98fce6a0","b0765d93e1ae41c0b9231e50ee9850a9ab30043bb9f40cc4b720c31e55dcefb2","e1a94bff81e13adc6eb802257e67f4ccc54d4268e76236dac5fdce5aef22a445","636cd0739ee78e7d5d7d7aec83243de13f3e92c6bdcdc4325756fedd4363fba3","b14f0680cf344c2ff3c2c03c9fbd5413ed76902100a8c476a04dac98113ae6ce","b00fc5ea3c8d7676d825c82783c73dc1a9b662bcea886cde8861a93ce0637902","ebb3d0ff97c54e1995f229e6dfee89d255e8b37ce50360642e3e4f4041e00850","1e995807d59118d7808da9ab62300b2b535686c1356df51ff64365ef6f255909","f63b65154c9e12d730832f8f0b0f77f1ce912bf6d6bd8296759b2a57aea933a4","37fa9c72aeca0c40378a13917e15c08f70618fc1af50db2390c54a2da5891156","f89deb8cdd5de1cc0b735108eeea49bf81af828bb893b1740afa59af0b726e1b","91d50f7a3484627280e6b3873386d1a44dcf956156d2b31ea9741c1327be23e9","a9da237d591fdcbd3db71e2c52fccfe18a203bb810aa891bfdec7f7334289174","6fc646802b257c559c61bb190cf1c39377f97c8edcfb9b4f7215f4000b16be52","52bd2529c7f409e5c239d43ea7444c394e6be64b509437c3c25fca52f3aa5144","f52a07b2ca2e4dab99459d521867b3f4c5a2032677a0c803d90c400a34c55a40","dbb522d1482ff56669c9f281491dee1ae8a75e015c5becdb348c2dcc02afddc9","2b63c811c1648b74cf6e4337c99d9e84abe4d105bc9e38d38810c358e431a023","ecf25c2f08b3a89cb878eb832a7f0ad19a7070905ae687d36bd5abfe2d6b7e7e","e11fcfb3cb83517aefe0f4713f395a0dc18f7c6aee361a0bce258c3d22a1bc00","4a83c0012226f26b3d13aec38482c66f3a605c0b20827ef19bbd8d49cee622f2","cdfff4439385638f00f16b0c50b1c0ec6452281af8e9be558432cffbce7aad22","034b7b464137cdc0c1ec97078a3d12c6a3f283d60cfa09756cef051042b79463","ecdaa87c9dcec6f7c802e5a2d3926691cf1fea4d8f8e916a93a0b410d8daf91d","4c6a9787e1b611dad138b011c9abb88395aaa9bd473cd713f2064aacdeaee396","52f648342dbae30c9a51cfb4859e0ac8cc64197351e53eb1e2a04e0315c17ff7","2922eb5995ced0c1d56d05304a32b8805b6d582d736c3168526c9011dad0233b","5f3833db4ede7a6c5955a483a01d50359c874b5a0b4ab5afe26e0232666da187","a3037d173041b7bd28ffaad2a9c10837b5d315652d1ec4da9fa3c7aa7fe59f87","23b539194ab717460588dc29b98d18318c217f4e74258b37bba04c9e07d71d1e","076bc471e07b6780a988f0d244e614e4fd5b93deeb7eb58ffb30efc270423de8","b3bca5abd1ec281a32ec6bcfd1c2975aeb9683ea3eec68bf323d8cee61afca90","edd3eb041e9fcea3765ae94f145524eeacff60b721e34ec1b9a7061276352719","c5450ecca5a8946d0ca8d2bcd8506c22c33a4af38cbffba6d03b4304a823e50d","4c6ef9fc8bf8d9038bcd22fba5b4edd22ea05a3d536ebdd5b07f720d02607a93","04f7b9e58a831b4f7f5d6bb170e87820c68ceccd86ece944c5cbb376fee8416f","db12cd264aabe686c6a027c8af3afa72486b0cf4291d5f5c8ee148325264de1c","c19c6bb7f81272ea573f2174600665cc999e8a7596fc2f9fae2daa689575f08d","95663e373c6b4ce80da0f9e21c564f4f201fed54773f9e27319ef441b547470e","e8af6903e8e7f3f405654c808534319d1105e5d05c5d5b7ab00dc05ff8c123ca","95a831ca188856a59bc544031053fda680056f0c0e2ee2722ebf614f50b7e54b","ad3683201a9dac34ae25a2c57af2dba04805cc998fe78df34facc13dc970ffb0","3052cfcfd8ccb093f64924792c7d3090490a803331969e44cab52cab4cb74698","98366b7911900d3a31c6e85c326f7ba664a28fbd24fba191faedadec01fb2c4a","4f3924ede1fa4f31f726c577e5056c407e995cf6f140d5a37b25637d512c6d2a","739779e95e30515697347572fdd439ad55442bf175aaa6763444336b258964dc","6369eadb1ef17bc4faff5eeadf6bf759986e6dcba8e412aacbc7681c5a1ffe00","9352428676f84478a26cc7b750e4a9d2abc7189b6369452067e4da2afe1d3be1","a2f25e1d6a2a69b6c88f86c6d39914c9e9a1634c9165db2cf05f9f7273b2737d","bb356f5b92a22eb4bcca50ed190e2bd94fb2fd6ccd5f0bd184ab94b10aaf8e22","fabdd71c50eaac10936f748c32779ba276c3b778fb697d5b36c18b416958bc06","55137dec811a92edfa329067ddcfb042673ffdcbad49dae12c61cf9ff2410822","96f21e74ddcc1a72f611bb90f4146bff4bfa61a0ce5d32dc10592f9bca6d9dd4","b7ef1d83bdc824781f07b5347176f154c98190874c5f5ba2c0797225ad370b2c","0e7a4c6bc6f826aa0032971691aeef1d4d6c8bd17529652f4f764749e33b2167","c702feb8c88742697dd03848be3381f849776cea383497cfe9c72075ba6996fc","890729ef6b2e352d1750186bb3cb740f4d450d4f5d58e80c988ef79c596b4db8","caf48a1f9ca7807e639635d357c615d61be9260f3b3c15fd3b32c9a136b95330","7def810f306678f7f8c1305a372c6e8d4ecf984f0cb067dc8fd422dfab2bd6ee","7accc5c71c146538a30125e240e7be8cfc29a9e263f4540b14c55db4af3fc4c0","04e345066cc36c58551825d6e84cd23db6e78607ab1ccda754c6bae66e0b0fc4","172c9efb0cff276f9cb01dfa2ac5b7b6d5fe3a547e264fa2a15187d7dd9d6c93","8d9202dcdfb70d6335082e1af748cc1e8b3ab4ea42fa9d34403233b8a2693cf8","f4600cc019ff4c47e17213c7d2ec5c831db0a9379d7376fa2fae3af29c9c82b7","b7dd7c73cc8c564f0bdd5217f56cf42fde85c7524b06739e76f08265a3e8a1ec","2fc96755c9ce9f4f3d6a4f7406b8abdd0651c7548296e060908c4b75b7bc42da","c94c469279059c008ff138b5b091085b1f4326824abe8265140fb26021e294ac","f2f23a8040a3b977f2adc72622b49145f1605300d5b279c4debbff8d535c469a","41d81600effb129c209f86ae32231ddc357d7acedb9fa9ebfe60c308475d1b36","67368e74c92373e743f2942eaffd292cdd6f91d3a4d4210649de88e886f727f5","2e3ca531dc7f889d2525b5548bf18b0ecb5b2b1ace8c89e5644b5a84ed80df0f","13cde4d1ad843f50fa82156e498420f3d6231eeddbd9c856f2fbc947cee14f69","7ee62691b05718e30a74db92d9295084ab8d9dd0764754995545b672017694a9","7c89dee0144087f836d6b9452ba29aa4967317ffca1be148988eb81b5a357992","616e4dc1950431f1786d66b11b6e6f18565814d3098faa8785bf2fb71d7d97f4","fa065dd51bd483dc403955d383e587f65cd99070cad7b1e638d24fb084df9879","defa4a8e6bee828a1c2dcb37f58597411f5299557e37efef2136fd6a042a0ecd","7e5a27c15c04faa14436677396f5075f2acb6b0aa33670543ba5d75251ec3be0","0b5823a49cbcd5576d7fa7f439441ced3386eb630279cb7a3bb30246cb2519aa","7d964df58d57fb44484522e32f2e99d0fc6bdd929bec44ad5a051cce31703737","dd0b587ad7c873cce8d7e51b947a8c1b722e00881b0b485af46f9f4e9dfc9fb2","f72781d005c256a6d64fe522eadb2c2a2b920c91e395dd2837b4193ec6a32b6d","827c3bc97611a0334d90bb429cd61547e1479349cf904428fede5ba28bd02ca0","9c865c53cf594f71256e90f1e7777688088e05f7040702c0af1b31b2a17979c8","ad149f89d84abf476903e0a70593bf8a9a9870f3363f03e48bce03a60b9032cb","42c0632af4a7291567b196d0653c7e47ed807968bcd9330e14cca8fd5137411f","cf92f44b3a567bd9842fb31ea8f3fa8d71389a703e83b0104ca057a9c7c401b5","ec9f73c33592a97de39ce97779da9c1d9a3a81416f60024cf3a094d8bc6a51f0","59899090f0e604d38520297678161172eb0da2e276d50b734782ac74bf710b64","a4261d849c4c4834f22b6c33fb05fca37078eee9a4dc6fa00c90f2cc0ddadafe","33f8235ee036526ba4f6281be5a9675977efec915fa370ea9823be3b743493b4","92106a20ad252996f5de30ac709a31f7e968eb0e3faf02d439bfc19736358abd","d3418282d5ac5cf21a0c186d4ce7958c5a8b8e35d69d79225eee9561bd5e941b","deadf795497e8a65e573447e50e36a3b30f7e6cf70c02b4235c7aad21624f9cf","bcfe531c8d0cd3b6c3b24e398f78f7b51a3c4d44c75225fa8f8bf4fe30fb6ec2","b451a4d6f6ecc0523e2bd43e2297c68d63647a330a7c893a3a356dc90c0b7e35","5ac5bd94c6929192ff715f8c15543a2b7331f0db6f8b9a5680956339c4ac5841","0ee0e380e1d17c3e6183b70c012b18166bf6ef593923f2b4083d99697fd61d5e","11f2b58acfd6affaa3ff00799fe3744768c073ccf63320634067988309b86b27","055c94ddb36bb93d5bd06af77e403511ebe8952802934ea2c9af6effa2859a11","795418f74f7d511631329ef4a917d7e065c7f7b8f261eb6576e5e1b364fcaf93","f07aa0f14b07105c64bebcb9e792216b85e21dba5ad5fc7d69dafc990998c9ab","3590279ae9cb56082358ac736c650e2500d3e354aacc4ad0d46da2bb9c074b70","d14cb41bef07c4b766260e33f77affc25c326bab71a29b38de49c736bef814c1","9784caa1704ad93d707a343016dce9afc51e3d4bc473c44afaa5ef73bf02ec67","f9da916dde53443d9ff83edfa1b404fd468280839379215c45b98748ad36413f","89e00a80153e04f55fc2abf67a5fa26e843e94e4d896eb906ac131113e623dcb","695d60af09f1ea0abfbaac6029a847d5acd974031ffa92bb30a5046412141366","e5fb35e195ee33c761e1dfe073436e30c7f38d72cd4739dd2deca834cb2040bf","00a0288ce31d3e3129fc177a60c130cd792f2ecfd6e634c4cf9ef38b075d7e5b","db2d09f8715a7f099f32904cc44ca3259bc0d6c9f8afb539f0e94082c3421b32","d005bd50e8eb8fb8b93c2f9c1c6ccb1445d21fb55e02ecf2782fbc921f4e3066","99b4c7f34a053d3bea56a63a20077ec8ae250cafe28730428dd18f8bb01e8ae7","2a3b6a931d2bcd2998c06cebc2d86ac66300a65fac01f9fd1a5ca39746921148","18e2f9802d6f93be156bdc2c771ade01af119f6735ddc52611dd47c00da6de74","60c6f70be8a7438ebf45665d8edbd06b2d6f12e57374d5d3dc2f5117f3e56359","9fdd23e11fd5b1dca494cc919f706f502804acef50cee593723ed4087e486f7e","784d7599403cb4e6595c528758daefd24ec8d6867ba668dfc524deb04ffbc1a7","e254021ff17cd2dffd5ba54458cfa43a07520db1b679dd74a54bfec16c198eed","31d3d8d7c90229e478767cf35dfaa0d63fa453f03d11a3c9ea0bcf49a000852e","a811babe4e7849025cb2c111317d96da26b0c2c0bcd9a5a6baa5c0244ecc2c4b","5dcb774809733fd4c12d74e54e4604d6462668f0ff9f89e610d3c8ed7daade4b","6dfb57cbb5123326dd2591fdd29cf2a6edfbd50473f84ba56b41dc1a9a5c9335","2c4c16ae9d3ee7cbfd81aa78318dd44aab3e89f104ea5b83db823c62e8035958","452faa95475c0a3d13b75d2a16e3400f7689c66210f41160bdd7cea51f58269e","2a58ae82f98a35406aa0aaf823ceab9788bfb5f8f634df0f81e33f052cc9a070","c4bbb6c48e58b754e445b06107d128d1827917dd3ff142ee91842b9a9c112384","219683614118701da9fd97320073c9ba09a038636e85a9020572e5604028dbae","e02e548bcf8cdbfaad3014721c0afc4d9155864326e3ea996526e20e6a2afd4d","870fdd3a3eba1f8ce6d5a9f0a26ee479aefa7021f907bd7113c2742d4270a4dc","04f86e5474108337feddc60f974803afbfc9ec42d62ba329edc96c90c730020b","4fe88323f71b0c362f2a0bd9134ab39f3631259df044ed828110508864832c33","0598cf1cb02c868f6c3f00f66f5eed0c5f3224fde091e5caf586a32f2d54a256","a7ebf86af52748a4e9be5ae5659227d9c9f32e66938bf8f01e98c3fb3315d3d1","ee844259ed172b447221233f5f5858f3f9c14740d5b62cddf1462ef2a6e1272d","142e686aafed13c5d48f79c62cfc000896a2a57bd6eb900c2d7c33428df54c1d","744ecf788f2bcbc504d2854a287256f45df04c3c7e8ebe6997310f5d61b50711","f0e88b50b239c95a138b1e484eb51f502dd62f8573556e8a2389b5fd30133ada","651c9cd467ee2d3a75fbcbfdc9ce0663d8a7918b00051f9e8caf2c29c97f1dce","1755b7e2ac5ff0c983ed2af446b6e2be02aab92cec69b529d5bacad737c92ba5","75372fc69641935f9001968fd8a738f17427a92236783d830d9a1658c317c9bc","79857c3eddd652e3bf563ee8a8ac42f77602b493241f5d4ecf321deb07d3265c","493374b8fed9e916f65268ae34b2eb50d54dac6c6155c8c3aec2b110b96eb846","3f67bfe77198b02a087dd8696dd7cfb815e14d53beb18dec7775aee1d58702c7","ccc5205e0d157e66fda814ca588dee8c132fe54018d0d82661cef3cb6a61dea7","700797233325d51580854ed460164d5fef06c5c6479154336ed7fb4573c22faf","63b6ea7963794e1a1cbf29a4b9e6e5a18a16bc0acf12c4c497b13b8189291577","c940f837169ec3a8fab6fbfb8982c102be8568226547083fcaa7120cfaaa8cfa","e7c3a4ba9d905fd2c0e8c9fa1a7cc8d60e34de72c4fba3f485f1ae6f28d30e49","1c2e47b8eb25bf91b26b6d41e7dffb80d763866bac7cce5521a7a776a5219d7b","7b6c20a8df3cd20f3c7897bd4e7d14a3470bcf698aeece02039fa55977c6cd6c","3f13e83bc86dd062b425976807aed2f63743f517d1507e74c14ac1bb4e6af2f5","e7a3f8116acb64d02bb91ec7c607e4f605b80db625a6b81b2d86347be7872caf","51633fe4f49dbc57954c0c606e445e4f091b7af3420d80884accebc2116e3382","d6f2f3c749d1adf9b6d572d27c27eb0de6c97b07032c48e3f70837139e9180a3","170b85f7259689ce23bc809d7cea2a7fc79b7f4e524fd73930e66783b656c330","479da7ed69ee5914191bd855aa74fc34406c4c3864149a528b0cc76037250e59","8766424888a810870e4be559a7276449184edcae82db64731448db12049800ab","3019a26416cfecfa581ed6835e94ca21b0702114056dce8836e3a1226d732640","f0eadd8d5b164b19483b7c62e85a2249611b9dee897c7f1b46e109cce13b22cb","5f476be61ef4a259f7067891c04795ddadf1fe8450671cda83e27636ef2ad0c4","5be2d74a8b503f4ba88f905316a3704f28074cf30b884ff423ecf60a7d9fd4e2","d6f8636d479116a1cef3c6e6415d5326e5bacc5d0bbc361bbd507cdd451b1594","692ddfb913a98bcaf42cb94473d0d4a45683addbf48f3a1d5c5869073e09ed41","3d51204c5e6a69cb45ea152c968eb5a26db0ca7d06d73889dfb012edbcafda48","bdb19d108c2a788c48040cebb03d4bad79731996ca9765e7b292492d59e8f31f","734cfc086d6f945e9a84aadb7a2cb73214a9a86df7d0853409e36ad0ada006e7","c2d9d2be0c62d9eb038421e2a51be0f098f8da42472080649945506d9f8b2d64","38d5dea40c2e2423eff59924eca48e669ed88441815187bac4262ef0ad2689f0","688db86acd5f0d3a167a0bb4778bdecba769f2d94c8f2291277f0b51e7cbfcd1","1c2d49d8d8d90cdf734a7eaeac76e05829437eb657caa9e9403b56701a00b747","9c37c1dafbbfa00089e3ba095269dfcce8196e7cf2e7866124a577bed39b1341","25b2e683398aab0e633bfd679093be0e781f8259f3a7212c74090eabef71829a","870a3b40f227aca3021236bf178d76508583497a04ccde082db4735cfbdc413e","4206886663e1df92db9fd3286566a7b40d08c754109815aa1c5348469156b454","546275842f9a117e664c71aa151099b612126abf5002b7ea9a7d29db3f7ea06e","5d3e9c802093fd0f3621ad32231fdb40951d750679921c24be00207580515fdd","b638e2349147b410c99c7abb3b916484c84f931c0e54a51610eac23674f5462c","991acf2b656113675182be59c7bedb01f42132c7777d49ab56a20f7fd0eb0c53","c06c2a0bdf10e96019121c1ad43550e1309cbdcfb618fdfd5f5007c464b35869","dc67651920a1617964151323c9c0fc22962948131fccb442e3858deb974f0c0a","4dded26d1610b1fcd97be8bc2adbe9bf49cd6c574bb54f544a706ead913ce579","81b3af7d7e8df93862b5c308efb013845eb80b34c5bddb6bcf97269ac881b454","dfb5b0e704f05aa091ad57629da2964d4b4ebb92de88830e59641df028742982","ccabbc8d7cb2972fa82cfab2f68118ff53236e3f73a98dc20f77c0ceaa1c2323","b92d5c9cccabb04f74d0329058e29e4edf43ec80a427a9553e3dc006887260b3","310519588275401653a9e2524530076c0615619f4ed02a90f4c295256145ffdb","c654364580b1b5192b100687f5337a6cd364c49fa4d435a1de2088ba5aedc687","3a66a49f53f67807ef110033829b67d0ffe29032ba9b9c2d05a78cde639c7fe9","4a36f2312ade82cfc32f31fbf131cfcd29038f5f88dfb663d5faebf0c39bbb8c","c05e29c903823a814853aa0803301724bcee784eb332e63a673efc556283bbe6","71933894b1cb6b21be3e94316e86a3fac2492c2bc08944ae9611b85387f2b0fd","e5a70a8f848f1e7665865e76872cae69906a3976b61efa1580f8a9229d012e03","5fb73749ab8047b48d360937332fe28dc50e085a431f7327a6b5d530071bd06a","218ab8481329fd2accca1e5debb45dac5eeba96b39bba5f659009539f138cbd0","0930323b4efbec69877906806bd2a069c96896d35b5fe879eccf64059bdd0702","c0f9aa7e3e64a5097534bdb379b91e9c6838033cc1406805b06eb4f2bcb8adb1","e33f32c896ea534b5587a1166b769f1259a0d3bcf021fea449c03775e4ce5bb7","10c91f6a781c0068e7e3ac9435a38342e34965dd3cc7111a824e5c7d6a0106c0","5ae29d8bd0fbab2cea691b9541833b76c9a542013ad33710a109ff7f0751ae71","7b4ddfc74242c161aa469a8c1ba0d01915779a87a85e1476febe79111b52c5ff","d712fb0b184c4dd377292dc9767530e9249d73a04690dfca42c350cd4a02338b","72028dca7892e4d0175a4ed026701d73b5a5e8ad5c3771dfbe1138f1488a03be","ed145ad7bd6050dacd85f1c7e50fcd5aafa0433339dc2630a37bfc930d8589df","c063c430d8f55f4d7e4bb7ebf91fd7bd50e8d37f3406d356ecfa6c909350db29","9cba5e78db08657ac090c65d42534dba1592010544541b7810b35855570eaea5","abbfbef2b303ba2de958b6b872319bf3d4fc2d931da921efa09b092a91e3aa6b","e3bfc18a8b10bf2d1495eb4b3d4dbce361348fd743a785956d5aa868e62532de","b2656290b994b55e6cafe2640efdac100c004adec35498d4f470489a45a01862","6eab49aeb5385eedddd1c559a0fb5c09c8a18ee4c675ea1c9ccc061f7bc42851","e2acf71e1a4fc7f7a90e01d9c9c2c8e68dc42fb64a6e7276287bdc7ddea84214","d7eee876214292d6d5b868bdc75382459d63ee4ce8ddafdfe881efab51b5ef68","ab032d928152e2db5be177587327d54c90eb7c117f511db93430329ca0f377b8","f098324307a2ff30be1a9f32e72e3aaba90da04fd1e9f049c0769b079b6103fe","6049f94460f61904ef21883ba8e33ccb44b375beb0ab34061727f00a81aa4d8c","50de79e82b5c05faca1a582c3d607327af5ada600c6c04fd7e316d2f45e3d8a8","f01a152654a9a507506c715e69ee756fb7655868e592b39876129747346b37ee","9bffe80260c554aa2cbf095500c995460101af6eaf73c73a0e9a5fd010cb13ea","053dbae8c05eacde27db36ec5579374b5ae43908a0785232dd64a119f67e8312","f3b1803e1d654a91dc2f717a6303deda942fccaee3b214da79036ddedbc00aba","9841b6295555dd6eabc901bb6d3c1cd5c5bc54b98cb42fc51843495b5c30d0dc","bc0d319e41b6e74bad9b40e300ef0f5ace1c35b0e05735734e00a9a1b4529386","bebeb2d6b9908b8436e7287b8ac1181c64413f67ba95f75ded3394ac32e773f4","c8ea876fd7003a81023eed439b17a43102e6ed1098784770cf75c97141122aef","0f8e5ea2ae53ebd5cc361b68dd769c7ebab313df09ab3f3bada1057e8912718a","31776bf779655f6c80dbe834cb41c3fc3a5679813d009d54edbaa566aadc4449","37dd9cda7e4c1c3efad74cdc1305fe1b70a54fb25c1e960fcff5c1f95b857b2f","b027177cf9d90394842e000df982b32d996992a3270c48236b254ffa8862dc00","81800937cbae367db7745647bcbd75c38ae4e4114aed57ba00e14143a2771592","df3147e3f4c3f381fdc44804eeea2557af08f2ff5f05dd2f7e251b35d5974083","5c30fc9007e35a95a06d1b692099f6efc9bc1bb96a1d5a5d6bca96536c5b0d00","64c5f1364683f030776a3163d566cb2efd2069aae22c6e9d2b7e26ea1099d4ab","14fa28f24d61bda6cbdf507f9e8e1943995c4e5636f81e13125f3cbc7ac8d92f","c26f1d3fdb8f7fdf406eacd8b9dcb10db9fe3cc7e1e6a9eb34c5fd3d337efbda","4801ce5e0e889617c01743d837dea896b4665cfbae623a87a2397fab26f659fb","b833095a6a099770438573a7d76b9f914594012e547be2c556d1e1d3250b75a8","4e8e990f4db7856337b3d1653c79bc0516d3c8f354e7a6e8402d9dbbd7144e65","1fa883af678154c29e9bd700aca19b34652535836d9bf7a0b460b13eeb735b87","cc575e3fd7b401d7174141a186554fbb02dc4b8d331fedfa7b3100daa3b80ede","0e4a0b82e38b8363eed4d6a077911b99ca2e3cf1783b13429759286a390912e0","723b00629de441eafab07568c93668685b149345c2b05ad708a8a6454ec631da","b4323a664b69955890c49f0cc6085ed5e72694cdbfc41324ad2cffea4f638fb8","4b379fededb05ff467e513c3cf72bbf020eec7af35e6469e3254d5bc64d3a1a4","f04e225f4d8e584b1c831c637c4fe7bd87a883d6a497e69714a7a28e847ce3cd","2ded5138347ab78bdf2c26620590d02ebd17c27e1e066f288a36d945fcabed42","c0d39cde2ba477c45a0e9e2a9ec06105efa556a334e9a602fd1785416060d6be","78ec7867d878c548b5c7ed2666c6d53f47dfc69d0096808b9d7f51802566aaca","e6aa21fd5acdb192f250cdd88234ee6a7cf5cc9305da17154e61557444c61446","c08f744bbd44f2680fd88eb1639958049ba6474310e9bfcbf00b2b2d42189bdf","0d6054a6bc3a72dd52b8a7794a3fd190eb2158f87d2aa6b6988ad6f8068b89ed","8e352c0efe439c8168c631188927adfc249c92b71f016cd6e7ade1cc6f63e6c8","2e2de1897f5a1f98a8307938953ad1987b1457b140c0263b19de30763479c55a","f7f6f8cb688ee877fb46ac3f42b60eda69130cef419017e6ed88d6a2bf381647","ec46a2c7b6e2ac832c937a649b13ded708d1cc7a067ad64cb938dd1f441c993b","b2fd56f80464f3d91a0e73f5b644196e28b6dc1d1c9836a1ccf1db5d80f6a0ad","d352e51bbc82a60de52ac06a88644b2e73f2cb04ef4a7d93b7dbe365068dd4af","e3f2b9e7514ca65ac5ce5373be59f3322292182e02e36a6685f9cfd58b28de6c","13eb27b0a813189a3d0abf455f248b7357e378501a961979027bab62ce5ecfce","8839cd37fe3f2042169adecaf9e66f71ea4c1903423ef49b75db6e11c9bca531","1c4f801fa938dfff8ba0283c2bdedab2045f215369450d3fe6cefd10cf5a0755","798423eb5bfb9145647edc8ed7a0767d02bb4c85c6b00adf4db9cc3ac51d0d62","44ced48a3e22e8949f6bfbc99b780b6ec3f0f3235c0f57fd4c257171eab4dd84","878f780ef3f0f209808122ea1c7ff44748275b4cfba75ea40804e530c2f1abb2","e9b071d1470820ce48e6bc84e3ab4564a33ffa118451f693ddbd48932af9356b","a507de4adadb7e8cfde49db789c062c168907843b49d081fea1b79bcbd59dcf4","4a9c2514a2e2861e25ec956f4da6058e15dfad6a9238f91bf0c3abb8bf7bb57f","d4430a6173c7dca84d93735e97419ba6c5dc52ef09c880e860fe8084cd52986e","b4a8d42bc830833c7480258c34529d74f38940ae87675365f8233136a66d812d","61b1e746198b9347a1ad402da267fd4564d54322c7186a3945692cb32c59aaab","13b3e17dbdea4c62fa4b927b1d06ae4fdc2b35beb05ac20af9e6e706309f80e8","09897651e677150ac1d89f9978c6b51af312ef76de686148adaf8ea3de68ff2e","dd0c1145cb0c0810c14087524546684c8ba0cc57db8e8c9e2408c649d76c7b23","2f58b3aee27f7398c1a383fa7e7727654f03e03e172bff82639f0bb3e10ec6ae","de584fb280277e63c00cd5fa2c3f0bcfb73e1e21bc649c0530acba7f63f78de5","ce3f7939c0317c703adcc465382181b0ca8f81dfaeceaf23d546ca600f8ce5b5","f7d66ad8b8c2dc1afd84528f04feb85d18f4f98f1d18ec9d4eace61a546f102e","05501b15cfea24b2771b49cd0b22f2798bbcf234485d74981a786f7e5a1748fc","34424207792bae5c0a7a0ab55a3ce23c02ce8821ac776cee8d428c0a7bfd594e","0cabe23306fa31422636ba594ed34bb4a88e7ab11d301df5284faa0544c3a1c5","27ded2aca35542a4a09f8d3a693b067b5065fa947ab2160e60e38995f85155dc","87451be2caf8e2ff68bb1a0e717833eade17e51722f794ddaa9a12d1712d2e7f","1e103dc7088b204e29d4cbd6f06fdb04457a20222cb38edb9679398683d962d4","ce4372e2cd71e7b0046866206c79f017289aef907f25aca105e0bb2a47e4af58","ba7c5abb7a4aafde4cb9f6c6d0d8f40104bb95eea930c67d2e8b9b706c7621d5","553a8a343dc91dc8eac6972338c04f1a25f74c0cf8625460a78807a5f0a4ab44","f751a293408dad0e5db2dce0e145933c247809120686202390d08c4fd34190f6","02bf8212d26ce921fff01ba650cf10e7e8798a09e458e5ff978d87e035b31b14","ca48c69113aea0263d4c53655691a3ac013a94d7eaf1b40addcf0a2deaae37b5","a5d9a1a3e10a466aa66db4c27e52ed9f6356ca04ac5dc1150144519e4ed10d44","4b8e1cecf784a46d18c18c1f2a3635de2c694082946a3b25d9f70063d5d6e0b5","d295ea463f494f86669136ff6c28591c8db2616e5b1ad79f03d9f42212758cb6","09dae15420c131bc6a3ddd8ecdd5be7896fa62ff759e942731ac2ea32e762b34","4db477d4d7ed492862b36c76963ed59b34faffbdb81487b1596c60695d473341","842fdad56070483dfe030511b9be1743a4e1025c544f02c8524b9b2eae7b9576","3db908a469aef5106e9d2568a3a25cc4f3b0f20343525154f424fb7923495abd","a04aeba6a1323e8613f33cb75ad532dacfb47703ef16a2b19132866a38bacfe7","4f14982a91c67b93709de2d2b0acbcc9d96be3e35bb9c3e7254d9d5b4102e748","f911d7e57a38a3d36650257d850b74d07ac66996cc2395aa10e3b9e7fd0436c6","c16bb5cbf34f654b82757e42bb4e26d059220e70de3cecd5efcae7991f57eab5","388f0bae73dfdf424ce68b7cefd94bcf240d5069e287f9aa44ecc4c6158d07d9","30db41256ca755e46170d77d15d3a816573b2172cc2428a0f3d69f2086d1c012","1bd268ad8d4a33a2ff0ec102582851f69ef4425eb5c6817f2b3ebe4e1121fd26","9be9fa2ad677df2fb29f846d1e8a48786a339c45dce3c37aeb99af2fce4a1915","8e817cae6465c48cc7a34bdff73f723df7fb3ab612c82e9e4f310fcd419e8646","63b0adfc785281458279e5856cd200f1ce8fadc19a8d67b7687cce0fdf4ad51f","736042a11a451d682b2ee38cc334f70cd9985b5352004fd59c37d34026249945","afc2aa98e9958a720c80006acbad97d2ff65c29367e1f36611c489a1ee118b22","876f964e4f16edabd41027e4abaa3f8a6aeda0ce19c7d4e67a194557b54b6fab","38eef06fe69bbb915f536282ff7c292c04639e3d576d58a49d1e90ef527196a2","11d332d87547781f488740c22a66e9b9e4082f959048a00f02d582ddc4f12860","5869a53a27e1f7fa879fb805a30f101671bff660f669ae17217667c846f0d149","0b7d45d2bb8b3447b31c358e3f3550e0314f75fc76f67d4e5f3c4c84c8749ef3","221fd528946354d830e771ed9d4f7c6bbc5b532a4e1fbe8051ae2666d0847c1f","7f045b82df5f431f837390c22a2c35658959713bd12599806257727cbcdcbf1c","a019dfd1c3dd9c05e92099f9e544a0e63a08df0039b061ea842995837080d080","9e52d6fc2217c394a41eec5ca3fa42190bd9be1a2cf863f7e065a13ad581015b","d84acd47fce20eb719b2375094e2bd222fb8eb50a876cc72753625e98777c859","d262815cc9e0bc51a685aa8ec6f56c9a7a7bf5ac024208a9728a0987ad8bfe0e","13261e6804d7e8070708d36ea504aaf37e1d46c89776d607e94541c110e7a3d6","debe6ab96531c19b627feae9b975a132a4cdeaad58188f34550f7821942cdb1c","a9dbc621de1b4661d1beeb586ea7c415d485d04022ad44bdfe00e41124d22c41","70c0c12691b22f5c7c4c09bb574887bfc77142fe9fcf6b1affc088bdb1fc480f","f7a4d387ad7fc9dca7a2197dbe5d7e5435a9c051589d4cf55930f271131e6817","06aa6da5d72e34291e11e03a994be8e4fd2d6da908cafc160c8f8b3111a3bfe4","84a7c5a51285da53bc0e548850adbe4c4a48e2c79d142f420e70c724cda08abb","02f942620720d49d6b84b7b58514fa87a905eeca44e57a281813726548c8e709","aec5846e3da757ec64a2f1cd2d00a9abb16016c4731be01d0f22f9a0095b3ce0","7a8c4ebdbc2a4b8fa750a434907f65c1ef172d0a8ce06796b987ed661015782d","a4b7d3fa206dd9ba8be67de430764a665947082b07f029672a440d2f0dfcdc35","fc62ec250788c4b03d7af3a3c1d0499eebfbe38867dfbb4b738d51f33578a2d7","5829a3088359b8d6af30e786c0d3e28ee9e15e23281bb4fb8d07513a2bbd98fd","bf338a71abf1293386086a8f6b3a57e3dcc76f7d63ecd808eba7ea00d5edd286","08bcc1f8fee417f45a074cf822d1d0848d37bd8f52dbbe336e2e5619aca50647","ccab2caf5c037e1d4522246c0a87675a7aeb1aa9fc23bee76b1dc135bba2104b","a607147d53272b43503684a14891610ff15197d85eb39feb386d0dc66e991acb","0f3d70da43d7579832b931a9675c86156be54dbd467f47bfeaa5e591d349c768","9268108f1f2def6b335388a4f34bd184cd8b4854e0a54ab85de565f55f81be12","19bc8e14e1ffae7a8147662b9b1eeac79c4037c8447651b182e6a6dfda63bf7f","921938780b87d72d17a00fc61f80516c723a4daa73015d2949ef420e085a918a","9874e153efdf24175131ff8e678db6956525f75a6d95168398ace5e25655225d","69df59c5d86d78e387eac890b5f8c7ab7b5b68962cd7ff5b77e1fe97b6342f04","a2fcb274aa68c2237edb520cd3a54bff2203f237fa2bd8326d8620c35a0e8bee","d83263a1abb74bfed4c2748a8e181e97e710d532104f5ba8a6458be5c9ded464","6ed8b3b00b53a43db74041c6d3637f8eea508a324419d5d745f9335dd218d568","bfd7174d5a4de03ce64db5ba26fee050efa0c43d906452c0e3c5f750dc8c6998","423268a14f8cd112c3746ec5528f2a425adec9f0abc45e525aae9d54b378762d","f88e5b1376d2eccf8399f8005d921ea1b13f049bcecdc31b3752311950f03c42","cb47de952fc15ce96880d0c30e10a72073022bec8307b1230c2f303cd6622239","c879b7a8573bfe6f75e7fd29445af276bca450ce56e7b48172f88efaa442cf40","4a99a48d6990223a6eeb811c17ef17204febc6d4fba394f286c5aea21caf43eb","82a86282f0a951afab5b509da77fba3006e986a075bd64d1d06db26fd635f220","4b3c32870abd10e454744a4bee8475ce654991ce4aa9287928a17491aa38a6a2","9bceb2c3a158f54b2398841d02f7a7a31df940cb90322b43bd211fb2020b145d","7d3287e8968cbd4fb1047dbfa61e8d5539c0cdbbc5f5802cf6ee1f11708930b2","636c9f06df5f7ecc1847a98d2963a09e9460f4552dc8c203f447af8ff7d060ec","b014d7af72076a3bfd5d9a710623ae6ecbb55b4c069bcc23c41cc219c57b14ca","a64ec866138d2dae51ef6b94bf2b352d2acb383aedcf5976dc36389e27b0aa3a","882cc90ef2a309b77a60dcce6cab81328499bb47587dce292b38d3519c6c8394","02e3010879d3018585a9ff2e963af8e3f5caca993c532c2220eeb1b45a11cfe9","d0c23cc4f54db1bb6bf7dde080c56c7a2abc3310518cdf8e884b4904ab1bf5b4","c159d276c7a7debf45d949ad448d6dc93445a926cd8eb76d48aceb7773d344ef","ffbebd238e0dbeb7da6a4478e7a0ce4bbda5f789e134fe49b4fd1e6d18d3ab7e","5289392088136105e55d7c489d2280c4583f8f7281b77eed3746b2609eddcd5a","33be7a3da4878aeb17da49c0bf374b8c0a8e7926a23cfea292316a7a2ccda4a6","5bd637837ef59a145b3c4912a23bbced04fc22a756e9d6f60cdb9d15be9d9c1d","cfd0d1e4d035baf9efb522a57dd49de10c257dca36353792bcbf055e29c8bc47","99597e0fdde015c3a4b83d9c4fd34b9709fb1b3f598cc3a7dbe34dbd8c7ca96d","02860d062cbee8d613ee767bc3dd07a71ef7e2017effc0a4dc305b1e41f9cbf2","bd73aaccea2ab75aa47e87a5f5e43abaebbf72ed00d9339f093298e3129c9b3f","a4534dbe0bd2abe2eb7527ae1fd990e8e404163f48fe675b794debbe7c63c461","9f33ad4e5d5a6bfb1a126a78462447c3a8993d6ba5b97695a5549662db39b733","2250c0bb781af780c38e7e7b0b5a96a7c9d06c8cf0221b4b1847cbf5ff7a463c","52beb91f2335f3e62766682cf73c0edd070d729ca17e7949f04d7ec8e7408f05","f09e1c1ab3686f4eb0dfdf036ddc6871b74df080fc69f24cecb2cc8d3973e147","b4c7966b8c8f647f1c2adfcb93cac25880260fca8ededd33d2e648a6f4a09fe0","e67709ede217673ecf53c24436c1675df7e738c2d43570973d7b18bb2ecfdece","8ef4432db0d8380322d4ea1cb49cfc0be1257dd1ef102f653a8ce5ab6ea1b4e2","4b7d8d8c756bdd8ffda46d2522a4b8e28660e90d8fd375b2e534d33fcefd18fe","c8b19b7a6357ddfce5f2e75a5c4e8abeb752f595b96a1034a4ae053965d6c4bb","fc702e18a35f9968c62a516510157e056e1fc6340483844e9dd79e1c8c5b373d","cfdae246948113b1114fc6803a33060fac4b5dd22f047ec5969d5685fa952bab","9dedb414c09e12a98163b346878d8c57b3df0ec44662cf47638e385b65a8b279","e3050b97a2b2370c6555e17d5c5c23720ff6d5cf8811c64064cca99ae1e88323","27d5bdd0dd73211f69b539a64d3e7564f4b8bc9df431e44477fdff71e4724979","af92248075f2070f44f9817120e7a1b7ca621d66bed2a69a69715d147cf125b2","bc5cdc8597ba4548b91cdd2ddddd996f5441acf76192fae49ad78dd91d162d9f","8b157465e164c37d7f50b032657029a9440027bacb63e0a0422c5903e9009555","90823973681cd3bf25e61792de6d4867a506d0b1c0cc1be63d3417e3e2c817ca","3a57cdf3165e34e394a9510116433248ce234cbac86115e4cc3f61205db4d1ed","5ba05a9e9155e96bc4b9aeaf3ed99bde4284adfcbaf666152eebd596a2d5cbad","25120cc5b77f87056bb13b0c01a05168d6485323d5972feca20cea124a4f618f",{"version":"397fe1ca4ecca584df1b191b80066313ba83e2120c8c6662511d1ae61c28a7eb","affectsGlobalScope":true},{"version":"fd45f5d7408b4ade5b812478e612b59801d371e4b8e467cf1b1aca46acd1564a","affectsGlobalScope":true},{"version":"b9241ecb5024beeaeb98fb558000dbc55e650576e572d194508f52807af6bcba","affectsGlobalScope":true},"3039ca5b4c980b09439c8b8962ea05552573fd995304d31957d47e01a6bca5ab","2e5ac0dd461b94010e16057c26d281841e3a935df927d76123b6864880086a26","b911176e7778c30f6549f86daae0353c53730eb0ee59b6476f1072cb51ab1af3","f8cc7ac396a3ea99a6959ddbaf883388260e035721216e5971af17db61f11f0b","895bedc6daf4f0da611480f24f65df818ea9e01404e4bf5927043dbf4eeed4d1","ea4facc7918e50e285a4419f7bc7ffdf978385899a3cf19ef7d7b782b896616d","8db893a4613484d4036337ffea6a5b675624518ad34597a8df255379802001ab","5828081db18ff2832ce9c56cc87f192bcc4df6378a03318775a40a775a824623","33b7db19877cf2f9306524371fcfc45dcb6436c8e905472ede7346c9f044bf20","b8eb76852bc6e72782541a2725580b1c3df02a0c96db570b0a7681567aeed598","6a7b38162c0cff2af6d2cbd4a98cfac6c0ea4fb1b5700c42f648de9b8c2e8e1f","19828d5df3be9b94598e5c25d783b936fcccaa226a2820bacee9ea94dc8aff2f","5d45955831c840d09b502ce6726a06435866b4736978e235a7d817ed45990df7","3bdf7ca46ef934ee671b3dd0e3d4cddcaecfe6146811b330743acdfb8e60f36c","70dab20ce12f8d153044fc487f2bfd40d21fc64329446f02c6a94b9759c13265","c1eed15acf77bbaa4a4840edbdcf70ff2f3c2a0f5af498578ce020e2f2c73f7f","71943244e9813364dac70c5be97fdce7bc775c96bb212d97a60ba072344dcbbc","6f1fa6fc9b169b165be0d8550a3ca0b5181af0c41e4e1e15f5e6bcb2a6e1c344","e311e90ded1cd037cbece1bc6649eaa7b65f4346c94ae81ba5441a8f9df93fa3","8eb08fff3569e1b9eddb72e9541a21e9a88b0c069945e8618e9bc75074048249","d596c650714d80a93a2fe15dce31ed9a77c2f2b1b9f4540684eaf271f05e2691","8f9fb9a9d72997c334ca96106095da778555f81ac31f1d2a9534d187b94e8bf6","aea632713de6ee4a86e99873486c807d3104c2bf704acef8d9c2567d0d073301","1adb14a91196aa7104b1f3d108533771182dc7aaea5d636921bc0f812cfee5f5","8d90bb23d4e2a4708dbf507b721c1a63f3abd12d836e22e418011a5f37767665","8cb0d02bb611ea5e97884deb11d6177eb919f52703f0e8060d4f190c97bb3f6c","78880fa8d163b58c156843fda943cc029c80fac5fb769724125db8e884dce32d","7856bc6f351d5439a07d4b23950aa060ea972fd98cbc5add0ad94bfc815f4c4c","ce379fb42f8ba7812c2cb88b5a4d2d94c5c75f31c31e25d10073e38b8758bd62","9d3db8aef76e0766621b93a1144069623346b9cfccf538b67859141a9793d16d","13fb62b7b7affaf711211d4e0c57e9e29d87165561971cc55cda29e7f765c44f","8868c445f34ee81895103fd83307eadbe213cfb53bbc5cd0e7f063e4214c49b0","277990f7c3f5cbbf2abd201df1d68b0001ff6f024d75ca874d55c2c58dd6e179","a31dfa9913def0386f7b538677c519094e4db7ce12db36d4d80a89891ef1a48f","f4c0c7ee2e447f369b8768deed1e4dd40b338f7af33b6cc15c77c44ff68f572d","2f268bd768d2b35871af601db7f640c9e6a7a2364de2fd83177158e0f7b454dc","73bfa99afd564cfef641ccb4fdef0debdb3c49f0a817085d68fc6b6508266f09","a004a3b60f23fcfb36d04221b4bef155e11fd57293ba4f1c020a220fadf0fc85","4e145e72e5600a49fa27282d63bb9715b19343d8826f91be0f324af73bc25322","62f734f7517d2ca3bf02abddaf8abf7e3de258667a63e8258373658bbb9153b6","df99236666c99f3e5c22c886fc4dba8156fed038057f7f56c4c39a0c363cc66a","b4bce232891b663cc0768f737f595a83de80b74671db22b137570ef2dc6b86ef","781b566c3eccba1a2cafbb827fb6fc02d5147c89a40e11c7892057481a195270","c9befaf90879c27ee3f7f12afd15b4531fbbea9ec37d145b83807a67d9f55c82","8630f26d1038328e6b9da9c082f6fa911903bc638499baa6cfab002b5a70af96","73474d70a9b4f02771119085c4cd7562be4169e7973544c9541341ca2931aa3d","54da497c3b3b94fae91a66ed222e21411dc595a17f9e6bd229e233d0de732691","803da2f4e024efa2edc55c67d35c5240e7ae599baf9263b453acd02127a582e9","b8b070df71250096699ad55a106d161d403347ed335f72c5ae8485e5d858524d","a9716557f56781aef13d6d3c5dafc61236f64bfd48d462c4848a7eca25f924ff","3d15b5e24065431bf7831b8e84000c0e767d921135af86ef0b0c034f14df5d8f","a563202fc316d8926dc83759cec155d5c028a7828996cbd283470ac7e8c58727","e5c004f39619ebaaa2475b18e949e12e51ff629132f48d56608081e5f0195577","e6b7a14eb53f023f455f4513b6a560f004fa1ebf6cc298b479be796541e322e6","771bf8091a4e40be8f539648b5a0ff7ecba8f46e72fc16acc10466c4c1304524","cb66d1c49ad20e7246b73671f59acaaaac72c58b7e37faae69ae366fd6adf1d3","e5c1c52655dc3f8400a3406fd9da0c4888e6b28c29de33bee51f9eaeda290b4d","1e28ee6d718080b750621e18befe236487df6685b37c17958520aaf777b7aeff","8891345dbe1920b9ed3f446a87de27b5cd6b2053112f6ff3975a661f9a03ec34","a72e21b05b937630b97b1d36bb76b879bb243a021516aef10701775f2da7f872","4debe398f42800c1359d60396fc76aa4fa34a23a96b597672b5c284fd81c0158","a720d8028d38f2b94855967789252c6148957dcd24e280d193b78db00eb3a099","1b0818297187a33e2c24c39145b409e11624523d32364edc22bceaf1f4c86f1b","332e362ba8bd05237c661ba685b2c37e9cde5e0876cb81bf515d15623bdee74c","84648722d2b1f16c55cb68dbfaf18b913a13a78274641f7236eeb4d7088f6db8","f63d313c2673117608b3ed762ac07f618ee873bee3764406b06bcfcb5a713afe","2e2a2a0f7ef2a7587cfe40a96dbca31e8badb15a8a42bf042fe7a63abc9e2f27","2bb32fb3f0fe14c48170dcad3d2a501c1883516d4da9cbd0a2043d90c9789a7b","352532af4d27bdf545d9bb20f0c55758138327404bd86f0934edc7ded76be7e6","64d93f4a24f8a70b64658a7d9b9e96bd46ad498ad5dc9cdb9d52da547e77ff68","8a728de3047a1dadcb69595e74c3d75bc80a2c8165f8cf875ab610042a137fbe","3eafed0be4b194295bcde379e7d083779d0f27f31b715738a3beac49547dc613","7e74740cb7a937af187118ae4582fbe5d4d30b34e9cddec2bd7f7a865e7824ca","8cdf90b59995b9f7c728a28e7af5dc4431f08f3346e6c16af49f548461a3e0aa","1d472b3eedeeaab5418ea6563734fffc68c404feac91900633e7126bee346590","6cf7182d798892394143549a7b27ed27f7bcf1bf058535ec21cc03f39904bfb3","abe524377702be43d1600db4a5a940da5c68949e7ac034c4092851c235c38803","daf4418239ceadb20481bff0111fe102ee0f6f40daaa4ee1fdaca6d582906a26","8a5c5bc61338c6f2476eb98799459fd8c0c7a0fc20cbcd559bb016021da98111","644cf9d778fa319c8044aed7eeb05a3adb81a1a5b8372fdc9980fbdd6a61f78e","d2c6adc44948dbfdece6673941547b0454748e2846bb1bcba900ee06f782b01d","d80b7e2287ee54b23fe6698cb4e09b1dabc8e1a90fb368e301ac6fbc9ad412e2","60b678d3c92834151ca6701c399c74c961193c06cc9d97da32cc4ad22ee5951e",{"version":"c7eebbc98b3e28df60899db055f0b1940295e6c68173e1859b97c062e02e00cf","affectsGlobalScope":true},"816f825b072afd246eb3905cf51528d65e6fe51c12a1f8fb370c93bb0e031c9b","f6a64974d6fab49d27f8b31578a08662b9a7f607de3b5ec2d7c45b3466d914fd","a8e9d24cd3dc3bd95b34eb6edeac7525b7fdbe23b373554bdc3e91572b8079ee","1d5fd841722ce9aa05b9d602153c15914108bdaa8154bdd24eddadb8a3df586c","14788c10b66324b98feee7a2567eb30d1066e11506e54bf1215b369d70da4932","316785de2c0af9fbd9f2191904670e880bc3836671dd306236675515e481973a","070d805e34c4b9a7ce184aabb7da77dc60f2bdb662349cf7fc23a2a69d17de8d","092deae5b432b6b04f8b4951f1478c08862e832abd4477315dba6ea0c39f1d9e","27d668b912bf3fd0a4ddf3886a8b405eed97505fdc78a9f0b708f38e3e51655d","72654e8bed98873e19827d9a661b419dfd695dbc89fd2bb20f7609e3d16ebd50","66bdb366b92004ba3bf97df0502b68010f244174ee27f8c344d0f62cb2ac8f1e","ae41e04ff8c248ab719fe7958754e8d517add8f1c7abcc8d50214fd67c14194d","558008ff2f788e594beaa626dfcfb8d65db138f0236b2295a6140e80f7abd5d2",{"version":"6573e49f0f35a2fd56fd0bb27e8d949834b98a9298473f45e947553447dd3158","affectsGlobalScope":true},{"version":"e04ea44fae6ce4dc40d15b76c9a96c846425fff7cc11abce7a00b6b7367cbf65","affectsGlobalScope":true},{"version":"7526edb97536a6bba861f8c28f4d3ddd68ddd36b474ee6f4a4d3e7531211c25d","affectsGlobalScope":true},"3c499fc4aad3185e54006bdb0bd853f7dd780c61e805ab4a01a704fa40a3f778",{"version":"13f46aaf5530eb680aeebb990d0efc9b8be6e8de3b0e8e7e0419a4962c01ac55","affectsGlobalScope":true},"17477b7b77632178ce46a2fce7c66f4f0a117aa6ef8f4d4d92d3368c729403c9",{"version":"700d5c16f91eb843726008060aebf1a79902bd89bf6c032173ad8e59504bc7ea","affectsGlobalScope":true},"169c322c713a62556aedbf3f1c3c5cf91c84ce57846a4f3b5de53f245149ec7b",{"version":"b0b314030907c0badf21a107290223e97fe114f11d5e1deceea6f16cabd53745","affectsGlobalScope":true},"7c6c5a958a0425679b5068a8f0cc8951b42eb0571fee5d6187855a17fa03d08a",{"version":"f659d54aa3496515d87ff35cd8205d160ca9d5a6eaf2965e69c4df2fa7270c2c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"4a4d7982941daaeb02f730f07578bce156d2c7cabfa184099321ed8b1e51591b",{"version":"cc8e57cfe18cd11c3bab5157ec583cfe5d75eefefe4b9682e54b0055bf86159f","affectsGlobalScope":true},"75f6112942f6aba10b3e2de5371ec8d40a9ab9ab05c8eb8f98a7e8e9f220c8a2",{"version":"8a3b75fccc93851209da864abe53d968629fab3125981b6f47008ec63061eb39","affectsGlobalScope":true},"4aafdcfff990abfe7feb894446ab43d2268657084ba656222e9b873d2845fe3c",{"version":"d6f55de9010fbefe991546d35da3f09ae0e47afae754cb8a4c867fd7e50dcec0","affectsGlobalScope":true},"afac637a8547d41243dd8c4824c202c9d024534c5031181a81dece1281f1e261",{"version":"1ce2f82236ecdd61ff4e476c96d83ce37d9f2a80601a627fe1d3048e8648f43c","affectsGlobalScope":true},"42d908b851ddcf6df729c0a2ae56f151bad6610ea368729d68f0c8fbbd779913",{"version":"592e99b73ae40c0e64ce44b3e28cea3d7149864f2f3cbc6ccb71f784373ade97","affectsGlobalScope":true},"fa601c3ce9e69927d13e178fdcb6b70a489bb20c5ca1459add96e652dbdefcf6",{"version":"8f8ebce0e991de85323524170fad48f0f29e473b6dd0166118e2c2c3ba52f9d6","affectsGlobalScope":true},"e58a369a59a067b5ee3990d7e7ed6e2ce846d82133fb5c62503b8c86427421a4",{"version":"f877e78f5304ec3e183666aab8d5a1c42c3a617ff616d27e88cc6e0307641beb","affectsGlobalScope":true},"82a66c8db63050ce22777862d6dc095b5e74f80f56e3a2631870d7ee8d104c9e",{"version":"4fc0006f46461bb20aac98aed6c0263c1836ef5e1bbf1ca268db4258ed6a965e","affectsGlobalScope":true},"e086e212ddb5de48f83d971e892949a9ed5ada7134b3116f17768b6885bce6f3",{"version":"867954bf7772a2979c5c722ef216e432d0d8442e995e6018e89a159e08d5d183","affectsGlobalScope":true},"6cc643a497641f28562d8a24b3bd6c4252f3476b462ea406f3123ae70be343ce",{"version":"cd8a7e7d61af5ca34b39095ab24bdcb308bfd4ab379df8ef9d53ce9fa83187a8","affectsGlobalScope":true},"9e837aadb58587a9f79d1ba6a1625cfe40e4077c6bc89cd1c1d5886a2d2489cc",{"version":"544f8c58d5e1b386997f5ae49c6a0453b10bd9c7034c5de51317c8ac8ea82e9a","affectsGlobalScope":true},"2382c18dddfe93b455dfaccc5e6ad795cc33ba8a6a72de41622ef03dd27e377f",{"version":"ae9b62dd72bf086ccc808ba2e0d626d7d086281328fc2cf47030fd48b5eb7b16","affectsGlobalScope":true},"b03e600a48c41adfad25cda292a2bcd87963f7fce09f3561978482f9f6530fc4",{"version":"cc1bddca46e3993a368c85e6a3a37f143320b1c13e5bfe198186d7ed21205606","affectsGlobalScope":true},"34cb99d3f4d6e60c5776445e927c460158639eeb8fd480e181943e93685e1166",{"version":"c77843976650a6b19c00ed2ede800f57517b3895b2437d01efc623f576ef1473","affectsGlobalScope":true},"c8db20febc70a33fc8668c2f6475c42be345a0545f6bd719f787b62e60d8f49e",{"version":"5ebba285fdef0037c21fcbef6caad0e6cc9a36550a33b59f55f2d8d5746fc9b2","affectsGlobalScope":true},"85397e8169bdc706449ae59a849719349ecef1e26eef3e651a54bb2cc5ba8d65",{"version":"2b8dc33e6e5b898a5bca6ae330cd29307f718dca241f6a2789785a0ddfaa0895","affectsGlobalScope":true},"cc2c766993dfe7a58134ab3cacd2ef900ace4dec870d7b3805bf06c2a68928bd",{"version":"dde8acfb7dd736b0d71c8657f1be28325fea52b48f8bdb7a03c700347a0e3504","affectsGlobalScope":true},"96c711d561eaa29cec567f90571ea515f91412bb005ac2a4538bcadf0e439fa5",{"version":"34c9c31b78d5b5ef568a565e11232decf3134f772325e7cd0e2128d0144ff1e5","affectsGlobalScope":true},"7e72ce64e021f6f43c8743682a3c7cf2035166f8283ca675a4589e1bd8a63e55",{"version":"60cc5b4f0a18127b33f8202d0d0fde56bc5699f4da1764b62ed770da2d5d44f1","affectsGlobalScope":true},"5da9bade8fea62743220d554e24489ea6aa46596e94e67cfff19b95804a54a5f",{"version":"d11fa2d42f762954eb4a07a0ab16b0a46aa6faf7b239f6cd1a8f5a38cb08edcd","affectsGlobalScope":true},"87daa4e406afddcea17302b85e08a2de9444fe561347cd1572ffa671c0171552",{"version":"781afd67249e2733eb65511694e19cdcdb3af496e5d8cdee0a80eba63557ff6e","affectsGlobalScope":true},"6b32428a82779c0a33356f537ec131882935bc76ad0371722618a9ac6403cca0",{"version":"f3275e1f0e5852b1a50fd3669f6ad8e6e04db94693bcfb97d31851e63f8e301e","affectsGlobalScope":true},"de82ff7892200413e9e0c54b038d87099de9d74a9e815b3cb6e9908f950f6ccd",{"version":"8a6ecff784dafbdb121906a61009670121882523b646338196099d4f3b5761d8","affectsGlobalScope":true},"1d5f5827fdeb0d59f76a1ee6caf0804d5d3c260e60e465b0b62baea333199e62",{"version":"256bdff4c082d9f4e2303138f64c152c6bd7b9dbca3be565095b3f3d51e2ab36","affectsGlobalScope":true},"0b14c87ea4887402356f7c8b321dfd944880ae76cd703e342c57ac7a83de4465",{"version":"e214a2a7769955cd4d4c29b74044036e4af6dca4ab9aaa2ed69286fcdf5d23b3","affectsGlobalScope":true},"85647ff695641f7f2fdf511385d441fec76ee47b2ed3edb338f3d6701bf86059",{"version":"25659b24ac2917dbfcbb61577d73077d819bd235e3e7112c76a16de8818c5fd6","affectsGlobalScope":true},"d6f83ae805f5842baa481a110e50ca8dbed0b631e0fd197b721de91dd6948d77",{"version":"7402e6ca4224d9c8cdd742afd0b656470ea6a5efe2229644418198715bb4b557","affectsGlobalScope":true},"36b19abb9d0a0e6809f9493786fe73c3058f66f0a5778554b30bd09d6d21d3d8",{"version":"242b00f3d86b322df41ed0bbea60ad286c033ac08d643b71989213403abcdf8a","affectsGlobalScope":true},"009a83d5af0027c9ab394c09b87ba6b4ca88a77aa695814ead6e765ea9c7a7cd",{"version":"4dc6e0aeb511a3538b6d6d13540496f06911941013643d81430075074634a375","affectsGlobalScope":true},"3a9312d5650fcbaf5888d260ac21bc800cc19cc5cc93867877dfeb9bbd53e2ca",{"version":"7ed57d9cb47c621d4ef4d4d11791fec970237884ff9ef7e806be86b2662343e8","affectsGlobalScope":true},"3bee2291e79f793251dcbea6b2692f84891c8c6508d97d89e95e66f26d136d37",{"version":"5bd49ff5317b8099b386eb154d5f72eca807889a354bcee0dc23bdcd8154d224","affectsGlobalScope":true},"1d5156bc15078b5ae9a798c122c436ce40692d0b29d41b4dc5e6452119a76c0e",{"version":"bd449d8024fc6b067af5eac1e0feb830406f244b4c126f2c17e453091d4b1cb3","affectsGlobalScope":true},"b6ce2b60910be81d4f2000ffe0bdbec408d6423196f6ad00db2a467cd53d676b",{"version":"dd5eab3bb4d13ecb8e4fdc930a58bc0dfd4825c5df8d4377524d01c7dc1380c5","affectsGlobalScope":true},"f011eacef91387abfde6dc4c363d7ffa3ce8ffc472bcbaeaba51b789f28bd1ef",{"version":"ceae66bbecbf62f0069b9514fae6da818974efb6a2d1c76ba5f1b58117c7e32e","affectsGlobalScope":true},"4101e45f397e911ce02ba7eceb8df6a8bd12bef625831e32df6af6deaf445350",{"version":"07a772cc9e01a1014a626275025b8af79535011420daa48a8b32bfe44588609c","affectsGlobalScope":true},"6d0790ee42e40b27183db10ce3be3f0e98dc3944d73c9a4c092bf5ec3bb184f7",{"version":"5be6cb715e042708f5ec2375975ba7a855f54d3554cf8970cd49d0434ad5c235","affectsGlobalScope":true},"02fbf1f4aabb776e2cf229fd74840a27eee5a08642b8ca0677e680a8427d6d12",{"version":"4d13cccdda804f10cecab5e99408e4108f5db47c2ad85845c838b8c0d4552e13","affectsGlobalScope":true},"780abc69f1e0ed0a3ed43cfaf201378faf6e8d8ec13354ed7169159cdeead3b9",{"version":"7ced457d6288fcb2fa3b64ddcaba92dbe7c539cc494ad303f64fc0a2ab72157d","affectsGlobalScope":true},"5d2721c49e058b8f28e495a54f709a004571cd3f57a62df63ed3eddb9e860af1",{"version":"0ccde5fc989806345b5ecca397796e26bbbca2882297adea57009022be7a300a","affectsGlobalScope":true},"730592593eaba845555f4d8f602d8c066972c97a3a8522a0c6f8f721e36bdc90",{"version":"725128203f84341790bab6555e2c343db6e1108161f69d7650a96b141a3153be","affectsGlobalScope":true},"e6ed9d8801e5fddc1a4260510e4266fbf80d5767cf2b9a6cbe8d0eb39d45971d",{"version":"947bf6ad14731368d6d6c25d87a9858e7437a183a99f1b67a8f1850f41f8cedd","affectsGlobalScope":true},"8eda6e4644c03f941c57061e33cef31cfde1503caadb095d0eb60704f573adee",{"version":"0538a53133eebb69d3007755def262464317adcf2ce95f1648482a0550ffc854","affectsGlobalScope":true},"a1dd4d1eada136ec8afb47871da02c1a28be6adc81717106ded5fcdd6548835c",{"version":"8d3ccb8e37673a205fb24f1a3ce7bc9237d32be05494c240245e3a783dd8e16d","affectsGlobalScope":true},"92492e2b8992cc1d68eca60f289ce9fa29dda1eb4d12eed577bcdb958666754b",{"version":"d155bad43ed0facccf039f4220d5d07fbafab34d9b1405e30d213d1ab36af590","affectsGlobalScope":true},"4a5259be4d6c85a4cd49745fb1d29d510a4a855e84261ad77d0df8585808292c",{"version":"220f860f55d18691bedf54ba7df667e0f1a7f0eed11485622111478b0ab46517","affectsGlobalScope":true},"3bee701deb7e118ea775daf8355be548d8b87ddf705fe575120a14dcace0468a",{"version":"9c473a989218576ad80b55ea7f75c6a265e20b67872a04acb9fb347a0c48b1a0","affectsGlobalScope":true},"5f666c585bb469b58187b892ed6dfb1ebf4aa84464b8d383b1f6defc0abe5ae0",{"version":"20b41a2f0d37e930d7b52095422bea2090ab08f9b8fcdce269518fd9f8c59a21","affectsGlobalScope":true},"dbac1f0434cde478156c9cbf705a28efca34759c45e618af88eff368dd09721d",{"version":"0f864a43fa6819d8659e94d861cecf2317b43a35af2a344bd552bb3407d7f7ec","affectsGlobalScope":true},"855391e91f3f1d3e5ff0677dbd7354861f33a264dc9bcd6814be9eec3c75dc96",{"version":"ebb2f05e6d17d9c9aa635e2befe083da4be0b8a62e47e7cc7992c20055fac4f0","affectsGlobalScope":true},"aee945b0aace269d555904ab638d1e6c377ce2ad35ab1b6a82f481a26ef84330",{"version":"9fb8ef1b9085ff4d56739d826dc889a75d1fefa08f6081f360bff66ac8dd6c8d","affectsGlobalScope":true},"342fd04a625dc76a10b4dea5ffee92d59e252d968dc99eb49ce9ed07e87a49d0",{"version":"e1425c8355feaaca104f9d816dce78025aa46b81945726fb398b97530eee6b71","affectsGlobalScope":true},"c000363e096f8d47779728ebba1a8e19a5c9ad4c54dbde8729eafc7e75eee8dc",{"version":"42c6b2370c371581bfa91568611dae8d640c5d64939a460c99d311a918729332","affectsGlobalScope":true},"590155b280f2902ebb42a991e9f4817ddf6558e5eb197deb3a693f5e0fc79bd9",{"version":"867b000c7a948de02761982c138124ad05344d5f8cb5a7bf087e45f60ff38e7c","affectsGlobalScope":true},"6f1d28967ec27ef5d244770ac80a62b66f10439aea63ed52e0604a18aad6468c",{"version":"02c22afdab9f51039e120327499536ac95e56803ceb6db68e55ad8751d25f599","affectsGlobalScope":true},"aba5fbfef4b20028806dac5702f876b902a6ba04e3c5b79760b62fc268c1bc80",{"version":"37129ad43dd9666177894b0f3ce63bba752dc3577a916aa7fe2baa105f863de3","affectsGlobalScope":true},"68526c897cd9e129d21f982679011d64068eac52cc437fce5e48bc78670356f3",{"version":"31f709dc6793c847f5768128e46c00813c8270f7efdb2a67b19edceb0d11f353","affectsGlobalScope":true},"eee3c05152eff43e7a9555abbef7d8710bfdb404511432599e8ac63ae761c46c",{"version":"018847821d07559c56b0709a12e6ffaa0d93170e73c60ee9f108211d8a71ec97","affectsGlobalScope":true},"b50322892db37ef61b48411c989f4cd36b3f41205ad10e7c03f14afade571256",{"version":"7832e8fe1841bee70f9a5c04943c5af1b1d4040ac6ff43472aeb1d43c692a957","affectsGlobalScope":true},"9f2282aa955832e76be86172346dc00c903ea14daf99dd273e3ec562d9a90882",{"version":"013853836ed002be194bc921b75e49246d15c44f72e9409273d4f78f2053fc8f","affectsGlobalScope":true},"0e9a7364eaf09801cbb8cf0118441d5f7f011fc0060c60191587526c448974c4",{"version":"e08392a815b5a4a729d5f8628e3ed0d2402f83ed76b20c1bf551d454f59d3d16","affectsGlobalScope":true},"6a7f172fb4524b4091b793d0e2cccdb365876dcf7f056552a93fbf6c2c1d64d9",{"version":"c3dfd6032ba0bc68520b99fc40cb45f46c73f4c98dedcde79b181f1f0632c262","affectsGlobalScope":true},"261f0f336c13435274021ab058138312b2443bd61723de6acbc4e57a8cecf349",{"version":"5768572c8e94e5e604730716ac9ffe4e6abecbc6720930f067f5b799538f7991","affectsGlobalScope":true},"198075277aef627743ef66a469881addbbf2f6c4c508ffb4c96de94137ca8563",{"version":"e2ae8c8fcfb98fae10647c9159915deea2073bdfcc3fe99b5846fd9563867399","affectsGlobalScope":true},"d0984177c1dc95545541f477fb0df1fb76e7454a943c98ed208dc0da2ff096b2",{"version":"f366ca25885ab7c99fc71a54843420be31df1469f8556c37d24f72e4037cb601","affectsGlobalScope":true},"a05b412a93ba43d2d6e9c81718dea87a42c7e4f9e8b1efbaafee03a94eaf4b7a",{"version":"163cc945edad3584b23de3879dbad7b538d4de3a6c51cc28ae4115caee70ce21","affectsGlobalScope":true},"4fefff4da619ba238fccd45484e9ee84ee1ae89152eac9e64d0f1e871911121c",{"version":"d604893d4e88daade0087033797bbafc2916c66a6908da92e37c67f0bad608db","affectsGlobalScope":true},"56ce2cd3aa0ebbcf161faed36a9d119e5ff6f962993f1af29b826eff1801bad3",{"version":"dc265f24d2ddad98f081eb76d1a25acfb29e18f569899b75f40b99865a5d9e3b","affectsGlobalScope":true},"7c1538394a43ce6d7b7c471b87cc97c487bc3bff37fdd2fc5f659c67445a3a03",{"version":"dd7f9be1c6c69fbf3304bc0ae81584e6cd17ab6ad4ab69cb8b06f541318cc97e","affectsGlobalScope":true},"f528ce3ce9430376705b10ee52296d36b83871b2b39a8ae3ecec542fc4361928",{"version":"41ffc155348dd4993bc58ee901923f5ade9f44bc3b4d5da14012a8ded17c0edd","affectsGlobalScope":true},"580eedb87f9ed40ff5fc619507e47c984a1e3fbf2fee8f5eecbe98806997d0ee",{"version":"3e8e0655ed5a570a77ea9c46df87eeca341eed30a19d111070cf6b55512694e8","affectsGlobalScope":true},"c1b3019eeb7120da76e837268ac26beea8dc0aa8d6108e286e9cfa9478af562b","6bb6fda2bba279010a8ffb5221fd28aed12d3d37ebc396a6e0f02840adb17970",{"version":"cc4c74d1c56e83aa22e2933bfabd9b0f9222aadc4b939c11f330c1ed6d6a52ca","affectsGlobalScope":true},"b0672e739a3d2875447236285ec9b3693a85f19d2f5017529e3692a3b158803d",{"version":"8a2e0eab2b49688f0a67d4da942f8fd4c208776631ba3f583f1b2de9dfebbe6c","affectsGlobalScope":true},"229648df48b149ecb40a267e69899456c28dbe4b31e64513be64eb2b58e29f1c",{"version":"f6266ada92f0c4e677eb3fbf88039a8779327370f499690bf9720d6f7ad5f199","affectsGlobalScope":true},"ab149c81ee4c7bb5fd0abea1057389185e334d5038c4c8739faa65ec5feb6ffc",{"version":"fb6cb8911a03c7ac61ee80aafdc072623850dd6a6d9fa0c98b015d8b181153a5","affectsGlobalScope":true},"8946ad9bc3d5c42cdb07de081480d869e358f5986166649a9e4230bea2ea84bd",{"version":"09a227ec52ef63acca2a3a1f31ca6d3affa45b51e18ffdf0036152d5f102dfd7","affectsGlobalScope":true},"c03bcada0b059d1f0e83cabf6e8ca6ba0bfe3dece1641e9f80b29b8f6c9bcede",{"version":"f2eac49e9caa2240956e525024bf37132eae37ac50e66f6c9f3d6294a54c654c","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"a0ad84c717107c133f77f15b344d62633863931d4b3592de20c232ded129c50b",{"version":"7373a173ea1b42648b1779267a5a707eb403ccc31a16761870dbf0660eb234ee","affectsGlobalScope":true},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",{"version":"f3e7a4075f7edc952560ec2254b453bfc8496d78e034768052347e088537694b","affectsGlobalScope":true},"ace629691abf97429c0afef8112cc0c070189ff2d12caee88e8913bdd2aaad25",{"version":"99a71914dd3eb5d2f037f80c3e13ba3caff0c3247d89a3f61a7493663c41b7ea","affectsGlobalScope":true},"25a12a35aeee9c92a4d7516c6197037fc98eee0c7f1d4c53ef8180ffc82cb476",{"version":"b4646ac5ca017c2bb22a1120b4506855f1cef649979bf5a25edbead95a8ea866","affectsGlobalScope":true},"54d94aeec7e46e1dab62270c203f7907ca62e4aaa48c6cdcfed81d0cd4da08f3",{"version":"f9585ff1e49e800c03414267219537635369fe9d0886a84b88a905d4bcfff998","affectsGlobalScope":true},"483d29eb2d4b6c4d486f67b682a5d0ca2d4d452e09e6d43eee0f5ef0f4950aee","eaf540a66adaf590521596a4de7d2f86644aae59b5ef449b26d4b00ccfc13ba5",{"version":"1ff9449d1efdebef55b0ba13fe7f04b697c264e73ec05f41f7633dd057468b2d","affectsGlobalScope":true},"79792358436829ae510866561a6c62e37472108ae7a1836ba2b7136eba000bda",{"version":"7c160037704eee2460c7de4a60f3379da37180db9a196071290137286542b956","affectsGlobalScope":true},"87bdcea89ec013888b0fdb1694ce0cb4b8bf6b9f03f90429cbb4e00b510f838d",{"version":"4681d15a4d7642278bf103db7cd45cc5fe0e8bde5ea0d2be4d5948186a9f4851","affectsGlobalScope":true},"91eb719bcc811a5fb6af041cb0364ac0993591b5bf2f45580b4bb55ddfec41e2","05d7cf6a50e4262ca228218029301e1cdc4770633440293e06a822cb3b0ef923",{"version":"78402a74c2c1fc42b4d1ffbad45f2041327af5929222a264c44be2e23f26b76a","affectsGlobalScope":true},"cc93c43bc9895982441107582b3ecf8ab24a51d624c844a8c7333d2590c929e2",{"version":"c5d44fe7fb9b8f715327414c83fa0d335f703d3fe9f1045a047141bfd113caec","affectsGlobalScope":true},"f8b42b35100812c99430f7b8ce848cb630c33e35cc10db082e85c808c1757554",{"version":"ba28f83668cca1ad073188b0c2d86843f9e34f24c5279f2f7ba182ff051370a4","affectsGlobalScope":true},"349b276c58b9442936b049d5495e087aef7573ad9923d74c4fbb5690c2f42a2e",{"version":"ad8c67f8ddd4c3fcd5f3d90c3612f02b3e9479acafab240b651369292bb2b87a","affectsGlobalScope":true},"1954f24747d14471a5b42bd2ad022c563813a45a7d40ba172fc2e89f465503e2",{"version":"05bbb3d4f0f6ca8774de1a1cc8ba1267fffcc0dd4e9fc3c3478ee2f05824d75d","affectsGlobalScope":true},"37e69b0edd29cbe19be0685d44b180f7baf0bd74239f9ac42940f8a73f267e36",{"version":"afba2e7ffca47f1d37670963b0481eb35983a6e7d043c321b3cfa2723cab93c9","affectsGlobalScope":true},"bb146d5c2867f91eea113d7c91579da67d7d1e7e03eb48261fdbb0dfb0c04d36",{"version":"90b95d16bd0207bb5f6fedf65e5f6dba5a11910ce5b9ffc3955a902e5a8a8bd5","affectsGlobalScope":true},"3698fee6ae409b528a07581f542d5d69e588892f577e9ccdb32a4101e816e435",{"version":"26fc7c5e17d3bcc56ed060c8fb46c6afde9bc8b9dbf24f1c6bdfecca2228dac8","affectsGlobalScope":true},"46fd8192176411dac41055bdb1fdad11cfe58cdce62ccd68acff09391028d23f",{"version":"22791df15401d21a4d62fc958f3683e5edc9b5b727530c5475b766b363d87452","affectsGlobalScope":true},"150ac8ae1c4500f57f2af6e491717a8858a40619063164b1ad746d6a9ef30207","cefffd616954d7b8f99cba34f7b28e832a1712b4e05ac568812345d9ce779540",{"version":"a365952b62dfc98d143e8b12f6dcc848588c4a3a98a0ae5bf17cbd49ceb39791","affectsGlobalScope":true},"af0b1194c18e39526067d571da465fea6db530bca633d7f4b105c3953c7ee807",{"version":"b58e47c6ff296797df7cec7d3f64adef335e969e91d5643a427bf922218ce4ca","affectsGlobalScope":true},"76cbd2a57dc22777438abd25e19005b0c04e4c070adca8bbc54b2e0d038b9e79","4aaf6fd05956c617cc5083b7636da3c559e1062b1cadba1055882e037f57e94c","171ad16fb81daf3fd71d8637a9a1db19b8e97107922e8446d9b37e2fafd3d500",{"version":"d4ce8dfc241ebea15e02f240290653075986daf19cf176c3ce8393911773ac1b","affectsGlobalScope":true},{"version":"52cd0384675a9fa39b785398b899e825b4d8ef0baff718ec2dd331b686e56814","affectsGlobalScope":true},{"version":"58c2bb87fdf190100849a698042d09373be574e531758b1cfe3533258c3d4daa","affectsGlobalScope":true},{"version":"b8f8d5bc91f9618e50778e56f99e74f63dc08f7a91799379887d0fb3ff51fe5e","affectsGlobalScope":true},{"version":"769c459185e07f5b15c8d6ebc0e4fec7e7b584fd5c281f81324f79dd7a06e69c","affectsGlobalScope":true},{"version":"c947df743f2fd638bd995252d7883b54bfef0dbad641f085cc0223705dfd190e","affectsGlobalScope":true},"db78f3b8c08924f96c472319f34b5773daa85ff79faa217865dafef15ea57ffb","8ae46c432d6a66b15bce817f02d26231cf6e75d9690ae55e6a85278eb8242d21","ff5a16ce08431fae07230367d151e3c92aa6899bc9a05669492a51666f11ceb5","526904beb2843034196e50156b58a5001ba5b87c5bb4e7ec04f539e6819f204e","4d311eabe35c4c1fe9b47d5e5f82e3c5467be90b34270fd71b3757bb5dbbe296","0f7abdc525bf2758a1bdca084ddd6092ee33ff438c11107f74d9f5720b0c432e","c3d1047841fd6c273c783726782bdb8c9a77bbbd4bc726447fd33010f0a54cc6","66500cbabdb5d98df1ea231c2e2c0e04f80cd68274d7824dec4918c57cdc12ed","80883fa1b4dc48eb6db24453403c5cbf4a2a31777fde224b8fde7ba9246de371","ef4a9912cd6a2cf0c5acc4fa29a46013bb2cd1180466c8b28b29b136639e0b11","0a61e93272daf8f155d2224a33a1b5c0275eeeed139cd3fcef46c1aeaf730eda","d5ac44aae007e8852a0613908b99a642cc2464d7459380bf304d0c6e695a9cf5","3578d1b66793fa7c30e0a946babf6a7fe46e99ac5e7aa75c434c022bfe9cd163","7353061b0ab6ac04877a2a8c6a1c7f192dd6a148a2f5a71db83c782e0ca04e1c","45aa47354b80aa70ef600ae3b77eba08293bd3ff8c730157446d1163bb2c4c59","b7f651b5728e9c2eb9b2d644820075b36c680e854c06a3a6e5c77a98a68ab7ce","bb68c92912ca084538bc4c76109d28c858eb329aa7acbea374090cf6b74b9829","9ea0c0a352cc40e927881cd4795c2f026916cee12427f9bc915afddb59dd73eb","dde124bb83e97fb0e57a531ee1ba05e8384dd1c0eb74e2d704b37b54cd01789f","00ff825e0174fcf24540c467e2eb32894daa71c7527f220a07c5ba1b930eed2e","a7ad3e80427fecf7ecf65548393d54d10dc966de5f13ee4444e2f8251171a356","02c466e48da52b1069c4a5148f0b5fdbac32f77eb73460e08e4304e56b2c5108","4c247d3b70453dcf87358557bdc9741198be0c15a2d9baa257538e0fe1bbfbee","e70fc239e89e73ca7eccedd10a961d91c6a7008a84f32daf236be789f6584475","78a790c9547abdfa63c485b926e2ef1e682bf0c0c8688d77b8148c42d276d541","b62722a43c6c7229e91a7b790b99629fa3962b1e4d20c0c5308348a1405967da","e0b8a13ca37ce8c7443202032731f08d8c2c9d248961eb022016d9f4e27c7e55","bb89ef104be62e1b76119542bd9a4ac8b79f328ffe3d227085cb7e172a230865","23e32d4e909d534cb1efe70f5df184c8bd22597861347d67de64e08dbb9ef74e","91dafddadef6a91eaab4c9a460ea02abe9c9b8fee0f927346691cc2f5e727453","a261303bcaa02e367504636b9bb8cb4807fb2ad06f984ae0508c2c9bc28f728f","5117d07b910a46f6ef5adf15fda31e4b763a05e784f358772906fe489ef15138","cc89e9327aec34235f6f49fd2681c5c737e18bc7617706c2429273004d91fed6","583f4b6f18639cf3918cbff3b75a628e74bdd283d339e61aff6a342bb0589a31","4e12fd72d4c1632ec13afde328e5abb98d303e96916494c208f6dffbe25091c5","bfb6f37842653a2f84e1664438b57217b286593f43acdee268ef4d5c486c97f8","0419f6e89f3035f15fe0df6e6e053d91eb43bc4f7063c01336d89eec61e1ea31","e2a6e4dd4d8dc74d35a7f3bbfaca0472b1fe9090e6faa09448d8bb699939e46d","fddec208588cb642b5b3cd1d5a70aa5c660c1e8e95ac48addb8aa38e2f26844d","0df0bc1c5e7c158db2fadddefb0f72a350924d8398d77aec9419c7edb2da4241","90e64a10e065ff9389d7757713ee16f217a8ee6ad1f58fb3d1543255fae2b6c5","af179747caf739e601a3edf812cce3475f817cf101dea8e4b662d6d985367656","e2d2b1fbc4b553daf07be1f99057de961c45b9efa93681dbf7b157bd93066fc4","b690af8c88637b9915f8bac6a0ee71de4926c38c97e18e0902dd80b343229917","855e0a36485de2554ad4896e0c77ff2285b8c30be2dfc78cc0476411f50cecff","00dd02e79d805e0300e2e9509959e37d6b3b4a534628662437f17a7186e21b7a","5c7cd937040e87873ca01cfbcce583fa1be087e8e6ff718f6b7e777a0a1495ff","310b22a679f7201ec13f3ea6daf0d537990afd3be6c5970cf20a8afa921b9315","cadd536bb0aa775ae0739cd512b624c9f90e2fe6efc861fe3708abbebdaaf794","3002d221213e4881fa804fec6b2ddf435e0c0f8c19e2131cf8ae5db8ec3b21d8","85516f5ca08eff8a8e7c031202b0cfae8ad3f986ffb8defdbb48c147b8f10f15","74a8c4d7af296dea13c32c1263d65241b1ca6ea22860a6fac7b68279539f8226","b14dc9277153f26256adb0fbae6b45c9fd120a4d1d96fefebac59e7801925459","05fa461e18634a4cc887ca90215ac0095419bf5afd04e1628ce51d61636dfd03","fc6b41a01af6e1d001fedc34eabf6d2c7483be5c0a0c7522ee46edda87f21bec","0a649e071bbe0aee7feb809cd7dae8ad55b92c6e09e1403bd07bb4194a3fe6f4","644f9a9f3dabbc92db70150fedf8f7709c663dee94adf54a229924802fd1ee55","7bf300919a70d87cd820be691f91ddbd8ee1fe213c39d639d5c32f28f7e0bba8","9fba7a1bf11fad7fda1b5a8068854eedee9c005964452deaa7c0cc4b05698ebf","7835f6efdc176803e362ed5ba67bbadc2eb872527159c55e5645a0ece9786d7c","419db3b5d56de49a509f837e321960523f0cc1d3bb37b7b18333a1f121c69076","00a2131114eddfa723cd9f69b6aeb7d671c637599020d67b4d6ca533f6f716a8","4e7c0134edd334de68d2668fc1a1adc718e15a0acf859cbe69627d199788f2a3","dcead289e6ae3e6c25364ca77f714720032aaf6c2524416334e8ea5401c1f199","fb9f03026b17b8a54bd14a99ba6f9308795366070c13872b3e51ba5417e5b540","5359adc2b85d3028780ed564439eecd78e66b1cf8133a0bdd731808d662e7e63","2de31a5be7702f3dc917c48fc4fffc95a227aa0a1a6a465741186b4607c8394e","a0fa0602bc1cdbbe7cee8a4ad911ca6121440cd156a852151d88c9ee9839fd9c","3194496d88f2ae169fa6dc4785e519bc46c8ff749e0494e7869b98a333d524f4","dac174cddd8d4244f02cd4eb745b6c90cc1b4548a7ecf3e7e24e83a195f6ee38","acb17944ba5fb88da142411a247d7e17ad6e0aa2e846b4e8a409ef187cd6d1e8","56a6902fdcca6c287c40bc0c5859d1ebc5ea0dc18988a296116a3a6fe6dfe518","63fc017225a2a3da326abf1620e0aec95fcc778bac06609186255794e4569767","4add33de85170cb7beb03b92f245ad531ccd4e644f94408920a814d7259ac6ef","2eff215c0bf89368c948feff7d68d99b96e4d7d3fabb4461fc891bee6f53c56b","f80fa78e2a8706b519cff7e63c3897db7bbe8281398c3d865cac5d4f10688a5e","a585e7fce445d81fc500099a1408e5939916bcd4e64bbc77925c4f041ef829ee","8f2e0ac4f082fc661745affedbe858b9b65af4469c03e467b05d1a3efc233070","0e007c4a2461e85f3e5a3edbc152dc81ac2cd33a55a26f5cfe055d9492f91721","62f9b6f2c3e35d0b5b9ee04b1be03702092a1da85ea836ba7c1e7f7438fd980a","696af3999940599e7dc14a1eced4f128baee4a3cc79ab1422e02b6c6a76fa59a","e388ce93422740ed6e5ff60f4e70e9bfa41175ed353835ec5ffa610b57bd8dfb","c74448c6ad0b791eb727c032822bf5f46b5598144ada9953ccf336e064a9b04c","5a6c433af128b4c280ff2d5694df39f562d9e39e1526fce13b6927cd669e61c4","0200a55190733e3b5be0e8370bdbbe2f61b9f0799350640dfa4041c49c6a81b8","0d4db689b3c2536776c3363242e01c3e97b446b8cb37027fb41c5d9d4183db19","b12839a77591a84fb66ce906b8947e18fe858a00fecae5340b09f02b76c99740","e7a84d6e8e43819c5c6c688a195294112f88cfb6e65bfcdc5265b608413f303a","0c1e196d68392ccb814d385c270a577230e7350b4eef01a93bf497ec4baa513c","59a792b84d0a3874c4779260e08bd396cafe23f30df4ea5de32908558f5892d7","92c133641a49f519ff7ceb20d988d5c28873cdc84dca96f5f5a954f7a0739d03","df344e2d79c49a6636bbdd87faa8a4a79ec1226defc49d52aa8550134aac8a26","79c477a2d4626e7d1fc4e281ff53618b65ac1d2d79d8df8ede051e792340ca9c","d31fa5597aed0deaa4e19c29acb9c202a25e267fd38510a02b10d01b4f28e270","4d79716fc99dbeef5a66ddee95724c9754286a928e26a493b7babb4446fb1a89","040bd14fe19ce7f9a6c17e2d5720734fe0987e6b32e5bff416f5534bca82ddea","034379e81288207757834a975b3d7d844f712f896e2f185303050ddfb30ce6e0","720632d014cc3474a9e8444ff9e02c4f05f2a4d6e2754b653fbc5e5173059858","0c373b2b48be6c6455255622107c78042ed4ca2618b842e1099828802ae5891c","f9f7beba5adb3872e352dc2ea7211435df7bab7d98562b1d65676b6e1c7cc3a3","42a43e87c01fd76573880adb08cd5e0acbbd07350b9e39c5418da0afe3241fc1","22a19578f29ef8d592d86f055460a98a758f137b0699f197149dd9f5319fda7f","602b7724ff9646f1cd487d767e0d8ede210387dfb2bb0488418f6fcd1f2c05af","5ca6be4bc24f5bdd8cede7b520f89b02f5fc5d5e3bc86828a262f03ce2e3cd91","356badc5a13abcc77f98677167a88f5dfe3aa35182ee91b10ea408fbc1bf41f0","7f11edc9797519421830ba399b73b83a55e855e10dc42aa972495d48bf25e3de","ab245952a1c8897558aa06a82f7f2ac2bcb75a490ddc6d02028df37b1d5aa2b5","7b6ef507a95a762a00d0489cc7b841766fa6e53704d3c4231d4c508b3d132cd0","abf53d5d55dd0cf68472d23e8d30fb49c49a55943483af655417bed11be2c99a","c2cdf4fa283f12bd62dcf692c3c6d1cb9ddf053100218bac9f19febcd333bc27","e22dfdc770697af64e90fe31540ea26a9a9b18826a98597f442edb11c5ff0f84","fd958b2ca0014e983f1bafa3e51dcd694f6018e5ff8ad7cab174d810b5bc6f1b","4a7026f6dd0f35517257ab3832465acd5a2e9be01df10cfe0986d0de43013de4","5a9440b913c61f768e894d83513336d13aa9af39e7097904b53956a56f0f48d4","f8fb99b872e5f923e7c0369acf00f454a6031df47499623f6d4967f90ff50529","a4c36a648e698aaead82f45e1493f7bf9e46bb8135924b94d154e5876d685a4f","1a0dff37773b1a0d5cc00bfe79b8f527035fca6a3b613538139ab32dd0b025e7","64c5495a156397579c584aee0a0d4b5472f76c16f4ce98571b6ca60047fb5a5e","dd699a3fa51837bcc67d557ce9744092349fad37ae969372e205b44f036e1603","c29251d0b62469784102f1ab3551d72ed5f3d07c0b1272c90bc3eb9679391a39","b46099e61b1302eb018fd531ee2e1f075a3f23a937abe6f746bb303d7d9ef8e0","ca1ad0861318917efcbb68bc9e635e0e621b7a9f90eb79b272e6033f496403c2","6a8514447d27f6f00d335c5693730361482b1dd25480fe8a067b2258992cef48","84f7e06a8e76cb2ff2aab408d5da3b968eea2e9b3d800dbe48a3567bffd570d8","26eafc5412197fdb2215bc8b863735774a992dc8c62f47e4d1899ece98ab523b","4b735527df2276b73002306adf2455c29cb1fdee2d16dea92cf32ce72af84239","a58e76b5aab6e54d6b23c344d014cafe032ed3a892eddd4f00ecd903dec9ee3f","1cb101d4a54e3a2df99abc5ba6dd5dec38977fce66fb5eea4965afb5657bc2b7","dfe092078299d358a4558af95df48457635b0104d49dffbbc11a0ece4c96b963","591c06954684b9316bf4dca53d18419e35102b84008f2d4d48fb1cfa5f7e4c6f","afaf69006521dbcbb0733f959082b97eebb7d075ba0828079eaf064a5270dd8f","4f05164c112da761c244ceb71f3952a954c8e9c6fbfa1813d83d1e9c2ed7cd35","f551901beb5097639f1d0154dde974138959a616db689068c58ce798272063ce","7945b1de31097278b7f06694845b156e02d6660dc150ce14a79f6448eb4d3018","713bed8d7f5fcf90b42f4e320904d4b03dd938cf3eb5aef2ec1deda0078ee5a9","d90e5c547bf67402669bd0ce539ec8991214541990af6ae8ed773d3db8c8dfe5","09663c0a2ef16ed6e91e8a64ce31d79959c01e03fe4fd724f559deffd83c06f8","268eb87fefb81726da63333e04c96b3001b6acac281fc43b3dbcfefd2175b050","3dd90bfc99e84b69fd60ab028a684a0ef87240f87ac97abd42b6af196af64f22","3b54aa8d1989deb00dfade055f510846bb85833d937fc0f014e83d7928f12388","89582bbda194c18b2334b82933fb9c1d405be9ef5d38be8b43a68c3ecfb327c5","6e06b8e90283c45c63c82c388d982073fbc6b3e622e427efbb2d13fd0f55f044","9a08f79a0c57d52d0bfceddd84b8202aae1c6253147658dc06b3c1d57b81dee2","bd2604c35c36f87cb80d5c5cb2132f4ff84bd2c4a1247c749a04e5516a38b98f","ee36f80000ebfd86daf36e6f392cba2dd83dce2a1fc69bdf2c8ac43c37059ab8","c640b71a12fc0c58d232c9e62eb52a98ee0da98ecac2fbd0753252eb19481bad","a8e3c41c2d412224104ce907c39ee71aa9efbaadbe23b817d3198dbff5192822","39101657e47e61aaa92aa2375df73ad52530704bfe970925303b388c2a8c3e95","21ce7472186e6209abb3788d1620c780d2a7418bd8709686ad2854ad612d6674","ec3568a265c301df865e77ed5e22afbbb134de3a9cd96ffd77110868abfebdcc","fff19d5faaa892aa397a89f787c59b475f65b0837ec0acb3f607e6ee16c1c9e8","f69470adc2c94eb01180dda5f5a41a00d589582c5038b12c53967c13986cdba6","3031a2fc31a6b55d4bf552cfb5ec0ff9a133c1957c0bb58882315f52789658fc","ca9c0728ddc24aec1eb0d03bb5c602a5dd032d6317a5d4911b438fcbecb3795d","ab4deae88090ed4e5303998092c98796ecbb444d422aea3b34920f7f808c141d","20756103a62b91f7914419e00b6e52d4018b31fcdec109f69784998ed524c595","6acbf4ffdf6f90022713116e68f7248a18f2220dc2b5862bf26d31f033a6b0b3","bd1beac21671a1fddff7248b3b5ba3f9b82b64eb5233c100e9fc9ca98d918e15","91eb823fb70a4dfcfb5b620e8f12335b8ace4fc19426a97c8194089472dd0f42","f38212d1bc0de14792d2eb005c05b32f5af24feb53ede349a78d756a8da6980e","c5b43d31c92ca18b1465d0377882671d8d0de286d4687dec64839b95aab2f942","ae63a27c563432d8ba757e70d394c954399d1d83202b013828dba956a7af5334","ad2626feb145b42cad4d57196e5069328feebf78bc93e2f2c065fd6edf0a7e07","45066e22afb11f872b96ed69130ff66934ea86088b3f78c9a6b806d42fc828cd","379ce8225448e9d1891b0fb5c60250209ae38e50dff5489940f0da5f438bd19e","e991cc9f3dc29b23b95e7b4d9b0dd913eccdaf88674f49dd375738d15b59a10a","a259c7314128ef4fbf294fb406d916ce9d90569092a91163290dcac951d7542c","437354b539882bfd28752390e3f3e845f996b6b9ff0d1ed44929f083b5daa8d2","7aee9fc04fad7f3c547e241e605abd031c13df7e87fd61d31ec4f0506705e2f8","a87063d31b8b5ec4f4647020fc71d97e1a7385c07803baf50854d02e1f1fad7d","1de38d3c82e4032e3096e4312b7570434d3121b9e3dcbbbd885afa149410850d","16fe8dd49ba76eee1462fe4f08a309e0ec617324ae48dd755b6482cf943875fe","fb53283ef098bc440a2e70c4cb191a8abe05a7d963d86155e8231f2684bd0144","878294de540da7144d18bc77351ff0ac318fe732202b8fed8b1018f77727903f","a35a2363f51536a3a7f05b56c2e82f53b312a7d7f2aae5bc8ed62ee73cec9f0d","3f78f2bedbb4fc8707f1926c6b711a12a01ec50a8c869c2d12ed041fb440f353","dc772a925dc1cb6f34b00bbe61f579e6d6fb9b4e74e9170ec3202a9bf017d9bd","fb32c3efa40238a0ff201db219fec51892307851b44722485183a8c28dabcfe3","4950f8a1162aab89eadaf961b0b5c2ba3c1b06c625731c33c6a9c305b8ff8b50","51aa816c6922090a19fb97686f6e6c28342cde666c4f23c5756747cb68145da8","a4df5aaf360ad68b031dfbc4f71e623ca8f02aaab2ec55acd6771a80d563725c","4b0cc71f0e6940f40e1e61aaec7a548bf597ae1c9651a53f835407eb99c9e6b4","57c4e6fd835f5686bd388c1a1509f4085192cb1613945a892ec97afc6f1cdf4f","e5e4a1c754a492833d8eacc3bfa911dcbf8ea07d62224f8dbaacd52171979d09","69582f47f5f5bcbb63285ba6d6faecee8d2da323f4267251948f24c06cf5722d"],"root":[838,1021],"options":{"inlineSources":true,"module":99,"noEmitOnError":false,"noImplicitAny":false,"noImplicitThis":true,"outDir":"../../../../dist/dev/.uvue/app-android","rootDir":"../../../../dist/dev/.tsc/app-android","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildInfo","useDefineForClassFields":false},"fileIdsList":[[848,853],[865],[46,48,50,833,834],[958,962],[844,846],[842,847],[46,48,50,833,834,856,857,858,859,861,862,863,892],[856],[860],[46,48,50,833,834,866,867,868],[864,869,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891],[46,48,50,833,834,856],[46,48,50,833,834,840,845,854,855,894,895,896,897,898,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,970,972,977,979,982,985,988,991,993,996,999,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020],[46,48,50,833,834,899],[46,48,50,833,834,853,899],[849,899],[893],[46,48,50,833,834,893],[46,48,50,833,834,865],[848,893],[848,849,893],[46,48,50,833,834,870,871,872],[46,48,50,833,834,865,963,964,965,968,975,986,987],[46,48,50,833,834,846,848,958,960,962,963,964,968,975,992],[46,48,50,833,834,848,865,961,963,964,968,997,998],[46,48,50,833,834,865,963,964,965,968,975,983,984],[46,48,50,833,834,865,866,960,963,964,965,967,968,969],[46,48,50,833,834,963,964,968,1000,1001],[46,48,50,833,834,865,963,964,965,968,975,989,990],[46,48,50,833,834,865,963,964,965,968,975,980,981],[46,48,50,833,834,846,848,849,865,963,971],[46,48,50,833,834,846,963,964,968,994,995],[46,48,50,833,834,866,963,964,965,968,973,974,975,976],[46,48,50,833,834,848,865,958,963,964,965,968,975,978],[46,48,50,833,834,847,848,853,899],[46,48,50,833,834,848,899],[46,48,50,833,834,848],[46,48,50,833,834,849,899],[46,48,50,833,834,848,853],[46,48,50,833,834,848,849],[848,849,853],[46,48,50,833,834,848,849,853],[46,48,50,833,834,849],[842,848],[849],[848],[848,850],[46,48,50,833,834,842,848,849,853],[46,48,50,833,834,847,848,849,853],[46,48,50,833,834,848,852],[958,959],[961,966],[961],[975],[969],[841,842],[841,843],[848,849],[46,48,50,833,834,848,849,850,851,852],[844,847,848],[845],[46,48,50,832,833,834],[593,607,828,831,833,834,835,836],[519,526],[592],[511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591],[514,515,516,517,518,520,522,524,525,527],[565],[526,530],[567],[586],[521],[527],[520,526,537],[526,535],[514,515,516,517,518,522,526,527,535,536],[566],[526],[535,536,537,582],[518,527,568,571],[513,518,523,528,535,563,564,568,569],[523,526],[570],[528],[517,526],[526,527],[526,537],[525,526,535,536,537],[530],[46,48,50,524,832,833],[830],[829],[608,609,760,797,804,823,825,827],[826],[824],[611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,745,747,749,751,753,755,757,759],[610],[612],[614],[616],[620],[622],[624],[626],[628],[630],[632],[634],[636],[638],[640],[642],[644],[646],[648],[650],[652],[654],[656],[658],[660],[662],[664],[666],[668],[670],[672],[674],[676],[678],[680],[682],[684],[686],[688],[690],[692],[694],[696],[698],[700],[702],[704],[706],[708],[710],[712],[714],[716],[718],[720],[722],[724],[726],[728],[730],[732],[734],[736],[738],[740],[742],[744],[746],[748],[750],[752],[754],[756],[758],[762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796],[761],[763],[765],[767],[769],[771],[787],[791],[793],[795],[799,801,803],[798],[301,453],[800],[802],[806,808,810,812,814,816,818,820,822],[821],[813],[809],[807],[819],[811],[815],[805],[817],[530,537],[606],[594,595,596,597,598,599,600,601,602,603,604,605],[537],[530,537,590],[506,507,508,509],[505],[453],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],[839],[44],[44,45,46,48],[41,48,49,50],[42],[41,46,48,833,834],[45,46,47,50,833,834],[29,30,31,32,33,34,35,36,37,38,39],[33],[36],[33,35],[67,68],[198],[198,201,390,462],[201],[196,329,390,453,472,473],[51,63,66,79,173,175,185,188,191,196,252,255,274,278,280,281,282,299,301,316,329,340,342,344,345,346,366,369,387,390,440,452,453,455,456,463,464,467,468,469,470,474,476,482,484,485,486,487,488,493,494,497,498,499,502,503,504],[66,252,281,282,496,505],[66,67,68,274,439,440],[274],[66,79,99,175,274,329,340,342,344,346,366,369,390,453,468,474,475,476,485,505],[51,66,67,68,80,173,196,201,252,255,282,328,342,344,345,369,390,440,453,455,462,466,467,468,505],[51,66,173,390,453,469,473],[390,469],[51,66,173,454],[66,67,68,102,253,254,255,440,453],[67,68,107,500,501],[67,68,173,302,316],[68,108,174,390,453],[66,185,316,440,453,505],[66,67,68,453,505],[67,68,453],[52,66,440,453],[67,68,69,255,274,310,438,440,453],[63,67,68],[252],[281],[51,66,173,231,232,252,267,268,273,274,278,279,280,282,453],[66,231,232,274,278,279,280,283,304],[66,67,68,274],[57,60,61,66,231,232,274,275,278,279,280,283,301,302,303,304,305,306,307,308,309,453],[61,66,101,102,172,185,196,203,204,234,248,249,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452],[273],[61,66,101,102,172,185,203,204,234,252,253,255,273,274,281,301,310,313,319,321,328,329,375,440,441,448,450,451,452,453,495],[79],[65,66,67,68,107,185,196,265,274,310,319,328,439,453],[67,68,97,254,266,274,310,312,440],[66,67,68,102,253,254,440,453],[51,173,275,453],[67,68,323],[67,68,97,257],[67,68,97,319,320,453],[263],[67,97,320,321],[67,68,260],[67,68,263],[67,68,320],[67,68,256,258,259,260,261,262,263,264,265,268,269,321],[58,60,61,63,67,68,70,102,253,255,272,274,301,315,316,440],[66,67,97,233,319,329],[66,67,68,107,172,185,233,250,251,252,253,254,255,256,258,260,264,265,268,270,271,272,313,314,315,317,318,321,328,329,440],[67,266],[67,68,319,320],[67,68,97,257,266,267],[67,68,97,258,265,268,313,319,329],[67,68,262],[51,58,66,67,68,164,203,204,231],[61,232,233],[67,68,328],[67,68,71],[232],[325],[58,231,322,324,453],[61,66,196,232,233,234,245,246,247,248,249,252,321,326,327,329],[245,247,248,328,329],[196],[52,185],[67,68,306],[66,67,68,306],[274,311],[66,67,68,185],[66,67,68,186],[102,274],[58,66,274,275,276,277,310],[450],[58],[278],[172,278,279,280,442,444,445,446,447,448,449],[442],[443],[231,443],[60,67,68,87,140,174,240,246,284,287,289,299,300],[236,289,301],[72,107,108,174,180,236,240,241,285,286,288,294,297,298,300,301],[61,72,106,107,181,196,239,247,248,296,299,328],[67,68,72,99,102,248,274,301,329,453],[71,108,148,172,231,234,240,328],[241],[67,68,301],[67,68,107],[108,173],[174],[108,140,143,287],[61,240,299],[107,108,181,240,299,301],[107,180],[71,72,107,180,235,236,237,238,239,245],[108,174],[299],[72,107,108,174,180,181,240,241,286,288,294,297,299,300,301],[67,68,106],[67,68,107,180],[72,107,236,239,291,301],[107,174,240,292,295,296],[236,287,290],[102],[107,240,293],[51,172,234,242,243,244],[82,83,84],[82,83],[89,93],[89],[89,95],[87,88,89,91,92,94,96,102],[67,68,179],[90],[65],[66,67,68,274,301],[67,68,301,478,479],[66,67,68,73,79,102,274,316,453,477,478,480,481],[66,67,68],[67,68,172],[63],[52,54,57,62,63,64,65,67,68],[68,75],[97,99,101],[51,53,67],[52],[67,68,70],[97,100],[60,61],[66,67,68,98,102],[51],[52,67,68,99,102],[51,52,53,54,55,56,57,63,64,65,66],[67],[51,58,67,68,102,172,203,204,205,212,230],[60,61,62,67,68],[66,67,68,102],[67,68,73],[68],[73,74,75],[74,76,77],[395],[391],[390,391,392,393],[240],[180,196,453],[390,453,462],[107,196,198,201,390,453,462,465],[462,463,466],[246],[67,68,365],[366],[57,66,67,68,107,179,181,182,390],[66,183],[68,183,390],[67,68,71,107,181,183],[107,342,344,345,390],[342,343,390,453],[196,197,199,453],[196,199,200,390,453],[107,181,350,352],[67,68,390],[66,67,68,191],[106,184,190,192,390],[66,67,68,274,439],[329,344,390],[234,252,328,453,496],[67,68,107,246,284,371,372,373,374],[106,107,180],[376],[67,68,180],[67,68,69,439],[67,68,76,78,81,85,86,103],[68,104],[66,67,68,71,97,336,337],[66,79,102,108,280,336,355,356,357,358,359,360,361,362,363],[67,68,69,274],[358],[336],[67,68,79,80],[67,68,81,105],[196,390,453,462],[79,185,343,440],[344,453],[72,248,329,341,343,390,440],[67,68,105,174],[334,390],[67,68,301,328,453],[67,68,371],[107,280,384],[107,371,383],[104],[329,342,344,390],[67,68,107,299,382],[58,67,68,87,107,181,351],[105],[66,67,68,71,390,394,396,437],[107,175,390],[67,68,388],[390],[67,68,184,330],[52,54,66,67,68,72,79,102,107,174,175,181,183,184,187,188,189,193,194,195,196,200,202,240,248,249,252,292,299,301,328,329,331,332,333,334,335,338,340,346,349,353,354,364,366,367,368,369,370,371,375,377,380,381,385,386,387,389,439,453],[54,66,79,107,175,181,183,190,196,197,249,252,299,340,346,366,368,371,380,381,387,389,390,453,457,458,459,460,461],[329],[66,107,340,346,366,369,371,390],[66,71,174,184,187,188,189],[52,66,79,102,105,107,175,249,252,274,329,340,342,344,346,353,366,385,390,453,463,466,468,476,482,483,484],[57,106,107,372,378,379],[106,199,380],[106],[347],[199,280,348],[52,67,68,101,350,352,375,390,458,489,490,491,492],[107,380],[277,390,462],[390,462,471],[68,175,196,329,342,344,453,462],[339],[65,112,113,171],[51,61,164,172],[51,60,164,172],[58,60],[58,59],[60,109,172],[110,207],[58,110,207,208,209,229],[65,206],[207],[110],[58,110,207,209,212,216,218],[58,60,61,111,207,213],[51,60,61,110,207,209,214],[215],[65,112],[61,65,111,113],[140,141,142,143,144,145,146,147],[93],[148,152,157,160,161,163,171],[150,153],[110,148,151,154,155,209,211,219,224,226,228,230],[148,149,150,151,152,153,154,156,157,159,163,171],[93,162,164],[148,150],[206,207,228],[206,207,211,227],[93,110,209],[150,151,153,154,224,226],[93,148],[148,153],[148,155],[93,159,220,221,224],[220,225],[58,224],[110,209,211,213,217,224,226],[110,148,151,154,155,209,211,212,224,226],[93,158],[220,221,224,225],[221],[220,221,222,224,226],[93,210,213,218,219,223,229],[140,141],[136],[135],[136,137],[58,116,138,139,169,171],[113,114,115,116,117,170,172],[171],[60,61,113,117,152,156,157,162,164,165,166,167,168,170,171],[115,116],[114],[58,115],[140,148],[129,131,132],[65,120,122],[65,124,125],[65,112,123,126],[131],[65,128],[65,129],[134],[127,129,130,135],[61],[121],[65,124],[65,424],[65,405,425,426],[400,411,423],[176,177,178,398,401,403,404,409,410,420,423,428],[176,177,178,398,401,403,404,420,422,423,428,430,433,434],[397,400,402,404,409,410,411,412,421,422,430,433,434,436],[176,177,178,411,423],[176,177,178,398,401,402,403,404,420,421,423,428,430,433,434],[176,397,398,401,402,403,404],[65,400,402,404,409,410,411,412,413,414,416,418,419,421,422,430,433,434,436,437],[179,430,434,435],[65,176,177,178],[399,400,401,403,404,405,406,423,427,434],[65,176,177,178,398,401,402,403,404,429,433,434,436,437],[179,430,434,436],[65,176,177,178,398,401,402,403,404,407,408,409,410,411,415,417,418,420,421,423,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,408,411,415,419,420,421,422,428,429,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,407,416,419,428,430,433,434,436],[65,176,177,178,398,401,402,403,404,407,408,415,416,419,420,428,430,433,434,436,437],[65,176,177,178,398,401,402,403,404,419,420,428,429,430,433,434,436],[65,176,177,178,409,417,419,423],[401,402,403],[176],[176,177],[176,177,400,402,404],[404],[176,179],[65,401],[65,179,416,430,433],[65,179,416,430,431,433],[65,176,177,178,398,401,402,403,404,408,411,415,416,419,420,421,422,428,429,430,433,434,436],[65,397,404,432,433],[65,176,398,401,402,403,404,432,434],[65,118,119,133]],"referencedMap":[[854,1],[867,2],[866,2],[965,3],[870,2],[868,2],[973,2],[963,4],[872,2],[871,2],[847,5],[848,6],[893,7],[857,8],[858,8],[861,9],[864,3],[869,10],[892,11],[863,12],[1021,13],[908,14],[906,14],[905,15],[907,14],[909,16],[1006,3],[894,17],[1011,18],[1012,18],[1014,18],[1013,18],[1005,18],[888,3],[889,3],[886,3],[891,3],[887,19],[890,3],[1004,18],[882,3],[880,3],[884,3],[879,3],[883,3],[885,3],[881,3],[1009,20],[1010,21],[1008,18],[1003,18],[1007,18],[876,3],[877,3],[875,3],[874,3],[878,3],[873,22],[988,23],[993,24],[999,25],[985,26],[970,27],[1002,28],[991,29],[982,30],[972,31],[996,32],[977,33],[979,34],[920,14],[919,14],[929,14],[940,14],[939,14],[931,35],[921,14],[916,14],[917,14],[918,14],[926,14],[925,36],[924,14],[923,14],[922,14],[937,14],[914,16],[938,14],[930,3],[928,14],[927,14],[913,14],[910,37],[915,38],[936,14],[935,39],[933,37],[932,37],[934,40],[911,14],[912,14],[941,41],[942,1],[944,41],[948,3],[943,42],[949,3],[947,3],[946,43],[956,44],[950,45],[1015,46],[1016,45],[1017,43],[1019,43],[1020,45],[851,47],[904,3],[903,3],[895,44],[900,14],[902,3],[897,3],[855,48],[901,49],[896,50],[958,46],[960,51],[986,52],[962,53],[967,52],[997,53],[983,52],[1000,46],[989,52],[980,52],[994,46],[961,46],[974,52],[992,54],[976,55],[843,56],[844,57],[852,58],[853,59],[899,60],[846,61],[833,62],[837,63],[520,64],[593,65],[592,66],[526,67],[566,68],[589,69],[568,70],[587,71],[522,72],[521,73],[585,74],[530,73],[564,75],[537,76],[567,77],[527,78],[583,79],[581,73],[580,73],[579,73],[578,73],[577,73],[576,73],[575,73],[574,73],[573,80],[570,81],[572,73],[524,82],[528,73],[571,83],[563,84],[562,73],[560,73],[559,73],[558,85],[557,73],[556,73],[555,73],[554,73],[553,86],[552,73],[551,73],[550,73],[549,73],[547,87],[548,73],[545,73],[544,73],[543,73],[546,88],[542,73],[541,78],[540,89],[539,89],[538,87],[534,89],[533,89],[532,89],[531,89],[529,84],[834,90],[831,91],[830,92],[828,93],[827,94],[825,95],[760,96],[611,97],[613,98],[615,99],[617,100],[621,101],[623,102],[625,103],[627,104],[629,105],[631,106],[633,107],[635,108],[637,109],[639,110],[641,111],[643,112],[645,113],[647,114],[649,115],[651,116],[653,117],[655,118],[657,119],[659,120],[661,121],[663,122],[665,123],[667,124],[669,125],[671,126],[673,127],[675,128],[677,129],[679,130],[681,131],[683,132],[685,133],[687,134],[689,135],[691,136],[693,137],[695,138],[697,139],[699,140],[701,141],[703,142],[705,143],[707,144],[709,145],[711,146],[713,147],[715,148],[717,149],[719,150],[721,151],[723,152],[725,153],[727,154],[729,155],[731,156],[733,157],[735,158],[737,159],[739,160],[741,161],[743,162],[745,163],[747,164],[749,165],[751,166],[753,167],[755,168],[757,169],[759,170],[797,171],[762,172],[764,173],[766,174],[768,175],[770,176],[772,177],[788,178],[792,179],[794,180],[796,181],[804,182],[799,183],[798,184],[801,185],[803,186],[823,187],[822,188],[814,189],[810,190],[808,191],[820,192],[812,193],[816,194],[806,195],[818,196],[594,197],[607,198],[606,199],[600,197],[601,197],[595,197],[596,197],[597,197],[598,197],[599,197],[603,200],[604,201],[602,200],[510,202],[506,203],[507,204],[28,205],[840,206],[47,3],[45,207],[46,208],[838,209],[43,210],[50,211],[48,212],[40,213],[35,214],[34,214],[37,215],[36,216],[39,216],[306,217],[201,218],[460,219],[202,220],[474,221],[505,222],[503,223],[456,224],[464,225],[486,226],[469,227],[504,228],[473,229],[455,230],[316,231],[502,232],[494,217],[501,233],[467,234],[488,235],[487,236],[273,237],[451,238],[439,239],[69,240],[281,241],[282,242],[185,237],[283,243],[305,244],[304,245],[310,246],[279,217],[453,247],[495,248],[496,249],[475,250],[440,251],[313,252],[255,253],[454,254],[191,217],[323,217],[324,255],[265,256],[321,257],[315,258],[259,217],[250,217],[257,259],[269,217],[261,260],[260,217],[318,261],[264,262],[251,217],[270,263],[317,264],[320,265],[319,266],[267,267],[271,268],[256,268],[268,269],[314,270],[258,256],[262,217],[263,271],[272,217],[232,272],[234,273],[248,274],[252,275],[322,276],[326,277],[325,278],[328,279],[249,280],[233,281],[441,282],[303,217],[309,283],[307,284],[311,225],[312,285],[186,286],[187,287],[275,288],[278,289],[448,290],[442,291],[446,292],[450,293],[443,294],[445,295],[447,291],[444,296],[301,297],[290,298],[299,299],[329,300],[302,301],[241,302],[242,303],[289,304],[106,305],[174,306],[298,307],[288,308],[327,309],[286,310],[296,311],[240,312],[180,313],[300,314],[371,217],[295,315],[107,316],[108,305],[181,317],[292,318],[297,319],[291,320],[236,307],[382,321],[293,217],[294,322],[245,323],[374,217],[87,217],[83,217],[85,324],[84,325],[82,217],[373,217],[94,326],[95,327],[96,328],[103,329],[351,330],[90,327],[91,331],[70,332],[73,217],[479,333],[480,334],[478,217],[482,335],[477,336],[274,337],[62,338],[66,339],[77,340],[102,341],[52,342],[53,343],[71,344],[101,345],[88,346],[99,347],[100,348],[98,349],[67,350],[68,351],[231,352],[266,217],[63,353],[481,354],[253,217],[74,355],[75,356],[76,357],[78,358],[396,359],[392,360],[394,361],[391,362],[465,363],[463,364],[466,365],[484,366],[64,217],[247,367],[354,217],[366,368],[367,369],[183,370],[333,371],[365,372],[182,373],[346,374],[341,375],[200,376],[199,218],[461,377],[197,307],[353,378],[184,379],[189,217],[192,380],[193,381],[334,382],[369,383],[497,384],[375,385],[378,386],[376,217],[377,387],[379,388],[470,217],[387,389],[104,390],[105,391],[359,217],[360,217],[338,392],[355,217],[363,217],[364,393],[357,394],[362,395],[336,217],[361,240],[356,396],[81,397],[79,398],[468,399],[344,400],[345,401],[342,402],[175,403],[335,404],[368,405],[372,406],[385,407],[384,408],[476,409],[343,410],[383,411],[352,412],[491,413],[438,414],[386,415],[389,416],[330,336],[388,344],[332,417],[331,418],[390,419],[462,420],[458,417],[459,421],[457,422],[190,423],[485,424],[370,217],[380,425],[381,426],[347,427],[348,428],[349,429],[493,430],[492,431],[471,432],[472,433],[499,434],[350,217],[340,435],[489,217],[172,436],[203,437],[204,438],[61,439],[60,440],[173,441],[109,440],[208,442],[230,443],[207,444],[206,445],[111,446],[217,447],[212,448],[110,332],[215,449],[216,450],[113,451],[112,452],[148,453],[161,454],[162,455],[155,456],[93,291],[229,457],[164,458],[163,459],[151,460],[158,454],[227,461],[228,462],[211,463],[210,464],[153,465],[154,466],[156,467],[225,468],[221,469],[220,470],[218,471],[213,472],[159,473],[226,474],[222,475],[223,476],[224,477],[150,465],[144,478],[142,478],[137,479],[136,480],[138,481],[168,291],[170,482],[171,483],[139,484],[169,485],[114,486],[115,487],[116,488],[146,478],[145,478],[147,478],[149,489],[143,478],[133,490],[123,491],[124,332],[126,492],[127,493],[132,494],[121,332],[129,495],[130,496],[135,497],[131,498],[120,499],[122,500],[125,501],[425,502],[427,503],[414,504],[411,505],[421,506],[423,507],[409,508],[422,509],[410,510],[417,511],[436,512],[179,513],[428,514],[430,515],[435,516],[419,517],[416,518],[420,519],[429,520],[407,521],[418,522],[404,523],[398,524],[178,525],[401,526],[403,527],[177,528],[402,529],[431,530],[432,531],[437,532],[434,533],[433,534],[134,535]],"exportedModulesMap":[[854,1],[867,2],[866,2],[965,3],[870,2],[868,2],[973,2],[963,4],[872,2],[871,2],[847,5],[848,6],[893,7],[857,8],[858,8],[861,9],[864,3],[869,10],[892,11],[863,12],[1021,13],[908,14],[906,14],[905,15],[907,14],[909,16],[1006,3],[894,17],[1011,18],[1012,18],[1014,18],[1013,18],[1005,18],[888,3],[889,3],[886,3],[891,3],[887,19],[890,3],[1004,18],[882,3],[880,3],[884,3],[879,3],[883,3],[885,3],[881,3],[1009,20],[1010,21],[1008,18],[1003,18],[1007,18],[876,3],[877,3],[875,3],[874,3],[878,3],[873,22],[988,23],[993,24],[999,25],[985,26],[970,27],[1002,28],[991,29],[982,30],[972,31],[996,32],[977,33],[979,34],[920,14],[919,14],[929,14],[940,14],[939,14],[931,35],[921,14],[916,14],[917,14],[918,14],[926,14],[925,36],[924,14],[923,14],[922,14],[937,14],[914,16],[938,14],[930,3],[928,14],[927,14],[913,14],[910,37],[915,38],[936,14],[935,39],[933,37],[932,37],[934,40],[911,14],[912,14],[941,41],[942,1],[944,41],[948,3],[943,42],[949,3],[947,3],[946,43],[956,44],[950,45],[1015,46],[1016,45],[1017,43],[1019,43],[1020,45],[851,47],[904,3],[903,3],[895,44],[900,14],[902,3],[897,3],[855,48],[901,49],[896,50],[958,46],[960,51],[986,52],[962,53],[967,52],[997,53],[983,52],[1000,46],[989,52],[980,52],[994,46],[961,46],[974,52],[992,54],[976,55],[843,56],[844,57],[852,58],[853,59],[899,60],[846,61],[833,62],[837,63],[520,64],[593,65],[592,66],[526,67],[566,68],[589,69],[568,70],[587,71],[522,72],[521,73],[585,74],[530,73],[564,75],[537,76],[567,77],[527,78],[583,79],[581,73],[580,73],[579,73],[578,73],[577,73],[576,73],[575,73],[574,73],[573,80],[570,81],[572,73],[524,82],[528,73],[571,83],[563,84],[562,73],[560,73],[559,73],[558,85],[557,73],[556,73],[555,73],[554,73],[553,86],[552,73],[551,73],[550,73],[549,73],[547,87],[548,73],[545,73],[544,73],[543,73],[546,88],[542,73],[541,78],[540,89],[539,89],[538,87],[534,89],[533,89],[532,89],[531,89],[529,84],[834,90],[831,91],[830,92],[828,93],[827,94],[825,95],[760,96],[611,97],[613,98],[615,99],[617,100],[621,101],[623,102],[625,103],[627,104],[629,105],[631,106],[633,107],[635,108],[637,109],[639,110],[641,111],[643,112],[645,113],[647,114],[649,115],[651,116],[653,117],[655,118],[657,119],[659,120],[661,121],[663,122],[665,123],[667,124],[669,125],[671,126],[673,127],[675,128],[677,129],[679,130],[681,131],[683,132],[685,133],[687,134],[689,135],[691,136],[693,137],[695,138],[697,139],[699,140],[701,141],[703,142],[705,143],[707,144],[709,145],[711,146],[713,147],[715,148],[717,149],[719,150],[721,151],[723,152],[725,153],[727,154],[729,155],[731,156],[733,157],[735,158],[737,159],[739,160],[741,161],[743,162],[745,163],[747,164],[749,165],[751,166],[753,167],[755,168],[757,169],[759,170],[797,171],[762,172],[764,173],[766,174],[768,175],[770,176],[772,177],[788,178],[792,179],[794,180],[796,181],[804,182],[799,183],[798,184],[801,185],[803,186],[823,187],[822,188],[814,189],[810,190],[808,191],[820,192],[812,193],[816,194],[806,195],[818,196],[594,197],[607,198],[606,199],[600,197],[601,197],[595,197],[596,197],[597,197],[598,197],[599,197],[603,200],[604,201],[602,200],[510,202],[506,203],[507,204],[28,205],[840,206],[47,3],[45,207],[46,208],[838,209],[43,210],[50,211],[48,212],[40,213],[35,214],[34,214],[37,215],[36,216],[39,216],[306,217],[201,218],[460,219],[202,220],[474,221],[505,222],[503,223],[456,224],[464,225],[486,226],[469,227],[504,228],[473,229],[455,230],[316,231],[502,232],[494,217],[501,233],[467,234],[488,235],[487,236],[273,237],[451,238],[439,239],[69,240],[281,241],[282,242],[185,237],[283,243],[305,244],[304,245],[310,246],[279,217],[453,247],[495,248],[496,249],[475,250],[440,251],[313,252],[255,253],[454,254],[191,217],[323,217],[324,255],[265,256],[321,257],[315,258],[259,217],[250,217],[257,259],[269,217],[261,260],[260,217],[318,261],[264,262],[251,217],[270,263],[317,264],[320,265],[319,266],[267,267],[271,268],[256,268],[268,269],[314,270],[258,256],[262,217],[263,271],[272,217],[232,272],[234,273],[248,274],[252,275],[322,276],[326,277],[325,278],[328,279],[249,280],[233,281],[441,282],[303,217],[309,283],[307,284],[311,225],[312,285],[186,286],[187,287],[275,288],[278,289],[448,290],[442,291],[446,292],[450,293],[443,294],[445,295],[447,291],[444,296],[301,297],[290,298],[299,299],[329,300],[302,301],[241,302],[242,303],[289,304],[106,305],[174,306],[298,307],[288,308],[327,309],[286,310],[296,311],[240,312],[180,313],[300,314],[371,217],[295,315],[107,316],[108,305],[181,317],[292,318],[297,319],[291,320],[236,307],[382,321],[293,217],[294,322],[245,323],[374,217],[87,217],[83,217],[85,324],[84,325],[82,217],[373,217],[94,326],[95,327],[96,328],[103,329],[351,330],[90,327],[91,331],[70,332],[73,217],[479,333],[480,334],[478,217],[482,335],[477,336],[274,337],[62,338],[66,339],[77,340],[102,341],[52,342],[53,343],[71,344],[101,345],[88,346],[99,347],[100,348],[98,349],[67,350],[68,351],[231,352],[266,217],[63,353],[481,354],[253,217],[74,355],[75,356],[76,357],[78,358],[396,359],[392,360],[394,361],[391,362],[465,363],[463,364],[466,365],[484,366],[64,217],[247,367],[354,217],[366,368],[367,369],[183,370],[333,371],[365,372],[182,373],[346,374],[341,375],[200,376],[199,218],[461,377],[197,307],[353,378],[184,379],[189,217],[192,380],[193,381],[334,382],[369,383],[497,384],[375,385],[378,386],[376,217],[377,387],[379,388],[470,217],[387,389],[104,390],[105,391],[359,217],[360,217],[338,392],[355,217],[363,217],[364,393],[357,394],[362,395],[336,217],[361,240],[356,396],[81,397],[79,398],[468,399],[344,400],[345,401],[342,402],[175,403],[335,404],[368,405],[372,406],[385,407],[384,408],[476,409],[343,410],[383,411],[352,412],[491,413],[438,414],[386,415],[389,416],[330,336],[388,344],[332,417],[331,418],[390,419],[462,420],[458,417],[459,421],[457,422],[190,423],[485,424],[370,217],[380,425],[381,426],[347,427],[348,428],[349,429],[493,430],[492,431],[471,432],[472,433],[499,434],[350,217],[340,435],[489,217],[172,436],[203,437],[204,438],[61,439],[60,440],[173,441],[109,440],[208,442],[230,443],[207,444],[206,445],[111,446],[217,447],[212,448],[110,332],[215,449],[216,450],[113,451],[112,452],[148,453],[161,454],[162,455],[155,456],[93,291],[229,457],[164,458],[163,459],[151,460],[158,454],[227,461],[228,462],[211,463],[210,464],[153,465],[154,466],[156,467],[225,468],[221,469],[220,470],[218,471],[213,472],[159,473],[226,474],[222,475],[223,476],[224,477],[150,465],[144,478],[142,478],[137,479],[136,480],[138,481],[168,291],[170,482],[171,483],[139,484],[169,485],[114,486],[115,487],[116,488],[146,478],[145,478],[147,478],[149,489],[143,478],[133,490],[123,491],[124,332],[126,492],[127,493],[132,494],[121,332],[129,495],[130,496],[135,497],[131,498],[120,499],[122,500],[125,501],[425,502],[427,503],[414,504],[411,505],[421,506],[423,507],[409,508],[422,509],[410,510],[417,511],[436,512],[179,513],[428,514],[430,515],[435,516],[419,517],[416,518],[420,519],[429,520],[407,521],[418,522],[404,523],[398,524],[178,525],[401,526],[403,527],[177,528],[402,529],[431,530],[432,531],[437,532],[434,533],[433,534],[134,535]],"semanticDiagnosticsPerFile":[842,854,867,866,[965,[{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticsdaterangepicker.uvue.ts","start":1791,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticsdaterangepicker.uvue.ts","start":2254,"length":22,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],870,868,[973,[{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticsregionmap.uvue.ts","start":2581,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticsregionmap.uvue.ts","start":2870,"length":31,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[963,[{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticssidebarmenu.uvue.ts","start":2619,"length":22,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticssidebarmenu.uvue.ts","start":3341,"length":48,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[964,[{"file":"../../../../dist/dev/.tsc/app-android/components/analytics/analyticstopbar.uvue.ts","start":755,"length":48,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],872,871,[847,[{"file":"../../../../dist/dev/.tsc/app-android/components/supadb/aksupa.uts.ts","start":9852,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."}]],848,[893,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/adminlayout.uvue.ts","start":2351,"length":27,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],[857,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminaside.uvue.ts","start":1036,"length":45,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],862,[859,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/components/adminheader.uvue.ts","start":119,"length":27,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],858,861,864,869,[892,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/router/admincomponentmap.uts.ts","start":3291,"length":1535,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 2 of 6, '(iterable?: Iterable any, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<...>, {}, {}, {}>]> | null | undefined): Map<...>', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Argument of type '([string, DefineComponent<{}, () => any, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<...>, {}, {}, {}>] | [...])[]' is not assignable to parameter of type 'Iterable any, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<...>, {}, {}, {}>]>'.","category":1,"code":2345}]}]},"relatedInformation":[]}]],[856,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/router/adminroutes.uts.ts","start":14730,"length":27,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/router/adminroutes.uts.ts","start":14857,"length":27,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/router/adminroutes.uts.ts","start":14634,"length":9,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: RouteRecord, index: number, array: RouteRecord[]) => value is RouteRecord, thisArg?: any): RouteRecord[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'boolean | undefined' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"Type 'undefined' is not assignable to type 'boolean'.","category":1,"code":2322}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: RouteRecord, index: number, array: RouteRecord[]) => boolean, thisArg?: any): RouteRecord[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'boolean | undefined' is not assignable to type 'boolean'.","category":1,"code":2322}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]}]],[863,[{"file":"../../../../dist/dev/.tsc/app-android/layouts/admin/store/adminnavstore.uts.ts","start":4162,"length":12,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: currentPage != '' 或 currentPage.length > 0","category":1,"code":110111120}]],860,[908,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/cart.uvue.ts","start":71,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[906,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/category.uvue.ts","start":69,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[905,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/index.uvue.ts","start":79,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[907,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/messages.uvue.ts","start":81,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[909,[{"file":"../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","start":25063,"length":16,"messageText":"Duplicate identifier 'getOrderShopName'.","category":1,"code":2300},{"file":"../../../../dist/dev/.tsc/app-android/pages/main/profile.uvue.ts","start":30553,"length":10,"messageText":"Duplicate identifier 'goToPoints'.","category":1,"code":2300}]],1006,894,[1011,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/coupon/list.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1012,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/coupon/receive.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1014,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/signin/record.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1013,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/marketing/signin/rule.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1005,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/order-management.uvue.ts","start":522,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/order-management.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],888,889,886,891,887,890,[1004,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/product-management.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],882,880,884,879,883,885,881,[1009,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/plan-management.uvue.ts","start":5793,"length":3,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: id != '' 或 id.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/plan-management.uvue.ts","start":12105,"length":29,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/plan-management.uvue.ts","start":12638,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/plan-management.uvue.ts","start":13124,"length":31,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[1010,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/user-subscriptions.uvue.ts","start":5875,"length":3,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: id != '' 或 id.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/user-subscriptions.uvue.ts","start":10972,"length":37,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/subscription/user-subscriptions.uvue.ts","start":11096,"length":46,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[1008,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/system-settings.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1003,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/user-management.uvue.ts","start":454,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/user-management.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[1007,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/admin/user-statistics.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],876,877,875,874,878,873,[988,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/coupon-analysis.uvue.ts","start":4626,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/coupon-analysis.uvue.ts","start":60,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[993,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":3229,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":3353,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6305,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: reportForm.period != '' 或 reportForm.period.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6374,"length":21,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: reportForm.chartType != '' 或 reportForm.chartType.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6451,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6451,"length":63,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6451,"length":84,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":6451,"length":108,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":7371,"length":28,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":7495,"length":30,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":7682,"length":30,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":7731,"length":25,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":12871,"length":36,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":13184,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":734,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/custom-report.uvue.ts","start":7104,"length":37,"messageText":"Expected 0 arguments, but got 1.","category":1,"code":2554}]],[999,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/data-detail.uvue.ts","start":68,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/data-detail.uvue.ts","start":385,"length":25,"messageText":"Module '\"@/services/analytics/dataDetailService.uts\"' has no exported member 'fetchDataDetailReportInfo'.","category":1,"code":2305},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/data-detail.uvue.ts","start":412,"length":19,"messageText":"Module '\"@/services/analytics/dataDetailService.uts\"' has no exported member 'fetchDataDetailRows'.","category":1,"code":2305}]],[985,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/delivery-analysis.uvue.ts","start":6052,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/delivery-analysis.uvue.ts","start":70,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[970,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":1676,"length":32,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":16130,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":77,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":4406,"length":5,"messageText":"Expected 1-2 arguments, but got 3.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":4913,"length":5,"messageText":"Expected 1-2 arguments, but got 3.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":5421,"length":5,"messageText":"Expected 1 arguments, but got 2.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":5933,"length":5,"messageText":"Expected 1 arguments, but got 2.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/index.uvue.ts","start":18669,"length":6,"messageText":"Cannot find name 'onShow'.","category":1,"code":2304}]],[1002,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":1445,"length":4,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: iid != '' 或 iid.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":3739,"length":8,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: timeStr != '' 或 timeStr.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":3888,"length":14,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":4039,"length":14,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":4231,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":4223,"length":36,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":4303,"length":17,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: relatedReport.id != '' 或 relatedReport.id.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":6377,"length":23,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":6559,"length":22,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":6765,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/insight-detail.uvue.ts","start":68,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[991,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/market-trends.uvue.ts","start":3453,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/market-trends.uvue.ts","start":78,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[982,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":3608,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":3650,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":3695,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":4706,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":4748,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":5947,"length":32,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":6680,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":7408,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":10183,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/product-insights.uvue.ts","start":70,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[972,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":3703,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":3745,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":3845,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":4446,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":5292,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":5378,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":8605,"length":33,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":9743,"length":33,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":13618,"length":12,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/profile.uvue.ts","start":13794,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[996,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","start":5766,"length":28,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","start":6386,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","start":6603,"length":25,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","start":10156,"length":22,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/report-detail.uvue.ts","start":68,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[977,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/sales-report.uvue.ts","start":6312,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/sales-report.uvue.ts","start":487,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[979,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":5876,"length":30,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":5930,"length":33,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":6924,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":7835,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":9920,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":10957,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":11012,"length":35,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/analytics/user-analysis.uvue.ts","start":610,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[920,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-edit.uvue.ts","start":70,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[919,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/address-list.uvue.ts","start":89,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[929,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/apply-refund.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],940,[939,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/bank-cards/index.uvue.ts","start":2688,"length":6,"messageText":"Cannot find name 'onShow'.","category":1,"code":2304}]],[931,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/chat.uvue.ts","start":14604,"length":13,"messageText":"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.","category":1,"code":2358}]],[921,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/checkout.uvue.ts","start":111,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],916,[917,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":787,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":953,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): this is { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/favorites.uvue.ts","start":5031,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FavoriteType\", \"pages/mall/consumer/favorites.uvue\", 67, 6> | undefined; id: string; name: string; price: number; main_image_url: string; merchant_id: string; selected: boolean; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]}]],[918,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1415,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1583,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): this is { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":1758,"length":5,"code":2345,"category":1,"messageText":"Argument of type 'Date' is not assignable to parameter of type 'string | number'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":3941,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => value is FootprintType, thisArg?: any): this is FootprintType[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":4378,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => value is FootprintType, thisArg?: any): this is FootprintType[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: FootprintType, index: number, array: FootprintType[]) => boolean, thisArg?: any): boolean', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":23899,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":25290,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":4744,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/footprint.uvue.ts","start":5462,"length":22,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => value is { ...; }, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]},{"messageText":"Overload 2 of 2, '(predicate: (value: { __$originalPosition?: UTSSourceMapPosition<\"FootprintType\", \"pages/mall/consumer/footprint.uvue\", 74, 6> | undefined; id: string; name: string; ... 8 more ...; merchant_id: string; }, index: number, array: { ...; }[]) => boolean, thisArg?: any): { ...; }[]', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type 'Boolean' is not assignable to type 'boolean'.","category":1,"code":2322,"next":[{"messageText":"'boolean' is a primitive, but 'Boolean' is a wrapper object. Prefer using 'boolean' when possible.","category":1,"code":2692}]}]}]},"relatedInformation":[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":30746,"length":51,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/hbuilderx-language-services/builtin-dts/uts-types/common/array.d.ts","start":32136,"length":48,"messageText":"The expected type comes from the return type of this signature.","category":3,"code":6502}]}]],[926,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/logistics.uvue.ts","start":61,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[925,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/order-detail.uvue.ts","start":84,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[924,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/orders.uvue.ts","start":102,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],923,922,937,[914,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/product-detail.uvue.ts","start":20022,"length":7,"messageText":"Cannot find name 'success'.","category":1,"code":2304}]],938,930,928,[927,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","start":60,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/review.uvue.ts","start":7989,"length":20,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'ChooseImageSuccess' to type 'UTSJSONObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'ChooseImageSuccess' is missing the following properties from type 'UTSJSONObject': get, set, getAny, getBoolean, and 6 more.","category":1,"code":2740}]}}]],[913,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","start":102,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/search.uvue.ts","start":6518,"length":18,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'Product' to type 'UTSJSONObject' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'Product' is missing the following properties from type 'UTSJSONObject': get, set, getAny, getBoolean, and 6 more.","category":1,"code":2740}]}}]],[910,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/settings.uvue.ts","start":66,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],915,936,935,[933,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/plan-detail.uvue.ts","start":61,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/plan-detail.uvue.ts","start":870,"length":6,"code":2339,"category":1,"messageText":"Property 'length' does not exist on type 'IterableIterator<[string, any]>'."}]],[932,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/plan-list.uvue.ts","start":703,"length":6,"code":2339,"category":1,"messageText":"Property 'length' does not exist on type 'IterableIterator<[string, any]>'."}]],[934,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/subscription/subscribe-checkout.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],[911,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/consumer/wallet.uvue.ts","start":67,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],912,954,[945,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/earnings.uvue.ts","start":9619,"length":9,"messageText":"Undefined is not supported https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111119","category":1,"code":110111119},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/earnings.uvue.ts","start":3515,"length":4,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'UTSJSONObject' is not assignable to parameter of type 'EarningType'.","category":1,"code":2345,"next":[{"messageText":"Type 'UTSJSONObject' is missing the following properties from type 'EarningType': id, date, source","category":1,"code":2739}]}},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/earnings.uvue.ts","start":10418,"length":13,"messageText":"'detail.amount' is possibly 'undefined'.","category":1,"code":18048}]],[955,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/feedback.uvue.ts","start":1368,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/feedback.uvue.ts","start":1377,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/feedback.uvue.ts","start":1487,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/feedback.uvue.ts","start":1496,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304}]],[953,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/help-center.uvue.ts","start":3514,"length":17,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.searchQuery != '' 或 this.searchQuery.length > 0","category":1,"code":110111120}]],[941,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":3789,"length":7,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: userId != '' 或 userId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":5448,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":6072,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":6156,"length":23,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":6365,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":6850,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":9465,"length":85,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":9573,"length":42,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":9980,"length":55,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10044,"length":50,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10163,"length":52,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10233,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10525,"length":30,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10575,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10627,"length":32,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":10681,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":13147,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":18460,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":4965,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":5557,"length":5,"messageText":"Expected 1 arguments, but got 4.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":5615,"length":9,"messageText":"Expected 1 arguments, but got 4.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":20015,"length":10,"code":2339,"category":1,"messageText":"Property 'avatar_url' does not exist on type 'DeliveryDriverType'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":22331,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":22473,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":22545,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":22996,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":23128,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":23178,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":23655,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":23789,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":23841,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":24077,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":24194,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":24314,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":24457,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":24756,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":25056,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":25358,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/index.uvue.ts","start":25660,"length":16,"messageText":"'_ctx.currentTask' is possibly 'null'.","category":1,"code":18047}]],[942,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":1300,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":3455,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":3497,"length":17,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":3542,"length":21,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":3586,"length":42,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4093,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4158,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4222,"length":63,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4327,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4395,"length":16,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":4443,"length":23,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5187,"length":21,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5235,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5290,"length":28,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5350,"length":38,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5938,"length":10,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5976,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6025,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6082,"length":17,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6131,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6187,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6261,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6315,"length":21,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6502,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":6575,"length":15,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":7068,"length":49,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":7166,"length":61,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":7272,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":7336,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":7404,"length":23,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":21060,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":21278,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":3386,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":5893,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19014,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19115,"length":13,"code":2339,"category":1,"messageText":"Property 'product_image' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19364,"length":12,"code":2339,"category":1,"messageText":"Property 'product_name' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19418,"length":18,"code":2339,"category":1,"messageText":"Property 'sku_specifications' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19584,"length":18,"code":2339,"category":1,"messageText":"Property 'sku_specifications' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19789,"length":5,"code":2339,"category":1,"messageText":"Property 'price' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-detail.uvue.ts","start":19889,"length":8,"code":2339,"category":1,"messageText":"Property 'quantity' does not exist on type 'never'."}]],[944,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":4799,"length":11,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":4778,"length":33,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":9101,"length":8,"code":2339,"category":1,"messageText":"Property 'order_no' does not exist on type 'DeliveryTaskType'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":9902,"length":14,"code":2339,"category":1,"messageText":"Property 'pickup_contact' does not exist on type 'DeliveryTaskType'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":9941,"length":14,"code":2339,"category":1,"messageText":"Property 'pickup_contact' does not exist on type 'DeliveryTaskType'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":10566,"length":16,"code":2339,"category":1,"messageText":"Property 'delivery_contact' does not exist on type 'DeliveryTaskType'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/order-history.uvue.ts","start":10607,"length":16,"code":2339,"category":1,"messageText":"Property 'delivery_contact' does not exist on type 'DeliveryTaskType'."}]],[948,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile-edit.uvue.ts","start":3086,"length":51,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile-edit.uvue.ts","start":1089,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile-edit.uvue.ts","start":1098,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304}]],[943,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":2041,"length":7,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: userId != '' 或 userId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":3232,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":3283,"length":9,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: driverId != '' 或 driverId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4269,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4320,"length":9,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: driverId != '' 或 driverId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4875,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4959,"length":23,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":5639,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":5690,"length":9,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: driverId != '' 或 driverId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":6499,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":6550,"length":9,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: driverId != '' 或 driverId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":7210,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":7411,"length":17,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":7503,"length":89,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":7503,"length":99,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":7663,"length":8,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: dateStr != '' 或 dateStr.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":8788,"length":31,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":8788,"length":37,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":9970,"length":59,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":559,"length":3,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ url: string; }' is not assignable to parameter of type 'NavigateBackOptions'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'url' does not exist in type 'NavigateBackOptions'.","category":1,"code":2353}]}},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":2681,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4386,"length":5,"messageText":"Expected 1 arguments, but got 4.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":4438,"length":9,"messageText":"Expected 1 arguments, but got 4.","category":1,"code":2554},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":15570,"length":17,"messageText":"'currentTask.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":15697,"length":17,"messageText":"'currentTask.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":16147,"length":17,"messageText":"'currentTask.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/profile.uvue.ts","start":16627,"length":17,"messageText":"'currentTask.value' is possibly 'null'.","category":1,"code":18047}]],[949,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/ratings.uvue.ts","start":305,"length":3,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ url: string; }' is not assignable to parameter of type 'NavigateBackOptions'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'url' does not exist in type 'NavigateBackOptions'.","category":1,"code":2353}]}}]],[957,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/settings.uvue.ts","start":3013,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/settings.uvue.ts","start":3022,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/settings.uvue.ts","start":3122,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/settings.uvue.ts","start":3131,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304}]],[947,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":2076,"length":40,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":2177,"length":8,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: dateStr != '' 或 dateStr.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":1413,"length":10,"code":2322,"category":1,"messageText":"Type 'UTSJSONObject' is not assignable to type 'null'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":2758,"length":6,"code":2339,"category":1,"messageText":"Property 'status' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":2866,"length":6,"code":2339,"category":1,"messageText":"Property 'status' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":3613,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":3740,"length":6,"code":2339,"category":1,"messageText":"Property 'status' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":3801,"length":6,"code":2339,"category":1,"messageText":"Property 'status' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4087,"length":14,"code":2339,"category":1,"messageText":"Property 'pickup_address' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4327,"length":16,"code":2339,"category":1,"messageText":"Property 'delivery_address' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4400,"length":8,"code":2339,"category":1,"messageText":"Property 'distance' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4637,"length":10,"messageText":"'task.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4753,"length":14,"code":2339,"category":1,"messageText":"Property 'estimated_time' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":4998,"length":10,"messageText":"'task.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":5120,"length":12,"code":2339,"category":1,"messageText":"Property 'delivery_fee' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":5368,"length":10,"messageText":"'task.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":5481,"length":10,"code":2339,"category":1,"messageText":"Property 'created_at' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":5733,"length":10,"messageText":"'task.value' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":6153,"length":6,"code":2339,"category":1,"messageText":"Property 'remark' does not exist on type 'never'."},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/task-detail.uvue.ts","start":6369,"length":10,"messageText":"'task.value' is possibly 'null'.","category":1,"code":18047}]],[946,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/tasks.uvue.ts","start":4720,"length":38,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/tasks.uvue.ts","start":618,"length":5,"messageText":"'query' is possibly 'null' or 'undefined'.","category":1,"code":18049},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/tasks.uvue.ts","start":3939,"length":11,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'UTSJSONObject' is not assignable to parameter of type '{ id: string; order_id: string; driver_id: string | null; pickup_address: UTSJSONObject; delivery_address: UTSJSONObject; distance: number | null; estimated_time: number | null; ... 7 more ...; updated_at: string; }'.","category":1,"code":2345,"next":[{"messageText":"Type 'UTSJSONObject' is missing the following properties from type '{ id: string; order_id: string; driver_id: string | null; pickup_address: UTSJSONObject; delivery_address: UTSJSONObject; distance: number | null; estimated_time: number | null; ... 7 more ...; updated_at: string; }': id, order_id, driver_id, pickup_address, and 11 more.","category":1,"code":2740}]}}]],[956,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","start":1482,"length":46,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","start":2623,"length":9,"messageText":"Undefined is not supported https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111119","category":1,"code":110111119},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","start":4793,"length":83,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","start":2035,"length":238,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'RequestTask' is not assignable to parameter of type 'Promise'.","category":1,"code":2345,"next":[{"messageText":"Type 'RequestTask' is missing the following properties from type 'Promise': then, catch, finally, [Symbol.toStringTag]","category":1,"code":2739}]}},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/test.uvue.ts","start":4368,"length":4,"code":2339,"category":1,"messageText":"Property 'auth' does not exist on type 'AkSupa'."}]],[951,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-add.uvue.ts","start":1069,"length":34,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.formData.plate_number.trim() != '' 或 this.formData.plate_number.trim().length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-add.uvue.ts","start":5342,"length":60,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-add.uvue.ts","start":481,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-add.uvue.ts","start":490,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304}]],[952,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-edit.uvue.ts","start":2658,"length":34,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.formData.plate_number.trim() != '' 或 this.formData.plate_number.trim().length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-edit.uvue.ts","start":6809,"length":60,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-edit.uvue.ts","start":2070,"length":26,"messageText":"Type 'UniEvent' is not generic.","category":1,"code":2315},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/delivery/vehicle-edit.uvue.ts","start":2079,"length":16,"messageText":"Cannot find name 'HTMLInputElement'.","category":1,"code":2304}]],950,[1015,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":3007,"length":34,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":3105,"length":35,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":3060,"length":16,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.merchantId != '' 或 this.merchantId.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":7617,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":7663,"length":32,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":7835,"length":34,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":8205,"length":31,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":8284,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":8371,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":8434,"length":37,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":8604,"length":38,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":9560,"length":8,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: timeStr != '' 或 timeStr.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":19006,"length":54,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":19456,"length":29,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":5430,"length":6,"messageText":"'status' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/merchant/index.uvue.ts","start":19461,"length":18,"code":2339,"category":1,"messageText":"Property 'sku_specifications' does not exist on type 'OrderItemType'."}]],1016,1017,1018,[1019,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/profile.uvue.ts","start":736,"length":19,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/profile.uvue.ts","start":4581,"length":35,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/profile.uvue.ts","start":4581,"length":41,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/profile.uvue.ts","start":6111,"length":53,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[1020,[{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":4757,"length":44,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":5022,"length":39,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":5336,"length":40,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":5591,"length":40,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":5779,"length":27,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":6101,"length":25,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":6517,"length":9,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":6511,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":7994,"length":28,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.responseContent.trim() != '' 或 this.responseContent.trim().length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":8619,"length":28,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: this.responseContent.trim() != '' 或 this.responseContent.trim().length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":12132,"length":37,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":15632,"length":17,"messageText":"'_ctx.relatedOrder' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":15762,"length":17,"messageText":"'_ctx.relatedOrder' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":15944,"length":17,"messageText":"'_ctx.relatedOrder' is possibly 'null'.","category":1,"code":18047},{"file":"../../../../dist/dev/.tsc/app-android/pages/mall/service/ticket-detail.uvue.ts","start":16069,"length":17,"messageText":"'_ctx.relatedOrder' is possibly 'null'.","category":1,"code":18047}]],851,850,904,903,895,[900,[{"file":"../../../../dist/dev/.tsc/app-android/pages/user/center.uvue.ts","start":50,"length":19,"messageText":"Cannot find module '@dcloudio/uni-app' or its corresponding type declarations.","category":1,"code":2307}]],902,897,855,[901,[{"file":"../../../../dist/dev/.tsc/app-android/pages/user/profile.uvue.ts","start":3881,"length":74,"messageText":"Expected 0-1 arguments, but got 2.","category":1,"code":2554}]],896,898,958,960,[986,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/couponanalysisservice.uts.ts","start":412,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],[962,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/customreportservice.uts.ts","start":1678,"length":26,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/customreportservice.uts.ts","start":1823,"length":24,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[967,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/dashboardservice.uts.ts","start":699,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],997,966,[983,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/deliveryanalysisservice.uts.ts","start":316,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],968,[1000,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","start":791,"length":18,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","start":904,"length":14,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","start":939,"length":16,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","start":979,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/insightdetailservice.uts.ts","start":1515,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],[989,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/markettrendsservice.uts.ts","start":439,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],[980,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","start":692,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","start":1837,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","start":2847,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","start":3852,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/productinsightsservice.uts.ts","start":4618,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],[994,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/reportdetailservice.uts.ts","start":1443,"length":19,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/reportdetailservice.uts.ts","start":4444,"length":20,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120}]],961,[974,[{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/salesreportservice.uts.ts","start":783,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/salesreportservice.uts.ts","start":2070,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/salesreportservice.uts.ts","start":3121,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101},{"file":"../../../../dist/dev/.tsc/app-android/services/analytics/salesreportservice.uts.ts","start":4080,"length":30,"messageText":"direct declaration of Object Literal Type is not supported. https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111101","category":1,"code":110111101}]],975,987,992,969,998,984,1001,990,981,971,995,976,978,849,[843,[{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":10200,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":10346,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."},{"file":"../../../../dist/dev/.tsc/app-android/uni_modules/ak-req/ak-req.uts.ts","start":10445,"length":6,"code":2550,"category":1,"messageText":"Property 'assign' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later."}]],844,841,865,845,[959,[{"file":"../../../../dist/dev/.tsc/app-android/utils/authredirect.uts.ts","start":163,"length":5,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120\n建议: path != '' 或 path.length > 0","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/utils/authredirect.uts.ts","start":1322,"length":40,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/utils/authredirect.uts.ts","start":1766,"length":40,"messageText":"Conditional statements must use boolean types https://doc.dcloud.net.cn/uni-app-x/uts/uts_diff_ts.html#UTS110111120","category":1,"code":110111120},{"file":"../../../../dist/dev/.tsc/app-android/utils/authredirect.uts.ts","start":290,"length":6,"code":2322,"category":1,"messageText":{"messageText":"Type 'string | null' is not assignable to type 'string'.","category":1,"code":2322,"next":[{"messageText":"Type 'null' is not assignable to type 'string'.","category":1,"code":2322}]}}]],852,853,899,846,833,832,837,565,520,516,517,514,593,591,592,526,566,590,589,568,535,536,519,515,586,587,522,521,518,585,584,530,564,537,567,527,582,583,581,580,579,578,577,576,575,574,573,570,572,524,569,528,571,563,562,561,560,559,558,557,523,556,555,554,553,552,551,550,549,547,548,545,544,543,546,525,542,541,540,539,538,534,533,532,531,529,588,513,512,511,834,835,831,830,829,608,609,828,827,826,825,824,760,611,610,613,612,615,614,617,616,619,618,621,620,623,622,625,624,627,626,629,628,631,630,633,632,635,634,637,636,639,638,641,640,643,642,645,644,647,646,649,648,651,650,653,652,655,654,657,656,659,658,661,660,663,662,665,664,667,666,669,668,671,670,673,672,675,674,677,676,679,678,681,680,683,682,685,684,687,686,689,688,691,690,693,692,695,694,697,696,699,698,701,700,703,702,705,704,707,706,709,708,711,710,713,712,715,714,717,716,719,718,721,720,723,722,725,724,727,726,729,728,731,730,733,732,735,734,737,736,739,738,741,740,743,742,745,744,747,746,749,748,751,750,753,752,755,754,757,756,759,758,797,762,761,764,763,766,765,768,767,770,769,772,771,774,773,776,775,778,777,780,779,782,781,784,783,786,785,788,787,790,789,792,791,794,793,796,795,804,799,798,801,800,803,802,823,822,821,814,813,810,809,808,807,820,819,812,811,816,815,806,805,818,817,836,594,607,606,605,600,601,595,596,597,598,599,603,604,602,510,506,507,508,509,1,16,2,28,3,26,4,5,17,18,6,20,21,19,27,7,8,9,10,11,12,13,14,24,25,22,23,15,[840,[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":145,"length":16,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_HOSTS' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":197,"length":15,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_PORT' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":246,"length":13,"code":2339,"category":1,"messageText":"Property 'UNI_SOCKET_ID' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":380,"length":27,"messageText":"Cannot find name '__registerWebViewUniConsole'.","category":1,"code":2304},{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/index.ts","start":454,"length":32,"code":2339,"category":1,"messageText":"Property 'UNI_CONSOLE_WEBVIEW_EVAL_JS_CODE' does not exist on type '{ NODE_ENV: \"development\" | \"production\"; }'."}]],[839,[{"file":"../../../../../../../hbuilderx/hbuilderx/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/src/runtime/app/socket.ts","start":1121,"length":19,"code":2578,"category":1,"messageText":"Unused '@ts-expect-error' directive."}]],47,45,46,44,838,42,43,50,49,48,41,40,31,35,32,33,34,37,36,38,39,30,29,306,201,460,202,198,474,505,503,456,464,486,469,504,473,455,316,502,494,501,467,488,487,273,451,439,69,281,282,185,283,305,304,310,279,453,495,496,475,440,313,255,454,191,323,324,265,321,315,259,250,257,269,261,260,318,264,251,270,317,320,319,267,271,256,268,314,258,262,263,272,232,234,248,252,322,326,325,328,249,233,441,452,303,309,307,308,311,312,186,187,276,275,278,448,277,442,446,450,443,445,447,444,449,301,290,72,299,287,239,284,329,302,285,241,242,244,243,289,106,238,174,298,288,327,286,296,240,180,237,300,371,295,107,108,181,292,297,291,236,382,293,294,245,235,86,374,87,83,85,84,82,373,89,94,95,96,92,103,351,90,91,70,73,479,480,478,482,477,274,62,66,280,77,102,52,53,71,101,88,99,100,98,188,67,68,231,266,63,481,253,74,75,76,78,337,396,395,392,394,393,391,465,463,466,484,254,80,56,196,246,194,97,195,500,57,64,54,55,247,354,366,367,183,333,365,182,346,341,200,199,461,197,353,184,189,490,192,193,334,369,497,375,378,376,377,379,470,387,483,104,105,359,360,338,355,363,358,364,357,362,336,361,356,81,79,468,344,345,342,175,335,368,372,385,384,476,343,383,352,491,438,386,389,330,388,332,331,390,462,458,459,457,190,485,370,380,381,347,348,349,493,492,471,472,499,350,339,340,498,489,58,172,51,203,204,59,61,205,60,173,65,109,208,230,207,206,219,111,217,212,110,215,216,209,214,113,112,140,148,141,161,162,155,93,160,229,164,163,151,158,227,228,211,210,153,154,156,225,221,220,218,213,159,226,222,223,224,150,144,142,166,157,137,136,138,167,168,165,170,117,152,171,139,169,114,115,116,146,145,147,149,143,133,123,124,126,127,132,128,121,129,130,135,119,118,131,120,122,125,425,424,426,427,405,414,411,421,423,409,422,410,417,413,436,415,179,428,399,406,400,397,430,435,419,416,420,408,429,407,418,412,176,404,398,178,401,403,177,402,431,432,437,434,433,134]},"version":"5.2.2"} \ No newline at end of file diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/007cab9e984472a51676d9241152865aeb365e5d b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/007cab9e984472a51676d9241152865aeb365e5d deleted file mode 100644 index a8468ba0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/007cab9e984472a51676d9241152865aeb365e5d +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, sei as _sei, n as _n, f as _f, gei as _gei, e as _e } from \"vue\";\nimport _imports_0 from '/static/images/default-product.png';\nimport { ref, reactive, onMounted, onUnmounted, nextTick } from 'vue';\nimport { supabaseService, ChatMessage } from \"@/utils/supabaseService\";\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { AkSupaRealtimeChannel } from \"@/components/supadb/aksupa\";\nimport { getCurrentUser } from \"@/utils/store\";\nclass UiChatMessage extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n viewId: { type: String, optional: false },\n type: { type: String, optional: false },\n content: { type: String, optional: false },\n time: { type: String, optional: false },\n msgType: { type: String, optional: false }\n };\n },\n name: \"UiChatMessage\"\n };\n }\n constructor(options, metadata = UiChatMessage.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.viewId = this.__props__.viewId;\n this.type = this.__props__.type;\n this.content = this.__props__.content;\n this.time = this.__props__.time;\n this.msgType = this.__props__.msgType;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'chat',\n setup(__props) {\n const messages = ref([]);\n const inputMessage = ref('');\n const inputFocus = ref(false);\n const showEmoji = ref(false);\n const scrollToView = ref('');\n const currentUserId = ref('');\n const merchantId = ref(''); // 商家ID\n const headerTitle = ref('在线客服');\n const merchantAvatar = ref('/static/default-shop.png'); // 商家头像\n const navPaddingTop = ref('30px'); // 默认值,包含状态栏高度+原有内边距\n const isInitialLoading = ref(true);\n let realtimeChannel = null;\n // 模拟表情列表\n const emojiList = ['😊', '😂', '🤣', '😍', '😘', '🥰', '😭', '😡', '👍', '👏', '🙏', '🎉', '❤️', '🔥', '⭐'];\n function scrollToBottom() {\n if (messages.value.length === 0)\n return null;\n // 获取最后一条消息的 ID\n const lastMsg = messages.value[messages.value.length - 1];\n const targetId = lastMsg.viewId;\n // 关键点:在 UVue 安卓端,直接连续赋值可能被合并。\n // 我们先清空 ID,然后在下一帧赋值,确保 scroll-view 监听到变化。\n scrollToView.value = '';\n // 延迟更久一点,确保安卓端列表排版彻底完成\n setTimeout(() => {\n scrollToView.value = targetId;\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:193', '[scrollToBottom] 发起滚动定位:', targetId);\n // 分级校准:针对长消息或渲染抖动导致的高度变化\n setTimeout(() => {\n scrollToView.value = '';\n setTimeout(() => {\n scrollToView.value = targetId;\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:200', '[scrollToBottom] 第一阶段校准:', targetId);\n }, 50);\n }, 500);\n // 最终深度校准(针对首屏数据较多时)\n setTimeout(() => {\n scrollToView.value = '';\n setTimeout(() => {\n scrollToView.value = targetId;\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:209', '[scrollToBottom] 最终校准:', targetId);\n }, 50);\n }, 1200);\n }, 300);\n }\n function getCurrentTime() {\n const now = new Date();\n const hours = now.getHours().toString().padStart(2, '0');\n const minutes = now.getMinutes().toString().padStart(2, '0');\n return `${hours}:${minutes}`;\n }\n function setupRealtimeSubscription() {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:223', '开始建立聊天实时订阅...');\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:224', '当前用户ID:', currentUserId.value, '商家ID:', merchantId.value);\n realtimeChannel = supa.channel('chat-messages-' + Date.now().toString())\n .on('postgres_changes', new UTSJSONObject({\n event: 'INSERT',\n schema: 'public',\n table: 'ml_chat_messages'\n }), (payload = null) => {\n var _a, _b, _c, _d, _g, _h;\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:232', '=== 收到实时订阅回调 ===');\n const payloadObj = (UTS.isInstanceOf(payload, UTSJSONObject)) ? payload : UTS.JSON.parse(UTS.JSON.stringify(payload !== null && payload !== void 0 ? payload : new UTSJSONObject({})));\n const newMsgAny = payloadObj.get('new');\n if (newMsgAny == null) {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:236', 'newMsgAny 为空,跳过');\n return null;\n }\n const newMsg = (UTS.isInstanceOf(newMsgAny, UTSJSONObject)) ? newMsgAny : UTS.JSON.parse(UTS.JSON.stringify(newMsgAny));\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:240', '收到新消息:', newMsg);\n const senderId = (_a = newMsg.getString('sender_id')) !== null && _a !== void 0 ? _a : '';\n const receiverId = (_b = newMsg.getString('receiver_id')) !== null && _b !== void 0 ? _b : '';\n const msgId = (_c = newMsg.getString('id')) !== null && _c !== void 0 ? _c : '';\n const content = (_d = newMsg.getString('content')) !== null && _d !== void 0 ? _d : '';\n const msgType = (_g = newMsg.getString('msg_type')) !== null && _g !== void 0 ? _g : 'text';\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:248', '=== 消息详情 ===');\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:249', '消息ID:', msgId);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:250', '发送者ID:', senderId);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:251', '接收者ID:', receiverId);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:252', '当前用户ID:', currentUserId.value);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:253', '商家ID:', merchantId.value);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:254', '消息内容:', content);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:255', '消息类型 msgType:', msgType);\n // 检查消息是否已经在列表中(避免重复)\n for (let i = 0; i < messages.value.length; i++) {\n if (messages.value[i].id == msgId) {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:260', '消息已存在,跳过');\n return null;\n }\n }\n // 判断消息类型\n const isMyMessage = (senderId == currentUserId.value);\n const isForMe = (receiverId == currentUserId.value);\n const isRelatedToCurrentChat = (senderId == merchantId.value || receiverId == merchantId.value);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:270', '=== 条件判断 ===');\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:271', 'isMyMessage:', isMyMessage);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:272', 'isForMe:', isForMe);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:273', 'isRelatedToCurrentChat:', isRelatedToCurrentChat);\n // 如果消息与当前聊天无关,跳过\n if (!isRelatedToCurrentChat) {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:277', '消息与当前聊天无关,跳过');\n return null;\n }\n // 如果是自己发送的消息,或者是发给自己的消息,都显示\n if (isMyMessage || isForMe) {\n const createdAt = (_h = newMsg.getString('created_at')) !== null && _h !== void 0 ? _h : new Date().toISOString();\n const date = new Date(createdAt);\n const timeStr = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n // 生成安全的 viewId\n const safeViewId = 'msg_' + msgId.replace(/[^a-zA-Z0-9]/g, '_');\n const incomingMsg = new UiChatMessage({\n id: msgId,\n viewId: safeViewId,\n type: isMyMessage ? 'sent' : 'received',\n content: content,\n time: timeStr,\n msgType: msgType\n });\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:299', '=== 添加新消息到列表 ===');\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:300', '消息类型:', incomingMsg.type);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:301', '消息内容:', incomingMsg.content);\n messages.value.push(incomingMsg);\n scrollToBottom();\n }\n else {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:305', '条件不满足,不添加消息');\n }\n })\n .subscribe((status, err = null) => {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:309', '订阅状态:', status);\n if (err != null) {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:311', '订阅错误:', err);\n }\n });\n }\n function loadChatHistory() {\n var _a, _b, _c, _d, _g;\n return __awaiter(this, void 0, void 0, function* () {\n let rawMsgs = [];\n if (merchantId.value != '') {\n rawMsgs = yield supabaseService.getChatMessages(merchantId.value);\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/chat.uvue:322', \"No merchant ID provided for chat\");\n return Promise.resolve(null);\n }\n // 确保时间顺序是升序(旧的在前,新的在后)\n // Supabase 返回的消息如果是降序,我们需要 reverse 过来显示\n const sortedRawMsgs = rawMsgs.sort((a, b) => {\n var _a, _b;\n const timeA = new Date((_a = a.created_at) !== null && _a !== void 0 ? _a : '').getTime();\n const timeB = new Date((_b = b.created_at) !== null && _b !== void 0 ? _b : '').getTime();\n return timeA - timeB;\n });\n const uiMessages = [];\n for (let i = 0; i < sortedRawMsgs.length; i++) {\n const m = sortedRawMsgs[i];\n const date = new Date((_a = m.created_at) !== null && _a !== void 0 ? _a : new Date().toISOString());\n const timeStr = `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n const sender = (_b = m.sender_id) !== null && _b !== void 0 ? _b : '';\n const msgType = (currentUserId.value != '' && sender == currentUserId.value) ? 'sent' : 'received';\n const rawId = ((_c = m.id) !== null && _c !== void 0 ? _c : '').toString();\n const msgId = rawId != '' ? rawId : Date.now().toString() + i.toString();\n const safeViewId = 'msg_' + msgId.replace(/[^a-zA-Z0-9]/g, '_');\n const uiMsg = new UiChatMessage({\n id: msgId,\n viewId: safeViewId,\n type: msgType,\n content: (_d = m.content) !== null && _d !== void 0 ? _d : '',\n time: timeStr,\n msgType: (_g = m.msg_type) !== null && _g !== void 0 ? _g : 'text'\n });\n uiMessages.push(uiMsg);\n }\n messages.value = uiMessages;\n if (isInitialLoading.value) {\n // 增加一点初始化延迟,等待 scroll-view 渲染就绪\n setTimeout(() => {\n scrollToBottom();\n isInitialLoading.value = false;\n }, 500);\n }\n });\n }\n function onScrollToUpper(e = null) {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:368', '[onScrollToUpper] 触发加载历史记录');\n }\n function loadMerchantInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n if (merchantId.value == '')\n return Promise.resolve(null);\n try {\n const response = yield supa\n .from('ml_shops')\n .select('shop_logo, shop_name')\n .eq('merchant_id', merchantId.value)\n .limit(1)\n .execute();\n if (response.error != null) {\n uni.__f__('error', 'at pages/mall/consumer/chat.uvue:383', '[loadMerchantInfo] 获取商家信息失败:', response.error);\n return Promise.resolve(null);\n }\n const rawData = response.data;\n if (rawData == null)\n return Promise.resolve(null);\n const rawList = rawData;\n if (rawList.length == 0)\n return Promise.resolve(null);\n const shopData = rawList[0];\n const shopObj = UTS.JSON.parse(UTS.JSON.stringify(shopData));\n const logo = shopObj.getString('shop_logo');\n if (logo != null && logo != '') {\n merchantAvatar.value = logo;\n }\n const name = shopObj.getString('shop_name');\n if (name != null && name != '' && headerTitle.value == '在线客服') {\n headerTitle.value = name;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/chat.uvue:406', '[loadMerchantInfo] 获取商家信息异常:', e);\n }\n });\n }\n // 生命周期\n onLoad((options = null) => {\n var _a, _b;\n // 动态获取状态栏高度\n const sysInfo = uni.getSystemInfoSync();\n const statusBarH = sysInfo.statusBarHeight;\n // 状态栏高度 + 10px 原有顶部内边距\n navPaddingTop.value = (statusBarH + 10) + 'px';\n const optObj = (UTS.isInstanceOf(options, UTSJSONObject)) ? options : UTS.JSON.parse(UTS.JSON.stringify(options !== null && options !== void 0 ? options : new UTSJSONObject({})));\n const mid = (_a = optObj.getString('merchantId')) !== null && _a !== void 0 ? _a : '';\n if (mid !== '') {\n merchantId.value = mid;\n }\n const mname = (_b = optObj.getString('merchantName')) !== null && _b !== void 0 ? _b : '';\n if (mname !== '') {\n headerTitle.value = mname;\n }\n });\n onMounted(() => {\n supabaseService.ensureSession().then((uid = null) => {\n if (uid != null) {\n currentUserId.value = uid;\n }\n else {\n getCurrentUser().then((user = null) => {\n var _a;\n if (user != null) {\n currentUserId.value = (_a = user.id) !== null && _a !== void 0 ? _a : '';\n }\n });\n }\n loadMerchantInfo();\n loadChatHistory();\n setupRealtimeSubscription();\n });\n });\n onUnmounted(() => {\n if (realtimeChannel != null) {\n supa.removeChannel(realtimeChannel);\n }\n });\n const sendMessage = () => { return __awaiter(this, void 0, void 0, function* () {\n const content = inputMessage.value.trim();\n if (content == '')\n return Promise.resolve(null);\n // 清空输入框\n inputMessage.value = '';\n // 发送消息时确保收起表情面板\n showEmoji.value = false;\n // 发送到 Supabase\n if (merchantId.value != '') {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:464', '[sendMessage] 开始发送消息到:', merchantId.value);\n const success = yield supabaseService.sendMessage(merchantId.value, content);\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:466', '[sendMessage] 发送结果:', success);\n if (!success) {\n uni.showToast({\n title: '发送失败',\n icon: 'none'\n });\n }\n // 不需要手动添加消息,等待实时订阅推送\n }\n }); };\n // 模拟客服回复 (已禁用,改用 Realtime)\n /*\n const simulateCustomerReply = async () => {\n // ...\n }\n */\n /* 移除不再使用的 simulateCustomerReply 和 addReceivedMessage */\n // 插入表情\n function insertEmoji(emoji) {\n inputMessage.value += emoji;\n showEmoji.value = false; // 选中表情后收起表情列表\n inputFocus.value = true;\n }\n // 显示表情选择器\n function showEmojiPicker() {\n showEmoji.value = !showEmoji.value;\n if (showEmoji.value) {\n // 如果打开表情,通常需要收起键盘\n uni.hideKeyboard();\n }\n }\n // 执行图片上传\n function doUploadImage(filePath) {\n return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:504', '[doUploadImage] 开始上传图片:', filePath);\n // 显示加载提示\n uni.showLoading({\n title: '发送中...',\n mask: true\n });\n try {\n // 上传图片\n const imageUrl = yield supabaseService.uploadChatImage(filePath);\n uni.hideLoading();\n if (imageUrl == '') {\n uni.showToast({\n title: '图片上传失败',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:526', '[doUploadImage] 图片上传成功:', imageUrl);\n // 发送图片消息\n const success = yield supabaseService.sendMessage(merchantId.value, imageUrl, 'image');\n if (!success) {\n uni.showToast({\n title: '发送失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/chat.uvue:538', '[doUploadImage] 上传异常:', e);\n uni.showToast({\n title: '上传失败',\n icon: 'none'\n });\n }\n });\n }\n // 显示图片选择器\n function showImagePicker() {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n success: (res) => {\n var _a, _b, _c;\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:551', '选择图片成功:', UTS.JSON.stringify(res));\n // 处理 tempFilePaths,兼容不同平台\n let filePath = '';\n const tempFilePaths = res.tempFilePaths;\n if (tempFilePaths != null) {\n if (Array.isArray(tempFilePaths)) {\n const arr = tempFilePaths;\n if (arr.length > 0) {\n filePath = arr[0];\n }\n }\n else if (UTS.isInstanceOf(tempFilePaths, UTSJSONObject)) {\n const keys = UTSJSONObject.keys(tempFilePaths);\n if (keys.length > 0) {\n filePath = (_a = tempFilePaths.getString(keys[0])) !== null && _a !== void 0 ? _a : '';\n }\n }\n else if (typeof tempFilePaths === 'string') {\n filePath = tempFilePaths;\n }\n }\n // 尝试从 tempFiles 获取\n if (filePath == '' && res.tempFiles != null) {\n const tempFiles = res.tempFiles;\n if (Array.isArray(tempFiles)) {\n const files = tempFiles;\n if (files.length > 0) {\n const firstFile = files[0];\n if (UTS.isInstanceOf(firstFile, UTSJSONObject)) {\n filePath = (_b = firstFile.getString('path')) !== null && _b !== void 0 ? _b : '';\n }\n else if (typeof firstFile === 'object' && firstFile != null) {\n const fileObj = UTS.JSON.parse(UTS.JSON.stringify(firstFile));\n filePath = (_c = fileObj.getString('path')) !== null && _c !== void 0 ? _c : '';\n }\n }\n }\n }\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:589', '[showImagePicker] 文件路径:', filePath);\n if (filePath == '') {\n uni.showToast({\n title: '获取图片路径失败',\n icon: 'none'\n });\n return null;\n }\n // 执行上传\n doUploadImage(filePath);\n },\n fail: (err) => {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:603', '选择图片失败:', err);\n uni.showToast({\n title: '选择图片失败',\n icon: 'none'\n });\n }\n }));\n }\n // 预览图片\n function previewImage(url) {\n uni.previewImage({\n urls: [url],\n current: url\n });\n }\n // 显示更多工具\n function showMoreTools() {\n uni.showActionSheet({\n itemList: ['发送位置', '发送文件', '发送语音'],\n success: (res) => {\n uni.__f__('log', 'at pages/mall/consumer/chat.uvue:625', '选择工具:', res.tapIndex);\n }\n });\n }\n // 显示更多操作\n function showMoreActions() {\n uni.showActionSheet({\n itemList: ['投诉客服', '结束对话', '清除记录'],\n success: (res) => {\n switch (res.tapIndex) {\n case 0:\n uni.navigateTo({ url: '/pages/mall/consumer/complaint' });\n break;\n case 1:\n uni.showModal(new UTSJSONObject({\n title: '确认结束',\n content: '确定要结束本次对话吗?',\n success: (res) => {\n if (res.confirm) {\n uni.navigateBack();\n }\n }\n }));\n break;\n case 2:\n uni.showModal(new UTSJSONObject({\n title: '确认清除',\n content: '确定要清除聊天记录吗?',\n success: (res) => {\n if (res.confirm) {\n messages.value = [];\n }\n }\n }));\n break;\n }\n }\n });\n }\n // 返回\n const goBack = () => {\n uni.navigateBack();\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(goBack),\n b: _t(headerTitle.value),\n c: _o(showMoreActions),\n d: navPaddingTop.value,\n e: _f(messages.value, (message, k0, i0) => {\n return _e({\n a: message.type === 'received'\n }, message.type === 'received' ? _e({\n b: merchantAvatar.value,\n c: _t(headerTitle.value),\n d: message.msgType == 'image'\n }, message.msgType == 'image' ? {\n e: message.content,\n f: _o($event => { return previewImage(message.content); }, message.id)\n } : {}, {\n g: message.msgType != 'image'\n }, message.msgType != 'image' ? {\n h: _t(message.content)\n } : {}, {\n i: _t(message.time)\n }) : _e({\n j: message.msgType == 'image'\n }, message.msgType == 'image' ? {\n k: message.content,\n l: _o($event => { return previewImage(message.content); }, message.id)\n } : {}, {\n m: message.msgType != 'image'\n }, message.msgType != 'image' ? {\n n: _t(message.content)\n } : {}, {\n o: _t(message.time),\n p: _imports_0\n }), {\n q: _sei(message.viewId, 'view'),\n r: message.id,\n s: _n(message.type)\n });\n }),\n f: scrollToView.value,\n g: _o(onScrollToUpper),\n h: _o(showEmojiPicker),\n i: _o(showImagePicker),\n j: _o(showMoreTools),\n k: inputFocus.value,\n l: _o(sendMessage),\n m: inputMessage.value,\n n: _o($event => { return inputMessage.value = $event.detail.value; }),\n o: inputMessage.value.trim() ? 1 : '',\n p: _o(sendMessage),\n q: showEmoji.value\n }, showEmoji.value ? {\n r: _f(emojiList, (emoji, k0, i0) => {\n return {\n a: _t(emoji),\n b: emoji,\n c: _o($event => { return insertEmoji(emoji); }, emoji)\n };\n })\n } : {}, {\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/chat.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.getSystemInfoSync","uni.showToast","uni.hideKeyboard","uni.showLoading","uni.hideLoading","uni.chooseImage","uni.previewImage","uni.showActionSheet","uni.navigateTo","uni.navigateBack","uni.showModal"],"map":"{\"version\":3,\"file\":\"chat.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"chat.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0341d2f72e1a46414a250f4da0a8f1a4f39ba2b8 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0341d2f72e1a46414a250f4da0a8f1a4f39ba2b8 deleted file mode 100644 index 83d284e7..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0341d2f72e1a46414a250f4da0a8f1a4f39ba2b8 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { rpcOrEmptyArray, rpcOrValue } from \"./rpc\";\nexport class CustomReportListItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n period: { type: String, optional: false },\n updated_at: { type: String, optional: false }\n };\n },\n name: \"CustomReportListItem\"\n };\n }\n constructor(options, metadata = CustomReportListItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.period = this.__props__.period;\n this.updated_at = this.__props__.updated_at;\n delete this.__props__;\n }\n}\nexport class CreateCustomReportParams extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n period: { type: String, optional: false },\n metrics: { type: \"Unknown\", optional: false },\n chartType: { type: String, optional: false }\n };\n },\n name: \"CreateCustomReportParams\"\n };\n }\n constructor(options, metadata = CreateCustomReportParams.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.period = this.__props__.period;\n this.metrics = this.__props__.metrics;\n this.chartType = this.__props__.chartType;\n delete this.__props__;\n }\n}\nexport class UpdateCustomReportParams extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n reportId: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: true },\n period: { type: String, optional: true }\n };\n },\n name: \"UpdateCustomReportParams\"\n };\n }\n constructor(options, metadata = UpdateCustomReportParams.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.reportId = this.__props__.reportId;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.period = this.__props__.period;\n delete this.__props__;\n }\n}\nfunction safeString(v = null) {\n return v != null ? `${v}` : '';\n}\n// 改造:不再直查 analytics_reports 表,统一通过 RPC 获取当前用户的报表列表\nexport function listCustomReports(ownerUserId) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n return __awaiter(this, void 0, void 0, function* () {\n // rpc_get_custom_reports 基于 auth.uid() 过滤,无需额外参数,这里保留签名用于兼容调用方\n const rows = yield rpcOrEmptyArray('rpc_get_custom_reports', {});\n const list = [];\n for (let i = 0; i < rows.length; i++) {\n const r = rows[i];\n list.push(new CustomReportListItem({\n id: safeString((_b = (_a = r.getAny) === null || _a === void 0 ? null : _a.call(r, 'id')) !== null && _b !== void 0 ? _b : (_c = r.getString) === null || _c === void 0 ? null : _c.call(r, 'id')),\n title: safeString((_e = (_d = r.getAny) === null || _d === void 0 ? null : _d.call(r, 'title')) !== null && _e !== void 0 ? _e : (_f = r.getString) === null || _f === void 0 ? null : _f.call(r, 'title')),\n description: safeString((_h = (_g = r.getAny) === null || _g === void 0 ? null : _g.call(r, 'description')) !== null && _h !== void 0 ? _h : (_j = r.getString) === null || _j === void 0 ? null : _j.call(r, 'description')),\n period: safeString((_l = (_k = r.getAny) === null || _k === void 0 ? null : _k.call(r, 'period')) !== null && _l !== void 0 ? _l : (_m = r.getString) === null || _m === void 0 ? null : _m.call(r, 'period')),\n updated_at: safeString((_p = (_o = r.getAny) === null || _o === void 0 ? null : _o.call(r, 'updated_at')) !== null && _p !== void 0 ? _p : (_q = r.getString) === null || _q === void 0 ? null : _q.call(r, 'updated_at'))\n }));\n }\n return list;\n });\n}\n// 改造:RPC 参数改为 p_definition(JSONB),承载 period/metrics/chartType\nexport function createCustomReport(params) {\n return __awaiter(this, void 0, void 0, function* () {\n const definition = new UTSJSONObject({\n period: params.period,\n metrics: params.metrics,\n chartType: params.chartType || 'line'\n });\n const data = yield rpcOrValue('rpc_create_custom_report', {\n p_title: params.title,\n p_description: params.description || '',\n p_definition: definition\n });\n if (data == null) {\n throw new Error('保存失败:未返回报表ID');\n }\n return `${data}`;\n });\n}\nexport function updateCustomReport(params) {\n return __awaiter(this, void 0, void 0, function* () {\n // 注意:旧 UI 只传 title/description/period,这里把 period 合并进 definition\n const definition = new UTSJSONObject({\n period: params.period\n });\n yield rpcOrValue('rpc_update_custom_report', {\n p_report_id: params.reportId,\n p_title: params.title,\n p_description: params.description,\n p_definition: definition\n });\n return true;\n });\n}\nexport function deleteCustomReport(reportId) {\n return __awaiter(this, void 0, void 0, function* () {\n yield rpcOrValue('rpc_delete_custom_report', {\n p_report_id: reportId\n });\n return true;\n });\n}\n//# sourceMappingURL=D:/companyproject/mall/services/analytics/customReportService.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"customReportService.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"customReportService.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/03e97e6b473468eee1f7569df2489f13fe5767e7 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/03e97e6b473468eee1f7569df2489f13fe5767e7 deleted file mode 100644 index de098d4c..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/03e97e6b473468eee1f7569df2489f13fe5767e7 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, watch } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass RefundStatusHistoryItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n status: { type: Number, optional: false },\n remark: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"RefundStatusHistoryItem\"\n };\n }\n constructor(options, metadata = RefundStatusHistoryItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.status = this.__props__.status;\n this.remark = this.__props__.remark;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass RefundProductInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n images: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false }\n };\n },\n name: \"RefundProductInfo\"\n };\n }\n constructor(options, metadata = RefundProductInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.images = this.__props__.images;\n delete this.__props__;\n }\n}\nclass RefundOrderItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n sku_specifications: { type: \"Any\", optional: true },\n price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n product: { type: RefundProductInfo, optional: true }\n };\n },\n name: \"RefundOrderItem\"\n };\n }\n constructor(options, metadata = RefundOrderItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_name = this.__props__.product_name;\n this.sku_specifications = this.__props__.sku_specifications;\n this.price = this.__props__.price;\n this.quantity = this.__props__.quantity;\n this.product = this.__props__.product;\n delete this.__props__;\n }\n}\nclass RefundOrderInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n created_at: { type: String, optional: false },\n order_items: { type: UTS.UTSType.withGenerics(Array, [RefundOrderItem]), optional: false }\n };\n },\n name: \"RefundOrderInfo\"\n };\n }\n constructor(options, metadata = RefundOrderInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.created_at = this.__props__.created_at;\n this.order_items = this.__props__.order_items;\n delete this.__props__;\n }\n}\nclass RefundType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n order_id: { type: String, optional: false },\n refund_no: { type: String, optional: false },\n refund_type: { type: Number, optional: false },\n refund_reason: { type: String, optional: false },\n refund_amount: { type: Number, optional: false },\n status: { type: Number, optional: false },\n status_history: { type: UTS.UTSType.withGenerics(Array, [RefundStatusHistoryItem]), optional: true },\n created_at: { type: String, optional: false },\n order: { type: RefundOrderInfo, optional: true }\n };\n },\n name: \"RefundType\"\n };\n }\n constructor(options, metadata = RefundType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.order_id = this.__props__.order_id;\n this.refund_no = this.__props__.refund_no;\n this.refund_type = this.__props__.refund_type;\n this.refund_reason = this.__props__.refund_reason;\n this.refund_amount = this.__props__.refund_amount;\n this.status = this.__props__.status;\n this.status_history = this.__props__.status_history;\n this.created_at = this.__props__.created_at;\n this.order = this.__props__.order;\n delete this.__props__;\n }\n}\nclass TabCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n processing: { type: Number, optional: false }\n };\n },\n name: \"TabCountsType\"\n };\n }\n constructor(options, metadata = TabCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.processing = this.__props__.processing;\n delete this.__props__;\n }\n}\nclass TimelineStepType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n status: { type: Number, optional: false },\n title: { type: String, optional: false },\n time: { type: String, optional: false },\n active: { type: Boolean, optional: false },\n completed: { type: Boolean, optional: false },\n desc: { type: String, optional: false }\n };\n },\n name: \"TimelineStepType\"\n };\n }\n constructor(options, metadata = TimelineStepType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.status = this.__props__.status;\n this.title = this.__props__.title;\n this.time = this.__props__.time;\n this.active = this.__props__.active;\n this.completed = this.__props__.completed;\n this.desc = this.__props__.desc;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'refund',\n setup(__props) {\n const activeTab = ref('all');\n const refunds = ref([]);\n const tabCounts = ref(new TabCountsType({\n processing: 0\n }));\n const isLoading = ref(false);\n const currentPage = ref(1);\n const pageSize = ref(15);\n const hasMore = ref(true);\n const getCurrentUserId = () => {\n var _a;\n return (_a = supabaseService.getCurrentUserId()) !== null && _a !== void 0 ? _a : '';\n };\n const resetData = () => {\n refunds.value = [];\n currentPage.value = 1;\n hasMore.value = true;\n };\n const loadRefunds = (loadMore) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u;\n if (isLoading.value || (!hasMore.value && loadMore)) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n const userId = getCurrentUserId();\n if (userId == '') {\n uni.navigateTo({\n url: '/pages/user/login'\n });\n return Promise.resolve(null);\n }\n const page = loadMore ? currentPage.value + 1 : 1;\n let statusList = [];\n if (activeTab.value === 'processing') {\n statusList = [1, 2];\n }\n else if (activeTab.value === 'completed') {\n statusList = [3, 4, 5];\n }\n const rawData = yield supabaseService.getRefunds(statusList, page, pageSize.value);\n const newRefunds = [];\n for (let i = 0; i < rawData.length; i++) {\n const item = rawData[i];\n const orderObjRaw = item.get('order');\n const orderObj = (orderObjRaw != null) ? orderObjRaw : (new UTSJSONObject());\n const dbItemsRaw = orderObj.get('ml_order_items');\n const dbItems = (dbItemsRaw != null) ? dbItemsRaw : [];\n const uiItems = [];\n for (let j = 0; j < dbItems.length; j++) {\n const di = dbItems[j];\n const imgRaw = di.get('image_url');\n const imgUrl = (imgRaw != null) ? imgRaw : '/static/default-product.png';\n const productInfo = new RefundProductInfo({\n images: [imgUrl]\n });\n const specRaw = di.get('specifications');\n const specifications = (specRaw != null) ? specRaw : null;\n const orderItem = new RefundOrderItem({\n id: (_a = di.getString('id')) !== null && _a !== void 0 ? _a : '',\n product_name: (_b = di.getString('product_name')) !== null && _b !== void 0 ? _b : '',\n sku_specifications: specifications,\n price: 0,\n quantity: (_c = di.getNumber('quantity')) !== null && _c !== void 0 ? _c : 1,\n product: productInfo\n });\n uiItems.push(orderItem);\n }\n const statusHistoryRaw = item.get('status_history');\n const statusHistory = (statusHistoryRaw != null) ? statusHistoryRaw : [];\n const refundItem = new RefundType({\n id: (_d = item.getString('id')) !== null && _d !== void 0 ? _d : '',\n user_id: (_g = item.getString('user_id')) !== null && _g !== void 0 ? _g : '',\n order_id: (_h = item.getString('order_id')) !== null && _h !== void 0 ? _h : '',\n refund_no: (_j = item.getString('refund_no')) !== null && _j !== void 0 ? _j : '',\n refund_type: (_k = item.getNumber('refund_type')) !== null && _k !== void 0 ? _k : 1,\n refund_reason: (_l = item.getString('refund_reason')) !== null && _l !== void 0 ? _l : '',\n refund_amount: (_m = item.getNumber('refund_amount')) !== null && _m !== void 0 ? _m : 0,\n status: (_p = item.getNumber('status')) !== null && _p !== void 0 ? _p : 1,\n status_history: statusHistory,\n created_at: (_q = item.getString('created_at')) !== null && _q !== void 0 ? _q : '',\n order: new RefundOrderInfo({\n id: (_r = item.getString('order_id')) !== null && _r !== void 0 ? _r : '',\n order_no: (_s = orderObj.getString('order_no')) !== null && _s !== void 0 ? _s : '',\n created_at: (_u = orderObj.getString('created_at')) !== null && _u !== void 0 ? _u : '',\n order_items: uiItems\n })\n });\n newRefunds.push(refundItem);\n }\n if (loadMore) {\n refunds.value.push(...newRefunds);\n currentPage.value = page;\n }\n else {\n refunds.value = newRefunds;\n currentPage.value = 1;\n }\n hasMore.value = newRefunds.length === pageSize.value;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/refund.uvue:261', '加载售后记录异常:', err);\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const loadTabCounts = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = getCurrentUserId();\n if (userId == '')\n return Promise.resolve(null);\n try {\n const processingRefunds = yield supabaseService.getRefunds([1, 2], 1, 100);\n tabCounts.value.processing = processingRefunds.length;\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/refund.uvue:275', '加载计数异常:', err);\n }\n }); };\n watch(activeTab, () => {\n resetData();\n loadRefunds(false);\n });\n onMounted(() => {\n loadRefunds(false);\n loadTabCounts();\n });\n const getStatusText = (status) => {\n if (status === 1)\n return '待处理';\n if (status === 2)\n return '处理中';\n if (status === 3)\n return '已完成';\n if (status === 4)\n return '已取消';\n if (status === 5)\n return '已拒绝';\n return '未知状态';\n };\n const getStatusClass = (status) => {\n if (status === 1)\n return 'status-pending';\n if (status === 2)\n return 'status-processing';\n if (status === 3)\n return 'status-completed';\n if (status === 4)\n return 'status-cancelled';\n if (status === 5)\n return 'status-rejected';\n return 'status-unknown';\n };\n // 获取商品图片\n const getProductImage = (refund) => {\n var _a, _b, _c, _d;\n const firstItem = (_b = (_a = refund.order) === null || _a === void 0 ? null : _a.order_items) === null || _b === void 0 ? null : _b[0];\n if (((_c = firstItem === null || firstItem === void 0 ? null : firstItem.product) === null || _c === void 0 ? null : _c.images) == null || ((_d = firstItem === null || firstItem === void 0 ? null : firstItem.product) === null || _d === void 0 ? null : _d.images.length) == 0) {\n return '/static/default-product.png';\n }\n return firstItem.product.images[0];\n };\n // 获取商品名称\n const getProductName = (refund) => {\n var _a, _b;\n const items = (_b = (_a = refund.order) === null || _a === void 0 ? null : _a.order_items) !== null && _b !== void 0 ? _b : [];\n if (items.length === 0)\n return '未知商品';\n if (items.length === 1) {\n return items[0].product_name;\n }\n else {\n return `${items[0].product_name}等${items.length}件商品`;\n }\n };\n // 格式化时间\n const formatTime = (timeStr = null) => {\n if (timeStr == null || timeStr == '')\n return '';\n const date = new Date(timeStr);\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n return `${month}-${day}`;\n };\n const getCurrentStepIndex = (status) => {\n if (status === 1)\n return 0;\n if (status === 2)\n return 1;\n if (status === 3)\n return 2;\n if (status === 4)\n return 0;\n if (status === 5)\n return 1;\n return 0;\n };\n const getTimelineSteps = (refund) => {\n var _a, _b, _c, _d;\n const steps = [\n new TimelineStepType({ status: 0, title: '提交申请', time: refund.created_at, active: false, completed: false, desc: '' }),\n new TimelineStepType({ status: 1, title: '商家处理', time: '', active: false, completed: false, desc: '' }),\n new TimelineStepType({ status: 3, title: '退款完成', time: '', active: false, completed: false, desc: '' })\n ];\n if (refund.status_history != null) {\n for (let i = 0; i < refund.status_history.length; i++) {\n const history_1 = refund.status_history[i];\n if (history_1.status === 1 || history_1.status === 2) {\n steps[1].time = (_a = history_1.created_at) !== null && _a !== void 0 ? _a : '';\n steps[1].desc = (_b = history_1.remark) !== null && _b !== void 0 ? _b : '';\n }\n else if (history_1.status === 3) {\n steps[2].time = (_c = history_1.created_at) !== null && _c !== void 0 ? _c : '';\n steps[2].desc = (_d = history_1.remark) !== null && _d !== void 0 ? _d : '';\n }\n }\n }\n const currentStepIndex = getCurrentStepIndex(refund.status);\n const result = [];\n for (let i = 0; i < steps.length; i++) {\n const step = steps[i];\n result.push(new TimelineStepType({\n status: step.status,\n title: step.title,\n time: step.time,\n desc: step.desc,\n active: i === currentStepIndex,\n completed: i < currentStepIndex\n }));\n }\n return result;\n };\n // 切换标签页\n const changeTab = (tab) => {\n activeTab.value = tab;\n };\n // 加载更多\n const loadMore = () => {\n if (hasMore.value && !isLoading.value) {\n loadRefunds(true);\n }\n };\n // 查看订单\n const viewOrder = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?id=${orderId}`\n });\n };\n const doCancelRefund = (refund) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const result = yield supabaseService.createRefund({\n id: refund.id,\n status: 4\n });\n if (result.success) {\n refund.status = 4;\n loadTabCounts();\n uni.showToast({\n title: '已取消',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/refund.uvue:431', '取消退款失败:', err);\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n }\n }); };\n const cancelRefund = (refund) => {\n uni.showModal(new UTSJSONObject({\n title: '取消申请',\n content: '确定要取消这个退款申请吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelRefund(refund);\n }\n }\n }));\n };\n // 联系客服\n const contactService = (refund) => {\n uni.navigateTo({\n url: `/pages/mall/service/chat?refundId=${refund.id}`\n });\n };\n // 评价服务\n const reviewRefund = (refund) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund-review?id=${refund.id}`\n });\n };\n const doDeleteRefund = (refund) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const result = yield supabaseService.deleteRefund(refund.id);\n if (result) {\n const newRefunds = [];\n for (let i = 0; i < refunds.value.length; i++) {\n if (refunds.value[i].id !== refund.id) {\n newRefunds.push(refunds.value[i]);\n }\n }\n refunds.value = newRefunds;\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/refund.uvue:489', '删除记录失败:', err);\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n }); };\n const deleteRefund = (refund) => {\n uni.showModal(new UTSJSONObject({\n title: '删除记录',\n content: '确定要删除这个售后记录吗?',\n success: (res) => {\n if (res.confirm) {\n doDeleteRefund(refund);\n }\n }\n }));\n };\n // 申请售后\n const applyRefund = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/apply-refund'\n });\n };\n // 查看订单\n const goToOrders = () => {\n uni.switchTab({\n url: '/pages/mall/consumer/orders'\n });\n };\n // 返回\n const goBack = () => {\n uni.navigateBack();\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(goBack),\n b: _n({\n active: activeTab.value === 'all'\n }),\n c: _o($event => { return changeTab('all'); }),\n d: tabCounts.value.processing > 0\n }, tabCounts.value.processing > 0 ? {\n e: _t(tabCounts.value.processing)\n } : {}, {\n f: _n({\n active: activeTab.value === 'processing'\n }),\n g: _o($event => { return changeTab('processing'); }),\n h: _n({\n active: activeTab.value === 'completed'\n }),\n i: _o($event => { return changeTab('completed'); }),\n j: refunds.value.length === 0 && !isLoading.value\n }, refunds.value.length === 0 && !isLoading.value ? {\n k: _o(goToOrders)\n } : {}, {\n l: _f(refunds.value, (refund, k0, i0) => {\n return _e({\n a: _t(refund.refund_no),\n b: _t(getStatusText(refund.status)),\n c: _n(getStatusClass(refund.status)),\n d: _t(refund.order?.order_no),\n e: _t(formatTime(refund.order?.created_at)),\n f: getProductImage(refund),\n g: _t(getProductName(refund)),\n h: refund.refund_reason\n }, refund.refund_reason ? {\n i: _t(refund.refund_reason)\n } : {}, {\n j: _t(refund.refund_amount),\n k: _o($event => { return viewOrder(refund.order_id); }, refund.id),\n l: refund.status_history != null && refund.status_history.length > 0\n }, refund.status_history != null && refund.status_history.length > 0 ? {\n m: _f(getTimelineSteps(refund), (step, index, i1) => {\n return _e({\n a: step.active ? 1 : '',\n b: step.completed ? 1 : '',\n c: _t(step.title),\n d: _t(step.time),\n e: step.desc\n }, step.desc ? {\n f: _t(step.desc)\n } : {}, {\n g: index\n });\n })\n } : {}, {\n n: refund.status === 1\n }, refund.status === 1 ? {\n o: _o($event => { return cancelRefund(refund); }, refund.id),\n p: _o($event => { return contactService(refund); }, refund.id)\n } : {}, {\n q: refund.status === 3\n }, refund.status === 3 ? {\n r: _o($event => { return reviewRefund(refund); }, refund.id),\n s: _o($event => { return deleteRefund(refund); }, refund.id)\n } : {}, {\n t: refund.id\n });\n }),\n m: isLoading.value\n }, isLoading.value ? {} : {}, {\n n: !hasMore.value && refunds.value.length > 0\n }, !hasMore.value && refunds.value.length > 0 ? {} : {}, {\n o: _o(loadMore),\n p: _o(applyRefund),\n q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/refund.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.navigateTo","uni.__f__","uni.showToast","uni.showModal","uni.switchTab","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"refund.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"refund.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0d60447dc29279ac6f12a9bd2021b102818de16c b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0d60447dc29279ac6f12a9bd2021b102818de16c deleted file mode 100644 index 6d2977d4..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0d60447dc29279ac6f12a9bd2021b102818de16c +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService, CartItem as SupabaseCartItem, Product } from \"@/utils/supabaseService\";\nclass LocalCartItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n originalPrice: { type: Number, optional: false },\n memberPrice: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false },\n selected: { type: Boolean, optional: false },\n productId: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchantId: { type: String, optional: false }\n };\n },\n name: \"LocalCartItem\"\n };\n }\n constructor(options, metadata = LocalCartItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.originalPrice = this.__props__.originalPrice;\n this.memberPrice = this.__props__.memberPrice;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n this.selected = this.__props__.selected;\n this.productId = this.__props__.productId;\n this.skuId = this.__props__.skuId;\n this.merchantId = this.__props__.merchantId;\n delete this.__props__;\n }\n}\nclass CartGroup extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n merchantId: { type: String, optional: false },\n items: { type: UTS.UTSType.withGenerics(Array, [LocalCartItem]), optional: false }\n };\n },\n name: \"CartGroup\"\n };\n }\n constructor(options, metadata = CartGroup.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.merchantId = this.__props__.merchantId;\n this.items = this.__props__.items;\n delete this.__props__;\n }\n}\nclass RecommendProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n skuId: { type: String, optional: false },\n merchant_id: { type: String, optional: false }\n };\n },\n name: \"RecommendProduct\"\n };\n }\n constructor(options, metadata = RecommendProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.skuId = this.__props__.skuId;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\nclass CapsuleButtonInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n left: { type: Number, optional: false },\n top: { type: Number, optional: false },\n right: { type: Number, optional: false },\n bottom: { type: Number, optional: false },\n width: { type: Number, optional: false },\n height: { type: Number, optional: false }\n };\n },\n name: \"CapsuleButtonInfo\"\n };\n }\n constructor(options, metadata = CapsuleButtonInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.left = this.__props__.left;\n this.top = this.__props__.top;\n this.right = this.__props__.right;\n this.bottom = this.__props__.bottom;\n this.width = this.__props__.width;\n this.height = this.__props__.height;\n delete this.__props__;\n }\n}\n// 小程序胶囊按钮信息\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'cart',\n setup(__props) {\n const compareStrings = (a, b) => {\n uni.__f__('log', 'at pages/main/cart.uvue:213', '[compareStrings] a length:', a.length, 'b length:', b.length);\n uni.__f__('log', 'at pages/main/cart.uvue:214', '[compareStrings] a type:', typeof a, 'b type:', typeof b);\n uni.__f__('log', 'at pages/main/cart.uvue:215', '[compareStrings] a value:', UTS.JSON.stringify(a));\n uni.__f__('log', 'at pages/main/cart.uvue:216', '[compareStrings] b value:', UTS.JSON.stringify(b));\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n const aCode = a.charCodeAt(i);\n const bCode = b.charCodeAt(i);\n if (aCode != null && bCode != null && aCode !== bCode) {\n uni.__f__('log', 'at pages/main/cart.uvue:223', '[compareStrings] mismatch at index:', i, 'a:', aCode, 'b:', bCode);\n return false;\n }\n }\n return true;\n };\n const cartItems = ref([]);\n const recommendProducts = ref([]);\n const recommendPage = ref(1);\n const loading = ref(false);\n const statusBarHeight = ref(0);\n const isManageMode = ref(false);\n const updatingItems = ref(new Set()); // Track items being updated to prevent race conditions\n // 小程序胶囊按钮信息类型\n const capsuleButtonInfo = ref(null);\n const navBarRight = ref(0); // 导航栏右侧预留空间\n // 计算属性\n const cartGroups = computed(() => {\n uni.__f__('log', 'at pages/main/cart.uvue:266', '[cartGroups] 计算购物车分组, cartItems count:', cartItems.value.length);\n const groups = new Map();\n cartItems.value.forEach((item) => {\n uni.__f__('log', 'at pages/main/cart.uvue:270', '[cartGroups] item:', item.id, 'shopId:', item.shopId, 'shopName:', item.shopName);\n const shopKey = item.shopId;\n if (!groups.has(shopKey)) {\n groups.set(shopKey, new CartGroup({\n shopId: item.shopId,\n shopName: item.shopName,\n merchantId: item.merchantId,\n items: []\n }));\n }\n const group = UTS.mapGet(groups, shopKey);\n if (group != null) {\n group.items.push(item);\n }\n });\n const groupArray = [];\n groups.forEach((value) => {\n uni.__f__('log', 'at pages/main/cart.uvue:289', '[cartGroups] group:', value.shopId, 'items count:', value.items.length);\n groupArray.push(value);\n });\n return groupArray;\n });\n const allSelected = computed(() => {\n return cartItems.value.length > 0 && cartItems.value.every((item) => { return item.selected; });\n });\n const selectedCount = computed(() => {\n return cartItems.value.filter((item) => { return item.selected; }).reduce((sum, item) => { return sum + item.quantity; }, 0);\n });\n const totalPrice = computed(() => {\n return cartItems.value\n .filter((item) => { return item.selected; })\n .reduce((sum, item) => {\n // 优先使用会员价,如果没有会员价则使用原价\n const finalPrice = item.memberPrice > 0 && item.memberPrice < item.price ? item.memberPrice : item.price;\n return sum + finalPrice * item.quantity;\n }, 0)\n .toFixed(2);\n });\n // 计算会员节省金额\n const memberSavedAmount = computed(() => {\n return cartItems.value\n .filter((item) => { return item.selected && item.memberPrice > 0 && item.memberPrice < item.price; })\n .reduce((sum, item) => { return sum + (item.price - item.memberPrice) * item.quantity; }, 0)\n .toFixed(2);\n });\n // 检查店铺是否全选\n const isShopSelected = (shopId) => {\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n if (compareStrings(cartItems.value[i].shopId, shopId)) {\n shopItems.push(cartItems.value[i]);\n }\n }\n if (shopItems.length === 0)\n return false;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected)\n return false;\n }\n return true;\n };\n const toggleManageMode = () => {\n isManageMode.value = !isManageMode.value;\n };\n // 初始化页面数据\n const initPage = () => {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n // 获取小程序胶囊按钮信息\n try {\n const menuButton = uni.getMenuButtonBoundingClientRect();\n if (menuButton != null) {\n capsuleButtonInfo.value = {\n left: menuButton.left,\n top: menuButton.top,\n right: menuButton.right,\n bottom: menuButton.bottom,\n width: menuButton.width,\n height: menuButton.height\n };\n navBarRight.value = (systemInfo.screenWidth - menuButton.left) + 10;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/main/cart.uvue:362', '获取胶囊按钮信息失败', e);\n navBarRight.value = 90;\n }\n };\n // 生命周期\n onMounted(() => {\n initPage();\n });\n // 提取更新列表的辅助函数以减少重复代码\n const updateRecommendList = (recommends) => {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n };\n const refreshRecommend = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 1. 模拟市面加载感,锁定按钮防止连续快速点击\n if (loading.value)\n return Promise.resolve(null);\n loading.value = true;\n uni.showLoading({\n title: '正在挑选...',\n mask: true\n });\n // 2. 模拟市面“随机性”逻辑:\n // 淘宝京东不会按顺序翻页,而是跳跃选取页码,并打乱排序规则\n const maxOffsetPages = 20; // 假设数据库中至少有 20 页热推商品\n const sorts = ['sales', 'price_asc', 'rating'];\n // 随机页码 + 随机排序 = 每次点击都有新发现\n const nextRandomPage = Math.floor(Math.random() * maxOffsetPages) + 1;\n const randomSort = sorts[Math.floor(Math.random() * sorts.length)];\n uni.__f__('log', 'at pages/main/cart.uvue:409', `[refreshRecommend] 换一批: 随机页=${nextRandomPage}, 随机排=${randomSort}`);\n const hotResp = yield supabaseService.searchProducts('', nextRandomPage, 6, randomSort);\n let recommends = hotResp.data;\n // 3. 兜底逻辑:如果随机到的页码没数据,回退到第 1 页\n if (recommends.length === 0) {\n const fallbackResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n recommends = fallbackResp.data;\n }\n // 4. 前端打乱 (Shuffle):即使是同一页数据,乱序排布也会增加“新鲜感”\n if (recommends.length > 0) {\n recommends.sort(() => { return Math.random() - 0.5; });\n updateRecommendList(recommends);\n uni.hideLoading();\n uni.showToast({\n title: '已为你换一批好物',\n icon: 'none',\n duration: 1000\n });\n }\n else {\n uni.hideLoading();\n }\n }\n catch (error) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/main/cart.uvue:436', '刷新推荐失败:', error);\n uni.showToast({ title: '加载失败,请重试', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n // 加载数据\n const loadCartData = () => { return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n // 获取会员折扣信息\n let memberDiscount = 1.0;\n try {\n const memberInfo = yield supabaseService.getUserMemberInfo();\n const discountRaw = memberInfo.get('discount');\n if (discountRaw != null) {\n memberDiscount = discountRaw;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/main/cart.uvue:457', '获取会员信息失败,使用默认折扣:', e);\n }\n // 从Supabase加载购物车数据\n const supabaseCartItems = yield supabaseService.getCartItems();\n // 转换数据格式以匹配前端界面\n const transformedItems = supabaseCartItems.map((item) => {\n var _a, _b, _c, _d, _g, _h, _j, _k;\n // 调试日志:打印每条商品数据的关键字段\n uni.__f__('log', 'at pages/main/cart.uvue:466', `CartItem raw: id=${item.id}, shop_id=${item.shop_id}, shop_name=${item.shop_name}, name=${item.product_name}, price=${item.product_price}`);\n // 关键修复:确保shopId有值,如果后端返回null/undefined,使用'default_shop'作为分组键\n const shopId = (item.shop_id != null && item.shop_id !== '') ? item.shop_id : 'default_shop';\n const shopName = (item.shop_name != null && item.shop_name !== '') ? item.shop_name : '商城优选';\n // 计算会员价\n const originalPrice = item.product_price != null ? item.product_price : 0;\n let memberPrice = 0;\n if (memberDiscount > 0 && memberDiscount < 1 && originalPrice > 0) {\n memberPrice = Math.round(originalPrice * memberDiscount * 100) / 100;\n }\n return new LocalCartItem({\n id: item.id,\n shopId: shopId,\n shopName: shopName,\n name: (_a = item.product_name) !== null && _a !== void 0 ? _a : '未知商品',\n price: originalPrice,\n originalPrice: originalPrice,\n memberPrice: memberPrice,\n image: (_b = item.product_image) !== null && _b !== void 0 ? _b : '/static/images/default-product.png',\n spec: (_c = item.product_specification) !== null && _c !== void 0 ? _c : '标准规格',\n quantity: (_d = item.quantity) !== null && _d !== void 0 ? _d : 1,\n selected: (_g = item.selected) !== null && _g !== void 0 ? _g : false,\n productId: (_h = item.product_id) !== null && _h !== void 0 ? _h : '',\n skuId: (_j = item.sku_id) !== null && _j !== void 0 ? _j : '',\n merchantId: (_k = item.merchant_id) !== null && _k !== void 0 ? _k : ''\n });\n });\n uni.__f__('log', 'at pages/main/cart.uvue:497', 'Transformed items count:', transformedItems.length);\n cartItems.value = transformedItems;\n // 加载推荐商品(优先获取推荐位商品,如果没有则通过搜索获取热销商品)\n let recommends = yield supabaseService.getRecommendedProducts(6);\n // 如果没有设置推荐商品,则获取热销商品作为补充\n if (recommends.length === 0) {\n const hotResp = yield supabaseService.searchProducts('', 1, 6, 'sales');\n recommends = hotResp.data;\n }\n if (recommends.length > 0) {\n recommendProducts.value = recommends.map((p) => {\n var _a, _b, _c, _d, _g, _h, _j;\n return new RecommendProduct({\n id: p.id,\n shopId: (_a = p.merchant_id) !== null && _a !== void 0 ? _a : 'unknown',\n shopName: (_b = p.shop_name) !== null && _b !== void 0 ? _b : '商城推荐',\n name: p.name,\n price: (_d = (_c = p.base_price) !== null && _c !== void 0 ? _c : p.market_price) !== null && _d !== void 0 ? _d : 0,\n image: (_h = (_g = p.main_image_url) !== null && _g !== void 0 ? _g : p.image_url) !== null && _h !== void 0 ? _h : '/static/images/default-product.png',\n skuId: '',\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n });\n }\n else {\n recommendProducts.value = [];\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:526', '加载购物车数据失败:', error);\n cartItems.value = [];\n }\n finally {\n loading.value = false;\n }\n }); };\n onShow(() => {\n loadCartData();\n });\n // 商品操作 - 更新选中状态到Supabase\n const toggleSelect = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n // 乐观更新\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n const newSelected = !cartItems.value[index].selected;\n cartItems.value[index].selected = newSelected;\n cartItems.value = [...cartItems.value]; // 触发响应式更新\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemSelection(itemId, newSelected);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:549', '更新选中状态失败');\n // 恢复状态\n cartItems.value[index].selected = !newSelected;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '网络异常,请重试', icon: 'none' });\n }\n }\n }); };\n const toggleShopSelect = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/main/cart.uvue:559', '[toggleShopSelect] shopId:', shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:560', '[toggleShopSelect] shopId length:', shopId.length);\n uni.__f__('log', 'at pages/main/cart.uvue:561', '[toggleShopSelect] cartItems.value.length:', cartItems.value.length);\n // 用 for 循环替代 filter,避免安卓端 UTS filter 的问题\n const shopItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const itemShopId = item.shopId;\n // 安卓端字符串比较问题:使用 localeCompare 或逐字符比较\n const isMatch = compareStrings(itemShopId, shopId);\n uni.__f__('log', 'at pages/main/cart.uvue:570', '[toggleShopSelect] checking item:', item.id, 'item.shopId:', itemShopId, 'match:', isMatch);\n if (isMatch) {\n shopItems.push(item);\n }\n }\n uni.__f__('log', 'at pages/main/cart.uvue:575', '[toggleShopSelect] shopItems count:', shopItems.length);\n if (shopItems.length === 0)\n return Promise.resolve(null);\n // 用 for 循环替代 every\n let allSelected = true;\n for (let i = 0; i < shopItems.length; i++) {\n if (!shopItems[i].selected) {\n allSelected = false;\n break;\n }\n }\n const newState = !allSelected;\n uni.__f__('log', 'at pages/main/cart.uvue:588', '[toggleShopSelect] allSelected:', allSelected, 'newState:', newState);\n const shopItemIds = [];\n for (let i = 0; i < shopItems.length; i++) {\n shopItemIds.push(shopItems[i].id);\n }\n uni.__f__('log', 'at pages/main/cart.uvue:594', '[toggleShopSelect] shopItemIds:', shopItemIds);\n // 创建全新的数组来触发响应式更新\n const newCartItems = [];\n for (let i = 0; i < cartItems.value.length; i++) {\n const item = cartItems.value[i];\n const isMatch = compareStrings(item.shopId, shopId);\n if (isMatch) {\n uni.__f__('log', 'at pages/main/cart.uvue:602', '[toggleShopSelect] updating item:', item.id, 'to selected:', newState);\n // 创建新的对象\n const newItem = new LocalCartItem({\n id: item.id,\n shopId: item.shopId,\n shopName: item.shopName,\n name: item.name,\n price: item.price,\n originalPrice: item.originalPrice,\n memberPrice: item.memberPrice,\n image: item.image,\n spec: item.spec,\n quantity: item.quantity,\n selected: newState,\n productId: item.productId,\n skuId: item.skuId,\n merchantId: item.merchantId\n });\n newCartItems.push(newItem);\n }\n else {\n newCartItems.push(item);\n }\n }\n // 替换整个数组\n cartItems.value = newCartItems;\n // 批量更新到Supabase\n const success = yield supabaseService.batchUpdateCartItemSelection(shopItemIds, newState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:632', '批量更新店铺商品选中状态失败');\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n // 重新加载数据以确保状态一致\n loadCartData();\n }\n }); };\n const toggleSelectAll = () => { return __awaiter(this, void 0, void 0, function* () {\n // 目标状态:如果当前全选,则取消全选;否则全选\n const newSelectedState = !allSelected.value;\n // 乐观更新\n const oldItems = UTS.JSON.parse(UTS.JSON.stringify(cartItems.value));\n const selectedItems = cartItems.value.map((item) => {\n item.selected = newSelectedState;\n return item;\n });\n cartItems.value = selectedItems;\n // 更新到Supabase\n const itemIds = cartItems.value.map(item => { return item.id; });\n if (itemIds.length === 0)\n return Promise.resolve(null);\n const success = yield supabaseService.batchUpdateCartItemSelection(itemIds, newSelectedState);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:661', '批量更新选中状态失败');\n cartItems.value = oldItems;\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const increaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity + 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:685', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity - 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n }); };\n const decreaseQuantity = (itemId) => { return __awaiter(this, void 0, void 0, function* () {\n if (updatingItems.value.has(itemId))\n return Promise.resolve(null);\n const index = cartItems.value.findIndex(item => { return item.id === itemId; });\n if (index !== -1) {\n if (cartItems.value[index].quantity > 1) {\n updatingItems.value.add(itemId);\n const newQuantity = cartItems.value[index].quantity - 1;\n cartItems.value[index].quantity = newQuantity;\n cartItems.value = [...cartItems.value];\n // 更新到Supabase\n const success = yield supabaseService.updateCartItemQuantity(itemId, newQuantity);\n updatingItems.value.delete(itemId);\n if (!success) {\n uni.__f__('error', 'at pages/main/cart.uvue:710', '更新商品数量失败');\n // 恢复状态\n cartItems.value[index].quantity = newQuantity + 1;\n cartItems.value = [...cartItems.value];\n uni.showToast({ title: '更新失败', icon: 'none' });\n }\n }\n else {\n // 数量为1时,询问是否删除\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要从购物车移除该商品吗?',\n success: (res) => {\n if (res.confirm) {\n // 从Supabase删除\n supabaseService.deleteCartItem(itemId).then((success) => {\n if (success) {\n cartItems.value.splice(index, 1);\n cartItems.value = [...cartItems.value];\n uni.showToast({\n title: '已移除',\n icon: 'none'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:733', '删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }\n }\n }); };\n // 删除商品 - 增加保存逻辑\n const deleteSelectedItems = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择要删除的商品',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: `确定要删除选中的 ${selectedCount.value} 件商品吗?`,\n success: (res) => {\n if (res.confirm) {\n // 获取选中的商品ID\n const selectedItemIds = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => { return item.id; });\n // 批量删除到Supabase\n supabaseService.batchDeleteCartItems(selectedItemIds).then((success) => {\n if (success) {\n // 从本地列表移除\n cartItems.value = cartItems.value.filter(item => { return !item.selected; });\n // 如果购物车删空了,退出管理模式\n if (cartItems.value.length === 0) {\n isManageMode.value = false;\n }\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:782', '批量删除商品失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n }); };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '检查商品...' });\n try {\n const productId = product.id;\n const skuId = product.skuId;\n const merchantId = product.merchant_id;\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(productId);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + productId\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(productId, 1, skuId, merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n // 重新加载购物车数据\n loadCartData();\n }\n else {\n uni.__f__('error', 'at pages/main/cart.uvue:830', '添加商品到购物车失败');\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/cart.uvue:838', '添加商品到购物车异常:', error);\n uni.hideLoading();\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }); };\n // 导航函数\n const navigateToShop = (shopId, merchantId = null) => {\n // Prevent navigation for invalid shops\n if (shopId == '' || shopId === 'default_shop' || shopId === 'unknown')\n return null;\n let url = `/pages/mall/consumer/shop-detail?id=${shopId}`;\n if (merchantId != null) {\n const mId = `${merchantId}`;\n if (mId !== '' && mId !== 'null' && mId !== 'undefined' && mId !== 'false') {\n url += `&merchantId=${mId}`;\n }\n }\n uni.navigateTo({ url });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n const navigateToProduct = (product = null) => {\n var _a, _b, _c;\n uni.__f__('log', 'at pages/main/cart.uvue:867', 'navigateToProduct', product);\n // 使用 JSON 转换确保可以作为 JSONObject 处理,兼容 LocalCartItem 类型和普通对象\n const productJson = UTS.JSON.parse(UTS.JSON.stringify(product));\n // 使用productId(如果存在)作为跳转的商品ID,否则使用id\n let productId = productJson.getString('productId');\n if (productId == null || productId == '') {\n productId = productJson.getString('id');\n }\n if (productId == null || productId == '') {\n uni.__f__('error', 'at pages/main/cart.uvue:879', '无法获取商品ID', product);\n return null;\n }\n // 传递完整的参数,确保商品详情页能正确加载\n let paramsArr = [];\n paramsArr.push('id=' + encodeURIComponent(productId));\n paramsArr.push('productId=' + encodeURIComponent(productId));\n const price = (_a = productJson.getNumber('price')) !== null && _a !== void 0 ? _a : 0;\n paramsArr.push('price=' + price);\n let originalPrice = productJson.getNumber('original_price');\n if (originalPrice == null) {\n originalPrice = productJson.getNumber('originalPrice');\n }\n if (originalPrice == null) {\n originalPrice = parseFloat((price * 1.2).toFixed(2));\n }\n paramsArr.push('originalPrice=' + originalPrice);\n const name = (_b = productJson.getString('name')) !== null && _b !== void 0 ? _b : '';\n paramsArr.push('name=' + encodeURIComponent(name));\n const image = (_c = productJson.getString('image')) !== null && _c !== void 0 ? _c : '/static/images/default-product.png';\n paramsArr.push('image=' + encodeURIComponent(image));\n const url = `/pages/mall/consumer/product-detail?${paramsArr.join('&')}`;\n uni.__f__('log', 'at pages/main/cart.uvue:907', 'Navigate to:', url);\n uni.navigateTo({\n url: url\n });\n };\n const goToCheckout = () => {\n if (selectedCount.value === 0) {\n uni.showToast({\n title: '请选择商品',\n icon: 'none'\n });\n return null;\n }\n // 获取选中的商品 (直接过滤cartItems,不依赖cartGroups,确保扁平化传递)\n const selectedItems = cartItems.value\n .filter(item => { return item.selected; })\n .map(item => {\n var _a, _b;\n return (new UTSJSONObject({\n id: item.id,\n product_id: (_a = item.productId) !== null && _a !== void 0 ? _a : item.id,\n sku_id: (_b = item.skuId) !== null && _b !== void 0 ? _b : item.id,\n product_name: item.name,\n shop_id: item.shopId,\n shop_name: item.shopName,\n merchant_id: item.merchantId,\n product_image: item.image,\n sku_specifications: item.spec,\n price: item.price,\n quantity: item.quantity // 确保是数字\n }));\n });\n // 关键修复:将结算数据写入 Storage,确保 checkout 页面能稳定获取\n uni.setStorageSync('checkout_type', 'cart');\n // 使用纯JSON序列化防止复杂对象引发的问题\n try {\n uni.setStorageSync('checkout_items', UTS.JSON.stringify(selectedItems));\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/cart.uvue:946', '存储结算数据失败', e);\n uni.showToast({ title: '系统异常,请重试', icon: 'none' });\n return null;\n }\n // 跳转到结算页面并传递数据\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(isManageMode.value ? '✓' : '⚙️'),\n b: _t(isManageMode.value ? '完成' : '管理'),\n c: _o(toggleManageMode),\n d: (navBarRight.value > 0 ? navBarRight.value : 16) + 'px',\n e: statusBarHeight.value + 'px',\n f: statusBarHeight.value + 44 + 'px',\n g: !loading.value && cartItems.value.length === 0\n }, !loading.value && cartItems.value.length === 0 ? {\n h: _o(goShopping)\n } : {\n i: _f(cartGroups.value, (group, k0, i0) => {\n return _e({\n a: isShopSelected(group.shopId)\n }, isShopSelected(group.shopId) ? {} : {}, {\n b: _o($event => { return toggleShopSelect(group.shopId); }, group.shopId),\n c: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n d: _t(group.shopName),\n e: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n f: _o($event => { return navigateToShop(group.shopId, group.merchantId); }, group.shopId),\n g: _f(group.items, (item, k1, i1) => {\n return _e({\n a: item.selected\n }, item.selected ? {} : {}, {\n b: _o($event => { return toggleSelect(item.id); }, item.id),\n c: item.image,\n d: _o($event => { return navigateToProduct(item); }, item.id),\n e: _t(item.name),\n f: _t(item.spec),\n g: _t(item.price),\n h: _o($event => { return decreaseQuantity(item.id); }, item.id),\n i: _t(item.quantity),\n j: _o($event => { return increaseQuantity(item.id); }, item.id),\n k: item.id\n });\n }),\n h: group.shopId\n });\n })\n }, {\n j: cartItems.value.length > 0\n }, cartItems.value.length > 0 ? _e({\n k: allSelected.value\n }, allSelected.value ? {} : {}, {\n l: _o(toggleSelectAll),\n m: !isManageMode.value\n }, !isManageMode.value ? _e({\n n: _t(totalPrice.value),\n o: parseFloat(memberSavedAmount.value) > 0\n }, parseFloat(memberSavedAmount.value) > 0 ? {\n p: _t(memberSavedAmount.value)\n } : {}) : {}, {\n q: !isManageMode.value\n }, !isManageMode.value ? {\n r: _t(selectedCount.value),\n s: _o(goToCheckout)\n } : {\n t: _t(selectedCount.value),\n v: _o(deleteSelectedItems)\n }) : {}, {\n w: recommendProducts.value.length > 0\n }, recommendProducts.value.length > 0 ? {\n x: _o(refreshRecommend),\n y: _f(recommendProducts.value, (product, k0, i0) => {\n return {\n a: product.image,\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return navigateToProduct(product); }, product.id)\n };\n })\n } : {}, {\n z: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/cart.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab","uni.setStorageSync"],"map":"{\"version\":3,\"file\":\"cart.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"cart.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0e4619dc73e9e9dfecb4c6ea9b0fd361af6ede52 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0e4619dc73e9e9dfecb4c6ea9b0fd361af6ede52 deleted file mode 100644 index 6ceb3a44..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0e4619dc73e9e9dfecb4c6ea9b0fd361af6ede52 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport supabaseService from \"@/utils/supabaseService\";\nimport { UserCoupon } from \"@/utils/supabaseService\";\nclass Coupon extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n title: { type: String, optional: false },\n amount: { type: String, optional: false },\n expiry: { type: String, optional: false },\n id: { type: String, optional: false }\n };\n },\n name: \"Coupon\"\n };\n }\n constructor(options, metadata = Coupon.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.title = this.__props__.title;\n this.amount = this.__props__.amount;\n this.expiry = this.__props__.expiry;\n this.id = this.__props__.id;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'coupons',\n setup(__props) {\n const coupons = ref([]);\n const loadCoupons = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '加载中...' });\n try {\n const userCoupons = yield supabaseService.getUserCoupons(1);\n const couponList = [];\n for (let i = 0; i < userCoupons.length; i++) {\n const item = userCoupons[i];\n const amountVal = (_a = item.amount) !== null && _a !== void 0 ? _a : 0;\n const expiryVal = (item.expire_at != null && item.expire_at !== '')\n ? item.expire_at.substring(0, 10)\n : '长期有效';\n const coupon = new Coupon({\n id: item.id,\n title: (item.template_name != null && item.template_name !== '') ? item.template_name : '优惠券',\n amount: `¥${amountVal}`,\n expiry: expiryVal\n });\n couponList.push(coupon);\n }\n coupons.value = couponList;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/coupons.uvue:59', '加载优惠券失败', e);\n coupons.value = [];\n }\n finally {\n uni.hideLoading();\n }\n }); };\n onMounted(() => {\n loadCoupons();\n });\n const useCoupon = (coupon) => {\n uni.switchTab({\n url: '/pages/main/index'\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: coupons.value.length === 0\n }, coupons.value.length === 0 ? {} : {\n b: _f(coupons.value, (coupon, index, i0) => {\n return {\n a: _t(coupon.amount),\n b: _t(coupon.title),\n c: _t(coupon.expiry),\n d: _o($event => { return useCoupon(coupon); }, index),\n e: index\n };\n })\n }, {\n c: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/coupons.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showLoading","uni.__f__","uni.hideLoading","uni.switchTab"],"map":"{\"version\":3,\"file\":\"coupons.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"coupons.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAEvH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;OAC7B,eAAe;OACV,EAAE,UAAU,EAAE;MAErB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;AAQX,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,SAAS;IACjB,KAAK,CAAC,OAAO;QAEf,MAAM,OAAO,GAAG,GAAG,CAAW,EAAE,CAAC,CAAA;QAEjC,MAAM,WAAW,GAAG;;YAChB,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,IAAI;gBACA,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;gBAC3D,MAAM,UAAU,GAAa,EAAE,CAAA;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;oBAC3B,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,CAAA;oBAClC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC;wBAC/D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;wBACjC,CAAC,CAAC,MAAM,CAAA;oBACZ,MAAM,MAAM,cAAW;wBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK;wBAC7F,MAAM,EAAE,IAAI,SAAS,EAAE;wBACvB,MAAM,EAAE,SAAS;qBACV,CAAA,CAAA;oBACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;iBAC1B;gBACD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;aAC7B;YAAC,OAAO,CAAC,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,wCAAwC,EAAC,SAAS,EAAE,CAAC,CAAC,CAAA;gBACxE,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;aACrB;oBAAS;gBACN,GAAG,CAAC,WAAW,EAAE,CAAA;aACpB;QACL,CAAC,IAAA,CAAA;QAED,SAAS,CAAC;YACR,WAAW,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,CAAC,MAAc;YAC/B,GAAG,CAAC,SAAS,CAAC;gBACZ,GAAG,EAAE,mBAAmB;aACzB,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;aAC9B,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACrC,OAAO;wBACL,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;wBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;wBACnB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;wBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,MAAM,CAAC,EAAjB,CAAiB,EAAE,KAAK,CAAC;wBACzC,CAAC,EAAE,KAAK;qBACT,CAAC;gBACJ,CAAC,CAAC;aACH,EAAE;gBACD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0fb2c7c600db11a1af66f0425bf6bf3b231369f2 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0fb2c7c600db11a1af66f0425bf6bf3b231369f2 deleted file mode 100644 index ad91afc6..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/0fb2c7c600db11a1af66f0425bf6bf3b231369f2 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {\n // 统计数据\n totalEarnings: '266.10',\n totalUserTips: '12.00',\n totalMerchantTips: '8.50',\n totalOrders: 8,\n // 按订单聚合后的收入数据\n orderEarningsList: [],\n allOrderEarnings: [],\n pageSize: 10,\n currentPage: 1,\n };\n },\n onLoad() {\n this.loadAllEarnings();\n },\n computed: {\n hasMore() {\n return this.allOrderEarnings.length > this.orderEarningsList.length;\n }\n },\n methods: {\n // 加载所有收入明细并按订单聚合\n loadAllEarnings() {\n const rawEarnings = [\n new UTSJSONObject(\n // 配送费\n {\n id: '1',\n date: '2025-01-08T14:30:00Z',\n amount: 8.5,\n source: 'delivery_fee',\n order_no: 'D202501081234',\n distance: 12.5\n }),\n new UTSJSONObject({\n id: '2',\n date: '2025-01-08T15:00:00Z',\n amount: 12.0,\n source: 'delivery_fee',\n order_no: 'D202501081235',\n distance: 8.2\n }),\n new UTSJSONObject(\n // 用户打赏\n {\n id: '3',\n date: '2025-01-08T15:30:00Z',\n amount: 5.0,\n source: 'user_tip',\n order_no: 'D202501081236'\n }),\n new UTSJSONObject({\n id: '4',\n date: '2025-01-08T16:00:00Z',\n amount: 7.0,\n source: 'user_tip',\n order_no: 'D202501081237'\n }),\n new UTSJSONObject(\n // 商家打赏\n {\n id: '5',\n date: '2025-01-08T16:30:00Z',\n amount: 3.5,\n source: 'merchant_tip',\n order_no: 'D202501081238'\n }),\n new UTSJSONObject({\n id: '6',\n date: '2025-01-08T17:00:00Z',\n amount: 5.0,\n source: 'merchant_tip',\n order_no: 'D202501081239'\n }),\n new UTSJSONObject({\n id: '7',\n date: '2025-01-08T17:30:00Z',\n amount: 6.0,\n source: 'delivery_fee',\n order_no: 'D202501081240',\n distance: 3.5\n }),\n new UTSJSONObject({\n id: '8',\n date: '2025-01-08T18:00:00Z',\n amount: 10.0,\n source: 'user_tip',\n order_no: 'D202501081241'\n }),\n new UTSJSONObject({\n id: '9',\n date: '2025-01-08T18:30:00Z',\n amount: 8.5,\n source: 'merchant_tip',\n order_no: 'D202501081242'\n }),\n new UTSJSONObject({\n id: '10',\n date: '2025-01-08T19:00:00Z',\n amount: 12.0,\n source: 'delivery_fee',\n order_no: 'D202501081243',\n distance: 5.0\n }),\n new UTSJSONObject({\n id: '11',\n date: '2025-01-08T19:30:00Z',\n amount: 5.0,\n source: 'user_tip',\n order_no: 'D202501081244'\n }),\n new UTSJSONObject({\n id: '12',\n date: '2025-01-08T20:00:00Z',\n amount: 3.5,\n source: 'merchant_tip',\n order_no: 'D202501081245'\n })\n ];\n // 按订单号聚合数据\n const orderMap = new Map();\n rawEarnings.forEach(item => {\n if (!orderMap.has(item.order_no)) {\n orderMap.set(item.order_no, new OrderEarningType({\n order_no: item.order_no,\n date: item.date,\n distance: item.distance,\n totalAmount: 0,\n details: []\n }));\n }\n const order = UTS.mapGet(orderMap, item.order_no);\n order.totalAmount += item.amount;\n order.details.push(item);\n });\n /* ---------- 新增:把「配送费」「商家打赏」「用户打赏」三种类型全部补齐 ---------- */\n const allTypes = ['delivery_fee', 'merchant_tip', 'user_tip'];\n orderMap.forEach(order => {\n // 看当前订单已存在的类型\n const existSet = new Set(order.details.map(d => { return d.source; }));\n // 缺哪种就补 0 的占位,保证顺序:配送费 / 商家打赏 / 用户打赏\n allTypes.forEach(type => {\n if (!existSet.has(type)) {\n order.details.push(new EarningType({\n id: `${order.order_no}_${type}`,\n date: order.date,\n amount: 0,\n source: type,\n order_no: order.order_no,\n distance: order.distance\n }));\n }\n });\n // 按固定顺序排个序(可选)\n order.details.sort((a, b) => {\n return allTypes.indexOf(a.source) - allTypes.indexOf(b.source);\n });\n });\n this.allOrderEarnings = Array.from(orderMap.values());\n this.calculateTotalStats();\n this.loadPage();\n },\n // 计算总统计数据\n calculateTotalStats() {\n let totalEarnings = 0;\n let totalUserTips = 0;\n let totalMerchantTips = 0;\n this.allOrderEarnings.forEach(order => {\n order.details.forEach(detail => {\n totalEarnings += detail.amount || 0;\n if (detail.source === 'user_tip') {\n totalUserTips += detail.amount || 0;\n }\n else if (detail.source === 'merchant_tip') {\n totalMerchantTips += detail.amount || 0;\n }\n });\n });\n this.totalEarnings = totalEarnings.toFixed(2);\n this.totalUserTips = totalUserTips.toFixed(2);\n this.totalMerchantTips = totalMerchantTips.toFixed(2);\n this.totalOrders = this.allOrderEarnings.length;\n },\n // 加载当前页数据\n loadPage() {\n const start = (this.currentPage - 1) * this.pageSize;\n const end = start + this.pageSize;\n const newOrders = this.allOrderEarnings.slice(start, end);\n this.orderEarningsList.push(...newOrders);\n },\n // 加载更多\n loadMoreEarnings() {\n this.currentPage++;\n this.loadPage();\n },\n // 获取收入来源文本\n getSourceText(source) {\n switch (source) {\n case 'delivery_fee': return '配送费';\n case 'user_tip': return '用户打赏';\n case 'merchant_tip': return '商家打赏';\n default: return '其他';\n }\n },\n // 格式化时间\n formatTime(timeStr) {\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const minutes = Math.floor(diff / (1000 * 60));\n if (minutes < 60) {\n return `${minutes}分钟前`;\n }\n else {\n return `${Math.floor(minutes / 60)}小时前`;\n }\n },\n // 返回到来源页面\n goBackToHome() {\n uni.navigateBack();\n }\n }\n}\n// 定义聚合后的订单收入类型\n);\nclass OrderEarningType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_no: { type: String, optional: false },\n date: { type: String, optional: false },\n distance: { type: Number, optional: true },\n totalAmount: { type: Number, optional: false },\n details: { type: \"Unknown\", optional: false }\n };\n },\n name: \"OrderEarningType\"\n };\n }\n constructor(options, metadata = OrderEarningType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_no = this.__props__.order_no;\n this.date = this.__props__.date;\n this.distance = this.__props__.distance;\n this.totalAmount = this.__props__.totalAmount;\n this.details = this.__props__.details;\n delete this.__props__;\n }\n}\nclass EarningType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n date: { type: String, optional: false },\n amount: { type: Number, optional: true },\n source: { type: \"Unknown\", optional: false },\n order_no: { type: String, optional: true },\n distance: { type: Number, optional: true }\n };\n },\n name: \"EarningType\"\n };\n }\n constructor(options, metadata = EarningType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.date = this.__props__.date;\n this.amount = this.__props__.amount;\n this.source = this.__props__.source;\n this.order_no = this.__props__.order_no;\n this.distance = this.__props__.distance;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/earnings.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack"],"map":"{\"version\":3,\"file\":\"earnings.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"earnings.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1111b85e31cae0fc8c3db5ab0f4c26174388e4c0 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1111b85e31cae0fc8c3db5ab0f4c26174388e4c0 deleted file mode 100644 index 92ecce55..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1111b85e31cae0fc8c3db5ab0f4c26174388e4c0 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass FavoriteType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n main_image_url: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n selected: { type: Boolean, optional: false }\n };\n },\n name: \"FavoriteType\"\n };\n }\n constructor(options, metadata = FavoriteType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.main_image_url = this.__props__.main_image_url;\n this.merchant_id = this.__props__.merchant_id;\n this.selected = this.__props__.selected;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'favorites',\n setup(__props) {\n const favorites = ref([]);\n const isEditMode = ref(false);\n const isLoading = ref(false);\n const selectedCount = computed(() => {\n return favorites.value.filter((item) => { return item.selected === true; }).length;\n });\n const isAllSelected = computed(() => {\n return favorites.value.length > 0 && favorites.value.every((item) => { return item.selected === true; });\n });\n const loadFavorites = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n isLoading.value = true;\n try {\n const res = yield supabaseService.getFavorites();\n uni.__f__('log', 'at pages/mall/consumer/favorites.uvue:92', '收藏数据加载完成,数量:', res.length);\n const productList = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n let prod = null;\n let itemObj = null;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n prod = itemObj.get('ml_products');\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n prod = itemObj.get('ml_products');\n }\n let image = '/static/default-product.png';\n let id = '';\n let name = '未知商品';\n let price = 0;\n let merchantId = '';\n if (prod != null) {\n let prodObj;\n if (UTS.isInstanceOf(prod, UTSJSONObject)) {\n prodObj = prod;\n }\n else {\n prodObj = UTS.JSON.parse(UTS.JSON.stringify(prod));\n }\n id = (_a = prodObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n name = (_b = prodObj.getString('name')) !== null && _b !== void 0 ? _b : '未知商品';\n price = (_c = prodObj.getNumber('base_price')) !== null && _c !== void 0 ? _c : 0;\n image = (_d = prodObj.getString('main_image_url')) !== null && _d !== void 0 ? _d : image;\n merchantId = (_g = prodObj.getString('merchant_id')) !== null && _g !== void 0 ? _g : '';\n if (image === '/static/default-product.png') {\n const imgUrls = prodObj.getString('image_urls');\n if (imgUrls != null) {\n try {\n const arr = UTS.JSON.parse(imgUrls);\n if (Array.isArray(arr) && arr.length > 0) {\n image = arr[0];\n }\n }\n catch (e) { }\n }\n }\n }\n else {\n if (itemObj != null) {\n id = (_h = itemObj.getString('target_id')) !== null && _h !== void 0 ? _h : '';\n }\n }\n const product = new FavoriteType({\n id: id,\n name: name,\n price: price,\n main_image_url: image,\n merchant_id: merchantId,\n selected: false\n });\n productList.push(product);\n }\n favorites.value = productList;\n uni.__f__('log', 'at pages/mall/consumer/favorites.uvue:156', '收藏列表更新完成,数量:', favorites.value.length);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/favorites.uvue:158', '加载收藏失败', e);\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const toggleEditMode = () => {\n isEditMode.value = !isEditMode.value;\n for (let i = 0; i < favorites.value.length; i++) {\n favorites.value[i].selected = false;\n }\n };\n const clearAll = () => {\n if (favorites.value.length === 0)\n return null;\n uni.showModal(new UTSJSONObject({\n title: '清空收藏',\n content: '确定要清空所有收藏商品吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '清空中...' });\n const productIds = [];\n for (let i = 0; i < favorites.value.length; i++) {\n productIds.push(favorites.value[i].id);\n }\n let completed = 0;\n for (let i = 0; i < productIds.length; i++) {\n supabaseService.toggleFavorite(productIds[i]).then(() => {\n completed++;\n if (completed === productIds.length) {\n uni.hideLoading();\n favorites.value = [];\n uni.showToast({\n title: '已清空',\n icon: 'success'\n });\n }\n }).catch(() => {\n completed++;\n if (completed === productIds.length) {\n uni.hideLoading();\n loadFavorites();\n uni.showToast({\n title: '部分清空失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }\n }));\n };\n const toggleSelect = (item) => {\n item.selected = !(item.selected === true);\n favorites.value = [...favorites.value];\n };\n const toggleSelectAll = () => {\n const newSelectedState = !isAllSelected.value;\n for (let i = 0; i < favorites.value.length; i++) {\n favorites.value[i].selected = newSelectedState;\n }\n favorites.value = [...favorites.value];\n };\n const deleteSelected = () => {\n const selectedItems = favorites.value.filter((item) => { return item.selected === true; });\n if (selectedItems.length === 0) {\n uni.showToast({\n title: '请选择要删除的商品',\n icon: 'none'\n });\n return null;\n }\n uni.showModal(new UTSJSONObject({\n title: '删除收藏',\n content: `确定要删除选中的 ${selectedItems.length} 个商品吗?`,\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n let completed = 0;\n const total = selectedItems.length;\n for (let i = 0; i < selectedItems.length; i++) {\n supabaseService.toggleFavorite(selectedItems[i].id).then(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n loadFavorites();\n uni.showToast({\n title: '已删除',\n icon: 'success'\n });\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n loadFavorites();\n uni.showToast({\n title: '部分删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }\n }));\n };\n const viewProduct = (product) => {\n if (isEditMode.value) {\n toggleSelect(product);\n return null;\n }\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${product.id}`\n });\n };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '检查商品...' });\n try {\n const merchantId = (_a = product.merchant_id) !== null && _a !== void 0 ? _a : '';\n const skus = yield supabaseService.getProductSkus(product.id);\n uni.hideLoading();\n if (skus.length > 0) {\n uni.showToast({ title: '请选择规格', icon: 'none' });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + product.id\n });\n }, 500);\n }\n else {\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(product.id, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '已添加到购物车', icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/favorites.uvue:313', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const goShopping = () => {\n uni.switchTab({\n url: '/pages/main/index'\n });\n };\n onMounted(() => {\n loadFavorites();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: favorites.value.length > 0\n }, favorites.value.length > 0 ? {\n b: _t(isEditMode.value ? '完成' : '编辑'),\n c: _o(toggleEditMode),\n d: _o(clearAll)\n } : {}, {\n e: favorites.value.length === 0 && !isLoading.value\n }, favorites.value.length === 0 && !isLoading.value ? {\n f: _o(goShopping)\n } : {}, {\n g: _f(favorites.value, (product, index, i0) => {\n return _e(isEditMode.value ? _e({\n a: product.selected === true\n }, product.selected === true ? {} : {}, {\n b: _n({\n selected: product.selected === true\n }),\n c: _o($event => { return toggleSelect(product); }, index)\n }) : {}, {\n d: product.main_image_url,\n e: _t(product.name),\n f: _t(product.price)\n }, !isEditMode.value ? {\n g: _o($event => { return addToCart(product); }, index)\n } : {}, {\n h: _o($event => { return viewProduct(product); }, index),\n i: index\n });\n }),\n h: isEditMode.value,\n i: !isEditMode.value,\n j: isLoading.value\n }, isLoading.value ? {} : {}, {\n k: !isLoading.value && favorites.value.length > 0\n }, !isLoading.value && favorites.value.length > 0 ? {} : {}, {\n l: isEditMode.value && favorites.value.length > 0\n }, isEditMode.value && favorites.value.length > 0 ? _e({\n m: isAllSelected.value\n }, isAllSelected.value ? {} : {}, {\n n: _n({\n selected: isAllSelected.value\n }),\n o: _o(toggleSelectAll),\n p: _t(selectedCount.value),\n q: _o(deleteSelected)\n }) : {}, {\n r: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/favorites.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab"],"map":"{\"version\":3,\"file\":\"favorites.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"favorites.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/11acd588bf52078eec30dc052817b86e1e3f489e b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/11acd588bf52078eec30dc052817b86e1e3f489e deleted file mode 100644 index 9a9f2a40..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/11acd588bf52078eec30dc052817b86e1e3f489e +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted } from 'vue';\nimport { onShow, onLoad } from '@dcloudio/uni-app';\nimport supabaseService from \"@/utils/supabaseService\";\nimport { Product, Category, Brand } from \"@/utils/supabaseService\";\nimport { getCurrentUser } from \"@/utils/store\";\nclass CapsuleButtonInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n left: { type: Number, optional: false },\n top: { type: Number, optional: false },\n right: { type: Number, optional: false },\n bottom: { type: Number, optional: false },\n width: { type: Number, optional: false },\n height: { type: Number, optional: false }\n };\n },\n name: \"CapsuleButtonInfo\"\n };\n }\n constructor(options, metadata = CapsuleButtonInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.left = this.__props__.left;\n this.top = this.__props__.top;\n this.right = this.__props__.right;\n this.bottom = this.__props__.bottom;\n this.width = this.__props__.width;\n this.height = this.__props__.height;\n delete this.__props__;\n }\n}\n// 小程序胶囊按钮信息\nconst scrollThreshold = 30; // 降低滚动阈值,使其更灵敏\nclass SortTab extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false }\n };\n },\n name: \"SortTab\"\n };\n }\n constructor(options, metadata = SortTab.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n delete this.__props__;\n }\n}\n// 排序标签\nconst defaultLoadLimit = 6;\n// 前置声明内部加载函数\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const statusBarHeight = ref(0);\n const scrollHeight = ref(0);\n const refreshing = ref(false);\n const loading = ref(false);\n const isFirstShow = ref(true);\n const hasMore = ref(true);\n const activeSort = ref('recommend'); // 默认展示智能推荐\n const activeFilter = ref('recommend');\n const currentPage = ref(1);\n const priceAscending = ref(true); // 价格排序方向:true=升序,false=降序\n // 小程序胶囊按钮信息类型\n const capsuleButtonInfo = ref(null);\n const navBarRight = ref(0); // 导航栏右侧预留空间\n // 数据源\n const hotProducts = ref([]);\n const recommendedProducts = ref([]);\n const hotKeywords = ref([]);\n // 屏幕尺寸检测\n const isMobile = ref(false);\n const showLoadMore = ref(false);\n // 导航栏显示控制\n const showNavbar = ref(true);\n const lastScrollTop = ref(0);\n const scrollingUp = ref(false);\n // 分类数据 - 从Supabase获取\n const categoryTab = ref('category');\n const categories = ref([]);\n const brands = ref([]);\n // 一级分类和二级分类\n const parentCategories = ref([]);\n const subCategories = ref([]);\n const selectedParentCategory = ref(null);\n const showSubCategories = ref(false);\n const sortTabs = [\n new SortTab({ id: 'recommend', name: '智能推荐' }),\n new SortTab({ id: 'sales', name: '销量' }),\n new SortTab({ id: 'price', name: '价格' }),\n new SortTab({ id: 'new', name: '新品' }),\n new SortTab({ id: 'discount', name: '特价' })\n ];\n // 健康资讯\n const healthNews = [\n new UTSJSONObject({\n id: 'news1',\n title: '秋季流感预防指南,科学防护健康过冬',\n tag: '健康科普',\n image: 'https://picsum.photos/800/400?random=health1'\n }),\n new UTSJSONObject({\n id: 'news2',\n title: '家庭常备药清单,为家人健康保驾护航',\n tag: '家庭用药',\n image: 'https://picsum.photos/800/400?random=health2'\n }),\n new UTSJSONObject({\n id: 'news3',\n title: '慢性病科学管理,提高生活质量',\n tag: '健康管理',\n image: 'https://picsum.photos/800/400?random=health3'\n })\n ];\n // 获取一级分类数据\n const loadCategories = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const categoriesData = yield supabaseService.getParentCategories();\n parentCategories.value = categoriesData;\n // 兼容其他使用 categories 的地方\n categories.value = categoriesData;\n uni.__f__('log', 'at pages/main/index.uvue:377', '一级分类数据:', UTS.JSON.stringify(parentCategories.value));\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:379', '加载分类数据失败:', error);\n parentCategories.value = [];\n categories.value = [];\n }\n }); };\n // 获取二级分类数据\n const loadSubCategories = (parentId) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n uni.__f__('log', 'at pages/main/index.uvue:388', '[loadSubCategories] 开始加载二级分类, parentId:', parentId);\n const subData = yield supabaseService.getSubCategories(parentId);\n uni.__f__('log', 'at pages/main/index.uvue:390', '[loadSubCategories] 获取到二级分类数量:', subData.length);\n uni.__f__('log', 'at pages/main/index.uvue:391', '[loadSubCategories] 二级分类数据:', UTS.JSON.stringify(subData));\n subCategories.value = subData;\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:394', '加载子分类数据失败:', error);\n subCategories.value = [];\n }\n }); };\n // 点击一级分类\n const onParentCategoryClick = (category) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/main/index.uvue:401', '[onParentCategoryClick] 点击一级分类:', category.name, 'id:', category.id);\n // 如果已经选中,则切换显示/隐藏二级分类\n if (selectedParentCategory.value != null && selectedParentCategory.value.id === category.id) {\n uni.__f__('log', 'at pages/main/index.uvue:405', '[onParentCategoryClick] 切换显示状态');\n showSubCategories.value = !showSubCategories.value;\n return Promise.resolve(null);\n }\n // 选中新的分类\n selectedParentCategory.value = category;\n showSubCategories.value = true;\n uni.__f__('log', 'at pages/main/index.uvue:413', '[onParentCategoryClick] showSubCategories 设置为 true');\n // 加载二级分类\n yield loadSubCategories(category.id);\n // 如果没有二级分类,直接跳转到分类页\n if (subCategories.value.length == 0) {\n uni.__f__('log', 'at pages/main/index.uvue:420', '[onParentCategoryClick] 没有二级分类,直接跳转到分类页');\n uni.setStorageSync('selectedCategory', category.id);\n uni.switchTab({\n url: '/pages/main/category'\n });\n }\n }); };\n // 点击二级分类\n const onSubCategoryClick = (category) => {\n // 跳转到分类页面\n uni.setStorageSync('selectedCategory', category.id);\n const timestamp = Date.now();\n const randomParam = Math.random().toString(36).substring(2, 8);\n const url = `/pages/main/category?categoryId=${category.id}&name=${encodeURIComponent(category.name)}×tamp=${timestamp}&random=${randomParam}`;\n uni.switchTab({\n url: '/pages/main/category'\n });\n };\n // 获取品牌数据\n const loadBrands = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const brandsData = yield supabaseService.getBrands();\n brands.value = brandsData;\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/index.uvue:447', '加载品牌失败:', e);\n brands.value = [];\n }\n }); };\n // 根据品牌名称获取图标\n const getBrandIcon = (name) => {\n if (name == null || name === '') {\n return '🏢';\n }\n // 常见品牌图标映射(使用数组方式避免 Object.keys 问题)\n const iconKeys = [\n '感冒', '发烧', '咳嗽', '消炎', '维生素', '钙片', '胃药', '止痛', '过敏', '皮肤', '眼药水', '口腔', '血压', '血糖', '血脂', '保健', '养生', '减肥', '美容', '母婴', '儿童', '老人', '男性', '女性', '维生素C', '维生素D', '蛋白粉', '鱼油', '蜂胶', '阿胶', '红枣', '枸杞', '菊花', '金银花', '口罩', '消毒液', '体温计', '创可贴', '棉签',\n '九芝堂', '同仁堂', '云南白药', '东阿阿胶', '太极', '江中', '三九', '华素制药', '汤臣倍健', '白云山', '修正', '葵花', '哈药', '扬子江', '恒瑞', '复星', '辉瑞', '阿斯利康', '罗氏', '默沙东', '赛诺菲', '诺华', '雅培', '雀巢', '蒙牛', '伊利', '海尔', '美的', '飞利浦', '西门子', '松下', '苏泊尔', '九阳', '华为', '小米', '苹果', '三星'\n ];\n const iconValues = [\n '💊', '🌡️', '😷', '🔬', '💊', '🦴', '🫁', '💉', '🌸', '🧴', '👁️', '🦷', '❤️', '🩸', '💓', '🧬', '🍵', '⚖️', '💅', '👶', '🧒', '👴', '♂️', '♀️', '🍊', '☀️', '🥛', '🐟', '🐝', '🍯', '🫘', '🌿', '🌼', '🌸', '😷', '🧴', '🌡️', '🩹', '🧺',\n '📜', '🏛️', '⛰️', '🍯', '☯️', '🌿', '9️⃣', '💊', '💪', '⛰️', '🩹', '🌻', '🧪', '🚢', '🔬', '⭐', '🧬', '🧪', '🧬', '💊', '🧬', '🔬', '🏥', '🥣', '🐄', '🥛', '🏠', '❄️', '🪒', '⚡', '🔋', '🍳', '🥛', '📱', '🍚', '🍎', '📱'\n ];\n // 尝试精确匹配\n for (let i = 0; i < iconKeys.length; i++) {\n if (name === iconKeys[i]) {\n return iconValues[i];\n }\n }\n // 尝试模糊匹配\n for (let i = 0; i < iconKeys.length; i++) {\n if (name.indexOf(iconKeys[i]) !== -1) {\n return iconValues[i];\n }\n }\n // 默认返回品牌图标\n return '🏢';\n };\n // 默认加载商品数量\n const doLoadHotProducts = (targetLimit, resolve, reject) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n let products = [];\n const limit = targetLimit;\n uni.__f__('log', 'at pages/main/index.uvue:492', '加载热销商品,当前排序方式:', activeSort.value, 'limit:', limit);\n switch (activeSort.value) {\n case 'sales':\n uni.__f__('log', 'at pages/main/index.uvue:496', '调用 getProductsBySales');\n products = yield supabaseService.getProductsBySales(limit);\n break;\n case 'price':\n uni.__f__('log', 'at pages/main/index.uvue:500', '调用 getProductsByPrice, 升序:', priceAscending.value);\n products = yield supabaseService.getProductsByPrice(limit, priceAscending.value);\n break;\n case 'new':\n uni.__f__('log', 'at pages/main/index.uvue:504', '调用 getProductsByNewest');\n products = yield supabaseService.getProductsByNewest(limit);\n break;\n case 'recommend':\n uni.__f__('log', 'at pages/main/index.uvue:508', '调用 getSmartRecommendations');\n products = yield supabaseService.getSmartRecommendations(limit);\n break;\n case 'discount':\n uni.__f__('log', 'at pages/main/index.uvue:512', '调用 getDiscountProducts');\n products = yield supabaseService.getDiscountProducts(limit);\n break;\n default:\n uni.__f__('log', 'at pages/main/index.uvue:516', '调用默认 getProductsBySales');\n products = yield supabaseService.getProductsBySales(limit);\n }\n uni.__f__('log', 'at pages/main/index.uvue:520', '加载到的商品数量:', products.length);\n if (products.length > 0) {\n uni.__f__('log', 'at pages/main/index.uvue:522', 'Sample Product Merchant IDs:');\n for (let i = 0; i < Math.min(products.length, 3); i++) {\n const p = products[i];\n uni.__f__('log', 'at pages/main/index.uvue:525', ` - Product: ${p.name}, MerchantID: ${p.merchant_id}`);\n }\n }\n hotProducts.value = products;\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:530', '加载热销商品失败:', error);\n hotProducts.value = [];\n }\n }); };\n // 获取热销商品(根据当前排序方式)\n function loadHotProducts(targetLimit) {\n return new Promise((resolve, reject) => {\n doLoadHotProducts(targetLimit, resolve, reject);\n });\n }\n // 前置声明推荐商品加载函数\n const doLoadRecommendedProducts = (limit, resolve, reject) => { return __awaiter(this, void 0, void 0, function* () {\n recommendedProducts.value = yield supabaseService.getRecommendedProducts(limit);\n resolve();\n }); };\n // 获取推荐商品\n function loadRecommendedProducts(limit) {\n return new Promise((resolve, reject) => {\n doLoadRecommendedProducts(limit, resolve, reject);\n });\n }\n // 加载热搜词\n const loadHotKeywords = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const keywords = yield supabaseService.getHotKeywords(10);\n hotKeywords.value = keywords;\n uni.__f__('log', 'at pages/main/index.uvue:560', '加载热搜词:', keywords.length, '个');\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:562', '加载热搜词失败:', error);\n hotKeywords.value = [];\n }\n }); };\n // 点击热搜词进行搜索\n const searchByKeyword = (keyword) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/search?keyword=${encodeURIComponent(keyword)}`\n });\n };\n // 初始化数据\n const initData = () => { return __awaiter(this, void 0, void 0, function* () {\n // 首先确保用户资料已加载\n try {\n yield getCurrentUser();\n uni.__f__('log', 'at pages/main/index.uvue:579', '主页初始化:用户资料加载完成');\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:581', '加载用户资料失败:', error);\n }\n yield loadCategories();\n yield loadBrands();\n yield loadHotKeywords();\n yield loadHotProducts(defaultLoadLimit);\n yield loadRecommendedProducts(defaultLoadLimit);\n }); };\n // 家庭常备药\n const familyItems = [\n new UTSJSONObject({\n id: 'family1',\n name: '创可贴',\n desc: '伤口护理',\n icon: '🩹',\n color: '#FF5722',\n categoryId: 'external'\n }),\n new UTSJSONObject({\n id: 'family2',\n name: '体温计',\n desc: '健康监测',\n icon: '🌡️',\n color: '#2196F3',\n categoryId: 'device'\n }),\n new UTSJSONObject({\n id: 'family3',\n name: '消毒酒精',\n desc: '环境消毒',\n icon: '🧪',\n color: '#ff5000',\n categoryId: 'external'\n }),\n new UTSJSONObject({\n id: 'family4',\n name: '口罩',\n desc: '日常防护',\n icon: '😷',\n color: '#607D8B',\n categoryId: 'device'\n }),\n new UTSJSONObject({\n id: 'family5',\n name: '退热贴',\n desc: '物理降温',\n icon: '🧊',\n color: '#00BCD4',\n categoryId: 'cold'\n }),\n new UTSJSONObject({\n id: 'family6',\n name: '棉签纱布',\n desc: '伤口处理',\n icon: '🩹',\n color: '#FF9800',\n categoryId: 'external'\n })\n ];\n // 初始化页面\n const initPage = () => {\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = systemInfo.statusBarHeight;\n // 获取小程序胶囊按钮信息\n try {\n capsuleButtonInfo.value = uni.getMenuButtonBoundingClientRect();\n if (capsuleButtonInfo.value != null) {\n // 计算导航栏右侧需要预留的空间(胶囊按钮宽度 + 左右边距)\n navBarRight.value = (systemInfo.screenWidth - capsuleButtonInfo.value.left) + 10;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/main/index.uvue:657', '获取胶囊按钮信息失败', e);\n navBarRight.value = 90; // 默认预留空间\n }\n // 计算滚动区域高度 - 不再需要手动计算,使用 Flex 布局自动撑开\n // scrollHeight.value = windowHeight - 50 \n // 检测屏幕尺寸\n const screenWidth = systemInfo.screenWidth;\n isMobile.value = screenWidth < 768; // 小于768px为小屏幕\n };\n // 生命周期\n onMounted(() => {\n initPage();\n initData();\n });\n // 页面显示时重置状态\n onShow(() => {\n uni.__f__('log', 'at pages/main/index.uvue:682', '=== index页面onShow被调用 ===');\n uni.__f__('log', 'at pages/main/index.uvue:683', '主页重新显示,重置页面状态');\n // 重置导航栏显示状态\n showNavbar.value = true;\n lastScrollTop.value = 0;\n // 重置滚动位置到顶部\n // 注意:这里不能直接操作scroll-view的滚动位置\n // 但可以重置一些页面状态\n // 注意:这里不再清除selectedCategory\n // 让分类页面在成功读取后自行清除\n // 这样可以确保分类页面能正确读取到传递的数据\n // 每次页面显示时尝试更新用户资料\n if (!isFirstShow.value) {\n getCurrentUser().then((profile = null) => {\n if (profile != null) {\n uni.__f__('log', 'at pages/main/index.uvue:701', '主页onShow:用户资料更新成功');\n }\n else {\n uni.__f__('log', 'at pages/main/index.uvue:703', '主页onShow:用户资料为空,可能未登录');\n }\n }).catch((error = null) => {\n uni.__f__('error', 'at pages/main/index.uvue:706', '主页onShow:加载用户资料失败:', error);\n });\n }\n else {\n isFirstShow.value = false;\n uni.__f__('log', 'at pages/main/index.uvue:710', '主页首次显示,跳过onShow中的用户资料检查,交由initData处理');\n }\n uni.__f__('log', 'at pages/main/index.uvue:713', '=== index页面onShow执行完成 ===');\n });\n // 处理滚动事件\n const handleScroll = (event = null) => {\n var _a;\n try {\n const eventObj = event;\n const detailRaw = eventObj.get('detail');\n if (detailRaw == null)\n return null;\n const detail = detailRaw;\n const scrollTop = (_a = detail.getNumber('scrollTop')) !== null && _a !== void 0 ? _a : 0;\n const currentTime = Date.now();\n // 判断滚动方向\n if (scrollTop > lastScrollTop.value) {\n // 向下滚动\n scrollingUp.value = false;\n // 向下滚动超过阈值时隐藏导航栏\n if (scrollTop > scrollThreshold && showNavbar.value) {\n showNavbar.value = false;\n }\n }\n else if (scrollTop < lastScrollTop.value) {\n // 向上滚动\n scrollingUp.value = true;\n // 向上滚动时显示导航栏\n if (!showNavbar.value) {\n showNavbar.value = true;\n }\n }\n // 滚动到顶部时强制显示导航栏\n if (scrollTop <= 10) {\n showNavbar.value = true;\n }\n lastScrollTop.value = scrollTop;\n // 调试信息(开发时可启用)\n // uni.__f__('log','at pages/main/index.uvue:751',`Scroll: ${scrollTop}, ShowNavbar: ${showNavbar.value}, ScrollingUp: ${scrollingUp.value}`)\n }\n catch (e) {\n // 忽略滚动事件处理错误\n }\n };\n // 重置导航栏显示状态(例如点击回到顶部时)\n const resetNavbar = () => {\n showNavbar.value = true;\n lastScrollTop.value = 0;\n };\n // 切换分类 - 跳转到分类页面并传递分类ID\n const switchCategory = (category = null) => {\n var _a, _b;\n uni.__f__('log', 'at pages/main/index.uvue:765', '=== switchCategory函数开始执行 ===');\n // 将 category 转换为 UTSJSONObject 以访问属性\n const catObj = (UTS.isInstanceOf(category, UTSJSONObject)) ? category : UTS.JSON.parse(UTS.JSON.stringify(category));\n const categoryId = (_a = catObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const categoryName = (_b = catObj.getString('name')) !== null && _b !== void 0 ? _b : '';\n uni.__f__('log', 'at pages/main/index.uvue:772', '分类ID:', categoryId, '分类名称:', categoryName);\n // 使用Storage传递参数,确保switchTab后能被读取\n uni.setStorageSync('selectedCategory', categoryId);\n // 生成唯一的时间戳和随机参数,确保每次跳转都是新的页面\n const timestamp = Date.now();\n const randomParam = Math.random().toString(36).substring(2, 8);\n // 构建带参数的URL,直接通过URL传递分类信息\n const url = `/pages/main/category?categoryId=${categoryId}&name=${encodeURIComponent(categoryName)}×tamp=${timestamp}&random=${randomParam}`;\n uni.switchTab({\n url: '/pages/main/category',\n success: () => {\n // 通过 Storage 传递参数已在上面设置\n uni.__f__('log', 'at pages/main/index.uvue:788', '跳转分类页面成功,categoryId:', categoryId);\n }\n });\n };\n const switchBrand = (brand) => {\n // 假设跳转到搜索结果页或者分类页带 filter\n uni.navigateTo({\n url: `/pages/mall/consumer/search?keyword=${encodeURIComponent(brand.name)}&type=brand&brandId=${brand.id}`\n });\n };\n // 切换排序\n const switchSort = (sortId) => {\n // 如果点击的是价格排序,切换升序/降序\n if (sortId === 'price' && activeSort.value === 'price') {\n priceAscending.value = !priceAscending.value;\n uni.__f__('log', 'at pages/main/index.uvue:805', '切换价格排序方向,升序:', priceAscending.value);\n }\n else {\n // 切换到其他排序时,重置价格排序为升序\n if (sortId !== 'price') {\n priceAscending.value = true;\n }\n activeSort.value = sortId;\n }\n hasMore.value = true; // 重置加载更多状态\n // 重新加载热销商品,排序由 Supabase 服务处理\n loadHotProducts(defaultLoadLimit);\n };\n // 切换筛选器\n const switchFilter = (filterId) => {\n activeFilter.value = filterId;\n // 重新加载推荐商品,筛选由 Supabase 服务处理\n loadRecommendedProducts(defaultLoadLimit);\n };\n // 查看新闻详情\n const viewNewsDetail = (news = null) => {\n uni.navigateTo({\n url: `/pages/news/detail?id=${news.id}`\n });\n };\n // 下拉刷新\n const onRefresh = () => { return __awaiter(this, void 0, void 0, function* () {\n refreshing.value = true;\n try {\n // 重新加载数据\n yield initData();\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/index.uvue:840', '刷新数据失败:', e);\n }\n finally {\n // 延迟关闭刷新动画,确保用户能看到刷新过程\n setTimeout(() => {\n refreshing.value = false;\n // 延迟显示提示,避免与动画冲突\n setTimeout(() => {\n uni.showToast({\n title: '刷新成功',\n icon: 'success'\n });\n }, 200);\n }, 800);\n }\n }); };\n // 加载更多\n const loadMore = () => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/main/index.uvue:858', '=== 触发触底事件 ===');\n if (loading.value) {\n uni.__f__('log', 'at pages/main/index.uvue:860', '正在加载中,跳过');\n return Promise.resolve(null);\n }\n showLoadMore.value = true;\n loading.value = true;\n try {\n // 获取当前热销商品的数量\n const currentCount = hotProducts.value.length;\n const nextPage = Math.floor(currentCount / 6) + 1;\n const additionalLimit = 6;\n uni.__f__('log', 'at pages/main/index.uvue:872', '开始加载更多,当前数量:', currentCount, '页码:', nextPage);\n // 加载更多商品\n let newProducts = [];\n switch (activeSort.value) {\n case 'sales':\n newProducts = yield supabaseService.getProductsBySales(currentCount + additionalLimit);\n break;\n case 'price':\n newProducts = yield supabaseService.getProductsByPrice(currentCount + additionalLimit, priceAscending.value);\n break;\n case 'new':\n newProducts = yield supabaseService.getProductsByNewest(currentCount + additionalLimit);\n break;\n case 'recommend':\n newProducts = yield supabaseService.getSmartRecommendations(currentCount + additionalLimit);\n break;\n case 'discount':\n newProducts = yield supabaseService.getDiscountProducts(currentCount + additionalLimit);\n break;\n default:\n newProducts = yield supabaseService.getProductsBySales(currentCount + additionalLimit);\n }\n uni.__f__('log', 'at pages/main/index.uvue:896', '加载到的新商品数量:', newProducts.length);\n // 检查是否还有更多数据\n if (newProducts.length <= currentCount) {\n hasMore.value = false;\n uni.showToast({\n title: '没有更多了',\n icon: 'none'\n });\n }\n else {\n // 更新商品列表\n hotProducts.value = newProducts;\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/main/index.uvue:910', '加载更多失败:', error);\n }\n finally {\n loading.value = false;\n // 稍微延迟隐藏加载条,让用户看到\n setTimeout(() => {\n showLoadMore.value = false;\n }, 500);\n }\n }); };\n // 添加到购物车\n const addToCart = (product = null) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n uni.showLoading({ title: '检查商品...' });\n try {\n // 将 product 转换为 UTSJSONObject 以访问属性\n const prodObj = (UTS.isInstanceOf(product, UTSJSONObject)) ? product : UTS.JSON.parse(UTS.JSON.stringify(product));\n const productId = (_a = prodObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const merchantId = (_b = prodObj.getString('merchant_id')) !== null && _b !== void 0 ? _b : '';\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(productId);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + productId\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(productId, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败,请先登录',\n icon: 'none'\n });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/index.uvue:962', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({\n title: '操作异常',\n icon: 'none'\n });\n }\n }); };\n // 扫码功能\n const onScan = () => {\n uni.scanCode(new UTSJSONObject({\n success: (res) => {\n uni.__f__('log', 'at pages/main/index.uvue:975', '扫码成功:', res);\n uni.showToast({\n title: '扫码成功: ' + res.result,\n icon: 'none'\n });\n },\n fail: (err) => {\n uni.__f__('error', 'at pages/main/index.uvue:982', '扫码失败:', err);\n }\n }));\n };\n // 相机功能\n const onCamera = () => {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n sourceType: ['camera'],\n success: (res) => {\n uni.__f__('log', 'at pages/main/index.uvue:993', '相机拍摄成功:', res.tempFilePaths[0]);\n uni.showToast({\n title: '已拍摄,正在识别...',\n icon: 'loading'\n });\n setTimeout(() => {\n uni.showToast({\n title: '识别成功',\n icon: 'success'\n });\n }, 1000);\n },\n fail: (err) => {\n uni.__f__('error', 'at pages/main/index.uvue:1006', '相机调用失败:', err);\n }\n }));\n };\n // 导航函数\n const navigateToSearch = () => { uni.navigateTo({ url: '/pages/mall/consumer/search' }); };\n const navigateToNews = () => { uni.navigateTo({ url: '/pages/news/list' }); };\n const navigateToProduct = (product = null) => {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l;\n // 将 product 转换为 UTSJSONObject 以访问属性\n const prodObj = (UTS.isInstanceOf(product, UTSJSONObject)) ? product : UTS.JSON.parse(UTS.JSON.stringify(product));\n // 使用productId(如果存在)作为跳转的商品ID,否则使用id\n const productId = (_b = (_a = prodObj.getString('productId')) !== null && _a !== void 0 ? _a : prodObj.getString('id')) !== null && _b !== void 0 ? _b : '';\n const name = (_c = prodObj.getString('name')) !== null && _c !== void 0 ? _c : '';\n // 使用 main_image_url\n const image = (_g = (_d = prodObj.getString('main_image_url')) !== null && _d !== void 0 ? _d : prodObj.getString('image')) !== null && _g !== void 0 ? _g : '/static/images/default-product.png';\n const price = ((_j = (_h = prodObj.getNumber('base_price')) !== null && _h !== void 0 ? _h : prodObj.getNumber('price')) !== null && _j !== void 0 ? _j : 0).toString();\n const marketPrice = (_l = (_k = prodObj.getNumber('market_price')) !== null && _k !== void 0 ? _k : prodObj.getNumber('original_price')) !== null && _l !== void 0 ? _l : (parseFloat(price) * 1.2);\n const originalPrice = marketPrice.toString();\n // 手动构建URL,避免双重编码问题\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${productId}&price=${price}&originalPrice=${originalPrice}&name=${encodeURIComponent(name)}&image=${encodeURIComponent(image)}`\n });\n };\n const navigateToCategory = (item = null) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/search?keyword=${encodeURIComponent(item.name)}&type=family`\n });\n };\n const navigateToConsultation = () => { return uni.navigateTo({ url: '/pages/medicine/consultation' }); };\n const navigateToPrescription = () => { return uni.navigateTo({ url: '/pages/medicine/prescription' }); };\n const navigateToOTC = () => { return uni.navigateTo({ url: '/pages/medicine/otc' }); };\n const navigateToHealthTools = () => { return uni.navigateTo({ url: '/pages/medicine/tools' }); };\n const navigateToReminders = () => { return uni.navigateTo({ url: '/pages/user/reminders' }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(onScan),\n b: _o(onCamera),\n c: _o(navigateToSearch),\n d: (navBarRight.value > 0 ? navBarRight.value : 16) + 'px',\n e: statusBarHeight.value + 'px',\n f: showNavbar.value ? 'translateY(0)' : 'translateY(-100%)',\n g: _n({\n active: categoryTab.value == 'category'\n }),\n h: _o($event => { return categoryTab.value = 'category'; }),\n i: _n({\n active: categoryTab.value == 'brand'\n }),\n j: _o($event => { return categoryTab.value = 'brand'; }),\n k: categoryTab.value === 'category'\n }, categoryTab.value === 'category' ? {\n l: _f(parentCategories.value, (category, k0, i0) => {\n return {\n a: _t(category.icon),\n b: _t(category.name),\n c: category.id,\n d: _o($event => { return onParentCategoryClick(category); }, category.id),\n e: category.color\n };\n })\n } : {}, {\n m: categoryTab.value === 'category' && showSubCategories.value && subCategories.value.length > 0\n }, categoryTab.value === 'category' && showSubCategories.value && subCategories.value.length > 0 ? {\n n: _t(selectedParentCategory.value?.name),\n o: _o($event => { return showSubCategories.value = false; }),\n p: _f(subCategories.value, (subCat, k0, i0) => {\n return {\n a: _t(subCat.icon),\n b: _t(subCat.name),\n c: subCat.id,\n d: _o($event => { return onSubCategoryClick(subCat); }, subCat.id)\n };\n })\n } : {}, {\n q: categoryTab.value === 'brand'\n }, categoryTab.value === 'brand' ? {\n r: _f(brands.value, (brand, k0, i0) => {\n return _e({\n a: brand.logo_url == null || brand.logo_url == ''\n }, brand.logo_url == null || brand.logo_url == '' ? {\n b: _t(getBrandIcon(brand.name))\n } : {\n c: brand.logo_url\n }, {\n d: _t(brand.name),\n e: brand.id,\n f: _o($event => { return switchBrand(brand); }, brand.id)\n });\n })\n } : {}, {\n s: statusBarHeight.value + 44 + 10 + 'px',\n t: _f(sortTabs, (tab, k0, i0) => {\n return {\n a: _t(tab.name),\n b: tab.id,\n c: _n({\n active: activeSort.value === tab.id\n }),\n d: _o($event => { return switchSort(tab.id); }, tab.id)\n };\n }),\n v: _f(hotProducts.value, (product, k0, i0) => {\n return {\n a: product.main_image_url,\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return navigateToProduct(product); }, product.id)\n };\n }),\n w: loading.value || showLoadMore.value\n }, loading.value || showLoadMore.value ? {} : {}, {\n x: refreshing.value,\n y: _o(onRefresh),\n z: _o(loadMore),\n A: _o(handleScroll),\n B: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.setStorageSync","uni.switchTab","uni.navigateTo","uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.showToast","uni.showLoading","uni.hideLoading","uni.scanCode","uni.chooseImage"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13af1cc6034d0a0f2c8b2b92aa66bc228fe43f68 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13af1cc6034d0a0f2c8b2b92aa66bc228fe43f68 deleted file mode 100644 index 3849248f..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13af1cc6034d0a0f2c8b2b92aa66bc228fe43f68 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted, computed } from 'vue';\nimport { onShow, onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass OrderTabItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n count: { type: Number, optional: false }\n };\n },\n name: \"OrderTabItem\"\n };\n }\n constructor(options, metadata = OrderTabItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.count = this.__props__.count;\n delete this.__props__;\n }\n}\nclass OrderProduct extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n spec: { type: String, optional: false },\n quantity: { type: Number, optional: false }\n };\n },\n name: \"OrderProduct\"\n };\n }\n constructor(options, metadata = OrderProduct.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.spec = this.__props__.spec;\n this.quantity = this.__props__.quantity;\n delete this.__props__;\n }\n}\nclass OrderItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n create_time: { type: String, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n merchant_id: { type: String, optional: false },\n shop_name: { type: String, optional: false },\n products: { type: UTS.UTSType.withGenerics(Array, [OrderProduct]), optional: false }\n };\n },\n name: \"OrderItem\"\n };\n }\n constructor(options, metadata = OrderItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.create_time = this.__props__.create_time;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.total_amount = this.__props__.total_amount;\n this.merchant_id = this.__props__.merchant_id;\n this.shop_name = this.__props__.shop_name;\n this.products = this.__props__.products;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'orders',\n setup(__props) {\n const orders = ref([]);\n const allOrdersList = ref([]); // Store all fetched orders for client-side filtering\n const loading = ref(false);\n const loadingMore = ref(false);\n const hasMore = ref(true);\n const refreshing = ref(false);\n const page = ref(1);\n const activeTab = ref('all');\n const statusBarHeight = ref(0);\n const searchKeyword = ref('');\n // 商家推销配置缓存\n const merchantShareFreeEnabled = ref(new UTSJSONObject());\n const merchantRequiredCount = ref(new UTSJSONObject());\n // 订单标签页 - 使用 ref 以便整体替换\n const orderTabs = ref([\n new OrderTabItem({ id: 'all', name: '全部', count: 0 }),\n new OrderTabItem({ id: 'pending', name: '待付款', count: 0 }),\n new OrderTabItem({ id: 'shipping', name: '待发货', count: 0 }),\n new OrderTabItem({ id: 'delivering', name: '待收货', count: 0 }),\n new OrderTabItem({ id: 'completed', name: '已完成', count: 0 }),\n new OrderTabItem({ id: 'aftersale', name: '售后', count: 0 }),\n new OrderTabItem({ id: 'cancelled', name: '已取消', count: 0 })\n ]);\n // 模拟状态筛选(除去\"全部\"后的其余标签)\n const orderTabsMobile = computed(() => {\n return orderTabs.value.filter((tab) => { return tab.id !== 'all'; });\n });\n // 辅助函数:获取状态码\n const getStatusByTab = (tabId) => {\n if (tabId == 'pending')\n return 1;\n if (tabId == 'shipping')\n return 2;\n if (tabId == 'delivering')\n return 3;\n if (tabId == 'completed')\n return 4;\n if (tabId == 'cancelled')\n return 5;\n if (tabId == 'aftersale')\n return 6;\n return 0;\n };\n // 格式化规格对象为友好的文本 - 必须在 parseSpecText 之前定义\n function formatSpecObj(obj = null) {\n if (obj == null)\n return '';\n if (typeof obj !== 'object') {\n // 非对象类型直接返回字符串形式\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number')\n return obj.toString();\n return '';\n }\n try {\n const objStr = UTS.JSON.stringify(obj);\n const objParsed = UTS.JSON.parse(objStr);\n if (objParsed == null)\n return '';\n const specObj = objParsed;\n // 使用 JSON.stringify 获取所有键\n const specObjStr = UTS.JSON.stringify(specObj);\n const specObjForKeys = UTS.JSON.parse(specObjStr);\n // 手动提取键值对\n const parts = [];\n // 尝试获取已知字段\n const colorVal = specObjForKeys.getString('Color');\n if (colorVal != null && colorVal != '') {\n parts.push('Color: ' + colorVal);\n }\n const sizeVal = specObjForKeys.getString('Size');\n if (sizeVal != null && sizeVal != '') {\n parts.push('Size: ' + sizeVal);\n }\n const defaultVal = specObjForKeys.getString('默认');\n if (defaultVal != null && defaultVal != '') {\n parts.push('默认: ' + defaultVal);\n }\n // 如果没有匹配到已知字段,尝试直接显示 JSON\n if (parts.length === 0) {\n // 尝试遍历对象\n const objAny = specObjForKeys;\n if (objAny != null) {\n return specObjStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n }\n return parts.join(' | ');\n }\n catch (e) {\n return '';\n }\n }\n // 辅助函数:解析规格文本\n function parseSpecText(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n // 如果是 JSON 字符串,尝试解析\n if (specs.startsWith('{') || specs.startsWith('[')) {\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed == null)\n return specs;\n return formatSpecObj(parsed);\n }\n catch (e) {\n return specs;\n }\n }\n return specs;\n }\n // 对于对象类型,格式化显示\n return formatSpecObj(specs);\n }\n // 辅助函数:更新标签计数\n const updateTabsCounts = (allOrders) => {\n const countAll = allOrders.length;\n const countPending = allOrders.filter((o) => { return o.status === 1; }).length;\n const countShipping = allOrders.filter((o) => { return o.status === 2; }).length;\n const countDelivering = allOrders.filter((o) => { return o.status === 3; }).length;\n const countCompleted = allOrders.filter((o) => { return o.status === 4; }).length;\n const countCancelled = allOrders.filter((o) => { return o.status === 5; }).length;\n const countAftersale = allOrders.filter((o) => { return o.status === 6 || o.status === 7; }).length;\n orderTabs.value[0].count = countAll;\n orderTabs.value[1].count = countPending;\n orderTabs.value[2].count = countShipping;\n orderTabs.value[3].count = countDelivering;\n orderTabs.value[4].count = countCompleted;\n orderTabs.value[5].count = countAftersale;\n orderTabs.value[6].count = countCancelled;\n };\n // 辅助函数:按标签筛选订单\n const filterOrdersByTab = () => {\n if (activeTab.value === 'all') {\n orders.value = allOrdersList.value;\n }\n else if (activeTab.value === 'aftersale') {\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === 6 || o.status === 7;\n });\n }\n else {\n const targetStatus = getStatusByTab(activeTab.value);\n orders.value = allOrdersList.value.filter((o) => {\n return o.status === targetStatus;\n });\n }\n };\n // 检查商家是否开启分享免单\n const isShareFreeEnabled = (merchantId) => {\n const val = merchantShareFreeEnabled.value.get(merchantId);\n return val === true;\n };\n // 获取商家要求的购买人数\n const getRequiredCount = (merchantId) => {\n const val = merchantRequiredCount.value.get(merchantId);\n if (val != null && typeof val === 'number') {\n return val;\n }\n return 4;\n };\n // 加载商家推销配置\n const loadMerchantPromotionConfigs = (orderList) => { return __awaiter(this, void 0, void 0, function* () {\n // 收集所有唯一的商家ID\n const merchantIds = new Set();\n for (let i = 0; i < orderList.length; i++) {\n const merchantId = orderList[i].merchant_id;\n const existingVal = merchantShareFreeEnabled.value.get(merchantId);\n if (merchantId != null && merchantId !== '' && existingVal == null) {\n merchantIds.add(merchantId);\n }\n }\n // 批量加载商家配置\n const merchantIdArray = Array.from(merchantIds);\n for (let i = 0; i < merchantIdArray.length; i++) {\n const merchantIdRaw = merchantIdArray[i];\n const merchantId = merchantIdRaw;\n try {\n const config = yield supabaseService.getMerchantPromotionConfig(merchantId);\n const promotionEnabled = config.get('promotion_enabled');\n const shareFreeEnabled = config.get('share_free_enabled');\n const requiredCount = config.get('required_count');\n const isEnabled = (promotionEnabled === true || promotionEnabled === 'true') &&\n (shareFreeEnabled === true || shareFreeEnabled === 'true');\n merchantShareFreeEnabled.value.set(merchantId, isEnabled);\n if (requiredCount != null) {\n merchantRequiredCount.value.set(merchantId, requiredCount);\n }\n else {\n merchantRequiredCount.value.set(merchantId, 4);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:428', '加载商家推销配置失败:', merchantId, e);\n merchantShareFreeEnabled.value.set(merchantId, false);\n merchantRequiredCount.value.set(merchantId, 4);\n }\n }\n }); };\n // 加载订单数据\n const loadOrders = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n loading.value = true;\n try {\n // Fetch all orders from Supabase (status=0)\n const fetchedOrders = yield supabaseService.getOrders(0);\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:442', '[loadOrders] 获取到订单数量:', fetchedOrders.length);\n // Map to View Model\n const mappedOrders = [];\n for (let i = 0; i < fetchedOrders.length; i++) {\n const order = fetchedOrders[i];\n // 使用 JSON 序列化转换\n const orderStr = UTS.JSON.stringify(order);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null)\n continue;\n const orderObj = orderParsed;\n const itemsRaw = orderObj.get('ml_order_items');\n const productsList = [];\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:457', '[loadOrders] 订单商品数据:', itemsRaw);\n if (itemsRaw != null) {\n // 先检查是否为数组\n if (Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:463', '[loadOrders] 商品数量:', items.length);\n for (let j = 0; j < items.length; j++) {\n const item = items[j];\n const itemStr = UTS.JSON.stringify(item);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n continue;\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n const specText = specRaw != null ? parseSpecText(specRaw) : '';\n const productId = itemObj.getString('product_id');\n const productName = itemObj.getString('product_name');\n const price = itemObj.getNumber('price');\n const imageUrl = itemObj.getString('image_url');\n const quantity = itemObj.getNumber('quantity');\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:480', '[loadOrders] 商品:', productName, '图片:', imageUrl, '规格:', specText);\n const productItem = new OrderProduct({\n id: productId !== null && productId !== void 0 ? productId : '',\n name: productName !== null && productName !== void 0 ? productName : '未知商品',\n price: price !== null && price !== void 0 ? price : 0,\n image: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '/static/default-product.png',\n spec: specText,\n quantity: quantity !== null && quantity !== void 0 ? quantity : 1\n });\n productsList.push(productItem);\n }\n }\n }\n const orderId = orderObj.getString('id');\n const orderNo = orderObj.getString('order_no');\n const orderStatus = orderObj.getNumber('order_status');\n const createdAt = orderObj.getString('created_at');\n const productAmount = orderObj.getNumber('product_amount');\n const shippingFee = orderObj.getNumber('shipping_fee');\n const totalAmount = orderObj.getNumber('total_amount');\n const paidAmount = orderObj.getNumber('paid_amount');\n const merchantId = orderObj.getString('merchant_id');\n // 从关联查询的 ml_shops 表获取店铺名称\n let shopName = '自营店铺';\n const shopsRaw = orderObj.get('ml_shops');\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const shopNameFromDb = shopObj.getString('shop_name');\n if (shopNameFromDb != null && shopNameFromDb != '') {\n shopName = shopNameFromDb;\n }\n }\n }\n else if (merchantId != null && merchantId != '') {\n shopName = '商家店铺';\n }\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:522', '[loadOrders] 订单号:', orderNo, '店铺:', shopName, '商品数:', productsList.length);\n // 如果没有商品数据,添加一个占位商品\n if (productsList.length === 0) {\n const placeholderProduct = new OrderProduct({\n id: 'placeholder',\n name: '订单商品',\n price: (_a = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _a !== void 0 ? _a : 0,\n image: '/static/default-product.png',\n spec: '',\n quantity: 1\n });\n productsList.push(placeholderProduct);\n }\n const mappedOrder = new OrderItem({\n id: orderId !== null && orderId !== void 0 ? orderId : '',\n order_no: orderNo !== null && orderNo !== void 0 ? orderNo : '',\n status: orderStatus !== null && orderStatus !== void 0 ? orderStatus : 1,\n create_time: createdAt !== null && createdAt !== void 0 ? createdAt : '',\n product_amount: productAmount !== null && productAmount !== void 0 ? productAmount : 0,\n shipping_fee: shippingFee !== null && shippingFee !== void 0 ? shippingFee : 0,\n total_amount: (_b = totalAmount !== null && totalAmount !== void 0 ? totalAmount : paidAmount) !== null && _b !== void 0 ? _b : 0,\n merchant_id: merchantId !== null && merchantId !== void 0 ? merchantId : '',\n shop_name: shopName,\n products: productsList\n });\n mappedOrders.push(mappedOrder);\n }\n // Sort by created_at desc - 直接使用 OrderItem 类型访问属性\n mappedOrders.sort((a, b) => {\n const timeA = new Date(a.create_time).getTime();\n const timeB = new Date(b.create_time).getTime();\n return timeB - timeA;\n });\n allOrdersList.value = mappedOrders;\n // Update tab counts\n updateTabsCounts(mappedOrders);\n // Apply current tab filter\n filterOrdersByTab();\n // 加载商家推销配置\n loadMerchantPromotionConfigs(mappedOrders);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:571', '加载订单异常:', err);\n uni.showToast({ title: '加载订单失败', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n // 生命周期\n onLoad((options = null) => {\n var _a;\n // 初始化状态栏高度\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n if (options == null)\n return null;\n const statusVal = options['status'];\n if (statusVal != null) {\n const status = statusVal;\n if (['all', 'pending', 'shipping', 'delivering', 'completed', 'aftersale', 'cancelled'].includes(status)) {\n activeTab.value = status;\n }\n }\n const typeVal = options['type'];\n if (typeVal != null) {\n const type = typeVal;\n if (type === 'pending')\n activeTab.value = 'pending';\n else if (type === 'shipped')\n activeTab.value = 'delivering'; // 映射到待收货\n else if (type === 'review')\n activeTab.value = 'completed'; // 映射到已完成\n else if (type === 'refund')\n activeTab.value = 'aftersale'; // 退款/售后跳转到售后标签页\n }\n });\n onShow(() => {\n loadOrders();\n });\n const formatDate = (isoString) => {\n if (isoString == '')\n return '';\n const date = new Date(isoString);\n return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}`;\n };\n // 辅助函数:获取当前订单数据(必须在 performSearch 之前定义)\n function getCurrentOrderData() {\n return allOrdersList.value;\n }\n // 搜索执行函数(必须在 onSearchInput 等之前定义)\n const performSearch = () => {\n const keyword = searchKeyword.value.trim().toLowerCase();\n if (keyword == '') {\n loadOrders();\n return null;\n }\n // 在当前订单数据中搜索\n const allOrders = getCurrentOrderData();\n const filtered = allOrders.filter((order = null) => {\n const orderObj = order;\n // 搜索订单号\n const orderNo = orderObj['order_no'];\n if (orderNo != null && orderNo.toLowerCase().includes(keyword)) {\n return true;\n }\n // 搜索商品名称\n const products = orderObj['products'];\n if (products != null && Array.isArray(products)) {\n return products.some((product = null) => {\n const productObj = product;\n const name = productObj['name'];\n return name != null && name.toLowerCase().includes(keyword);\n });\n }\n return false;\n });\n orders.value = filtered;\n };\n // 搜索相关函数\n const onSearchInput = (e = null) => {\n const eObj = e;\n const detail = eObj['detail'];\n searchKeyword.value = detail['value'];\n performSearch();\n };\n const onSearchConfirm = () => {\n performSearch();\n };\n const clearSearch = () => {\n searchKeyword.value = '';\n performSearch();\n };\n const formatSpec = (specs = null) => {\n if (specs == null)\n return '';\n if (typeof specs === 'string')\n return specs;\n if (typeof specs === 'object') {\n return UTS.JSON.stringify(specs);\n }\n return '';\n };\n // 切换标签\n const switchTab = (tabId) => {\n activeTab.value = tabId;\n filterOrdersByTab();\n };\n // 获取状态文本\n const getStatusText = (status) => {\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n // 获取状态类名\n const getStatusClass = (status) => {\n if (status == 1)\n return 'status-pending';\n if (status == 2)\n return 'status-shipping';\n if (status == 3)\n return 'status-delivering';\n if (status == 4)\n return 'status-completed';\n if (status == 5)\n return 'status-cancelled';\n if (status == 6)\n return 'status-refunding';\n if (status == 7)\n return 'status-refunded';\n return 'status-unknown';\n };\n // 联系卖家\n const contactSeller = (order) => {\n if (order.merchant_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${order.merchant_id}`\n });\n }\n else {\n uni.showToast({\n title: '暂无卖家联系方式',\n icon: 'none'\n });\n }\n };\n // 删除订单\n const deleteOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '订单已删除',\n icon: 'success'\n });\n loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n // 下拉刷新\n const onRefresh = () => {\n refreshing.value = true;\n setTimeout(() => {\n loadOrders();\n refreshing.value = false;\n uni.showToast({\n title: '刷新成功',\n icon: 'success'\n });\n }, 1000);\n };\n // 上拉加载更多\n const loadMore = () => {\n if (loadingMore.value || !hasMore.value)\n return null;\n // 暂未实现分页,直接返回\n hasMore.value = false;\n };\n // 订单操作函数\n const cancelOrder = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(orderId).then((success) => {\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '订单已取消',\n icon: 'success'\n });\n loadOrders();\n }\n else {\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n }\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '取消失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n };\n const payOrder = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId}`\n });\n };\n const remindShipping = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n // 基础提醒\n uni.showLoading({ title: '正在提醒...' });\n try {\n // 查找订单中的商家ID\n const order = UTS.arrayFind(orders.value, o => { return o.id === orderId; });\n if (order != null) {\n const merchantId = order.merchant_id;\n const orderNo = order.order_no;\n if (merchantId != '') {\n // 向商家发送自动催单消息\n const message = `你好,我的订单[${orderNo}]还没有发货,请尽快安排,谢谢。`;\n const success = yield supabaseService.sendChatMessage(message, merchantId);\n if (success) {\n uni.__f__('log', 'at pages/mall/consumer/orders.uvue:826', '催单消息发送成功');\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/orders.uvue:828', '催单消息发送失败,可能是由于网络原因');\n }\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:833', '提醒发货异常:', e);\n }\n finally {\n uni.hideLoading();\n }\n uni.showToast({\n title: '已提醒卖家发货',\n icon: 'success'\n });\n }); };\n const viewLogistics = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n };\n // goReview 必须在 doConfirmReceipt 之前定义,因为 doConfirmReceipt 会调用它\n const goReview = (order) => {\n const productIds = order.products.map((p) => {\n return p.id;\n }).join(',');\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${orderId}&productIds=${productIds}`\n });\n };\n const doConfirmReceipt = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '处理中...' });\n try {\n const result = yield supabaseService.confirmReceipt(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({\n title: '收货成功',\n icon: 'success'\n });\n // 更新 allOrdersList 中的订单状态\n const allIndex = allOrdersList.value.findIndex((o) => { return o.id === orderId; });\n if (allIndex !== -1) {\n allOrdersList.value[allIndex].status = 4;\n allOrdersList.value = [...allOrdersList.value];\n }\n // 更新标签计数\n updateTabsCounts(allOrdersList.value);\n // 重新应用当前标签筛选\n filterOrdersByTab();\n // 跳转到评价页面\n setTimeout(() => {\n const order = UTS.arrayFind(allOrdersList.value, (o) => { return o.id === orderId; });\n if (order != null) {\n goReview(order);\n }\n }, 1000);\n }\n else {\n uni.showToast({\n title: (_a = result.error) !== null && _a !== void 0 ? _a : '确认收货失败',\n icon: 'none'\n });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.showToast({\n title: '系统异常',\n icon: 'none'\n });\n }\n }); };\n const confirmReceipt = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '请确认您已收到商品,且商品无误',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceipt(orderId);\n }\n }\n }));\n };\n const repurchase = (order) => {\n const products = order.products;\n if (products.length === 0) {\n uni.showToast({\n title: '订单无商品',\n icon: 'none'\n });\n return null;\n }\n uni.showLoading({ title: '处理中...' });\n let completed = 0;\n const total = products.length;\n let successCount = 0;\n for (let i = 0; i < products.length; i++) {\n const product = products[i];\n const productId = product.id;\n const merchantId = order.merchant_id;\n if (productId != null && productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId !== null && merchantId !== void 0 ? merchantId : '').then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({\n title: `已添加${successCount}件商品`,\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败',\n icon: 'none'\n });\n }\n }\n }\n }\n };\n const viewOrderDetail = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?id=${orderId}`\n });\n };\n const onApplyRefund = (order) => {\n const orderId = order.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${orderId}`\n });\n };\n const viewRefundProgress = (orderId) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n };\n const doCancelRefund = (orderId) => { return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '处理中...' });\n const result = yield supabaseService.cancelRefund(orderId);\n uni.hideLoading();\n if (result.success) {\n uni.showToast({ title: '已取消退款', icon: 'success' });\n loadOrders();\n }\n else {\n uni.showToast({ title: result.message, icon: 'none' });\n }\n }); };\n // 取消退款申请\n const cancelRefund = (orderId) => {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消退款申请吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelRefund(orderId);\n }\n }\n }));\n };\n // 处理订单操作\n const handleOrderAction = (order, action) => {\n if (action === '取消订单') {\n cancelOrder(order.id);\n }\n else if (action === '联系卖家') {\n contactSeller(order);\n }\n else if (action === '提醒发货') {\n remindShipping(order.id);\n }\n else if (action === '申请退款' || action === '申请售后') {\n onApplyRefund(order);\n }\n else if (action === '查看物流') {\n viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n confirmReceipt(order.id);\n }\n else if (action === '再次购买') {\n repurchase(order);\n }\n else if (action === '删除订单') {\n deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n viewRefundProgress(order.id);\n }\n else if (action === '取消退款') {\n cancelRefund(order.id);\n }\n };\n // 显示订单操作菜单\n const showOrderMenu = (order) => {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['取消退款', '退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n handleOrderAction(order, action);\n }\n });\n };\n // 导航函数\n const navigateToSearch = () => {\n uni.navigateTo({ url: '/pages/mall/consumer/search' });\n };\n const navigateToProduct = (product) => {\n const productId = product.id;\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${productId}` });\n };\n const goShopping = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n const shareForFree = (order) => { return __awaiter(this, void 0, void 0, function* () {\n if (order.products.length === 0) {\n uni.showToast({ title: '没有可分享的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n const firstProduct = order.products[0];\n try {\n uni.showLoading({ title: '创建分享...' });\n const result = yield supabaseService.createShareRecord(firstProduct.id, order.id, '', firstProduct.name, firstProduct.image, firstProduct.price);\n uni.hideLoading();\n const shareIdRaw = result.get('id');\n const shareCodeRaw = result.get('share_code');\n if (shareIdRaw != null && shareCodeRaw != null) {\n const shareId = shareIdRaw;\n const shareCode = shareCodeRaw;\n uni.showModal(new UTSJSONObject({\n title: '分享成功',\n content: `您的分享码: ${shareCode}\\n分享给好友,当有4人购买后即可免单!`,\n confirmText: '查看详情',\n success: (res) => {\n if (res.confirm) {\n uni.navigateTo({ url: `/pages/mall/consumer/share/detail?id=${shareId}` });\n }\n }\n }));\n }\n else {\n uni.showToast({ title: '分享创建失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/orders.uvue:1153', '[shareForFree] 创建分享失败:', e);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: searchKeyword.value,\n b: _o(onSearchInput),\n c: _o(onSearchConfirm),\n d: searchKeyword.value\n }, searchKeyword.value ? {\n e: _o(clearSearch)\n } : {}, {\n f: statusBarHeight.value + 'px',\n g: activeTab.value === 'all'\n }, activeTab.value === 'all' ? {} : {}, {\n h: _n({\n active: activeTab.value === 'all'\n }),\n i: _o($event => { return switchTab('all'); }),\n j: _f(orderTabsMobile.value, (tab, k0, i0) => {\n return _e({\n a: _t(tab.name),\n b: tab.count > 0\n }, tab.count > 0 ? {\n c: _t(tab.count)\n } : {}, {\n d: activeTab.value === tab.id\n }, activeTab.value === tab.id ? {} : {}, {\n e: tab.id,\n f: _n({\n active: activeTab.value === tab.id\n }),\n g: _o($event => { return switchTab(tab.id); }, tab.id)\n });\n }),\n k: !loading.value && orders.value.length === 0\n }, !loading.value && orders.value.length === 0 ? {\n l: _o(goShopping)\n } : {\n m: _f(orders.value, (order, k0, i0) => {\n return _e({\n a: _t(order.shop_name != null && order.shop_name != '' ? order.shop_name : '自营店铺'),\n b: _t(getStatusText(order.status)),\n c: _n(getStatusClass(order.status)),\n d: _o($event => { return showOrderMenu(order); }, order.id),\n e: _f(order.products, (product, k1, i1) => {\n return {\n a: product.image,\n b: _o($event => { return navigateToProduct(product); }, product.id),\n c: _t(product.name),\n d: _t(product.spec),\n e: _t(product.price),\n f: _t(product.quantity),\n g: product.id\n };\n }),\n f: _t(formatDate(order.create_time)),\n g: _t(order.products.length),\n h: _t(order.total_amount),\n i: order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id)\n }, order.status >= 2 && order.status <= 4 && isShareFreeEnabled(order.merchant_id) ? {\n j: _t(getRequiredCount(order.merchant_id)),\n k: _o($event => { return shareForFree(order); }, order.id)\n } : {}, {\n l: order.status === 1\n }, order.status === 1 ? {\n m: _o($event => { return cancelOrder(order.id); }, order.id),\n n: _o($event => { return payOrder(order.id); }, order.id)\n } : {}, {\n o: order.status === 2\n }, order.status === 2 ? {\n p: _o($event => { return remindShipping(order.id); }, order.id),\n q: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n r: order.status === 3\n }, order.status === 3 ? {\n s: _o($event => { return viewLogistics(order.id); }, order.id),\n t: _o($event => { return confirmReceipt(order.id); }, order.id),\n v: _o($event => { return onApplyRefund(order); }, order.id)\n } : {}, {\n w: order.status === 4\n }, order.status === 4 ? {\n x: _o($event => { return goReview(order); }, order.id),\n y: _o($event => { return onApplyRefund(order); }, order.id),\n z: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n A: order.status === 5\n }, order.status === 5 ? {\n B: _o($event => { return viewOrderDetail(order.id); }, order.id)\n } : {}, {\n C: order.status === 6\n }, order.status === 6 ? {\n D: _o($event => { return viewOrderDetail(order.id); }, order.id),\n E: _o($event => { return cancelRefund(order.id); }, order.id),\n F: _o($event => { return viewRefundProgress(order.id); }, order.id)\n } : {}, {\n G: order.status === 7\n }, order.status === 7 ? {\n H: _o($event => { return viewOrderDetail(order.id); }, order.id),\n I: _o($event => { return repurchase(order); }, order.id)\n } : {}, {\n J: _o(() => { }, order.id),\n K: order.id,\n L: _o($event => { return viewOrderDetail(order.id); }, order.id)\n });\n })\n }, {\n n: loadingMore.value\n }, loadingMore.value ? {} : {}, {\n o: !hasMore.value && orders.value.length > 0\n }, !hasMore.value && orders.value.length > 0 ? {} : {}, {\n p: refreshing.value,\n q: _o(onRefresh),\n r: _o(loadMore),\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/orders.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.getSystemInfoSync","uni.navigateTo","uni.showLoading","uni.hideLoading","uni.showModal","uni.showActionSheet","uni.switchTab"],"map":"{\"version\":3,\"file\":\"orders.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"orders.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13be0eb2620141967a69678fe4992f2492509d54 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13be0eb2620141967a69678fe4992f2492509d54 deleted file mode 100644 index 8fd0c213..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/13be0eb2620141967a69678fe4992f2492509d54 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { UserType, ApiResponseType } from '@/types/mall-types';\nclass TicketType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n user_name: { type: String, optional: false },\n priority: { type: Number, optional: false },\n status: { type: Number, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"TicketType\"\n };\n }\n constructor(options, metadata = TicketType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.user_name = this.__props__.user_name;\n this.priority = this.__props__.priority;\n this.status = this.__props__.status;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile',\n setup(__props) {\n const serviceInfo = ref({\n id: '',\n phone: '',\n nickname: '客服专员',\n avatar_url: '',\n work_id: 'CS001'\n });\n const onlineStatus = ref(1); // 1: 在线, 0: 离线\n const queueCount = ref(3);\n const serviceRating = ref(4.7);\n const ticketCounts = ref(new UTSJSONObject({\n total: 0,\n pending: 0,\n processing: 0,\n completed: 0\n }));\n const todayStats = ref(new UTSJSONObject({\n tickets: 28,\n satisfaction: 96.5,\n avgTime: 8.5,\n onlineTime: 7.5\n }));\n const currentTicket = ref(new TicketType({\n id: 'ticket001',\n title: '订单配送问题咨询',\n description: '我的订单已经发货3天了,但是物流信息一直没有更新,请帮我查看一下具体情况。',\n user_name: '张先生',\n priority: 2,\n status: 2,\n created_at: '2024-12-01 14:30:00'\n }));\n const recentTickets = ref([]);\n const ratingBreakdown = ref([\n new UTSJSONObject({ score: 5, percentage: 68, count: 156 }),\n new UTSJSONObject({ score: 4, percentage: 22, count: 51 }),\n new UTSJSONObject({ score: 3, percentage: 8, count: 18 }),\n new UTSJSONObject({ score: 2, percentage: 2, count: 4 }),\n new UTSJSONObject({ score: 1, percentage: 0, count: 0 })\n ]);\n // 生命周期\n onMounted(() => {\n loadServiceInfo();\n loadTicketCounts();\n loadRecentTickets();\n });\n // 方法\n function loadServiceInfo() {\n // 模拟加载客服信息\n serviceInfo.value = {\n id: 'service001',\n phone: '13666666666',\n email: 'service@mall.com',\n nickname: '小王客服',\n avatar_url: '/static/service-avatar.png',\n gender: 1,\n user_type: 2,\n status: 1,\n created_at: '2024-01-01',\n work_id: 'CS001'\n };\n }\n function loadTicketCounts() {\n // 模拟加载工单统计\n ticketCounts.value = {\n total: 45,\n pending: 8,\n processing: 3,\n completed: 34\n };\n }\n function loadRecentTickets() {\n // 模拟加载最近工单\n recentTickets.value = [\n {\n id: 'ticket002',\n title: '退款申请处理',\n description: '申请退款',\n user_name: '李女士',\n priority: 1,\n status: 3,\n created_at: '2024-12-01 13:00:00'\n },\n {\n id: 'ticket003',\n title: '商品质量问题',\n description: '商品质量投诉',\n user_name: '王先生',\n priority: 3,\n status: 3,\n created_at: '2024-12-01 11:30:00'\n },\n {\n id: 'ticket004',\n title: '账户密码重置',\n description: '忘记密码需要重置',\n user_name: '赵女士',\n priority: 1,\n status: 3,\n created_at: '2024-12-01 10:15:00'\n }\n ];\n }\n function getServiceStatus() {\n return onlineStatus.value === 1 ? '在线服务中' : '离线状态';\n }\n function getPriorityText(priority) {\n const priorityMap = new UTSJSONObject({\n 1: '低',\n 2: '中',\n 3: '高',\n 4: '紧急'\n });\n return priorityMap[priority] || '普通';\n }\n function getTicketStatusText(status) {\n const statusMap = new UTSJSONObject({\n 1: '待处理',\n 2: '处理中',\n 3: '已完成',\n 4: '已关闭'\n });\n return statusMap[status] || '未知';\n }\n function formatTime(dateStr) {\n const date = new Date(dateStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const hours = Math.floor(diff / (1000 * 60 * 60));\n if (hours < 1) {\n return '刚刚';\n }\n else if (hours < 24) {\n return `${hours}小时前`;\n }\n else {\n return `${Math.floor(hours / 24)}天前`;\n }\n }\n // 交互方法\n function toggleOnlineStatus() {\n onlineStatus.value = onlineStatus.value === 1 ? 0 : 1;\n uni.showToast({\n title: onlineStatus.value === 1 ? '已上线服务' : '已下线',\n icon: 'success'\n });\n }\n function contactUser() {\n uni.showActionSheet({\n itemList: ['发送消息', '拨打电话'],\n success: (res) => {\n if (res.tapIndex === 0) {\n // 打开聊天界面\n uni.navigateTo({\n url: '/pages/mall/service/chat'\n });\n }\n else if (res.tapIndex === 1) {\n uni.makePhoneCall({\n phoneNumber: '13888888888'\n });\n }\n }\n });\n }\n function viewTicketDetail(ticketId = '') {\n var _a;\n const id = ticketId || ((_a = currentTicket.value) === null || _a === void 0 ? null : _a.id) || '';\n uni.navigateTo({\n url: `/pages/mall/service/ticket-detail?id=${id}`\n });\n }\n // 导航方法\n function editProfile() {\n uni.navigateTo({\n url: '/pages/mall/service/profile-edit'\n });\n }\n function goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/service/settings'\n });\n }\n function goToTickets(type) {\n uni.navigateTo({\n url: `/pages/mall/service/tickets?type=${type}`\n });\n }\n function goToRatings() {\n uni.navigateTo({\n url: '/pages/mall/service/ratings'\n });\n }\n function goToKnowledge(category) {\n uni.navigateTo({\n url: `/pages/mall/service/knowledge?category=${category}`\n });\n }\n function goToTraining() {\n uni.navigateTo({\n url: '/pages/mall/service/training'\n });\n }\n function goToSchedule() {\n uni.navigateTo({\n url: '/pages/mall/service/schedule'\n });\n }\n function goToHelp() {\n uni.navigateTo({\n url: '/pages/mall/common/help'\n });\n }\n function goToFeedback() {\n uni.navigateTo({\n url: '/pages/mall/common/feedback'\n });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: serviceInfo.value.avatar_url || '/static/default-avatar.png',\n b: _o(editProfile),\n c: _t(serviceInfo.value.nickname || serviceInfo.value.phone),\n d: _t(getServiceStatus()),\n e: _t(serviceRating.value),\n f: _t(serviceInfo.value.work_id),\n g: _o(goToSettings),\n h: _t(onlineStatus.value === 1 ? '在线服务' : '离线状态'),\n i: onlineStatus.value === 1 ? 1 : '',\n j: _o(toggleOnlineStatus),\n k: onlineStatus.value === 1\n }, onlineStatus.value === 1 ? {\n l: _t(queueCount.value)\n } : {}, {\n m: ticketCounts.value.total > 0\n }, ticketCounts.value.total > 0 ? {\n n: _t(ticketCounts.value.total)\n } : {}, {\n o: _o($event => { return goToTickets('all'); }),\n p: ticketCounts.value.pending > 0\n }, ticketCounts.value.pending > 0 ? {\n q: _t(ticketCounts.value.pending)\n } : {}, {\n r: _o($event => { return goToTickets('pending'); }),\n s: ticketCounts.value.processing > 0\n }, ticketCounts.value.processing > 0 ? {\n t: _t(ticketCounts.value.processing)\n } : {}, {\n v: _o($event => { return goToTickets('processing'); }),\n w: ticketCounts.value.completed > 0\n }, ticketCounts.value.completed > 0 ? {\n x: _t(ticketCounts.value.completed)\n } : {}, {\n y: _o($event => { return goToTickets('completed'); }),\n z: _t(todayStats.value.tickets),\n A: _t(todayStats.value.satisfaction),\n B: _t(todayStats.value.avgTime),\n C: _t(todayStats.value.onlineTime),\n D: currentTicket.value\n }, currentTicket.value ? {\n E: _t(currentTicket.value.id.slice(-6)),\n F: _t(getPriorityText(currentTicket.value.priority)),\n G: _n('priority-' + currentTicket.value.priority),\n H: _t(currentTicket.value.title),\n I: _t(currentTicket.value.description),\n J: _t(currentTicket.value.user_name),\n K: _t(formatTime(currentTicket.value.created_at)),\n L: _o(contactUser),\n M: _o(viewTicketDetail)\n } : {}, {\n N: _o($event => { return goToTickets('all'); }),\n O: recentTickets.value.length > 0\n }, recentTickets.value.length > 0 ? {\n P: _f(recentTickets.value, (ticket, k0, i0) => {\n return {\n a: _t(ticket.title),\n b: _t(getTicketStatusText(ticket.status)),\n c: _n('status-' + ticket.status),\n d: _t(ticket.user_name),\n e: _t(formatTime(ticket.created_at)),\n f: ticket.id,\n g: _o($event => { return viewTicketDetail(ticket.id); }, ticket.id)\n };\n })\n } : {}, {\n Q: _o(goToRatings),\n R: _t(serviceRating.value),\n S: _f(5, (i, k0, i0) => {\n return {\n a: i,\n b: i <= Math.floor(serviceRating.value) ? 1 : ''\n };\n }),\n T: _f(ratingBreakdown.value, (item, k0, i0) => {\n return {\n a: _t(item.score),\n b: item.percentage + '%',\n c: _t(item.count),\n d: item.score\n };\n }),\n U: _o($event => { return goToKnowledge('common'); }),\n V: _o($event => { return goToKnowledge('order'); }),\n W: _o($event => { return goToKnowledge('payment'); }),\n X: _o($event => { return goToKnowledge('delivery'); }),\n Y: _o(goToRatings),\n Z: _o(goToTraining),\n aa: _o(goToSchedule),\n ab: _o(goToHelp),\n ac: _o(goToFeedback),\n ad: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/service/profile.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/types/mall-types.uts"],"uniExtApis":["uni.showToast","uni.navigateTo","uni.makePhoneCall","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/16c649b516adfba01730df5680c7bd97fdaed29d b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/16c649b516adfba01730df5680c7bd97fdaed29d deleted file mode 100644 index f6abce78..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/16c649b516adfba01730df5680c7bd97fdaed29d +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport supa from \"@/components/supadb/aksupainstance\";\nexport class InsightDetail extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n report_id: { type: String, optional: false },\n type: { type: String, optional: false },\n impact: { type: String, optional: false },\n title: { type: String, optional: false },\n content: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"InsightDetail\"\n };\n }\n constructor(options, metadata = InsightDetail.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.report_id = this.__props__.report_id;\n this.type = this.__props__.type;\n this.impact = this.__props__.impact;\n this.title = this.__props__.title;\n this.content = this.__props__.content;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport class RelatedReport extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n type: { type: String, optional: false },\n period: { type: String, optional: false },\n generated_at: { type: String, optional: false }\n };\n },\n name: \"RelatedReport\"\n };\n }\n constructor(options, metadata = RelatedReport.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.type = this.__props__.type;\n this.period = this.__props__.period;\n this.generated_at = this.__props__.generated_at;\n delete this.__props__;\n }\n}\nexport function fetchInsightDetail(insightId) {\n return __awaiter(this, void 0, void 0, function* () {\n const res = yield supa\n .from('analytics_insights')\n .select('id, report_id, type, impact, title, content, created_at')\n .eq('id', insightId)\n .single();\n if ((res === null || res === void 0 ? null : res.error) != null) {\n throw res.error;\n }\n const it = res.data;\n if (it == null)\n return null;\n return {\n id: `${it.id}`,\n report_id: `${it.report_id || ''}`,\n type: `${it.type || 'info'}`,\n impact: `${it.impact || 'medium'}`,\n title: `${it.title || ''}`,\n content: `${it.content || ''}`,\n created_at: `${it.created_at || ''}`\n };\n });\n}\nexport function fetchRelatedReport(reportId) {\n return __awaiter(this, void 0, void 0, function* () {\n const rRes = yield supa\n .from('analytics_reports')\n .select('id, title, type, period, generated_at')\n .eq('id', reportId)\n .single();\n if ((rRes === null || rRes === void 0 ? null : rRes.error) != null) {\n throw rRes.error;\n }\n const r = rRes.data;\n if (r == null)\n return null;\n return {\n id: `${r.id}`,\n title: `${r.title}`,\n type: `${r.type}`,\n period: `${r.period}`,\n generated_at: `${r.generated_at || ''}`\n };\n });\n}\n//# sourceMappingURL=D:/companyproject/mall/services/analytics/insightDetailService.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"insightDetailService.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"insightDetailService.uts\"],\"names\":[],\"mappings\":\";OAAO,IAAI;AAEX,MAAM,OAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUzB,MAAM,OAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQzB,MAAM,UAAgB,kBAAkB,CAAC,SAAiB;;QACxD,MAAM,GAAG,GAAQ,MAAM,IAAI;aACxB,IAAI,CAAC,oBAAoB,CAAC;aAC1B,MAAM,CAAC,yDAAyD,CAAC;aACjE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aACnB,MAAM,EAAE,CAAA;QAEX,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,KAAK,KAAI,IAAI,EAAE;YACtB,MAAM,GAAG,CAAC,KAAK,CAAA;SAChB;QAED,MAAM,EAAE,GAAQ,GAAG,CAAC,IAAI,CAAA;QACxB,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QAE3B,OAAO;YACL,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;YACd,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,EAAE;YAClC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE;YAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,QAAQ,EAAE;YAClC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE;YAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,EAAE;YAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,EAAE;SACrC,CAAA;IACH,CAAC;CAAA;AAED,MAAM,UAAgB,kBAAkB,CAAC,QAAgB;;QACvD,MAAM,IAAI,GAAQ,MAAM,IAAI;aACzB,IAAI,CAAC,mBAAmB,CAAC;aACzB,MAAM,CAAC,uCAAuC,CAAC;aAC/C,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;aAClB,MAAM,EAAE,CAAA;QAEX,IAAI,CAAA,IAAI,aAAJ,IAAI,qBAAJ,IAAI,CAAE,KAAK,KAAI,IAAI,EAAE;YACvB,MAAM,IAAI,CAAC,KAAK,CAAA;SACjB;QAED,MAAM,CAAC,GAAQ,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QAE1B,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE;YACb,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;YACnB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;YACjB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;YACrB,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE;SACxC,CAAA;IACH,CAAC;CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c11fc12674fe87058da08258bb99e2e4ec8e848 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c11fc12674fe87058da08258bb99e2e4ec8e848 deleted file mode 100644 index 43594078..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c11fc12674fe87058da08258bb99e2e4ec8e848 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {\n searchQuery: '',\n activeCategory: 'all',\n categories: [\n new UTSJSONObject({ id: 'all', name: '全部' }),\n new UTSJSONObject({ id: 'order', name: '订单相关' }),\n new UTSJSONObject({ id: 'delivery', name: '配送操作' }),\n new UTSJSONObject({ id: 'account', name: '账号与认证' }),\n new UTSJSONObject({ id: 'payment', name: '收入与结算' }),\n new UTSJSONObject({ id: 'vehicle', name: '车辆管理' })\n ],\n questions: [\n new UTSJSONObject({\n id: 'q1',\n title: '如何接单?',\n content: '1. 进入【任务列表】页面\\n2. 查看“待接单”任务\\n3. 点击任务卡片 → 点击【接受订单】按钮\\n4. 系统将自动分配该订单给您,状态变为“已接单”\\n⚠️ 注意:同一时间只能接1个订单,接单后需在15分钟内取货。',\n category: ['order', 'delivery'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q2',\n title: '配送超时怎么办?',\n content: '若因交通堵塞、客户联系不上等不可抗力导致超时,请在送达后点击【异常上报】→ 选择原因并上传凭证(如截图、通话记录),系统将审核后减免处罚。建议提前10分钟联系客户确认收货时间。',\n category: ['delivery'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q3',\n title: '如何联系客户?',\n content: '在【任务详情】页点击【联系客户】→ 选择【拨打电话】或【发送短信】。系统会隐藏真实号码,保护双方隐私。首次联系建议使用语音电话,确保沟通效率。',\n category: ['delivery', 'order'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q4',\n title: '如何修改个人信息?',\n content: '进入【个人中心】→ 点击头像 → 【编辑资料】→ 修改姓名/电话/身份证号等信息 → 提交后等待审核(通常2小时内完成)。注意:身份证信息需上传清晰照片。',\n category: ['account'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q5',\n title: '配送费如何计算?',\n content: '基础配送费 = 距离费(¥1.5/km) + 时间费(¥0.5/分钟) + 服务费(¥2~5,根据时段浮动)\\n例如:3km + 15分钟 = 3×1.5 + 15×0.5 + 3 = ¥15\\n实际金额以订单详情页为准。',\n category: ['payment'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q6',\n title: '车辆信息如何绑定?',\n content: '【个人中心】→ 【车辆管理】→ 【添加车辆】→ 输入车牌号、车型、行驶证照片 → 提交审核。审核通过后,系统将自动关联您的配送任务。未绑定车辆无法接单。',\n category: ['vehicle'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q7',\n title: '如何查看收入明细?',\n content: '【个人中心】→ 【收入明细】→ 可按日/周/月筛选 → 查看每笔订单的配送费、奖励、扣款及到账时间。支持导出Excel报表(需企业版权限)。',\n category: ['payment'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q8',\n title: '任务被取消了怎么办?',\n content: '若客户取消订单,您将收到系统通知。已完成取货的订单,可申请补偿(路径:任务详情 → 【申请补偿】);未取货的订单无补偿。每月最多3次无责取消不计入考核。',\n category: ['order'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q9',\n title: '导航功能不准确?',\n content: '请检查:① 手机GPS权限是否开启;② 是否使用最新版APP;③ 在【设置】→ 【地图偏好】中切换高德/百度地图。仍无效请反馈至客服,并提供截图+坐标。',\n category: ['delivery'],\n expanded: false\n }),\n new UTSJSONObject({\n id: 'q10',\n title: '如何提升评分?',\n content: '评分由客户评价(70%)+ 系统考核(30%)组成。建议:① 准时送达(≤预计时间);② 礼貌沟通;③ 主动拍照上传(取货/送达);④ 避免频繁拒单。当前平均分:4.8/5.0',\n category: ['delivery', 'account'],\n expanded: false\n })\n ]\n };\n },\n computed: {\n currentQuestions() {\n if (this.searchQuery) {\n return this.searchResults;\n }\n return this.questions.filter(q => {\n return this.activeCategory === 'all' || q.category.includes(this.activeCategory);\n });\n },\n searchResults() {\n const query = this.searchQuery.toLowerCase();\n return this.questions.filter(q => {\n return q.title.toLowerCase().includes(query) ||\n q.content.toLowerCase().includes(query);\n });\n }\n },\n methods: {\n goBack() {\n uni.navigateBack();\n },\n onSearch() {\n // 实时搜索(可加防抖)\n if (!this.searchQuery) {\n this.activeCategory = 'all';\n }\n },\n clearSearch() {\n this.searchQuery = '';\n this.activeCategory = 'all';\n },\n switchCategory(categoryId = null) {\n this.activeCategory = categoryId;\n this.searchQuery = '';\n },\n toggleExpand(item = null) {\n item.expanded = !item.expanded;\n // 关闭其他展开项(可选)\n // this.questions.forEach(q => { if (q !== item) q.expanded = false })\n },\n jumpToQuestion(id = null) {\n const item = UTS.arrayFind(this.questions, q => { return q.id === id; });\n if (item) {\n item.expanded = true;\n this.activeCategory = 'all';\n this.searchQuery = '';\n // 滚动到该问题(简化版)\n uni.pageScrollTo(new UTSJSONObject({ scrollTop: 300, duration: 300 }));\n }\n },\n contactCustomerService() {\n uni.showActionSheet({\n itemList: ['在线客服', '电话咨询', '提交工单'],\n success: (res) => {\n if (res.tapIndex === 0) {\n uni.navigateTo({ url: '/pages/mall/common/customer-service' });\n }\n else if (res.tapIndex === 1) {\n uni.makePhoneCall({ phoneNumber: '400-123-4567' });\n }\n else {\n uni.navigateTo({ url: '/pages/mall/common/feedback?from=help' });\n }\n }\n });\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/help-center.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.pageScrollTo","uni.navigateTo","uni.makePhoneCall","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"help-center.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"help-center.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c5e1beb54dc7be862d2e1a6637d0cf601102569 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c5e1beb54dc7be862d2e1a6637d0cf601102569 deleted file mode 100644 index edb95ef7..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1c5e1beb54dc7be862d2e1a6637d0cf601102569 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {\n // 表单数据\n formData: new UTSJSONObject({\n plate_number: '',\n vehicle_type: 0,\n brand: '',\n color: '',\n vehicle_image: '',\n remark: ''\n }),\n // 车辆类型选项\n vehicleTypes: ['电动车', '摩托车', '面包车', '小型货车'],\n vehicleTypeIndex: 0\n };\n },\n methods: {\n // 返回上一页\n goBack() {\n uni.navigateBack();\n },\n // 选择车辆类型\n onVehicleTypeChange(e = null) {\n const index = parseInt(e.detail.value);\n this.vehicleTypeIndex = index;\n this.formData.vehicle_type = index + 1; // 假设后端从1开始\n },\n // 选择车辆照片\n chooseVehicleImage() {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n sizeType: ['compressed'],\n sourceType: ['album', 'camera'],\n success: (res) => {\n this.formData.vehicle_image = res.tempFilePaths[0];\n }\n }));\n },\n // 取消\n cancel() {\n uni.navigateBack();\n },\n // 保存\n saveVehicle() {\n // 验证输入\n if (!this.formData.plate_number.trim()) {\n uni.showToast({\n title: '请输入车牌号',\n icon: 'none'\n });\n return null;\n }\n // 模拟生成新车辆数据\n const newVehicle = new UTSJSONObject({\n id: 'vehicle_' + Date.now(),\n plate_number: this.formData.plate_number,\n vehicle_type: this.formData.vehicle_type,\n vehicle_type_name: this.vehicleTypes[this.vehicleTypeIndex],\n status: 1,\n driver_id: 'driver001',\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n brand: this.formData.brand,\n color: this.formData.color,\n image: this.formData.vehicle_image,\n remark: this.formData.remark\n }\n // 将新车辆数据保存到本地存储,以便上一页可以获取\n );\n // 将新车辆数据保存到本地存储,以便上一页可以获取\n uni.setStorageSync('new_vehicle_for_list', newVehicle);\n // 模拟保存过程\n uni.showLoading({\n title: '保存中...'\n });\n setTimeout(() => {\n uni.hideLoading();\n uni.showToast({\n title: '保存成功',\n icon: 'success'\n });\n // 保存成功后返回上一页\n uni.navigateBack();\n }, 1000);\n // 实际项目中应调用 API 保存数据\n uni.__f__('log', 'at pages/mall/delivery/vehicle-add.uvue:164', '保存的车辆数据:', newVehicle);\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/vehicle-add.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.chooseImage","uni.showToast","uni.setStorageSync","uni.showLoading","uni.hideLoading","uni.__f__"],"map":"{\"version\":3,\"file\":\"vehicle-add.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"vehicle-add.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d235b096d443e8eaefd6fa6a1c3d6a46a8264a2 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d235b096d443e8eaefd6fa6a1c3d6a46a8264a2 deleted file mode 100644 index 9d561889..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d235b096d443e8eaefd6fa6a1c3d6a46a8264a2 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, n as _n, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted, computed } from 'vue';\nimport { onPageScroll, onReachBottom } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nimport { Product } from \"@/utils/supabaseService\";\nclass HotSearchItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n keyword: { type: String, optional: false },\n hot: { type: Boolean, optional: false }\n };\n },\n name: \"HotSearchItemType\"\n };\n }\n constructor(options, metadata = HotSearchItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.keyword = this.__props__.keyword;\n this.hot = this.__props__.hot;\n delete this.__props__;\n }\n}\nclass GuessItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n image: { type: String, optional: false },\n sales: { type: Number, optional: false },\n merchant_id: { type: String, optional: false }\n };\n },\n name: \"GuessItemType\"\n };\n }\n constructor(options, metadata = GuessItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.image = this.__props__.image;\n this.sales = this.__props__.sales;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\nclass SearchResultType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n image: { type: String, optional: false },\n price: { type: Number, optional: false },\n specification: { type: String, optional: false },\n tag: { type: String, optional: false },\n sales: { type: Number, optional: false },\n merchant_id: { type: String, optional: false }\n };\n },\n name: \"SearchResultType\"\n };\n }\n constructor(options, metadata = SearchResultType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.image = this.__props__.image;\n this.price = this.__props__.price;\n this.specification = this.__props__.specification;\n this.tag = this.__props__.tag;\n this.sales = this.__props__.sales;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\nclass ShopResultType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n logo: { type: String, optional: false },\n productCount: { type: Number, optional: false }\n };\n },\n name: \"ShopResultType\"\n };\n }\n constructor(options, metadata = ShopResultType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.logo = this.__props__.logo;\n this.productCount = this.__props__.productCount;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'search',\n setup(__props) {\n const statusBarHeight = ref(0);\n const scrollHeight = ref(0);\n const searchKeyword = ref('');\n const showResults = ref(false);\n const loading = ref(false);\n const hasMore = ref(true);\n const isError = ref(false); // 错误状态控制\n const autoFocus = ref(true);\n const activeSort = ref('default'); // 当前排序方式: default, sales, price\n const priceSortAsc = ref(false); // 价格排序是否为升序\n const searchHistory = ref([]);\n const hotSearchList = ref([]);\n const guessList = ref([]);\n const allGuessItems = ref([]);\n const searchResults = ref([]);\n const searchShopResults = ref([]);\n const loadSearchHistory = () => {\n const history = uni.getStorageSync('searchHistory');\n if (history != null) {\n try {\n const parsed = UTS.JSON.parse(history);\n if (Array.isArray(parsed)) {\n searchHistory.value = parsed;\n }\n }\n catch (e) {\n searchHistory.value = [];\n }\n }\n };\n const saveSearchHistory = () => {\n uni.setStorageSync('searchHistory', UTS.JSON.stringify(searchHistory.value));\n };\n const addToHistory = (keyword) => {\n if (keyword == '')\n return null;\n const index = searchHistory.value.indexOf(keyword);\n if (index > -1) {\n searchHistory.value.splice(index, 1);\n }\n searchHistory.value.unshift(keyword);\n if (searchHistory.value.length > 10)\n UTS.arrayPop(searchHistory.value);\n saveSearchHistory();\n };\n const clearHistory = () => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定清空搜索历史吗?',\n success: (res) => {\n if (res.confirm) {\n searchHistory.value = [];\n uni.removeStorageSync('searchHistory');\n }\n }\n }));\n };\n const deleteHistoryItem = (index) => {\n searchHistory.value.splice(index, 1);\n saveSearchHistory();\n };\n const refreshGuessListItems = () => {\n if (allGuessItems.value.length > 0) {\n const arr = [];\n for (let i = 0; i < allGuessItems.value.length; i++) {\n arr.push(allGuessItems.value[i]);\n }\n for (let i = arr.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n const result = [];\n const limit = arr.length < 6 ? arr.length : 6;\n for (let i = 0; i < limit; i++) {\n result.push(arr[i]);\n }\n guessList.value = result;\n }\n };\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n isError.value = false;\n try {\n loadSearchHistory();\n // 获取热销商品,失败时使用空数组\n let hotProducts = [];\n try {\n const hotResult = yield supabaseService.getHotProducts(30);\n hotProducts = hotResult;\n }\n catch (hotError) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:378', '获取热销商品失败,使用空列表:', hotError);\n hotProducts = [];\n }\n const hotList = [];\n const limit1 = hotProducts.length < 10 ? hotProducts.length : 10;\n for (let i = 0; i < limit1; i++) {\n const p = hotProducts[i];\n const item = new HotSearchItemType({\n keyword: (_a = p.name) !== null && _a !== void 0 ? _a : '',\n hot: true\n });\n hotList.push(item);\n }\n hotSearchList.value = hotList;\n const allItems = [];\n for (let i = 0; i < hotProducts.length; i++) {\n const p = hotProducts[i];\n const saleCount = p.sale_count;\n const item = new GuessItemType({\n id: (_b = p.id) !== null && _b !== void 0 ? _b : '',\n name: (_c = p.name) !== null && _c !== void 0 ? _c : '',\n price: (_d = p.base_price) !== null && _d !== void 0 ? _d : 0,\n image: (_g = p.main_image_url) !== null && _g !== void 0 ? _g : '/static/default.jpg',\n sales: saleCount != null ? saleCount : 0,\n merchant_id: (_h = p.merchant_id) !== null && _h !== void 0 ? _h : ''\n });\n allItems.push(item);\n }\n allGuessItems.value = allItems;\n refreshGuessListItems();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:413', 'Load data failed', e);\n // 不再显示错误页面,允许使用空数据\n isError.value = false;\n }\n }); };\n const retryLoad = () => {\n uni.showLoading({ title: '重新加载中' });\n setTimeout(() => {\n uni.hideLoading();\n loadData();\n }, 1000);\n };\n const searchSuggestions = ref([]);\n let suggestTimer = 0;\n const fetchSuggestions = (kw) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (kw == '' || showResults.value)\n return Promise.resolve(null);\n try {\n const res = yield supabaseService.searchProducts(kw.trim(), 1, 5);\n if (res.data != null && res.data.length > 0) {\n const names = [];\n for (let i = 0; i < res.data.length; i++) {\n const p = res.data[i];\n let name = '';\n if (UTS.isInstanceOf(p, UTSJSONObject)) {\n name = (_a = p.getString('name')) !== null && _a !== void 0 ? _a : '';\n }\n else {\n const pObj = p;\n name = (_b = pObj.getString('name')) !== null && _b !== void 0 ? _b : '';\n }\n let found = false;\n for (let j = 0; j < names.length; j++) {\n if (names[j] === name) {\n found = true;\n break;\n }\n }\n if (found === false && name !== '') {\n names.push(name);\n }\n }\n searchSuggestions.value = names;\n }\n else {\n searchSuggestions.value = [];\n }\n }\n catch (e) {\n searchSuggestions.value = [];\n }\n }); };\n const currentPage = ref(1);\n const performSearch = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p;\n showResults.value = true;\n loading.value = true;\n currentPage.value = 1;\n const keyword = searchKeyword.value.trim();\n if (keyword == '') {\n loading.value = false;\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/search.uvue:479', 'Search execution started for keyword:', keyword);\n let sortBy = 'sales';\n let ascending = false;\n if (activeSort.value === 'price') {\n sortBy = 'price';\n ascending = priceSortAsc.value;\n }\n else if (activeSort.value === 'default') {\n sortBy = 'default';\n }\n try {\n uni.__f__('log', 'at pages/mall/consumer/search.uvue:491', 'Calling searchProducts with params:', keyword, currentPage.value, sortBy, ascending);\n const prodResp = yield supabaseService.searchProducts(keyword, currentPage.value, 20, sortBy, ascending);\n uni.__f__('log', 'at pages/mall/consumer/search.uvue:493', 'searchProducts response received:', prodResp.data != null ? prodResp.data.length : 0, 'items');\n let shopList = [];\n if (currentPage.value === 1 && activeSort.value === 'default') {\n const shopResp = yield supabaseService.searchShops(keyword);\n if (shopResp.data != null && shopResp.data.length > 0) {\n for (let i = 0; i < shopResp.data.length; i++) {\n const s = shopResp.data[i];\n const shopItem = new ShopResultType({\n id: (_a = s.id) !== null && _a !== void 0 ? _a : '',\n name: (_b = s.shop_name) !== null && _b !== void 0 ? _b : '',\n logo: (_c = s.shop_logo) !== null && _c !== void 0 ? _c : '/static/shop_logo_default.png',\n productCount: (_d = s.product_count) !== null && _d !== void 0 ? _d : 0\n });\n shopList.push(shopItem);\n }\n }\n }\n searchShopResults.value = shopList;\n const prodData = prodResp.data != null ? prodResp.data : [];\n const resultList = [];\n for (let i = 0; i < prodData.length; i++) {\n const p = prodData[i];\n let tag = '';\n const tagsRaw = p.tags;\n if (tagsRaw != null) {\n try {\n const tagsStr = p.tags;\n if (tagsStr != null) {\n const tags = UTS.JSON.parse(tagsStr);\n if (Array.isArray(tags) && tags.length > 0) {\n const firstTag = tags[0];\n tag = firstTag != null ? firstTag : '';\n }\n }\n }\n catch (e) { }\n }\n const searchItem = new SearchResultType({\n id: (_g = p.id) !== null && _g !== void 0 ? _g : '',\n name: (_h = p.name) !== null && _h !== void 0 ? _h : '',\n image: (_j = p.main_image_url) !== null && _j !== void 0 ? _j : '/static/default.jpg',\n price: (_k = p.base_price) !== null && _k !== void 0 ? _k : 0,\n specification: (_l = p.specification) !== null && _l !== void 0 ? _l : '标准规格',\n tag: tag,\n sales: (_m = p.sale_count) !== null && _m !== void 0 ? _m : 0,\n merchant_id: (_p = p.merchant_id) !== null && _p !== void 0 ? _p : ''\n });\n resultList.push(searchItem);\n }\n searchResults.value = resultList;\n hasMore.value = prodResp.hasmore;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:548', 'Search failed detailed error:', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n const initPage = () => {\n var _a;\n try {\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n const windowHeight = systemInfo.windowHeight;\n scrollHeight.value = windowHeight - (60 + statusBarHeight.value);\n loadData();\n const pages = getCurrentPages();\n if (pages.length > 0) {\n const currentPageObj = pages[pages.length - 1];\n // @ts-ignore\n const options = currentPageObj.options;\n if (options != null) {\n const optObj = options;\n const kwRaw = optObj.getString('keyword');\n if (kwRaw != null && kwRaw !== '') {\n const decoded = decodeURIComponent(kwRaw);\n const keyword = decoded != null ? decoded : kwRaw;\n searchKeyword.value = keyword;\n const typeVal = optObj.getString('type');\n if (typeVal === 'family' || typeVal === 'brand') {\n if (typeVal === 'family') {\n addToHistory(keyword);\n }\n showResults.value = true;\n loading.value = true;\n performSearch();\n }\n }\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:589', '初始化失败', e);\n isError.value = true;\n }\n };\n onMounted(() => {\n initPage();\n });\n const onInput = (e = null) => {\n try {\n let val = '';\n // 处理 input 事件的不同事件对象格式\n if (e != null) {\n // UTSJSONObject 格式 (e.detail.value)\n if (UTS.isInstanceOf(e, UTSJSONObject)) {\n const eObj = e;\n const detailObj = eObj.get('detail');\n if (detailObj != null && UTS.isInstanceOf(detailObj, UTSJSONObject)) {\n const detail = detailObj;\n const v = detail.get('value');\n val = v != null ? v : '';\n }\n }\n else {\n // 尝试转换为 UTSJSONObject\n const eObj = UTS.JSON.parse(UTS.JSON.stringify(e));\n const detailObj = eObj.get('detail');\n if (detailObj != null) {\n const detail = detailObj;\n const v = detail.get('value');\n val = v != null ? v : '';\n }\n else {\n const v = eObj.get('value');\n val = v != null ? v : '';\n }\n }\n }\n searchKeyword.value = val;\n if (val == '') {\n showResults.value = false;\n searchSuggestions.value = [];\n return null;\n }\n if (suggestTimer > 0)\n clearTimeout(suggestTimer);\n suggestTimer = setTimeout(() => {\n fetchSuggestions(val);\n }, 300);\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:638', 'onInput error:', err);\n }\n };\n const clearSearch = () => {\n searchKeyword.value = '';\n showResults.value = false;\n };\n const onSearch = () => {\n if (searchKeyword.value.trim() == '')\n return null;\n addToHistory(searchKeyword.value.trim());\n performSearch();\n };\n const searchFromHistory = (keyword) => {\n searchKeyword.value = keyword;\n performSearch();\n };\n const searchFromHot = (keyword) => {\n searchKeyword.value = keyword;\n addToHistory(keyword);\n performSearch();\n };\n const selectSuggestion = (suggestion) => {\n searchKeyword.value = suggestion;\n addToHistory(suggestion);\n performSearch();\n };\n const switchSort = (type) => {\n if (type === 'price') {\n if (activeSort.value === 'price') {\n priceSortAsc.value = !priceSortAsc.value;\n }\n else {\n activeSort.value = 'price';\n priceSortAsc.value = true; // 默认升序\n }\n }\n else {\n activeSort.value = type;\n }\n // 重新执行搜索以获取正确排序的数据\n performSearch();\n };\n const loadMore = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j;\n if (loading.value || hasMore.value == false || searchKeyword.value.trim() == '')\n return Promise.resolve(null);\n loading.value = true;\n currentPage.value++;\n const keyword = searchKeyword.value.trim();\n let sortBy = 'sales';\n let ascending = false;\n if (activeSort.value === 'price') {\n sortBy = 'price';\n ascending = priceSortAsc.value;\n }\n else if (activeSort.value === 'default') {\n sortBy = 'default';\n }\n try {\n const response = yield supabaseService.searchProducts(keyword, currentPage.value, 20, sortBy, ascending);\n const respData = response.data != null ? response.data : [];\n for (let i = 0; i < respData.length; i++) {\n const p = respData[i];\n let tag = '';\n const tagsRaw = p.tags;\n if (tagsRaw != null) {\n try {\n const tagsStr = p.tags;\n if (tagsStr != null) {\n const tags = UTS.JSON.parse(tagsStr);\n if (Array.isArray(tags) && tags.length > 0) {\n const firstTag = tags[0];\n tag = firstTag != null ? firstTag : '';\n }\n }\n }\n catch (e) { }\n }\n const searchItem = new SearchResultType({\n id: (_a = p.id) !== null && _a !== void 0 ? _a : '',\n name: (_b = p.name) !== null && _b !== void 0 ? _b : '',\n image: (_c = p.main_image_url) !== null && _c !== void 0 ? _c : '/static/default.jpg',\n price: (_d = p.base_price) !== null && _d !== void 0 ? _d : 0,\n specification: (_g = p.specification) !== null && _g !== void 0 ? _g : '标准规格',\n tag: tag,\n sales: (_h = p.sale_count) !== null && _h !== void 0 ? _h : 0,\n merchant_id: (_j = p.merchant_id) !== null && _j !== void 0 ? _j : ''\n });\n searchResults.value.push(searchItem);\n }\n hasMore.value = response.hasmore;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:734', 'Load more failed', e);\n hasMore.value = false;\n }\n finally {\n loading.value = false;\n }\n }); };\n onReachBottom(() => {\n if (showResults.value) {\n loadMore();\n }\n });\n const refreshGuessList = () => {\n uni.showLoading({ title: '刷新中' });\n setTimeout(() => {\n refreshGuessListItems();\n uni.hideLoading();\n }, 500);\n };\n const viewProductDetail = (item) => {\n const id = item.id;\n const price = item.price;\n const name = item.name;\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?productId=${id}&price=${price}&name=${encodeURIComponent(name)}`\n });\n };\n const viewShopDetail = (shop) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?id=${shop.id}`\n });\n };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n uni.showLoading({ title: '检查商品...' });\n try {\n // 统一转换为 UTSJSONObject 访问属性\n const prodObj = UTS.JSON.parse(UTS.JSON.stringify(product));\n const productId = (_a = prodObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const merchantId = (_b = prodObj.getString('merchant_id')) !== null && _b !== void 0 ? _b : '';\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(productId);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({ title: '请选择规格', icon: 'none' });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + productId\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(productId, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '已添加到购物车', icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败,请先登录', icon: 'none' });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:802', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({ title: '操作异常', icon: 'none' });\n }\n }); };\n const openCamera = () => {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n sourceType: ['camera'],\n success: (res) => {\n uni.__f__('log', 'at pages/mall/consumer/search.uvue:813', '拍摄图片路径:', res.tempFilePaths[0]);\n uni.showToast({ title: '已启用相机', icon: 'none' });\n },\n fail: (err) => {\n uni.__f__('error', 'at pages/mall/consumer/search.uvue:817', '启用相机失败', err);\n }\n }));\n };\n const goBack = () => {\n if (showResults.value) {\n // 如果在搜索结果页,先返回到搜索初始页\n showResults.value = false;\n searchKeyword.value = '';\n }\n else {\n // 如果在搜索初始页,则返回上一页\n const pages = getCurrentPages();\n if (pages.length > 1) {\n uni.navigateBack();\n }\n else {\n // 如果只有一页(由于深链接或重定向),返回首页\n uni.switchTab({\n url: '/pages/main/index'\n });\n }\n }\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(goBack),\n b: searchKeyword.value,\n c: _o(onInput),\n d: _o(onSearch),\n e: autoFocus.value,\n f: searchKeyword.value\n }, searchKeyword.value ? {\n g: _o(clearSearch)\n } : {}, {\n h: _o(openCamera),\n i: _o(onSearch),\n j: statusBarHeight.value + 'px',\n k: isError.value\n }, isError.value ? {\n l: _o(retryLoad)\n } : _e({\n m: searchKeyword.value == '' && showResults.value == false\n }, searchKeyword.value == '' && showResults.value == false ? _e({\n n: searchHistory.value.length > 0\n }, searchHistory.value.length > 0 ? {\n o: _o(clearHistory),\n p: _f(searchHistory.value, (item, index, i0) => {\n return {\n a: _t(item),\n b: _o($event => { return deleteHistoryItem(index); }, index),\n c: index,\n d: _o($event => { return searchFromHistory(item); }, index)\n };\n })\n } : {}, {\n q: _f(hotSearchList.value, (item, index, i0) => {\n return _e({\n a: _t(index + 1),\n b: _n(index < 3 ? 'top-three' : ''),\n c: _t(item.keyword),\n d: item.hot == true\n }, item.hot == true ? {} : {}, {\n e: index,\n f: _n(item.hot == true ? 'hot' : ''),\n g: _o($event => { return searchFromHot(item.keyword); }, index)\n });\n }),\n r: _o(refreshGuessList),\n s: _f(guessList.value, (item, k0, i0) => {\n return {\n a: item.image,\n b: _t(item.name),\n c: _t(item.price),\n d: _o($event => { return addToCart(item); }, item.id),\n e: item.id,\n f: _o($event => { return viewProductDetail(item); }, item.id)\n };\n })\n }) : {}, {\n t: searchKeyword.value != '' && showResults.value == false\n }, searchKeyword.value != '' && showResults.value == false ? {\n v: _f(searchSuggestions.value, (suggestion, index, i0) => {\n return {\n a: _t(suggestion),\n b: index,\n c: _o($event => { return selectSuggestion(suggestion); }, index)\n };\n })\n } : {}, {\n w: showResults.value\n }, showResults.value ? _e({\n x: searchShopResults.value.length > 0\n }, searchShopResults.value.length > 0 ? {\n y: _f(searchShopResults.value, (shop, k0, i0) => {\n return {\n a: shop.logo,\n b: _t(shop.name),\n c: _t(shop.productCount),\n d: shop.id,\n e: _o($event => { return viewShopDetail(shop); }, shop.id)\n };\n })\n } : {}, {\n z: activeSort.value === 'default' ? 1 : '',\n A: _o($event => { return switchSort('default'); }),\n B: activeSort.value === 'sales' ? 1 : '',\n C: _o($event => { return switchSort('sales'); }),\n D: _t(activeSort.value === 'price' ? priceSortAsc.value ? '↑' : '↓' : ''),\n E: activeSort.value === 'price' ? 1 : '',\n F: _o($event => { return switchSort('price'); }),\n G: searchResults.value.length > 0\n }, searchResults.value.length > 0 ? {\n H: _f(searchResults.value, (product, k0, i0) => {\n return {\n a: product.image,\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return viewProductDetail(product); }, product.id)\n };\n })\n } : {}, {\n I: !loading.value && searchResults.value.length === 0\n }, !loading.value && searchResults.value.length === 0 ? {} : {}, {\n J: loading.value\n }, loading.value ? {} : {}, {\n K: !hasMore.value && searchResults.value.length > 0\n }, !hasMore.value && searchResults.value.length > 0 ? {} : {}) : {}), {\n L: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/search.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.getStorageSync","uni.setStorageSync","uni.removeStorageSync","uni.showModal","uni.__f__","uni.showLoading","uni.hideLoading","uni.getSystemInfoSync","uni.navigateTo","uni.showToast","uni.chooseImage","uni.navigateBack","uni.switchTab"],"map":"{\"version\":3,\"file\":\"search.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"search.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d320bab18366919014b1d66dd4da51aad13a020 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d320bab18366919014b1d66dd4da51aad13a020 deleted file mode 100644 index ffcf1de7..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d320bab18366919014b1d66dd4da51aad13a020 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass TrackItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n desc: { type: String, optional: false },\n time: { type: String, optional: false }\n };\n },\n name: \"TrackItem\"\n };\n }\n constructor(options, metadata = TrackItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.desc = this.__props__.desc;\n this.time = this.__props__.time;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'logistics',\n setup(__props) {\n const orderId = ref('');\n const productImage = ref('/static/product1.jpg');\n const logisticsStatus = ref('暂无物流信息');\n const courierName = ref('');\n const courierPhone = ref('');\n const trackingNo = ref('');\n const trackList = ref([]);\n // 加载物流信息函数 - 必须在 onLoad 之前定义\n const loadLogisticsInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n if (orderId.value == '')\n return Promise.resolve(null);\n try {\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:60', '[logistics] 开始加载物流信息, orderId:', orderId.value);\n const order = yield supabaseService.getOrderDetail(orderId.value);\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:62', '[logistics] 获取订单结果:', order != null ? '成功' : '失败');\n if (order != null) {\n const orderStr = UTS.JSON.stringify(order);\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:66', '[logistics] 订单JSON:', orderStr);\n const orderParsed = UTS.JSON.parse(orderStr);\n if (orderParsed == null) {\n uni.__f__('error', 'at pages/mall/consumer/logistics.uvue:69', '[logistics] 解析订单数据失败');\n return Promise.resolve(null);\n }\n const orderObj = orderParsed;\n // 获取物流信息\n const trackingNoVal = orderObj.getString('tracking_no');\n const carrierNameVal = orderObj.getString('carrier_name');\n const shippingStatus = orderObj.getNumber('shipping_status');\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:79', '[logistics] tracking_no:', trackingNoVal);\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:80', '[logistics] carrier_name:', carrierNameVal);\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:81', '[logistics] shipping_status:', shippingStatus);\n if (trackingNoVal != null && trackingNoVal != '') {\n trackingNo.value = trackingNoVal;\n }\n else {\n uni.__f__('log', 'at pages/mall/consumer/logistics.uvue:86', '[logistics] 物流单号为空,订单可能未发货');\n // 物流单号为空时显示提示\n trackingNo.value = '暂无物流单号';\n logisticsStatus.value = '商家未填写物流信息';\n }\n if (carrierNameVal != null && carrierNameVal != '') {\n courierName.value = carrierNameVal;\n // 根据快递公司设置电话\n if (carrierNameVal.includes('顺丰')) {\n courierPhone.value = '95338';\n }\n else if (carrierNameVal.includes('中通')) {\n courierPhone.value = '95311';\n }\n else if (carrierNameVal.includes('圆通')) {\n courierPhone.value = '95554';\n }\n else if (carrierNameVal.includes('韵达')) {\n courierPhone.value = '95546';\n }\n else if (carrierNameVal.includes('申通')) {\n courierPhone.value = '95543';\n }\n else {\n courierPhone.value = '';\n }\n }\n // 根据发货状态设置物流状态\n if (shippingStatus == 2) {\n logisticsStatus.value = '已签收';\n }\n else if (shippingStatus == 1) {\n logisticsStatus.value = '运输中';\n }\n else {\n logisticsStatus.value = '待发货';\n }\n // 获取商品图片\n const itemsRaw = orderObj.get('ml_order_items');\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed != null) {\n const itemObj = itemParsed;\n const imgUrl = itemObj.getString('image_url');\n if (imgUrl != null && imgUrl != '') {\n productImage.value = imgUrl;\n }\n }\n }\n }\n // 构建物流轨迹(如果有发货时间)\n const shippedAt = orderObj.getString('shipped_at');\n if (shippedAt != null && shippedAt != '') {\n const trackItem = new TrackItem({\n desc: '商家已发货,等待快递揽收',\n time: shippedAt\n });\n trackList.value.push(trackItem);\n }\n // 如果已签收,添加签收信息\n const deliveredAt = orderObj.getString('delivered_at');\n if (deliveredAt != null && deliveredAt != '') {\n const trackItem = new TrackItem({\n desc: '快件已签收',\n time: deliveredAt\n });\n trackList.value.unshift(trackItem);\n logisticsStatus.value = '已签收';\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/logistics.uvue:159', '加载物流信息失败:', e);\n }\n }); };\n onLoad((options = null) => {\n if (options == null)\n return null;\n const orderIdValue = options['orderId'];\n if (orderIdValue != null) {\n orderId.value = orderIdValue;\n loadLogisticsInfo();\n }\n });\n onMounted(() => {\n // 逻辑已移到 onLoad\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: productImage.value,\n b: _t(logisticsStatus.value),\n c: _t(courierName.value),\n d: _t(trackingNo.value),\n e: _t(courierPhone.value),\n f: _f(trackList.value, (item, index, i0) => {\n return _e({\n a: index !== trackList.value.length - 1\n }, index !== trackList.value.length - 1 ? {} : {}, {\n b: _t(item.desc),\n c: _t(item.time),\n d: index,\n e: index === 0 ? 1 : ''\n });\n }),\n g: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/logistics.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"logistics.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"logistics.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d3f825cb21878bea62e037f46e929de191208cf b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d3f825cb21878bea62e037f46e929de191208cf deleted file mode 100644 index 23b36b8d..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d3f825cb21878bea62e037f46e929de191208cf +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, onMounted } from 'vue';\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile-edit',\n setup(__props) {\n const formData = reactive(new UTSJSONObject({\n id: '',\n user_id: '',\n real_name: '李师傅',\n id_card: '110101199001011234',\n driver_license: 'C1',\n vehicle_type: 1,\n vehicle_number: '京A12345',\n phone: '13888888888',\n service_areas: ['朝阳区', '东城区'],\n avatar_url: ''\n }));\n const vehicleTypeIndex = ref(0);\n const showAreaModal = ref(false);\n const newAreaName = ref('');\n const vehicleTypes = ref(['摩托车', '电动自行车', '面包车', '小型货车']);\n // 生命周期\n onMounted(() => {\n loadProfileData();\n });\n // 方法\n function loadProfileData() {\n // 模拟加载当前用户资料\n // 实际项目中应从 API 获取\n }\n function chooseAvatar() {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n sizeType: ['compressed'],\n sourceType: ['album', 'camera'],\n success: (res) => {\n formData.avatar_url = res.tempFilePaths[0];\n }\n }));\n }\n function onVehicleTypeChange(e = null) {\n const index = parseInt(e.detail.value);\n vehicleTypeIndex.value = index;\n formData.vehicle_type = index + 1; // 假设后端从1开始\n }\n function showAddAreaModal() {\n newAreaName.value = '';\n showAreaModal.value = true;\n }\n function hideAddAreaModal() {\n showAreaModal.value = false;\n }\n function addNewArea() {\n if (newAreaName.value.trim()) {\n if (!formData.service_areas.includes(newAreaName.value.trim())) {\n formData.service_areas.push(newAreaName.value.trim());\n }\n newAreaName.value = '';\n }\n hideAddAreaModal();\n }\n function removeArea(index) {\n formData.service_areas.splice(index, 1);\n }\n function saveProfile() {\n // 模拟保存\n uni.showLoading({\n title: '保存中...'\n });\n setTimeout(() => {\n uni.hideLoading();\n uni.showToast({\n title: '保存成功',\n icon: 'success'\n });\n // 保存成功后返回上一页\n uni.navigateBack();\n }, 1000);\n // 实际项目中应调用 API 保存数据\n uni.__f__('log', 'at pages/mall/delivery/profile-edit.uvue:187', '保存的资料:', formData);\n }\n function goBack() {\n uni.navigateBack();\n }\n function noop() {\n // 阻止事件冒泡的空函数\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(goBack),\n b: _o(saveProfile),\n c: formData.avatar_url || '/static/default-avatar.png',\n d: _o(chooseAvatar),\n e: formData.real_name,\n f: _o($event => { return formData.real_name = $event.detail.value; }),\n g: formData.id_card,\n h: _o($event => { return formData.id_card = $event.detail.value; }),\n i: formData.driver_license,\n j: _o($event => { return formData.driver_license = $event.detail.value; }),\n k: _t(formData.vehicle_type ? vehicleTypes.value[vehicleTypeIndex.value] : '请选择车辆类型'),\n l: vehicleTypeIndex.value,\n m: vehicleTypes.value,\n n: _o(onVehicleTypeChange),\n o: formData.vehicle_number,\n p: _o($event => { return formData.vehicle_number = $event.detail.value; }),\n q: _f(formData.service_areas, (area, index, i0) => {\n return {\n a: _t(area),\n b: _o($event => { return removeArea(index); }, index),\n c: index\n };\n }),\n r: _o(showAddAreaModal),\n s: formData.phone,\n t: _o($event => { return formData.phone = $event.detail.value; }),\n v: showAreaModal.value\n }, showAreaModal.value ? {\n w: newAreaName.value,\n x: _o($event => { return newAreaName.value = $event.detail.value; }),\n y: _o(hideAddAreaModal),\n z: _o(addNewArea),\n A: _o(noop),\n B: _o(hideAddAreaModal)\n } : {}, {\n C: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/profile-edit.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.chooseImage","uni.showLoading","uni.hideLoading","uni.showToast","uni.navigateBack","uni.__f__"],"map":"{\"version\":3,\"file\":\"profile-edit.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile-edit.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d65e85cee615fda73748edd005cf2b059fb5673 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d65e85cee615fda73748edd005cf2b059fb5673 deleted file mode 100644 index 546b8e50..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1d65e85cee615fda73748edd005cf2b059fb5673 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BankCard extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n bank_name: { type: String, optional: false },\n card_no_last4: { type: String, optional: false },\n card_type: { type: String, optional: false },\n holder_name: { type: String, optional: false },\n is_default: { type: Boolean, optional: false }\n };\n },\n name: \"BankCard\"\n };\n }\n constructor(options, metadata = BankCard.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.bank_name = this.__props__.bank_name;\n this.card_no_last4 = this.__props__.card_no_last4;\n this.card_type = this.__props__.card_type;\n this.holder_name = this.__props__.holder_name;\n this.is_default = this.__props__.is_default;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const cards = ref([]);\n const loading = ref(true);\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _g, _h, _j, _k, _l, _m, _p;\n loading.value = true;\n try {\n const rawList = yield supabaseService.getUserBankCards();\n const cardList = [];\n // Use for loop instead of map to avoid complex closure typing issues\n for (let i = 0; i < rawList.length; i++) {\n const item = rawList[i];\n let id = '';\n let bankName = '';\n let last4 = '';\n let type = 'debit';\n let holder = '';\n let isDef = false;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n id = (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '';\n bankName = (_b = item.getString('bank_name')) !== null && _b !== void 0 ? _b : '';\n last4 = (_c = item.getString('card_no_last4')) !== null && _c !== void 0 ? _c : '';\n type = (_d = item.getString('card_type')) !== null && _d !== void 0 ? _d : 'debit';\n holder = (_e = item.getString('holder_name')) !== null && _e !== void 0 ? _e : '';\n isDef = (_g = item.getBoolean('is_default')) !== null && _g !== void 0 ? _g : false;\n }\n else {\n const obj = UTS.JSON.parse(UTS.JSON.stringify(item));\n id = (_h = obj.getString('id')) !== null && _h !== void 0 ? _h : '';\n bankName = (_j = obj.getString('bank_name')) !== null && _j !== void 0 ? _j : '';\n last4 = (_k = obj.getString('card_no_last4')) !== null && _k !== void 0 ? _k : '';\n type = (_l = obj.getString('card_type')) !== null && _l !== void 0 ? _l : 'debit';\n holder = (_m = obj.getString('holder_name')) !== null && _m !== void 0 ? _m : '';\n isDef = (_p = obj.getBoolean('is_default')) !== null && _p !== void 0 ? _p : false;\n }\n cardList.push(new BankCard({\n id: id,\n user_id: '',\n bank_name: bankName,\n card_no_last4: last4,\n card_type: type,\n holder_name: holder,\n is_default: isDef\n }));\n }\n cards.value = cardList;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/bank-cards/index.uvue:92', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n onShow(() => {\n loadData();\n });\n const addCard = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/bank-cards/add'\n });\n };\n const deleteCard = (card) => {\n uni.showModal(new UTSJSONObject({\n title: '删除银行卡',\n content: `确认删除尾号${card.card_no_last4}的${card.bank_name}卡片吗?`,\n success: (res) => {\n if (res.confirm) {\n supabaseService.deleteBankCard(card.id).then((success) => {\n if (success) {\n uni.showToast({ title: '已删除' });\n loadData();\n }\n else {\n uni.showToast({ title: '删除失败', icon: 'none' });\n }\n });\n }\n }\n }));\n };\n const getCardClass = (bankName) => {\n if (bankName.includes('招商'))\n return 'cmb';\n if (bankName.includes('建设'))\n return 'ccb';\n if (bankName.includes('工商'))\n return 'icbc';\n if (bankName.includes('农业'))\n return 'abc';\n return 'default-bank';\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _f(cards.value, (card, k0, i0) => {\n return {\n a: _t(card.bank_name),\n b: _t(card.card_type === 'credit' ? '信用卡' : '储蓄卡'),\n c: _t(card.card_no_last4),\n d: _o($event => { return deleteCard(card); }, card.id),\n e: card.id,\n f: _n(getCardClass(card.bank_name))\n };\n }),\n b: _o(addCard),\n c: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/bank-cards/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.showToast","uni.showModal"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e74ceb3b04e29ce24b0f7678460403af5373c5a b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e74ceb3b04e29ce24b0f7678460403af5373c5a deleted file mode 100644 index c473af2a..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/1e74ceb3b04e29ce24b0f7678460403af5373c5a +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport supa, { supaReady } from \"@/components/supadb/aksupainstance\";\nimport { getCurrentUserId } from \"@/utils/store\";\nimport { DeliveryDriverType, DeliveryTaskType } from '@/types/mall-types';\n/* ----------------- 返回按钮 ----------------- */\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile',\n setup(__props) {\n function backToIndex() {\n uni.navigateBack(new UTSJSONObject({ url: '/pages/mall/delivery/index' }));\n }\n /* ----------------- 数据 & 状态 ----------------- */\n const driverInfo = ref(new UTSJSONObject({ id: '', real_name: '配送员', avatar_url: '', rating: 4.9, total_orders: 0, work_status: 1 }));\n const workStatus = ref(1);\n const currentLocation = ref('定位中...');\n const taskCounts = ref(new UTSJSONObject({ total: 0, pending: 0, ongoing: 0, completed: 0 }));\n const todayStats = ref(new UTSJSONObject({ deliveries: 0, earnings: '0.00', distance: 0, efficiency: 0 }));\n const currentTask = ref(null);\n const recentTasks = ref([]);\n const weeklyEarnings = ref([new UTSJSONObject({ day: '周一', amount: 0 }), new UTSJSONObject({ day: '周二', amount: 0 }), new UTSJSONObject({ day: '周三', amount: 0 }), new UTSJSONObject({ day: '周四', amount: 0 }), new UTSJSONObject({ day: '周五', amount: 0 }), new UTSJSONObject({ day: '周六', amount: 0 }), new UTSJSONObject({ day: '周日', amount: 0 })]);\n const maxEarnings = computed(() => { return Math.max(...weeklyEarnings.value.map(i => { return i.amount; })); });\n const isLoading = ref(false);\n /* ----------------- 生命周期 ----------------- */\n onMounted(() => { return __awaiter(this, void 0, void 0, function* () {\n yield loadDriverInfo();\n yield Promise.all([loadTaskCounts(), loadTodayStats(), loadCurrentTask(), loadRecentTasks()]);\n }); });\n /* ----------------- 后端数据加载(使用 supa) ----------------- */\n function loadDriverInfo() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const ready = yield Promise.race([supaReady, new Promise(resolve => { return setTimeout(() => { return resolve(false); }, 1500); })]);\n if (!ready)\n uni.__f__('warn', 'at pages/mall/delivery/profile.uvue:235', 'supaReady timeout/failed in loadDriverInfo - proceeding');\n const userId = getCurrentUserId();\n if (!userId)\n return Promise.resolve(null);\n let res = yield supa.from('ml_delivery_drivers').select('*').eq('user_id', userId).limit(1).execute();\n if (!(res && Array.isArray(res.data) && res.data.length > 0)) {\n const akRes = yield supa.from('ak_users').select('id').eq('auth_id', userId).limit(1).execute();\n let akId = '';\n if (akRes && Array.isArray(akRes.data) && akRes.data.length > 0)\n akId = akRes.data[0].id;\n if (akId)\n res = yield supa.from('ml_delivery_drivers').select('*').eq('user_id', akId).limit(1).execute();\n }\n if (res && Array.isArray(res.data) && res.data.length > 0) {\n driverInfo.value = Object.assign(driverInfo.value, res.data[0]);\n workStatus.value = (_a = driverInfo.value.work_status) !== null && _a !== void 0 ? _a : workStatus.value;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/profile.uvue:250', 'loadDriverInfo error', e);\n }\n });\n }\n function loadTaskCounts() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const ready = yield Promise.race([supaReady, new Promise(resolve => { return setTimeout(() => { return resolve(false); }, 1500); })]);\n if (!ready)\n uni.__f__('warn', 'at pages/mall/delivery/profile.uvue:257', 'supaReady timeout/failed in loadTaskCounts - proceeding');\n const driverId = driverInfo.value.id || getCurrentUserId();\n if (!driverId)\n return Promise.resolve(null);\n const res = yield supa.from('ml_delivery_tasks').select('id,status').eq('driver_id', driverId).execute();\n if (res && Array.isArray(res.data)) {\n const rows = res.data;\n const total = rows.length;\n const pending = rows.filter((r = null) => { return Number(r.status) === 1; }).length;\n const ongoing = rows.filter((r = null) => { return Number(r.status) > 1 && Number(r.status) < 5; }).length;\n const completed = rows.filter((r = null) => { return Number(r.status) >= 5; }).length;\n taskCounts.value = { total, pending, ongoing, completed };\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/profile.uvue:270', 'loadTaskCounts error', e);\n }\n });\n }\n function loadTodayStats() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const ready = yield Promise.race([supaReady, new Promise(resolve => { return setTimeout(() => { return resolve(false); }, 1500); })]);\n if (!ready)\n uni.__f__('warn', 'at pages/mall/delivery/profile.uvue:277', 'supaReady timeout/failed in loadTodayStats - proceeding');\n const driverId = driverInfo.value.id || getCurrentUserId();\n if (!driverId)\n return Promise.resolve(null);\n const start = new Date();\n start.setHours(0, 0, 0, 0);\n const end = new Date();\n end.setHours(23, 59, 59, 999);\n const res = yield supa.from('ml_delivery_tasks').select('delivery_fee,distance,status,created_at').eq('driver_id', driverId).gte('created_at', start.toISOString()).lte('created_at', end.toISOString()).execute();\n if (res && Array.isArray(res.data)) {\n const rows = res.data;\n const deliveries = rows.filter((r = null) => { return Number(r.status) >= 5; }).length;\n const earnings = rows.reduce((s = null, r = null) => { return s + (Number(r.delivery_fee) || 0); }, 0);\n const distance = rows.reduce((s = null, r = null) => { return s + (Number(r.distance) || 0); }, 0);\n todayStats.value = { deliveries, earnings: earnings.toFixed(2), distance: Number(distance.toFixed(2)), efficiency: deliveries === 0 ? 0 : Math.round((deliveries / Math.max(1, rows.length)) * 10000) / 100 };\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/profile.uvue:291', 'loadTodayStats error', e);\n }\n });\n }\n function loadCurrentTask() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const ready = yield Promise.race([supaReady, new Promise(resolve => { return setTimeout(() => { return resolve(false); }, 1500); })]);\n if (!ready)\n uni.__f__('warn', 'at pages/mall/delivery/profile.uvue:298', 'supaReady timeout/failed in loadCurrentTask - proceeding');\n const driverId = driverInfo.value.id || getCurrentUserId();\n if (!driverId) {\n currentTask.value = null;\n return Promise.resolve(null);\n }\n const res = yield supa.from('ml_delivery_tasks').select('*').eq('driver_id', driverId).lt('status', 5).order('created_at', new UTSJSONObject({ ascending: false })).limit(1).execute();\n if (res && Array.isArray(res.data) && res.data.length > 0) {\n currentTask.value = res.data[0];\n }\n else {\n currentTask.value = null;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/profile.uvue:308', 'loadCurrentTask error', e);\n }\n });\n }\n function loadRecentTasks() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const ready = yield Promise.race([supaReady, new Promise(resolve => { return setTimeout(() => { return resolve(false); }, 1500); })]);\n if (!ready)\n uni.__f__('warn', 'at pages/mall/delivery/profile.uvue:315', 'supaReady timeout/failed in loadRecentTasks - proceeding');\n const driverId = driverInfo.value.id || getCurrentUserId();\n if (!driverId) {\n recentTasks.value = [];\n return Promise.resolve(null);\n }\n const res = yield supa.from('ml_delivery_tasks').select('*').eq('driver_id', driverId).order('created_at', new UTSJSONObject({ ascending: false })).range(0, 9).execute();\n if (res && Array.isArray(res.data)) {\n recentTasks.value = res.data;\n }\n else {\n recentTasks.value = [];\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/profile.uvue:325', 'loadRecentTasks error', e);\n recentTasks.value = [];\n }\n });\n }\n /* ----------------- 小工具 & 交互 ----------------- */\n function getWorkStatus() {\n const m = { 0: '休息中', 1: '工作中', 2: '忙碌中' };\n return m[driverInfo.value.work_status] || '未知状态';\n }\n function getTaskStatusText(status) {\n const m = { 1: '待接单', 2: '已接单', 3: '配送中', 4: '已完成', 5: '已取消' };\n return m[status] || '未知';\n }\n function getAddressText(address) {\n return (address && address['address']) || (address && address['detail']) || '地址信息';\n }\n function formatTime(dateStr) {\n if (!dateStr)\n return '';\n const diff = Date.now() - new Date(dateStr).getTime();\n const hours = Math.floor(diff / 36e5);\n if (hours < 1)\n return '刚刚';\n if (hours < 24)\n return `${hours}小时前`;\n return `${Math.floor(hours / 24)}天前`;\n }\n function toggleWorkStatus() {\n workStatus.value = workStatus.value === 1 ? 0 : 1;\n driverInfo.value.work_status = workStatus.value;\n uni.showToast({ title: workStatus.value === 1 ? '已开始工作' : '已停止工作', icon: 'success' });\n }\n function showRelocateConfirm() {\n uni.showModal(new UTSJSONObject({ title: '重新定位', content: '确定要更新当前位置吗?', confirmText: '立即定位', success: (res) => { if (res.confirm)\n relocate(); } }));\n }\n function relocate() {\n uni.showLoading({ title: '获取位置中...', mask: true });\n setTimeout(() => {\n uni.hideLoading();\n currentLocation.value = '朝阳区建国门外大街附近';\n uni.showToast({ title: '定位成功', icon: 'success', duration: 1500 });\n }, 1200);\n }\n function contactCustomer() {\n uni.showActionSheet({ itemList: ['拨打电话', '发送短信'], success: res => { if (res.tapIndex === 0)\n uni.makePhoneCall({ phoneNumber: '13888888888' }); } });\n }\n function viewTaskDetail(taskId = '') {\n var _a;\n const id = taskId || ((_a = currentTask.value) === null || _a === void 0 ? null : _a.id) || '';\n uni.navigateTo({ url: `/pages/mall/delivery/task-detail?id=${id}` });\n }\n function editProfile() { uni.navigateTo({ url: '/pages/mall/delivery/profile-edit' }); }\n function goToSettings() { uni.navigateTo({ url: '/pages/mall/delivery/settings' }); }\n function goToTasks(type) { uni.navigateTo({ url: `/pages/mall/delivery/tasks?type=${type}` }); }\n function goToEarnings() { uni.navigateTo({ url: '/pages/mall/delivery/earnings' }); }\n function goToVehicle() { uni.navigateTo({ url: '/pages/mall/delivery/vehicle' }); }\n function goToRatings() { uni.navigateTo({ url: '/pages/mall/delivery/ratings' }); }\n function goToHelp() { uni.navigateTo({ url: '/pages/mall/delivery/help-center' }); }\n function goToFeedback() { uni.navigateTo({ url: '/pages/mall/delivery/feedback' }); }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o((...args) => { return _ctx.goBack && _ctx.goBack(...args); }),\n b: driverInfo.value.avatar_url || '/static/default-avatar.png',\n c: _o(editProfile),\n d: _t(driverInfo.value.real_name),\n e: _t(getWorkStatus()),\n f: _t(driverInfo.value.rating),\n g: _t(driverInfo.value.total_orders),\n h: _o(goToSettings),\n i: _t(workStatus.value === 1 ? '工作中' : '休息中'),\n j: workStatus.value === 1 ? 1 : '',\n k: _o(toggleWorkStatus),\n l: workStatus.value === 1\n }, workStatus.value === 1 ? {\n m: _t(currentLocation.value),\n n: _o(showRelocateConfirm)\n } : {}, {\n o: taskCounts.value.total > 0\n }, taskCounts.value.total > 0 ? {\n p: _t(taskCounts.value.total)\n } : {}, {\n q: _o($event => { return goToTasks('all'); }),\n r: taskCounts.value.pending > 0\n }, taskCounts.value.pending > 0 ? {\n s: _t(taskCounts.value.pending)\n } : {}, {\n t: _o($event => { return goToTasks('pending'); }),\n v: taskCounts.value.ongoing > 0\n }, taskCounts.value.ongoing > 0 ? {\n w: _t(taskCounts.value.ongoing)\n } : {}, {\n x: _o($event => { return goToTasks('ongoing'); }),\n y: taskCounts.value.completed > 0\n }, taskCounts.value.completed > 0 ? {\n z: _t(taskCounts.value.completed)\n } : {}, {\n A: _o($event => { return goToTasks('completed'); }),\n B: _t(todayStats.value.deliveries),\n C: _t(todayStats.value.earnings),\n D: _t(todayStats.value.distance),\n E: _t(todayStats.value.efficiency),\n F: currentTask.value\n }, currentTask.value ? {\n G: _t(currentTask.value.id.slice(-6)),\n H: _t(getTaskStatusText(currentTask.value.status)),\n I: _t(getAddressText(currentTask.value.pickup_address)),\n J: _t(getAddressText(currentTask.value.delivery_address)),\n K: _o(contactCustomer),\n L: _o(viewTaskDetail)\n } : {}, {\n M: _o($event => { return goToTasks('all'); }),\n N: recentTasks.value.length > 0\n }, recentTasks.value.length > 0 ? {\n O: _f(recentTasks.value, (task, k0, i0) => {\n return {\n a: _t(task.order_id.slice(-6)),\n b: _t(task.delivery_fee),\n c: _t(formatTime(task.created_at)),\n d: _t(getTaskStatusText(task.status)),\n e: _n('status-' + task.status),\n f: task.id,\n g: _o($event => { return viewTaskDetail(task.id); }, task.id)\n };\n })\n } : {}, {\n P: _o(goToEarnings),\n Q: _f(weeklyEarnings.value, (day, index, i0) => {\n return {\n a: _t(day.day),\n b: index,\n c: day.amount / maxEarnings.value * 100 + '%'\n };\n }),\n R: _o(goToEarnings),\n S: _o(goToVehicle),\n T: _o(goToRatings),\n U: _o(goToHelp),\n V: _o(goToFeedback),\n W: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/profile.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/types/mall-types.uts"],"uniExtApis":["uni.navigateBack","uni.__f__","uni.showToast","uni.showModal","uni.showLoading","uni.hideLoading","uni.makePhoneCall","uni.showActionSheet","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/225662def93395bfd42aaf1de9bda6b26befc5dc b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/225662def93395bfd42aaf1de9bda6b26befc5dc deleted file mode 100644 index 681c7636..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/225662def93395bfd42aaf1de9bda6b26befc5dc +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, getCurrentInstance } from 'vue';\nimport { onShow, onLoad } from '@dcloudio/uni-app';\nimport { supabaseService, UserAddress as SupabaseUserAddress } from \"@/utils/supabaseService\";\nclass Address extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n isDefault: { type: Boolean, optional: false },\n label: { type: String, optional: true }\n };\n },\n name: \"Address\"\n };\n }\n constructor(options, metadata = Address.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.isDefault = this.__props__.isDefault;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'address-list',\n setup(__props) {\n const addresses = ref([]);\n const selectionMode = ref(false);\n const loadAddresses = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n // 从Supabase加载地址数据\n const supabaseAddresses = yield supabaseService.getAddresses();\n // 转换数据格式以匹配前端界面\n const transformedAddresses = [];\n for (let i = 0; i < supabaseAddresses.length; i++) {\n const item = supabaseAddresses[i];\n const addr = new Address({\n id: item.id,\n name: item.recipient_name,\n phone: item.phone,\n province: item.province,\n city: item.city,\n district: item.district,\n detail: item.detail_address,\n isDefault: item.is_default,\n label: ''\n });\n transformedAddresses.push(addr);\n }\n addresses.value = transformedAddresses;\n // 同时更新本地存储作为缓存\n uni.setStorageSync('addresses', UTS.JSON.stringify(addresses.value));\n }\n catch (error) {\n uni.__f__('error', 'at pages/mall/consumer/address-list.uvue:84', '加载地址数据失败:', error);\n // 如果API调用失败,尝试从本地存储加载\n const storedAddresses = uni.getStorageSync('addresses');\n if (storedAddresses != null) {\n try {\n addresses.value = UTS.JSON.parse(storedAddresses);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/address-list.uvue:91', '解析地址数据失败', e);\n addresses.value = [];\n }\n }\n else {\n addresses.value = [];\n }\n }\n }); };\n onLoad((options = null) => {\n if (options['selectMode'] == 'true') {\n selectionMode.value = true;\n }\n });\n onShow(() => {\n loadAddresses();\n });\n // onMounted logic for EventChannel removed as it is not fully supported in UTS Android\n // Using uni.$emit for global event communication instead\n const getFullAddress = (item) => {\n return `${item.province}${item.city}${item.district} ${item.detail}`;\n };\n const addAddress = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/address-edit'\n });\n };\n // 删除地址\n const deleteAddress = (id) => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要删除该地址吗?',\n success: (res) => {\n if (res.confirm) {\n // 调用Supabase服务删除地址\n supabaseService.deleteAddress(id).then((success) => {\n if (success) {\n // 从本地列表移除\n const index = addresses.value.findIndex(addr => { return addr.id === id; });\n if (index !== -1) {\n addresses.value.splice(index, 1);\n // 更新本地存储缓存\n uni.setStorageSync('addresses', UTS.JSON.stringify(addresses.value));\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/address-list.uvue:145', '删除地址失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n };\n const editAddress = (id) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/address-edit?id=${id}`\n });\n };\n const selectAddress = (item) => {\n if (selectionMode.value) {\n uni.$emit('addressSelected', new UTSJSONObject({\n id: item.id,\n recipient_name: item.name,\n phone: item.phone,\n province: item.province,\n city: item.city,\n district: item.district,\n detail: item.detail,\n is_default: item.isDefault\n }));\n uni.navigateBack();\n }\n else {\n editAddress(item.id);\n }\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: addresses.value.length === 0\n }, addresses.value.length === 0 ? {} : {\n b: _f(addresses.value, (item, index, i0) => {\n return _e({\n a: _t(item.name),\n b: _t(item.phone),\n c: item.isDefault\n }, item.isDefault ? {} : {}, {\n d: item.label\n }, item.label ? {\n e: _t(item.label)\n } : {}, {\n f: _t(getFullAddress(item)),\n g: _o($event => { return editAddress(item.id); }, item.id),\n h: _o($event => { return deleteAddress(item.id); }, item.id),\n i: item.id,\n j: _o($event => { return selectAddress(item); }, item.id)\n });\n })\n }, {\n c: _o(addAddress),\n d: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/address-list.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.setStorageSync","uni.__f__","uni.getStorageSync","uni.navigateTo","uni.showToast","uni.showModal","uni.$emit","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"address-list.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"address-list.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/254ddfecf8403d9ec49ca8a39a1e966e4e9a62f7 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/254ddfecf8403d9ec49ca8a39a1e966e4e9a62f7 deleted file mode 100644 index d028a9cd..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/254ddfecf8403d9ec49ca8a39a1e966e4e9a62f7 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'payment-success',\n setup(__props) {\n const orderId = ref('');\n const orderNo = ref('');\n const amount = ref(0);\n // 定义 loadOrderInfo 函数(必须在 onMounted 之前)\n const loadOrderInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const response = yield supabaseService.getOrderById(orderId.value);\n uni.__f__('log', 'at pages/mall/consumer/payment-success.uvue:35', '[payment-success] getOrderById response:', UTS.JSON.stringify(response));\n if (response != null) {\n const orderData = response;\n const totalAmount = orderData.getNumber('total_amount');\n const paidAmount = orderData.getNumber('paid_amount');\n uni.__f__('log', 'at pages/mall/consumer/payment-success.uvue:41', '[payment-success] total_amount:', totalAmount, 'paid_amount:', paidAmount);\n if (paidAmount != null && paidAmount > 0) {\n amount.value = paidAmount;\n }\n else if (totalAmount != null && totalAmount > 0) {\n amount.value = totalAmount;\n }\n const orderNoVal = orderData.getString('order_no');\n if (orderNoVal != null && orderNoVal != '') {\n orderNo.value = orderNoVal;\n }\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/payment-success.uvue:55', '[payment-success] 加载订单信息失败:', err);\n }\n }); };\n onLoad((options) => {\n if (options == null)\n return null;\n const orderIdValue = options['orderId'];\n if (orderIdValue != null) {\n orderId.value = orderIdValue;\n orderNo.value = orderIdValue;\n const amountValue = options['amount'];\n if (amountValue != null) {\n const amountStr = amountValue.toString();\n uni.__f__('log', 'at pages/mall/consumer/payment-success.uvue:70', '[payment-success] amountStr:', amountStr);\n const parsed = parseFloat(amountStr);\n uni.__f__('log', 'at pages/mall/consumer/payment-success.uvue:72', '[payment-success] parsed:', parsed);\n if (isNaN(parsed) == false) {\n amount.value = parsed;\n }\n }\n if (amount.value == 0) {\n uni.__f__('log', 'at pages/mall/consumer/payment-success.uvue:79', '[payment-success] amount为0,尝试从数据库查询');\n }\n loadOrderInfo();\n }\n });\n onMounted(() => {\n // 逻辑已移到 onLoad\n });\n const viewOrder = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders'\n });\n };\n const goHome = () => {\n uni.switchTab({\n url: '/pages/main/index'\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: orderId.value\n }, orderId.value ? {\n b: _t(orderNo.value),\n c: _t(amount.value.toFixed(2))\n } : {}, {\n d: _o(viewOrder),\n e: _o(goHome),\n f: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/payment-success.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo","uni.switchTab"],"map":"{\"version\":3,\"file\":\"payment-success.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"payment-success.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAE9G,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;OAC7B,EAAE,eAAe,EAAE;AAG1B,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,iBAAiB;IACzB,KAAK,CAAC,OAAO;QAEf,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAErB,wCAAwC;QACxC,MAAM,aAAa,GAAG;YACpB,IAAI;gBACF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAClE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gDAAgD,EAAC,0CAA0C,EAAE,SAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAEtI,IAAI,QAAQ,IAAI,IAAI,EAAE;oBAClB,MAAM,SAAS,GAAG,QAAyB,CAAA;oBAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;oBACvD,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;oBACrD,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gDAAgD,EAAC,iCAAiC,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;oBAE5I,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE;wBACtC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAA;qBAC5B;yBAAM,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE;wBAC/C,MAAM,CAAC,KAAK,GAAG,WAAW,CAAA;qBAC7B;oBAED,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;oBAClD,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,EAAE;wBACxC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;qBAC7B;iBACJ;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,gDAAgD,EAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;aACvG;QACH,CAAC,IAAA,CAAA;QAED,MAAM,CAAC,CAAC,OAAO;YACb,IAAI,OAAO,IAAI,IAAI;gBAAE,YAAM;YAE3B,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;YACvC,IAAI,YAAY,IAAI,IAAI,EAAE;gBACxB,OAAO,CAAC,KAAK,GAAG,YAAsB,CAAA;gBACtC,OAAO,CAAC,KAAK,GAAG,YAAsB,CAAA;gBAEtC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACrC,IAAI,WAAW,IAAI,IAAI,EAAE;oBACrB,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;oBACxC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gDAAgD,EAAC,8BAA8B,EAAE,SAAS,CAAC,CAAA;oBAC3G,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;oBACpC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gDAAgD,EAAC,2BAA2B,EAAE,MAAM,CAAC,CAAA;oBACrG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE;wBACxB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAA;qBACxB;iBACJ;gBAED,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE;oBACnB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gDAAgD,EAAC,qCAAqC,CAAC,CAAA;iBAC1G;gBAED,aAAa,EAAE,CAAA;aAChB;QACH,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC;YACR,eAAe;QACjB,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG;YAChB,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,6BAA6B;aACnC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,SAAS,CAAC;gBACZ,GAAG,EAAE,mBAAmB;aACzB,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,OAAO,CAAC,KAAK;aACjB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC/B,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;gBACb,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25f579f98b001b50d98d5c6b89e97a403dcdbab5 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25f579f98b001b50d98d5c6b89e97a403dcdbab5 deleted file mode 100644 index 1589d246..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/25f579f98b001b50d98d5c6b89e97a403dcdbab5 +++ /dev/null @@ -1 +0,0 @@ -{"code":"export class AuthRedirectOptions extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n loginPath: { type: String, optional: true },\n registerPath: { type: String, optional: true },\n fallbackUrl: { type: String, optional: true }\n };\n },\n name: \"AuthRedirectOptions\"\n };\n }\n constructor(options, metadata = AuthRedirectOptions.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.loginPath = this.__props__.loginPath;\n this.registerPath = this.__props__.registerPath;\n this.fallbackUrl = this.__props__.fallbackUrl;\n delete this.__props__;\n }\n}\nfunction normalizePath(path) {\n if (!path)\n return '';\n return path.startsWith('/') ? path : `/${path}`;\n}\nfunction safeEncode(url) {\n try {\n return encodeURIComponent(url);\n }\n catch (_) {\n return url;\n }\n}\nexport function getCurrentPageUrlWithQuery() {\n var _a;\n const pages = getCurrentPages();\n const currentPage = pages.length > 0 ? pages[pages.length - 1] : null;\n if (!currentPage)\n return '';\n const route = currentPage.route;\n const options = ((_a = currentPage.options) !== null && _a !== void 0 ? _a : new UTSJSONObject({}));\n if (!route)\n return '';\n const path = normalizePath(route);\n const keys = Object.keys(options);\n if (keys.length === 0)\n return path;\n const query = keys\n .filter((k) => { return options[k] != null; })\n .map((k) => { return `${k}=${encodeURIComponent(String(options[k]))}`; })\n .join('&');\n return query.length > 0 ? `${path}?${query}` : path;\n}\nexport function toLoginWithRedirect(redirectUrl = null, opts = null) {\n var _a, _b;\n const loginPath = (_a = opts === null || opts === void 0 ? null : opts.loginPath) !== null && _a !== void 0 ? _a : '/pages/user/login';\n const fallback = (_b = opts === null || opts === void 0 ? null : opts.fallbackUrl) !== null && _b !== void 0 ? _b : '/pages/mall/consumer/index';\n const target = (redirectUrl != null && redirectUrl.length > 0)\n ? redirectUrl\n : (getCurrentPageUrlWithQuery() || fallback);\n uni.navigateTo({\n url: `${loginPath}?redirect=${safeEncode(target)}`\n });\n}\nexport function toRegisterWithRedirect(redirectUrl = null, opts = null) {\n var _a, _b;\n const registerPath = (_a = opts === null || opts === void 0 ? null : opts.registerPath) !== null && _a !== void 0 ? _a : '/pages/user/register';\n const fallback = (_b = opts === null || opts === void 0 ? null : opts.fallbackUrl) !== null && _b !== void 0 ? _b : '/pages/mall/consumer/index';\n const target = (redirectUrl != null && redirectUrl.length > 0)\n ? redirectUrl\n : (getCurrentPageUrlWithQuery() || fallback);\n uni.navigateTo({\n url: `${registerPath}?redirect=${safeEncode(target)}`\n });\n}\n//# sourceMappingURL=D:/companyproject/mall/utils/authRedirect.uts.js.map","references":[],"uniExtApis":["uni.navigateTo"],"map":"{\"version\":3,\"file\":\"authRedirect.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"authRedirect.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/265982400f63c30bc01b3520240fc4100b1f9706 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/265982400f63c30bc01b3520240fc4100b1f9706 deleted file mode 100644 index 8427b779..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/265982400f63c30bc01b3520240fc4100b1f9706 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter, __read } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { resolveComponent as _resolveComponent, o as _o, p as _p, unref as _unref, gei as _gei, sei as _sei } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_component_AnalyticsTopBar\",\"type\":\"unknown\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Array) {\n const _component_AnalyticsTopBar = _resolveComponent(\"AnalyticsTopBar\");\n (_component_AnalyticsTopBar)();\n}\nif (!Math) {\n (_unref(AnalyticsSidebarMenu) + EChartsView)();\n}\nimport { ref, onMounted, computed } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport { UserType } from '@/types/mall-types';\nimport { formatTime } from \"@/utils/utils\";\nimport { RecentReport, OverviewData, ReportCounts, TodayInsights, TrendDatum } from \"@/types/analytics/profile\";\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile',\n setup(__props) {\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/profile');\n // TODO: 与 Supabase Auth / users 表打通后,这里应该来自 auth.uid()\n // 现在先使用 analytics 测试 seed 中的固定用户 ID,保证可联调出“真实数据效果”\n const currentUserId = ref('00000000-0000-0000-0000-000000000001');\n const analystInfo = ref(new UserType({\n id: '',\n phone: '',\n nickname: '数据分析师',\n avatar_url: ''\n }));\n const workExperience = ref(5);\n const expertise = ref('电商数据');\n const overviewData = ref(new OverviewData({\n totalSales: '0',\n salesGrowth: 0,\n totalUsers: '0',\n userGrowth: 0,\n totalOrders: '0',\n orderGrowth: 0,\n conversionRate: 0,\n conversionGrowth: 0\n }));\n const reportCounts = ref(new ReportCounts({\n total: 0,\n pending: 0,\n scheduled: 0,\n shared: 0\n }));\n const todayInsights = ref(new TodayInsights({\n hotProduct: '-',\n peakTraffic: '0',\n conversionAnomaly: '-',\n mobileRatio: 0\n }));\n const recentReports = ref([]);\n const trendPeriod = ref('week');\n const trendChartOption = ref(new UTSJSONObject({}));\n const trendData = ref([\n new TrendDatum({ label: '周一', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周二', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周三', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周四', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周五', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周六', sales: 0, orders: 0 }),\n new TrendDatum({ label: '周日', sales: 0, orders: 0 })\n ]);\n // 计算属性\n const maxSales = computed(() => {\n return Math.max(...trendData.value.map(item => { return item.sales; }));\n });\n const maxOrders = computed(() => {\n return Math.max(...trendData.value.map(item => { return item.orders; }));\n });\n // 生命周期\n onMounted(() => {\n currentPath.value = '/pages/mall/analytics/profile';\n void loadAll();\n });\n // 方法\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function safeNumber(v = null) {\n const n = Number(v);\n return isFinite(n) ? n : 0;\n }\n function fmtInt(n) {\n const v = isFinite(n) ? Math.round(n) : 0;\n return v.toLocaleString();\n }\n function fmtMoney(n) {\n const v = isFinite(n) ? n : 0;\n return v.toLocaleString();\n }\n function pctGrowth(cur, prev) {\n if (prev > 0)\n return ((cur - prev) / prev) * 100;\n return cur > 0 ? 100 : 0;\n }\n function dateISO(d) {\n return d.toISOString().slice(0, 10);\n }\n function loadAll() {\n return __awaiter(this, void 0, void 0, function* () {\n yield loadAnalystInfo();\n yield loadReportCounts();\n yield loadRecentReports();\n yield loadOverview();\n yield loadTrend();\n yield loadTodayInsights();\n });\n }\n function loadAnalystInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield supa\n .from('users')\n .select('id, phone, email, nickname, avatar_url')\n .eq('id', currentUserId.value);\n const rows = Array.isArray(res.data) ? res.data : [];\n if (rows.length > 0) {\n analystInfo.value = Object.assign(Object.assign({}, analystInfo.value), { id: `${rows[0].id}`, phone: `${rows[0].phone || ''}`, email: `${rows[0].email || ''}`, nickname: `${rows[0].nickname || '数据分析师'}`, avatar_url: `${rows[0].avatar_url || ''}` });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:335', 'loadAnalystInfo failed', e);\n }\n });\n }\n function loadReportCounts() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield supa\n .from('analytics_reports')\n .select('status')\n .eq('owner_user_id', currentUserId.value);\n const rows = Array.isArray(res.data) ? res.data : [];\n let total = rows.length;\n let pending = 0;\n let scheduled = 0;\n let shared = 0;\n for (let i = 0; i < rows.length; i++) {\n const s = `${rows[i].status || ''}`;\n if (s === 'pending')\n pending++;\n if (s === 'scheduled')\n scheduled++;\n if (s === 'shared')\n shared++;\n }\n reportCounts.value = { total, pending, scheduled, shared };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:358', 'loadReportCounts failed', e);\n }\n });\n }\n function loadRecentReports() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield supa\n .from('analytics_reports')\n .select('id, title, description, status, created_at')\n .eq('owner_user_id', currentUserId.value)\n .order('created_at', { ascending: false })\n .limit(5);\n const rows = Array.isArray(res.data) ? res.data : [];\n recentReports.value = rows.map((r = null) => { return (new UTSJSONObject({\n id: `${r.id}`,\n title: `${r.title}`,\n description: `${r.description || ''}`,\n status: `${r.status || 'ready'}`,\n created_at: `${r.created_at || ''}`\n })); });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:379', 'loadRecentReports failed', e);\n }\n });\n }\n function loadOverview() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const now = new Date();\n const end = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const start = new Date(end.getTime() - 29 * 24 * 60 * 60 * 1000); // Last 30 days\n const p = new UTSJSONObject();\n p.set('p_start_date', dateISO(start));\n p.set('p_end_date', dateISO(end));\n const _a = __read(yield Promise.all([\n supa.rpc('rpc_analytics_sales_kpis', p),\n supa.rpc('rpc_analytics_user_kpis', p)\n ]), 2), salesKpisRes = _a[0], userKpisRes = _a[1];\n const salesKpis = Array.isArray(salesKpisRes.data) && salesKpisRes.data.length > 0 ? salesKpisRes.data[0] : new UTSJSONObject({});\n const userKpis = Array.isArray(userKpisRes.data) && userKpisRes.data.length > 0 ? userKpisRes.data[0] : new UTSJSONObject({});\n overviewData.value = {\n totalSales: fmtMoney(safeNumber(salesKpis.gmv)),\n salesGrowth: safeNumber(salesKpis.gmv_growth),\n totalUsers: fmtInt(safeNumber(userKpis.new_users)),\n userGrowth: safeNumber(userKpis.new_user_growth),\n totalOrders: fmtInt(safeNumber(salesKpis.orders)),\n orderGrowth: safeNumber(salesKpis.order_growth),\n conversionRate: safeNumber(salesKpis.conversion_rate),\n conversionGrowth: safeNumber(salesKpis.conversion_growth)\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:412', 'loadOverview failed', e);\n }\n });\n }\n function loadTrend() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const now = new Date();\n if (trendPeriod.value === 'week') {\n const end = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const start = new Date(end.getTime() - 6 * 24 * 60 * 60 * 1000);\n const p = new UTSJSONObject();\n p.set('p_start_date', dateISO(start));\n p.set('p_end_date', dateISO(end));\n const res = yield supa.rpc('rpc_analytics_sales_trend', p);\n const rows = Array.isArray(res.data) ? res.data : [];\n const weekLabels = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];\n trendData.value = rows.map((r = null) => {\n const d = new Date(`${r.date}T00:00:00`);\n return new UTSJSONObject({\n label: weekLabels[d.getDay()],\n sales: safeNumber(r.gmv),\n orders: safeNumber(r.orders)\n });\n });\n }\n else if (trendPeriod.value === 'month') {\n // 最近6个月(按月聚合)\n const end = new Date(now.getFullYear(), now.getMonth(), 1);\n const start = new Date(end.getFullYear(), end.getMonth() - 5, 1);\n const p = new UTSJSONObject();\n p.set('p_start_date', dateISO(start));\n p.set('p_end_date', dateISO(new Date(now.getFullYear(), now.getMonth(), now.getDate())));\n const res = yield supa.rpc('rpc_analytics_sales_trend', p);\n const rows = Array.isArray(res.data) ? res.data : [];\n const buckets = {};\n for (let i = 0; i < rows.length; i++) {\n const key = `${rows[i].date}`.slice(0, 7); // yyyy-mm\n if (!buckets[key])\n buckets[key] = { sales: 0, orders: 0 };\n buckets[key].sales += safeNumber(rows[i].gmv);\n buckets[key].orders += safeNumber(rows[i].orders);\n }\n const keys = Object.keys(buckets).sort();\n trendData.value = keys.map((k) => { return (new UTSJSONObject({\n label: `${k.slice(5)}月`,\n sales: buckets[k].sales,\n orders: buckets[k].orders\n })); });\n }\n else {\n // quarter:最近4个季度(按季度聚合)\n const end = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const start = new Date(end.getFullYear(), end.getMonth() - 11, 1);\n const p = new UTSJSONObject();\n p.set('p_start_date', dateISO(start));\n p.set('p_end_date', dateISO(end));\n const res = yield supa.rpc('rpc_analytics_sales_trend', p);\n const rows = Array.isArray(res.data) ? res.data : [];\n const buckets = {};\n for (let i = 0; i < rows.length; i++) {\n const d = new Date(`${rows[i].date}T00:00:00`);\n const q = Math.floor(d.getMonth() / 3) + 1;\n const key = `${d.getFullYear()}-Q${q}`;\n if (!buckets[key])\n buckets[key] = { sales: 0, orders: 0 };\n buckets[key].sales += safeNumber(rows[i].gmv);\n buckets[key].orders += safeNumber(rows[i].orders);\n }\n const keys = Object.keys(buckets).sort();\n trendData.value = keys.map((k) => { return (new UTSJSONObject({\n label: k.split('-')[1],\n sales: buckets[k].sales,\n orders: buckets[k].orders\n })); });\n }\n // 更新 ECharts 配置以匹配图 2\n updateTrendChart();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:490', 'loadTrend failed', e);\n }\n });\n }\n function updateTrendChart() {\n const xData = ['01/13', '01/17', '01/21', '01/25', '01/29', '02/02'];\n // 模拟数据以对齐图 2 的峰值点\n const yData = [0.4, 0.4, 0.35, 1, 0.25, 1, 0.5];\n trendChartOption.value = new UTSJSONObject({\n grid: new UTSJSONObject({ left: 40, right: 10, top: 20, bottom: 30 }),\n xAxis: new UTSJSONObject({\n type: 'category',\n data: xData,\n axisLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: '#f0f0f0' }) }),\n axisLabel: new UTSJSONObject({ color: '#8c929b', fontSize: 10 }),\n boundaryGap: false\n }),\n yAxis: new UTSJSONObject({\n type: 'value',\n min: 0,\n max: 1,\n interval: 0.2,\n axisLabel: new UTSJSONObject({ color: '#8c929b', fontSize: 10 }),\n splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ type: 'dashed', color: '#f0f0f0' }) })\n }),\n series: [\n new UTSJSONObject({\n name: '功能使用趋势',\n type: 'line',\n data: yData,\n smooth: false,\n symbol: 'none',\n lineStyle: new UTSJSONObject({ color: '#5a7fff', width: 2 }),\n areaStyle: new UTSJSONObject({\n color: new UTSJSONObject({\n type: 'linear',\n x: 0, y: 0, x2: 0, y2: 1,\n colorStops: [\n new UTSJSONObject({ offset: 0, color: 'rgba(90, 127, 255, 0.1)' }),\n new UTSJSONObject({ offset: 1, color: 'rgba(90, 127, 255, 0.01)' })\n ]\n })\n })\n })\n ]\n });\n }\n function loadTodayInsights() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const now = new Date();\n const today0 = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const p = new UTSJSONObject();\n p.set('p_start_date', dateISO(today0));\n p.set('p_end_date', dateISO(today0));\n p.set('p_limit', 1);\n const prodRes = yield supa.rpc('rpc_analytics_top_products', p);\n const prodRows = Array.isArray(prodRes.data) ? prodRes.data : [];\n if (prodRows.length > 0) {\n todayInsights.value.hotProduct = `${prodRows[0].name}`;\n }\n // 访问量峰值:用今日浏览行为数近似(主库口径:ml_browse_history)\n const pvRes = yield supa\n .from('ml_browse_history')\n .select('id, created_at')\n .gte('created_at', today0.toISOString())\n .lt('created_at', new Date(today0.getTime() + 24 * 60 * 60 * 1000).toISOString());\n const pvRows = Array.isArray(pvRes.data) ? pvRes.data : [];\n todayInsights.value.peakTraffic = fmtInt(pvRows.length);\n // 转化异常:使用无参版 rpc_analytics_realtime_kpis\n const kpiRes = yield supa.rpc('rpc_analytics_realtime_kpis', {});\n const row = Array.isArray(kpiRes.data) && kpiRes.data.length > 0 ? kpiRes.data[0] : (kpiRes.data || new UTSJSONObject({}));\n const cg = safeNumber(row.conversion_growth);\n todayInsights.value.conversionAnomaly = cg < 0 ? `下降${Math.abs(cg).toFixed(1)}%` : `上升${cg.toFixed(1)}%`;\n // mobileRatio:暂无来源维度,先置 0(后续可接入埋点/设备信息)\n todayInsights.value.mobileRatio = 0;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/profile.uvue:571', 'loadTodayInsights failed', e);\n }\n });\n }\n function getAnalystRole() {\n return '高级数据分析师';\n }\n function getReportStatusText(status = null) {\n const s = `${status || ''}`;\n const statusMap = {\n pending: '待生成',\n ready: '已完成',\n failed: '失败',\n scheduled: '定时',\n shared: '共享'\n };\n return statusMap[s] || '未知';\n }\n function changeTrendPeriod(period) {\n trendPeriod.value = period;\n void loadTrend();\n }\n function viewReportDetail(reportId) {\n uni.navigateTo({\n url: `/pages/mall/analytics/report-detail?reportId=${reportId}`\n });\n }\n // 导航方法\n function handleQuickJump(pageName) {\n uni.navigateTo({\n url: `/pages/mall/analytics/${pageName}`\n });\n }\n function editProfile() {\n uni.navigateTo({\n url: '/pages/mall/analytics/profile-edit'\n });\n }\n function goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/analytics/settings'\n });\n }\n function goToReports(type) {\n uni.navigateTo({\n url: `/pages/mall/analytics/reports?type=${type}`\n });\n }\n function goToDataSource() {\n uni.navigateTo({\n url: '/pages/mall/analytics/data-source'\n });\n }\n function goToAlerts() {\n uni.navigateTo({\n url: '/pages/mall/analytics/alerts'\n });\n }\n function goToExport() {\n uni.navigateTo({\n url: '/pages/mall/analytics/export'\n });\n }\n function goToHelp() {\n uni.navigateTo({\n url: '/pages/mall/common/help'\n });\n }\n function goToFeedback() {\n uni.navigateTo({\n url: '/pages/mall/common/feedback'\n });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _o(handleMenu),\n b: _o(_ctx.handleRefresh),\n c: _o(_ctx.handleSearch),\n d: _o(_ctx.handleNotification),\n e: _o(_ctx.handleFullscreen),\n f: _o(_ctx.handleMobile),\n g: _o(_ctx.handleDropdown),\n h: _o(goToSettings),\n i: _p({\n title: '个人中心',\n lastUpdateTime: ''\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _o(editProfile),\n m: _o(goToSettings),\n n: _o($event => { return handleQuickJump('user-analysis'); }),\n o: _o($event => { return handleQuickJump('sales-report'); }),\n p: _o($event => { return handleQuickJump('product-insights'); }),\n q: _o($event => { return handleQuickJump('market-trends'); }),\n r: _o($event => { return handleQuickJump('coupon-analysis'); }),\n s: _o($event => { return handleQuickJump('delivery-analysis'); }),\n t: _p({\n option: trendChartOption.value\n }),\n v: _o(goToHelp),\n w: _o(goToFeedback),\n x: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/profile.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts","D:/companyproject/mall/types/mall-types.uts"],"uniExtApis":["uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/26ea9f486f8f2451dff70a9351118a4a8c874264 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/26ea9f486f8f2451dff70a9351118a4a8c874264 deleted file mode 100644 index 6bd9fed2..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/26ea9f486f8f2451dff70a9351118a4a8c874264 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, n as _n, gei as _gei, sei as _sei } from \"vue\";\nimport _imports_0 from '/static/user/phone_1.png';\nimport _imports_1 from '/static/user/code_1.png';\nimport { ref } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { ensureUserProfile } from \"@/utils/sapi\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'register',\n setup(__props) {\n const email = ref('');\n const password = ref('');\n const confirmPassword = ref('');\n const protocol = ref(false);\n const inAnimation = ref(false);\n const isLoading = ref(false);\n const logoUrl = ref('/static/logo.png');\n const handleProtocolChange = (e) => {\n protocol.value = protocol.value == false;\n };\n const validateEmail = () => {\n if (email.value.trim() == '') {\n uni.showToast({\n title: '请填写邮箱',\n icon: 'none'\n });\n return false;\n }\n const atIndex = email.value.indexOf('@');\n const dotIndex = email.value.lastIndexOf('.');\n if (atIndex == -1 || dotIndex == -1 || atIndex > dotIndex) {\n uni.showToast({\n title: '请输入正确的邮箱',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validatePassword = () => {\n if (password.value.trim() == '') {\n uni.showToast({\n title: '请填写密码',\n icon: 'none'\n });\n return false;\n }\n if (password.value.length < 6) {\n uni.showToast({\n title: '密码长度不能少于6位',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const validateConfirmPassword = () => {\n if (confirmPassword.value.trim() == '') {\n uni.showToast({\n title: '请确认密码',\n icon: 'none'\n });\n return false;\n }\n if (confirmPassword.value != password.value) {\n uni.showToast({\n title: '两次输入的密码不一致',\n icon: 'none'\n });\n return false;\n }\n return true;\n };\n const handleRegister = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (protocol.value == false) {\n inAnimation.value = true;\n uni.showToast({\n title: '请先阅读并同意协议',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (validateEmail() == false) {\n return Promise.resolve(null);\n }\n if (validatePassword() == false) {\n return Promise.resolve(null);\n }\n if (validateConfirmPassword() == false) {\n return Promise.resolve(null);\n }\n isLoading.value = true;\n try {\n // 在注册时传递 user_role 元数据,以便数据库触发器识别\n const options = new UTSJSONObject();\n const metaData = new UTSJSONObject();\n metaData.set('user_role', 'consumer');\n options.set('data', metaData);\n const result = yield supa.signUp(email.value.trim(), password.value, options);\n uni.__f__('log', 'at pages/user/register.uvue:194', '注册返回结果:', result);\n const errorCode = (_a = result === null || result === void 0 ? null : result.getString('error_code')) !== null && _a !== void 0 ? _a : '';\n const errorMsg = (_b = result === null || result === void 0 ? null : result.getString('msg')) !== null && _b !== void 0 ? _b : '';\n const code = (_c = result === null || result === void 0 ? null : result.getNumber('code')) !== null && _c !== void 0 ? _c : 0;\n uni.__f__('log', 'at pages/user/register.uvue:200', '错误代码:', errorCode, '错误信息:', errorMsg, '状态码:', code);\n if (code == 500 && (errorCode == 'unexpected_failure' || errorMsg.includes('confirmation email'))) {\n uni.__f__('warn', 'at pages/user/register.uvue:203', '邮件发送失败,但用户可能已创建');\n }\n let user = null;\n let hasSession = false;\n if (result != null) {\n const userField = result.getJSON('user');\n if (userField != null) {\n user = userField;\n uni.__f__('log', 'at pages/user/register.uvue:213', '找到 user 字段:', user.getString('id'), user.getString('email'));\n }\n else {\n const id = result.getString('id');\n if (id != null && id != '') {\n user = result;\n uni.__f__('log', 'at pages/user/register.uvue:218', 'result 本身就是 user 对象:', id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:220', '未找到 user 信息');\n }\n }\n const sessionField = result.getJSON('session');\n if (sessionField != null) {\n hasSession = true;\n uni.__f__('log', 'at pages/user/register.uvue:227', '找到 session,已自动登录');\n }\n else {\n uni.__f__('log', 'at pages/user/register.uvue:229', '未找到 session,可能需要邮箱验证');\n }\n }\n if (user == null && code != 0 && code != 200) {\n if (code == 500 && errorMsg.includes('confirmation email')) {\n throw new Error('注册失败:邮件服务配置错误');\n }\n else {\n throw new Error(errorMsg != '' ? errorMsg : '注册失败,请重试');\n }\n }\n if (user != null) {\n try {\n const profileResult = yield ensureUserProfile(user);\n if (profileResult != null) {\n uni.__f__('log', 'at pages/user/register.uvue:245', '用户资料创建成功:', profileResult.id);\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:247', '用户资料创建失败,但注册已成功');\n }\n }\n catch (profileError) {\n uni.__f__('error', 'at pages/user/register.uvue:250', '创建用户资料异常:', profileError);\n }\n }\n else {\n uni.__f__('warn', 'at pages/user/register.uvue:253', '注册成功但未获取到用户信息');\n }\n if (hasSession == false && user != null) {\n uni.__f__('log', 'at pages/user/register.uvue:257', '需要邮箱验证');\n }\n uni.showToast({\n title: '注册成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.redirectTo({\n url: '/pages/user/login'\n });\n }, 1500);\n }\n catch (err) {\n uni.__f__('error', 'at pages/user/register.uvue:271', '注册错误:', err);\n let errorMessage = '注册失败,请重试';\n if (err != null) {\n const error = err;\n if (error.message != null && error.message.trim() != '') {\n errorMessage = error.message;\n if (error.message.includes('confirmation email') || error.message.includes('邮件')) {\n errorMessage = '注册可能成功,但邮件发送失败,请稍后尝试登录';\n }\n }\n }\n uni.showToast({\n title: errorMessage,\n icon: 'none',\n duration: 3000\n });\n }\n finally {\n isLoading.value = false;\n }\n }); };\n const navigateToLogin = () => {\n uni.navigateTo({\n url: '/pages/user/login'\n });\n };\n const navigateToTerms = (type) => {\n uni.navigateTo({\n url: `/pages/user/terms?type=${type}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: logoUrl.value,\n b: _imports_0,\n c: email.value,\n d: _o($event => { return email.value = $event.detail.value; }),\n e: _imports_1,\n f: password.value,\n g: _o($event => { return password.value = $event.detail.value; }),\n h: _imports_1,\n i: confirmPassword.value,\n j: _o($event => { return confirmPassword.value = $event.detail.value; }),\n k: _o(handleRegister),\n l: _n(isLoading.value ? 'disabled' : ''),\n m: _o(navigateToLogin),\n n: protocol.value,\n o: _n(inAnimation.value ? 'trembling' : ''),\n p: _o($event => { return navigateToTerms(3); }),\n q: _o($event => { return navigateToTerms(4); }),\n r: _o(handleProtocolChange),\n s: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/register.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.__f__","uni.redirectTo","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"register.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"register.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAA;AACjD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;OACjB,IAAI;OACJ,EAAE,iBAAiB,EAAE;AAG7B,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,OAAO;QAEd,MAAM,KAAK,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAChC,MAAM,eAAe,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACpC,MAAM,WAAW,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,GAAG,CAAS,kBAAkB,CAAC,CAAA;QAE/C,MAAM,oBAAoB,GAAG,CAAC,CAA8B;YAC3D,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;QACzC,CAAC,CAAA;QAED,MAAM,aAAa,GAAG;YACrB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC7B,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,OAAO,GAAG,QAAQ,EAAE;gBAC1D,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,MAAM,gBAAgB,GAAG;YACxB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBAChC,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,MAAM,uBAAuB,GAAG;YAC/B,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACvC,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,IAAI,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;gBAC5C,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,OAAO,KAAK,CAAA;aACZ;YACD,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,MAAM,cAAc,GAAG;;YACtB,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,EAAE;gBAC5B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA;gBACxB,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAA;gBACF,6BAAM;aACN;YAED,IAAI,aAAa,EAAE,IAAI,KAAK,EAAE;gBAC7B,6BAAM;aACN;YACD,IAAI,gBAAgB,EAAE,IAAI,KAAK,EAAE;gBAChC,6BAAM;aACN;YACD,IAAI,uBAAuB,EAAE,IAAI,KAAK,EAAE;gBACvC,6BAAM;aACN;YAED,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YAEtB,IAAI;gBACH,kCAAkC;gBAClC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;gBACnC,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;gBACpC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;gBACrC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAE7E,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAEpE,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,qBAAN,MAAM,CAAE,SAAS,CAAC,YAAY,CAAC,mCAAI,EAAE,CAAA;gBACvD,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,qBAAN,MAAM,CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAA;gBAC/C,MAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,qBAAN,MAAM,CAAE,SAAS,CAAC,MAAM,CAAC,mCAAI,CAAC,CAAA;gBAE3C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;gBAEtG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,oBAAoB,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE;oBAClG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,iCAAiC,EAAC,iBAAiB,CAAC,CAAA;iBACrE;gBAED,IAAI,IAAI,GAAyB,IAAI,CAAA;gBACrC,IAAI,UAAU,GAAG,KAAK,CAAA;gBAEtB,IAAI,MAAM,IAAI,IAAI,EAAE;oBACnB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBACxC,IAAI,SAAS,IAAI,IAAI,EAAE;wBACtB,IAAI,GAAG,SAAS,CAAA;wBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;qBAC/G;yBAAM;wBACN,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;wBACjC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;4BAC3B,IAAI,GAAG,MAAM,CAAA;4BACb,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;yBAC7E;6BAAM;4BACN,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,iCAAiC,EAAC,aAAa,CAAC,CAAA;yBACjE;qBACD;oBAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;oBAC9C,IAAI,YAAY,IAAI,IAAI,EAAE;wBACzB,UAAU,GAAG,IAAI,CAAA;wBACjB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,kBAAkB,CAAC,CAAA;qBACrE;yBAAM;wBACN,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,sBAAsB,CAAC,CAAA;qBACzE;iBACD;gBAED,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE;oBAC7C,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;wBAC3D,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;qBAChC;yBAAM;wBACN,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;qBACvD;iBACD;gBAED,IAAI,IAAI,IAAI,IAAI,EAAE;oBACjB,IAAI;wBACH,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;wBACnD,IAAI,aAAa,IAAI,IAAI,EAAE;4BAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;yBAChF;6BAAM;4BACN,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,iCAAiC,EAAC,iBAAiB,CAAC,CAAA;yBACrE;qBACD;oBAAC,OAAO,YAAY,EAAE;wBACtB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,iCAAiC,EAAC,WAAW,EAAE,YAAY,CAAC,CAAA;qBAC9E;iBACD;qBAAM;oBACN,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,iCAAiC,EAAC,eAAe,CAAC,CAAA;iBACnE;gBAED,IAAI,UAAU,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;oBACxC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,iCAAiC,EAAC,QAAQ,CAAC,CAAA;iBAC3D;gBAED,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,SAAS;iBACf,CAAC,CAAA;gBAEF,UAAU,CAAC;oBACV,GAAG,CAAC,UAAU,CAAC;wBACd,GAAG,EAAE,mBAAmB;qBACxB,CAAC,CAAA;gBACH,CAAC,EAAE,IAAI,CAAC,CAAA;aACR;YAAC,OAAO,GAAG,EAAE;gBACb,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,iCAAiC,EAAC,OAAO,EAAE,GAAG,CAAC,CAAA;gBAEjE,IAAI,YAAY,GAAG,UAAU,CAAA;gBAC7B,IAAI,GAAG,IAAI,IAAI,EAAE;oBAChB,MAAM,KAAK,GAAG,GAAY,CAAA;oBAC1B,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;wBACxD,YAAY,GAAG,KAAK,CAAC,OAAO,CAAA;wBAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;4BACjF,YAAY,GAAG,wBAAwB,CAAA;yBACvC;qBACD;iBACD;gBAED,GAAG,CAAC,SAAS,CAAC;oBACb,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAA;aACF;oBAAS;gBACT,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;aACvB;QACF,CAAC,IAAA,CAAA;QAED,MAAM,eAAe,GAAG;YACvB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,mBAAmB;aACxB,CAAC,CAAA;QACH,CAAC,CAAA;QAED,MAAM,eAAe,GAAG,CAAC,IAAY;YACpC,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,0BAA0B,IAAI,EAAE;aACrC,CAAC,CAAA;QACH,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,OAAO,CAAC,KAAK;gBAChB,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,KAAK,CAAC,KAAK;gBACd,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAjC,CAAiC,CAAC;gBAClD,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,QAAQ,CAAC,KAAK;gBACjB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAApC,CAAoC,CAAC;gBACrD,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,eAAe,CAAC,KAAK;gBACxB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAA3C,CAA2C,CAAC;gBAC5D,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACtB,CAAC,EAAE,QAAQ,CAAC,KAAK;gBACjB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,eAAe,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC;gBACnC,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,eAAe,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC;gBACnC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;gBAC3B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/279a3dc658d22054addac6d5b9bebb9ff3b05a0f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/279a3dc658d22054addac6d5b9bebb9ff3b05a0f deleted file mode 100644 index c1767ea0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/279a3dc658d22054addac6d5b9bebb9ff3b05a0f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"AnalyticsDateRangePicker\":{\"name\":\"_unref(AnalyticsDateRangePicker)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + _unref(AnalyticsDateRangePicker) + EChartsView)();\n}\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport AnalyticsDateRangePicker from '@/components/analytics/AnalyticsDateRangePicker.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport supa, { ensureSupabaseReady } from \"@/components/supadb/aksupainstance\";\nimport { getUserIdOrNull } from \"@/services/analytics/auth\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { computed, reactive, ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { TimePeriod } from \"@/types/analytics/common\";\nimport { UserData, FunnelStep } from \"@/types/analytics/user\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'user-analysis',\n setup(__props) {\n const lastUpdateTime = ref('');\n const selectedPeriod = ref('7d');\n const customRangeEnabled = ref(false);\n const selectedStartDate = ref('');\n const selectedEndDate = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/user-analysis');\n const timePeriods = ref([\n new TimePeriod({ value: '7d', label: '7天' }),\n new TimePeriod({ value: '30d', label: '30天' }),\n new TimePeriod({ value: '90d', label: '90天' }),\n new TimePeriod({ value: '1y', label: '1年' })\n ]);\n const userData = reactive(new UserData({\n total_users: 0,\n user_growth: 0,\n new_users: 0,\n new_user_growth: 0,\n active_users: 0,\n active_growth: 0,\n ordering_users: 0,\n ordering_growth: 0,\n paid_users: 0,\n paid_growth: 0,\n new_user_conversion_rate: 0,\n repurchase_rate: 0,\n repurchase_growth: 0\n }));\n const growthChartOption = ref(new UTSJSONObject({}));\n const retentionChartOption = ref(new UTSJSONObject({}));\n const activityChartOption = ref(new UTSJSONObject({}));\n const comparisonChartOption = ref(new UTSJSONObject({}));\n const profileChartOption = ref(new UTSJSONObject({}));\n const segmentChartOption = ref(new UTSJSONObject({}));\n const trafficChartOption = ref(new UTSJSONObject({}));\n const funnelSteps = reactive([\n new FunnelStep({ step: '访问用户(UV)', value: 0 }),\n new FunnelStep({ step: '商品详情页(PDP UV)', value: 0 }),\n new FunnelStep({ step: '加购用户', value: 0 }),\n new FunnelStep({ step: '下单用户', value: 0 }),\n new FunnelStep({ step: '支付用户', value: 0 })\n ]);\n const loading = ref(false);\n const selectedPeriodText = computed(() => {\n const p = UTS.arrayFind(timePeriods.value, (t) => { return t.value === selectedPeriod.value; });\n return p ? p.label : '7天';\n });\n const hasOrderingData = computed(() => {\n return userData.ordering_users > 0 || userData.ordering_growth != 0;\n });\n const hasPaidData = computed(() => {\n return userData.paid_users > 0 || userData.paid_growth != 0;\n });\n const hasNewConversionData = computed(() => {\n return userData.new_user_conversion_rate != 0;\n });\n const hasFunnelData = computed(() => {\n var _a;\n for (let i = 0; i < funnelSteps.length; i++) {\n if (((_a = funnelSteps[i].value) !== null && _a !== void 0 ? _a : 0) > 0)\n return true;\n }\n return false;\n });\n onLoad(() => {\n updateTime();\n loadUserData();\n });\n function calcDateRange() {\n if (selectedStartDate.value && selectedEndDate.value) {\n return new UTSJSONObject({ startDate: new Date(selectedStartDate.value), endDate: new Date(selectedEndDate.value) });\n }\n const now = new Date();\n const endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const days = selectedPeriod.value === '7d' ? 7 : selectedPeriod.value === '30d' ? 30 : selectedPeriod.value === '90d' ? 90 : 365;\n const startDate = new Date(endDate.getTime() - (days - 1) * 24 * 60 * 60 * 1000);\n return new UTSJSONObject({ startDate, endDate });\n }\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function safeNumber(v = null) {\n const n = Number(v);\n return isFinite(n) ? n : 0;\n }\n function loadUserData() {\n return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n updateTime();\n yield ensureSupabaseReady();\n const _a = calcDateRange(), startDate = _a.startDate, endDate = _a.endDate;\n const startStr = startDate.toISOString().slice(0, 10);\n const endStr = endDate.toISOString().slice(0, 10);\n const p = new UTSJSONObject();\n p.set('p_start_date', startStr);\n p.set('p_end_date', endStr);\n const res = yield supa.rpc('rpc_analytics_user_kpis', p);\n const row = Array.isArray(res.data) && res.data.length > 0 ? res.data[0] : (res.data || new UTSJSONObject({}));\n userData.total_users = Math.round(safeNumber(row.total_users));\n userData.user_growth = safeNumber(row.user_growth);\n userData.new_users = Math.round(safeNumber(row.new_users));\n userData.new_user_growth = safeNumber(row.new_user_growth);\n userData.active_users = Math.round(safeNumber(row.active_users));\n userData.active_growth = safeNumber(row.active_growth);\n userData.ordering_users = Math.round(safeNumber(row.ordering_users));\n userData.ordering_growth = safeNumber(row.ordering_growth);\n userData.paid_users = Math.round(safeNumber(row.paid_users));\n userData.paid_growth = safeNumber(row.paid_growth);\n userData.new_user_conversion_rate = safeNumber(row.new_user_conversion_rate);\n userData.repurchase_rate = safeNumber(row.repurchase_rate);\n userData.repurchase_growth = safeNumber(row.repurchase_growth);\n const tRes = yield supa.rpc('rpc_analytics_user_growth_trend', p);\n const rows = Array.isArray(tRes.data) ? tRes.data : [];\n const x = [];\n const newArr = [];\n const activeArr = [];\n for (let i = 0; i < rows.length; i++) {\n const d = `${rows[i].date}`;\n x.push(d.slice(5));\n newArr.push(Number(rows[i].new_users) || 0);\n activeArr.push(Number(rows[i].active_users) || 0);\n }\n growthChartOption.value = new UTSJSONObject({\n grid: new UTSJSONObject({ left: 40, right: 18, top: 20, bottom: 40 }),\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n legend: new UTSJSONObject({ data: ['新增用户', '活跃用户(DAU)'], bottom: 0 }),\n xAxis: new UTSJSONObject({ type: 'category', data: x, axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }) }),\n yAxis: new UTSJSONObject({ type: 'value', axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }), splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: 'rgba(0,0,0,0.06)' }) }) }),\n series: [\n new UTSJSONObject({ name: '新增用户', type: 'line', data: newArr, smooth: true, symbolSize: 6, areaStyle: new UTSJSONObject({ opacity: 0.08 }) }),\n new UTSJSONObject({ name: '活跃用户(DAU)', type: 'line', data: activeArr, smooth: true, symbolSize: 6 })\n ]\n });\n const sRes = yield supa.rpc('rpc_analytics_user_segments', p);\n const sRows = Array.isArray(sRes.data) ? sRes.data : [];\n const segData = [];\n for (let i = 0; i < sRows.length; i++) {\n const name = `${sRows[i].name}`;\n const value = Number(sRows[i].value) || 0;\n segData.push(new UTSJSONObject({ name, value }));\n }\n segmentChartOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'item' }),\n legend: new UTSJSONObject({ top: 10, left: 'center', padding: [12, 0, 24, 0] }),\n series: [\n new UTSJSONObject({\n name: '用户分群',\n type: 'pie',\n center: ['48%', '60%'],\n radius: ['42%', '66%'],\n avoidLabelOverlap: true,\n label: new UTSJSONObject({ show: true, formatter: '{b}\\n{d}%' }),\n labelLine: new UTSJSONObject({ length: 14, length2: 10 }),\n data: segData\n })\n ]\n });\n const t2Res = yield supa.rpc('rpc_analytics_traffic_sources', p);\n const tRows = Array.isArray(t2Res.data) ? t2Res.data : [];\n const srcNames = [];\n const srcVals = [];\n for (let i = 0; i < tRows.length; i++) {\n const name = `${tRows[i].name}`;\n const value = Number(tRows[i].value) || 0;\n srcNames.push(name);\n srcVals.push(value);\n }\n trafficChartOption.value = new UTSJSONObject({\n grid: new UTSJSONObject({ left: 60, right: 18, top: 20, bottom: 40 }),\n tooltip: new UTSJSONObject({ trigger: 'axis', axisPointer: new UTSJSONObject({ type: 'shadow' }) }),\n xAxis: new UTSJSONObject({ type: 'value', axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }), splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: 'rgba(0,0,0,0.06)' }) }) }),\n yAxis: new UTSJSONObject({ type: 'category', data: srcNames, axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }) }),\n series: [new UTSJSONObject({ type: 'bar', data: srcVals, barWidth: 14, itemStyle: new UTSJSONObject({ borderRadius: 6 }) })]\n });\n funnelSteps.splice(0, funnelSteps.length, { step: '访问用户(UV)', value: 0 }, { step: '商品详情页(PDP UV)', value: 0 }, { step: '加购用户', value: 0 }, { step: '下单用户', value: 0 }, { step: '支付用户', value: 0 });\n retentionChartOption.value = new UTSJSONObject({ title: new UTSJSONObject({ text: '留存率(待接入)', left: 'center', top: 10, textStyle: new UTSJSONObject({ fontSize: 12, color: 'rgba(0,0,0,0.55)' }) }), series: [] });\n activityChartOption.value = new UTSJSONObject({ title: new UTSJSONObject({ text: '活跃度(待接入)', left: 'center', top: 10, textStyle: new UTSJSONObject({ fontSize: 12, color: 'rgba(0,0,0,0.55)' }) }), series: [] });\n comparisonChartOption.value = new UTSJSONObject({ title: new UTSJSONObject({ text: '新老用户对比(待接入)', left: 'center', top: 10, textStyle: new UTSJSONObject({ fontSize: 12, color: 'rgba(0,0,0,0.55)' }) }), series: [] });\n profileChartOption.value = new UTSJSONObject({ title: new UTSJSONObject({ text: '用户画像(待接入:需要性别/年龄/地域字段)', left: 'center', top: 10, textStyle: new UTSJSONObject({ fontSize: 12, color: 'rgba(0,0,0,0.55)' }) }), series: [] });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/user-analysis.uvue:458', 'loadUserData failed', e);\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '数据加载失败' })), icon: 'none', duration: 2000 });\n }\n finally {\n loading.value = false;\n updateTime();\n }\n });\n }\n function selectPeriod(p) {\n selectedPeriod.value = p;\n customRangeEnabled.value = false;\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n loadUserData();\n }\n function toggleCustomRange() {\n customRangeEnabled.value = !customRangeEnabled.value;\n }\n function onDateRangeApply(range) {\n selectedStartDate.value = range.start;\n selectedEndDate.value = range.end;\n customRangeEnabled.value = true;\n loadUserData();\n }\n function onDateRangeClear() {\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n customRangeEnabled.value = false;\n loadUserData();\n }\n function refreshData() {\n loadUserData();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出图片'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n function formatInt(n) {\n const v = isFinite(n) ? Math.round(n) : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toString();\n }\n function formatPct(n) {\n const v = isFinite(n) ? n : 0;\n const sign = v > 0 ? '+' : '';\n return `${sign}${v.toFixed(1)}%`;\n }\n function calcFunnelRate(idx) {\n if (idx <= 0 || idx >= funnelSteps.length)\n return 0;\n const prev = Number(funnelSteps[idx - 1].value) || 0;\n const cur = Number(funnelSteps[idx].value) || 0;\n if (prev <= 0)\n return 0;\n return (cur / prev) * 100;\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '用户分析',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: selectedPeriod.value === p.value && !customRangeEnabled.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n m: customRangeEnabled.value ? 1 : '',\n n: _o(toggleCustomRange),\n o: customRangeEnabled.value\n }, customRangeEnabled.value ? {\n p: _o(onDateRangeApply),\n q: _o(onDateRangeClear),\n r: _p({\n initialStartDate: selectedStartDate.value,\n initialEndDate: selectedEndDate.value\n })\n } : {}, {\n s: _t(formatInt(userData.new_users)),\n t: _t(formatPct(userData.new_user_growth)),\n v: _t(formatInt(userData.active_users)),\n w: _t(formatPct(userData.active_growth)),\n x: hasOrderingData.value\n }, hasOrderingData.value ? {\n y: _t(formatInt(userData.ordering_users)),\n z: _t(formatPct(userData.ordering_growth))\n } : {}, {\n A: hasPaidData.value\n }, hasPaidData.value ? {\n B: _t(formatInt(userData.paid_users)),\n C: _t(formatPct(userData.paid_growth))\n } : {}, {\n D: hasNewConversionData.value\n }, hasNewConversionData.value ? {\n E: _t(formatPct(userData.new_user_conversion_rate))\n } : {}, {\n F: _t(formatPct(userData.repurchase_rate)),\n G: _t(formatPct(userData.repurchase_growth)),\n H: _t(selectedPeriodText.value),\n I: loading.value || !growthChartOption.value || !growthChartOption.value.series || growthChartOption.value.series.length === 0\n }, loading.value || !growthChartOption.value || !growthChartOption.value.series || growthChartOption.value.series.length === 0 ? {\n J: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n K: _p({\n option: growthChartOption.value\n })\n }, {\n L: _f(funnelSteps, (s, idx, i0) => {\n return _e({\n a: _t(idx + 1),\n b: _t(s.step),\n c: _t(formatInt(s.value)),\n d: idx > 0\n }, idx > 0 ? {\n e: _t(formatPct(calcFunnelRate(idx)))\n } : {}, {\n f: idx\n });\n }),\n M: !hasFunnelData.value\n }, !hasFunnelData.value ? {} : {}, {\n N: _t(selectedPeriodText.value),\n O: _p({\n option: retentionChartOption.value\n }),\n P: _p({\n option: segmentChartOption.value\n }),\n Q: _p({\n option: profileChartOption.value\n }),\n R: _t(selectedPeriodText.value),\n S: _p({\n option: trafficChartOption.value\n }),\n T: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/user-analysis.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsDateRangePicker.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"user-analysis.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"user-analysis.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2adb4781645c0db38b2f2984e07c7a993da05a11 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2adb4781645c0db38b2f2984e07c7a993da05a11 deleted file mode 100644 index 4abe6ea7..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2adb4781645c0db38b2f2984e07c7a993da05a11 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport supa, { supaReady } from \"@/components/supadb/aksupainstance\";\nimport { getCurrentUserId } from \"@/utils/store\";\nexport default defineComponent({\n data() {\n return {\n order: new UTSJSONObject({\n id: '',\n order_no: '',\n user_id: '',\n merchant_id: '',\n status: 0,\n total_amount: 0,\n discount_amount: 0,\n delivery_fee: 0,\n actual_amount: 0,\n payment_method: 0,\n payment_status: 0,\n delivery_address: new UTSJSONObject({}),\n created_at: ''\n }),\n orderItems: [],\n merchant: new UTSJSONObject({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }),\n deliveryInfo: new UTSJSONObject({\n distance: 0,\n estimated_time: 0,\n courier_id: '',\n pickup_time: '',\n delivery_time: ''\n }),\n pickupAddress: '',\n customerNote: '',\n merchantNote: '',\n deliveryNote: '',\n };\n },\n onLoad(options = null) {\n const orderId = options.id;\n // ✅ 从 URL 参数获取 status\n const status = parseInt(options.status) || 0;\n if (orderId) {\n this.order.id = orderId;\n this.order.status = status; // ✅ 设置传入的状态\n this.loadOrderDetail(orderId);\n }\n },\n methods: {\n goBack() {\n uni.navigateBack();\n },\n loadOrderDetail(orderId) {\n return __awaiter(this, void 0, void 0, function* () {\n const originalStatus = this.order.status;\n try {\n yield supaReady;\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:253', 'loadOrderDetail called', new UTSJSONObject({ orderId }));\n // 获取订单主表:按 id(UUID) / cid(数字) / order_no 三种可能匹配\n let orderRes = null;\n const isUuid = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(orderId);\n const isNumber = /^\\d+$/.test(orderId);\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:259', 'loadOrderDetail: supa session=', supa.getSession && supa.getSession());\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:260', 'loadOrderDetail: detect id format', new UTSJSONObject({ isUuid, isNumber }));\n if (isUuid) {\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:262', 'loadOrderDetail: querying by id');\n orderRes = yield supa.from('ml_orders').select('*').eq('id', orderId).limit(1).execute();\n }\n else if (isNumber) {\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:265', 'loadOrderDetail: querying by cid');\n orderRes = yield supa.from('ml_orders').select('*').eq('cid', Number(orderId)).limit(1).execute();\n }\n else {\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:268', 'loadOrderDetail: querying by order_no');\n orderRes = yield supa.from('ml_orders').select('*').eq('order_no', orderId).limit(1).execute();\n }\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:271', 'loadOrderDetail: orderRes=', orderRes);\n if (orderRes && Array.isArray(orderRes.data) && orderRes.data.length > 0) {\n const row = orderRes.data[0];\n const shipping = row.shipping_address || new UTSJSONObject({});\n this.order = Object.assign(this.order, new UTSJSONObject({\n id: row.id,\n order_no: row.order_no || '',\n user_id: row.user_id || '',\n merchant_id: row.merchant_id || '',\n status: Number(row.order_status) || originalStatus,\n total_amount: Number(row.total_amount || row.product_amount || 0),\n discount_amount: Number(row.discount_amount || 0),\n delivery_fee: Number(row.shipping_fee || row.shipping_fee || 0),\n actual_amount: Number(row.paid_amount || row.actual_amount || 0),\n payment_method: row.payment_method || 0,\n payment_status: row.payment_status || 0,\n delivery_address: new UTSJSONObject({\n name: shipping.name || shipping.recipient || '',\n phone: shipping.phone || shipping.mobile || '',\n detail: shipping.detail || shipping.address || UTS.JSON.stringify(shipping)\n }),\n created_at: row.created_at || ''\n }));\n this.customerNote = row.remark || '';\n this.merchantNote = row.merchant_memo || '';\n // 读取订单商品 - 使用从主表获得的真实 order id\n const realOrderId = row.id;\n const itemsRes = yield supa.from('ml_order_items').select('*').eq('order_id', realOrderId).execute();\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:303', 'loadOrderDetail: itemsRes=', itemsRes);\n if (itemsRes && Array.isArray(itemsRes.data)) {\n this.orderItems = itemsRes.data.map((it = null) => { return (new UTSJSONObject({\n id: it.id,\n order_id: it.order_id,\n product_id: it.product_id,\n sku_id: it.sku_id,\n product_name: it.product_name,\n sku_specifications: it.specifications || it.sku_name || null,\n price: Number(it.price) || 0,\n quantity: Number(it.quantity) || 0,\n total_amount: Number(it.total_amount) || 0,\n product_image: it.image_url || it.product_image || ''\n })); });\n }\n // 读取商家店铺信息(ml_shops)\n if (row.merchant_id) {\n const shopRes = yield supa.from('ml_shops').select('*').eq('merchant_id', row.merchant_id).limit(1).execute();\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:322', 'loadOrderDetail: shopRes=', shopRes);\n if (shopRes && Array.isArray(shopRes.data) && shopRes.data.length > 0) {\n const s = shopRes.data[0];\n this.merchant = Object.assign(this.merchant, new UTSJSONObject({\n id: s.id || '',\n user_id: s.merchant_id || '',\n shop_name: s.shop_name || s.name || '',\n shop_logo: s.shop_logo || '',\n shop_banner: s.shop_banner || '',\n shop_description: s.description || s.shop_description || '',\n contact_name: s.contact_name || '',\n contact_phone: s.contact_phone || '',\n shop_status: s.status || 0,\n rating: s.rating || 0,\n total_sales: s.total_sales || 0,\n created_at: s.created_at || ''\n }));\n this.pickupAddress = s.address || '';\n }\n }\n // deliveryInfo 从 ml_delivery_tasks 中读取(如果存在)\n const dtRes = yield supa.from('ml_delivery_tasks').select('*').eq('order_id', realOrderId).limit(1).execute();\n uni.__f__('log', 'at pages/mall/delivery/order-detail.uvue:345', 'loadOrderDetail: dtRes=', dtRes);\n if (dtRes && Array.isArray(dtRes.data) && dtRes.data.length > 0) {\n const dt = dtRes.data[0];\n this.deliveryInfo.distance = Number(dt.distance) || this.deliveryInfo.distance;\n this.deliveryInfo.estimated_time = Number(dt.estimated_time) || this.deliveryInfo.estimated_time;\n this.deliveryInfo.courier_id = dt.driver_id || '';\n this.deliveryInfo.pickup_time = dt.pickup_time || '';\n this.deliveryInfo.delivery_time = dt.delivered_time || '';\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/order-detail.uvue:356', 'loadOrderDetail db error', e);\n }\n });\n },\n getStatusDesc() {\n if (this.order.status >= 5) {\n return '订单已送达完成';\n }\n else if (this.order.status === 4) {\n return '已取货,正在前往送达';\n }\n else if (this.order.status === 3) {\n return '配送员正在前往取货';\n }\n else if (this.order.status === 2) {\n return '订单已接取';\n }\n else if (this.order.status === 1) {\n return '等待配送员接单';\n }\n else {\n return '订单状态未知';\n }\n },\n getDeliveryAddress() {\n return this.order.delivery_address;\n },\n getSpecText(specifications = null) {\n if (!specifications)\n return '';\n return Object.keys(specifications).map(key => { return `${key}: ${specifications[key]}`; }).join(', ');\n },\n confirmPickup() {\n if (this.order.status < 5) {\n uni.showModal(new UTSJSONObject({\n title: '确认取货',\n content: '确认已从商家处取到商品?',\n success: (res) => { return __awaiter(this, void 0, void 0, function* () {\n if (res.confirm) {\n try {\n yield supaReady;\n // 更新 delivery task\n const dtRes = yield supa.from('ml_delivery_tasks').update(new UTSJSONObject({ status: 4, pickup_time: new Date().toISOString() })).eq('order_id', this.order.id).execute();\n // 同步订单状态\n yield supa.from('ml_orders').update(new UTSJSONObject({ order_status: 4 })).eq('id', this.order.id).execute();\n this.order.status = 4;\n uni.showToast({ title: '取货确认成功', icon: 'success' });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/order-detail.uvue:401', 'confirmPickup db error', e);\n uni.showToast({ title: '取货确认失败', icon: 'none' });\n }\n }\n }); }\n }));\n }\n },\n confirmDelivery() {\n if (this.order.status < 5) {\n uni.showModal(new UTSJSONObject({\n title: '确认送达',\n content: '确认商品已送达到顾客手中?',\n success: (res) => { return __awaiter(this, void 0, void 0, function* () {\n if (res.confirm) {\n try {\n yield supaReady;\n // 更新 delivery task\n yield supa.from('ml_delivery_tasks').update(new UTSJSONObject({ status: 6, delivered_time: new Date().toISOString() })).eq('order_id', this.order.id).execute();\n // 更新订单状态为已送达\n yield supa.from('ml_orders').update(new UTSJSONObject({ order_status: 5 })).eq('id', this.order.id).execute();\n this.order.status = 5;\n uni.showToast({ title: '送达确认成功', icon: 'success' });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/order-detail.uvue:426', 'confirmDelivery db error', e);\n uni.showToast({ title: '送达确认失败', icon: 'none' });\n }\n }\n }); }\n }));\n }\n },\n acceptOrder() {\n if (this.order.status < 5) {\n uni.showModal(new UTSJSONObject({\n title: '接受订单',\n content: '确定接受这个配送订单吗?',\n success: (res) => { return __awaiter(this, void 0, void 0, function* () {\n if (res.confirm) {\n try {\n yield supaReady;\n const userId = getCurrentUserId();\n let driverId = null;\n if (userId) {\n const dRes = yield supa.from('ml_delivery_drivers').select('id').eq('user_id', userId).limit(1).execute();\n if (dRes && Array.isArray(dRes.data) && dRes.data.length > 0)\n driverId = dRes.data[0].id;\n }\n // 尝试更新已有 delivery task\n const updateRes = yield supa.from('ml_delivery_tasks').update(new UTSJSONObject({ driver_id: driverId, status: 2 })).eq('order_id', this.order.id).execute();\n if (!(updateRes && Array.isArray(updateRes.data) && updateRes.data.length > 0)) {\n // 若不存在,则插入新的 task\n yield supa.from('ml_delivery_tasks').insert(new UTSJSONObject({ order_id: this.order.id, driver_id: driverId, status: 2, created_at: new Date().toISOString() })).execute();\n }\n // 更新订单状态\n yield supa.from('ml_orders').update(new UTSJSONObject({ order_status: 2 })).eq('id', this.order.id).execute();\n this.order.status = 2;\n uni.showToast({ title: '订单接受成功', icon: 'success' });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/order-detail.uvue:462', 'acceptOrder db error', e);\n uni.showToast({ title: '接受订单失败', icon: 'none' });\n }\n }\n }); }\n }));\n }\n },\n rejectOrder() {\n if (this.order.status < 5) {\n uni.showModal(new UTSJSONObject({\n title: '拒绝订单',\n content: '确定拒绝这个配送订单吗?',\n success: (res) => { return __awaiter(this, void 0, void 0, function* () {\n if (res.confirm) {\n try {\n yield supaReady;\n // 标记订单为已拒绝(order_status = 7)\n yield supa.from('ml_orders').update(new UTSJSONObject({ order_status: 7 })).eq('id', this.order.id).execute();\n uni.showToast({ title: '订单已拒绝', icon: 'success' });\n uni.navigateBack();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/delivery/order-detail.uvue:485', 'rejectOrder db error', e);\n uni.showToast({ title: '拒绝订单失败', icon: 'none' });\n }\n }\n }); }\n }));\n }\n },\n startNavigation() {\n if (this.order.status < 5) {\n uni.showToast({\n title: '正在启动导航',\n icon: 'loading'\n });\n setTimeout(() => {\n uni.showToast({\n title: '导航已启动',\n icon: 'success'\n });\n }, 1000);\n }\n },\n callCustomer() {\n const phone = this.getDeliveryAddress().phone;\n uni.makePhoneCall({ phoneNumber: phone });\n },\n callMerchant() {\n uni.makePhoneCall({ phoneNumber: this.merchant.contact_phone });\n },\n contactService() {\n uni.navigateTo({\n url: `/pages/mall/service/chat?orderId=${this.order.id}&type=delivery`\n });\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/order-detail.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.__f__","uni.showToast","uni.showModal","uni.makePhoneCall","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"order-detail.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"order-detail.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2c2329ff6aa8937943aee86dc71c4011ed22b25f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2c2329ff6aa8937943aee86dc71c4011ed22b25f deleted file mode 100644 index 13c8969f..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2c2329ff6aa8937943aee86dc71c4011ed22b25f +++ /dev/null @@ -1 +0,0 @@ -{"code":"export class RecentReport extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n status: { type: \"Unknown\", optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"RecentReport\"\n };\n }\n constructor(options, metadata = RecentReport.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.status = this.__props__.status;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport class OverviewData extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n totalSales: { type: String, optional: false },\n salesGrowth: { type: Number, optional: false },\n totalUsers: { type: String, optional: false },\n userGrowth: { type: Number, optional: false },\n totalOrders: { type: String, optional: false },\n orderGrowth: { type: Number, optional: false },\n conversionRate: { type: Number, optional: false },\n conversionGrowth: { type: Number, optional: false }\n };\n },\n name: \"OverviewData\"\n };\n }\n constructor(options, metadata = OverviewData.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.totalSales = this.__props__.totalSales;\n this.salesGrowth = this.__props__.salesGrowth;\n this.totalUsers = this.__props__.totalUsers;\n this.userGrowth = this.__props__.userGrowth;\n this.totalOrders = this.__props__.totalOrders;\n this.orderGrowth = this.__props__.orderGrowth;\n this.conversionRate = this.__props__.conversionRate;\n this.conversionGrowth = this.__props__.conversionGrowth;\n delete this.__props__;\n }\n}\nexport class ReportCounts extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total: { type: Number, optional: false },\n pending: { type: Number, optional: false },\n scheduled: { type: Number, optional: false },\n shared: { type: Number, optional: false }\n };\n },\n name: \"ReportCounts\"\n };\n }\n constructor(options, metadata = ReportCounts.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total = this.__props__.total;\n this.pending = this.__props__.pending;\n this.scheduled = this.__props__.scheduled;\n this.shared = this.__props__.shared;\n delete this.__props__;\n }\n}\nexport class TodayInsights extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n hotProduct: { type: String, optional: false },\n peakTraffic: { type: String, optional: false },\n conversionAnomaly: { type: String, optional: false },\n mobileRatio: { type: Number, optional: false }\n };\n },\n name: \"TodayInsights\"\n };\n }\n constructor(options, metadata = TodayInsights.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.hotProduct = this.__props__.hotProduct;\n this.peakTraffic = this.__props__.peakTraffic;\n this.conversionAnomaly = this.__props__.conversionAnomaly;\n this.mobileRatio = this.__props__.mobileRatio;\n delete this.__props__;\n }\n}\nexport class TrendDatum extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n label: { type: String, optional: false },\n sales: { type: Number, optional: false },\n orders: { type: Number, optional: false }\n };\n },\n name: \"TrendDatum\"\n };\n }\n constructor(options, metadata = TrendDatum.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.label = this.__props__.label;\n this.sales = this.__props__.sales;\n this.orders = this.__props__.orders;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/types/analytics/profile.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"profile.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uts\"],\"names\":[],\"mappings\":\"AAIA,MAAM,OAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQxB,MAAM,OAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWxB,MAAM,OAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;AAOxB,MAAM,OAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;AAOzB,MAAM,OAAM,UAAU\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e7945b9a9f913c78df3b3fc5378da2d67af19cc b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e7945b9a9f913c78df3b3fc5378da2d67af19cc deleted file mode 100644 index 8900ccd0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2e7945b9a9f913c78df3b3fc5378da2d67af19cc +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { rpcOrEmptyArray, rpcOrNull } from \"./rpc\";\nexport class ReportInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n definition: { type: \"Any\", optional: false },\n updated_at: { type: String, optional: false }\n };\n },\n name: \"ReportInfo\"\n };\n }\n constructor(options, metadata = ReportInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.definition = this.__props__.definition;\n this.updated_at = this.__props__.updated_at;\n delete this.__props__;\n }\n}\nfunction safeString(v = null) {\n return v != null ? `${v}` : '';\n}\n// 改造:调用 rpc_data_detail_report_info\nexport function fetchReportInfo(reportId) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function* () {\n const row = yield rpcOrNull('rpc_data_detail_report_info', {\n p_report_id: reportId\n });\n if (row == null)\n return null;\n return {\n id: safeString((_a = row.getAny) === null || _a === void 0 ? null : _a.call(row, 'id')),\n title: safeString((_b = row.getAny) === null || _b === void 0 ? null : _b.call(row, 'title')),\n description: safeString((_c = row.getAny) === null || _c === void 0 ? null : _c.call(row, 'description')),\n definition: (_d = row.getAny) === null || _d === void 0 ? null : _d.call(row, 'definition'),\n updated_at: safeString((_e = row.getAny) === null || _e === void 0 ? null : _e.call(row, 'updated_at'))\n };\n });\n}\n// 改造:调用 rpc_data_detail_rows\nexport function fetchReportRows(reportId, params = null) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield rpcOrNull('rpc_data_detail_rows', {\n p_report_id: reportId,\n p_params: params\n });\n if (result == null)\n return [];\n const anyData = result;\n return Array.isArray(anyData) ? anyData : [];\n });\n}\n// 保留调用,但 RPC 是模拟数据\nexport function fetchDrilldown(reportId, itemId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield rpcOrEmptyArray('rpc_data_detail_drill_items', {\n p_report_id: reportId,\n p_item_id: itemId\n });\n });\n}\n// 保留调用,但 RPC 是模拟数据\nexport function fetchComparison(itemId, period) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield rpcOrEmptyArray('rpc_data_detail_compare_gmv', {\n p_item_id: itemId,\n p_period: period\n });\n });\n}\n//# sourceMappingURL=D:/companyproject/mall/services/analytics/dataDetailService.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"dataDetailService.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"dataDetailService.uts\"],\"names\":[],\"mappings\":\";OAAO,EAAE,eAAe,EAAE,SAAS,EAAE;AAErC,MAAM,OAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQtB,SAAS,UAAU,CAAC,QAAM;IACxB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAChC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAgB,eAAe,CAAC,QAAgB;;;QACpD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,6BAA6B,EAAE;YACzD,WAAW,EAAE,QAAQ;SACf,CAAC,CAAA;QAET,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,IAAI,CAAA;QAE5B,OAAO;YACL,EAAE,EAAE,UAAU,CAAC,MAAA,GAAG,CAAC,MAAM,kDAAG,IAAI,CAAC,CAAC;YAClC,KAAK,EAAE,UAAU,CAAC,MAAA,GAAG,CAAC,MAAM,kDAAG,OAAO,CAAC,CAAC;YACxC,WAAW,EAAE,UAAU,CAAC,MAAA,GAAG,CAAC,MAAM,kDAAG,aAAa,CAAC,CAAC;YACpD,UAAU,EAAE,MAAA,GAAG,CAAC,MAAM,kDAAG,YAAY,CAAC;YACtC,UAAU,EAAE,UAAU,CAAC,MAAA,GAAG,CAAC,MAAM,kDAAG,YAAY,CAAC,CAAC;SACnD,CAAA;;CACF;AAED,6BAA6B;AAC7B,MAAM,UAAgB,eAAe,CAAC,QAAgB,EAAE,aAAW;;QACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,sBAAsB,EAAE;YACrD,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,MAAM;SACV,CAAC,CAAA;QAET,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAa,CAAA;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAgC,CAAC,CAAC,CAAE,EAA2B,CAAA;IAClG,CAAC;CAAA;AAED,mBAAmB;AACnB,MAAM,UAAgB,cAAc,CAAC,QAAgB,EAAE,MAAc;;QACnE,OAAO,MAAM,eAAe,CAAC,6BAA6B,EAAE;YAC1D,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,MAAM;SACX,CAAC,CAAA;IACX,CAAC;CAAA;AAED,mBAAmB;AACnB,MAAM,UAAgB,eAAe,CAAC,MAAc,EAAE,MAAc;;QAClE,OAAO,MAAM,eAAe,CAAC,6BAA6B,EAAE;YAC1D,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,MAAM;SACV,CAAC,CAAA;IACX,CAAC;CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2ec7c4be9e76c3b119457a500912ba1720b9e3bd b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2ec7c4be9e76c3b119457a500912ba1720b9e3bd deleted file mode 100644 index 6a8a1c02..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/2ec7c4be9e76c3b119457a500912ba1720b9e3bd +++ /dev/null @@ -1 +0,0 @@ -{"code":"// types/analytics/data-detail.uts\nexport class TableColumn extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n key: { type: String, optional: false },\n label: { type: String, optional: false },\n type: { type: String, optional: false },\n sortable: { type: Boolean, optional: false }\n };\n },\n name: \"TableColumn\"\n };\n }\n constructor(options, metadata = TableColumn.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.key = this.__props__.key;\n this.label = this.__props__.label;\n this.type = this.__props__.type;\n this.sortable = this.__props__.sortable;\n delete this.__props__;\n }\n}\nexport class DrillDownItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n label: { type: String, optional: false },\n value: { type: String, optional: false },\n type: { type: String, optional: false }\n };\n },\n name: \"DrillDownItem\"\n };\n }\n constructor(options, metadata = DrillDownItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.label = this.__props__.label;\n this.value = this.__props__.value;\n this.type = this.__props__.type;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/types/analytics/data-detail.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"data-detail.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"data-detail.uts\"],\"names\":[],\"mappings\":\"AAAA,kCAAkC;AAElC,MAAM,OAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;AACvB,MAAM,OAAM,aAAa\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31df94ffae29f736a54ccd2f127ee901883fd644 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31df94ffae29f736a54ccd2f127ee901883fd644 deleted file mode 100644 index b789d390..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/31df94ffae29f736a54ccd2f127ee901883fd644 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, computed, onMounted } from 'vue';\nimport { onShow } from '@dcloudio/uni-app';\nimport { supabaseService, Notification, ChatMessage, ChatRoom } from \"@/utils/supabaseService\";\nclass MessageItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n content: { type: String, optional: false },\n time: { type: String, optional: false },\n read: { type: Boolean, optional: false },\n type: { type: String, optional: false },\n avatar: { type: String, optional: true },\n important: { type: Boolean, optional: false },\n coupon: { type: String, optional: false },\n expiry: { type: String, optional: false },\n claimed: { type: Boolean, optional: false },\n order_no: { type: String, optional: false },\n status: { type: String, optional: false },\n statusText: { type: String, optional: false },\n role: { type: String, optional: false },\n lastMessage: { type: String, optional: false },\n online: { type: Boolean, optional: false },\n unreadCount: { type: Number, optional: false },\n tags: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },\n icon: { type: String, optional: false },\n color: { type: String, optional: false },\n active: { type: Boolean, optional: false }\n };\n },\n name: \"MessageItem\"\n };\n }\n constructor(options, metadata = MessageItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.content = this.__props__.content;\n this.time = this.__props__.time;\n this.read = this.__props__.read;\n this.type = this.__props__.type;\n this.avatar = this.__props__.avatar;\n this.important = this.__props__.important;\n this.coupon = this.__props__.coupon;\n this.expiry = this.__props__.expiry;\n this.claimed = this.__props__.claimed;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.statusText = this.__props__.statusText;\n this.role = this.__props__.role;\n this.lastMessage = this.__props__.lastMessage;\n this.online = this.__props__.online;\n this.unreadCount = this.__props__.unreadCount;\n this.tags = this.__props__.tags;\n this.icon = this.__props__.icon;\n this.color = this.__props__.color;\n this.active = this.__props__.active;\n delete this.__props__;\n }\n}\nclass MessageTab extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n unread: { type: Number, optional: false }\n };\n },\n name: \"MessageTab\"\n };\n }\n constructor(options, metadata = MessageTab.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.unread = this.__props__.unread;\n delete this.__props__;\n }\n}\nclass CapsuleButtonInfo extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n left: { type: Number, optional: false },\n top: { type: Number, optional: false },\n right: { type: Number, optional: false },\n bottom: { type: Number, optional: false },\n width: { type: Number, optional: false },\n height: { type: Number, optional: false }\n };\n },\n name: \"CapsuleButtonInfo\"\n };\n }\n constructor(options, metadata = CapsuleButtonInfo.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.left = this.__props__.left;\n this.top = this.__props__.top;\n this.right = this.__props__.right;\n this.bottom = this.__props__.bottom;\n this.width = this.__props__.width;\n this.height = this.__props__.height;\n delete this.__props__;\n }\n}\n// 小程序胶囊按钮信息\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'messages',\n setup(__props) {\n const activeTab = ref('service');\n const refreshing = ref(false);\n const loading = ref(false);\n const unreadCount = ref(12);\n const statusBarHeight = ref(0);\n const scrollTop = ref(0);\n const scrollHeight = ref(0);\n const navBarRight = ref(0);\n // 小程序胶囊按钮信息类型\n const capsuleButtonInfo = ref(null);\n // 消息分类标签\n const messageTabs = reactive([\n new MessageTab({ id: 'service', name: '客服消息', unread: 5 }),\n new MessageTab({ id: 'system', name: '系统通知', unread: 3 }),\n new MessageTab({ id: 'order', name: '订单消息', unread: 2 }),\n new MessageTab({ id: 'promo', name: '优惠活动', unread: 2 })\n ]);\n // 消息数据\n const serviceMessages = reactive([]);\n const systemMessages = reactive([]);\n const orderMessages = reactive([]);\n const promoMessages = reactive([]);\n // 计算当前显示的消息\n const currentMessages = computed(() => {\n switch (activeTab.value) {\n case 'system': return systemMessages;\n case 'order': return orderMessages;\n case 'service': return serviceMessages;\n case 'promo': return promoMessages;\n default: return [];\n }\n });\n // 简单的日期格式化\n const formatTime = (isoString) => {\n if (isoString == '')\n return '';\n try {\n return isoString.split('T')[0];\n }\n catch (e) {\n return isoString;\n }\n };\n // 更新未读数量 - 必须在 loadMessages 之前定义\n const updateUnreadCount = () => {\n let totalUnread = 0;\n let serviceUnread = 0;\n serviceMessages.forEach((msg) => {\n if (!msg.read)\n serviceUnread++;\n });\n messageTabs[0].unread = serviceUnread;\n totalUnread += serviceUnread;\n let systemUnread = 0;\n systemMessages.forEach((msg) => {\n if (!msg.read)\n systemUnread++;\n });\n messageTabs[1].unread = systemUnread;\n totalUnread += systemUnread;\n let orderUnread = 0;\n orderMessages.forEach((msg) => {\n if (!msg.read)\n orderUnread++;\n });\n messageTabs[2].unread = orderUnread;\n totalUnread += orderUnread;\n let promoUnread = 0;\n promoMessages.forEach((msg) => {\n if (!msg.read)\n promoUnread++;\n });\n messageTabs[3].unread = promoUnread;\n totalUnread += promoUnread;\n unreadCount.value = totalUnread;\n };\n // 初始化页面布局数据\n const initPage = () => {\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = systemInfo.statusBarHeight;\n // 获取小程序胶囊按钮信息\n try {\n capsuleButtonInfo.value = uni.getMenuButtonBoundingClientRect();\n if (capsuleButtonInfo.value != null) {\n navBarRight.value = (systemInfo.screenWidth - capsuleButtonInfo.value.left) + 10;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/main/messages.uvue:364', '获取胶囊按钮信息失败', e);\n navBarRight.value = 90;\n }\n const windowHeight = systemInfo.windowHeight;\n scrollHeight.value = windowHeight - statusBarHeight.value - 44 - 42;\n };\n // 加载消息函数 - 必须在 updateUnreadCount 之后定义\n const loadMessages = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n loading.value = true;\n try {\n // 清空现有数据\n serviceMessages.length = 0;\n systemMessages.length = 0;\n orderMessages.length = 0;\n promoMessages.length = 0;\n // 1. 获取通知 (系统、订单、优惠)\n uni.__f__('log', 'at pages/main/messages.uvue:389', '[loadMessages] 开始获取通知...');\n const notes = yield supabaseService.getUserNotifications();\n uni.__f__('log', 'at pages/main/messages.uvue:391', '[loadMessages] 获取到通知数量:', notes.length);\n // 使用 for 循环替代 forEach\n for (let i = 0; i < notes.length; i++) {\n const note = notes[i];\n uni.__f__('log', 'at pages/main/messages.uvue:396', '[loadMessages] 通知类型:', note.type, '标题:', note.title);\n const item = new MessageItem({\n id: note.id,\n title: note.title,\n content: note.content,\n time: formatTime((_a = note.created_at) !== null && _a !== void 0 ? _a : ''),\n read: note.is_read,\n type: note.type,\n avatar: note.icon_url,\n important: note.type == 'system',\n coupon: '点击查看',\n expiry: '',\n claimed: false,\n order_no: '',\n status: '',\n statusText: '',\n role: '',\n lastMessage: '',\n online: false,\n unreadCount: 0,\n tags: [],\n icon: '',\n color: '',\n active: false\n });\n if (note.type == 'system') {\n systemMessages.push(item);\n }\n else if (note.type == 'order') {\n orderMessages.push(item);\n }\n else if (note.type == 'promotion') {\n item.type = 'promo';\n promoMessages.push(item);\n }\n }\n uni.__f__('log', 'at pages/main/messages.uvue:433', '[loadMessages] 系统消息:', systemMessages.length, '订单消息:', orderMessages.length, '优惠消息:', promoMessages.length);\n // 2. 获取客服消息 (Chat)\n const rooms = yield supabaseService.getChatRooms();\n rooms.forEach((room) => {\n var _a, _b, _c, _d;\n const msgItem = new MessageItem({\n id: room.merchant_id,\n title: room.shop_name,\n role: '商家客服',\n content: (_a = room.last_message) !== null && _a !== void 0 ? _a : '暂无消息',\n lastMessage: (_b = room.last_message) !== null && _b !== void 0 ? _b : '暂无消息',\n time: formatTime((_c = room.last_message_at) !== null && _c !== void 0 ? _c : ''),\n read: room.unread_count === 0,\n type: 'service',\n avatar: (_d = room.shop_logo) !== null && _d !== void 0 ? _d : '/static/icons/customer-service.png',\n online: true,\n unreadCount: room.unread_count,\n tags: [],\n icon: '🏪',\n color: '#FF9800',\n important: false,\n coupon: '',\n expiry: '',\n claimed: false,\n order_no: '',\n status: '',\n statusText: '',\n active: false\n });\n serviceMessages.push(msgItem);\n });\n // 如果没有消息,添加默认客服\n if (serviceMessages.length === 0) {\n const defaultService = new MessageItem({\n id: 'default_service',\n title: '平台客服',\n role: '智能助手',\n content: '有问题请随时联系我们',\n lastMessage: '欢迎咨询',\n time: '刚刚',\n read: true,\n type: 'service',\n avatar: '/static/icons/customer-service.png',\n online: true,\n unreadCount: 0,\n tags: ['自动回复'],\n icon: '🤖',\n color: '#2196F3',\n important: false,\n coupon: '',\n expiry: '',\n claimed: false,\n order_no: '',\n status: '',\n statusText: '',\n active: false\n });\n serviceMessages.push(defaultService);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/messages.uvue:495', '加载消息失败', e);\n }\n finally {\n updateUnreadCount();\n loading.value = false;\n }\n }); };\n // 生命周期钩子\n onMounted(() => {\n uni.__f__('log', 'at pages/main/messages.uvue:504', 'Messages Page Mounted');\n initPage();\n });\n onShow(() => {\n uni.__f__('log', 'at pages/main/messages.uvue:509', 'Messages Page Show');\n loadMessages();\n });\n // 切换标签\n const switchTab = (tabId) => {\n activeTab.value = tabId;\n // 切换标签时回到顶部,使用微小变化触发滚动更新\n scrollTop.value = scrollTop.value === 0 ? 0.01 : 0;\n };\n // 开始与客服聊天\n const startChatWithService = (message) => {\n message.read = true;\n message.unreadCount = 0;\n updateUnreadCount();\n // 这里的 message.id 已经被我们修改为 conversation partner (merchantId)\n // 所以参数传递需要调整\n const merchantId = message.id === 'default_service' ? '' : message.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchantId}&merchantName=${encodeURIComponent(message.title)}`\n });\n };\n // 快速开始服务\n const startQuickService = (category) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?category=${encodeURIComponent(category)}`\n });\n };\n // 新建聊天\n const startNewChat = () => {\n uni.showActionSheet({\n itemList: ['用药咨询', '处方咨询', '副作用咨询', '药品配送', '其他问题'],\n success: (res) => {\n const categories = ['用药咨询', '处方咨询', '副作用咨询', '药品配送', '其他问题'];\n const category = categories[res.tapIndex];\n startQuickService(category);\n }\n });\n };\n // 查看系统消息\n const viewSystemMessage = (message) => {\n message.read = true;\n updateUnreadCount();\n uni.navigateTo({\n url: `/pages/mall/consumer/message-detail?id=${message.id}&type=system`\n });\n };\n // 查看订单消息\n const viewOrderMessage = (message) => {\n message.read = true;\n updateUnreadCount();\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?id=${message.order_no}`\n });\n };\n // 查看优惠活动\n const viewPromoMessage = (message) => {\n message.read = true;\n updateUnreadCount();\n uni.navigateTo({\n url: `/pages/mall/consumer/coupons`\n });\n };\n // 领取优惠券\n const claimCoupon = (message) => {\n if (message.claimed) {\n uni.showToast({\n title: '您已领取该优惠券',\n icon: 'none'\n });\n return null;\n }\n message.claimed = true;\n // 保存领取状态到本地存储,供个人页读取\n const claimedCouponsCount = uni.getStorageSync('claimedCoupons');\n const count = (claimedCouponsCount != null) ? claimedCouponsCount : 0;\n uni.setStorageSync('claimedCoupons', count + 1);\n // 保存详细的优惠券信息到 myCoupons 列表\n const myCoupons = uni.getStorageSync('myCoupons');\n let couponsList = [];\n if (myCoupons != null) {\n try {\n couponsList = UTS.JSON.parse(myCoupons);\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/messages.uvue:604', 'Failed to parse myCoupons', e);\n }\n }\n couponsList.push(new UTSJSONObject({\n title: message.title,\n amount: message.coupon,\n expiry: message.expiry,\n id: message.id\n }));\n uni.setStorageSync('myCoupons', UTS.JSON.stringify(couponsList));\n uni.showToast({\n title: '领取成功',\n icon: 'success'\n });\n };\n // 清除所有未读\n const clearAllUnread = () => {\n uni.showModal(new UTSJSONObject({\n title: '确认操作',\n content: '确定要标记所有消息为已读吗?',\n success: (res) => {\n if (res.confirm) {\n serviceMessages.forEach((msg) => {\n msg.read = true;\n msg.unreadCount = 0;\n });\n systemMessages.forEach((msg) => {\n msg.read = true;\n });\n orderMessages.forEach((msg) => {\n msg.read = true;\n });\n promoMessages.forEach((msg) => {\n msg.read = true;\n });\n messageTabs.forEach((tab) => {\n tab.unread = 0;\n });\n unreadCount.value = 0;\n uni.showToast({\n title: '已标记所有消息为已读',\n icon: 'success'\n });\n }\n }\n }));\n };\n // 下拉刷新\n const onRefresh = () => {\n refreshing.value = true;\n setTimeout(() => {\n loadMessages();\n refreshing.value = false;\n uni.showToast({\n title: '刷新成功',\n icon: 'success'\n });\n }, 1000);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(clearAllUnread),\n b: (navBarRight.value > 0 ? navBarRight.value : 16) + 'px',\n c: statusBarHeight.value + 'px',\n d: statusBarHeight.value + 44 + 'px',\n e: _f(messageTabs, (tab, k0, i0) => {\n return _e({\n a: _t(tab.name),\n b: tab.unread > 0\n }, tab.unread > 0 ? {\n c: _t(tab.unread > 99 ? '99+' : tab.unread)\n } : {}, {\n d: tab.id,\n e: _n({\n active: activeTab.value === tab.id\n }),\n f: _o($event => { return switchTab(tab.id); }, tab.id)\n });\n }),\n f: activeTab.value === 'service'\n }, activeTab.value === 'service' ? {\n g: _f(serviceMessages, (message, k0, i0) => {\n return _e({\n a: message.avatar\n }, message.avatar ? {\n b: message.avatar\n } : {\n c: _t(message.icon),\n d: message.color\n }, {\n e: message.unreadCount > 0\n }, message.unreadCount > 0 ? {} : {}, {\n f: message.online\n }, message.online ? {} : {}, {\n g: _t(message.title),\n h: message.role\n }, message.role ? {\n i: _t(message.role)\n } : {}, {\n j: _t(message.time),\n k: _t(message.content),\n l: message.unreadCount > 0\n }, message.unreadCount > 0 ? {\n m: _t(message.unreadCount > 99 ? '99+' : message.unreadCount)\n } : {}, {\n n: message.id,\n o: _n({\n active: message.active\n }),\n p: _o($event => { return startChatWithService(message); }, message.id)\n });\n })\n } : {}, {\n h: activeTab.value === 'system'\n }, activeTab.value === 'system' ? {\n i: _f(systemMessages, (message, k0, i0) => {\n return _e({\n a: !message.read\n }, !message.read ? {} : {}, {\n b: _t(message.title),\n c: message.important\n }, message.important ? {} : {}, {\n d: _t(message.time),\n e: _t(message.content),\n f: message.id,\n g: _o($event => { return viewSystemMessage(message); }, message.id)\n });\n })\n } : {}, {\n j: activeTab.value === 'order'\n }, activeTab.value === 'order' ? {\n k: _f(orderMessages, (message, k0, i0) => {\n return _e({\n a: !message.read\n }, !message.read ? {} : {}, {\n b: _t(message.title),\n c: message.status\n }, message.status ? {\n d: _t(message.statusText),\n e: _n(message.status)\n } : {}, {\n f: _t(message.time),\n g: _t(message.content),\n h: message.order_no\n }, message.order_no ? {\n i: _t(message.order_no)\n } : {}, {\n j: message.id,\n k: _o($event => { return viewOrderMessage(message); }, message.id)\n });\n })\n } : {}, {\n l: activeTab.value === 'promo'\n }, activeTab.value === 'promo' ? {\n m: _f(promoMessages, (message, k0, i0) => {\n return _e({\n a: _t(message.title),\n b: _t(message.time),\n c: _t(message.content),\n d: message.coupon\n }, message.coupon ? {\n e: _t(message.coupon),\n f: _t(message.expiry),\n g: _t(message.claimed ? '已领取' : '点击领取'),\n h: _o($event => { return claimCoupon(message); }, message.id)\n } : {}, {\n i: message.id,\n j: _n({\n unread: !message.read\n }),\n k: _o($event => { return viewPromoMessage(message); }, message.id)\n });\n })\n } : {}, {\n n: !loading.value && currentMessages.value.length === 0 && activeTab.value !== 'service'\n }, !loading.value && currentMessages.value.length === 0 && activeTab.value !== 'service' ? {} : {}, {\n o: refreshing.value,\n p: _o(onRefresh),\n q: scrollTop.value,\n r: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/messages.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.__f__","uni.navigateTo","uni.showActionSheet","uni.showToast","uni.getStorageSync","uni.setStorageSync","uni.showModal"],"map":"{\"version\":3,\"file\":\"messages.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"messages.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33116250853e70a1bb36492ccbd13e0ae7092a20 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33116250853e70a1bb36492ccbd13e0ae7092a20 deleted file mode 100644 index 7d64e914..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33116250853e70a1bb36492ccbd13e0ae7092a20 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nimport { DeliveryDriverType } from \"@/types/mall-types\";\nexport default defineComponent({\n data() {\n return {\n // 模拟车辆数据\n vehicleList: []\n };\n },\n onLoad() {\n this.loadVehicles();\n },\n onShow() {\n // 页面每次显示时都检查是否有新添加的车辆\n this.loadVehicles();\n },\n methods: {\n // 返回上一页\n goBack() {\n uni.navigateBack();\n },\n // 加载车辆信息\n loadVehicles() {\n // 1. 从本地存储获取新添加的车辆(如果存在)\n const newVehicleFromStorage = uni.getStorageSync('new_vehicle_for_list');\n if (newVehicleFromStorage) {\n // 2. 清除本地存储,防止重复添加\n uni.removeStorageSync('new_vehicle_for_list');\n // 3. 将新车辆添加到列表开头\n this.vehicleList.unshift(newVehicleFromStorage);\n return null; // 如果有新数据,直接使用,不加载旧的模拟数据\n }\n // 4. 如果没有新数据,才加载旧的模拟数据(实际项目中应从API获取)\n if (this.vehicleList.length === 0) { // 避免重复加载模拟数据\n this.vehicleList = [\n {\n id: '1',\n plate_number: '京A12345',\n vehicle_type: 1,\n vehicle_type_name: '电动车',\n status: 1,\n driver_id: 'driver001',\n created_at: '2024-01-01',\n updated_at: '2024-12-01'\n },\n {\n id: '2',\n plate_number: '沪B67890',\n vehicle_type: 2,\n vehicle_type_name: '摩托车',\n status: 2,\n driver_id: 'driver001',\n created_at: '2024-01-02',\n updated_at: '2024-12-02'\n },\n {\n id: '3',\n plate_number: '粤C11223',\n vehicle_type: 3,\n vehicle_type_name: '汽车',\n status: 3,\n driver_id: 'driver001',\n created_at: '2024-01-03',\n updated_at: '2024-12-03'\n }\n ];\n }\n },\n // 获取车辆状态文本\n getVehicleStatusText(status) {\n const statusMap = new UTSJSONObject({\n 1: '正常',\n 2: '维修中',\n 3: '停用'\n });\n return statusMap[status] || '未知状态';\n },\n // 编辑车辆\n editVehicle(vehicleId) {\n uni.navigateTo({\n url: `/pages/mall/delivery/vehicle-edit?id=${vehicleId}`\n });\n },\n // 删除车辆\n deleteVehicle(vehicleId) {\n uni.showModal(new UTSJSONObject({\n title: '确认删除',\n content: '确定要删除该车辆吗?',\n success: (res) => {\n if (res.confirm) {\n // TODO: 调用API删除车辆\n this.vehicleList = this.vehicleList.filter(v => { return v.id !== vehicleId; });\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n }\n }\n }));\n },\n // 添加车辆\n addVehicle() {\n uni.navigateTo({\n url: '/pages/mall/delivery/vehicle-add'\n });\n }\n }\n}\n// 定义 VehicleType 类型\n);\nclass VehicleType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n plate_number: { type: String, optional: false },\n vehicle_type: { type: Number, optional: false },\n vehicle_type_name: { type: String, optional: false },\n status: { type: Number, optional: false },\n driver_id: { type: String, optional: false },\n created_at: { type: String, optional: false },\n updated_at: { type: String, optional: false },\n brand: { type: String, optional: true },\n color: { type: String, optional: true },\n image: { type: String, optional: true },\n remark: { type: String, optional: true }\n };\n },\n name: \"VehicleType\"\n };\n }\n constructor(options, metadata = VehicleType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.plate_number = this.__props__.plate_number;\n this.vehicle_type = this.__props__.vehicle_type;\n this.vehicle_type_name = this.__props__.vehicle_type_name;\n this.status = this.__props__.status;\n this.driver_id = this.__props__.driver_id;\n this.created_at = this.__props__.created_at;\n this.updated_at = this.__props__.updated_at;\n this.brand = this.__props__.brand;\n this.color = this.__props__.color;\n this.image = this.__props__.image;\n this.remark = this.__props__.remark;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/vehicle.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.getStorageSync","uni.removeStorageSync","uni.navigateTo","uni.showToast","uni.showModal"],"map":"{\"version\":3,\"file\":\"vehicle.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"vehicle.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACY,EAAE,kBAAkB,EAAE;AAElC,+BAAe;IACb,IAAI;QACF,OAAO;YACL,SAAS;YACT,WAAW,EAAE,EAAwB;SACtC,CAAA;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,MAAM;QACJ,sBAAsB;QACtB,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,OAAO,EAAE;QACP,QAAQ;QACR,MAAM;YACJ,GAAG,CAAC,YAAY,EAAE,CAAA;QACpB,CAAC;QAED,SAAS;QACT,YAAY;YACV,yBAAyB;YACzB,MAAM,qBAAqB,GAAG,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;YACxE,IAAI,qBAAqB,EAAE;gBACzB,mBAAmB;gBACnB,GAAG,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;gBAC7C,iBAAiB;gBACjB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;gBAC/C,YAAM,CAAC,wBAAwB;aAChC;YAED,qCAAqC;YACrC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa;gBAChD,IAAI,CAAC,WAAW,GAAG;oBACjB;wBACE,EAAE,EAAE,GAAG;wBACP,YAAY,EAAE,SAAS;wBACvB,YAAY,EAAE,CAAC;wBACf,iBAAiB,EAAE,KAAK;wBACxB,MAAM,EAAE,CAAC;wBACT,SAAS,EAAE,WAAW;wBACtB,UAAU,EAAE,YAAY;wBACxB,UAAU,EAAE,YAAY;qBACzB;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,YAAY,EAAE,SAAS;wBACvB,YAAY,EAAE,CAAC;wBACf,iBAAiB,EAAE,KAAK;wBACxB,MAAM,EAAE,CAAC;wBACT,SAAS,EAAE,WAAW;wBACtB,UAAU,EAAE,YAAY;wBACxB,UAAU,EAAE,YAAY;qBACzB;oBACD;wBACE,EAAE,EAAE,GAAG;wBACP,YAAY,EAAE,SAAS;wBACvB,YAAY,EAAE,CAAC;wBACf,iBAAiB,EAAE,IAAI;wBACvB,MAAM,EAAE,CAAC;wBACT,SAAS,EAAE,WAAW;wBACtB,UAAU,EAAE,YAAY;wBACxB,UAAU,EAAE,YAAY;qBACzB;iBACF,CAAA;aACF;QACH,CAAC;QAED,WAAW;QACX,oBAAoB,CAAC,MAAc;YACjC,MAAM,SAAS,qBAAG;gBAChB,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,IAAI;aACR,CAAA,CAAA;YACD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAA;QACpC,CAAC;QAED,OAAO;QACP,WAAW,CAAC,SAAiB;YAC3B,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,wCAAwC,SAAS,EAAE;aACzD,CAAC,CAAA;QACJ,CAAC;QAED,OAAO;QACP,aAAa,CAAC,SAAiB;YAC7B,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,kBAAkB;wBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAI,OAAA,CAAC,CAAC,EAAE,KAAK,SAAS,EAAlB,CAAkB,CAAC,CAAA;wBACnE,GAAG,CAAC,SAAS,CAAC;4BACZ,KAAK,EAAE,MAAM;4BACb,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,OAAO;QACP,UAAU;YACR,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,kCAAkC;aACxC,CAAC,CAAA;QACJ,CAAC;KACF;CACF;AAED,oBAAoB;EAFnB;MAGI,WAAW\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33f69ff5bed2f84df6a418b476284c928ef39189 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33f69ff5bed2f84df6a418b476284c928ef39189 deleted file mode 100644 index 2966c55a..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/33f69ff5bed2f84df6a418b476284c928ef39189 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass PointRecord extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n points: { type: Number, optional: false },\n type: { type: String, optional: false },\n description: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"PointRecord\"\n };\n }\n constructor(options, metadata = PointRecord.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.points = this.__props__.points;\n this.type = this.__props__.type;\n this.description = this.__props__.description;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass ExpiringDetail extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n points: { type: Number, optional: false },\n description: { type: String, optional: true },\n expires_at: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"ExpiringDetail\"\n };\n }\n constructor(options, metadata = ExpiringDetail.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.points = this.__props__.points;\n this.description = this.__props__.description;\n this.expires_at = this.__props__.expires_at;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const totalPoints = ref(0);\n const records = ref([]);\n const loading = ref(true);\n const signedToday = ref(false);\n const continuousDays = ref(0);\n const expiringPoints = ref(0);\n const expiringDate = ref('');\n const expiringDetails = ref([]);\n const showExpiringPopup = ref(false);\n const loadPoints = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const points = yield supabaseService.getUserPoints();\n totalPoints.value = points;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/index.uvue:146', '获取积分失败', e);\n }\n }); };\n const loadRecords = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const list = yield supabaseService.getPointRecords();\n records.value = list;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/index.uvue:155', '获取积分记录失败', e);\n }\n }); };\n const loadSigninStatus = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const status = yield supabaseService.getTodaySigninStatus();\n signedToday.value = (_a = status.getBoolean('signed')) !== null && _a !== void 0 ? _a : false;\n continuousDays.value = (_b = status.getNumber('continuous_days')) !== null && _b !== void 0 ? _b : 0;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/index.uvue:165', '获取签到状态失败', e);\n }\n }); };\n const loadExpiringPoints = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g;\n try {\n const result = yield supabaseService.getExpiringPoints();\n expiringPoints.value = (_a = result.getNumber('expiring_points')) !== null && _a !== void 0 ? _a : 0;\n expiringDate.value = (_b = result.getString('expiring_date')) !== null && _b !== void 0 ? _b : '';\n const detailsRaw = result.get('details');\n if (detailsRaw != null && Array.isArray(detailsRaw)) {\n const details = [];\n const arr = detailsRaw;\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n let itemObj;\n if (UTS.isInstanceOf(item, UTSJSONObject)) {\n itemObj = item;\n }\n else {\n itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n }\n details.push(new ExpiringDetail({\n points: (_c = itemObj.getNumber('points')) !== null && _c !== void 0 ? _c : 0,\n description: itemObj.getString('description'),\n expires_at: (_d = itemObj.getString('expires_at')) !== null && _d !== void 0 ? _d : '',\n created_at: (_g = itemObj.getString('created_at')) !== null && _g !== void 0 ? _g : ''\n }));\n }\n expiringDetails.value = details;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/points/index.uvue:197', '获取即将过期积分失败', e);\n }\n }); };\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n yield Promise.all([\n loadPoints(),\n loadRecords(),\n loadSigninStatus(),\n loadExpiringPoints()\n ]);\n loading.value = false;\n }); };\n onMounted(() => {\n loadData();\n });\n const handleExchange = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/exchange'\n });\n };\n const goToSignin = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/signin'\n });\n };\n const goToMyReviews = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/my-reviews'\n });\n };\n const showExpiringDetails = () => {\n showExpiringPopup.value = true;\n };\n const closeExpiringPopup = () => {\n showExpiringPopup.value = false;\n };\n const getTypeText = (type) => {\n if (type == 'signin') {\n return '每日签到';\n }\n else if (type == 'shopping') {\n return '购物奖励';\n }\n else if (type == 'redeem') {\n return '积分兑换';\n }\n else if (type == 'admin') {\n return '系统调整';\n }\n else if (type == 'register') {\n return '注册赠送';\n }\n else if (type == 'expire') {\n return '积分过期';\n }\n else {\n return '积分变动';\n }\n };\n const formatTime = (timeStr) => {\n if (timeStr == '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const hh = date.getHours().toString().padStart(2, '0');\n const mm = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${hh}:${mm}`;\n };\n const formatDate = (dateStr) => {\n if (dateStr == '')\n return '';\n const date = new Date(dateStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n return `${y}-${m}-${d}`;\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(totalPoints.value),\n b: _o(handleExchange),\n c: !signedToday.value\n }, !signedToday.value ? {} : {}, {\n d: _o(goToSignin),\n e: _o(handleExchange),\n f: _o(goToMyReviews),\n g: !signedToday.value\n }, !signedToday.value ? {\n h: _o(goToSignin)\n } : {\n i: _t(continuousDays.value)\n }, {\n j: expiringPoints.value > 0\n }, expiringPoints.value > 0 ? {\n k: _t(expiringPoints.value),\n l: _t(expiringDate.value),\n m: _o(showExpiringDetails)\n } : {}, {\n n: loading.value\n }, loading.value ? {} : records.value.length === 0 ? {} : {\n p: _f(records.value, (item, k0, i0) => {\n return {\n a: _t(item.description ?? getTypeText(item.type)),\n b: _t(formatTime(item.created_at)),\n c: _t(item.points > 0 ? '+' : ''),\n d: _t(item.points),\n e: item.points > 0 ? 1 : '',\n f: item.points < 0 ? 1 : '',\n g: item.id\n };\n })\n }, {\n o: records.value.length === 0,\n q: showExpiringPopup.value\n }, showExpiringPopup.value ? {\n r: _o(closeExpiringPopup),\n s: _f(expiringDetails.value, (detail, index, i0) => {\n return {\n a: _t(detail.points),\n b: _t(detail.description ?? '积分获取'),\n c: _t(formatDate(detail.expires_at)),\n d: index\n };\n }),\n t: _o(() => { }),\n v: _o(closeExpiringPopup)\n } : {}, {\n w: _sei(_gei(_ctx, ''), 'scroll-view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/points/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/379a79fbd52b5519f2981c75b96eb535937cd9fa b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/379a79fbd52b5519f2981c75b96eb535937cd9fa deleted file mode 100644 index 865aa8a8..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/379a79fbd52b5519f2981c75b96eb535937cd9fa +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { MerchantType, OrderType, ApiResponseType } from '@/types/mall-types';\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile',\n setup(__props) {\n const shopInfo = ref(new MerchantType({\n id: '',\n shop_name: '我的店铺',\n shop_logo: '',\n rating: 4.8,\n total_sales: 1289,\n shop_status: 1\n }));\n const orderCounts = ref(new UTSJSONObject({\n total: 0,\n pending: 0,\n shipped: 0,\n refund: 0\n }));\n const todayStats = ref(new UTSJSONObject({\n revenue: '2,368.50',\n orders: 45,\n visitors: 238,\n conversion: 18.9\n }));\n const productStats = ref(new UTSJSONObject({\n total: 156,\n lowStock: 8\n }));\n const promotionStats = ref(new UTSJSONObject({\n active: 3\n }));\n const reviewStats = ref(new UTSJSONObject({\n pending: 12\n }));\n const recentOrders = ref([]);\n const weeklyData = ref([\n new UTSJSONObject({ day: '周一', amount: 1200 }),\n new UTSJSONObject({ day: '周二', amount: 1800 }),\n new UTSJSONObject({ day: '周三', amount: 2400 }),\n new UTSJSONObject({ day: '周四', amount: 1600 }),\n new UTSJSONObject({ day: '周五', amount: 2800 }),\n new UTSJSONObject({ day: '周六', amount: 3200 }),\n new UTSJSONObject({ day: '周日', amount: 2600 })\n ]);\n // 计算属性\n const maxWeeklyAmount = computed(() => {\n return Math.max(...weeklyData.value.map(item => { return item.amount; }));\n });\n // 生命周期\n onMounted(() => {\n loadShopInfo();\n loadOrderCounts();\n loadRecentOrders();\n });\n // 方法\n function loadShopInfo() {\n // 模拟加载店铺信息\n shopInfo.value = {\n id: 'shop001',\n user_id: 'user001',\n shop_name: '时尚服饰专营店',\n shop_logo: '/static/shop-logo.png',\n shop_banner: '',\n shop_description: '专业的时尚服饰店铺',\n contact_name: '张老板',\n contact_phone: '13888888888',\n shop_status: 1,\n rating: 4.8,\n total_sales: 1289,\n created_at: '2024-01-01'\n };\n }\n function loadOrderCounts() {\n // 模拟加载订单统计\n orderCounts.value = {\n total: 156,\n pending: 8,\n shipped: 12,\n refund: 3\n };\n }\n function loadRecentOrders() {\n // 模拟加载最近订单\n recentOrders.value = [\n {\n id: 'order001',\n order_no: 'ORD20241201001',\n user_id: 'user001',\n merchant_id: 'shop001',\n status: 2,\n total_amount: 299.0,\n discount_amount: 0,\n delivery_fee: 10.0,\n actual_amount: 309.0,\n payment_method: 1,\n payment_status: 1,\n delivery_address: new UTSJSONObject({}),\n created_at: '2024-12-01 14:30:00'\n },\n {\n id: 'order002',\n order_no: 'ORD20241201002',\n user_id: 'user002',\n merchant_id: 'shop001',\n status: 1,\n total_amount: 599.0,\n discount_amount: 50.0,\n delivery_fee: 0,\n actual_amount: 549.0,\n payment_method: null,\n payment_status: 0,\n delivery_address: new UTSJSONObject({}),\n created_at: '2024-12-01 15:20:00'\n }\n ];\n }\n function getShopStatus() {\n const statusMap = new UTSJSONObject({\n 0: '待审核',\n 1: '正常营业',\n 2: '暂停营业',\n 3: '已关闭'\n });\n return statusMap[shopInfo.value.shop_status] || '未知状态';\n }\n function getOrderStatusText(status) {\n const statusMap = new UTSJSONObject({\n 1: '待付款',\n 2: '待发货',\n 3: '已发货',\n 4: '已送达',\n 5: '已完成',\n 6: '已取消'\n });\n return statusMap[status] || '未知';\n }\n function formatTime(dateStr) {\n const date = new Date(dateStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const hours = Math.floor(diff / (1000 * 60 * 60));\n if (hours < 1) {\n return '刚刚';\n }\n else if (hours < 24) {\n return `${hours}小时前`;\n }\n else {\n return `${Math.floor(hours / 24)}天前`;\n }\n }\n // 导航方法\n function editShop() {\n uni.navigateTo({\n url: '/pages/mall/merchant/shop-edit'\n });\n }\n function goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/merchant/settings'\n });\n }\n function goToOrders(type) {\n uni.navigateTo({\n url: `/pages/mall/merchant/orders?type=${type}`\n });\n }\n function viewOrderDetail(orderId) {\n uni.navigateTo({\n url: `/pages/mall/merchant/order-detail?id=${orderId}`\n });\n }\n function goToProducts() {\n uni.navigateTo({\n url: '/pages/mall/merchant/products'\n });\n }\n function goToInventory() {\n uni.navigateTo({\n url: '/pages/mall/merchant/inventory'\n });\n }\n function goToPromotions() {\n uni.navigateTo({\n url: '/pages/mall/merchant/promotions'\n });\n }\n function goToReviews() {\n uni.navigateTo({\n url: '/pages/mall/merchant/reviews'\n });\n }\n function goToAnalytics() {\n uni.navigateTo({\n url: '/pages/mall/merchant/analytics'\n });\n }\n function goToFinance() {\n uni.navigateTo({\n url: '/pages/mall/merchant/finance'\n });\n }\n function goToCustomers() {\n uni.navigateTo({\n url: '/pages/mall/merchant/customers'\n });\n }\n function goToMarketing() {\n uni.navigateTo({\n url: '/pages/mall/merchant/marketing'\n });\n }\n function goToHelp() {\n uni.navigateTo({\n url: '/pages/mall/common/help'\n });\n }\n function goToFeedback() {\n uni.navigateTo({\n url: '/pages/mall/common/feedback'\n });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: shopInfo.value.shop_logo || '/static/default-shop.png',\n b: _o(editShop),\n c: _t(shopInfo.value.shop_name),\n d: _t(getShopStatus()),\n e: _t(shopInfo.value.rating),\n f: _t(shopInfo.value.total_sales),\n g: _o(goToSettings),\n h: orderCounts.value.total > 0\n }, orderCounts.value.total > 0 ? {\n i: _t(orderCounts.value.total)\n } : {}, {\n j: _o($event => { return goToOrders('all'); }),\n k: orderCounts.value.pending > 0\n }, orderCounts.value.pending > 0 ? {\n l: _t(orderCounts.value.pending)\n } : {}, {\n m: _o($event => { return goToOrders('pending'); }),\n n: orderCounts.value.shipped > 0\n }, orderCounts.value.shipped > 0 ? {\n o: _t(orderCounts.value.shipped)\n } : {}, {\n p: _o($event => { return goToOrders('shipped'); }),\n q: orderCounts.value.refund > 0\n }, orderCounts.value.refund > 0 ? {\n r: _t(orderCounts.value.refund)\n } : {}, {\n s: _o($event => { return goToOrders('refund'); }),\n t: _t(todayStats.value.revenue),\n v: _t(todayStats.value.orders),\n w: _t(todayStats.value.visitors),\n x: _t(todayStats.value.conversion),\n y: _o($event => { return goToOrders('all'); }),\n z: recentOrders.value.length > 0\n }, recentOrders.value.length > 0 ? {\n A: _f(recentOrders.value, (order, k0, i0) => {\n return {\n a: _t(order.order_no),\n b: _t(getOrderStatusText(order.status)),\n c: _n('status-' + order.status),\n d: _t(order.actual_amount),\n e: _t(formatTime(order.created_at)),\n f: order.id,\n g: _o($event => { return viewOrderDetail(order.id); }, order.id)\n };\n })\n } : {}, {\n B: _t(productStats.value.total),\n C: _o(goToProducts),\n D: _t(productStats.value.lowStock),\n E: _o(goToInventory),\n F: _t(promotionStats.value.active),\n G: _o(goToPromotions),\n H: _t(reviewStats.value.pending),\n I: _o(goToReviews),\n J: _o(goToAnalytics),\n K: _f(weeklyData.value, (day, index, i0) => {\n return {\n a: index,\n b: day.amount / maxWeeklyAmount.value * 100 + '%'\n };\n }),\n L: _o(goToFinance),\n M: _o(goToCustomers),\n N: _o(goToMarketing),\n O: _o(goToHelp),\n P: _o(goToFeedback),\n Q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/merchant/profile.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/types/mall-types.uts"],"uniExtApis":["uni.navigateTo"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/446eaa46a99753a3da5951ca5f28cec7a9eb3eee b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/446eaa46a99753a3da5951ca5f28cec7a9eb3eee deleted file mode 100644 index 47f8eeae..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/446eaa46a99753a3da5951ca5f28cec7a9eb3eee +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nimport { UserType, OrderType } from \"@/types/mall-types\";\nclass TicketType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n category: { type: String, optional: false },\n priority: { type: String, optional: false },\n status: { type: String, optional: false },\n user_id: { type: String, optional: false },\n assigned_to: { type: String, optional: false },\n attachments: { type: \"Unknown\", optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"TicketType\"\n };\n }\n constructor(options, metadata = TicketType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.category = this.__props__.category;\n this.priority = this.__props__.priority;\n this.status = this.__props__.status;\n this.user_id = this.__props__.user_id;\n this.assigned_to = this.__props__.assigned_to;\n this.attachments = this.__props__.attachments;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass TicketLogType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n ticket_id: { type: String, optional: false },\n action: { type: String, optional: false },\n content: { type: String, optional: false },\n operator_name: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"TicketLogType\"\n };\n }\n constructor(options, metadata = TicketLogType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.ticket_id = this.__props__.ticket_id;\n this.action = this.__props__.action;\n this.content = this.__props__.content;\n this.operator_name = this.__props__.operator_name;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nclass SuggestionType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n description: { type: String, optional: false },\n template: { type: String, optional: false }\n };\n },\n name: \"SuggestionType\"\n };\n }\n constructor(options, metadata = SuggestionType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.description = this.__props__.description;\n this.template = this.__props__.template;\n delete this.__props__;\n }\n}\nexport default defineComponent({\n data() {\n return {\n ticket: new TicketType({\n id: '',\n title: '',\n description: '',\n category: '',\n priority: '',\n status: '',\n user_id: '',\n assigned_to: '',\n attachments: [],\n created_at: ''\n }),\n user: new UserType({\n id: '',\n phone: '',\n email: '',\n nickname: '',\n avatar_url: '',\n gender: 0,\n user_type: 0,\n status: 0,\n created_at: ''\n }),\n ticketLogs: [],\n relatedOrder: null,\n suggestions: [],\n quickReplies: [],\n responseContent: ''\n };\n },\n onLoad(options = null) {\n const ticketId = options.ticketId;\n if (ticketId) {\n this.loadTicketDetail(ticketId);\n }\n },\n methods: {\n loadTicketDetail(ticketId) {\n // 模拟加载工单详情数据\n this.ticket = {\n id: ticketId,\n title: '订单支付问题',\n description: '我在支付订单时遇到了问题,支付页面一直加载不出来,尝试了多次都无法完成支付。订单号是ORD202401150001,希望能尽快解决。',\n category: 'payment',\n priority: 'high',\n status: 'processing',\n user_id: 'user_001',\n assigned_to: 'service_001',\n attachments: ['/static/screenshot1.jpg', '/static/log.txt'],\n created_at: '2024-01-15T10:30:00'\n };\n this.user = {\n id: 'user_001',\n phone: '13800138000',\n email: 'user@example.com',\n nickname: '张三',\n avatar_url: '/static/avatar1.jpg',\n gender: 1,\n user_type: 1,\n status: 1,\n created_at: '2023-06-15T10:30:00'\n };\n this.ticketLogs = [\n {\n id: 'log_001',\n ticket_id: ticketId,\n action: 'created',\n content: '工单已创建',\n operator_name: '系统',\n created_at: '2024-01-15T10:30:00'\n },\n {\n id: 'log_002',\n ticket_id: ticketId,\n action: 'assigned',\n content: '工单已分配给客服小王',\n operator_name: '系统',\n created_at: '2024-01-15T10:35:00'\n },\n {\n id: 'log_003',\n ticket_id: ticketId,\n action: 'responded',\n content: '已联系用户确认问题详情,正在排查支付系统。',\n operator_name: '客服小王',\n created_at: '2024-01-15T11:00:00'\n }\n ];\n if (this.ticket.category === 'payment') {\n this.relatedOrder = {\n id: 'order_001',\n order_no: 'ORD202401150001',\n user_id: 'user_001',\n merchant_id: 'merchant_001',\n status: 1,\n total_amount: 299.98,\n discount_amount: 30.00,\n delivery_fee: 8.00,\n actual_amount: 277.98,\n payment_method: 1,\n payment_status: 0,\n delivery_address: new UTSJSONObject({}),\n created_at: '2024-01-15T10:25:00'\n };\n }\n this.suggestions = [\n {\n id: 'sug_001',\n title: '检查支付方式',\n description: '建议用户更换支付方式或检查账户余额',\n template: '您好,建议您尝试更换支付方式,或检查您的账户余额是否充足。如果问题仍然存在,请联系我们的技术支持。'\n },\n {\n id: 'sug_002',\n title: '清除缓存',\n description: '指导用户清除浏览器缓存后重试',\n template: '您好,请尝试清除浏览器缓存后重新进行支付。具体操作:设置 > 清除浏览数据 > 清除缓存和Cookie。'\n }\n ];\n this.quickReplies = [\n '感谢您的反馈,我们正在处理',\n '问题已确认,预计30分钟内解决',\n '请提供更多详细信息',\n '问题已解决,请您确认',\n '如有其他问题,请随时联系我们'\n ];\n },\n getStatusClass() {\n const classes = {\n open: 'status-open',\n processing: 'status-processing',\n resolved: 'status-resolved',\n closed: 'status-closed'\n };\n return classes[this.ticket.status] || 'status-open';\n },\n getStatusText() {\n const statusTexts = {\n open: '待处理',\n processing: '处理中',\n resolved: '已解决',\n closed: '已关闭'\n };\n return statusTexts[this.ticket.status] || '未知';\n },\n getCategoryText() {\n const categories = {\n payment: '支付问题',\n order: '订单问题',\n delivery: '配送问题',\n product: '商品问题',\n account: '账户问题',\n other: '其他问题'\n };\n return categories[this.ticket.category] || '其他';\n },\n getPriorityText() {\n const priorities = {\n low: '低优先级',\n medium: '中优先级',\n high: '高优先级',\n urgent: '紧急'\n };\n return priorities[this.ticket.priority] || '普通';\n },\n getOrderStatusText(status) {\n const statusTexts = ['异常', '待支付', '待发货', '待收货', '已完成', '已取消'];\n return statusTexts[status] || '未知';\n },\n getLogActionText(action) {\n const actions = {\n created: '创建工单',\n assigned: '分配工单',\n responded: '回复用户',\n escalated: '升级工单',\n resolved: '解决工单',\n closed: '关闭工单'\n };\n return actions[action] || action;\n },\n getAttachmentIcon(attachment) {\n var _a;\n const ext = (_a = UTS.arrayPop(attachment.split('.'))) === null || _a === void 0 ? null : _a.toLowerCase();\n const icons = {\n jpg: '🖼️',\n jpeg: '🖼️',\n png: '🖼️',\n gif: '🖼️',\n pdf: '📄',\n doc: '📝',\n docx: '📝',\n txt: '📄',\n zip: '📦'\n };\n return icons[ext || ''] || '📎';\n },\n getAttachmentName(attachment) {\n return UTS.arrayPop(attachment.split('/')) || '未知文件';\n },\n formatTime(timeStr) {\n return timeStr.replace('T', ' ').split('.')[0];\n },\n callUser() {\n uni.makePhoneCall({\n phoneNumber: this.user.phone\n });\n },\n sendMessage() {\n uni.navigateTo({\n url: `/pages/mall/service/chat?userId=${this.user.id}&ticketId=${this.ticket.id}`\n });\n },\n previewAttachment(attachment) {\n uni.previewImage({\n urls: [attachment],\n current: attachment\n });\n },\n viewOrderDetail() {\n if (this.relatedOrder) {\n uni.navigateTo({\n url: `/pages/mall/service/order-detail?orderId=${this.relatedOrder.id}`\n });\n }\n },\n applySuggestion(suggestion) {\n this.responseContent = suggestion.template;\n },\n selectQuickReply(reply) {\n this.responseContent = reply;\n },\n addAttachment() {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n success: (res) => {\n uni.showToast({\n title: '附件添加成功',\n icon: 'success'\n });\n }\n }));\n },\n useTemplate() {\n uni.navigateTo({\n url: '/pages/mall/service/response-templates'\n });\n },\n processTicket() {\n if (!this.responseContent.trim()) {\n uni.showToast({\n title: '请输入处理内容',\n icon: 'none'\n });\n return null;\n }\n this.ticket.status = 'processing';\n this.ticketLogs.push({\n id: 'log_' + Date.now(),\n ticket_id: this.ticket.id,\n action: 'responded',\n content: this.responseContent,\n operator_name: '当前客服',\n created_at: new Date().toISOString()\n });\n this.responseContent = '';\n uni.showToast({\n title: '处理成功',\n icon: 'success'\n });\n },\n resolveTicket() {\n if (!this.responseContent.trim()) {\n uni.showToast({\n title: '请输入解决方案',\n icon: 'none'\n });\n return null;\n }\n this.ticket.status = 'resolved';\n this.ticketLogs.push({\n id: 'log_' + Date.now(),\n ticket_id: this.ticket.id,\n action: 'resolved',\n content: this.responseContent,\n operator_name: '当前客服',\n created_at: new Date().toISOString()\n });\n this.responseContent = '';\n uni.showToast({\n title: '工单已解决',\n icon: 'success'\n });\n },\n escalateTicket() {\n uni.showModal(new UTSJSONObject({\n title: '升级工单',\n content: '确定要将此工单升级到上级处理吗?',\n success: (res) => {\n if (res.confirm) {\n this.ticketLogs.push({\n id: 'log_' + Date.now(),\n ticket_id: this.ticket.id,\n action: 'escalated',\n content: '工单已升级到上级处理',\n operator_name: '当前客服',\n created_at: new Date().toISOString()\n });\n uni.showToast({\n title: '工单已升级',\n icon: 'success'\n });\n }\n }\n }));\n },\n addNote() {\n uni.navigateTo({\n url: `/pages/mall/service/add-note?ticketId=${this.ticket.id}`\n });\n },\n closeTicket() {\n uni.showModal(new UTSJSONObject({\n title: '关闭工单',\n content: '确定要关闭此工单吗?关闭后将无法继续处理。',\n success: (res) => {\n if (res.confirm) {\n this.ticket.status = 'closed';\n this.ticketLogs.push({\n id: 'log_' + Date.now(),\n ticket_id: this.ticket.id,\n action: 'closed',\n content: '工单已关闭',\n operator_name: '当前客服',\n created_at: new Date().toISOString()\n });\n uni.showToast({\n title: '工单已关闭',\n icon: 'success'\n });\n }\n }\n }));\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/service/ticket-detail.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.makePhoneCall","uni.navigateTo","uni.previewImage","uni.showToast","uni.chooseImage","uni.showModal"],"map":"{\"version\":3,\"file\":\"ticket-detail.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"ticket-detail.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACO,EAAE,QAAQ,EAAE,SAAS,EAAE;MAEzB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAaV,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASb,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;AAOnB,+BAAe;IACb,IAAI;QACF,OAAO;YACL,MAAM,iBAAE;gBACN,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,EAAE;aACD,CAAA;YACf,IAAI,eAAE;gBACJ,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,EAAE;aACH,CAAA;YACb,UAAU,EAAE,EAA0B;YACtC,YAAY,EAAE,IAAwB;YACtC,WAAW,EAAE,EAA2B;YACxC,YAAY,EAAE,EAAmB;YACjC,eAAe,EAAE,EAAE;SACpB,CAAA;IACH,CAAC;IACD,MAAM,CAAC,cAAY;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAkB,CAAA;QAC3C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;SAChC;IACH,CAAC;IACD,OAAO,EAAE;QACP,gBAAgB,CAAC,QAAgB;YAC/B,aAAa;YACb,IAAI,CAAC,MAAM,GAAG;gBACZ,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,oEAAoE;gBACjF,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,UAAU;gBACnB,WAAW,EAAE,aAAa;gBAC1B,WAAW,EAAE,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;gBAC3D,UAAU,EAAE,qBAAqB;aAClC,CAAA;YAED,IAAI,CAAC,IAAI,GAAG;gBACV,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,qBAAqB;gBACjC,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,qBAAqB;aAClC,CAAA;YAED,IAAI,CAAC,UAAU,GAAG;gBAChB;oBACE,EAAE,EAAE,SAAS;oBACb,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,OAAO;oBAChB,aAAa,EAAE,IAAI;oBACnB,UAAU,EAAE,qBAAqB;iBAClC;gBACD;oBACE,EAAE,EAAE,SAAS;oBACb,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,YAAY;oBACrB,aAAa,EAAE,IAAI;oBACnB,UAAU,EAAE,qBAAqB;iBAClC;gBACD;oBACE,EAAE,EAAE,SAAS;oBACb,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,uBAAuB;oBAChC,aAAa,EAAE,MAAM;oBACrB,UAAU,EAAE,qBAAqB;iBAClC;aACF,CAAA;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACtC,IAAI,CAAC,YAAY,GAAG;oBAClB,EAAE,EAAE,WAAW;oBACf,QAAQ,EAAE,iBAAiB;oBAC3B,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,cAAc;oBAC3B,MAAM,EAAE,CAAC;oBACT,YAAY,EAAE,MAAM;oBACpB,eAAe,EAAE,KAAK;oBACtB,YAAY,EAAE,IAAI;oBAClB,aAAa,EAAE,MAAM;oBACrB,cAAc,EAAE,CAAC;oBACjB,cAAc,EAAE,CAAC;oBACjB,gBAAgB,oBAAE,EAAE,CAAA;oBACpB,UAAU,EAAE,qBAAqB;iBAClC,CAAA;aACF;YAED,IAAI,CAAC,WAAW,GAAG;gBACjB;oBACE,EAAE,EAAE,SAAS;oBACb,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,mBAAmB;oBAChC,QAAQ,EAAE,mDAAmD;iBAC9D;gBACD;oBACE,EAAE,EAAE,SAAS;oBACb,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,gBAAgB;oBAC7B,QAAQ,EAAE,sDAAsD;iBACjE;aACF,CAAA;YAED,IAAI,CAAC,YAAY,GAAG;gBAClB,eAAe;gBACf,iBAAiB;gBACjB,WAAW;gBACX,YAAY;gBACZ,gBAAgB;aACjB,CAAA;QACH,CAAC;QAED,cAAc;YACZ,MAAM,OAAO,GAA2B;gBACtC,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,mBAAmB;gBAC/B,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,eAAe;aACxB,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,CAAA;QACrD,CAAC;QAED,aAAa;YACX,MAAM,WAAW,GAA2B;gBAC1C,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,KAAK;aACd,CAAA;YACD,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;QAChD,CAAC;QAED,eAAe;YACb,MAAM,UAAU,GAA2B;gBACzC,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,MAAM;aACd,CAAA;YACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;QACjD,CAAC;QAED,eAAe;YACb,MAAM,UAAU,GAA2B;gBACzC,GAAG,EAAE,MAAM;gBACX,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI;aACb,CAAA;YACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;QACjD,CAAC;QAED,kBAAkB,CAAC,MAAc;YAC/B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7D,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;QACpC,CAAC;QAED,gBAAgB,CAAC,MAAc;YAC7B,MAAM,OAAO,GAA2B;gBACtC,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,MAAM;gBACjB,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,MAAM;aACf,CAAA;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAA;QAClC,CAAC;QAED,iBAAiB,CAAC,UAAkB;;YAClC,MAAM,GAAG,GAAG,mBAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAQ,WAAW,EAAE,CAAA;YACtD,MAAM,KAAK,GAA2B;gBACpC,GAAG,EAAE,KAAK;gBACV,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;aACV,CAAA;YACD,OAAO,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,CAAA;QACjC,CAAC;QAED,iBAAiB,CAAC,UAAkB;YAClC,OAAO,aAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAU,MAAM,CAAA;QAC9C,CAAC;QAED,UAAU,CAAC,OAAe;YACxB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,CAAC;QAED,QAAQ;YACN,GAAG,CAAC,aAAa,CAAC;gBAChB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;aAC7B,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,mCAAmC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;aAClF,CAAC,CAAA;QACJ,CAAC;QAED,iBAAiB,CAAC,UAAkB;YAClC,GAAG,CAAC,YAAY,CAAC;gBACf,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAA;QACJ,CAAC;QAED,eAAe;YACb,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,GAAG,CAAC,UAAU,CAAC;oBACb,GAAG,EAAE,4CAA4C,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;iBACxE,CAAC,CAAA;aACH;QACH,CAAC;QAED,eAAe,CAAC,UAA0B;YACxC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAA;QAC5C,CAAC;QAED,gBAAgB,CAAC,KAAa;YAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;QAC9B,CAAC;QAED,aAAa;YACX,GAAG,CAAC,WAAW,mBAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC,GAAG;oBACX,GAAG,CAAC,SAAS,CAAC;wBACZ,KAAK,EAAE,QAAQ;wBACf,IAAI,EAAE,SAAS;qBAChB,CAAC,CAAA;gBACJ,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,wCAAwC;aAC9C,CAAC,CAAA;QACJ,CAAC;QAED,aAAa;YACX,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;gBAChC,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,YAAM;aACP;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAA;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACzB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,IAAI,CAAC,eAAe;gBAC7B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAA;YAEF,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;YACzB,GAAG,CAAC,SAAS,CAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,SAAS;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,aAAa;YACX,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;gBAChC,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,YAAM;aACP;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAA;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;gBACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACzB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI,CAAC,eAAe;gBAC7B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAA;YAEF,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;YACzB,GAAG,CAAC,SAAS,CAAC;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,SAAS;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,cAAc;YACZ,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;4BACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;4BACzB,MAAM,EAAE,WAAW;4BACnB,OAAO,EAAE,YAAY;4BACrB,aAAa,EAAE,MAAM;4BACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACrC,CAAC,CAAA;wBAEF,GAAG,CAAC,SAAS,CAAC;4BACZ,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;QAED,OAAO;YACL,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,yCAAyC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;aAC/D,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,GAAG,CAAC,SAAS,mBAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,CAAC,GAAG;oBACX,IAAI,GAAG,CAAC,OAAO,EAAE;wBACf,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAA;wBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;4BACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;4BACzB,MAAM,EAAE,QAAQ;4BAChB,OAAO,EAAE,OAAO;4BAChB,aAAa,EAAE,MAAM;4BACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACrC,CAAC,CAAA;wBAEF,GAAG,CAAC,SAAS,CAAC;4BACZ,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAA;qBACH;gBACH,CAAC;aACF,EAAC,CAAA;QACJ,CAAC;KACF;CACF,EAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/45167474ec0da5f62e4f4dfcc2eeb31e5bc8fed4 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/45167474ec0da5f62e4f4dfcc2eeb31e5bc8fed4 deleted file mode 100644 index c4eec4e4..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/45167474ec0da5f62e4f4dfcc2eeb31e5bc8fed4 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, f as _f, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport supaClient from \"@/components/supadb/aksupainstance\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'plan-list',\n setup(__props) {\n const loading = ref(true);\n const plans = ref([]);\n const toFeatureArray = (features = null) => {\n const arr = [];\n if (features == null)\n return arr;\n if (UTS.isInstanceOf(features, UTSJSONObject)) {\n const featureMap = features.toMap();\n const entries = featureMap.entries();\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n const v = entry.value;\n const vs = typeof v === 'string' ? v : UTS.JSON.stringify(v);\n arr.push(vs);\n }\n }\n return arr;\n };\n const loadPlans = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n loading.value = true;\n const res = yield supaClient\n .from('ml_subscription_plans')\n .select('*', new UTSJSONObject({}))\n .eq('is_active', true)\n .order('sort_order', new UTSJSONObject({ ascending: true }))\n .execute();\n if (Array.isArray(res.data)) {\n plans.value = res.data;\n }\n else {\n plans.value = [];\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/subscription/plan-list.uvue:73', '加载订阅方案失败:', e);\n uni.showToast({ title: '加载失败', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n const goPlanDetail = (p) => {\n var _a;\n const id = ((_a = p['id']) !== null && _a !== void 0 ? _a : '');\n uni.navigateTo({ url: `/pages/mall/consumer/subscription/plan-detail?id=${id}` });\n };\n const toCheckout = (p) => {\n var _a;\n const id = ((_a = p['id']) !== null && _a !== void 0 ? _a : '');\n uni.navigateTo({ url: `/pages/mall/consumer/subscription/subscribe-checkout?planId=${id}` });\n };\n onMounted(loadPlans);\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: !loading.value && plans.value.length > 0\n }, !loading.value && plans.value.length > 0 ? {\n b: _f(plans.value, (p, k0, i0) => {\n return _e({\n a: _t(p['name']),\n b: p['billing_period'] === 'yearly'\n }, p['billing_period'] === 'yearly' ? {} : {}, {\n c: _t(p['description'] != null && p['description'].length > 0 ? p['description'] : '适用于大部分使用场景'),\n d: _t(p['price']),\n e: _t(p['billing_period'] === 'yearly' ? '年' : '月'),\n f: _f(toFeatureArray(p['features']), (v, k, i1) => {\n return {\n a: _t(v),\n b: k\n };\n }),\n g: _o($event => { return toCheckout(p); }, p['id']),\n h: p['id'],\n i: _o($event => { return goPlanDetail(p); }, p['id'])\n });\n })\n } : {}, {\n c: !loading.value && plans.value.length === 0\n }, !loading.value && plans.value.length === 0 ? {} : {}, {\n d: loading.value\n }, loading.value ? {} : {}, {\n e: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/subscription/plan-list.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"plan-list.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"plan-list.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/467364ee11dda53ccffb254dd3e3aa77a58b7e3e b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/467364ee11dda53ccffb254dd3e3aa77a58b7e3e deleted file mode 100644 index 65b67914..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/467364ee11dda53ccffb254dd3e3aa77a58b7e3e +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { Metric, TimePeriod, ChartType } from \"./common\";\nexport class CustomReport extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n description: { type: String, optional: false },\n metrics: { type: \"Unknown\", optional: false },\n charts: { type: \"Unknown\", optional: false },\n updated_at: { type: String, optional: false },\n period: { type: String, optional: true }\n };\n },\n name: \"CustomReport\"\n };\n }\n constructor(options, metadata = CustomReport.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.metrics = this.__props__.metrics;\n this.charts = this.__props__.charts;\n this.updated_at = this.__props__.updated_at;\n this.period = this.__props__.period;\n delete this.__props__;\n }\n}\nexport class ReportForm extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n description: { type: String, optional: false },\n metrics: { type: \"Unknown\", optional: false },\n period: { type: String, optional: false },\n chartType: { type: String, optional: false }\n };\n },\n name: \"ReportForm\"\n };\n }\n constructor(options, metadata = ReportForm.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.metrics = this.__props__.metrics;\n this.period = this.__props__.period;\n this.chartType = this.__props__.chartType;\n delete this.__props__;\n }\n}\nexport class ReportFormErrors extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n description: { type: String, optional: false },\n metrics: { type: String, optional: false },\n period: { type: String, optional: false },\n chartType: { type: String, optional: false }\n };\n },\n name: \"ReportFormErrors\"\n };\n }\n constructor(options, metadata = ReportFormErrors.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.description = this.__props__.description;\n this.metrics = this.__props__.metrics;\n this.period = this.__props__.period;\n this.chartType = this.__props__.chartType;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/types/analytics/custom-report.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"custom-report.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"custom-report.uts\"],\"names\":[],\"mappings\":\"OAEY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AAE7C,MAAM,OAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUxB,MAAM,OAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQtB,MAAM,OAAM,gBAAgB\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4dcf540fef9044a8c4cc180ccec061e96cffac5f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4dcf540fef9044a8c4cc180ccec061e96cffac5f deleted file mode 100644 index 0bdb77a8..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4dcf540fef9044a8c4cc180ccec061e96cffac5f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n methods: {\n // 返回上一页\n goBack() {\n uni.navigateBack();\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/about.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack"],"map":"{\"version\":3,\"file\":\"about.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"about.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACA,+BAAe;IACb,OAAO,EAAE;QACP,QAAQ;QACR,MAAM;YACJ,GAAG,CAAC,YAAY,EAAE,CAAA;QACpB,CAAC;KACF;CACF,EAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4e90184f6b23e6bfe5832fd717efbee8480c0ff1 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4e90184f6b23e6bfe5832fd717efbee8480c0ff1 deleted file mode 100644 index a00490f0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4e90184f6b23e6bfe5832fd717efbee8480c0ff1 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, unref as _unref, gei as _gei, p as _p } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport { ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'user-statistics',\n setup(__props) {\n const params = ref('');\n onLoad((options = null) => {\n // options: Record\n params.value = UTS.JSON.stringify(options !== null && options !== void 0 ? options : new UTSJSONObject({}));\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _t(params.value),\n b: _gei(_ctx, ''),\n c: _p({\n currentPage: 'user',\n id: _gei(_ctx, '')\n })\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/user-statistics.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"user-statistics.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"user-statistics.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AACzG,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAG1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,iBAAiB;IACzB,KAAK,CAAC,OAAO;QAEf,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAEtB,MAAM,CAAC,CAAC,OAAO,OAAA;YACb,+BAA+B;YAC/B,MAAM,CAAC,KAAK,GAAG,SAAK,SAAS,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,qBAAI,EAAE,CAAA,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC;oBACJ,WAAW,EAAE,MAAM;oBACnB,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;iBACnB,CAAC;aACH,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4fd5ce33a64a3920b48fd2004d08a8b09d7eab0f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4fd5ce33a64a3920b48fd2004d08a8b09d7eab0f deleted file mode 100644 index a1693523..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/4fd5ce33a64a3920b48fd2004d08a8b09d7eab0f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { gei as _gei, sei as _sei } from \"vue\";\nimport { ref } from 'vue';\n// TODO: 实现 财务记录 的具体功能\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'record',\n setup(__props) {\n const loading = ref(false);\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/finance/record.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"record.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"record.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,sBAAsB;AAEtB,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,QAAQ;IAChB,KAAK,CAAC,OAAO;QAEf,MAAM,OAAO,GAAG,GAAG,CAAU,KAAK,CAAC,CAAA;QAEnC,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/50d97c1e9805b01988cf6047e3a2bbc39ae6b020 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/50d97c1e9805b01988cf6047e3a2bbc39ae6b020 deleted file mode 100644 index 406ffc70..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/50d97c1e9805b01988cf6047e3a2bbc39ae6b020 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"AnalyticsDateRangePicker\":{\"name\":\"_unref(AnalyticsDateRangePicker)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + _unref(AnalyticsDateRangePicker) + EChartsView)();\n}\nimport { computed, reactive, ref } from 'vue';\nimport { onLoad, onShow } from '@dcloudio/uni-app';\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport AnalyticsDateRangePicker from '@/components/analytics/AnalyticsDateRangePicker.uvue';\nimport { fetchMarketTrends } from \"@/services/analytics/marketTrendsService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { TimePeriod } from \"@/types/analytics/common\";\nimport { MarketTrendsResponse } from \"@/types/analytics/market\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'market-trends',\n setup(__props) {\n const lastUpdateTime = ref('');\n const selectedPeriod = ref('7d');\n const customRangeEnabled = ref(false);\n const selectedStartDate = ref('');\n const selectedEndDate = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/market-trends');\n const timePeriods = ref([\n new TimePeriod({ value: '7d', label: '7天' }),\n new TimePeriod({ value: '30d', label: '30天' }),\n new TimePeriod({ value: '90d', label: '90天' }),\n new TimePeriod({ value: '1y', label: '1年' })\n ]);\n const marketTrendOption = ref(new UTSJSONObject({}));\n const industryCompareOption = ref(new UTSJSONObject({}));\n const seasonalTrendOption = ref(new UTSJSONObject({}));\n const priceTrendOption = ref(new UTSJSONObject({}));\n const competitionOption = ref(new UTSJSONObject({}));\n const _marketTrendRows = ref(null);\n const _industryRows = ref(null);\n const _seasonalRows = ref(null);\n const _priceRows = ref(null);\n const _competitionRows = ref(null);\n const selectedPeriodText = computed(() => {\n const p = UTS.arrayFind(timePeriods.value, (t) => { return t.value === selectedPeriod.value; });\n return p ? p.label : '7天';\n });\n onLoad(() => {\n currentPath.value = '/pages/mall/analytics/market-trends';\n updateTime();\n loadMarketData();\n });\n onShow(() => {\n currentPath.value = '/pages/mall/analytics/market-trends';\n });\n function loadMarketData() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const data = (yield fetchMarketTrends(selectedPeriod.value, range));\n _marketTrendRows.value = data.trendRows;\n _industryRows.value = data.categoryRows;\n _seasonalRows.value = data.seasonalRows;\n _priceRows.value = data.priceRows;\n _competitionRows.value = data.competitionRows;\n updateTime();\n buildChartOptions();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/market-trends.uvue:188', 'loadMarketData failed:', e);\n updateTime();\n buildChartOptions();\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '市场趋势数据加载失败' })), icon: 'none' });\n }\n });\n }\n function selectPeriod(p) {\n selectedPeriod.value = p;\n customRangeEnabled.value = false;\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n loadMarketData();\n }\n function refreshData() {\n loadMarketData();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function toggleCustomRange() {\n customRangeEnabled.value = !customRangeEnabled.value;\n }\n function onDateRangeApply(range) {\n selectedStartDate.value = range.start;\n selectedEndDate.value = range.end;\n customRangeEnabled.value = true;\n loadMarketData();\n }\n function onDateRangeClear() {\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n customRangeEnabled.value = false;\n loadMarketData();\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出图片'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function buildChartOptions() {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _q, _r;\n const trendAny = _marketTrendRows.value;\n const industryAny = _industryRows.value;\n const seasonalAny = _seasonalRows.value;\n const priceAny = _priceRows.value;\n const compAny = _competitionRows.value;\n const trendRows = Array.isArray(trendAny) ? trendAny : [];\n const industryRows = Array.isArray(industryAny) ? industryAny : [];\n const seasonalRows = Array.isArray(seasonalAny) ? seasonalAny : [];\n const priceRows = Array.isArray(priceAny) ? priceAny : [];\n const compRows = Array.isArray(compAny) ? compAny : [];\n // 1) 市场整体趋势:GMV / 订单数 / 用户数\n const mtDays = [];\n const mtGmv = [];\n const mtOrders = [];\n const mtUsers = [];\n for (let i = 0; i < trendRows.length; i++) {\n const r = trendRows[i];\n const dayStr = (_a = r.getString('day')) !== null && _a !== void 0 ? _a : '';\n mtDays.push(dayStr.length >= 10 ? dayStr.substring(5, 10) : dayStr);\n mtGmv.push((_b = r.getNumber('gmv')) !== null && _b !== void 0 ? _b : 0);\n mtOrders.push((_c = r.getNumber('orders')) !== null && _c !== void 0 ? _c : 0);\n mtUsers.push((_d = r.getNumber('users')) !== null && _d !== void 0 ? _d : 0);\n }\n marketTrendOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n legend: new UTSJSONObject({\n data: ['GMV', '订单数', '用户数'],\n top: 'bottom'\n }),\n grid: new UTSJSONObject({ left: 50, right: 60, top: 40, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'category', data: mtDays }),\n yAxis: [\n new UTSJSONObject({ type: 'value', name: 'GMV', splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: '#e5e7eb' }) }) }),\n new UTSJSONObject({ type: 'value', name: '数量', position: 'right', splitLine: new UTSJSONObject({ show: false }) })\n ],\n series: [\n new UTSJSONObject({\n name: 'GMV',\n type: 'bar',\n data: mtGmv,\n barMaxWidth: 26,\n itemStyle: new UTSJSONObject({ color: '#3b82f6' })\n }),\n new UTSJSONObject({\n name: '订单数',\n type: 'line',\n yAxisIndex: 1,\n smooth: true,\n data: mtOrders\n }),\n new UTSJSONObject({\n name: '用户数',\n type: 'line',\n yAxisIndex: 1,\n smooth: true,\n data: mtUsers\n })\n ]\n }\n // 2) 行业对比:分类 GMV\n );\n // 2) 行业对比:分类 GMV\n const catNames = [];\n const catSales = [];\n for (let i = 0; i < industryRows.length; i++) {\n const r = industryRows[i];\n catNames.push((_g = r.getString('category_name')) !== null && _g !== void 0 ? _g : '未分类');\n catSales.push((_h = r.getNumber('total_sales')) !== null && _h !== void 0 ? _h : 0);\n }\n industryCompareOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n grid: new UTSJSONObject({ left: 80, right: 20, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'value' }),\n yAxis: new UTSJSONObject({ type: 'category', data: catNames }),\n series: [\n new UTSJSONObject({\n name: 'GMV',\n type: 'bar',\n data: catSales\n })\n ]\n }\n // 3) 季节性趋势:按月 GMV\n );\n // 3) 季节性趋势:按月 GMV\n const seaMonths = [];\n const seaGmv = [];\n for (let i = 0; i < seasonalRows.length; i++) {\n const r = seasonalRows[i];\n seaMonths.push((_j = r.getString('month')) !== null && _j !== void 0 ? _j : '');\n seaGmv.push((_k = r.getNumber('total_gmv')) !== null && _k !== void 0 ? _k : 0);\n }\n seasonalTrendOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n grid: new UTSJSONObject({ left: 50, right: 20, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'category', data: seaMonths }),\n yAxis: new UTSJSONObject({ type: 'value', name: 'GMV' }),\n series: [\n new UTSJSONObject({\n name: 'GMV',\n type: 'line',\n smooth: true,\n data: seaGmv\n })\n ]\n }\n // 4) 价格趋势:按天平均价格\n );\n // 4) 价格趋势:按天平均价格\n const priceDays = [];\n const avgPrices = [];\n for (let i = 0; i < priceRows.length; i++) {\n const r = priceRows[i];\n const d = (_l = r.getString('day')) !== null && _l !== void 0 ? _l : '';\n priceDays.push(d.length >= 10 ? d.substring(5, 10) : d);\n avgPrices.push((_m = r.getNumber('avg_price')) !== null && _m !== void 0 ? _m : 0);\n }\n priceTrendOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n grid: new UTSJSONObject({ left: 50, right: 20, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'category', data: priceDays }),\n yAxis: new UTSJSONObject({ type: 'value', name: '平均价格' }),\n series: [\n new UTSJSONObject({\n name: '平均价格',\n type: 'line',\n smooth: true,\n data: avgPrices\n })\n ]\n }\n // 5) 竞争分析:商家 GMV 对比\n );\n // 5) 竞争分析:商家 GMV 对比\n const merchantNames = [];\n const merchantGmv = [];\n for (let i = 0; i < compRows.length; i++) {\n const r = compRows[i];\n merchantNames.push((_q = r.getString('merchant_name')) !== null && _q !== void 0 ? _q : '未知商家');\n merchantGmv.push((_r = r.getNumber('gmv')) !== null && _r !== void 0 ? _r : 0);\n }\n competitionOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'item' }),\n legend: new UTSJSONObject({ top: 'bottom' }),\n series: [\n new UTSJSONObject({\n name: '商家GMV',\n type: 'pie',\n radius: ['35%', '65%'],\n center: ['50%', '50%'],\n data: merchantNames.map((n, idx) => {\n return new UTSJSONObject({ name: n, value: merchantGmv[idx] });\n })\n })\n ]\n });\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '市场趋势',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: selectedPeriod.value === p.value && !customRangeEnabled.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n m: customRangeEnabled.value ? 1 : '',\n n: _o(toggleCustomRange),\n o: customRangeEnabled.value\n }, customRangeEnabled.value ? {\n p: _o(onDateRangeApply),\n q: _o(onDateRangeClear),\n r: _p({\n initialStartDate: selectedStartDate.value,\n initialEndDate: selectedEndDate.value\n })\n } : {}, {\n s: _t(selectedPeriodText.value),\n t: _p({\n option: marketTrendOption.value\n }),\n v: _p({\n option: industryCompareOption.value\n }),\n w: _p({\n option: seasonalTrendOption.value\n }),\n x: _p({\n option: priceTrendOption.value\n }),\n y: _p({\n option: competitionOption.value\n }),\n z: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/market-trends.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts","D:/companyproject/mall/components/analytics/AnalyticsDateRangePicker.uvue.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"market-trends.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"market-trends.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/544a1e6d27fe1f05a06d46ef5c76973239330a11 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/544a1e6d27fe1f05a06d46ef5c76973239330a11 deleted file mode 100644 index b6daea33..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/544a1e6d27fe1f05a06d46ef5c76973239330a11 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, gei as _gei, sei as _sei } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { onBackPress } from '@dcloudio/uni-app';\nimport supa from \"@/components/supadb/aksupainstance\";\nclass UserType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n phone: { type: String, optional: true },\n email: { type: String, optional: true },\n nickname: { type: String, optional: true },\n avatar_url: { type: String, optional: true }\n };\n },\n name: \"UserType\"\n };\n }\n constructor(options, metadata = UserType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.phone = this.__props__.phone;\n this.email = this.__props__.email;\n this.nickname = this.__props__.nickname;\n this.avatar_url = this.__props__.avatar_url;\n delete this.__props__;\n }\n}\nclass NotificationType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order: { type: Boolean, optional: false },\n promotion: { type: Boolean, optional: false },\n review: { type: Boolean, optional: false }\n };\n },\n name: \"NotificationType\"\n };\n }\n constructor(options, metadata = NotificationType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order = this.__props__.order;\n this.promotion = this.__props__.promotion;\n this.review = this.__props__.review;\n delete this.__props__;\n }\n}\nclass PrivacyType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n hidePurchase: { type: Boolean, optional: false },\n allowSearchByPhone: { type: Boolean, optional: false },\n receiveMerchantMsg: { type: Boolean, optional: false }\n };\n },\n name: \"PrivacyType\"\n };\n }\n constructor(options, metadata = PrivacyType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.hidePurchase = this.__props__.hidePurchase;\n this.allowSearchByPhone = this.__props__.allowSearchByPhone;\n this.receiveMerchantMsg = this.__props__.receiveMerchantMsg;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'settings',\n setup(__props) {\n onBackPress((options = null) => {\n // 无论是什么触发的返回(系统返回键或导航栏返回按钮),都跳转到profile\n // 注意:onBackPress 只能在 page 中使用,component 中无效\n uni.switchTab({\n url: '/pages/main/profile'\n });\n // 返回 true 表示阻止默认返回行为\n return true;\n });\n const userInfo = ref(new UserType({\n id: '',\n phone: null,\n email: null,\n nickname: null,\n avatar_url: null\n }));\n const notifications = ref(new NotificationType({\n order: true,\n promotion: true,\n review: true\n }));\n const privacy = ref(new PrivacyType({\n hidePurchase: false,\n allowSearchByPhone: true,\n receiveMerchantMsg: true\n }));\n const cacheSize = ref('0.0 MB');\n const currentLanguage = ref('简体中文');\n const currentTheme = ref('自动');\n const appVersion = ref('1.0.0');\n const statusBarHeight = ref(0);\n const loadUserInfo = () => {\n var _a;\n const userStore = uni.getStorageSync('userInfo');\n if (userStore != null) {\n const storeObj = userStore;\n const user = new UserType({\n id: (_a = storeObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n phone: storeObj.getString('phone'),\n email: storeObj.getString('email'),\n nickname: storeObj.getString('nickname'),\n avatar_url: storeObj.getString('avatar_url')\n });\n userInfo.value = user;\n }\n };\n const loadSettings = () => {\n var _a, _b, _c, _d, _e, _f;\n const savedNotifications = uni.getStorageSync('userNotifications');\n if (savedNotifications != null) {\n const notifObj = savedNotifications;\n const notif = new NotificationType({\n order: (_a = notifObj.getBoolean('order')) !== null && _a !== void 0 ? _a : true,\n promotion: (_b = notifObj.getBoolean('promotion')) !== null && _b !== void 0 ? _b : true,\n review: (_c = notifObj.getBoolean('review')) !== null && _c !== void 0 ? _c : true\n });\n notifications.value = notif;\n }\n const savedPrivacy = uni.getStorageSync('userPrivacy');\n if (savedPrivacy != null) {\n const privacyObj = savedPrivacy;\n const priv = new PrivacyType({\n hidePurchase: (_d = privacyObj.getBoolean('hidePurchase')) !== null && _d !== void 0 ? _d : false,\n allowSearchByPhone: (_e = privacyObj.getBoolean('allowSearchByPhone')) !== null && _e !== void 0 ? _e : true,\n receiveMerchantMsg: (_f = privacyObj.getBoolean('receiveMerchantMsg')) !== null && _f !== void 0 ? _f : true\n });\n privacy.value = priv;\n }\n cacheSize.value = '12.5 MB';\n const appInfo = uni.getAppBaseInfo();\n if (appInfo != null) {\n const infoObj = appInfo;\n const version = infoObj.getString('appVersion');\n if (version != null) {\n appVersion.value = version;\n }\n }\n };\n onMounted(() => {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n statusBarHeight.value = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n loadUserInfo();\n loadSettings();\n });\n // 跳转到个人资料\n const goToProfile = () => {\n uni.navigateTo({\n url: '/pages/user/profile'\n });\n };\n // 跳转到地址管理\n const goToAddressList = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/address-list'\n });\n };\n // 修改密码\n const changePassword = () => {\n uni.navigateTo({\n url: '/pages/user/change-password'\n });\n };\n // 绑定手机\n const bindPhone = () => {\n uni.navigateTo({\n url: '/pages/user/bind-phone'\n });\n };\n // 绑定邮箱\n const bindEmail = () => {\n uni.navigateTo({\n url: '/pages/user/bind-email'\n });\n };\n // 切换通知设置\n const toggleNotification = (type) => {\n if (type === 'order') {\n notifications.value.order = notifications.value.order === false;\n }\n else if (type === 'promotion') {\n notifications.value.promotion = notifications.value.promotion === false;\n }\n else if (type === 'review') {\n notifications.value.review = notifications.value.review === false;\n }\n uni.setStorageSync('userNotifications', notifications.value);\n };\n // 切换隐私设置\n const togglePrivacy = (type) => {\n if (type === 'hidePurchase') {\n privacy.value.hidePurchase = privacy.value.hidePurchase === false;\n }\n else if (type === 'allowSearchByPhone') {\n privacy.value.allowSearchByPhone = privacy.value.allowSearchByPhone === false;\n }\n else if (type === 'receiveMerchantMsg') {\n privacy.value.receiveMerchantMsg = privacy.value.receiveMerchantMsg === false;\n }\n uni.setStorageSync('userPrivacy', privacy.value);\n };\n // 清除缓存\n const clearCache = () => {\n uni.showModal(new UTSJSONObject({\n title: '清除缓存',\n content: `确定要清除 ${cacheSize.value} 缓存吗?`,\n success: (res) => {\n if (res.confirm) {\n // 这里应该清除实际缓存\n uni.showLoading({\n title: '清除中...'\n });\n setTimeout(() => {\n cacheSize.value = '0.0 MB';\n uni.hideLoading();\n uni.showToast({\n title: '缓存已清除',\n icon: 'success'\n });\n }, 1000);\n }\n }\n }));\n };\n // 切换语言\n const changeLanguage = () => {\n uni.showActionSheet({\n itemList: ['简体中文', 'English', '日本語'],\n success: (res) => {\n const languages = ['简体中文', 'English', '日本語'];\n currentLanguage.value = languages[res.tapIndex];\n uni.setStorageSync('appLanguage', currentLanguage.value);\n uni.showToast({\n title: '语言已切换',\n icon: 'success'\n });\n }\n });\n };\n // 切换主题\n const changeTheme = () => {\n uni.showActionSheet({\n itemList: ['自动', '浅色模式', '深色模式'],\n success: (res) => {\n const themes = ['自动', '浅色模式', '深色模式'];\n currentTheme.value = themes[res.tapIndex];\n uni.setStorageSync('appTheme', currentTheme.value);\n uni.showToast({\n title: '主题已切换',\n icon: 'success'\n });\n }\n });\n };\n // 我的评价\n const goToMyReviews = () => {\n // 跳转到订单列表的已完成或者是评价相关的页面\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?status=completed'\n });\n };\n // 关于我们\n const aboutUs = () => {\n uni.navigateTo({\n url: '/pages/user/terms?type=about'\n });\n };\n // 用户协议\n const userAgreement = () => {\n uni.navigateTo({\n url: '/pages/user/terms?type=agreement'\n });\n };\n // 隐私政策\n const privacyPolicy = () => {\n uni.navigateTo({\n url: '/pages/user/terms?type=privacy'\n });\n };\n // 检查更新\n const checkUpdate = () => {\n uni.showLoading({\n title: '检查更新中...'\n });\n setTimeout(() => {\n uni.hideLoading();\n uni.showModal(new UTSJSONObject({\n title: '检查更新',\n content: '当前已是最新版本',\n showCancel: false\n }));\n }, 1000);\n };\n // 联系客服\n const contactService = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/chat'\n });\n };\n // 意见反馈\n const feedback = () => {\n uni.navigateTo({\n url: '/pages/info/feedback'\n });\n };\n const rateApp = () => {\n uni.showModal(new UTSJSONObject({\n title: '给个好评',\n content: '如果喜欢我们的应用,请给个好评吧!感谢您的支持!',\n confirmText: '好的',\n showCancel: false\n }));\n };\n // 退出登录\n const logout = () => {\n uni.showModal(new UTSJSONObject({\n title: '退出登录',\n content: '确定要退出登录吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({\n title: '正在退出...'\n });\n uni.removeStorageSync('userInfo');\n uni.removeStorageSync('user_id');\n uni.removeStorageSync('access_token');\n uni.hideLoading();\n uni.showToast({\n title: '已退出登录',\n icon: 'success'\n });\n setTimeout(() => {\n uni.reLaunch({\n url: '/pages/user/login'\n });\n }, 1000);\n }\n }\n }));\n };\n const deleteAccount = () => {\n uni.showModal(new UTSJSONObject({\n title: '注销账号',\n content: '确定要注销账号吗?此操作不可恢复,所有数据将被删除!',\n confirmText: '注销',\n confirmColor: '#ff4757',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({\n title: '注销中...'\n });\n let userId = userInfo.value.id;\n if (userId == null || userId === '') {\n const storageId = uni.getStorageSync('user_id');\n userId = (storageId != null) ? storageId : null;\n }\n if (userId != null) {\n const updateObj = new UTSJSONObject();\n updateObj.set('status', 3);\n supa\n .from('ml_user_profiles')\n .update(updateObj)\n .eq('user_id', userId)\n .execute();\n }\n uni.removeStorageSync('userInfo');\n uni.removeStorageSync('user_id');\n uni.removeStorageSync('access_token');\n uni.hideLoading();\n uni.showToast({\n title: '账号已注销',\n icon: 'success',\n duration: 2000\n });\n setTimeout(() => {\n uni.reLaunch({\n url: '/pages/user/login'\n });\n }, 1500);\n }\n }\n }));\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _o(goToProfile),\n b: _o(goToAddressList),\n c: _o(changePassword),\n d: _t(userInfo.value.phone != null && userInfo.value.phone != '' ? '已绑定' : '未绑定'),\n e: _n(userInfo.value.phone != null && userInfo.value.phone != '' ? 'bound' : ''),\n f: _o(bindPhone),\n g: _t(userInfo.value.email != null && userInfo.value.email != '' ? '已绑定' : '未绑定'),\n h: _n(userInfo.value.email != null && userInfo.value.email != '' ? 'bound' : ''),\n i: _o(bindEmail),\n j: notifications.value.order,\n k: _o($event => { return toggleNotification('order'); }),\n l: notifications.value.promotion,\n m: _o($event => { return toggleNotification('promotion'); }),\n n: notifications.value.review,\n o: _o($event => { return toggleNotification('review'); }),\n p: privacy.value.hidePurchase,\n q: _o($event => { return togglePrivacy('hidePurchase'); }),\n r: privacy.value.allowSearchByPhone,\n s: _o($event => { return togglePrivacy('allowSearchByPhone'); }),\n t: privacy.value.receiveMerchantMsg,\n v: _o($event => { return togglePrivacy('receiveMerchantMsg'); }),\n w: _t(cacheSize.value),\n x: _o(clearCache),\n y: _t(currentLanguage.value),\n z: _o(changeLanguage),\n A: _t(currentTheme.value),\n B: _o(changeTheme),\n C: _o(goToMyReviews),\n D: _o(aboutUs),\n E: _o(userAgreement),\n F: _o(privacyPolicy),\n G: _t(appVersion.value),\n H: _o(checkUpdate),\n I: _o(contactService),\n J: _o(feedback),\n K: _o(rateApp),\n L: _o(logout),\n M: _o(deleteAccount),\n N: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/settings.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.switchTab","uni.getStorageSync","uni.getAppBaseInfo","uni.getSystemInfoSync","uni.navigateTo","uni.setStorageSync","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.showActionSheet","uni.removeStorageSync","uni.reLaunch"],"map":"{\"version\":3,\"file\":\"settings.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"settings.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAE9G,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;OACxC,IAAI;MAGN,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;MAQR,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;MAMhB,WAAW;;;;;;;;;;;;;;;;;;;;;;;AAOhB,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,OAAO;QAEf,WAAW,CAAC,CAAC,OAAO,OAAA;YACnB,wCAAwC;YACxC,4CAA4C;YAC5C,GAAG,CAAC,SAAS,CAAC;gBACb,GAAG,EAAE,qBAAqB;aAC1B,CAAC,CAAA;YACF,qBAAqB;YACrB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,GAAG,cAAW;YAC9B,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,EAAC,CAAA;QACF,MAAM,aAAa,GAAG,GAAG,sBAAmB;YAC3C,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;SACZ,EAAC,CAAA;QACF,MAAM,OAAO,GAAG,GAAG,iBAAc;YAChC,YAAY,EAAE,KAAK;YACnB,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,IAAI;SACxB,EAAC,CAAA;QACF,MAAM,SAAS,GAAG,GAAG,CAAS,QAAQ,CAAC,CAAA;QACvC,MAAM,eAAe,GAAG,GAAG,CAAS,MAAM,CAAC,CAAA;QAC3C,MAAM,YAAY,GAAG,GAAG,CAAS,IAAI,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,GAAG,CAAS,OAAO,CAAC,CAAA;QAEvC,MAAM,eAAe,GAAG,GAAG,CAAS,CAAC,CAAC,CAAA;QAEtC,MAAM,YAAY,GAAG;;YACpB,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YAChD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACtB,MAAM,QAAQ,GAAG,SAA0B,CAAA;gBAC3C,MAAM,IAAI,gBAAa;oBACtB,EAAE,EAAE,MAAA,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAI,EAAE;oBAClC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;oBAClC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;oBAClC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;oBACxC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;iBAChC,CAAA,CAAA;gBACb,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;aACrB;QACF,CAAC,CAAA;QAED,MAAM,YAAY,GAAG;;YACpB,MAAM,kBAAkB,GAAG,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;YAClE,IAAI,kBAAkB,IAAI,IAAI,EAAE;gBAC/B,MAAM,QAAQ,GAAG,kBAAmC,CAAA;gBACpD,MAAM,KAAK,wBAAqB;oBAC/B,KAAK,EAAE,MAAA,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mCAAI,IAAI;oBAC3C,SAAS,EAAE,MAAA,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,mCAAI,IAAI;oBACnD,MAAM,EAAE,MAAA,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,mCAAI,IAAI;iBACzB,CAAA,CAAA;gBACrB,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;aAC3B;YAED,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;YACtD,IAAI,YAAY,IAAI,IAAI,EAAE;gBACzB,MAAM,UAAU,GAAG,YAA6B,CAAA;gBAChD,MAAM,IAAI,mBAAgB;oBACzB,YAAY,EAAE,MAAA,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,mCAAI,KAAK;oBAC5D,kBAAkB,EAAE,MAAA,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,mCAAI,IAAI;oBACvE,kBAAkB,EAAE,MAAA,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,mCAAI,IAAI;iBACxD,CAAA,CAAA;gBAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;aACpB;YAED,SAAS,CAAC,KAAK,GAAG,SAAS,CAAA;YAE3B,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,CAAA;YACpC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,MAAM,OAAO,GAAG,OAAwB,CAAA;gBACxC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;gBAC/C,IAAI,OAAO,IAAI,IAAI,EAAE;oBACpB,UAAU,CAAC,KAAK,GAAG,OAAO,CAAA;iBAC1B;aACD;QACF,CAAC,CAAA;QAED,SAAS,CAAC;;YACT,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAA;YAC1C,eAAe,CAAC,KAAK,GAAG,MAAA,UAAU,CAAC,eAAe,mCAAI,CAAC,CAAA;YACvD,YAAY,EAAE,CAAA;YACd,YAAY,EAAE,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,UAAU;QACV,MAAM,WAAW,GAAG;YACnB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,qBAAqB;aAC1B,CAAC,CAAA;QACH,CAAC,CAAA;QAED,UAAU;QACV,MAAM,eAAe,GAAG;YACvB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,mCAAmC;aACxC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,6BAA6B;aAClC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,SAAS,GAAG;YACjB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,wBAAwB;aAC7B,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,SAAS,GAAG;YACjB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,wBAAwB;aAC7B,CAAC,CAAA;QACH,CAAC,CAAA;QAED,SAAS;QACT,MAAM,kBAAkB,GAAG,CAAC,IAAY;YACvC,IAAI,IAAI,KAAK,OAAO,EAAE;gBACrB,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAA;aAC/D;iBAAM,IAAI,IAAI,KAAK,WAAW,EAAE;gBAChC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAA;aACvE;iBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;gBAC7B,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAA;aACjE;YACD,GAAG,CAAC,cAAc,CAAC,mBAAmB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;QAC7D,CAAC,CAAA;QAED,SAAS;QACT,MAAM,aAAa,GAAG,CAAC,IAAY;YAClC,IAAI,IAAI,KAAK,cAAc,EAAE;gBAC5B,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAA;aACjE;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,KAAK,CAAA;aAC7E;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,KAAK,CAAA;aAC7E;YACD,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACjD,CAAC,CAAA;QAED,OAAO;QACP,MAAM,UAAU,GAAG;YAClB,GAAG,CAAC,SAAS,mBAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,SAAS,SAAS,CAAC,KAAK,OAAO;gBACxC,OAAO,EAAE,CAAC,GAAG;oBACZ,IAAI,GAAG,CAAC,OAAO,EAAE;wBAChB,aAAa;wBACb,GAAG,CAAC,WAAW,CAAC;4BACf,KAAK,EAAE,QAAQ;yBACf,CAAC,CAAA;wBAEF,UAAU,CAAC;4BACV,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAA;4BAC1B,GAAG,CAAC,WAAW,EAAE,CAAA;4BACjB,GAAG,CAAC,SAAS,CAAC;gCACb,KAAK,EAAE,OAAO;gCACd,IAAI,EAAE,SAAS;6BACf,CAAC,CAAA;wBACH,CAAC,EAAE,IAAI,CAAC,CAAA;qBACR;gBACF,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,GAAG,CAAC,eAAe,CAAC;gBACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;gBACpC,OAAO,EAAE,CAAC,GAAG;oBACZ,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;oBAC5C,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBAC/C,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;oBAExD,GAAG,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,SAAS;qBACf,CAAC,CAAA;gBACH,CAAC;aACD,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,WAAW,GAAG;YACnB,GAAG,CAAC,eAAe,CAAC;gBACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE,CAAC,GAAG;oBACZ,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;oBACrC,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACzC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;oBAElD,GAAG,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE,SAAS;qBACf,CAAC,CAAA;gBACH,CAAC;aACD,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,aAAa,GAAG;YACrB,wBAAwB;YACxB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,8CAA8C;aACnD,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,OAAO,GAAG;YACf,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,8BAA8B;aACnC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,aAAa,GAAG;YACrB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,kCAAkC;aACvC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,aAAa,GAAG;YACrB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,gCAAgC;aACrC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,WAAW,GAAG;YACnB,GAAG,CAAC,WAAW,CAAC;gBACf,KAAK,EAAE,UAAU;aACjB,CAAC,CAAA;YAEF,UAAU,CAAC;gBACV,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,mBAAC;oBACb,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,KAAK;iBACjB,EAAC,CAAA;YACH,CAAC,EAAE,IAAI,CAAC,CAAA;QACT,CAAC,CAAA;QAED,OAAO;QACP,MAAM,cAAc,GAAG;YACtB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,2BAA2B;aAChC,CAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,QAAQ,GAAG;YAChB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,sBAAsB;aAC3B,CAAC,CAAA;QACH,CAAC,CAAA;QAED,MAAM,OAAO,GAAG;YACf,GAAG,CAAC,SAAS,mBAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,KAAK;aACjB,EAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO;QACP,MAAM,MAAM,GAAG;YACd,GAAG,CAAC,SAAS,mBAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,CAAC,GAAG;oBACZ,IAAI,GAAG,CAAC,OAAO,EAAE;wBAChB,GAAG,CAAC,WAAW,CAAC;4BACf,KAAK,EAAE,SAAS;yBAChB,CAAC,CAAA;wBAEF,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBACjC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;wBAChC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;wBAErC,GAAG,CAAC,WAAW,EAAE,CAAA;wBAEjB,GAAG,CAAC,SAAS,CAAC;4BACb,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,SAAS;yBACf,CAAC,CAAA;wBAEF,UAAU,CAAC;4BACV,GAAG,CAAC,QAAQ,CAAC;gCACZ,GAAG,EAAE,mBAAmB;6BACxB,CAAC,CAAA;wBACH,CAAC,EAAE,IAAI,CAAC,CAAA;qBACR;gBACF,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QACD,MAAM,aAAa,GAAG;YACrB,GAAG,CAAC,SAAS,mBAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,4BAA4B;gBACrC,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,SAAS;gBACvB,OAAO,EAAE,CAAC,GAAG;oBACZ,IAAI,GAAG,CAAC,OAAO,EAAE;wBAChB,GAAG,CAAC,WAAW,CAAC;4BACf,KAAK,EAAE,QAAQ;yBACf,CAAC,CAAA;wBAEU,IAAI,MAAM,GAAkB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;wBAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,EAAE,EAAE;4BAChC,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;4BAC/C,MAAM,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;yBAC7D;wBAED,IAAI,MAAM,IAAI,IAAI,EAAE;4BAChB,MAAM,SAAS,GAAkB,IAAI,aAAa,EAAE,CAAA;4BACpD,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;4BAC1B,IAAI;iCACC,IAAI,CAAC,kBAAkB,CAAC;iCACxB,MAAM,CAAC,SAAS,CAAC;iCACjB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;iCACrB,OAAO,EAAE,CAAA;yBACjB;wBAEb,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;wBACjC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;wBAChC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;wBAErC,GAAG,CAAC,WAAW,EAAE,CAAA;wBACjB,GAAG,CAAC,SAAS,CAAC;4BACb,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,IAAI;yBACd,CAAC,CAAA;wBAEF,UAAU,CAAC;4BACV,GAAG,CAAC,QAAQ,CAAC;gCACZ,GAAG,EAAE,mBAAmB;6BACxB,CAAC,CAAA;wBACH,CAAC,EAAE,IAAI,CAAC,CAAA;qBACR;gBACF,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjF,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjF,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;gBAChB,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK;gBAC5B,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,kBAAkB,CAAC,OAAO,CAAC,EAA3B,CAA2B,CAAC;gBAC5C,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;gBAChC,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,kBAAkB,CAAC,WAAW,CAAC,EAA/B,CAA+B,CAAC;gBAChD,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM;gBAC7B,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,kBAAkB,CAAC,QAAQ,CAAC,EAA5B,CAA4B,CAAC;gBAC7C,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY;gBAC7B,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,aAAa,CAAC,cAAc,CAAC,EAA7B,CAA6B,CAAC;gBAC9C,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;gBACnC,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,aAAa,CAAC,oBAAoB,CAAC,EAAnC,CAAmC,CAAC;gBACpD,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;gBACnC,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,aAAa,CAAC,oBAAoB,CAAC,EAAnC,CAAmC,CAAC;gBACpD,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;gBACtB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBACzB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;gBACpB,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;gBACd,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;gBACpB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;gBACpB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC;gBACf,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;gBACd,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;gBACpB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5706d2d8d5e51dc7943bac047ff43a1b77d12e8f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5706d2d8d5e51dc7943bac047ff43a1b77d12e8f deleted file mode 100644 index 0de3b945..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5706d2d8d5e51dc7943bac047ff43a1b77d12e8f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport supa from \"@/components/supadb/aksupainstance\";\nclass ShopInfoType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: true },\n merchant_id: { type: String, optional: true },\n shop_name: { type: String, optional: true },\n shop_logo: { type: String, optional: true },\n shop_banner: { type: String, optional: true },\n description: { type: String, optional: true },\n contact_name: { type: String, optional: true },\n contact_phone: { type: String, optional: true },\n rating_avg: { type: Number, optional: true },\n total_sales: { type: Number, optional: true },\n status: { type: Number, optional: true }\n };\n },\n name: \"ShopInfoType\"\n };\n }\n constructor(options, metadata = ShopInfoType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.merchant_id = this.__props__.merchant_id;\n this.shop_name = this.__props__.shop_name;\n this.shop_logo = this.__props__.shop_logo;\n this.shop_banner = this.__props__.shop_banner;\n this.description = this.__props__.description;\n this.contact_name = this.__props__.contact_name;\n this.contact_phone = this.__props__.contact_phone;\n this.rating_avg = this.__props__.rating_avg;\n this.total_sales = this.__props__.total_sales;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n sku_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n sku_name: { type: String, optional: false },\n price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n image_url: { type: String, optional: false },\n sku_snapshot: { type: String, optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_id = this.__props__.order_id;\n this.product_id = this.__props__.product_id;\n this.sku_id = this.__props__.sku_id;\n this.product_name = this.__props__.product_name;\n this.sku_name = this.__props__.sku_name;\n this.price = this.__props__.price;\n this.quantity = this.__props__.quantity;\n this.image_url = this.__props__.image_url;\n this.sku_snapshot = this.__props__.sku_snapshot;\n delete this.__props__;\n }\n}\nclass OrderType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n order_status: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n created_at: { type: String, optional: false },\n items: { type: UTS.UTSType.withGenerics(Array, [OrderItemType]), optional: false }\n };\n },\n name: \"OrderType\"\n };\n }\n constructor(options, metadata = OrderType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.order_status = this.__props__.order_status;\n this.total_amount = this.__props__.total_amount;\n this.created_at = this.__props__.created_at;\n this.items = this.__props__.items;\n delete this.__props__;\n }\n}\nclass TodayStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n orders: { type: Number, optional: true },\n sales: { type: Number, optional: true },\n visitors: { type: Number, optional: true },\n conversion: { type: Number, optional: true }\n };\n },\n name: \"TodayStatsType\"\n };\n }\n constructor(options, metadata = TodayStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.orders = this.__props__.orders;\n this.sales = this.__props__.sales;\n this.visitors = this.__props__.visitors;\n this.conversion = this.__props__.conversion;\n delete this.__props__;\n }\n}\nclass PendingCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n pending_shipment: { type: Number, optional: true },\n refund_requests: { type: Number, optional: true },\n low_stock: { type: Number, optional: true },\n pending_reviews: { type: Number, optional: true }\n };\n },\n name: \"PendingCountsType\"\n };\n }\n constructor(options, metadata = PendingCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.pending_shipment = this.__props__.pending_shipment;\n this.refund_requests = this.__props__.refund_requests;\n this.low_stock = this.__props__.low_stock;\n this.pending_reviews = this.__props__.pending_reviews;\n delete this.__props__;\n }\n}\nexport default defineComponent({\n data() {\n return {\n merchantId: '',\n shopInfo: new ShopInfoType({\n id: null,\n merchant_id: null,\n shop_name: null,\n shop_logo: null,\n shop_banner: null,\n description: null,\n contact_name: null,\n contact_phone: null,\n rating_avg: null,\n total_sales: null,\n status: null\n }),\n todayStats: new TodayStatsType({\n orders: null,\n sales: null,\n visitors: null,\n conversion: null\n }),\n pendingCounts: new PendingCountsType({\n pending_shipment: 0,\n refund_requests: 0,\n low_stock: 0,\n pending_reviews: 0\n }),\n recentOrders: []\n };\n },\n onLoad() {\n this.initMerchantId();\n },\n onShow() {\n if (this.merchantId) {\n this.loadMerchantData();\n this.loadTodayStats();\n this.loadPendingCounts();\n this.loadRecentOrders();\n }\n else {\n setTimeout(() => {\n this.loadMerchantData();\n this.loadTodayStats();\n this.loadPendingCounts();\n this.loadRecentOrders();\n }, 500);\n }\n },\n methods: {\n formatNumber(value = null) {\n if (value == null)\n return '0.00';\n return value.toFixed(2);\n },\n initMerchantId() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const session = supa.getSession();\n if (session != null && session.user != null) {\n this.merchantId = session.user.getString('id') || '';\n }\n if (!this.merchantId) {\n this.merchantId = uni.getStorageSync('user_id') || '';\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:262', '获取商户ID失败:', e);\n }\n });\n },\n loadMerchantData() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const response = yield supa\n .from('ml_shops')\n .select('*')\n .eq('merchant_id', this.merchantId)\n .limit(1)\n .execute();\n if (response.error != null || !response.data || response.data.length === 0) {\n this.shopInfo = {\n id: null,\n merchant_id: this.merchantId,\n shop_name: '我的店铺',\n shop_logo: null,\n shop_banner: null,\n description: null,\n contact_name: null,\n contact_phone: null,\n rating_avg: 5.0,\n total_sales: 0,\n status: 1\n };\n return Promise.resolve(null);\n }\n const rawData = response.data[0];\n this.shopInfo = {\n id: rawData.getString('id') || null,\n merchant_id: rawData.getString('merchant_id') || null,\n shop_name: rawData.getString('shop_name') || '我的店铺',\n shop_logo: rawData.getString('shop_logo') || null,\n shop_banner: rawData.getString('shop_banner') || null,\n description: rawData.getString('description') || null,\n contact_name: rawData.getString('contact_name') || null,\n contact_phone: rawData.getString('contact_phone') || null,\n rating_avg: rawData.getNumber('rating_avg') || 5.0,\n total_sales: rawData.getNumber('total_sales') || 0,\n status: rawData.getNumber('status') || 1\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:307', '加载店铺信息失败:', e);\n }\n });\n },\n loadTodayStats() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const response = yield supa\n .from('ml_orders')\n .select('total_amount, order_status', new UTSJSONObject({ count: 'exact' }))\n .eq('merchant_id', this.merchantId)\n .execute();\n if (response.error != null) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:320', '获取统计数据失败:', response.error);\n return Promise.resolve(null);\n }\n let totalOrders = 0;\n let totalSales = 0;\n const rawData = response.data;\n if (rawData != null) {\n for (let i = 0; i < rawData.length; i++) {\n const item = rawData[i];\n const status = item.getNumber('order_status');\n if (status >= 2) {\n totalOrders++;\n totalSales += item.getNumber('total_amount') || 0;\n }\n }\n }\n this.todayStats = {\n orders: totalOrders,\n sales: totalSales,\n visitors: Math.floor(totalOrders * 3),\n conversion: totalOrders > 0 ? 15 : 0\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:346', '获取今日统计异常:', e);\n }\n });\n },\n loadPendingCounts() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const pendingShipmentRes = yield supa\n .from('ml_orders')\n .select('id', new UTSJSONObject({ count: 'exact' }))\n .eq('merchant_id', this.merchantId)\n .eq('order_status', 2)\n .execute();\n const refundRes = yield supa\n .from('ml_orders')\n .select('id', new UTSJSONObject({ count: 'exact' }))\n .eq('merchant_id', this.merchantId)\n .eq('order_status', 0)\n .execute();\n const lowStockRes = yield supa\n .from('ml_products')\n .select('id', new UTSJSONObject({ count: 'exact' }))\n .eq('merchant_id', this.merchantId)\n .lte('total_stock', 10)\n .gte('total_stock', 0)\n .execute();\n this.pendingCounts = {\n pending_shipment: pendingShipmentRes.total || 0,\n refund_requests: refundRes.total || 0,\n low_stock: lowStockRes.total || 0,\n pending_reviews: 0\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:381', '获取待处理数量异常:', e);\n }\n });\n },\n loadRecentOrders() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const response = yield supa\n .from('ml_orders')\n .select(`\r\n\t\t\t\t\t\t\t*,\r\n\t\t\t\t\t\t\torder_items!inner (\r\n\t\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\t\tproduct_id,\r\n\t\t\t\t\t\t\t\tproduct_name,\r\n\t\t\t\t\t\t\t\tsku_name,\r\n\t\t\t\t\t\t\t\tprice,\r\n\t\t\t\t\t\t\t\tquantity,\r\n\t\t\t\t\t\t\t\timage_url\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t`)\n .eq('merchant_id', this.merchantId)\n .order('created_at', new UTSJSONObject({ ascending: false }))\n .limit(5)\n .execute();\n if (response.error != null || !response.data) {\n this.recentOrders = [];\n return Promise.resolve(null);\n }\n const rawData = response.data;\n const ordersData = [];\n for (let i = 0; i < rawData.length; i++) {\n const item = rawData[i];\n const order = new OrderType({\n id: item.getString('id') || '',\n order_no: item.getString('order_no') || '',\n order_status: item.getNumber('order_status') || 1,\n total_amount: item.getNumber('total_amount') || 0,\n created_at: item.getString('created_at') || '',\n items: []\n });\n const itemsObj = item.get('order_items');\n if (itemsObj != null && Array.isArray(itemsObj)) {\n const itemsArray = itemsObj;\n for (let j = 0; j < itemsArray.length; j++) {\n const orderItem = itemsArray[j];\n order.items.push(new OrderItemType({\n id: orderItem.getString('id') || '',\n order_id: '',\n product_id: orderItem.getString('product_id') || '',\n sku_id: '',\n product_name: orderItem.getString('product_name') || '',\n sku_name: orderItem.getString('sku_name') || '',\n price: orderItem.getNumber('price') || 0,\n quantity: orderItem.getNumber('quantity') || 0,\n image_url: orderItem.getString('image_url') || '',\n sku_snapshot: ''\n }));\n }\n }\n ordersData.push(order);\n }\n this.recentOrders = ordersData;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/merchant/index.uvue:450', '加载最新订单异常:', e);\n }\n });\n },\n getOrderStatusClass(status) {\n switch (status) {\n case 1: return 'status-pending';\n case 2: return 'status-paid';\n case 3: return 'status-shipped';\n case 4: return 'status-delivered';\n case 5: return 'status-completed';\n default: return 'status-default';\n }\n },\n getOrderStatusText(status) {\n switch (status) {\n case 1: return '待付款';\n case 2: return '待发货';\n case 3: return '已发货';\n case 4: return '已收货';\n case 5: return '已完成';\n case 0: return '退款中';\n default: return '未知状态';\n }\n },\n formatTime(timeStr) {\n if (!timeStr)\n return '';\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const minutes = Math.floor(diff / (1000 * 60));\n if (minutes < 60) {\n return `${minutes}分钟前`;\n }\n else if (minutes < 1440) {\n return `${Math.floor(minutes / 60)}小时前`;\n }\n else {\n return `${Math.floor(minutes / 1440)}天前`;\n }\n },\n goToMessages() {\n uni.navigateTo({\n url: '/pages/mall/merchant/messages'\n });\n },\n goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/merchant/shop-edit'\n });\n },\n goToOrders(type) {\n uni.navigateTo({\n url: `/pages/mall/merchant/orders?type=${type}`\n });\n },\n goToProducts(type) {\n uni.navigateTo({\n url: `/pages/mall/merchant/products?type=${type}`\n });\n },\n goToPromotions() {\n uni.navigateTo({\n url: '/pages/mall/merchant/promotions'\n });\n },\n goToStatistics() {\n uni.navigateTo({\n url: '/pages/mall/merchant/statistics'\n });\n },\n goToFinance() {\n uni.navigateTo({\n url: '/pages/mall/merchant/finance'\n });\n },\n goToReviews() {\n uni.navigateTo({\n url: '/pages/mall/merchant/reviews'\n });\n },\n goToOrderDetail(orderId) {\n uni.navigateTo({\n url: `/pages/mall/merchant/order-detail?id=${orderId}`\n });\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/merchant/index.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.getStorageSync","uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";;OACQ,IAAI;MAEN,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAcZ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAab,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAST,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;MAOd,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;AAOtB,+BAAe;IACd,IAAI;QACH,OAAO;YACN,UAAU,EAAE,EAAE;YACd,QAAQ,mBAAE;gBACT,EAAE,EAAE,IAAI;gBACR,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,IAAI;aACI,CAAA;YACjB,UAAU,qBAAE;gBACX,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;aACE,CAAA;YACnB,aAAa,wBAAE;gBACd,gBAAgB,EAAE,CAAC;gBACnB,eAAe,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAC;gBACZ,eAAe,EAAE,CAAC;aACG,CAAA;YACtB,YAAY,EAAE,EAAiB;SAC/B,CAAA;IACF,CAAC;IAED,MAAM;QACL,IAAI,CAAC,cAAc,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACL,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAA;SACvB;aAAM;YACN,UAAU,CAAC;gBACV,IAAI,CAAC,gBAAgB,EAAE,CAAA;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,CAAC,iBAAiB,EAAE,CAAA;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACxB,CAAC,EAAE,GAAG,CAAC,CAAA;SACP;IACF,CAAC;IAED,OAAO,EAAE;QACR,YAAY,CAAC,YAAoB;YAChC,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAA;YAChC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAEK,cAAc;;gBACnB,IAAI;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;oBACjC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;wBAC5C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;qBACpD;oBACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;wBACrB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;qBACrD;iBACD;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;iBACzE;YACF,CAAC;SAAA;QAEK,gBAAgB;;gBACrB,IAAI;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI;yBACzB,IAAI,CAAC,UAAU,CAAC;yBAChB,MAAM,CAAC,GAAG,CAAC;yBACX,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,KAAK,CAAC,CAAC,CAAC;yBACR,OAAO,EAAE,CAAA;oBAEX,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAK,QAAQ,CAAC,IAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wBACtF,IAAI,CAAC,QAAQ,GAAG;4BACf,EAAE,EAAE,IAAI;4BACR,WAAW,EAAE,IAAI,CAAC,UAAU;4BAC5B,SAAS,EAAE,MAAM;4BACjB,SAAS,EAAE,IAAI;4BACf,WAAW,EAAE,IAAI;4BACjB,WAAW,EAAE,IAAI;4BACjB,YAAY,EAAE,IAAI;4BAClB,aAAa,EAAE,IAAI;4BACnB,UAAU,EAAE,GAAG;4BACf,WAAW,EAAE,CAAC;4BACd,MAAM,EAAE,CAAC;yBACT,CAAA;wBACD,6BAAM;qBACN;oBAED,MAAM,OAAO,GAAI,QAAQ,CAAC,IAAc,CAAC,CAAC,CAAkB,CAAA;oBAC5D,IAAI,CAAC,QAAQ,GAAG;wBACf,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI;wBACnC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI;wBACrD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,MAAM;wBACnD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI;wBACjD,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI;wBACrD,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI;wBACrD,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,IAAI;wBACvD,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,IAAI;wBACzD,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,GAAG;wBAClD,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;wBAClD,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;qBACxC,CAAA;iBACD;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;iBACzE;YACF,CAAC;SAAA;QAEK,cAAc;;gBACnB,IAAI;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI;yBACzB,IAAI,CAAC,WAAW,CAAC;yBACjB,MAAM,CAAC,4BAA4B,oBAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC;yBACxD,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,OAAO,EAAE,CAAA;oBAEX,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;wBAC3B,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;wBACtF,6BAAM;qBACN;oBAED,IAAI,WAAW,GAAG,CAAC,CAAA;oBACnB,IAAI,UAAU,GAAG,CAAC,CAAA;oBAElB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAa,CAAA;oBACtC,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAkB,CAAA;4BACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;4BAC7C,IAAI,MAAM,IAAI,CAAC,EAAE;gCAChB,WAAW,EAAE,CAAA;gCACb,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;6BACjD;yBACD;qBACD;oBAED,IAAI,CAAC,UAAU,GAAG;wBACjB,MAAM,EAAE,WAAW;wBACnB,KAAK,EAAE,UAAU;wBACjB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrC,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBACpC,CAAA;iBACD;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;iBACzE;YACF,CAAC;SAAA;QAEK,iBAAiB;;gBACtB,IAAI;oBACH,MAAM,kBAAkB,GAAG,MAAM,IAAI;yBACnC,IAAI,CAAC,WAAW,CAAC;yBACjB,MAAM,CAAC,IAAI,oBAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC;yBAChC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;yBACrB,OAAO,EAAE,CAAA;oBAEX,MAAM,SAAS,GAAG,MAAM,IAAI;yBAC1B,IAAI,CAAC,WAAW,CAAC;yBACjB,MAAM,CAAC,IAAI,oBAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC;yBAChC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;yBACrB,OAAO,EAAE,CAAA;oBAEX,MAAM,WAAW,GAAG,MAAM,IAAI;yBAC5B,IAAI,CAAC,aAAa,CAAC;yBACnB,MAAM,CAAC,IAAI,oBAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC;yBAChC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;yBACtB,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;yBACrB,OAAO,EAAE,CAAA;oBAEX,IAAI,CAAC,aAAa,GAAG;wBACpB,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,IAAI,CAAC;wBAC/C,eAAe,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;wBACrC,SAAS,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;wBACjC,eAAe,EAAE,CAAC;qBAClB,CAAA;iBACD;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,YAAY,EAAE,CAAC,CAAC,CAAA;iBAC1E;YACF,CAAC;SAAA;QAEK,gBAAgB;;gBACrB,IAAI;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI;yBACzB,IAAI,CAAC,WAAW,CAAC;yBACjB,MAAM,CAAC;;;;;;;;;;;OAWP,CAAC;yBACD,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;yBAClC,KAAK,CAAC,YAAY,oBAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAC;yBACzC,KAAK,CAAC,CAAC,CAAC;yBACR,OAAO,EAAE,CAAA;oBAEX,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;wBAC7C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;wBACtB,6BAAM;qBACN;oBAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAa,CAAA;oBACtC,MAAM,UAAU,GAAgB,EAAE,CAAA;oBAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAkB,CAAA;wBACxC,MAAM,KAAK,iBAAc;4BACxB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;4BAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE;4BAC1C,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;4BACjD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;4BACjD,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;4BAC9C,KAAK,EAAE,EAAE;yBACT,CAAA,CAAA;wBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;wBACxC,IAAI,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;4BAChD,MAAM,UAAU,GAAG,QAAiB,CAAA;4BACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAkB,CAAA;gCAChD,KAAK,CAAC,KAAK,CAAC,IAAI,mBAAC;oCAChB,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;oCACnC,QAAQ,EAAE,EAAE;oCACZ,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;oCACnD,MAAM,EAAE,EAAE;oCACV,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE;oCACvD,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE;oCAC/C,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;oCACxC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;oCAC9C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;oCACjD,YAAY,EAAE,EAAE;iCACC,EAAC,CAAA;6BACnB;yBACD;wBAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;qBACtB;oBAED,IAAI,CAAC,YAAY,GAAG,UAAU,CAAA;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,uCAAuC,EAAC,WAAW,EAAE,CAAC,CAAC,CAAA;iBACzE;YACF,CAAC;SAAA;QAED,mBAAmB,CAAC,MAAc;YACjC,QAAQ,MAAM,EAAE;gBACf,KAAK,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAA;gBAC/B,KAAK,CAAC,CAAC,CAAC,OAAO,aAAa,CAAA;gBAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAA;gBAC/B,KAAK,CAAC,CAAC,CAAC,OAAO,kBAAkB,CAAA;gBACjC,KAAK,CAAC,CAAC,CAAC,OAAO,kBAAkB,CAAA;gBACjC,OAAO,CAAC,CAAC,OAAO,gBAAgB,CAAA;aAChC;QACF,CAAC;QAED,kBAAkB,CAAC,MAAc;YAChC,QAAQ,MAAM,EAAE;gBACf,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;gBACpB,OAAO,CAAC,CAAC,OAAO,MAAM,CAAA;aACtB;QACF,CAAC;QAED,UAAU,CAAC,OAAe;YACzB,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;YAE9C,IAAI,OAAO,GAAG,EAAE,EAAE;gBACjB,OAAO,GAAG,OAAO,KAAK,CAAA;aACtB;iBAAM,IAAI,OAAO,GAAG,IAAI,EAAE;gBAC1B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;aACvC;iBAAM;gBACN,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA;aACxC;QACF,CAAC;QAED,YAAY;YACX,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,+BAA+B;aACpC,CAAC,CAAA;QACH,CAAC;QAED,YAAY;YACX,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,gCAAgC;aACrC,CAAC,CAAA;QACH,CAAC;QAED,UAAU,CAAC,IAAY;YACtB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,oCAAoC,IAAI,EAAE;aAC/C,CAAC,CAAA;QACH,CAAC;QAED,YAAY,CAAC,IAAY;YACxB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,sCAAsC,IAAI,EAAE;aACjD,CAAC,CAAA;QACH,CAAC;QAED,cAAc;YACb,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,iCAAiC;aACtC,CAAC,CAAA;QACH,CAAC;QAED,cAAc;YACb,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,iCAAiC;aACtC,CAAC,CAAA;QACH,CAAC;QAED,WAAW;YACV,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,8BAA8B;aACnC,CAAC,CAAA;QACH,CAAC;QAED,WAAW;YACV,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,8BAA8B;aACnC,CAAC,CAAA;QACH,CAAC;QAED,eAAe,CAAC,OAAe;YAC9B,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,wCAAwC,OAAO,EAAE;aACtD,CAAC,CAAA;QACH,CAAC;KACD;CACD,EAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/57ef672a6eddb4668129a6d6224b9030a219d36b b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/57ef672a6eddb4668129a6d6224b9030a219d36b deleted file mode 100644 index 2d39ca86..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/57ef672a6eddb4668129a6d6224b9030a219d36b +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter, __read, __values } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, n as _n, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed, watch, onUnmounted, getCurrentInstance } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService, UserAddress as SupabaseUserAddress } from \"@/utils/supabaseService\";\nimport { ShopOrderParams } from \"D:/companyproject/mall/utils/supabaseService.ts\";\nclass CheckoutItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n sku_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n product_image: { type: String, optional: false },\n sku_specifications: { type: \"Any\", optional: false },\n price: { type: Number, optional: false },\n original_price: { type: Number, optional: false },\n member_price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n shop_id: { type: String, optional: true },\n shop_name: { type: String, optional: true },\n merchant_id: { type: String, optional: true }\n };\n },\n name: \"CheckoutItemType\"\n };\n }\n constructor(options, metadata = CheckoutItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.sku_id = this.__props__.sku_id;\n this.product_name = this.__props__.product_name;\n this.product_image = this.__props__.product_image;\n this.sku_specifications = this.__props__.sku_specifications;\n this.price = this.__props__.price;\n this.original_price = this.__props__.original_price;\n this.member_price = this.__props__.member_price;\n this.quantity = this.__props__.quantity;\n this.shop_id = this.__props__.shop_id;\n this.shop_name = this.__props__.shop_name;\n this.merchant_id = this.__props__.merchant_id;\n delete this.__props__;\n }\n}\nclass DeliveryOptionType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n price: { type: Number, optional: false },\n description: { type: String, optional: false }\n };\n },\n name: \"DeliveryOptionType\"\n };\n }\n constructor(options, metadata = DeliveryOptionType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.price = this.__props__.price;\n this.description = this.__props__.description;\n delete this.__props__;\n }\n}\nclass ShopGroupType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n shopId: { type: String, optional: false },\n shopName: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n items: { type: \"Unknown\", optional: false }\n };\n },\n name: \"ShopGroupType\"\n };\n }\n constructor(options, metadata = ShopGroupType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.shopId = this.__props__.shopId;\n this.shopName = this.__props__.shopName;\n this.merchant_id = this.__props__.merchant_id;\n this.items = this.__props__.items;\n delete this.__props__;\n }\n}\nclass CouponTemplateType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n discount_value: { type: Number, optional: false },\n min_order_amount: { type: Number, optional: false }\n };\n },\n name: \"CouponTemplateType\"\n };\n }\n constructor(options, metadata = CouponTemplateType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.discount_value = this.__props__.discount_value;\n this.min_order_amount = this.__props__.min_order_amount;\n delete this.__props__;\n }\n}\nclass UserCouponType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n template: { type: CouponTemplateType, optional: true }\n };\n },\n name: \"UserCouponType\"\n };\n }\n constructor(options, metadata = UserCouponType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.template = this.__props__.template;\n delete this.__props__;\n }\n}\nclass AddressItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n recipient_name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n is_default: { type: Boolean, optional: false }\n };\n },\n name: \"AddressItem\"\n };\n }\n constructor(options, metadata = AddressItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.recipient_name = this.__props__.recipient_name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.is_default = this.__props__.is_default;\n delete this.__props__;\n }\n}\nclass NewAddressData extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n isDefault: { type: Boolean, optional: false }\n };\n },\n name: \"NewAddressData\"\n };\n }\n constructor(options, metadata = NewAddressData.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.isDefault = this.__props__.isDefault;\n delete this.__props__;\n }\n}\nclass NewAddressForm extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n recipient_name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n is_default: { type: Boolean, optional: false }\n };\n },\n name: \"NewAddressForm\"\n };\n }\n constructor(options, metadata = NewAddressForm.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.recipient_name = this.__props__.recipient_name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.is_default = this.__props__.is_default;\n delete this.__props__;\n }\n}\nclass MockAddress extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n isDefault: { type: Boolean, optional: false }\n };\n },\n name: \"MockAddress\"\n };\n }\n constructor(options, metadata = MockAddress.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.isDefault = this.__props__.isDefault;\n delete this.__props__;\n }\n}\n// 添加对象 keys 获取函数\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'checkout',\n setup(__props) {\n function getObjectKeys(obj) {\n const keys = [];\n // UTS 兼容的对象属性获取方式\n const tempObj = obj;\n // 使用 try-catch 安全获取对象属性\n try {\n // 假设我们知道一些常见的属性名\n const commonKeys = ['id', 'name', 'value', 'label', 'key', 'recipient_name', 'phone', 'province', 'city', 'district', 'detail', 'is_default'];\n for (let i = 0; i < commonKeys.length; i++) {\n const key = commonKeys[i];\n // 替换 hasOwnProperty 检查\n if (tempObj[key] !== null) { // 移除对 undefined 的检查\n keys.push(key);\n }\n }\n }\n catch (e) {\n // 捕获异常,避免编译错误\n }\n return keys;\n }\n const checkoutItems = ref([]);\n const selectedAddress = ref(null);\n const deliveryOptions = ref([\n new DeliveryOptionType({ id: 'express', name: '物流快递', price: 8.00, description: '普通快递配送' }),\n new DeliveryOptionType({ id: 'local', name: '同城配送', price: 15.00, description: '同城极速上门' })\n ]);\n const selectedDelivery = ref('express');\n const selectedCoupon = ref(null);\n const remark = ref('');\n const showAddressPopup = ref(false);\n const addressList = ref([]);\n const newAddress = ref(new NewAddressForm({\n recipient_name: '',\n phone: '',\n province: '',\n city: '',\n district: '',\n detail: '',\n is_default: false\n }));\n const showNewAddressForm = ref(false);\n const showSaveConfirm = ref(false);\n const smartAddressInput = ref('');\n const toUTSJSONObject = (value = null) => {\n if (UTS.isInstanceOf(value, UTSJSONObject))\n return value;\n return UTS.JSON.parse(UTS.JSON.stringify(value !== null && value !== void 0 ? value : new UTSJSONObject({})));\n };\n // 计算属性 - 修复价格同步问题\n // 按店铺分组商品\n const shopGroups = computed(() => {\n const groups = [];\n checkoutItems.value.forEach((item) => {\n var _a, _b, _c, _d;\n const shopId = (_a = item.shop_id) !== null && _a !== void 0 ? _a : 'unknown';\n let target = null;\n for (let i = 0; i < groups.length; i++) {\n if (groups[i].shopId == shopId) {\n target = groups[i];\n break;\n }\n }\n if (target == null) {\n target = {\n shopId: shopId,\n shopName: (_b = item.shop_name) !== null && _b !== void 0 ? _b : '商城优选',\n merchant_id: (_d = (_c = item.merchant_id) !== null && _c !== void 0 ? _c : item.shop_id) !== null && _d !== void 0 ? _d : '',\n items: []\n };\n groups.push(target);\n }\n target.items.push(item);\n });\n return groups;\n });\n const getGroupTotal = (group) => {\n let sum = 0;\n group.items.forEach((item) => {\n // 优先使用会员价,如果没有会员价则使用原价\n let price = item.price;\n if (item.member_price != null && item.member_price > 0 && item.member_price < item.price) {\n price = item.member_price;\n }\n const quantity = item.quantity;\n if (isNaN(price) == false && isNaN(quantity) == false) {\n sum += (price * quantity);\n }\n });\n return sum.toFixed(2);\n };\n const totalAmount = computed(() => {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:493', '计算商品总价,checkoutItems:', checkoutItems.value);\n if (checkoutItems.value.length == 0) {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:495', '商品列表为空,返回0');\n return 0;\n }\n // 确保每个商品的价格和数量都是数字类型,并计算总和\n const total = checkoutItems.value.reduce((sum, item) => {\n // 确保item存在且包含必要的属性\n if (item == null)\n return sum;\n // 优先使用会员价,如果没有会员价则使用原价\n let price = item.price;\n if (item.member_price != null && item.member_price > 0 && item.member_price < item.price) {\n price = item.member_price;\n }\n const quantity = item.quantity;\n // 验证转换后的数字是否有效\n if (isNaN(price) || isNaN(quantity) || price <= 0 || quantity <= 0) {\n uni.__f__('warn', 'at pages/mall/consumer/checkout.uvue:513', '商品价格或数量无效:', item, 'price:', price, 'quantity:', quantity);\n return sum;\n }\n const itemTotal = price * quantity;\n return sum + itemTotal;\n }, 0);\n return total;\n });\n const deliveryFee = computed(() => {\n var _a;\n const option = UTS.arrayFind(deliveryOptions.value, opt => { return opt.id === selectedDelivery.value; });\n return (_a = option === null || option === void 0 ? null : option.price) !== null && _a !== void 0 ? _a : 0;\n });\n const discountAmount = computed(() => {\n var _a;\n const coupon = (_a = selectedCoupon.value) === null || _a === void 0 ? null : _a.template;\n if (coupon == null)\n return 0;\n // 确保使用计算后的商品总价进行比较 (should be min_order_amount)\n if (totalAmount.value < coupon.min_order_amount)\n return 0;\n // 简单处理:假设都是满减券\n return coupon.discount_value;\n });\n const actualAmount = computed(() => {\n // 确保所有值都是数字类型\n const total = typeof totalAmount.value === 'number' ? totalAmount.value : 0;\n const delivery = typeof deliveryFee.value === 'number' ? deliveryFee.value : 0;\n const discount = typeof discountAmount.value === 'number' ? discountAmount.value : 0;\n // 正确计算:商品总价 + 运费 - 优惠减免\n let amount = total + delivery - discount;\n // 金额必须大于等于0\n return amount > 0 ? amount : 0;\n });\n // 监听checkoutItems变化 - 调试用\n watch(checkoutItems, (newItems) => {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:554', 'checkoutItems变化了:', newItems);\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:555', '商品总价计算:', totalAmount.value);\n }, { deep: true });\n // 处理商品数据清洗\n const processCheckoutItems = (items) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u;\n // 获取会员折扣信息\n let memberDiscount = 1.0;\n try {\n const memberInfo = yield supabaseService.getUserMemberInfo();\n const discountRaw = memberInfo.get('discount');\n if (discountRaw != null) {\n memberDiscount = discountRaw;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:569', '获取会员信息失败,使用默认折扣:', e);\n }\n // 数据清洗:确保价格和数量是数字类型\n const converted = [];\n if (items != null && items.length > 0) {\n for (let i = 0; i < items.length; i++) {\n const obj = toUTSJSONObject(items[i]);\n const id = (_a = obj.getString('id')) !== null && _a !== void 0 ? _a : '';\n const productId = (_c = (_b = obj.getString('product_id')) !== null && _b !== void 0 ? _b : obj.getString('productId')) !== null && _c !== void 0 ? _c : id;\n const skuId = (_g = (_d = obj.getString('sku_id')) !== null && _d !== void 0 ? _d : obj.getString('skuId')) !== null && _g !== void 0 ? _g : id;\n const productName = (_j = (_h = obj.getString('product_name')) !== null && _h !== void 0 ? _h : obj.getString('name')) !== null && _j !== void 0 ? _j : '';\n const productImage = (_l = (_k = obj.getString('product_image')) !== null && _k !== void 0 ? _k : obj.getString('image')) !== null && _l !== void 0 ? _l : '';\n let specs = new UTSJSONObject({});\n const skuSpecsAny = obj.get('sku_specifications');\n if (skuSpecsAny != null) {\n specs = skuSpecsAny;\n }\n else {\n const specAny = obj.get('spec');\n if (specAny != null)\n specs = { spec: specAny };\n }\n let price = 0;\n const priceAny = obj.get('price');\n if (priceAny != null) {\n const parsed = parseFloat(priceAny.toString());\n if (isNaN(parsed) == false)\n price = parsed;\n }\n let quantity = 1;\n const quantityAny = obj.get('quantity');\n if (quantityAny != null) {\n const parsedQ = parseInt(quantityAny.toString());\n if (isNaN(parsedQ) == false && parsedQ >= 1)\n quantity = parsedQ;\n }\n const shopId = (_p = (_m = obj.getString('shop_id')) !== null && _m !== void 0 ? _m : obj.getString('shopId')) !== null && _p !== void 0 ? _p : 'unknown';\n const shopName = (_r = (_q = obj.getString('shop_name')) !== null && _q !== void 0 ? _q : obj.getString('shopName')) !== null && _r !== void 0 ? _r : '';\n const merchantId = (_u = (_s = obj.getString('merchant_id')) !== null && _s !== void 0 ? _s : obj.getString('merchantId')) !== null && _u !== void 0 ? _u : '';\n // 计算会员价\n let memberPrice = 0;\n if (memberDiscount > 0 && memberDiscount < 1 && price > 0) {\n memberPrice = Math.round(price * memberDiscount * 100) / 100;\n }\n converted.push(new CheckoutItemType({\n id: id,\n product_id: productId,\n sku_id: skuId,\n product_name: productName,\n product_image: productImage,\n sku_specifications: specs,\n price: parseFloat(price.toFixed(2)),\n original_price: parseFloat(price.toFixed(2)),\n member_price: memberPrice,\n quantity: quantity,\n shop_id: shopId,\n shop_name: shopName,\n merchant_id: merchantId\n }));\n }\n }\n checkoutItems.value = converted;\n // 调试:打印每个商品的价格\n if (checkoutItems.value.length > 0) {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:636', '清洗后商品价格明细:');\n checkoutItems.value.forEach((item, index) => {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:638', `商品${index}:`, item.product_name, '原价:', item.price, '会员价:', item.member_price, 'shop:', item.shop_id);\n });\n }\n }); };\n // 获取当前用户ID\n function getCurrentUserId() {\n const userId = supabaseService.getCurrentUserId();\n return userId !== null && userId !== void 0 ? userId : '';\n }\n // 生命周期\n onMounted(() => {\n // 监听地址更新事件\n uni.$on('addressUpdated', (updatedAddressList) => {\n addressList.value = updatedAddressList;\n // 如果当前没有选中地址,尝试选择默认地址\n if (selectedAddress.value == null && addressList.value.length > 0) {\n let defaultAddress = null;\n for (let i = 0; i < addressList.value.length; i++) {\n const addr = addressList.value[i];\n if (addr.is_default) {\n defaultAddress = addr;\n break;\n }\n }\n if (defaultAddress != null)\n selectedAddress.value = defaultAddress;\n }\n });\n });\n // 组件卸载时移除事件监听\n onUnmounted(() => {\n uni.$off('addressUpdated');\n uni.$off('checkoutPageShow');\n // 离开页面时清除结算数据,防止下次进入时显示旧数据\n uni.removeStorageSync('checkout_type');\n uni.removeStorageSync('checkout_items');\n });\n // 加载默认地址\n function loadDefaultAddress() {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // 首先检查用户是否登录\n const currentUserId = getCurrentUserId();\n // 如果用户已登录,尝试从Supabase加载地址数据\n if (currentUserId != '') {\n const supabaseAddresses = yield supabaseService.getAddresses();\n if (supabaseAddresses != null && supabaseAddresses.length > 0) {\n // 查找默认地址\n const defaultAddress = UTS.arrayFind(supabaseAddresses, (addr) => { return addr.is_default === true; });\n if (defaultAddress != null) {\n // 转换地址格式以匹配selectedAddress的结构\n const addr = new AddressItem({\n id: defaultAddress.id,\n recipient_name: defaultAddress.recipient_name,\n phone: defaultAddress.phone,\n province: defaultAddress.province,\n city: defaultAddress.city,\n district: defaultAddress.district,\n detail: defaultAddress.detail_address,\n is_default: defaultAddress.is_default\n });\n selectedAddress.value = addr;\n }\n else {\n // 如果没有默认地址,使用第一个地址\n const firstAddress = supabaseAddresses[0];\n const addr = new AddressItem({\n id: firstAddress.id,\n recipient_name: firstAddress.recipient_name,\n phone: firstAddress.phone,\n province: firstAddress.province,\n city: firstAddress.city,\n district: firstAddress.district,\n detail: firstAddress.detail_address,\n is_default: firstAddress.is_default\n });\n selectedAddress.value = addr;\n }\n // 同时更新本地存储缓存\n const localAddresses = [];\n for (let i = 0; i < supabaseAddresses.length; i++) {\n const addr = supabaseAddresses[i];\n localAddresses.push(new UTSJSONObject({\n id: addr.id,\n name: addr.recipient_name,\n phone: addr.phone,\n province: addr.province,\n city: addr.city,\n district: addr.district,\n detail: addr.detail_address,\n isDefault: addr.is_default\n }));\n }\n uni.setStorageSync('addresses', UTS.JSON.stringify(localAddresses));\n }\n }\n // 如果Supabase没有地址数据或用户未登录,尝试从本地存储加载\n if (selectedAddress.value == null) {\n const storedAddresses = uni.getStorageSync('addresses');\n const storedAddressesStr = storedAddresses != null ? storedAddresses.toString() : '';\n if (storedAddressesStr != '') {\n try {\n const addresses = UTS.JSON.parse(storedAddressesStr);\n if (addresses != null && addresses.length > 0) {\n let picked = null;\n for (let i = 0; i < addresses.length; i++) {\n const obj = toUTSJSONObject(addresses[i]);\n const isDef = (_b = (_a = obj.getBoolean('isDefault')) !== null && _a !== void 0 ? _a : obj.getBoolean('is_default')) !== null && _b !== void 0 ? _b : false;\n if (isDef) {\n picked = obj;\n break;\n }\n }\n if (picked == null)\n picked = toUTSJSONObject(addresses[0]);\n const addr = new AddressItem({\n id: (_c = picked.getString('id')) !== null && _c !== void 0 ? _c : '',\n recipient_name: (_g = (_d = picked.getString('recipient_name')) !== null && _d !== void 0 ? _d : picked.getString('name')) !== null && _g !== void 0 ? _g : '',\n phone: (_h = picked.getString('phone')) !== null && _h !== void 0 ? _h : '',\n province: (_j = picked.getString('province')) !== null && _j !== void 0 ? _j : '',\n city: (_k = picked.getString('city')) !== null && _k !== void 0 ? _k : '',\n district: (_l = picked.getString('district')) !== null && _l !== void 0 ? _l : '',\n detail: (_p = (_m = picked.getString('detail')) !== null && _m !== void 0 ? _m : picked.getString('detail_address')) !== null && _p !== void 0 ? _p : '',\n is_default: (_r = (_q = picked.getBoolean('isDefault')) !== null && _q !== void 0 ? _q : picked.getBoolean('is_default')) !== null && _r !== void 0 ? _r : false\n });\n selectedAddress.value = addr;\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:772', '解析本地地址数据失败:', err);\n }\n }\n }\n // 如果仍然没有地址,使用模拟地址数据\n if (selectedAddress.value == null) {\n // 模拟地址数据\n const mockAddresses = [\n new MockAddress({\n id: 'addr_001',\n name: '张三',\n phone: '13800138001',\n province: '北京市',\n city: '北京市',\n district: '朝阳区',\n detail: '建国路88号SOHO现代城A座1001',\n isDefault: true\n }),\n new MockAddress({\n id: 'addr_002',\n name: '李四',\n phone: '13900139001',\n province: '上海市',\n city: '上海市',\n district: '浦东新区',\n detail: '陆家嘴环路1000号汇亚大厦20层',\n isDefault: false\n })\n ];\n // 保存模拟地址到本地存储\n uni.setStorageSync('addresses', UTS.JSON.stringify(mockAddresses));\n // 使用第一个地址作为默认地址\n const first = mockAddresses[0];\n const addr = new AddressItem({\n id: first.id,\n recipient_name: first.name,\n phone: first.phone,\n province: first.province,\n city: first.city,\n district: first.district,\n detail: first.detail,\n is_default: first.isDefault\n });\n selectedAddress.value = addr;\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:822', '加载地址失败:', error);\n }\n });\n }\n // 用户登录状态\n const isLoggedIn = computed(() => {\n const userId = getCurrentUserId();\n return userId != '';\n });\n // 获取完整地址\n const getFullAddress = (address) => {\n return `${address.province}${address.city}${address.district}${address.detail}`;\n };\n // 加载地址列表\n function loadAddressList() {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p;\n return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:839', '[loadAddressList] 开始加载地址列表');\n try {\n const currentUserId = getCurrentUserId();\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:842', '[loadAddressList] currentUserId:', currentUserId);\n if (currentUserId != '') {\n const supabaseAddresses = yield supabaseService.getAddresses();\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:846', '[loadAddressList] supabaseAddresses 数量:', supabaseAddresses != null ? supabaseAddresses.length : 0);\n if (supabaseAddresses != null && supabaseAddresses.length > 0) {\n const list = [];\n const localAddresses = [];\n for (let i = 0; i < supabaseAddresses.length; i++) {\n const addr = supabaseAddresses[i];\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:853', '[loadAddressList] 地址', i, ':', addr.recipient_name, addr.phone, addr.detail_address);\n list.push(new AddressItem({\n id: addr.id,\n recipient_name: addr.recipient_name,\n phone: addr.phone,\n province: addr.province,\n city: addr.city,\n district: addr.district,\n detail: addr.detail_address,\n is_default: addr.is_default\n }));\n localAddresses.push(new UTSJSONObject({\n id: addr.id,\n name: addr.recipient_name,\n phone: addr.phone,\n province: addr.province,\n city: addr.city,\n district: addr.district,\n detail: addr.detail_address,\n isDefault: addr.is_default\n }));\n }\n addressList.value = list;\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:876', '[loadAddressList] addressList.value 设置完成, 数量:', addressList.value.length);\n uni.setStorageSync('addresses', UTS.JSON.stringify(localAddresses));\n }\n }\n if (addressList.value.length == 0) {\n const storedAddresses = uni.getStorageSync('addresses');\n const storedAddressesStr = storedAddresses != null ? storedAddresses.toString() : '';\n if (storedAddressesStr != '') {\n try {\n const addresses = UTS.JSON.parse(storedAddressesStr);\n if (addresses != null && addresses.length > 0) {\n const list = [];\n for (let i = 0; i < addresses.length; i++) {\n const obj = toUTSJSONObject(addresses[i]);\n list.push(new AddressItem({\n id: (_a = obj.getString('id')) !== null && _a !== void 0 ? _a : '',\n recipient_name: (_c = (_b = obj.getString('recipient_name')) !== null && _b !== void 0 ? _b : obj.getString('name')) !== null && _c !== void 0 ? _c : '',\n phone: (_d = obj.getString('phone')) !== null && _d !== void 0 ? _d : '',\n province: (_g = obj.getString('province')) !== null && _g !== void 0 ? _g : '',\n city: (_h = obj.getString('city')) !== null && _h !== void 0 ? _h : '',\n district: (_j = obj.getString('district')) !== null && _j !== void 0 ? _j : '',\n detail: (_l = (_k = obj.getString('detail')) !== null && _k !== void 0 ? _k : obj.getString('detail_address')) !== null && _l !== void 0 ? _l : '',\n is_default: (_p = (_m = obj.getBoolean('isDefault')) !== null && _m !== void 0 ? _m : obj.getBoolean('is_default')) !== null && _p !== void 0 ? _p : false\n }));\n }\n addressList.value = list;\n }\n else {\n addressList.value = [];\n }\n }\n catch (err) {\n addressList.value = [];\n }\n }\n else {\n addressList.value = [];\n }\n }\n if (addressList.value.length == 0) {\n const mockAddresses = [\n new MockAddress({\n id: 'addr_001',\n name: '张三',\n phone: '13800138001',\n province: '北京市',\n city: '北京市',\n district: '朝阳区',\n detail: '建国路88号SOHO现代城A座1001',\n isDefault: true\n }),\n new MockAddress({\n id: 'addr_002',\n name: '李四',\n phone: '13900139001',\n province: '上海市',\n city: '上海市',\n district: '浦东新区',\n detail: '陆家嘴环路1000号汇亚大厦20层',\n isDefault: false\n })\n ];\n uni.setStorageSync('addresses', UTS.JSON.stringify(mockAddresses));\n const list = [];\n for (let i = 0; i < mockAddresses.length; i++) {\n const addr = mockAddresses[i];\n list.push(new AddressItem({\n id: addr.id,\n recipient_name: addr.name,\n phone: addr.phone,\n province: addr.province,\n city: addr.city,\n district: addr.district,\n detail: addr.detail,\n is_default: addr.isDefault\n }));\n }\n addressList.value = list;\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:957', '加载地址列表失败:', error);\n }\n });\n }\n // 从本地存储加载结算数据(例如从购物车进入)\n function loadFromLocalStorage() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const cartData = uni.getStorageSync('cart');\n const cartDataStr = cartData != null ? cartData.toString() : '';\n if (cartDataStr != '') {\n try {\n const cartItems = UTS.JSON.parse(cartDataStr);\n const selectedCartItems = [];\n for (let i = 0; i < cartItems.length; i++) {\n const obj = toUTSJSONObject(cartItems[i]);\n const selected = (_a = obj.getBoolean('selected')) !== null && _a !== void 0 ? _a : false;\n if (selected)\n selectedCartItems.push(obj);\n }\n if (selectedCartItems.length > 0) {\n yield processCheckoutItems(selectedCartItems);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:978', '解析购物车数据失败:', e);\n }\n }\n loadDefaultAddress();\n });\n }\n // 加载结算数据(兼容旧版本,现在主要在onLoad中处理)\n function loadCheckoutData() {\n loadFromLocalStorage();\n }\n // 初始化加载数据\n function initCheckoutData() {\n return __awaiter(this, void 0, void 0, function* () {\n let dataLoaded = false;\n const checkoutTypeAny = uni.getStorageSync('checkout_type');\n const checkoutType = checkoutTypeAny != null ? checkoutTypeAny.toString() : '';\n if (checkoutType == 'buy_now' || checkoutType == 'cart') {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:995', `检测到结算模式(${checkoutType}),从Storage加载数据`);\n const itemsStrAny = uni.getStorageSync('checkout_items');\n const itemsStr = itemsStrAny != null ? itemsStrAny.toString() : '';\n if (itemsStr != '') {\n try {\n const items = UTS.JSON.parse(itemsStr);\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1001', '从Storage加载的商品数据:', items);\n if (items != null && Array.isArray(items) && items.length > 0) {\n yield processCheckoutItems(items);\n dataLoaded = true;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:1007', '解析结算数据失败', e);\n }\n }\n }\n if (dataLoaded == false) {\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1013', '未找到预结算数据,尝试从购物车本地存储加载');\n yield loadFromLocalStorage();\n }\n loadDefaultAddress();\n loadAddressList();\n });\n }\n onLoad((options = null) => {\n initCheckoutData();\n });\n // 页面显示时触发\n function onShow() {\n const userId = getCurrentUserId();\n if (userId != '') {\n loadDefaultAddress();\n loadAddressList();\n }\n }\n uni.$on('checkoutPageShow', onShow);\n // 选择地址\n const handleSelectAddress = (address) => {\n selectedAddress.value = address;\n showAddressPopup.value = false;\n };\n // 新建地址\n const handleAddNewAddress = () => {\n showNewAddressForm.value = true;\n };\n // 保存新地址\n const saveNewAddress = () => { return __awaiter(this, void 0, void 0, function* () {\n if (newAddress.value.recipient_name == '' || newAddress.value.phone == '' || newAddress.value.detail == '') {\n uni.showToast({\n title: '请填写完整信息',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n // 触发保存确认弹窗\n showSaveConfirm.value = true;\n }); };\n // 处理保存确认\n const handleSaveConfirm = (save) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;\n showSaveConfirm.value = false;\n const newAddressData = new NewAddressData({\n id: `addr_${Date.now()}`,\n name: newAddress.value.recipient_name,\n phone: newAddress.value.phone,\n province: newAddress.value.province,\n city: newAddress.value.city,\n district: newAddress.value.district,\n detail: newAddress.value.detail,\n isDefault: newAddress.value.is_default\n });\n if (save) {\n const storedAddresses = uni.getStorageSync('addresses');\n let addresses = [];\n const storedAddressesStr = storedAddresses != null ? storedAddresses.toString() : '';\n if (storedAddressesStr != '') {\n try {\n addresses = UTS.JSON.parse(storedAddressesStr);\n }\n catch (e) {\n addresses = [];\n }\n }\n const normalized = [];\n for (let i = 0; i < addresses.length; i++) {\n const obj = toUTSJSONObject(addresses[i]);\n const isDef = (_b = (_a = obj.getBoolean('isDefault')) !== null && _a !== void 0 ? _a : obj.getBoolean('is_default')) !== null && _b !== void 0 ? _b : false;\n normalized.push(new UTSJSONObject({\n id: (_c = obj.getString('id')) !== null && _c !== void 0 ? _c : '',\n name: (_g = (_d = obj.getString('name')) !== null && _d !== void 0 ? _d : obj.getString('recipient_name')) !== null && _g !== void 0 ? _g : '',\n phone: (_h = obj.getString('phone')) !== null && _h !== void 0 ? _h : '',\n province: (_j = obj.getString('province')) !== null && _j !== void 0 ? _j : '',\n city: (_k = obj.getString('city')) !== null && _k !== void 0 ? _k : '',\n district: (_l = obj.getString('district')) !== null && _l !== void 0 ? _l : '',\n detail: (_p = (_m = obj.getString('detail')) !== null && _m !== void 0 ? _m : obj.getString('detail_address')) !== null && _p !== void 0 ? _p : '',\n isDefault: newAddressData.isDefault ? false : isDef,\n label: (_q = obj.getString('label')) !== null && _q !== void 0 ? _q : ''\n }));\n }\n if (normalized.length === 0 && newAddressData.isDefault == false) {\n newAddressData.isDefault = true;\n }\n normalized.unshift(newAddressData);\n uni.setStorageSync('addresses', UTS.JSON.stringify(normalized));\n const updatedList = [];\n for (let i = 0; i < normalized.length; i++) {\n const obj = toUTSJSONObject(normalized[i]);\n updatedList.push(new AddressItem({\n id: (_r = obj.getString('id')) !== null && _r !== void 0 ? _r : '',\n recipient_name: (_u = (_s = obj.getString('recipient_name')) !== null && _s !== void 0 ? _s : obj.getString('name')) !== null && _u !== void 0 ? _u : '',\n phone: (_v = obj.getString('phone')) !== null && _v !== void 0 ? _v : '',\n province: (_w = obj.getString('province')) !== null && _w !== void 0 ? _w : '',\n city: (_x = obj.getString('city')) !== null && _x !== void 0 ? _x : '',\n district: (_y = obj.getString('district')) !== null && _y !== void 0 ? _y : '',\n detail: (_0 = (_z = obj.getString('detail')) !== null && _z !== void 0 ? _z : obj.getString('detail_address')) !== null && _0 !== void 0 ? _0 : '',\n is_default: (_2 = (_1 = obj.getBoolean('isDefault')) !== null && _1 !== void 0 ? _1 : obj.getBoolean('is_default')) !== null && _2 !== void 0 ? _2 : false\n }));\n }\n uni.$emit('addressUpdated', updatedList);\n }\n const checkoutFormatAddress = new AddressItem({\n id: (_3 = newAddressData.id) !== null && _3 !== void 0 ? _3 : '',\n recipient_name: (_4 = newAddressData.name) !== null && _4 !== void 0 ? _4 : '',\n phone: (_5 = newAddressData.phone) !== null && _5 !== void 0 ? _5 : '',\n province: newAddressData.province,\n city: newAddressData.city,\n district: newAddressData.district,\n detail: newAddressData.detail,\n is_default: newAddressData.isDefault\n });\n if (checkoutFormatAddress.is_default) {\n for (let i = 0; i < addressList.value.length; i++) {\n addressList.value[i].is_default = false;\n }\n }\n addressList.value.unshift(checkoutFormatAddress);\n if (checkoutFormatAddress.is_default || selectedAddress.value == null) {\n selectedAddress.value = checkoutFormatAddress;\n }\n newAddress.value = new NewAddressForm({\n recipient_name: '',\n phone: '',\n province: '',\n city: '',\n district: '',\n detail: '',\n is_default: false\n });\n smartAddressInput.value = '';\n showNewAddressForm.value = false;\n uni.showToast({\n title: '地址保存成功',\n icon: 'success'\n });\n }); };\n // 解析智能地址\n const parseSmartAddress = () => {\n var e_1, _a;\n var _b, _c, _d, _g;\n const input = smartAddressInput.value.trim();\n if (input == '')\n return null;\n newAddress.value.recipient_name = '';\n newAddress.value.phone = '';\n newAddress.value.province = '';\n newAddress.value.city = '';\n newAddress.value.district = '';\n newAddress.value.detail = '';\n const phoneRegex = /(1[3-9]\\d{9})/g;\n const phoneMatches = input.match(phoneRegex);\n if (phoneMatches != null && phoneMatches.length > 0) {\n newAddress.value.phone = (_b = phoneMatches[0]) !== null && _b !== void 0 ? _b : '';\n }\n const nameRegex = /([\\u4e00-\\u9fa5]{2,4})/g;\n const nameMatches = input.match(nameRegex);\n if (nameMatches != null && nameMatches.length > 0) {\n newAddress.value.recipient_name = (_c = nameMatches[0]) !== null && _c !== void 0 ? _c : '';\n }\n let addressText = input;\n if (newAddress.value.recipient_name != '') {\n addressText = addressText.replace(newAddress.value.recipient_name, '');\n }\n if (newAddress.value.phone != '') {\n addressText = addressText.replace(newAddress.value.phone, '');\n }\n addressText = addressText.replace(/[,,;;\\s]+/g, ' ').trim();\n const patterns = [\n /^(.*?省)?(.*?市)?(.*?[区县])?(.*)$/,\n /^(.*?省)?(.*?市)?(.*)$/\n ];\n try {\n for (var patterns_1 = __values(patterns), patterns_1_1 = patterns_1.next(); !patterns_1_1.done; patterns_1_1 = patterns_1.next()) {\n var pattern = patterns_1_1.value;\n const match = addressText.match(pattern);\n if (match != null) {\n const _h = __read(match, 5), province = _h[1], city = _h[2], district = _h[3], detail = _h[4];\n if (province != null)\n newAddress.value.province = province.replace('省', '').trim();\n if (city != null)\n newAddress.value.city = city.replace('市', '').trim();\n if (district != null)\n newAddress.value.district = district.trim();\n if (detail != null)\n newAddress.value.detail = detail.trim();\n if (newAddress.value.detail == '' && district != null && detail != null) {\n newAddress.value.detail = detail.trim();\n }\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (patterns_1_1 && !patterns_1_1.done && (_a = patterns_1.return)) _a.call(patterns_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (newAddress.value.province == '' && newAddress.value.city == '' && newAddress.value.district == '') {\n const parts = addressText.split(/[省市县区]/);\n if (parts.length >= 2) {\n newAddress.value.province = (_d = parts[0]) !== null && _d !== void 0 ? _d : '';\n newAddress.value.city = (_g = parts[1]) !== null && _g !== void 0 ? _g : '';\n newAddress.value.detail = parts.slice(2).join('').trim();\n if (newAddress.value.detail == '') {\n newAddress.value.detail = addressText;\n }\n }\n else {\n newAddress.value.detail = addressText;\n }\n }\n if (newAddress.value.detail == '' && addressText.trim() != '') {\n newAddress.value.detail = addressText.trim();\n }\n };\n // 取消新建地址\n const cancelNewAddress = () => {\n showNewAddressForm.value = false;\n newAddress.value = new NewAddressForm({\n recipient_name: '',\n phone: '',\n province: '',\n city: '',\n district: '',\n detail: '',\n is_default: false\n });\n smartAddressInput.value = '';\n };\n // 获取规格文本\n function formatSpecs(specs = null) {\n if (specs == null)\n return '';\n try {\n const specsStr = UTS.JSON.stringify(specs);\n if (specsStr == '{}' || specsStr == '[]' || specsStr == '\"\"' || specsStr == '')\n return '';\n // 使用 Record 类型替代 UTSJSONObject 的迭代器方法\n const specsObj = UTS.JSON.parse(specsStr);\n const parts = [];\n // 遍历已知可能的规格键名\n const possibleKeys = ['颜色', '尺寸', '规格', '型号', '版本', '材质', '款式', 'color', 'size', 'spec', 'version', 'style'];\n // 先尝试已知键名\n for (let i = 0; i < possibleKeys.length; i++) {\n const key = possibleKeys[i];\n const value = specsObj[key];\n if (value != null && value.toString() != '') {\n parts.push(`${key}: ${value.toString()}`);\n }\n }\n // 如果已知键名没找到,尝试遍历对象的所有属性\n if (parts.length === 0) {\n // 使用 JSON.stringify 后正则匹配键值对\n const keyValueRegex = /\"([^\"]+)\":\\s*\"([^\"]+)\"/g;\n let match = null;\n while (true) {\n match = keyValueRegex.exec(specsStr);\n if (match == null)\n break;\n const key = match[1];\n const value = match[2];\n if (key != null && value != null && value != '') {\n parts.push(`${key}: ${value}`);\n }\n }\n }\n if (parts.length === 0)\n return '';\n return parts.join('; ');\n }\n catch (e) {\n return '';\n }\n }\n // 选择配送方式\n const selectDelivery = (option) => {\n selectedDelivery.value = option.id;\n };\n // 选择优惠券\n const selectCoupon = () => {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons',\n success: (res = null) => {\n // 移除事件通道相关代码,避免使用不支持的 API\n // 注释掉事件通道逻辑,因为当前环境不支持 createEventChannel\n // const eventChannel = res.eventChannel || uni.createEventChannel()\n // if (eventChannel && eventChannel.emit) {\n // eventChannel.emit('setSelectMode', { selectMode: true })\n // }\n }\n });\n uni.$on('couponSelected', (coupon = null) => {\n selectedCoupon.value = coupon;\n uni.$off('couponSelected');\n });\n };\n // 提交订单\n const submitOrder = () => { return __awaiter(this, void 0, void 0, function* () {\n if (selectedAddress.value == null) {\n uni.showToast({ title: '请选择收货地址', icon: 'none' });\n return Promise.resolve(null);\n }\n if (checkoutItems.value.length === 0) {\n uni.showToast({ title: '订单中没有商品', icon: 'none' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '提交中...' });\n try {\n const userId = supabaseService.getCurrentUserId();\n if (userId == null || userId == '') {\n uni.hideLoading();\n uni.showToast({ title: '请先登录', icon: 'none' });\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1354', '[submitOrder] 开始创建订单, userId:', userId);\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1355', '[submitOrder] shopGroups数量:', shopGroups.value.length);\n const groups = [];\n for (let i = 0; i < shopGroups.value.length; i++) {\n const group = shopGroups.value[i];\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1360', `[submitOrder] 处理店铺组 ${i}:`, new UTSJSONObject({\n shopId: group.shopId,\n shopName: group.shopName,\n merchant_id: group.merchant_id,\n itemsCount: group.items.length\n }));\n const items = [];\n for (let j = 0; j < group.items.length; j++) {\n const item = group.items[j];\n items.push(new UTSJSONObject({\n id: item.id,\n product_id: item.product_id,\n sku_id: item.sku_id,\n quantity: item.quantity,\n price: item.price,\n member_price: item.member_price,\n product_name: item.product_name,\n product_image: item.product_image,\n specifications: item.sku_specifications\n }));\n }\n const finalMerchantId = (group.merchant_id != null && group.merchant_id != '') ? group.merchant_id : group.shopId;\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1382', `[submitOrder] 店铺组 ${i} 最终使用的 merchant_id:`, finalMerchantId);\n groups.push(new UTSJSONObject({\n merchant_id: finalMerchantId,\n shopId: group.shopId,\n shopName: group.shopName,\n items: items\n }));\n }\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1391', '[submitOrder] 准备传递的 groups 数量:', groups.length);\n const result = yield supabaseService.createOrdersByShop(new ShopOrderParams({\n shipping_address: selectedAddress.value !== null ? toUTSJSONObject(selectedAddress.value) : new UTSJSONObject(),\n shopGroups: groups,\n deliveryFee: deliveryFee.value,\n discountAmount: discountAmount.value\n }));\n uni.hideLoading();\n uni.__f__('log', 'at pages/mall/consumer/checkout.uvue:1402', '[submitOrder] 创建结果 success:', result.success);\n if (result.success) {\n try {\n uni.removeStorageSync('checkout_items');\n uni.removeStorageSync('checkout_type');\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:1408', e);\n }\n const orderIds = result.orderIds;\n if (orderIds.length === 1) {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderIds[0]}&amount=${actualAmount.value}`\n });\n }\n else {\n uni.showToast({ title: `成功创建${orderIds.length}个订单`, icon: 'success' });\n setTimeout(() => {\n uni.redirectTo({ url: '/pages/mall/consumer/orders' });\n }, 1500);\n }\n }\n else {\n const errMsg = (result.error != null && result.error !== '') ? result.error : '创建订单失败';\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:1423', '[submitOrder] 订单创建失败:', errMsg);\n uni.showToast({ title: errMsg, icon: 'none' });\n }\n }\n catch (err) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/checkout.uvue:1429', '[submitOrder] 提交订单错误:', err);\n const errMsg = (err.message != null && err.message !== '') ? err.message : '提交订单失败';\n uni.showToast({ title: errMsg, icon: 'none' });\n }\n }); };\n // 生成订单号\n const generateOrderNo = () => {\n const date = new Date();\n // ...\n const random = Math.random().toString().slice(2, 8);\n return `ORD${Date.now()}${random}`;\n };\n // 返回\n const goBack = () => {\n uni.navigateBack();\n };\n // 选择地址\n const selectAddress = () => {\n showAddressPopup.value = true;\n };\n // 添加登录跳转方法\n const goToLogin = () => {\n uni.navigateTo({\n url: '/pages/login/login' // 根据实际登录页面路径调整\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: selectedAddress.value\n }, selectedAddress.value ? _e({\n b: _t(selectedAddress.value.recipient_name),\n c: _t(selectedAddress.value.phone),\n d: selectedAddress.value.is_default\n }, selectedAddress.value.is_default ? {} : {}, {\n e: _t(getFullAddress(selectedAddress.value))\n }) : {}, {\n f: _o(selectAddress),\n g: shopGroups.value.length > 0\n }, shopGroups.value.length > 0 ? {\n h: _f(shopGroups.value, (group, k0, i0) => {\n return {\n a: _t(group.shopName),\n b: _f(group.items, (item, k1, i1) => {\n return _e({\n a: item.product_image,\n b: _t(item.product_name),\n c: _t(item.price),\n d: item.sku_specifications\n }, item.sku_specifications ? {\n e: _t(formatSpecs(item.sku_specifications))\n } : {}, {\n f: _t(item.quantity),\n g: _t((item.price * item.quantity).toFixed(2)),\n h: item.id\n });\n }),\n c: group.shopId\n };\n })\n } : {}, {\n i: _f(deliveryOptions.value, (option, k0, i0) => {\n return {\n a: _t(option.name),\n b: option.id,\n c: _n({\n selected: selectedDelivery.value === option.id\n }),\n d: _o($event => { return selectDelivery(option); }, option.id)\n };\n }),\n j: selectedDelivery.value\n }, selectedDelivery.value ? {\n k: _t(deliveryOptions.value.find(opt => { return opt.id === selectedDelivery.value; })?.description),\n l: _t(deliveryOptions.value.find(opt => { return opt.id === selectedDelivery.value; })?.price.toFixed(2))\n } : {}, {\n m: selectedCoupon.value != null\n }, selectedCoupon.value != null ? {\n n: _t(selectedCoupon.value.template?.name ?? '已选择优惠券')\n } : {}, {\n o: _o(selectCoupon),\n p: remark.value,\n q: _o($event => { return remark.value = $event.detail.value; }),\n r: _t(totalAmount.value.toFixed(2)),\n s: _t(deliveryFee.value.toFixed(2)),\n t: discountAmount.value > 0\n }, discountAmount.value > 0 ? {\n v: _t(discountAmount.value.toFixed(2))\n } : {}, {\n w: _t(actualAmount.value.toFixed(2)),\n x: _o(submitOrder),\n y: showAddressPopup.value\n }, showAddressPopup.value ? _e({\n z: _o($event => { return showAddressPopup.value = false; }),\n A: isLoggedIn.value == false\n }, isLoggedIn.value == false ? {\n B: _o(goToLogin)\n } : {}, {\n C: isLoggedIn.value\n }, isLoggedIn.value ? _e({\n D: addressList.value.length > 0\n }, addressList.value.length > 0 ? {\n E: _f(addressList.value, (address, k0, i0) => {\n return _e({\n a: _t(address.recipient_name),\n b: _t(address.phone),\n c: address.is_default\n }, address.is_default ? {} : {}, {\n d: _t(getFullAddress(address)),\n e: selectedAddress.value !== null && selectedAddress.value.id === address.id\n }, selectedAddress.value !== null && selectedAddress.value.id === address.id ? {} : {}, {\n f: address.id,\n g: _o($event => { return handleSelectAddress(address); }, address.id)\n });\n })\n } : {}) : {}, {\n F: isLoggedIn.value == false && addressList.value.length > 0\n }, isLoggedIn.value == false && addressList.value.length > 0 ? {\n G: _f(addressList.value, (address, k0, i0) => {\n return _e({\n a: _t(address.recipient_name),\n b: _t(address.phone),\n c: address.is_default\n }, address.is_default ? {} : {}, {\n d: _t(getFullAddress(address)),\n e: selectedAddress.value != null && selectedAddress.value.id === address.id\n }, selectedAddress.value != null && selectedAddress.value.id === address.id ? {} : {}, {\n f: address.id,\n g: _o($event => { return handleSelectAddress(address); }, address.id)\n });\n })\n } : {}, {\n H: isLoggedIn.value && addressList.value.length === 0\n }, isLoggedIn.value && addressList.value.length === 0 ? {} : {}, {\n I: _o(handleAddNewAddress),\n J: _o(() => { }),\n K: _o($event => { return showAddressPopup.value = false; })\n }) : {}, {\n L: showNewAddressForm.value\n }, showNewAddressForm.value ? _e({\n M: _o(cancelNewAddress),\n N: newAddress.value.recipient_name,\n O: _o($event => { return newAddress.value.recipient_name = $event.detail.value; }),\n P: newAddress.value.phone,\n Q: _o($event => { return newAddress.value.phone = $event.detail.value; }),\n R: _o([$event => { return smartAddressInput.value = $event.detail.value; }, parseSmartAddress]),\n S: smartAddressInput.value,\n T: newAddress.value.province,\n U: _o($event => { return newAddress.value.province = $event.detail.value; }),\n V: newAddress.value.city,\n W: _o($event => { return newAddress.value.city = $event.detail.value; }),\n X: newAddress.value.district,\n Y: _o($event => { return newAddress.value.district = $event.detail.value; }),\n Z: newAddress.value.detail,\n aa: _o($event => { return newAddress.value.detail = $event.detail.value; }),\n ab: newAddress.value.is_default\n }, newAddress.value.is_default ? {} : {}, {\n ac: _n({\n checked: newAddress.value.is_default\n }),\n ad: _o($event => { return newAddress.value.is_default = !newAddress.value.is_default; }),\n ae: _o(saveNewAddress),\n af: _o(() => { }),\n ag: _o(cancelNewAddress)\n }) : {}, {\n ah: showSaveConfirm.value\n }, showSaveConfirm.value ? {\n ai: _o($event => { return handleSaveConfirm(false); }),\n aj: _o($event => { return handleSaveConfirm(true); })\n } : {}, {\n ak: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/checkout.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.$on","uni.$off","uni.removeStorageSync","uni.setStorageSync","uni.getStorageSync","uni.showToast","uni.$emit","uni.navigateTo","uni.showLoading","uni.hideLoading","uni.redirectTo","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"checkout.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"checkout.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/584d0a4ab2cbe02c111c62f3070a00354afc79fe b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/584d0a4ab2cbe02c111c62f3070a00354afc79fe deleted file mode 100644 index 048408f9..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/584d0a4ab2cbe02c111c62f3070a00354afc79fe +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { DeliveryTaskType } from '@/types/mall-types';\n// 响应式数据\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'tasks',\n setup(__props) {\n const taskList = ref([]);\n const currentPage = ref(1);\n const pageSize = ref(10);\n const hasMore = ref(true);\n const currentType = ref('all'); // 默认全部任务\n // 生命周期\n onMounted(() => {\n // 获取 URL 参数\n const query = uni.getLaunchOptionsSync().query;\n currentType.value = query.type || 'all';\n loadTasks();\n });\n // 方法\n function loadTasks() {\n // 模拟加载任务数据\n const mockTasks = [\n new UTSJSONObject({\n id: 'task001',\n order_id: 'ORD20250122001',\n driver_id: 'driver001',\n pickup_address: new UTSJSONObject({ address: '深圳市南山区科技园南区深圳湾科技生态园' }),\n delivery_address: new UTSJSONObject({ address: '深圳市南山区蛇口海上世界广场' }),\n distance: 8.2,\n estimated_time: 25,\n delivery_fee: 12.0,\n status: 3,\n pickup_time: '2025-01-22 14:30:00',\n delivered_time: null,\n delivery_code: 'DEL001',\n remark: '联系电话: 13800138000',\n created_at: '2025-01-22 14:00:00',\n updated_at: '2025-01-22 14:35:00'\n }),\n new UTSJSONObject({\n id: 'task002',\n order_id: 'ORD20250122002',\n driver_id: 'driver001',\n pickup_address: new UTSJSONObject({ address: '深圳市南山区海岸城' }),\n delivery_address: new UTSJSONObject({ address: '深圳市南山区欢乐颂广场' }),\n distance: 3.5,\n estimated_time: 12,\n delivery_fee: 8.0,\n status: 4,\n pickup_time: '2025-01-22 13:00:00',\n delivered_time: '2025-01-22 13:15:00',\n delivery_code: 'DEL002',\n remark: '',\n created_at: '2025-01-22 12:45:00',\n updated_at: '2025-01-22 13:15:00'\n }),\n new UTSJSONObject({\n id: 'task003',\n order_id: 'ORD20250122003',\n driver_id: 'driver001',\n pickup_address: new UTSJSONObject({ address: '深圳市南山区世界之窗' }),\n delivery_address: new UTSJSONObject({ address: '深圳市南山区欢乐谷' }),\n distance: 2.1,\n estimated_time: 8,\n delivery_fee: 6.5,\n status: 4,\n pickup_time: '2025-01-22 11:30:00',\n delivered_time: '2025-01-22 11:40:00',\n delivery_code: 'DEL003',\n remark: '',\n created_at: '2025-01-22 11:15:00',\n updated_at: '2025-01-22 11:40:00'\n }),\n new UTSJSONObject({\n id: 'task004',\n order_id: 'ORD20250122004',\n driver_id: 'driver001',\n pickup_address: new UTSJSONObject({ address: '深圳市南山区万象天地' }),\n delivery_address: new UTSJSONObject({ address: '深圳市南山区深圳湾体育中心' }),\n distance: 5.8,\n estimated_time: 18,\n delivery_fee: 9.5,\n status: 4,\n pickup_time: '2025-01-22 10:00:00',\n delivered_time: '2025-01-22 10:20:00',\n delivery_code: 'DEL004',\n remark: '',\n created_at: '2025-01-22 09:45:00',\n updated_at: '2025-01-22 10:20:00'\n }),\n new UTSJSONObject({\n id: 'task005',\n order_id: 'ORD20250122005',\n driver_id: 'driver001',\n pickup_address: new UTSJSONObject({ address: '深圳市南山区科技园' }),\n delivery_address: new UTSJSONObject({ address: '深圳市南山区腾讯大厦' }),\n distance: 1.5,\n estimated_time: 5,\n delivery_fee: 5.0,\n status: 1,\n pickup_time: null,\n delivered_time: null,\n delivery_code: 'DEL005',\n remark: '',\n created_at: '2025-01-22 09:00:00',\n updated_at: '2025-01-22 09:00:00'\n })\n ];\n // 根据 type 筛选数据\n let filteredTasks = mockTasks;\n if (currentType.value === 'pending') {\n filteredTasks = mockTasks.filter(task => { return task.status === 1; });\n }\n else if (currentType.value === 'ongoing') {\n filteredTasks = mockTasks.filter(task => { return task.status === 3; });\n }\n else if (currentType.value === 'completed') {\n filteredTasks = mockTasks.filter(task => { return task.status === 4; });\n }\n // 分页\n const start = (currentPage.value - 1) * pageSize.value;\n const end = start + pageSize.value;\n const newTasks = filteredTasks.slice(start, end);\n taskList.value.push(...newTasks);\n hasMore.value = newTasks.length === pageSize.value;\n }\n function loadMoreTasks() {\n currentPage.value++;\n loadTasks();\n }\n function getTitle() {\n switch (currentType.value) {\n case 'all':\n return '全部任务';\n case 'pending':\n return '待接单';\n case 'ongoing':\n return '配送中';\n case 'completed':\n return '已完成';\n default:\n return '任务列表';\n }\n }\n function getTaskStatusText(status) {\n const statusMap = new UTSJSONObject({\n 1: '待接单',\n 2: '已接单',\n 3: '配送中',\n 4: '已完成',\n 5: '已取消'\n });\n return statusMap[status] || '未知';\n }\n function getAddressText(address) {\n return address['address'] || '地址信息';\n }\n function contactCustomer(task) {\n uni.showActionSheet({\n itemList: ['拨打电话', '发送短信'],\n success: (res) => {\n if (res.tapIndex === 0) {\n uni.makePhoneCall({\n phoneNumber: '13800138000'\n });\n }\n }\n });\n }\n function viewTaskDetail(taskId) {\n uni.navigateTo({\n url: `/pages/mall/delivery/task-detail?id=${taskId}`\n });\n }\n // 返回上一页\n function goBackToHome() {\n uni.reLaunch({\n url: '/pages/mall/delivery/profile'\n });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(goBackToHome),\n b: _t(getTitle()),\n c: taskList.value.length > 0\n }, taskList.value.length > 0 ? {\n d: _f(taskList.value, (task, k0, i0) => {\n return {\n a: _t(task.order_id.slice(-6)),\n b: _t(getTaskStatusText(task.status)),\n c: _n('status-' + task.status),\n d: _t(getAddressText(task.pickup_address)),\n e: _t(task.distance),\n f: _o($event => { return contactCustomer(task); }, task.id),\n g: _o($event => { return viewTaskDetail(task.id); }, task.id),\n h: task.id,\n i: _o($event => { return viewTaskDetail(task.id); }, task.id)\n };\n })\n } : {\n e: _t(getTitle())\n }, {\n f: hasMore.value\n }, hasMore.value ? {\n g: _o(loadMoreTasks)\n } : {}, {\n h: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/tasks.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/types/mall-types.uts"],"uniExtApis":["uni.getLaunchOptionsSync","uni.makePhoneCall","uni.showActionSheet","uni.navigateTo","uni.reLaunch"],"map":"{\"version\":3,\"file\":\"tasks.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"tasks.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/58af02fe019fcba26a97cda02e1e78259b96e11a b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/58af02fe019fcba26a97cda02e1e78259b96e11a deleted file mode 100644 index 02932abe..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/58af02fe019fcba26a97cda02e1e78259b96e11a +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, gei as _gei, p as _p } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n /**\n * 管理后台入口页面\n *\n * 架构说明:\n * 1. 此页面是 pages.json 中配置的主入口\n * 2. 直接加载 AdminLayout 组件作为容器\n * 3. AdminLayout 内部使用 CRMEB 路由系统管理所有子页面\n * 4. 不需要额外的业务逻辑,保持简洁\n *\n * 路由流程:\n * pages.json → homePage/index.uvue → AdminLayout → 内部路由切换\n */\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _gei(_ctx, ''),\n b: _p({\n id: _gei(_ctx, '')\n })\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/homePage/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAC3D,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAE1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,OAAO;IACf,KAAK,CAAC,OAAO;QAEf;;;;;;;;;;;WAWG;QAEH,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC;oBACJ,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;iBACnB,CAAC;aACH,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5cdf0e7392b80335567816b03d1ac13e229d8466 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5cdf0e7392b80335567816b03d1ac13e229d8466 deleted file mode 100644 index e1b71a6c..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5cdf0e7392b80335567816b03d1ac13e229d8466 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'apply-refund',\n setup(__props) {\n const orderId = ref('');\n const orderItemId = ref(''); // Optional, if refunding specific item\n const refundType = ref(1); // 1: Only Refund, 2: Return & Refund\n const refundReason = ref('');\n const refundAmount = ref('');\n const description = ref('');\n const maxAmount = ref(0);\n const deliveryFee = ref(0);\n const submitting = ref(false);\n const reasonList = [\n '多拍/错拍/不想要',\n '快递一直未送达',\n '未按约定时间发货',\n '快递无记录',\n '空包裹/少货/错发',\n '质量问题',\n '其他'\n ];\n const loadOrderInfo = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const orderData = yield supabaseService.getOrderDetail(orderId.value);\n if (orderData != null) {\n // Cast to UTSJSONObject to access properties safely\n const order = orderData;\n const total = (_a = order.getNumber('total_amount')) !== null && _a !== void 0 ? _a : 0;\n const shipping = (_b = order.getNumber('shipping_fee')) !== null && _b !== void 0 ? _b : 0;\n maxAmount.value = total;\n deliveryFee.value = shipping;\n refundAmount.value = maxAmount.value.toString();\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/apply-refund.uvue:98', '加载订单信息失败', err);\n uni.showToast({\n title: '加载订单失败',\n icon: 'none'\n });\n }\n }); };\n onLoad((options = null) => {\n if (options['orderId'] != null) {\n orderId.value = options['orderId'];\n loadOrderInfo();\n }\n });\n const handleTypeChange = (e = null) => {\n // Use bracket notation to access detail property safely on 'any' type in UTS\n // The structure is e -> detail -> value\n // We need to cast e to UTSJSONObject first if we want to use bracket notation,\n // OR we can use JSON.parse/stringify trick if simple casting fails,\n // BUT the most standard way for UTS 'any' which is actually a Map/JSONObject at runtime:\n const target = e;\n const detail = target['detail'];\n const value = detail['value'];\n refundType.value = parseInt(value);\n };\n const handleReasonChange = (e = null) => {\n // Use bracket notation to access detail property safely on 'any' type in UTS\n const target = e;\n const detail = target['detail'];\n const value = detail['value'];\n const index = value;\n refundReason.value = reasonList[index];\n };\n const submitRefund = () => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:136', '=== 提交退款 ===');\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:137', 'refundReason:', refundReason.value);\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:138', 'refundAmount:', refundAmount.value);\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:139', 'maxAmount:', maxAmount.value);\n if (refundReason.value == '') {\n uni.showToast({ title: '请选择退款原因', icon: 'none' });\n return Promise.resolve(null);\n }\n const amount = parseFloat(refundAmount.value);\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:147', '解析后金额:', amount);\n if (isNaN(amount) || amount <= 0 || amount > maxAmount.value) {\n uni.showToast({ title: '请输入有效的退款金额', icon: 'none' });\n return Promise.resolve(null);\n }\n submitting.value = true;\n uni.showLoading({ title: '提交中...' });\n try {\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:158', '调用 createRefund, orderId:', orderId.value);\n const result = yield supabaseService.createRefund(new UTSJSONObject({\n order_id: orderId.value,\n refund_type: refundType.value,\n refund_reason: refundReason.value,\n refund_amount: amount,\n description: description.value\n }));\n uni.__f__('log', 'at pages/mall/consumer/apply-refund.uvue:167', 'createRefund 结果:', UTS.JSON.stringify(result));\n uni.hideLoading();\n if (result.success) {\n uni.showToast({ title: '提交成功', icon: 'success' });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n else {\n uni.showToast({ title: result.message, icon: 'none' });\n }\n }\n catch (err) {\n uni.__f__('error', 'at pages/mall/consumer/apply-refund.uvue:180', '提交退款失败', err);\n uni.hideLoading();\n uni.showToast({ title: '提交异常', icon: 'none' });\n }\n finally {\n submitting.value = false;\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: refundType.value === 1,\n b: refundType.value === 2,\n c: _o(handleTypeChange),\n d: refundReason.value\n }, refundReason.value ? {\n e: _t(refundReason.value)\n } : {}, {\n f: _o(handleReasonChange),\n g: reasonList,\n h: `最多可退 ¥${maxAmount.value}`,\n i: refundAmount.value,\n j: _o($event => { return refundAmount.value = $event.detail.value; }),\n k: _t(maxAmount.value),\n l: _t(deliveryFee.value),\n m: description.value,\n n: _o($event => { return description.value = $event.detail.value; }),\n o: _o(submitRefund),\n p: submitting.value,\n q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/apply-refund.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showLoading","uni.hideLoading","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"apply-refund.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"apply-refund.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5db3d7c6ae77191beff2a7fc73483bd4573f73c9 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5db3d7c6ae77191beff2a7fc73483bd4573f73c9 deleted file mode 100644 index f630b23f..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5db3d7c6ae77191beff2a7fc73483bd4573f73c9 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { MerchantType, ProductType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass CouponType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n discount_value: { type: Number, optional: false },\n min_order_amount: { type: Number, optional: false },\n name: { type: String, optional: false },\n start_time: { type: String, optional: false },\n end_time: { type: String, optional: false },\n status: { type: Number, optional: false }\n };\n },\n name: \"CouponType\"\n };\n }\n constructor(options, metadata = CouponType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.discount_value = this.__props__.discount_value;\n this.min_order_amount = this.__props__.min_order_amount;\n this.name = this.__props__.name;\n this.start_time = this.__props__.start_time;\n this.end_time = this.__props__.end_time;\n this.status = this.__props__.status;\n delete this.__props__;\n }\n}\n// 分页相关状态\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'shop-detail',\n setup(__props) {\n const currentPage = ref(1);\n const pageSize = ref(6); // 默认显示六个\n const hasMore = ref(true);\n const isLoading = ref(false);\n const currentMerchantId = ref('');\n const merchant = ref(new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }));\n const products = ref([]);\n const isFollowed = ref(false);\n const coupons = ref([]); // 新增优惠券\n const isRefresherTriggered = ref(false);\n // 函数定义必须在 onMounted 之前\n // checkFollowStatus 必须在 loadShopData 之前定义\n const checkFollowStatus = (shopId) => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId != null && userId != '') {\n try {\n // @ts-ignore\n isFollowed.value = yield supabaseService.isShopFollowed(shopId, userId);\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:126', 'isShopFollowed method not found');\n }\n }\n }); };\n const loadShopData = (id) => { return __awaiter(this, void 0, void 0, function* () {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:132', 'Loading shop data for:', id);\n const shop = yield supabaseService.getShopByMerchantId(id);\n if (shop != null) {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:136', 'Shop loaded successfully:', shop.shop_name);\n // 使用显式类型转换\n const merchantData = new MerchantType({\n id: shop.id,\n user_id: shop.merchant_id,\n shop_name: shop.shop_name,\n shop_logo: shop.shop_logo != null ? shop.shop_logo : '/static/default-shop.png',\n shop_banner: shop.shop_banner != null ? shop.shop_banner : '/static/default-banner.png',\n shop_description: shop.description != null ? shop.description : '',\n contact_name: shop.contact_name != null ? shop.contact_name : '',\n contact_phone: shop.contact_phone != null ? shop.contact_phone : '',\n shop_status: 1,\n rating: shop.rating_avg != null ? shop.rating_avg : 5.0,\n total_sales: shop.total_sales != null ? shop.total_sales : 0,\n created_at: shop.created_at != null ? shop.created_at : ''\n });\n merchant.value = merchantData;\n // 检查关注状态\n checkFollowStatus(shop.id);\n }\n else {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:157', 'Shop data is null for ID:', id);\n uni.showToast({\n title: '未找到店铺信息',\n icon: 'none',\n duration: 3000\n });\n }\n }); };\n const loadCoupons = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j;\n try {\n // @ts-ignore\n const res = yield supabaseService.fetchShopCoupons(id);\n if (res != null && Array.isArray(res)) {\n const couponList = [];\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n couponList.push(new CouponType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n discount_value: (_b = itemObj.getNumber('discount_value')) !== null && _b !== void 0 ? _b : 0,\n min_order_amount: (_c = itemObj.getNumber('min_order_amount')) !== null && _c !== void 0 ? _c : 0,\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '',\n start_time: (_g = itemObj.getString('start_time')) !== null && _g !== void 0 ? _g : '',\n end_time: (_h = itemObj.getString('end_time')) !== null && _h !== void 0 ? _h : '',\n status: (_j = itemObj.getNumber('status')) !== null && _j !== void 0 ? _j : 1\n }));\n }\n coupons.value = couponList;\n }\n }\n catch (e1) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:188', 'SupabaseService.fetchShopCoupons method missing. Please rebuild project.');\n }\n }); };\n const loadShopProducts = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (isLoading.value)\n return Promise.resolve(null);\n isLoading.value = true;\n // 保存当前使用的MerchantID,供下拉/触底使用\n if (currentPage.value === 1) {\n currentMerchantId.value = id;\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:201', `shop-detail loadShopProducts for: ${id} page: ${currentPage.value}`);\n let res = new UTSJSONObject({});\n try {\n // @ts-ignore\n res = yield supabaseService.getProductsByMerchantId(id, currentPage.value, pageSize.value);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:208', 'getProductsByMerchantId missing or error', e);\n isLoading.value = false;\n uni.stopPullDownRefresh();\n return Promise.resolve(null);\n }\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:214', `shop-detail getProductsByMerchantId result count: ${(_a = res.data) === null || _a === void 0 ? null : _a.length}`);\n const rawList = res.data;\n if (rawList != null && Array.isArray(rawList) && rawList.length > 0) {\n // 过滤掉已经在列表中的重复商品 (防止分页计算错误导致的重复)\n const newItems = [];\n const existingIds = products.value.map(p => { return p.id; });\n const list = rawList.map((item = null) => {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m;\n // 解析图片数组\n let images = [];\n // 转换为 UTSJSONObject 安全访问属性\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n // 1. 尝试 main_image_url\n const mainImageUrl = itemObj.getString('main_image_url');\n if (mainImageUrl != null && mainImageUrl != '') {\n images.push(mainImageUrl);\n }\n // 2. 尝试 image_urls (如果 main 为空,或者需要展示多图)\n const imageUrls = itemObj.get('image_urls');\n if (imageUrls != null) {\n try {\n if (Array.isArray(imageUrls)) {\n const arr = imageUrls;\n if (arr.length > 0) {\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else if (typeof imageUrls === 'string') {\n const rawUrl = imageUrls;\n if (rawUrl.startsWith('[')) {\n const parsed = UTS.JSON.parse(rawUrl);\n if (Array.isArray(parsed)) {\n const arr = parsed;\n if (images.length == 0)\n images.push(...arr);\n }\n }\n else {\n if (images.indexOf(rawUrl) === -1)\n images.push(rawUrl);\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:257', '解析图片数组失败:', e);\n }\n }\n // 没有任何图片则使用默认\n if (images.length === 0) {\n images.push('/static/default-product.png');\n }\n return new ProductType({\n id: (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '',\n merchant_id: (_b = itemObj.getString('merchant_id')) !== null && _b !== void 0 ? _b : '',\n category_id: (_c = itemObj.getString('category_id')) !== null && _c !== void 0 ? _c : '',\n name: (_d = itemObj.getString('name')) !== null && _d !== void 0 ? _d : '未知商品',\n description: (_g = itemObj.getString('description')) !== null && _g !== void 0 ? _g : '',\n images: images,\n price: (_h = itemObj.getNumber('base_price')) !== null && _h !== void 0 ? _h : 0,\n original_price: (_j = itemObj.getNumber('market_price')) !== null && _j !== void 0 ? _j : 0,\n stock: (_k = itemObj.getNumber('total_stock')) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = itemObj.getNumber('sale_count')) !== null && _l !== void 0 ? _l : 0,\n status: 1,\n created_at: (_m = itemObj.getString('created_at')) !== null && _m !== void 0 ? _m : ''\n });\n });\n // 只有在 currentPage > 1 时才需要过滤,currentPage = 1 时直接替换\n if (currentPage.value === 1) {\n products.value = list;\n }\n else {\n for (let i = 0; i < list.length; i++) {\n if (existingIds.indexOf(list[i].id) === -1) {\n newItems.push(list[i]);\n }\n }\n if (newItems.length > 0) {\n products.value.push(...newItems);\n }\n }\n currentPage.value++;\n hasMore.value = list.length >= pageSize.value;\n }\n else {\n hasMore.value = false;\n }\n isLoading.value = false;\n uni.stopPullDownRefresh();\n }); };\n onMounted(() => {\n const pages = getCurrentPages();\n const options = pages[pages.length - 1].options;\n // Search传递的是 id (shop_id), 其他地方可能传递 merchantId\n const mId = options.get('merchantId');\n const pId = options.get('id');\n const paramId = (mId != null ? mId : pId);\n if (paramId != null && paramId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:315', 'Page mounted with params:', paramId);\n // 优先加载店铺信息\n loadShopData(paramId).then(() => {\n // 加载成功后,使用确定的 merchant_id 来查询关联数据 (商品/优惠券通常是关联在 merchant_id 上的)\n const realMerchantId = merchant.value.user_id; // 这里 user_id 映射了 DB 中的 merchant_id\n if (realMerchantId != null && realMerchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:321', 'Chain loading products for Corrected Merchant ID:', realMerchantId);\n currentMerchantId.value = realMerchantId; // 更新当前上下文ID\n loadShopProducts(realMerchantId);\n loadCoupons(realMerchantId);\n }\n else {\n // 防御性策略:如果没能获取 merchant_id,尝试用传入 ID\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:327', 'Shop load failed or id empty, fallback using original id:', paramId);\n currentMerchantId.value = paramId;\n loadShopProducts(paramId);\n loadCoupons(paramId);\n }\n });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:334', 'No ID passed to shop-detail');\n uni.showToast({ title: '参数错误', icon: 'error' });\n }\n });\n const onRefresherRefresh = () => {\n isRefresherTriggered.value = true;\n currentPage.value = 1;\n hasMore.value = true;\n isLoading.value = false;\n if (currentMerchantId.value != '') {\n const id = currentMerchantId.value;\n Promise.all([\n loadShopData(id),\n loadCoupons(id),\n loadShopProducts(id)\n ]).then(() => {\n isRefresherTriggered.value = false;\n });\n }\n else {\n setTimeout(() => {\n isRefresherTriggered.value = false;\n }, 500);\n }\n };\n const onScrollToLower = () => {\n if (hasMore.value && !isLoading.value && currentMerchantId.value != '') {\n uni.__f__('log', 'at pages/mall/consumer/shop-detail.uvue:363', 'Scroll to lower, loading more...');\n loadShopProducts(currentMerchantId.value);\n }\n };\n onPullDownRefresh(() => {\n onRefresherRefresh();\n });\n onReachBottom(() => {\n onScrollToLower();\n });\n const claimCoupon = (coupon = null) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n // 转换为 UTSJSONObject 安全访问属性\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(coupon));\n const couponId = (_a = couponObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n let success = false;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e1) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/shop-detail.uvue:397', 'claimCoupon not found');\n }\n }\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败', icon: 'none' });\n }\n }); };\n const toggleFollow = () => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == null) {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n // 这里的 merchant.value.id 假如是 ML_SHOPS.id\n const shopId = merchant.value.id;\n if (shopId == null || shopId == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n // @ts-ignore\n if (isFollowed.value) {\n // 取消关注\n // @ts-ignore\n const success = yield supabaseService.unfollowShop(shopId, userId);\n if (success) {\n isFollowed.value = false;\n uni.showToast({ title: '已取消关注', icon: 'none' });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n else {\n // 关注\n // @ts-ignore\n const success = yield supabaseService.followShop(shopId, userId);\n if (success) {\n isFollowed.value = true;\n uni.showToast({ title: '关注成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '关注失败', icon: 'none' });\n }\n }\n uni.hideLoading();\n }); };\n const contactService = () => {\n const currentUser = supabaseService.getCurrentUserId();\n if (currentUser == null) {\n uni.navigateTo({ url: '/pages/user/login' });\n return null;\n }\n if (merchant.value.user_id != null && merchant.value.user_id != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchant.value.user_id}&merchantName=${encodeURIComponent(merchant.value.shop_name)}`\n });\n }\n else {\n uni.showToast({ title: '无法联系商家', icon: 'none' });\n }\n };\n const addToCart = (product) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n uni.showLoading({ title: '检查商品...' });\n try {\n // 使用店铺的 merchant_id\n const merchantId = (_a = merchant.value.user_id) !== null && _a !== void 0 ? _a : '';\n // 检查商品是否有SKU\n const skus = yield supabaseService.getProductSkus(product.id);\n uni.hideLoading();\n if (skus.length > 0) {\n // 有规格,提示并跳转到商品详情页选择规格\n uni.showToast({\n title: '请选择规格',\n icon: 'none'\n });\n setTimeout(() => {\n uni.navigateTo({\n url: '/pages/mall/consumer/product-detail?id=' + product.id\n });\n }, 500);\n }\n else {\n // 无规格,直接加入购物车\n uni.showLoading({ title: '添加中...' });\n const success = yield supabaseService.addToCart(product.id, 1, '', merchantId);\n uni.hideLoading();\n if (success) {\n uni.showToast({\n title: '已添加到购物车',\n icon: 'success'\n });\n }\n else {\n uni.showToast({\n title: '添加失败,请重试',\n icon: 'none'\n });\n }\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/shop-detail.uvue:504', '添加到购物车异常', e);\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n }\n }); };\n const goToProduct = (id) => {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?productId=${id}`\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: merchant.value.shop_banner != '' ? merchant.value.shop_banner : '/static/default-banner.png',\n b: merchant.value.shop_logo != '' ? merchant.value.shop_logo : '/static/default-shop.png',\n c: _t(merchant.value.shop_name),\n d: _t(merchant.value.rating.toFixed(1)),\n e: _t(merchant.value.total_sales),\n f: _o(contactService),\n g: _t(isFollowed.value ? '已关注' : '+ 关注'),\n h: isFollowed.value ? 1 : '',\n i: _o(toggleFollow),\n j: _t(merchant.value.shop_description != '' ? merchant.value.shop_description : '这家店很懒,什么都没写~'),\n k: coupons.value.length > 0\n }, coupons.value.length > 0 ? {\n l: _f(coupons.value, (coupon, k0, i0) => {\n return _e({\n a: _t(coupon.discount_value),\n b: coupon.min_order_amount > 0\n }, coupon.min_order_amount > 0 ? {\n c: _t(coupon.min_order_amount)\n } : {}, {\n d: coupon.id,\n e: _o($event => { return claimCoupon(coupon); }, coupon.id)\n });\n })\n } : {}, {\n m: _f(products.value, (product, k0, i0) => {\n return {\n a: product.images[0],\n b: _t(product.name),\n c: _t(product.price),\n d: _o($event => { return addToCart(product); }, product.id),\n e: product.id,\n f: _o($event => { return goToProduct(product.id); }, product.id)\n };\n }),\n n: _o(onScrollToLower),\n o: _o(onRefresherRefresh),\n p: isRefresherTriggered.value,\n q: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/shop-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.stopPullDownRefresh","uni.navigateTo","uni.showLoading","uni.hideLoading"],"map":"{\"version\":3,\"file\":\"shop-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"shop-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5e978c6cc53f4ea2a3d6c43a2f5d0b2d5331055a b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5e978c6cc53f4ea2a3d6c43a2f5d0b2d5331055a deleted file mode 100644 index 8ff26215..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/5e978c6cc53f4ea2a3d6c43a2f5d0b2d5331055a +++ /dev/null @@ -1 +0,0 @@ -{"code":"import {} from \"vue\";\nimport { setIsLoggedIn, setUserProfile, getCurrentUser } from \"@/utils/store\";\nimport supa from \"@/components/supadb/aksupainstance\";\nexport default defineComponent({\n onLaunch: function () {\n uni.__f__('log', 'at App.uvue:7', 'App Launch');\n // 检查是否已有有效会话,有则恢复登录状态\n this.checkExistingSession();\n },\n onShow: function () {\n uni.__f__('log', 'at App.uvue:13', 'App Show');\n },\n onHide: function () {\n uni.__f__('log', 'at App.uvue:16', 'App Hide');\n },\n methods: {\n checkExistingSession: function () {\n // 检查是否已有有效会话\n const session = supa.getSession();\n if (session.user != null) {\n uni.__f__('log', 'at App.uvue:23', '已有有效会话,恢复登录状态');\n setIsLoggedIn(true);\n uni.reLaunch({ url: '/pages/mall/consumer/index' });\n return null;\n }\n // 检查本地存储的登录状态\n const savedUserId = uni.getStorageSync('user_id');\n if (savedUserId != null && savedUserId != '') {\n uni.__f__('log', 'at App.uvue:32', '本地存储中有用户ID,尝试恢复会话');\n getCurrentUser().then((profile = null) => {\n if (profile != null) {\n uni.__f__('log', 'at App.uvue:35', '会话恢复成功');\n setIsLoggedIn(true);\n uni.reLaunch({ url: '/pages/mall/consumer/index' });\n }\n }).catch(() => {\n uni.__f__('log', 'at App.uvue:40', '会话恢复失败,需要重新登录');\n });\n }\n // 没有有效会话,显示登录页\n uni.__f__('log', 'at App.uvue:45', '无有效会话,显示登录页');\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/App.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.reLaunch","uni.getStorageSync"],"map":"{\"version\":3,\"file\":\"App.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"App.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE;OACjD,IAAI;AAEX,+BAAe;IACd,QAAQ,EAAE;QACT,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,eAAe,EAAC,YAAY,CAAC,CAAA;QAE7C,sBAAsB;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC5B,CAAC;IACD,MAAM,EAAE;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM,EAAE;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,EAAE;QACR,oBAAoB,EAAE;YACrB,aAAa;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YACjC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;gBACzB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,eAAe,CAAC,CAAA;gBACjD,aAAa,CAAC,IAAI,CAAC,CAAA;gBACnB,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAA;gBACnD,YAAM;aACN;YAED,cAAc;YACd,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;YACjD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,EAAE,EAAE;gBAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,mBAAmB,CAAC,CAAA;gBACrD,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,OAAA;oBAC7B,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,QAAQ,CAAC,CAAA;wBAC1C,aAAa,CAAC,IAAI,CAAC,CAAA;wBACnB,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAA;qBACnD;gBACF,CAAC,CAAC,CAAC,KAAK,CAAC;oBACR,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,eAAe,CAAC,CAAA;gBAClD,CAAC,CAAC,CAAA;aACF;YAED,eAAe;YACf,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,aAAa,CAAC,CAAA;QAChD,CAAC;KACD;CACD,EAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/60c7d1d3dba7b596207f6d890c19d594e3ffc870 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/60c7d1d3dba7b596207f6d890c19d594e3ffc870 deleted file mode 100644 index 2ddac18d..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/60c7d1d3dba7b596207f6d890c19d594e3ffc870 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { ProductType, MerchantType, ProductSkuType, CouponTemplateType, FootprintItemType } from \"@/types/mall-types\";\nimport { supabaseService } from \"@/utils/supabaseService\";\nexport default defineComponent({\n data() {\n return {\n product: new ProductType({\n id: '',\n merchant_id: '',\n category_id: '',\n name: '',\n description: '',\n images: [],\n price: 0,\n original_price: 0,\n stock: 0,\n sales: 0,\n status: 0,\n created_at: ''\n }),\n merchant: new MerchantType({\n id: '',\n user_id: '',\n shop_name: '',\n shop_logo: '',\n shop_banner: '',\n shop_description: '',\n contact_name: '',\n contact_phone: '',\n shop_status: 0,\n rating: 0,\n total_sales: 0,\n created_at: ''\n }),\n productSkus: [],\n currentImageIndex: 0,\n showSpec: false,\n selectedSkuId: '',\n selectedSpec: '',\n quantity: 1,\n isFavorite: false,\n showParams: false,\n // 新增: 优惠券相关\n coupons: [],\n showCoupons: false,\n // 分享相关\n showShare: false,\n // 会员价相关\n memberPrice: 0,\n memberDiscount: 0,\n memberLevelName: ''\n };\n },\n onLoad(options = null) {\n var _a;\n const opts = options;\n const productId = ((_a = opts['productId']) !== null && _a !== void 0 ? _a : opts['id']);\n const priceStr = opts['price'];\n const productPrice = priceStr != null ? parseFloat(priceStr) : null;\n const originalPriceStr = opts['originalPrice'];\n const productOriginalPrice = originalPriceStr != null ? parseFloat(originalPriceStr) : null;\n let productName = opts['name'];\n if (productName != null) {\n try {\n const decodedName = decodeURIComponent(productName);\n productName = decodedName;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:412', 'ProductName decode failed, using original:', productName);\n }\n }\n let productImage = opts['image'];\n if (productImage != null) {\n try {\n const decodedImage = decodeURIComponent(productImage);\n productImage = decodedImage;\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:422', 'ProductImage decode failed, using original:', productImage);\n }\n }\n if (productId != null) {\n this.loadProductDetail(productId, new UTSJSONObject({\n price: productPrice,\n originalPrice: productOriginalPrice,\n name: productName,\n image: productImage\n }));\n this.checkFavoriteStatus(productId);\n this.saveFootprint(productId);\n if (productName != null) {\n uni.setNavigationBarTitle({\n title: productName\n });\n }\n }\n },\n computed: {\n displayPrice() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.price;\n }\n return this.product.price;\n }\n },\n methods: {\n saveFootprint(productId) {\n // 调用后端API记录足迹\n supabaseService.addFootprint(productId).then(success => {\n if (success === true) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:457', '足迹已同步到服务器');\n }\n });\n const footprintData = uni.getStorageSync('footprints');\n let footprints = [];\n if (footprintData != null && footprintData !== '') {\n try {\n footprints = UTS.JSON.parse(footprintData);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:468', 'Failed to parse footprints', e);\n }\n }\n // 移除已存在的相同商品(为了将其移到最新位置)\n const productIdStr = productId;\n footprints = footprints.filter(function (item = null) {\n var _a;\n const itemObj = item;\n const itemId = (_a = itemObj.getString('id')) !== null && _a !== void 0 ? _a : '';\n return itemId != productIdStr;\n });\n // 添加到头部\n const productImage = this.product.images.length > 0 ? this.product.images[0] : '/static/default-product.png';\n footprints.unshift(new FootprintItemType({\n id: this.product.id,\n name: this.product.name,\n price: this.product.price,\n original_price: this.product.original_price,\n image: productImage,\n sales: this.product.sales,\n shopId: this.merchant.id,\n shopName: this.merchant.shop_name,\n viewTime: Date.now()\n }));\n // 限制数量,例如最近50条\n if (footprints.length > 50) {\n footprints = footprints.slice(0, 50);\n }\n uni.setStorageSync('footprints', UTS.JSON.stringify(footprints));\n },\n loadProductDetail(productId, options = new UTSJSONObject({})) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;\n return __awaiter(this, void 0, void 0, function* () {\n uni.showLoading({ title: '加载中...' });\n try {\n const dbProduct = yield supabaseService.getProductById(productId);\n if (dbProduct != null) {\n // 使用 getProductById 返回的 Product 对象\n this.product = new ProductType({\n id: dbProduct.id,\n merchant_id: (_a = dbProduct.merchant_id) !== null && _a !== void 0 ? _a : '',\n category_id: (_b = dbProduct.category_id) !== null && _b !== void 0 ? _b : '',\n name: dbProduct.name,\n description: (_c = dbProduct.description) !== null && _c !== void 0 ? _c : '',\n images: (_d = dbProduct.images) !== null && _d !== void 0 ? _d : [],\n price: (_f = (_e = dbProduct.price) !== null && _e !== void 0 ? _e : dbProduct.base_price) !== null && _f !== void 0 ? _f : 0,\n original_price: (_h = (_g = dbProduct.original_price) !== null && _g !== void 0 ? _g : dbProduct.market_price) !== null && _h !== void 0 ? _h : 0,\n stock: (_k = (_j = dbProduct.stock) !== null && _j !== void 0 ? _j : dbProduct.total_stock) !== null && _k !== void 0 ? _k : 0,\n sales: (_l = dbProduct.sale_count) !== null && _l !== void 0 ? _l : 0,\n status: (_m = dbProduct.status) !== null && _m !== void 0 ? _m : 1,\n created_at: (_o = dbProduct.created_at) !== null && _o !== void 0 ? _o : new Date().toISOString(),\n specification: (_p = dbProduct.specification) !== null && _p !== void 0 ? _p : null,\n usage: (_q = dbProduct.usage) !== null && _q !== void 0 ? _q : null,\n side_effects: (_r = dbProduct.side_effects) !== null && _r !== void 0 ? _r : null,\n precautions: (_s = dbProduct.precautions) !== null && _s !== void 0 ? _s : null,\n expiry_date: (_t = dbProduct.expiry_date) !== null && _t !== void 0 ? _t : null,\n storage_conditions: (_u = dbProduct.storage_conditions) !== null && _u !== void 0 ? _u : null,\n approval_number: (_v = dbProduct.approval_number) !== null && _v !== void 0 ? _v : null,\n tags: []\n }\n // 解析 tags\n );\n // 解析 tags\n if (dbProduct.tags != null && dbProduct.tags != '') {\n try {\n const parsedTags = UTS.JSON.parse(dbProduct.tags);\n if (Array.isArray(parsedTags)) {\n this.product.tags = parsedTags.map((t = null) => { return t; });\n }\n }\n catch (e) { }\n }\n // Handle Images - 使用 main_image_url 作为后备\n if (this.product.images.length == 0 && dbProduct.main_image_url != null && dbProduct.main_image_url != '') {\n this.product.images.push(dbProduct.main_image_url);\n }\n // Final fallback\n if (this.product.images.length == 0) {\n this.product.images.push('/static/default-product.png');\n }\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:550', '商品详情加载成功:', this.product.name, '库存:', this.product.stock, '销量:', this.product.sales);\n }\n else {\n throw new Error('No product found');\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:555', 'Failed to load product detail:', e);\n // Fallback to options if available\n this.product.id = productId;\n const opts = options;\n const nameOpt = opts['name'];\n this.product.name = (nameOpt != null && nameOpt != '') ? (_w = decodeURIComponent(nameOpt)) !== null && _w !== void 0 ? _w : '未知商品' : '未知商品';\n // price 可能是 string 或 number 类型\n const priceOpt = opts['price'];\n if (typeof priceOpt == 'number') {\n this.product.price = priceOpt;\n }\n else if (typeof priceOpt == 'string') {\n this.product.price = parseFloat(priceOpt);\n }\n else {\n this.product.price = 0;\n }\n const imageOpt = opts['image'];\n const decodedImage = (imageOpt != null && imageOpt != '') ? decodeURIComponent(imageOpt) : null;\n this.product.images = decodedImage != null ? [decodedImage] : ['/static/default-product.png'];\n }\n // Load Merchant and SKUs\n if (this.product.merchant_id != null && this.product.merchant_id !== '') {\n yield this.loadMerchantInfo(this.product.merchant_id);\n // 加载优惠券\n this.loadCoupons();\n }\n if (this.product.id != null && this.product.id !== '') {\n this.loadProductSkus(this.product.id);\n }\n // 加载会员价\n this.loadMemberPrice();\n uni.hideLoading();\n });\n },\n loadMerchantInfo(merchantId) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return __awaiter(this, void 0, void 0, function* () {\n let realMerchantLoaded = false;\n if (merchantId.includes('-') || !merchantId.startsWith('merchant_')) {\n try {\n const shopResponse = yield supabaseService.getShopByMerchantId(merchantId);\n if (shopResponse != null) {\n // 直接使用 Shop 对象的属性\n this.merchant = new MerchantType({\n id: shopResponse.id,\n user_id: shopResponse.merchant_id,\n shop_name: shopResponse.shop_name,\n shop_logo: (_a = shopResponse.shop_logo) !== null && _a !== void 0 ? _a : '/static/default-shop.png',\n shop_banner: (_b = shopResponse.shop_banner) !== null && _b !== void 0 ? _b : '/static/default-banner.png',\n shop_description: (_c = shopResponse.description) !== null && _c !== void 0 ? _c : '',\n contact_name: (_d = shopResponse.contact_name) !== null && _d !== void 0 ? _d : '店主',\n contact_phone: (_e = shopResponse.contact_phone) !== null && _e !== void 0 ? _e : '',\n shop_status: 1,\n rating: (_f = shopResponse.rating_avg) !== null && _f !== void 0 ? _f : 5.0,\n total_sales: (_g = shopResponse.total_sales) !== null && _g !== void 0 ? _g : 0,\n created_at: (_h = shopResponse.created_at) !== null && _h !== void 0 ? _h : new Date().toISOString()\n });\n realMerchantLoaded = true;\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:615', '店铺信息加载成功:', this.merchant.shop_name);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:618', 'Load shop failed', e);\n }\n }\n if (!realMerchantLoaded) {\n let charSum = 0;\n for (let i = 0; i < merchantId.length; i++) {\n const charCode = merchantId.charCodeAt(i);\n if (charCode != null) {\n charSum += charCode;\n }\n }\n const merchantIndex = Math.abs(charSum) % 5;\n const shopNames = ['优质好店', '品牌直营店', '官方旗舰店', '专卖店', '精品小店'];\n this.merchant = new MerchantType({\n id: merchantId,\n user_id: 'user_mock_' + merchantIndex,\n shop_name: shopNames[merchantIndex],\n shop_logo: '/static/shop-logo.png',\n shop_banner: '/static/shop-banner.png',\n shop_description: '优质服务,正品保障',\n contact_name: '店主',\n contact_phone: '',\n shop_status: 1,\n rating: 4.8,\n total_sales: 999,\n created_at: '2023-01-01'\n });\n }\n });\n },\n loadProductSkus(productId) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n // 尝试从数据库加载SKU\n try {\n const skus = yield supabaseService.getProductSkus(productId);\n if (skus.length > 0) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:655', '加载到商品SKU:', skus.length);\n this.productSkus = [];\n for (let i = 0; i < skus.length; i++) {\n const skuData = skus[i];\n // 解析 specifications JSON 字符串\n let specs = new UTSJSONObject({});\n if (skuData.specifications != null && skuData.specifications != '') {\n try {\n specs = UTS.JSON.parse(skuData.specifications);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:665', '解析SKU规格失败', e);\n }\n }\n const sku = new ProductSkuType({\n id: skuData.id,\n product_id: skuData.product_id,\n sku_code: skuData.sku_code,\n specifications: specs,\n price: skuData.price,\n stock: (_a = skuData.stock) !== null && _a !== void 0 ? _a : 0,\n image_url: (_b = skuData.image_url) !== null && _b !== void 0 ? _b : '',\n status: (_c = skuData.status) !== null && _c !== void 0 ? _c : 1\n });\n this.productSkus.push(sku);\n }\n return Promise.resolve(null);\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:683', 'Fetch SKUs error', e);\n }\n });\n },\n loadMemberPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const memberInfo = yield supabaseService.getUserMemberInfo();\n const levelNameRaw = memberInfo.get('level_name');\n const discountRaw = memberInfo.get('discount');\n if (levelNameRaw != null) {\n this.memberLevelName = levelNameRaw;\n }\n if (discountRaw != null) {\n const discountRate = discountRaw;\n // discountRate 是折扣率,如 0.9 表示 9 折\n // 会员价 = 原价 × 折扣率\n if (discountRate > 0 && discountRate < 1) {\n // 计算折扣显示值:0.9 -> 9 折\n this.memberDiscount = Math.round(discountRate * 10) / 10 * 10;\n // 计算会员价:原价 × 折扣率\n this.memberPrice = Math.round(this.product.price * discountRate * 100) / 100;\n }\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:709', '获取会员信息失败,可能未登录或非会员:', e);\n }\n });\n },\n // 新增:加载优惠券\n loadCoupons() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.merchant_id == '')\n return Promise.resolve(null);\n // Safety check for cached service definition\n try {\n const couponData = yield supabaseService.fetchShopCoupons(this.product.merchant_id);\n // 解析优惠券数据\n this.coupons = [];\n if (couponData != null && couponData.length > 0) {\n for (let i = 0; i < couponData.length; i++) {\n const item = couponData[i];\n const couponObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const getSafeString = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return '';\n if (typeof val == 'string')\n return val;\n return '';\n };\n const getSafeNumber = (key) => {\n const val = couponObj.get(key);\n if (val == null)\n return 0;\n if (typeof val == 'number')\n return val;\n return 0;\n };\n const coupon = new CouponTemplateType({\n id: getSafeString('id'),\n name: getSafeString('name'),\n description: getSafeString('description'),\n coupon_type: getSafeNumber('coupon_type'),\n discount_type: getSafeNumber('discount_type'),\n discount_value: getSafeNumber('discount_value'),\n min_order_amount: getSafeNumber('min_order_amount'),\n max_discount_amount: getSafeNumber('max_discount_amount'),\n total_quantity: getSafeNumber('total_quantity'),\n per_user_limit: getSafeNumber('per_user_limit'),\n usage_limit: getSafeNumber('usage_limit'),\n merchant_id: getSafeString('merchant_id'),\n category_ids: [],\n product_ids: [],\n user_type_limit: getSafeNumber('user_type_limit'),\n start_time: getSafeString('start_time'),\n end_time: getSafeString('end_time'),\n status: getSafeNumber('status'),\n created_at: getSafeString('created_at')\n });\n this.coupons.push(coupon);\n }\n }\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:765', 'SupabaseService coupon methods not available:', e);\n }\n });\n },\n // 新增:联系客服(商家)\n contactMerchant() {\n var _a, _b;\n if (supabaseService.getCurrentUserId() == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return null;\n }\n // Navigate to chat\n const merchId = (_b = (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.merchant.id) !== null && _b !== void 0 ? _b : this.product.merchant_id;\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchId}&merchantName=${this.merchant.shop_name}`\n });\n },\n // 新增:优惠券弹窗\n showCouponModal() {\n this.showCoupons = true;\n },\n hideCouponModal() {\n this.showCoupons = false;\n },\n // 新增:领取优惠券\n claimCoupon(coupon) {\n return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '领取中' });\n let success = false;\n const couponId = coupon.id;\n try {\n // @ts-ignore\n success = yield supabaseService.claimShopCoupon(couponId, userId);\n }\n catch (e) {\n try {\n // @ts-ignore\n success = yield supabaseService.claimCoupon(couponId, userId);\n }\n catch (e2) {\n uni.__f__('warn', 'at pages/mall/consumer/product-detail.uvue:809', 'claimCoupon method missing:', e2);\n }\n }\n });\n },\n getSelectedSkuImage() {\n if (this.selectedSkuId != '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null && sku.image_url != null && sku.image_url != '') {\n return sku.image_url;\n }\n }\n return this.product.images.length > 0 ? this.product.images[0] : '/static/default-product.png';\n },\n getSelectedSkuPrice() {\n if (this.selectedSkuId != '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.price.toFixed(2);\n }\n return this.product.price.toFixed(2);\n },\n getSelectedSkuStock() {\n if (this.selectedSkuId != '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n this.showSpecModal();\n if (sku != null)\n return sku.stock;\n }\n return this.product.stock;\n if (success === true) {\n uni.showToast({ title: '领取成功', icon: 'success' });\n }\n else {\n uni.showToast({ title: '领取失败或已领取', icon: 'none' });\n }\n },\n formatDate(dateStr) {\n if (dateStr == '')\n return '';\n const date = new Date(dateStr);\n return `${date.getFullYear()}.${date.getMonth() + 1}.${date.getDate()}`;\n },\n onSwiperChange(e = null) {\n const eventObj = e;\n const detail = eventObj['detail'];\n this.currentImageIndex = detail['current'];\n },\n showSpecModal() {\n this.showSpec = true;\n },\n hideSpecModal() {\n this.showSpec = false;\n },\n selectSku(sku) {\n this.selectedSkuId = sku.id;\n this.selectedSpec = this.getSkuSpecText(sku);\n },\n getSkuSpecText(sku) {\n var _a;\n if (sku.specifications != null) {\n const specs = sku.specifications;\n let specStr = '';\n // 在 UTS 中遍历 UTSJSONObject 的推荐方式\n for (const key in specs) {\n const val = specs[key];\n if (val != null) {\n specStr += (specStr === '' ? '' : ' ') + val.toString();\n }\n }\n if (specStr !== '') {\n return specStr;\n }\n }\n return (_a = sku.sku_code) !== null && _a !== void 0 ? _a : '';\n },\n addToCart() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n if (!this.showSpec) {\n this.showSpecModal();\n }\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '添加中...' });\n try {\n const success = yield supabaseService.addToCart(this.product.id, this.quantity, this.selectedSkuId, this.product.merchant_id);\n uni.hideLoading();\n if (success === true) {\n uni.showToast({ title: '已添加到购物车', icon: 'success' });\n this.hideSpecModal();\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:913', '添加购物车返回失败');\n uni.showToast({ title: '添加失败,请登录重试', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:918', '添加购物车异常', e);\n uni.showToast({ title: '添加异常', icon: 'none' });\n }\n });\n },\n buyNow() {\n var _a;\n if (this.productSkus.length > 0 && (this.selectedSkuId == null || this.selectedSkuId === '')) {\n if (!this.showSpec) {\n this.showSpecModal();\n }\n return null;\n }\n const sku = (this.selectedSkuId != null && this.selectedSkuId !== '') ? UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; }) : null;\n const selectedItem = new UTSJSONObject({\n id: this.selectedSkuId,\n product_id: this.product.id,\n sku_id: this.selectedSkuId,\n product_name: this.product.name,\n product_image: (sku != null && sku.image_url != null) ? sku.image_url : this.product.images[0],\n sku_specifications: sku != null ? sku.specifications : new UTSJSONObject({}),\n price: parseFloat((sku != null ? sku.price : this.product.price).toString()).toFixed(2),\n quantity: this.quantity,\n shop_id: this.merchant.id,\n shop_name: this.merchant.shop_name,\n merchant_id: (_a = this.merchant.user_id) !== null && _a !== void 0 ? _a : this.product.merchant_id\n });\n uni.setStorageSync('checkout_type', 'buy_now');\n uni.setStorageSync('checkout_items', UTS.JSON.stringify([selectedItem]));\n uni.navigateTo({\n url: '/pages/mall/consumer/checkout'\n });\n },\n checkFavoriteStatus(id) {\n this.checkFavorite(id);\n },\n checkFavorite(id) {\n return __awaiter(this, void 0, void 0, function* () {\n const isFav = yield supabaseService.checkFavorite(id);\n this.isFavorite = isFav;\n });\n },\n toggleFavorite() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.product.id == '')\n return Promise.resolve(null);\n uni.showLoading({ title: '处理中' });\n try {\n const wasFavorite = this.isFavorite;\n const isNowFavorite = yield supabaseService.toggleFavorite(this.product.id);\n uni.hideLoading();\n if (isNowFavorite !== wasFavorite) {\n this.isFavorite = isNowFavorite;\n uni.showToast({\n title: isNowFavorite ? '收藏成功' : '已取消收藏',\n icon: 'success'\n });\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n this.checkFavoriteStatus(this.product.id);\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:985', 'Toggle favorite failed', e);\n uni.showToast({ title: '操作异常', icon: 'none' });\n }\n });\n },\n goToHome() {\n uni.switchTab({ url: '/pages/mall/consumer/home' });\n },\n goToShop() {\n var _a, _b;\n const merchantId = (_b = (_a = this.merchant.id) !== null && _a !== void 0 ? _a : this.product.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.__f__('log', 'at pages/mall/consumer/product-detail.uvue:997', '进店点击,merchantId:', merchantId);\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({\n title: '店铺信息加载中',\n icon: 'none'\n });\n }\n },\n goToCart() {\n uni.switchTab({ url: '/pages/main/cart' });\n },\n decreaseQuantity() {\n if (this.quantity > 1) {\n this.quantity--;\n }\n },\n increaseQuantity() {\n const maxQuantity = this.getMaxQuantity();\n if (this.quantity < maxQuantity) {\n this.quantity++;\n }\n else {\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n },\n validateQuantity() {\n let num = this.quantity;\n const maxQuantity = this.getMaxQuantity();\n if (num < 1)\n num = 1;\n else if (num > maxQuantity) {\n num = maxQuantity;\n uni.showToast({ title: `最多只能购买${maxQuantity}件`, icon: 'none' });\n }\n this.quantity = num;\n },\n getMaxQuantity() {\n if (this.selectedSkuId != null && this.selectedSkuId !== '') {\n const sku = UTS.arrayFind(this.productSkus, s => { return s.id === this.selectedSkuId; });\n if (sku != null)\n return sku.stock;\n }\n return this.product.stock;\n },\n getAvailableStock() {\n return this.getMaxQuantity();\n },\n previewImage(index) {\n uni.previewImage({\n current: index,\n urls: this.product.images\n });\n },\n showParamsModal() {\n this.showParams = true;\n },\n hideParamsModal() {\n this.showParams = false;\n },\n getParamsSummary() {\n let summary = '';\n if (this.product.specification != null && this.product.specification != '')\n summary += '规格 ';\n if (this.product.expiry_date != null && this.product.expiry_date != '')\n summary += '有效期 ';\n if (this.product.approval_number != null && this.product.approval_number != '')\n summary += '批准文号 ';\n const finalSummary = summary.trim();\n return finalSummary != '' ? finalSummary : '查看详情';\n },\n // 分享相关方法\n showSharePopup() {\n this.showShare = true;\n },\n hideSharePopup() {\n this.showShare = false;\n },\n shareToWechat() {\n var _a;\n this.hideSharePopup();\n // 小程序分享\n uni.share(new UTSJSONObject({\n provider: 'weixin',\n scene: 'WXSceneSession',\n type: 0,\n title: this.product.name,\n summary: `¥${this.product.price} - ${(_a = this.product.description) !== null && _a !== void 0 ? _a : '精选好物'}`,\n imageUrl: this.product.images.length > 0 ? this.product.images[0] : '',\n success: () => {\n uni.showToast({ title: '分享成功', icon: 'success' });\n },\n fail: (err) => {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:1099', '分享失败', err);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }));\n },\n shareToMoments() {\n var _a;\n this.hideSharePopup();\n uni.share(new UTSJSONObject({\n provider: 'weixin',\n scene: 'WXSceneTimeline',\n type: 0,\n title: this.product.name,\n summary: `¥${this.product.price} - ${(_a = this.product.description) !== null && _a !== void 0 ? _a : '精选好物'}`,\n imageUrl: this.product.images.length > 0 ? this.product.images[0] : '',\n success: () => {\n uni.showToast({ title: '分享成功', icon: 'success' });\n },\n fail: (err) => {\n uni.__f__('error', 'at pages/mall/consumer/product-detail.uvue:1123', '分享失败', err);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }));\n },\n shareToQQ() {\n this.hideSharePopup();\n uni.showToast({ title: 'QQ分享开发中', icon: 'none' });\n },\n copyLink() {\n this.hideSharePopup();\n const shareLink = `pages/mall/consumer/product-detail?id=${this.product.id}`;\n uni.setClipboardData({\n data: shareLink,\n success: () => {\n uni.showToast({ title: '链接已复制', icon: 'success' });\n }\n });\n },\n saveImage() {\n this.hideSharePopup();\n if (this.product.images.length > 0) {\n uni.showLoading({ title: '保存中...' });\n uni.downloadFile({\n url: this.product.images[0],\n success: (res) => {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: () => {\n uni.hideLoading();\n uni.showToast({ title: '已保存到相册', icon: 'success' });\n },\n fail: () => {\n uni.hideLoading();\n uni.showToast({ title: '保存失败', icon: 'none' });\n }\n });\n },\n fail: () => {\n uni.hideLoading();\n uni.showToast({ title: '下载失败', icon: 'none' });\n }\n });\n }\n else {\n uni.showToast({ title: '暂无图片可保存', icon: 'none' });\n }\n },\n generatePoster() {\n this.hideSharePopup();\n uni.showToast({ title: '海报生成功能开发中', icon: 'none' });\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/product-detail.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.setNavigationBarTitle","uni.getStorageSync","uni.setStorageSync","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.showToast","uni.switchTab","uni.previewImage","uni.share","uni.setClipboardData","uni.saveImageToPhotosAlbum","uni.downloadFile"],"map":"{\"version\":3,\"file\":\"product-detail.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-detail.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6447fad94d3f09177ad7ab60fb962238baec015c b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6447fad94d3f09177ad7ab60fb962238baec015c deleted file mode 100644 index 53ddf8aa..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6447fad94d3f09177ad7ab60fb962238baec015c +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, unref as _unref, gei as _gei, p as _p } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport { ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'user-management',\n setup(__props) {\n const currentPage = ref('user-list'); // 默认\n onLoad((opts) => {\n const action = opts['action'] || '';\n if (action == 'group')\n currentPage.value = 'user-group';\n else if (action == 'tag')\n currentPage.value = 'user-tag';\n else if (action == 'level')\n currentPage.value = 'user-level';\n else if (action == 'config')\n currentPage.value = 'user-config';\n else\n currentPage.value = 'user-list';\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _t(_ctx.params),\n b: _gei(_ctx, ''),\n c: _p({\n currentPage: currentPage.value,\n id: _gei(_ctx, '')\n })\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/user-management.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"user-management.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"user-management.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AACzG,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAG1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,iBAAiB;IACzB,KAAK,CAAC,OAAO;QAEf,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA,CAAC,KAAK;QAE1C,MAAM,CAAC,CAAC,IAA4B;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;YACnC,IAAI,MAAM,IAAI,OAAO;gBAAE,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;iBAClD,IAAI,MAAM,IAAI,KAAK;gBAAE,WAAW,CAAC,KAAK,GAAG,UAAU,CAAA;iBACnD,IAAI,MAAM,IAAI,OAAO;gBAAE,WAAW,CAAC,KAAK,GAAG,YAAY,CAAA;iBACvD,IAAI,MAAM,IAAI,QAAQ;gBAAE,WAAW,CAAC,KAAK,GAAG,aAAa,CAAA;;gBACzD,WAAW,CAAC,KAAK,GAAG,WAAW,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC;oBACJ,WAAW,EAAE,WAAW,CAAC,KAAK;oBAC9B,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;iBACnB,CAAC;aACH,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/64e1753bb0419724aaf1c4fbd327146428bce7a1 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/64e1753bb0419724aaf1c4fbd327146428bce7a1 deleted file mode 100644 index 409602a3..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/64e1753bb0419724aaf1c4fbd327146428bce7a1 +++ /dev/null @@ -1 +0,0 @@ -{"code":"// types/analytics/common.uts\nexport class TimePeriod extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n value: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"TimePeriod\"\n };\n }\n constructor(options, metadata = TimePeriod.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.value = this.__props__.value;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nexport class ChartType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n value: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"ChartType\"\n };\n }\n constructor(options, metadata = ChartType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.value = this.__props__.value;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nexport class Metric extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n key: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"Metric\"\n };\n }\n constructor(options, metadata = Metric.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.key = this.__props__.key;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/types/analytics/common.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"common.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"common.uts\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B;AAE7B,MAAM,OAAM,UAAU;;;;;;;;;;;;;;;;;;;;;AACtB,MAAM,OAAM,SAAS;;;;;;;;;;;;;;;;;;;;;AACrB,MAAM,OAAM,MAAM\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/65e04d28a3b6b01ecc0e583e403040d4c5224ded b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/65e04d28a3b6b01ecc0e583e403040d4c5224ded deleted file mode 100644 index 38f23b93..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/65e04d28a3b6b01ecc0e583e403040d4c5224ded +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"AnalyticsDateRangePicker\":{\"name\":\"_unref(AnalyticsDateRangePicker)\",\"type\":\"setup\"},\"AnalyticsComboChart\":{\"name\":\"_unref(AnalyticsComboChart)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + _unref(AnalyticsDateRangePicker) + _unref(AnalyticsComboChart) + EChartsView)();\n}\nimport { computed, reactive, ref, watch } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { ensureAnalyticsLogin } from \"@/services/analytics/authGuard\";\nimport AnalyticsComboChart from '@/components/analytics/AnalyticsComboChart.uvue';\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport AnalyticsDateRangePicker from '@/components/analytics/AnalyticsDateRangePicker.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport { fetchDashboardRealtime, fetchDashboardTrend, fetchDashboardUserSegments, fetchDashboardTrafficSources, fetchDashboardTopProducts, fetchDashboardTopMerchants } from \"@/services/analytics/dashboardService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { TrendData, SegmentItem, TrafficItem, TopProductItem, TopMerchantItem } from \"@/types/analytics/dashboard\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const lastUpdateTime = ref('');\n const selectedPeriod = ref('7d');\n const customRangeEnabled = ref(false);\n const selectedStartDate = ref('');\n const selectedEndDate = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/index');\n const loading = ref(true);\n const autoRefreshEnabled = ref(true);\n const autoRefreshInterval = ref(60000);\n const autoRefreshTimer = ref(null);\n const timePeriods = ref([\n { value: '7d', label: '7天' },\n { value: '30d', label: '30天' },\n { value: '90d', label: '90天' },\n { value: '1y', label: '1年' }\n ]);\n const realTime = reactive(new UTSJSONObject({\n gmv: 0,\n gmv_growth: 0,\n orders: 0,\n order_growth: 0,\n online_users: 0,\n conversion_rate: 0,\n conversion_growth: 0\n }));\n const trend = reactive(new TrendData({ x: [], gmv: [], orders: [] }));\n const userSegments = reactive([]);\n const trafficSources = reactive([]);\n const topProducts = reactive([]);\n const topMerchants = reactive([]);\n const trafficBarOption = ref(new UTSJSONObject({}));\n const userSegmentOption = ref(new UTSJSONObject({}));\n const selectedPeriodText = computed(() => {\n const p = UTS.arrayFind(timePeriods.value, (t) => { return t.value === selectedPeriod.value; });\n return p ? p.label : '7天';\n });\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function startAutoRefresh() {\n stopAutoRefresh();\n autoRefreshTimer.value = setInterval(() => {\n refreshAll();\n }, autoRefreshInterval.value);\n }\n function stopAutoRefresh() {\n if (autoRefreshTimer.value != null) {\n clearInterval(autoRefreshTimer.value);\n autoRefreshTimer.value = null;\n }\n }\n function loadTrend() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const data = yield fetchDashboardTrend(selectedPeriod.value, range);\n trend.x = data.x;\n trend.gmv = data.gmv;\n trend.orders = data.orders;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:367', '❌ loadTrend failed', e);\n trend.x = [];\n trend.gmv = [];\n trend.orders = [];\n }\n });\n }\n function loadRealTime() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const data = yield fetchDashboardRealtime();\n realTime.gmv = data.gmv;\n realTime.gmv_growth = data.gmv_growth;\n realTime.orders = data.orders;\n realTime.order_growth = data.order_growth;\n realTime.online_users = data.online_users;\n realTime.conversion_rate = data.conversion_rate;\n realTime.conversion_growth = data.conversion_growth;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:385', '❌ loadRealTime failed', e);\n }\n });\n }\n function loadTopProducts() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const list = yield fetchDashboardTopProducts(selectedPeriod.value, 50, range);\n topProducts.splice(0, topProducts.length, ...list);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:397', '❌ loadTopProducts failed', e);\n topProducts.splice(0, topProducts.length);\n }\n });\n }\n function loadTopMerchants() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const list = yield fetchDashboardTopMerchants(selectedPeriod.value, 50, range);\n topMerchants.splice(0, topMerchants.length, ...list);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:410', '❌ loadTopMerchants failed', e);\n topMerchants.splice(0, topMerchants.length);\n }\n });\n }\n function loadUserSegments() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const list = yield fetchDashboardUserSegments(selectedPeriod.value, range);\n userSegments.splice(0, userSegments.length, ...list);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:423', '❌ loadUserSegments failed', e);\n userSegments.splice(0, userSegments.length);\n }\n });\n }\n function loadTrafficSources() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const list = yield fetchDashboardTrafficSources(selectedPeriod.value, range);\n trafficSources.splice(0, trafficSources.length, ...list);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:436', '❌ loadTrafficSources failed', e);\n trafficSources.splice(0, trafficSources.length);\n }\n });\n }\n function toPlainObject(obj = null) {\n if (obj == null)\n return null;\n if (typeof obj !== 'object')\n return obj;\n if (Array.isArray(obj)) {\n return obj.map((item = null) => { return toPlainObject(item); });\n }\n const plain = new UTSJSONObject({});\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const value = obj[key];\n if (typeof value === 'function' || key.startsWith('_') || key === 'toJSON') {\n continue;\n }\n if (value != null && typeof value === 'object' && !Array.isArray(value)) {\n let isSimple = true;\n for (const k in value) {\n if (typeof value[k] === 'object' && value[k] !== null) {\n isSimple = false;\n break;\n }\n }\n plain[key] = isSimple ? new UTSJSONObject(Object.assign({}, value)) : toPlainObject(value);\n }\n else {\n plain[key] = value;\n }\n }\n }\n return plain;\n }\n function buildChartOptions() {\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:472', '📊 buildChartOptions: 开始构建图表配置');\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:473', '📊 buildChartOptions: trafficSources', trafficSources, '数量:', trafficSources.length);\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:474', '📊 buildChartOptions: userSegments', userSegments, '数量:', userSegments.length);\n if (!trafficSources || !userSegments) {\n uni.__f__('warn', 'at pages/mall/analytics/index.uvue:477', '⚠️ buildChartOptions: 数据未准备好,跳过构建');\n return null;\n }\n const trafficX = trafficSources.map((it) => { return String(it.name); });\n const trafficY = trafficSources.map((it) => {\n const n = Number(it.value);\n return isFinite(n) ? n : 0;\n });\n const total = trafficY.reduce((sum, v) => { return sum + v; }, 0);\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:488', '📊 buildChartOptions: 流量来源数据', new UTSJSONObject({ trafficX, trafficY, total, count: trafficX.length }));\n if (trafficX.length === 0 || total === 0) {\n uni.__f__('warn', 'at pages/mall/analytics/index.uvue:491', '⚠️ buildChartOptions: 流量来源数据为空,使用占位数据');\n trafficBarOption.value = toPlainObject(new UTSJSONObject({\n grid: new UTSJSONObject({ left: 80, right: 24, top: 18, bottom: 18 }),\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n xAxis: new UTSJSONObject({ type: 'value', axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }) }),\n yAxis: new UTSJSONObject({ type: 'category', data: ['暂无数据'], axisTick: new UTSJSONObject({ show: false }) }),\n series: [new UTSJSONObject({ type: 'bar', data: [0], barWidth: 14 })]\n }));\n }\n else {\n const newTrafficOption = new UTSJSONObject({\n grid: new UTSJSONObject({ left: 80, right: 24, top: 18, bottom: 18 }),\n tooltip: new UTSJSONObject({\n trigger: 'axis',\n axisPointer: new UTSJSONObject({ type: 'shadow' }),\n formatter: (params = null) => {\n const p = params[0];\n const percent = total > 0 ? ((p.value / total) * 100).toFixed(1) : '0';\n return `${p.name}
${p.marker} ${p.value} 次 (${percent}%)`;\n }\n }),\n xAxis: new UTSJSONObject({\n type: 'value',\n axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.55)' }),\n splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: 'rgba(0,0,0,0.06)' }) })\n }),\n yAxis: new UTSJSONObject({\n type: 'category',\n data: trafficX,\n axisTick: new UTSJSONObject({ show: false }),\n axisLabel: new UTSJSONObject({ color: 'rgba(0,0,0,0.65)' })\n }),\n series: [\n new UTSJSONObject({\n type: 'bar',\n data: trafficY,\n barWidth: 14,\n itemStyle: new UTSJSONObject({\n borderRadius: 6,\n color: new UTSJSONObject({\n type: 'linear',\n x: 0,\n y: 0,\n x2: 1,\n y2: 0,\n colorStops: [\n new UTSJSONObject({ offset: 0, color: '#FF4D4F' }),\n new UTSJSONObject({ offset: 1, color: '#FF7A45' })\n ]\n })\n }),\n animationDuration: 800,\n animationEasing: 'cubicOut'\n })\n ]\n });\n trafficBarOption.value = toPlainObject(newTrafficOption);\n }\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:550', '📊 buildChartOptions: trafficBarOption 构建完成', trafficBarOption.value);\n const segmentData = userSegments.map((it) => { return (new UTSJSONObject({\n name: String(it.name),\n value: (() => {\n const n = Number(it.value);\n return isFinite(n) ? n : 0;\n })()\n })); });\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:560', '📊 buildChartOptions: 用户结构数据', segmentData, '数量:', segmentData.length);\n if (segmentData.length === 0) {\n uni.__f__('warn', 'at pages/mall/analytics/index.uvue:563', '⚠️ buildChartOptions: 用户结构数据为空,使用占位数据');\n userSegmentOption.value = toPlainObject(new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'item' }),\n legend: new UTSJSONObject({ left: 0, bottom: 0, itemWidth: 10, itemHeight: 10, textStyle: new UTSJSONObject({ fontSize: 12 }) }),\n color: ['#95A5A6'],\n series: [\n new UTSJSONObject({\n type: 'pie',\n radius: ['55%', '75%'],\n center: ['50%', '45%'],\n data: [new UTSJSONObject({ name: '暂无数据', value: 1 })],\n label: new UTSJSONObject({ show: true, formatter: '{b}\\n{d}%' })\n })\n ]\n }));\n }\n else {\n const colors = ['#FF6B6B', '#4ECDC4', '#A8E6CF', '#FFD93D', '#95A5A6'];\n const newUserSegmentOption = new UTSJSONObject({\n tooltip: new UTSJSONObject({\n trigger: 'item',\n formatter: '{b}: {c} ({d}%)'\n }),\n legend: new UTSJSONObject({\n left: 0,\n bottom: 0,\n itemWidth: 10,\n itemHeight: 10,\n textStyle: new UTSJSONObject({ fontSize: 12 })\n }),\n color: colors,\n series: [\n new UTSJSONObject({\n type: 'pie',\n radius: ['55%', '75%'],\n center: ['50%', '45%'],\n avoidLabelOverlap: true,\n label: new UTSJSONObject({ show: true, formatter: '{b}\\n{d}%' }),\n labelLine: new UTSJSONObject({ length: 10, length2: 10 }),\n data: segmentData,\n animationType: 'scale',\n animationEasing: 'elasticOut',\n animationDelay: (idx) => { return idx * 100; }\n })\n ]\n });\n userSegmentOption.value = toPlainObject(newUserSegmentOption);\n }\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:613', '📊 buildChartOptions: userSegmentOption 构建完成', userSegmentOption.value);\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:614', '📊 buildChartOptions: 图表配置构建完成');\n }\n watch(trafficSources, (newVal) => {\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:620', '👀 watch trafficSources 触发', newVal);\n if (newVal && newVal.length > 0) {\n buildChartOptions();\n }\n }, { deep: true, immediate: false });\n watch(userSegments, (newVal) => {\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:631', '👀 watch userSegments 触发', newVal);\n if (newVal && newVal.length > 0) {\n buildChartOptions();\n }\n }, { deep: true, immediate: false });\n function refreshAll() {\n return __awaiter(this, void 0, void 0, function* () {\n updateTime();\n try {\n yield Promise.all([\n loadRealTime(),\n loadTrend(),\n loadUserSegments(),\n loadTrafficSources(),\n loadTopProducts(),\n loadTopMerchants()\n ]);\n updateTime();\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:652', '✅ refreshAll: 所有数据加载完成,开始构建图表');\n yield new Promise((resolve) => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => {\n buildChartOptions();\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:658', '✅ refreshAll: 图表配置构建完成');\n resolve(null);\n });\n }\n else {\n setTimeout(() => {\n buildChartOptions();\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:664', '✅ refreshAll: 图表配置构建完成');\n resolve(null);\n }, 50);\n }\n });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:670', '❌ refreshAll failed', e);\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '数据加载失败' })), icon: 'none' });\n }\n });\n }\n function initDashboard() {\n return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n yield refreshAll();\n if (autoRefreshEnabled.value) {\n startAutoRefresh();\n }\n }\n finally {\n loading.value = false;\n }\n });\n }\n function selectPeriod(p) {\n return __awaiter(this, void 0, void 0, function* () {\n selectedPeriod.value = p;\n // 切换到快捷时间段时,退出自定义范围\n customRangeEnabled.value = false;\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n loading.value = true;\n try {\n yield Promise.all([loadTrend(), loadUserSegments(), loadTrafficSources(), loadTopProducts(), loadTopMerchants()]);\n yield new Promise((resolve) => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => {\n buildChartOptions();\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:703', '✅ selectPeriod: 图表配置构建完成');\n resolve(null);\n });\n }\n else {\n setTimeout(() => {\n buildChartOptions();\n uni.__f__('log', 'at pages/mall/analytics/index.uvue:709', '✅ selectPeriod: 图表配置构建完成');\n resolve(null);\n }, 50);\n }\n });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/index.uvue:715', '❌ selectPeriod failed', e);\n }\n finally {\n loading.value = false;\n }\n });\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索功能', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知中心', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏模式', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端预览', icon: 'none' });\n }\n function handleDropdown() {\n uni.showActionSheet({\n itemList: ['crmeb demo', '切换项目', '项目设置'],\n success: () => { }\n });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n function toggleCustomRange() {\n customRangeEnabled.value = !customRangeEnabled.value;\n }\n function onDateRangeApply(range) {\n selectedStartDate.value = range.start;\n selectedEndDate.value = range.end;\n customRangeEnabled.value = true;\n refreshAll();\n }\n function onDateRangeClear() {\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n customRangeEnabled.value = false;\n refreshAll();\n }\n function formatInt(n) {\n const v = isFinite(n) ? Math.round(n) : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toString();\n }\n function formatMoney(n) {\n const v = isFinite(n) ? n : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toFixed(0);\n }\n function formatPct(n) {\n const v = isFinite(n) ? n : 0;\n const sign = v > 0 ? '+' : '';\n return `${sign}${v.toFixed(1)}%`;\n }\n function goToSalesReport() {\n uni.navigateTo({ url: '/pages/mall/analytics/sales-report' });\n }\n function goToUserAnalysis() {\n uni.navigateTo({ url: '/pages/mall/analytics/user-analysis' });\n }\n function goToProductInsights() {\n uni.navigateTo({ url: '/pages/mall/analytics/product-insights' });\n }\n function goToMarketTrends() {\n uni.navigateTo({ url: '/pages/mall/analytics/market-trends' });\n }\n function goToCouponAnalysis() {\n uni.navigateTo({ url: '/pages/mall/analytics/coupon-analysis' });\n }\n function goToCustomReport() {\n uni.navigateTo({ url: '/pages/mall/analytics/custom-report' });\n }\n function handleMoreAction(action) {\n showMoreMenu.value = false;\n switch (action) {\n case 'refresh':\n refreshAll();\n break;\n case 'search':\n handleSearch();\n break;\n case 'notification':\n handleNotification();\n break;\n case 'fullscreen':\n handleFullscreen();\n break;\n case 'mobile':\n handleMobile();\n break;\n case 'settings':\n handleSettings();\n break;\n }\n }\n function toggleAutoRefresh() {\n autoRefreshEnabled.value = !autoRefreshEnabled.value;\n if (autoRefreshEnabled.value) {\n startAutoRefresh();\n uni.showToast({ title: '已开启自动刷新', icon: 'success' });\n }\n else {\n stopAutoRefresh();\n uni.showToast({ title: '已关闭自动刷新', icon: 'none' });\n }\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出图片'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n onLoad(() => {\n if (!ensureAnalyticsLogin(new UTSJSONObject({ toastTitle: '请先登录后查看数据分析' })))\n return null;\n initDashboard();\n });\n onUnload(() => {\n showMoreMenu.value = false;\n stopAutoRefresh();\n });\n onShow(() => {\n if (autoRefreshEnabled.value) {\n startAutoRefresh();\n }\n });\n onHide(() => {\n stopAutoRefresh();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshAll),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '数据分析中心',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _t(formatMoney(realTime.gmv)),\n m: _t(formatPct(realTime.gmv_growth)),\n n: _n(realTime.gmv_growth >= 0 ? 'pos' : 'neg'),\n o: _o(goToSalesReport),\n p: _t(formatInt(realTime.orders)),\n q: _t(formatPct(realTime.order_growth)),\n r: _n(realTime.order_growth >= 0 ? 'pos' : 'neg'),\n s: _o(goToSalesReport),\n t: _t(formatInt(realTime.online_users)),\n v: _o(goToUserAnalysis),\n w: _t(formatPct(realTime.conversion_rate)),\n x: _t(formatPct(realTime.conversion_growth)),\n y: _n(realTime.conversion_growth >= 0 ? 'pos' : 'neg'),\n z: _o(goToSalesReport),\n A: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: selectedPeriod.value === p.value && !customRangeEnabled.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n B: customRangeEnabled.value ? 1 : '',\n C: _o(toggleCustomRange),\n D: customRangeEnabled.value\n }, customRangeEnabled.value ? {\n E: _o(onDateRangeApply),\n F: _o(onDateRangeClear),\n G: _p({\n initialStartDate: selectedStartDate.value,\n initialEndDate: selectedEndDate.value\n })\n } : {}, {\n H: _t(selectedPeriodText.value),\n I: loading.value || !trend.x || trend.x.length === 0\n }, loading.value || !trend.x || trend.x.length === 0 ? {\n J: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n K: 'trend-' + trend.x.length + '-' + trend.gmv.length,\n L: _p({\n xLabels: trend.x,\n gmv: trend.gmv,\n orders: trend.orders,\n height: 320\n })\n }, {\n M: loading.value || !userSegmentOption.value || !userSegmentOption.value.series || userSegmentOption.value.series && userSegmentOption.value.series.length === 0\n }, loading.value || !userSegmentOption.value || !userSegmentOption.value.series || userSegmentOption.value.series && userSegmentOption.value.series.length === 0 ? {\n N: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n O: 'user-segment-' + userSegments.length + '-' + (userSegmentOption.value?.series?.[0]?.data?.length || 0),\n P: _p({\n option: userSegmentOption.value\n })\n }, {\n Q: loading.value || !trafficBarOption.value || !trafficBarOption.value.series || trafficBarOption.value.series.length === 0\n }, loading.value || !trafficBarOption.value || !trafficBarOption.value.series || trafficBarOption.value.series.length === 0 ? {\n R: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n S: 'traffic-' + trafficSources.length + '-' + Date.now(),\n T: _p({\n option: trafficBarOption.value\n })\n }, {\n U: _f(topProducts, (p, k0, i0) => {\n return {\n a: _t(p.rank),\n b: _t(p.name),\n c: _t(p.sales),\n d: p.id\n };\n }),\n V: topProducts.length >= 6\n }, topProducts.length >= 6 ? {\n W: _f(topProducts, (p, k0, i0) => {\n return {\n a: _t(p.rank),\n b: _t(p.name),\n c: _t(p.sales),\n d: 'copy-' + p.id\n };\n })\n } : {}, {\n X: topProducts.length >= 6 ? 1 : '',\n Y: _f(topMerchants, (m, k0, i0) => {\n return {\n a: _t(m.rank),\n b: _t(m.name),\n c: _t(formatMoney(m.sales)),\n d: _t(m.growth >= 0 ? '+' : ''),\n e: _t(m.growth),\n f: _n(m.growth >= 0 ? 'pos' : 'neg'),\n g: m.id\n };\n }),\n Z: topMerchants.length >= 6\n }, topMerchants.length >= 6 ? {\n aa: _f(topMerchants, (m, k0, i0) => {\n return {\n a: _t(m.rank),\n b: _t(m.name),\n c: _t(formatMoney(m.sales)),\n d: _t(m.growth >= 0 ? '+' : ''),\n e: _t(m.growth),\n f: _n(m.growth >= 0 ? 'pos' : 'neg'),\n g: 'copy-' + m.id\n };\n })\n } : {}, {\n ab: topMerchants.length >= 6 ? 1 : '',\n ac: _o(goToSalesReport),\n ad: _o(goToUserAnalysis),\n ae: _o(goToProductInsights),\n af: _o(goToMarketTrends),\n ag: _o(goToCouponAnalysis),\n ah: _o(goToCustomReport),\n ai: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/components/analytics/AnalyticsComboChart.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsDateRangePicker.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69b6386c23e8f517ca290165a7dbf90c01d589ab b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69b6386c23e8f517ca290165a7dbf90c01d589ab deleted file mode 100644 index bfdbd99f..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/69b6386c23e8f517ca290165a7dbf90c01d589ab +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + EChartsView)();\n}\nimport { reactive, ref } from 'vue';\nimport { onLoad, onShow } from '@dcloudio/uni-app';\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { fetchDataDetailReportInfo, fetchDataDetailRows } from \"@/services/analytics/dataDetailService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { rpcOrEmptyArray } from \"@/services/analytics/rpc\";\nimport { TableColumn, DrillDownItem } from \"@/types/analytics/data-detail\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'data-detail',\n setup(__props) {\n const lastUpdateTime = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/data-detail');\n const timeRangeText = ref('最近7天');\n const dimensionText = ref('全部');\n const compareMode = ref(true);\n const sortKey = ref('');\n const sortOrder = ref('asc');\n const reportId = ref('');\n const tableColumns = ref([\n new TableColumn({ key: 'date', label: '日期', type: 'date', sortable: true }),\n new TableColumn({ key: 'gmv', label: 'GMV', type: 'money', sortable: true }),\n new TableColumn({ key: 'orders', label: '订单数', type: 'number', sortable: true }),\n new TableColumn({ key: 'users', label: '用户数', type: 'number', sortable: true })\n ]);\n const tableData = reactive([]);\n const drillDownItems = reactive([]);\n const compareChartOption = ref(new UTSJSONObject({}));\n const _currentRows = ref([]);\n const _compareRows = ref([]);\n onLoad((options = null) => {\n currentPath.value = '/pages/mall/analytics/data-detail';\n const rid = (options.reportId || options.id);\n if (rid) {\n reportId.value = rid;\n }\n updateTime();\n void loadDetailData();\n });\n onShow(() => {\n currentPath.value = '/pages/mall/analytics/data-detail';\n });\n function loadDetailData() {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _q;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (reportId.value && reportId.value.length > 0) {\n const info = yield fetchDataDetailReportInfo(reportId.value);\n if (info != null) {\n const period = info.period;\n if (period === '7d')\n timeRangeText.value = '最近7天';\n else if (period === '30d')\n timeRangeText.value = '最近30天';\n else if (period === '90d')\n timeRangeText.value = '最近90天';\n }\n const sortByKey = sortKey.value.length > 0 ? sortKey.value : 'row_date';\n const sortDir = sortOrder.value === 'desc' ? 'desc' : 'asc';\n const rows = yield fetchDataDetailRows(reportId.value, sortByKey, sortDir, 500, 0);\n tableData.splice(0, tableData.length, ...rows);\n const drillAny = yield rpcOrEmptyArray('rpc_data_detail_drill_items', new UTSJSONObject({\n p_report_id: reportId.value\n }));\n const drillList = [];\n for (let i = 0; i < drillAny.length; i++) {\n const m = drillAny[i];\n const key = (_a = m.getString('metric_key')) !== null && _a !== void 0 ? _a : '';\n const label = (_b = m.getString('metric_label')) !== null && _b !== void 0 ? _b : key;\n const fmt = (_c = m.getString('format')) !== null && _c !== void 0 ? _c : 'number';\n const valueNum = (_d = m.getNumber('metric_value_num')) !== null && _d !== void 0 ? _d : 0;\n const vStr = formatCellValue(valueNum, fmt === 'currency' ? 'money' : (fmt === 'percent' ? 'percent' : 'number'));\n drillList.push(new DrillDownItem({\n id: key.length > 0 ? key : 'metric_' + i.toString(),\n label,\n value: vStr,\n type: key\n }));\n }\n drillDownItems.splice(0, drillDownItems.length, ...drillList);\n const cmpRes = yield supa.rpc('rpc_data_detail_compare_gmv', {\n p_report_id: reportId.value\n });\n let cmpRows = [];\n if (cmpRes.error != null) {\n uni.__f__('error', 'at pages/mall/analytics/data-detail.uvue:190', 'rpc_data_detail_compare_gmv error:', cmpRes.error);\n }\n else {\n const anyCmp = cmpRes.data;\n if (Array.isArray(anyCmp)) {\n cmpRows = anyCmp;\n }\n }\n const curDays = [];\n const curGmv = [];\n const prevGmv = [];\n for (let i = 0; i < cmpRows.length; i++) {\n const r = cmpRows[i];\n const dayStr = (_g = r.getString('day')) !== null && _g !== void 0 ? _g : '';\n curDays.push(dayStr.length >= 10 ? dayStr.substring(5, 10) : dayStr);\n curGmv.push((_h = r.getNumber('gmv_current')) !== null && _h !== void 0 ? _h : 0);\n prevGmv.push((_j = r.getNumber('gmv_previous')) !== null && _j !== void 0 ? _j : 0);\n }\n compareChartOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n legend: new UTSJSONObject({ data: ['当前周期 GMV', '对比周期 GMV'], top: 'bottom' }),\n grid: new UTSJSONObject({ left: 50, right: 20, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'category', data: curDays }),\n yAxis: new UTSJSONObject({ type: 'value', name: 'GMV' }),\n series: [\n new UTSJSONObject({ name: '当前周期 GMV', type: 'line', smooth: true, data: curGmv }),\n new UTSJSONObject({ name: '对比周期 GMV', type: 'line', smooth: true, data: prevGmv })\n ]\n });\n _currentRows.value = [];\n _compareRows.value = [];\n }\n else {\n // 兼容旧逻辑:无报表ID时,直接按时间范围调用市场趋势 RPC\n const now = new Date();\n const end = new Date(now.getTime());\n const start = new Date(now.getTime());\n if (timeRangeText.value === '最近7天') {\n start.setDate(start.getDate() - 7);\n }\n else if (timeRangeText.value === '最近30天') {\n start.setDate(start.getDate() - 30);\n }\n else if (timeRangeText.value === '最近90天') {\n start.setDate(start.getDate() - 90);\n }\n else {\n start.setDate(start.getDate() - 30);\n }\n const startIso = start.toISOString();\n const endIso = end.toISOString();\n let currentRows = [];\n let compareRows = [];\n const curRes = yield supa.rpc('rpc_analytics_market_trend_daily', {\n p_start: startIso,\n p_end: endIso\n });\n if (curRes.status === 404) {\n uni.__f__('warn', 'at pages/mall/analytics/data-detail.uvue:251', 'rpc_analytics_market_trend_daily not found, data-detail will be empty');\n }\n else if (curRes.error != null) {\n uni.__f__('error', 'at pages/mall/analytics/data-detail.uvue:253', 'rpc_analytics_market_trend_daily error:', curRes.error);\n }\n else {\n const anyData = curRes.data;\n currentRows = Array.isArray(anyData) ? anyData : [];\n }\n const spanMs = end.getTime() - start.getTime();\n const prevEnd = new Date(start.getTime());\n const prevStart = new Date(start.getTime() - spanMs);\n const prevStartIso = prevStart.toISOString();\n const prevEndIso = prevEnd.toISOString();\n const prevRes = yield supa.rpc('rpc_analytics_market_trend_daily', {\n p_start: prevStartIso,\n p_end: prevEndIso\n });\n if (prevRes.status === 404) {\n uni.__f__('warn', 'at pages/mall/analytics/data-detail.uvue:271', 'rpc_analytics_market_trend_daily not found for compare period');\n }\n else if (prevRes.error != null) {\n uni.__f__('error', 'at pages/mall/analytics/data-detail.uvue:273', 'rpc_analytics_market_trend_daily (compare) error:', prevRes.error);\n }\n else {\n const anyPrev = prevRes.data;\n compareRows = Array.isArray(anyPrev) ? anyPrev : [];\n }\n const table = [];\n for (let i = 0; i < currentRows.length; i++) {\n const r = currentRows[i];\n const dayStr = (_k = r.getString('day')) !== null && _k !== void 0 ? _k : '';\n table.push({\n id: dayStr + '_' + i.toString(),\n date: dayStr,\n gmv: (_l = r.getNumber('gmv')) !== null && _l !== void 0 ? _l : 0,\n orders: (_m = r.getNumber('orders')) !== null && _m !== void 0 ? _m : 0,\n users: (_q = r.getNumber('users')) !== null && _q !== void 0 ? _q : 0\n });\n }\n tableData.splice(0, tableData.length, ...table);\n let totalGmv = 0;\n let totalOrders = 0;\n let totalUsers = 0;\n for (let i = 0; i < table.length; i++) {\n const row = table[i];\n totalGmv += row.gmv;\n totalOrders += row.orders;\n totalUsers += row.users;\n }\n drillDownItems.splice(0, drillDownItems.length, { id: 'gmv_total', label: '当前周期 GMV 总计', value: formatCellValue(totalGmv, 'money'), type: 'gmv' }, { id: 'orders_total', label: '当前周期订单总数', value: formatCellValue(totalOrders, 'number'), type: 'orders' }, { id: 'users_total', label: '当前周期下单用户数', value: formatCellValue(totalUsers, 'number'), type: 'users' });\n _currentRows.value = currentRows;\n _compareRows.value = compareRows;\n buildChartOptions();\n }\n updateTime();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/data-detail.uvue:318', 'loadDetailData failed:', e);\n updateTime();\n buildChartOptions();\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '详细数据加载失败' })), icon: 'none' });\n }\n });\n }\n function selectTimeRange() {\n uni.showActionSheet({\n itemList: ['最近7天', '最近30天', '最近90天', '自定义'],\n success: (res) => {\n const ranges = ['最近7天', '最近30天', '最近90天', '自定义'];\n timeRangeText.value = ranges[res.tapIndex];\n void loadDetailData();\n }\n });\n }\n function selectDimension() {\n uni.showActionSheet({\n itemList: ['全部', '按商家', '按分类', '按地域'],\n success: (res) => {\n const dims = ['全部', '按商家', '按分类', '按地域'];\n dimensionText.value = dims[res.tapIndex];\n void loadDetailData();\n }\n });\n }\n function toggleCompare() {\n compareMode.value = !compareMode.value;\n if (compareMode.value) {\n buildChartOptions();\n }\n }\n function sortBy(key) {\n if (sortKey.value === key) {\n sortOrder.value = sortOrder.value === 'asc' ? 'desc' : 'asc';\n }\n else {\n sortKey.value = key;\n sortOrder.value = 'asc';\n }\n const data = tableData.slice();\n data.sort((a = null, b = null) => {\n const va = a[key];\n const vb = b[key];\n const na = typeof va === 'number' ? va : Number(va);\n const nb = typeof vb === 'number' ? vb : Number(vb);\n if (sortOrder.value === 'asc')\n return na - nb;\n return nb - na;\n });\n tableData.splice(0, tableData.length, ...data);\n }\n function formatCellValue(value = null, type) {\n if (value == null)\n return '-';\n if (type === 'money') {\n const v = Number(value);\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toFixed(2);\n }\n if (type === 'percent') {\n const v = Number(value);\n return `${v.toFixed(1)}%`;\n }\n if (type === 'number') {\n return String(Math.round(Number(value)));\n }\n if (type === 'date') {\n return String(value);\n }\n return String(value);\n }\n function drillDown(item) {\n uni.showToast({ title: `查看 ${item.label} 详情`, icon: 'none' });\n }\n function refreshData() {\n void loadDetailData();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出CSV'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function buildChartOptions() {\n var _a, _b, _c;\n const curRows = Array.isArray(_currentRows.value) ? _currentRows.value : [];\n const prevRows = Array.isArray(_compareRows.value) ? _compareRows.value : [];\n if (curRows.length === 0) {\n compareChartOption.value = new UTSJSONObject({});\n return null;\n }\n const curDays = [];\n const curGmv = [];\n const prevGmv = [];\n for (let i = 0; i < curRows.length; i++) {\n const r = curRows[i];\n const dayStr = (_a = r.getString('day')) !== null && _a !== void 0 ? _a : '';\n curDays.push(dayStr.length >= 10 ? dayStr.substring(5, 10) : dayStr);\n curGmv.push((_b = r.getNumber('gmv')) !== null && _b !== void 0 ? _b : 0);\n }\n for (let i = 0; i < curRows.length; i++) {\n const rPrev = i < prevRows.length ? prevRows[i] : null;\n if (rPrev == null) {\n prevGmv.push(0);\n }\n else {\n prevGmv.push((_c = rPrev.getNumber('gmv')) !== null && _c !== void 0 ? _c : 0);\n }\n }\n compareChartOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n legend: new UTSJSONObject({ data: ['当前周期 GMV', '对比周期 GMV'], top: 'bottom' }),\n grid: new UTSJSONObject({ left: 50, right: 20, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({ type: 'category', data: curDays }),\n yAxis: new UTSJSONObject({ type: 'value', name: 'GMV' }),\n series: [\n new UTSJSONObject({ name: '当前周期 GMV', type: 'line', smooth: true, data: curGmv }),\n new UTSJSONObject({ name: '对比周期 GMV', type: 'line', smooth: true, data: prevGmv })\n ]\n });\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '数据分析详情',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _t(timeRangeText.value),\n m: _o(selectTimeRange),\n n: _t(dimensionText.value),\n o: _o(selectDimension),\n p: _t(compareMode.value ? '开启' : '关闭'),\n q: _o(toggleCompare),\n r: _f(tableColumns.value, (col, k0, i0) => {\n return _e({\n a: _t(col.label),\n b: col.sortable\n }, col.sortable ? {\n c: _o($event => { return sortBy(col.key); }, col.key)\n } : {}, {\n d: col.key\n });\n }),\n s: _f(tableData, (row, k0, i0) => {\n return {\n a: _f(tableColumns.value, (col, k1, i1) => {\n return {\n a: _t(formatCellValue(row[col.key], col.type)),\n b: col.key\n };\n }),\n b: row.id\n };\n }),\n t: compareMode.value\n }, compareMode.value ? {\n v: _p({\n option: compareChartOption.value\n })\n } : {}, {\n w: _f(drillDownItems, (item, k0, i0) => {\n return {\n a: _t(item.label),\n b: _t(item.value),\n c: item.id,\n d: _o($event => { return drillDown(item); }, item.id)\n };\n }),\n x: _sei(_gei(_ctx, ''), 'view'),\n y: _o(closeMoreMenu)\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/data-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"data-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"data-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e0088f63e45dddd842c86f21db7387ec9dc24f7 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e0088f63e45dddd842c86f21db7387ec9dc24f7 deleted file mode 100644 index 01099455..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e0088f63e45dddd842c86f21db7387ec9dc24f7 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n methods: {\n goBack() {\n uni.navigateBack();\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/terms.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack"],"map":"{\"version\":3,\"file\":\"terms.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"terms.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,OAAO,EAAE;QACR,MAAM;YACL,GAAG,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC;KACD;CACD,EAAC\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e7690cee1bb7886aa7dcb8efcd8bc32e8842ff0 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e7690cee1bb7886aa7dcb8efcd8bc32e8842ff0 deleted file mode 100644 index c8f7b8e0..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6e7690cee1bb7886aa7dcb8efcd8bc32e8842ff0 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, unref as _unref, gei as _gei, p as _p } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport { ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'product-management',\n setup(__props) {\n const params = ref('');\n onLoad((options = null) => {\n // options: Record\n params.value = UTS.JSON.stringify(options !== null && options !== void 0 ? options : new UTSJSONObject({}));\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _t(params.value),\n b: _gei(_ctx, ''),\n c: _p({\n currentPage: 'product-management',\n id: _gei(_ctx, '')\n })\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/product-management.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"product-management.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"product-management.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AACzG,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAG1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,oBAAoB;IAC5B,KAAK,CAAC,OAAO;QAEf,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAEtB,MAAM,CAAC,CAAC,OAAO,OAAA;YACb,+BAA+B;YAC/B,MAAM,CAAC,KAAK,GAAG,SAAK,SAAS,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,qBAAI,EAAE,CAAA,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC;oBACJ,WAAW,EAAE,oBAAoB;oBACjC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;iBACnB,CAAC;aACH,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6efc51758ce1c56c544af9d4274369ae2f87e22a b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6efc51758ce1c56c544af9d4274369ae2f87e22a deleted file mode 100644 index f8fdf731..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/6efc51758ce1c56c544af9d4274369ae2f87e22a +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, gei as _gei, sei as _sei } from \"vue\";\nimport { ref, reactive } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass BankCardForm extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n holder_name: { type: String, optional: false },\n card_no: { type: String, optional: false },\n bank_name: { type: String, optional: false },\n phone: { type: String, optional: false },\n is_default: { type: Boolean, optional: false }\n };\n },\n name: \"BankCardForm\"\n };\n }\n constructor(options, metadata = BankCardForm.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.holder_name = this.__props__.holder_name;\n this.card_no = this.__props__.card_no;\n this.bank_name = this.__props__.bank_name;\n this.phone = this.__props__.phone;\n this.is_default = this.__props__.is_default;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'add',\n setup(__props) {\n const loading = ref(false);\n const form = reactive(new BankCardForm({\n holder_name: '',\n card_no: '',\n bank_name: '',\n phone: '',\n is_default: false\n }));\n const onSwitchChange = (e) => {\n form.is_default = e.detail.value;\n };\n // 模拟卡号识别\n const detectBank = (e = null) => {\n const val = form.card_no;\n if (val.length >= 6) {\n if (val.startsWith('6222'))\n form.bank_name = '中国工商银行';\n else if (val.startsWith('6227'))\n form.bank_name = '中国建设银行';\n else if (val.startsWith('6225'))\n form.bank_name = '招商银行';\n else if (val.startsWith('6228'))\n form.bank_name = '中国农业银行';\n // else form.bank_name = '' \n }\n };\n const submit = () => { return __awaiter(this, void 0, void 0, function* () {\n if (form.holder_name == '' || form.card_no == '' || form.bank_name == '') {\n uni.showToast({ title: '请完善卡片信息', icon: 'none' });\n return Promise.resolve(null);\n }\n loading.value = true;\n try {\n const cardData = new UTSJSONObject();\n cardData.set('holder_name', form.holder_name);\n cardData.set('bank_name', form.bank_name);\n cardData.set('card_no', form.card_no); // Also save full card no if needed, or just last4\n // 截取后4位\n const last4 = form.card_no.length > 4 ? form.card_no.slice(-4) : form.card_no;\n cardData.set('card_no_last4', last4);\n cardData.set('phone', form.phone);\n cardData.set('is_default', form.is_default);\n // 简单推定为储蓄卡\n cardData.set('card_type', 'debit');\n const success = yield supabaseService.addBankCard(cardData);\n if (success) {\n uni.showToast({ title: '添加成功' });\n setTimeout(() => {\n uni.navigateBack();\n }, 1000);\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/bank-cards/add.uvue:101', e);\n uni.showToast({ title: '系统错误', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: form.holder_name,\n b: _o($event => { return form.holder_name = $event.detail.value; }),\n c: _o([$event => { return form.card_no = $event.detail.value; }, detectBank]),\n d: form.card_no,\n e: form.bank_name,\n f: _o($event => { return form.bank_name = $event.detail.value; }),\n g: form.phone,\n h: _o($event => { return form.phone = $event.detail.value; }),\n i: form.is_default,\n j: _o(onSwitchChange),\n k: loading.value ? 1 : '',\n l: loading.value,\n m: _o(submit),\n n: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/bank-cards/add.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.navigateBack","uni.__f__"],"map":"{\"version\":3,\"file\":\"add.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"add.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/70681f17d1d939d834272be69642bef5c4ead226 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/70681f17d1d939d834272be69642bef5c4ead226 deleted file mode 100644 index 06a7fd49..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/70681f17d1d939d834272be69642bef5c4ead226 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { CreateCustomReportParams } from \"D:/companyproject/mall/services/analytics/customReportService.ts\";\nimport { UpdateCustomReportParams } from \"D:/companyproject/mall/services/analytics/customReportService.ts\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu))();\n}\nimport supa, { ensureSupabaseReady } from \"@/components/supadb/aksupainstance\";\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport { goToLogin as goToLoginPage } from \"@/utils/utils\";\nimport { getUserIdOrNull } from \"@/services/analytics/auth\";\nimport { ensureAnalyticsLogin } from \"@/services/analytics/authGuard\";\nimport { listCustomReports, createCustomReport, updateCustomReport, deleteCustomReport } from \"@/services/analytics/customReportService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { reactive, ref } from 'vue';\nimport { onLoad, onShow } from '@dcloudio/uni-app';\nimport { CustomReport, ReportForm, ReportFormErrors } from \"@/types/analytics/custom-report\";\nimport { Metric, TimePeriod, ChartType } from \"@/types/analytics/common\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'custom-report',\n setup(__props) {\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/custom-report');\n const showCreateModal = ref(false);\n const editingReport = ref(null);\n const reports = reactive([]);\n const isLoggedIn = ref(false);\n const reportForm = reactive(new ReportForm({\n name: '',\n description: '',\n metrics: [],\n period: '7d',\n chartType: 'line'\n }));\n const formErrors = reactive(new ReportFormErrors({\n name: '',\n description: '',\n metrics: '',\n period: '',\n chartType: ''\n }));\n const availableMetrics = ref([\n new Metric({ key: 'gmv', label: 'GMV' }),\n new Metric({ key: 'orders', label: '订单数' }),\n new Metric({ key: 'users', label: '用户数' }),\n new Metric({ key: 'conversion', label: '转化率' }),\n new Metric({ key: 'avg_order', label: '客单价' }),\n new Metric({ key: 'repurchase', label: '复购率' })\n ]);\n const timePeriods = ref([\n new TimePeriod({ value: '7d', label: '7天' }),\n new TimePeriod({ value: '30d', label: '30天' }),\n new TimePeriod({ value: '90d', label: '90天' }),\n new TimePeriod({ value: '1y', label: '1年' })\n ]);\n const chartTypes = ref([\n new ChartType({ value: 'line', label: '折线图' }),\n new ChartType({ value: 'bar', label: '柱状图' }),\n new ChartType({ value: 'pie', label: '饼图' }),\n new ChartType({ value: 'area', label: '面积图' }),\n new ChartType({ value: 'combo', label: '组合图' })\n ]);\n onLoad(() => {\n currentPath.value = '/pages/mall/analytics/custom-report';\n if (!ensureAnalyticsLogin(new UTSJSONObject({ toastTitle: '请先登录后使用自定义报表' })))\n return null;\n loadReports();\n });\n onShow(() => {\n currentPath.value = '/pages/mall/analytics/custom-report';\n });\n function loadReports() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield ensureSupabaseReady();\n const uid = getUserIdOrNull();\n if (!uid || uid.length === 0) {\n isLoggedIn.value = false;\n reports.splice(0, reports.length);\n return Promise.resolve(null);\n }\n isLoggedIn.value = true;\n const items = yield listCustomReports(uid);\n const list = [];\n for (let i = 0; i < items.length; i++) {\n const r = items[i];\n list.push(new CustomReport({\n id: `${r.id}`,\n name: `${r.title}`,\n description: `${r.description || ''}`,\n metrics: [],\n charts: [],\n updated_at: `${r.updated_at || ''}`\n }));\n }\n reports.splice(0, reports.length, ...list);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/custom-report.uvue:266', 'loadReports failed', e);\n uni.showToast({ title: '报表加载失败', icon: 'none' });\n }\n });\n }\n function createReport() {\n editingReport.value = null;\n reportForm.name = '';\n reportForm.description = '';\n reportForm.metrics = [];\n reportForm.period = '7d';\n reportForm.chartType = 'line';\n formErrors.name = '';\n formErrors.description = '';\n formErrors.metrics = '';\n formErrors.period = '';\n formErrors.chartType = '';\n showCreateModal.value = true;\n }\n function editReport(report) {\n editingReport.value = report;\n reportForm.name = report.name;\n reportForm.description = report.description;\n reportForm.metrics = report.metrics;\n reportForm.period = '7d';\n reportForm.chartType = 'line';\n formErrors.name = '';\n formErrors.description = '';\n formErrors.metrics = '';\n formErrors.period = '';\n formErrors.chartType = '';\n showCreateModal.value = true;\n }\n function deleteReport(report) {\n uni.showModal(new UTSJSONObject({\n title: '确认删除',\n content: `确定要删除报表\"${report.name}\"吗?`,\n success: (res) => {\n if (res.confirm) {\n doDeleteReport(report);\n }\n }\n }));\n }\n function doDeleteReport(report) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield ensureSupabaseReady();\n yield deleteCustomReport(report.id);\n uni.showToast({ title: '删除成功', icon: 'success' });\n loadReports();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/custom-report.uvue:327', 'doDeleteReport failed', e);\n const errorMsg = (e === null || e === void 0 ? null : e.message) || '删除失败';\n uni.showToast({ title: errorMsg, icon: 'none' });\n }\n });\n }\n function toggleMetric(key) {\n const index = reportForm.metrics.indexOf(key);\n if (index >= 0) {\n reportForm.metrics.splice(index, 1);\n }\n else {\n reportForm.metrics.push(key);\n }\n if (reportForm.metrics.length > 0) {\n formErrors.metrics = '';\n }\n }\n function onNameInput() {\n const name = reportForm.name.trim();\n if (name.length === 0) {\n formErrors.name = '报表名称不能为空';\n }\n else if (name.length > 50) {\n formErrors.name = '报表名称不能超过50个字符';\n }\n else {\n formErrors.name = '';\n }\n }\n function onDescriptionInput() {\n const desc = reportForm.description;\n if (desc.length > 200) {\n formErrors.description = '报表描述不能超过200个字符';\n }\n else {\n formErrors.description = '';\n }\n }\n function selectPeriod(value) {\n reportForm.period = value;\n formErrors.period = '';\n }\n function selectChartType(value) {\n reportForm.chartType = value;\n formErrors.chartType = '';\n }\n function validateReportForm() {\n onNameInput();\n onDescriptionInput();\n if (reportForm.metrics.length === 0) {\n formErrors.metrics = '请至少选择一个指标';\n }\n else {\n formErrors.metrics = '';\n }\n if (!reportForm.period) {\n formErrors.period = '请选择时间维度';\n }\n if (!reportForm.chartType) {\n formErrors.chartType = '请选择图表类型';\n }\n if (formErrors.name || formErrors.description || formErrors.metrics || formErrors.period || formErrors.chartType) {\n uni.showToast({ title: '请先修正表单中的错误提示', icon: 'none' });\n return false;\n }\n return true;\n }\n function saveReport() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!validateReportForm()) {\n return Promise.resolve(null);\n }\n try {\n uni.showLoading({ title: '保存中...' });\n yield ensureSupabaseReady();\n const uid = getUserIdOrNull();\n if (!uid || uid.length === 0) {\n uni.hideLoading();\n uni.showModal(new UTSJSONObject({\n title: '需要登录',\n content: '创建自定义报表需要先登录,是否前往登录页面?',\n success: (res) => {\n if (res.confirm) {\n goToLogin('/pages/mall/analytics/custom-report');\n }\n }\n }));\n return Promise.resolve(null);\n }\n let newReportId = '';\n if (editingReport.value == null) {\n newReportId = yield createCustomReport(new CreateCustomReportParams({\n title: reportForm.name,\n description: reportForm.description || '',\n period: reportForm.period,\n metrics: reportForm.metrics,\n chartType: reportForm.chartType || 'line'\n }));\n }\n else {\n yield updateCustomReport(new UpdateCustomReportParams({\n reportId: editingReport.value.id,\n title: reportForm.name,\n description: reportForm.description || null,\n period: reportForm.period || null\n }));\n newReportId = editingReport.value.id;\n }\n uni.hideLoading();\n // 检查 newReportId 是否有效,无效则认为创建失败\n if (newReportId == null || newReportId.length === 0) {\n uni.showToast({\n title: '创建失败:未返回报表ID',\n icon: 'none',\n duration: 3000\n });\n return Promise.resolve(null);\n }\n uni.showToast({ title: '保存成功', icon: 'success' });\n closeModal();\n loadReports();\n setTimeout(() => {\n uni.navigateTo({\n url: `/pages/mall/analytics/report-detail?reportId=${newReportId}`\n });\n }, 400);\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/analytics/custom-report.uvue:467', 'saveReport exception:', e);\n uni.showToast({\n title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '保存失败' })),\n icon: 'none',\n duration: 3000\n });\n }\n });\n }\n function openReport(report) {\n uni.navigateTo({\n url: `/pages/mall/analytics/report-detail?reportId=${report.id}`\n });\n }\n function closeModal() {\n showCreateModal.value = false;\n editingReport.value = null;\n }\n function refreshData() {\n loadReports();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function goToLogin() {\n ensureAnalyticsLogin(new UTSJSONObject({ toastTitle: '请先登录后使用自定义报表' }));\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n function handleGoToLogin() {\n goToLoginPage('/pages/mall/analytics/custom-report');\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '自定义报表',\n lastUpdateTime: '创建和管理您的专属报表',\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _o(createReport),\n m: reports.length > 0\n }, reports.length > 0 ? {\n n: _f(reports, (report, k0, i0) => {\n return {\n a: _t(report.name),\n b: _o($event => { return editReport(report); }, report.id),\n c: _o($event => { return deleteReport(report); }, report.id),\n d: _t(report.description || '点击进入报表详情查看数据'),\n e: _t(report.period || '自定义'),\n f: _t(report.updated_at || '-'),\n g: report.id,\n h: _o($event => { return openReport(report); }, report.id)\n };\n })\n } : _e({\n o: isLoggedIn.value\n }, isLoggedIn.value ? {} : {}, {\n p: isLoggedIn.value\n }, isLoggedIn.value ? {} : {}, {\n q: isLoggedIn.value\n }, isLoggedIn.value ? {\n r: _o(createReport)\n } : {\n s: _o(goToLogin)\n }), {\n t: showCreateModal.value\n }, showCreateModal.value ? _e({\n v: _t(editingReport.value ? '编辑报表' : '新建报表'),\n w: _o(closeModal),\n x: _o([$event => { return reportForm.name = $event.detail.value; }, onNameInput]),\n y: reportForm.name,\n z: formErrors.name\n }, formErrors.name ? {\n A: _t(formErrors.name)\n } : {}, {\n B: _o([$event => { return reportForm.description = $event.detail.value; }, onDescriptionInput]),\n C: reportForm.description,\n D: formErrors.description\n }, formErrors.description ? {\n E: _t(formErrors.description)\n } : {}, {\n F: _f(availableMetrics.value, (m, k0, i0) => {\n return {\n a: _t(m.label),\n b: m.key,\n c: reportForm.metrics.includes(m.key) ? 1 : '',\n d: _o($event => { return toggleMetric(m.key); }, m.key)\n };\n }),\n G: formErrors.metrics\n }, formErrors.metrics ? {\n H: _t(formErrors.metrics)\n } : {}, {\n I: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: reportForm.period === p.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n J: formErrors.period\n }, formErrors.period ? {\n K: _t(formErrors.period)\n } : {}, {\n L: _f(chartTypes.value, (t, k0, i0) => {\n return {\n a: _t(t.label),\n b: t.value,\n c: reportForm.chartType === t.value ? 1 : '',\n d: _o($event => { return selectChartType(t.value); }, t.value)\n };\n }),\n M: formErrors.chartType\n }, formErrors.chartType ? {\n N: _t(formErrors.chartType)\n } : {}, {\n O: _o(closeModal),\n P: _o(saveReport),\n Q: _o(() => { }),\n R: _o(() => { })\n }) : {}, {\n S: _sei(_gei(_ctx, ''), 'view'),\n T: _o(closeMoreMenu)\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/custom-report.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showModal","uni.showLoading","uni.hideLoading","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"custom-report.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"custom-report.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/706b2b1405ade850278681bb63def6180ec62d93 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/706b2b1405ade850278681bb63def6180ec62d93 deleted file mode 100644 index 107d8edc..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/706b2b1405ade850278681bb63def6180ec62d93 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, f as _f, toDisplayString as _toDisplayString, t as _t, gei as _gei, sei as _sei } from \"vue\";\nimport { ref, computed } from 'vue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'refund-review',\n setup(__props) {\n const rating = ref(5);\n const comment = ref('');\n const submitting = ref(false);\n const ratingText = computed(() => {\n const texts = ['非常不满意', '不满意', '一般', '满意', '非常满意'];\n return texts[rating.value - 1];\n });\n const setRating = (val) => {\n rating.value = val;\n };\n const submitReview = () => {\n if (submitting.value)\n return null;\n submitting.value = true;\n // 模拟提交\n setTimeout(() => {\n uni.showToast({\n title: '评价成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n submitting.value = false;\n }, 1000);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _f(5, (i, k0, i0) => {\n return {\n a: i,\n b: i <= rating.value ? 1 : '',\n c: _o($event => { return setRating(i); }, i)\n };\n }),\n b: _t(ratingText.value),\n c: comment.value,\n d: _o($event => { return comment.value = $event.detail.value; }),\n e: _t(comment.value.length),\n f: _o(submitReview),\n g: submitting.value,\n h: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/refund-review.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"refund-review.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"refund-review.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAE9G,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAGnC,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,eAAe;IACvB,KAAK,CAAC,OAAO;QAEf,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAE7B,MAAM,UAAU,GAAG,QAAQ,CAAC;YAC1B,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YAClD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,CAAC,GAAW;YAC5B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAA;QACpB,CAAC,CAAA;QAED,MAAM,YAAY,GAAG;YACnB,IAAI,UAAU,CAAC,KAAK;gBAAE,YAAM;YAC5B,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;YAEvB,OAAO;YACP,UAAU,CAAC;gBACT,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAA;gBAEF,UAAU,CAAC;oBACT,GAAG,CAAC,YAAY,EAAE,CAAA;gBACpB,CAAC,EAAE,IAAI,CAAC,CAAA;gBAER,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;YAC1B,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;oBACjB,OAAO;wBACL,CAAC,EAAE,CAAC;wBACJ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC7B,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,SAAS,CAAC,CAAC,CAAC,EAAZ,CAAY,EAAE,CAAC,CAAC;qBACjC,CAAC;gBACJ,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBACvB,CAAC,EAAE,OAAO,CAAC,KAAK;gBAChB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAnC,CAAmC,CAAC;gBACpD,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC3B,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,UAAU,CAAC,KAAK;gBACnB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/71e70da680cc1f0a5d6d8c50be657cefb93df271 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/71e70da680cc1f0a5d6d8c50be657cefb93df271 deleted file mode 100644 index b3e88dde..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/71e70da680cc1f0a5d6d8c50be657cefb93df271 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted, computed } from 'vue';\nimport { onLoad, onBackPress } from '@dcloudio/uni-app';\nimport { supabaseService } from \"@/utils/supabaseService\";\nimport supa from \"@/components/supadb/aksupainstance\";\nclass OrderType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n order_no: { type: String, optional: false },\n order_status: { type: Number, optional: false },\n total_amount: { type: Number, optional: false },\n product_amount: { type: Number, optional: false },\n shipping_fee: { type: Number, optional: false },\n discount_amount: { type: Number, optional: false },\n payment_method: { type: String, optional: false },\n created_at: { type: String, optional: false },\n paid_at: { type: String, optional: false },\n shipped_at: { type: String, optional: false },\n completed_at: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n shipping_address: { type: \"Any\", optional: true }\n };\n },\n name: \"OrderType\"\n };\n }\n constructor(options, metadata = OrderType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.order_no = this.__props__.order_no;\n this.order_status = this.__props__.order_status;\n this.total_amount = this.__props__.total_amount;\n this.product_amount = this.__props__.product_amount;\n this.shipping_fee = this.__props__.shipping_fee;\n this.discount_amount = this.__props__.discount_amount;\n this.payment_method = this.__props__.payment_method;\n this.created_at = this.__props__.created_at;\n this.paid_at = this.__props__.paid_at;\n this.shipped_at = this.__props__.shipped_at;\n this.completed_at = this.__props__.completed_at;\n this.merchant_id = this.__props__.merchant_id;\n this.shipping_address = this.__props__.shipping_address;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n product_id: { type: String, optional: false },\n product_name: { type: String, optional: false },\n image_url: { type: String, optional: false },\n price: { type: Number, optional: false },\n quantity: { type: Number, optional: false },\n specifications: { type: \"Any\", optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.product_id = this.__props__.product_id;\n this.product_name = this.__props__.product_name;\n this.image_url = this.__props__.image_url;\n this.price = this.__props__.price;\n this.quantity = this.__props__.quantity;\n this.specifications = this.__props__.specifications;\n delete this.__props__;\n }\n}\nclass AddressType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n address: { type: String, optional: false }\n };\n },\n name: \"AddressType\"\n };\n }\n constructor(options, metadata = AddressType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.address = this.__props__.address;\n delete this.__props__;\n }\n}\nclass DeliveryInfoType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n tracking_no: { type: String, optional: false },\n carrier_name: { type: String, optional: false }\n };\n },\n name: \"DeliveryInfoType\"\n };\n }\n constructor(options, metadata = DeliveryInfoType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.tracking_no = this.__props__.tracking_no;\n this.carrier_name = this.__props__.carrier_name;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'order-detail',\n setup(__props) {\n const orderId = ref('');\n const order = ref(null);\n const orderItems = ref([]);\n const shopName = ref('店铺名称');\n const deliveryAddress = ref(null);\n const deliveryInfo = ref(null);\n // 辅助函数 - 必须在调用前定义\n const getStatusText = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '待付款';\n if (status == 2)\n return '待发货';\n if (status == 3)\n return '待收货';\n if (status == 4)\n return '已完成';\n if (status == 5)\n return '已取消';\n if (status == 6)\n return '退款中';\n if (status == 7)\n return '已退款';\n return '未知状态';\n };\n const getStatusDesc = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status == 1)\n return '请尽快完成支付';\n if (status == 2)\n return '商家正在打包商品';\n if (status == 3)\n return '商品正在赶往您的地址';\n if (status == 4)\n return '订单已完成,感谢支持';\n if (status == 5)\n return '订单已取消';\n if (status == 6)\n return '售后处理中';\n if (status == 7)\n return '钱款已退回';\n return '';\n };\n const getStatusIcon = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n if (status === 1)\n return '💳';\n if (status === 2)\n return '📦';\n if (status === 3)\n return '🚚';\n if (status === 4)\n return '✅';\n return '📝';\n };\n const getStatusClass = () => {\n var _a, _b;\n const status = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.order_status) !== null && _b !== void 0 ? _b : 0;\n return `status-${status}`;\n };\n const getFullAddress = (addr = null) => {\n var _a, _b, _c, _d, _g;\n if (addr == null)\n return '';\n if (typeof addr === 'string')\n return addr;\n try {\n const addrObj = UTS.JSON.parse(UTS.JSON.stringify(addr));\n const addressField = addrObj.getString('address');\n if (addressField != null && addressField != '')\n return addressField;\n const province = (_a = addrObj.getString('province')) !== null && _a !== void 0 ? _a : '';\n const city = (_b = addrObj.getString('city')) !== null && _b !== void 0 ? _b : '';\n const district = (_c = addrObj.getString('district')) !== null && _c !== void 0 ? _c : '';\n const detail = (_g = (_d = addrObj.getString('detail')) !== null && _d !== void 0 ? _d : addrObj.getString('address_detail')) !== null && _g !== void 0 ? _g : '';\n return province + city + district + detail;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:278', '[getFullAddress] 解析地址失败:', e);\n return '';\n }\n };\n function formatSpecs(specs = null) {\n if (specs == null)\n return '';\n if (typeof specs === 'string') {\n if (specs == '')\n return '';\n try {\n const parsed = UTS.JSON.parse(specs);\n if (parsed != null) {\n return formatSpecs(parsed);\n }\n return specs;\n }\n catch (e) {\n return specs;\n }\n }\n try {\n const specStr = UTS.JSON.stringify(specs);\n const specObj = UTS.JSON.parse(specStr);\n // 定义常见的键名\n const keys = ['Color', 'Size', '颜色', '尺寸', '规格', '默认', 'spec', 'color', 'size'];\n const parts = [];\n // 尝试提取键值\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val = specObj.get(key);\n if (val != null && val != '') {\n parts.push(val.toString());\n }\n }\n // 如果提取到了内容\n if (parts.length > 0) {\n return parts.join(' | ');\n }\n // 如果没有提取到已知键,则进行通用清理\n return specStr.replace(/[{}\"]/g, '').replace(/:/g, ': ').replace(/,/g, ' | ');\n }\n catch (e) {\n return '';\n }\n }\n const getSpecText = (specs = null) => {\n return formatSpecs(specs);\n };\n const formatTime = (iso) => {\n if (iso == '')\n return '';\n const d = new Date(iso);\n return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}`;\n };\n const getPaymentMethodText = (method = null) => {\n return '在线支付';\n };\n const copyText = (text) => {\n if (text == '')\n return null;\n uni.setClipboardData({\n data: text,\n success: () => { return uni.showToast({ title: '已复制' }); }\n });\n };\n const loadShopInfo = (merchantId) => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supa\n .from('ml_shops')\n .select('shop_name')\n .eq('merchant_id', merchantId)\n .limit(1)\n .execute();\n if (result.error != null) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:359', '[loadShopInfo] 获取店铺信息失败:', result.error);\n return Promise.resolve(null);\n }\n const rawData = result.data;\n if (rawData == null)\n return Promise.resolve(null);\n const rawList = rawData;\n if (rawList.length == 0)\n return Promise.resolve(null);\n const shopData = rawList[0];\n const shopObj = UTS.JSON.parse(UTS.JSON.stringify(shopData));\n shopName.value = ((_a = shopObj.getString('shop_name')) !== null && _a !== void 0 ? _a : '店铺');\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:373', '[loadShopInfo] 获取店铺信息异常:', e);\n }\n }); };\n const loadOrderDetail = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;\n uni.showLoading({ title: '加载中' });\n try {\n const data = yield supabaseService.getOrderDetail(orderId.value);\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:381', '[loadOrderDetail] 获取到的数据:', UTS.JSON.stringify(data));\n if (data != null) {\n const dataObj = data;\n order.value = new OrderType({\n order_no: ((_a = dataObj.get('order_no')) !== null && _a !== void 0 ? _a : ''),\n order_status: ((_b = dataObj.get('order_status')) !== null && _b !== void 0 ? _b : 1),\n total_amount: ((_c = dataObj.get('total_amount')) !== null && _c !== void 0 ? _c : 0),\n product_amount: ((_d = dataObj.get('product_amount')) !== null && _d !== void 0 ? _d : 0),\n shipping_fee: ((_g = dataObj.get('shipping_fee')) !== null && _g !== void 0 ? _g : 0),\n discount_amount: ((_h = dataObj.get('discount_amount')) !== null && _h !== void 0 ? _h : 0),\n payment_method: ((_j = dataObj.get('payment_method')) !== null && _j !== void 0 ? _j : ''),\n created_at: ((_k = dataObj.get('created_at')) !== null && _k !== void 0 ? _k : ''),\n paid_at: ((_l = dataObj.get('paid_at')) !== null && _l !== void 0 ? _l : ''),\n shipped_at: ((_m = dataObj.get('shipped_at')) !== null && _m !== void 0 ? _m : ''),\n completed_at: ((_p = dataObj.get('completed_at')) !== null && _p !== void 0 ? _p : ''),\n merchant_id: ((_q = dataObj.get('merchant_id')) !== null && _q !== void 0 ? _q : ''),\n shipping_address: ((_r = dataObj.get('shipping_address')) !== null && _r !== void 0 ? _r : null)\n });\n const itemsRaw = dataObj.get('ml_order_items');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:403', '[loadOrderDetail] 订单商品数据:', itemsRaw);\n if (itemsRaw != null && Array.isArray(itemsRaw)) {\n const items = itemsRaw;\n orderItems.value = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemObj = UTS.JSON.parse(UTS.JSON.stringify(item));\n const orderItem = new OrderItemType({\n id: ((_s = itemObj.get('id')) !== null && _s !== void 0 ? _s : ''),\n product_id: ((_u = itemObj.get('product_id')) !== null && _u !== void 0 ? _u : ''),\n product_name: ((_v = itemObj.get('product_name')) !== null && _v !== void 0 ? _v : '未知商品'),\n price: ((_w = itemObj.get('price')) !== null && _w !== void 0 ? _w : 0),\n quantity: ((_x = itemObj.get('quantity')) !== null && _x !== void 0 ? _x : 1),\n image_url: ((_y = itemObj.get('image_url')) !== null && _y !== void 0 ? _y : ''),\n specifications: ((_z = itemObj.get('specifications')) !== null && _z !== void 0 ? _z : '')\n });\n orderItems.value.push(orderItem);\n }\n }\n const addressRaw = dataObj.get('shipping_address');\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:426', '[loadOrderDetail] 收货地址数据:', addressRaw);\n if (addressRaw != null) {\n let addressObj;\n if (UTS.isInstanceOf(addressRaw, UTSJSONObject)) {\n addressObj = addressRaw;\n }\n else if (typeof addressRaw === 'string') {\n addressObj = UTS.JSON.parse(addressRaw);\n }\n else {\n addressObj = UTS.JSON.parse(UTS.JSON.stringify(addressRaw));\n }\n const province = ((_0 = addressObj.get('province')) !== null && _0 !== void 0 ? _0 : '');\n const city = ((_1 = addressObj.get('city')) !== null && _1 !== void 0 ? _1 : '');\n const district = ((_2 = addressObj.get('district')) !== null && _2 !== void 0 ? _2 : '');\n const detail = ((_3 = addressObj.get('detail')) !== null && _3 !== void 0 ? _3 : ((_4 = addressObj.get('address_detail')) !== null && _4 !== void 0 ? _4 : ''));\n deliveryAddress.value = new AddressType({\n name: ((_5 = addressObj.get('name')) !== null && _5 !== void 0 ? _5 : ((_6 = addressObj.get('recipient_name')) !== null && _6 !== void 0 ? _6 : ((_7 = addressObj.get('receiver_name')) !== null && _7 !== void 0 ? _7 : ''))),\n phone: ((_8 = addressObj.get('phone')) !== null && _8 !== void 0 ? _8 : ((_9 = addressObj.get('recipient_phone')) !== null && _9 !== void 0 ? _9 : ((_10 = addressObj.get('receiver_phone')) !== null && _10 !== void 0 ? _10 : ''))),\n province: province,\n city: city,\n district: district,\n detail: detail,\n address: province + city + district + detail\n });\n }\n const merchantId = ((_11 = dataObj.get('merchant_id')) !== null && _11 !== void 0 ? _11 : '');\n if (merchantId != '') {\n loadShopInfo(merchantId);\n }\n // 加载物流信息\n const trackingNoVal = dataObj.getString('tracking_no');\n const carrierNameVal = dataObj.getString('carrier_name');\n if (trackingNoVal != null && trackingNoVal != '') {\n deliveryInfo.value = new DeliveryInfoType({\n tracking_no: trackingNoVal,\n carrier_name: carrierNameVal !== null && carrierNameVal !== void 0 ? carrierNameVal : ''\n });\n }\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:469', '[loadOrderDetail] 订单详情加载成功,商品数量:', orderItems.value.length);\n }\n else {\n uni.showToast({ title: '订单不存在', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:474', '[loadOrderDetail] 加载订单详情失败:', e);\n uni.showToast({ title: '加载失败', icon: 'none' });\n }\n finally {\n uni.hideLoading();\n }\n }); };\n // 动作函数\n const contactService = () => {\n var _a, _b;\n if (order.value != null && ((_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) != '') {\n // 跳转到商家的聊天窗口\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${(_b = order.value) === null || _b === void 0 ? null : _b.merchant_id}&merchantName=${encodeURIComponent(shopName.value)}`\n });\n }\n else {\n uni.showActionSheet({\n itemList: ['在线客服', '拨打电话'],\n success: (res) => {\n if (res.tapIndex === 1) {\n // 模拟拨打电话\n uni.makePhoneCall({ phoneNumber: '400-123-4567' });\n }\n else {\n uni.showToast({ title: '连接到了系统客服' });\n }\n }\n });\n }\n };\n const payOrder = () => {\n var _a, _b;\n const totalAmount = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.total_amount) !== null && _b !== void 0 ? _b : 0;\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${orderId.value}&amount=${totalAmount}`\n });\n };\n const doCancelOrder = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const updatePayload = new UTSJSONObject();\n updatePayload.set('order_status', 5);\n updatePayload.set('updated_at', new Date().toISOString());\n const result = yield supa\n .from('ml_orders')\n .update(updatePayload)\n .eq('id', orderId.value)\n .execute();\n if (result.error == null) {\n if (order.value != null) {\n order.value.order_status = 5;\n }\n uni.showToast({ title: '订单已取消' });\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:528', '[doCancelOrder] 取消订单失败:', result.error);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:532', '[doCancelOrder] 取消订单异常:', e);\n uni.showToast({ title: '取消失败', icon: 'none' });\n }\n }); };\n const cancelOrder = () => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要取消订单吗?',\n success: (res) => {\n if (res.confirm) {\n doCancelOrder();\n }\n }\n }));\n };\n const remindDelivery = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const merchantId = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id;\n if (merchantId == null || merchantId == '') {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n return Promise.resolve(null);\n }\n const orderNo = (_c = (_b = order.value) === null || _b === void 0 ? null : _b.order_no) !== null && _c !== void 0 ? _c : '';\n const message = `您好,订单 ${orderNo} 已付款,请尽快安排发货,谢谢!`;\n uni.showLoading({ title: '发送中...' });\n const success = yield supabaseService.sendChatMessage(message, merchantId, 'text');\n uni.hideLoading();\n if (success) {\n uni.showToast({ title: '已提醒商家尽快发货' });\n }\n else {\n uni.showToast({ title: '发送失败,请稍后重试', icon: 'none' });\n }\n }); };\n const viewLogistics = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/logistics?orderId=${orderId.value}` });\n };\n const goToReview = () => {\n uni.navigateTo({ url: `/pages/mall/consumer/review?orderId=${orderId.value}` });\n };\n const doConfirmReceive = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const result = yield supabaseService.confirmReceipt(orderId.value);\n if (result.success) {\n if (order.value != null) {\n order.value.order_status = 4;\n }\n uni.showToast({ title: '收货成功' });\n setTimeout(() => { return goToReview(); }, 1500);\n }\n else {\n uni.showToast({ title: (_a = result.error) !== null && _a !== void 0 ? _a : '失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:591', '[doConfirmReceive] 确认收货异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const confirmReceive = () => {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确保您已收到货物',\n success: (res) => {\n if (res.confirm) {\n doConfirmReceive();\n }\n }\n }));\n };\n const rePurchase = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n uni.showLoading({ title: '处理中' });\n try {\n const items = orderItems.value;\n if (items.length == 0) {\n uni.hideLoading();\n uni.showToast({ title: '没有可购买的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const result = yield supabaseService.addToCart(item.product_id, item.quantity, '', (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '');\n if (result)\n successCount++;\n }\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: '已加入购物车' });\n setTimeout(() => {\n uni.switchTab({ url: '/pages/main/cart' });\n }, 1000);\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:642', '[rePurchase] 再次购买异常:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const doApplyRefund = (reason) => { return __awaiter(this, void 0, void 0, function* () {\n try {\n const success = yield supabaseService.applyRefund(orderId.value, reason);\n if (success) {\n if (order.value != null) {\n order.value.order_status = 6;\n }\n uni.showToast({ title: '申请已提交' });\n }\n else {\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:659', '[doApplyRefund] 申请退款异常:', e);\n uni.showToast({ title: '提交失败', icon: 'none' });\n }\n }); };\n const applyRefund = () => {\n uni.showModal(new UTSJSONObject({\n title: '申请退款',\n editable: true,\n placeholderText: '请输入退款原因',\n success: (res) => {\n var _a;\n if (res.confirm) {\n const reason = (_a = res.content) !== null && _a !== void 0 ? _a : '用户主动申请';\n doApplyRefund(reason);\n }\n }\n }));\n };\n const applyAfterSales = () => {\n // 售后逻辑类似退款,或者是跳转到专门的售后单页面\n applyRefund();\n };\n const goToShop = () => {\n var _a, _b;\n // 跳转到店铺详情\n const merchantId = (_b = (_a = order.value) === null || _a === void 0 ? null : _a.merchant_id) !== null && _b !== void 0 ? _b : '';\n if (merchantId != '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?id=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '商家信息不存在', icon: 'none' });\n }\n };\n const goToProduct = (pid) => {\n uni.navigateTo({ url: `/pages/mall/consumer/product-detail?id=${pid}` });\n };\n const shareForFree = () => { return __awaiter(this, void 0, void 0, function* () {\n if (orderItems.value.length === 0) {\n uni.showToast({ title: '没有可分享的商品', icon: 'none' });\n return Promise.resolve(null);\n }\n const firstItem = orderItems.value[0];\n try {\n uni.showLoading({ title: '创建分享...' });\n const result = yield supabaseService.createShareRecord(firstItem.product_id, orderId.value, firstItem.id, firstItem.product_name, firstItem.image_url, firstItem.price);\n uni.hideLoading();\n const shareIdRaw = result.get('id');\n const shareCodeRaw = result.get('share_code');\n if (shareIdRaw != null && shareCodeRaw != null) {\n const shareId = shareIdRaw;\n const shareCode = shareCodeRaw;\n uni.showModal(new UTSJSONObject({\n title: '分享成功',\n content: `您的分享码: ${shareCode}\\n分享给好友,当有4人购买后即可免单!`,\n confirmText: '查看详情',\n success: (res) => {\n if (res.confirm) {\n uni.navigateTo({ url: `/pages/mall/consumer/share/detail?id=${shareId}` });\n }\n }\n }));\n }\n else {\n uni.showToast({ title: '分享创建失败', icon: 'none' });\n }\n }\n catch (e) {\n uni.hideLoading();\n uni.__f__('error', 'at pages/mall/consumer/order-detail.uvue:741', '[shareForFree] 创建分享失败:', e);\n uni.showToast({ title: '分享失败', icon: 'none' });\n }\n }); };\n // 使用 onBackPress 拦截物理返回键和系统导航栏返回\n onBackPress((_ = null) => {\n const pages = getCurrentPages();\n uni.__f__('log', 'at pages/mall/consumer/order-detail.uvue:749', '[order-detail onBackPress] pages count:', pages.length);\n if (pages.length > 1) {\n // 正常返回上一页\n return false;\n }\n // 如果只有当前页面,跳转到 orders\n uni.redirectTo({ url: '/pages/mall/consumer/orders' });\n return true;\n });\n // 生命周期 - 在所有函数定义之后\n onLoad((options = null) => {\n const id = options['id'];\n const orderIdParam = options['orderId'];\n if (id != null && id != '') {\n orderId.value = id;\n loadOrderDetail();\n }\n else if (orderIdParam != null && orderIdParam != '') {\n orderId.value = orderIdParam;\n loadOrderDetail();\n }\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(getStatusIcon()),\n b: _t(getStatusText()),\n c: _t(getStatusDesc()),\n d: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n e: _o(shareForFree)\n } : {}, {\n f: _n(getStatusClass()),\n g: order.value != null && (order.value?.order_status ?? 0) >= 2\n }, order.value != null && (order.value?.order_status ?? 0) >= 2 ? _e({\n h: _t(deliveryAddress.value?.name ?? ''),\n i: _t(deliveryAddress.value?.phone ?? ''),\n j: _t(getFullAddress(deliveryAddress.value)),\n k: deliveryInfo.value != null && deliveryInfo.value?.tracking_no != ''\n }, deliveryInfo.value != null && deliveryInfo.value?.tracking_no != '' ? {\n l: _t(deliveryInfo.value?.carrier_name ?? '快递运单'),\n m: _t(deliveryInfo.value?.tracking_no ?? ''),\n n: _o($event => { return copyText(deliveryInfo.value?.tracking_no ?? ''); })\n } : {}) : {}, {\n o: _t(shopName.value),\n p: _o(goToShop),\n q: _f(orderItems.value, (item, k0, i0) => {\n return _e({\n a: item.image_url != null && item.image_url != '' ? item.image_url : '/static/default-product.png',\n b: _t(item.product_name),\n c: item.specifications\n }, item.specifications ? {\n d: _t(getSpecText(item.specifications))\n } : {}, {\n e: _t(item.price),\n f: _t(item.quantity),\n g: item.id,\n h: _o($event => { return goToProduct(item.product_id); }, item.id)\n });\n }),\n r: order.value != null\n }, order.value != null ? _e({\n s: _t(order.value?.order_no ?? ''),\n t: _o($event => { return copyText(order.value?.order_no ?? ''); }),\n v: _t(formatTime(order.value?.created_at ?? '')),\n w: order.value?.payment_method != null && order.value?.payment_method != ''\n }, order.value?.payment_method != null && order.value?.payment_method != '' ? {\n x: _t(getPaymentMethodText(order.value?.payment_method))\n } : {}, {\n y: order.value?.paid_at != null && order.value?.paid_at != ''\n }, order.value?.paid_at != null && order.value?.paid_at != '' ? {\n z: _t(formatTime(order.value?.paid_at ?? ''))\n } : {}, {\n A: order.value?.shipped_at != null && order.value?.shipped_at != ''\n }, order.value?.shipped_at != null && order.value?.shipped_at != '' ? {\n B: _t(formatTime(order.value?.shipped_at ?? ''))\n } : {}, {\n C: order.value?.completed_at != null && order.value?.completed_at != ''\n }, order.value?.completed_at != null && order.value?.completed_at != '' ? {\n D: _t(formatTime(order.value?.completed_at ?? ''))\n } : {}) : {}, {\n E: order.value != null\n }, order.value != null ? _e({\n F: _t(order.value?.product_amount ?? 0),\n G: _t(order.value?.shipping_fee != null ? order.value?.shipping_fee : 0),\n H: (order.value?.discount_amount ?? 0) > 0\n }, (order.value?.discount_amount ?? 0) > 0 ? {\n I: _t(order.value?.discount_amount ?? 0)\n } : {}, {\n J: _t(order.value?.total_amount ?? 0)\n }) : {}, {\n K: order.value != null\n }, order.value != null ? _e({\n L: _o(contactService),\n M: order.value?.order_status === 1\n }, order.value?.order_status === 1 ? {\n N: _o(cancelOrder),\n O: _o(payOrder)\n } : {}, {\n P: order.value?.order_status === 2\n }, order.value?.order_status === 2 ? {\n Q: _o(applyRefund),\n R: _o(remindDelivery)\n } : {}, {\n S: order.value?.order_status === 3\n }, order.value?.order_status === 3 ? {\n T: _o(viewLogistics),\n U: _o(confirmReceive)\n } : {}, {\n V: order.value?.order_status === 4\n }, order.value?.order_status === 4 ? {\n W: _o(applyAfterSales),\n X: _o(shareForFree),\n Y: _o(rePurchase),\n Z: _o(goToReview)\n } : {}, {\n aa: order.value?.order_status === 5\n }, order.value?.order_status === 5 ? {\n ab: _o(rePurchase)\n } : {}) : {}, {\n ac: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/order-detail.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.setClipboardData","uni.showLoading","uni.hideLoading","uni.navigateTo","uni.makePhoneCall","uni.showActionSheet","uni.showModal","uni.switchTab","uni.redirectTo"],"map":"{\"version\":3,\"file\":\"order-detail.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"order-detail.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75e0993892c7db2809a3390fa640274454e49f5f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75e0993892c7db2809a3390fa640274454e49f5f deleted file mode 100644 index eb3354f6..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/75e0993892c7db2809a3390fa640274454e49f5f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, n as _n, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { TrendData } from \"D:/companyproject/mall/types/analytics/dashboard.ts\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"AnalyticsDateRangePicker\":{\"name\":\"_unref(AnalyticsDateRangePicker)\",\"type\":\"setup\"},\"AnalyticsComboChart\":{\"name\":\"_unref(AnalyticsComboChart)\",\"type\":\"setup\"},\"AnalyticsRegionMap\":{\"name\":\"_unref(AnalyticsRegionMap)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + _unref(AnalyticsDateRangePicker) + _unref(AnalyticsComboChart) + _unref(AnalyticsRegionMap))();\n}\nimport AnalyticsComboChart from '@/components/analytics/AnalyticsComboChart.uvue';\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport AnalyticsRegionMap from '@/components/analytics/AnalyticsRegionMap.uvue';\nimport AnalyticsDateRangePicker from '@/components/analytics/AnalyticsDateRangePicker.uvue';\nimport { computed, reactive, ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { fetchSalesKpis, fetchSalesTrend, fetchSalesTopProducts, fetchSalesTopMerchants } from \"@/services/analytics/salesReportService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { TimePeriod } from \"@/types/analytics/common\";\nimport { SalesData } from \"@/types/analytics/sales\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'sales-report',\n setup(__props) {\n const lastUpdateTime = ref('');\n const selectedPeriod = ref('7d');\n const customRangeEnabled = ref(false);\n const selectedStartDate = ref('');\n const selectedEndDate = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/sales-report');\n const loading = ref(false);\n const timePeriods = ref([\n new TimePeriod({ value: '7d', label: '7天' }),\n new TimePeriod({ value: '30d', label: '30天' }),\n new TimePeriod({ value: '90d', label: '90天' }),\n new TimePeriod({ value: '1y', label: '1年' })\n ]);\n const salesData = reactive(new SalesData({\n gmv: 0,\n gmv_growth: 0,\n orders: 0,\n order_growth: 0,\n conversion_rate: 0,\n conversion_growth: 0,\n avg_order_amount: 0,\n avg_order_growth: 0\n }));\n const trend = reactive(new TrendData({ x: [], gmv: [], orders: [] }));\n const topProducts = reactive([]);\n const topMerchants = reactive([]);\n const selectedPeriodText = computed(() => {\n const p = UTS.arrayFind(timePeriods.value, (t) => { return t.value === selectedPeriod.value; });\n return p ? p.label : '7天';\n });\n onLoad(() => {\n updateTime();\n loadSalesData();\n });\n function calcDateRange() {\n const now = new Date();\n const endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const days = selectedPeriod.value === '7d' ? 7 : selectedPeriod.value === '30d' ? 30 : selectedPeriod.value === '90d' ? 90 : 365;\n const startDate = new Date(endDate.getTime() - (days - 1) * 24 * 60 * 60 * 1000);\n return new UTSJSONObject({ startDate, endDate, days });\n }\n function loadSalesData() {\n return __awaiter(this, void 0, void 0, function* () {\n loading.value = true;\n try {\n updateTime();\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n // KPI\n const kpi = yield fetchSalesKpis(selectedPeriod.value, range);\n salesData.gmv = kpi.gmv;\n salesData.gmv_growth = kpi.gmv_growth;\n salesData.orders = kpi.orders;\n salesData.order_growth = kpi.order_growth;\n salesData.conversion_rate = kpi.conversion_rate;\n salesData.conversion_growth = kpi.conversion_growth;\n salesData.avg_order_amount = kpi.avg_order_amount;\n salesData.avg_order_growth = kpi.avg_order_growth;\n // 趋势\n const t = yield fetchSalesTrend(selectedPeriod.value, range);\n trend.x = t.x;\n trend.gmv = t.gmv;\n trend.orders = t.orders;\n // TOP 商品/商家\n const pList = yield fetchSalesTopProducts(selectedPeriod.value, 50, range);\n for (let i = 0; i < pList.length; i++) {\n pList[i].rank = i + 1;\n }\n topProducts.splice(0, topProducts.length, ...pList);\n const mList = yield fetchSalesTopMerchants(selectedPeriod.value, 50, range);\n for (let i = 0; i < mList.length; i++) {\n mList[i].rank = i + 1;\n }\n topMerchants.splice(0, topMerchants.length, ...mList);\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/sales-report.uvue:270', '❌ loadSalesData failed', e);\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '数据加载失败' })), icon: 'none', duration: 2000 });\n }\n finally {\n loading.value = false;\n updateTime();\n }\n });\n }\n function selectPeriod(p) {\n selectedPeriod.value = p;\n customRangeEnabled.value = false;\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n loadSalesData();\n }\n function refreshData() {\n loadSalesData();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出图片'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function formatInt(n) {\n const v = isFinite(n) ? Math.round(n) : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toString();\n }\n function formatMoney(n) {\n const v = isFinite(n) ? n : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toFixed(0);\n }\n function formatPct(n) {\n const v = isFinite(n) ? n : 0;\n const sign = v > 0 ? '+' : '';\n return `${sign}${v.toFixed(1)}%`;\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n function toggleCustomRange() {\n customRangeEnabled.value = !customRangeEnabled.value;\n }\n function onDateRangeApply(range) {\n selectedStartDate.value = range.start;\n selectedEndDate.value = range.end;\n customRangeEnabled.value = true;\n loadSalesData();\n }\n function onDateRangeClear() {\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n customRangeEnabled.value = false;\n loadSalesData();\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '销售报表',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: selectedPeriod.value === p.value && !customRangeEnabled.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n m: customRangeEnabled.value ? 1 : '',\n n: _o(toggleCustomRange),\n o: customRangeEnabled.value\n }, customRangeEnabled.value ? {\n p: _o(onDateRangeApply),\n q: _o(onDateRangeClear),\n r: _p({\n initialStartDate: selectedStartDate.value,\n initialEndDate: selectedEndDate.value\n })\n } : {}, {\n s: _t(formatMoney(salesData.gmv)),\n t: _t(formatPct(salesData.gmv_growth)),\n v: _t(formatInt(salesData.orders)),\n w: _t(formatPct(salesData.order_growth)),\n x: _t(formatPct(salesData.conversion_rate)),\n y: _t(formatPct(salesData.conversion_growth)),\n z: _t(formatMoney(salesData.avg_order_amount)),\n A: _t(formatPct(salesData.avg_order_growth)),\n B: _t(selectedPeriodText.value),\n C: loading.value || !trend.x || trend.x.length === 0\n }, loading.value || !trend.x || trend.x.length === 0 ? {\n D: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n E: _p({\n xLabels: trend.x,\n gmv: trend.gmv,\n orders: trend.orders,\n height: 320\n })\n }, {\n F: _p({\n startDate: calcDateRange().startDate,\n endDate: calcDateRange().endDate,\n topMerchants: topMerchants,\n loading: loading.value\n }),\n G: loading.value || topProducts.length === 0\n }, loading.value || topProducts.length === 0 ? {\n H: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n I: _f(topProducts, (p, k0, i0) => {\n return {\n a: _t(p.rank),\n b: _t(p.name),\n c: _t(p.sales),\n d: p.id\n };\n })\n }, {\n J: loading.value || topMerchants.length === 0\n }, loading.value || topMerchants.length === 0 ? {\n K: _t(loading.value ? '加载中...' : '暂无数据')\n } : {\n L: _f(topMerchants, (m, k0, i0) => {\n return {\n a: _t(m.rank),\n b: _t(m.name),\n c: _t(formatMoney(m.sales)),\n d: _t(m.growth >= 0 ? '+' : ''),\n e: _t(m.growth),\n f: _n(m.growth >= 0 ? 'pos' : 'neg'),\n g: m.id\n };\n })\n }, {\n M: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/sales-report.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/companyproject/mall/components/analytics/AnalyticsComboChart.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsRegionMap.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsDateRangePicker.uvue.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"sales-report.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"sales-report.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;;AAC1J,MAAM,sBAAsB,GAAG,iYAAiY,CAAA;AACha,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,eAAe,CAAC,GAAC,MAAM,CAAC,oBAAoB,CAAC,GAAC,MAAM,CAAC,wBAAwB,CAAC,GAAC,MAAM,CAAC,mBAAmB,CAAC,GAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAA;CAAE;AAE/J,OAAO,mBAAmB,MAAM,iDAAiD,CAAA;AACjF,OAAO,oBAAoB,MAAM,kDAAkD,CAAA;AACnF,OAAO,eAAe,MAAM,6CAA6C,CAAA;AACzE,OAAO,kBAAkB,MAAM,gDAAgD,CAAA;AAC/E,OAAO,wBAAwB,MAAM,sDAAsD,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;OAEnC,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE;OAClF,EAAE,iBAAiB,EAAE;OAChB,EAAE,UAAU,EAAE;OACd,EAAkB,SAAS,EAA6B;AAGpE,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,cAAc;IACtB,KAAK,CAAC,OAAO;QAEf,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAC9B,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QAEhC,MAAM,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,iBAAiB,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,WAAW,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;QAE1B,MAAM,WAAW,GAAG,GAAG,CAAoB;2BACzC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;2BAC5B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;2BAC9B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;2BAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SAC7B,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,QAAQ,eAAY;YACpC,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;SACpB,EAAC,CAAA;QAEF,MAAM,KAAK,GAAG,QAAQ,eAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAC,CAAA;QACtE,MAAM,WAAW,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAA;QAEtD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;YAClC,MAAM,CAAC,iBAAG,WAAW,CAAC,KAAK,EAAM,CAAC,CAAC,OAAK,OAAA,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,EAAhC,CAAgC,CAAC,CAAA;YACzE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC;YACL,UAAU,EAAE,CAAA;YACZ,aAAa,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,SAAS,aAAa;YACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAC1E,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YAChI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;YAChF,yBAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA;QACrC,CAAC;QAED,SAAe,aAAa;;gBAC1B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;gBACpB,IAAI;oBACF,UAAU,EAAE,CAAA;oBAEZ,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK;wBAC5D,CAAC,mBAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC,KAAK,EAAE,EAChE,CAAC,CAAC,IAAI,CAAA;oBAER,MAAM;oBACN,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;oBAC7D,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;oBACvB,SAAS,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;oBACrC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC7B,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;oBACzC,SAAS,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAA;oBAC/C,SAAS,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAA;oBACnD,SAAS,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;oBACjD,SAAS,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAA;oBAEjD,KAAK;oBACL,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;oBAC5D,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBACb,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;oBACjB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;oBAEvB,YAAY;oBACZ,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;oBAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;qBACtB;oBACD,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAA;oBAEnD,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;oBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;qBACtB;oBACD,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAA;iBACtD;gBAAC,OAAO,CAAC,EAAE;oBACV,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,+CAA+C,EAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;oBAC9F,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,oBAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;iBAC5G;wBAAS;oBACR,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;oBACrB,UAAU,EAAE,CAAA;iBACb;YACH,CAAC;SAAA;QAED,SAAS,YAAY,CAAC,CAAS;YAC7B,cAAc,CAAC,KAAK,GAAG,CAAC,CAAA;YACxB,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAA;YAChC,iBAAiB,CAAC,KAAK,GAAG,EAAE,CAAA;YAC5B,eAAe,CAAC,KAAK,GAAG,EAAE,CAAA;YAC1B,aAAa,EAAE,CAAA;QACjB,CAAC;QAED,SAAS,WAAW;YAClB,aAAa,EAAE,CAAA;YACf,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,SAAS,YAAY;YACnB,GAAG,CAAC,eAAe,CAAC;gBAClB,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;gBACtC,OAAO,EAAE,QAAM,OAAA,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAjD,CAAiD;aACjE,CAAC,CAAA;QACJ,CAAC;QAED,SAAS,UAAU;YACjB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACvD,cAAc,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAA;QACtC,CAAC;QAED,SAAS,SAAS,CAAC,CAAS;YAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI,KAAK;gBAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YACnD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC;QAED,SAAS,WAAW,CAAC,CAAS;YAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,IAAI,CAAC,IAAI,KAAK;gBAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YACnD,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;QAED,SAAS,SAAS,CAAC,CAAS;YAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7B,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;QAClC,CAAC;QAED,SAAS,UAAU;YACjB,eAAe,CAAC,KAAK,GAAG,IAAI,CAAA;QAC9B,CAAC;QAED,SAAS,mBAAmB,CAAC,OAAgB;YAC3C,eAAe,CAAC,KAAK,GAAG,OAAO,CAAA;QACjC,CAAC;QAED,SAAS,cAAc;YACrB,YAAY,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAA;QAC1C,CAAC;QAED,SAAS,aAAa;YACpB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;QAC5B,CAAC;QAED,SAAS,YAAY;YACnB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,SAAS,kBAAkB;YACzB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,SAAS,gBAAgB;YACvB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,SAAS,YAAY;YACnB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,SAAS,cAAc;YACrB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,CAAC;QAED,SAAS,cAAc;YACrB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,SAAS,iBAAiB;YACxB,kBAAkB,CAAC,KAAK,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAA;QACtD,CAAC;QAED,SAAS,gBAAgB,CAAC,KAAqC;YAC7D,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YACrC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;YACjC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAA;YAC/B,aAAa,EAAE,CAAA;QACjB,CAAC;QAED,SAAS,gBAAgB;YACvB,iBAAiB,CAAC,KAAK,GAAG,EAAE,CAAA;YAC5B,eAAe,CAAC,KAAK,GAAG,EAAE,CAAA;YAC1B,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAA;YAChC,aAAa,EAAE,CAAA;QACjB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;gBAClB,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;gBACzB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC;oBACJ,KAAK,EAAE,MAAM;oBACb,cAAc,EAAE,cAAc,CAAC,KAAK;oBACpC,cAAc,EAAE,eAAe,CAAC,KAAK;iBACtC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC;oBACJ,OAAO,EAAE,eAAe,CAAC,KAAK;oBAC9B,WAAW,EAAE,WAAW,CAAC,KAAK;iBAC/B,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;oBACjC,OAAO;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBACd,CAAC,EAAE,CAAC,CAAC,KAAK;wBACV,CAAC,EAAE,cAAc,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACzE,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAArB,CAAqB,EAAE,CAAC,CAAC,KAAK,CAAC;qBAChD,CAAC;gBACJ,CAAC,CAAC;gBACF,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxB,CAAC,EAAE,kBAAkB,CAAC,KAAK;aAC5B,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;gBACvB,CAAC,EAAE,EAAE,CAAC;oBACJ,gBAAgB,EAAE,iBAAiB,CAAC,KAAK;oBACzC,cAAc,EAAE,eAAe,CAAC,KAAK;iBACtC,CAAC;aACH,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACtC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACxC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAC3C,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBAC7C,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAC5C,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC/B,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;aACrD,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrD,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;aACzC,CAAC,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC;oBACJ,OAAO,EAAE,KAAK,CAAC,CAAC;oBAChB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,GAAG;iBACZ,CAAC;aACH,EAAE;gBACD,CAAC,EAAE,EAAE,CAAC;oBACJ,SAAS,EAAE,aAAa,EAAE,CAAC,SAAS;oBACpC,OAAO,EAAE,aAAa,EAAE,CAAC,OAAO;oBAChC,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,OAAO,CAAC,KAAK;iBACvB,CAAC;gBACF,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;aAC7C,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;aACzC,CAAC,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;oBAC3B,OAAO;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACb,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACb,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBACd,CAAC,EAAE,CAAC,CAAC,EAAE;qBACR,CAAC;gBACJ,CAAC,CAAC;aACH,EAAE;gBACD,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;aAC9C,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;aACzC,CAAC,CAAC,CAAC;gBACF,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;oBAC5B,OAAO;wBACL,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACb,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACb,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC3B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;wBACf,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBACpC,CAAC,EAAE,CAAC,CAAC,EAAE;qBACR,CAAC;gBACJ,CAAC,CAAC;aACH,EAAE;gBACD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7997832069b9c26d1600eabf42eb75c6d1ba1a5f b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7997832069b9c26d1600eabf42eb75c6d1ba1a5f deleted file mode 100644 index 5b03d86a..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7997832069b9c26d1600eabf42eb75c6d1ba1a5f +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, p as _p, toDisplayString as _toDisplayString, t as _t, f as _f, n as _n, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AnalyticsTopBar\":{\"name\":\"_unref(AnalyticsTopBar)\",\"type\":\"setup\"},\"AnalyticsSidebarMenu\":{\"name\":\"_unref(AnalyticsSidebarMenu)\",\"type\":\"setup\"},\"AnalyticsDateRangePicker\":{\"name\":\"_unref(AnalyticsDateRangePicker)\",\"type\":\"setup\"},\"EChartsView\":{\"name\":\"EChartsView\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AnalyticsTopBar) + _unref(AnalyticsSidebarMenu) + _unref(AnalyticsDateRangePicker) + EChartsView)();\n}\nimport { computed, reactive, ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport AnalyticsSidebarMenu from '@/components/analytics/AnalyticsSidebarMenu.uvue';\nimport AnalyticsTopBar from '@/components/analytics/AnalyticsTopBar.uvue';\nimport AnalyticsDateRangePicker from '@/components/analytics/AnalyticsDateRangePicker.uvue';\nimport EChartsView from '@/uni_modules/charts/EChartsView.vue';\nimport { fetchDeliveryAnalysis } from \"@/services/analytics/deliveryAnalysisService\";\nimport { mapAnalyticsError } from \"@/services/analytics/errorMapper\";\nimport { TimePeriod } from \"@/types/analytics/common\";\nimport { DeliveryData, DriverRank } from \"@/types/analytics/delivery\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'delivery-analysis',\n setup(__props) {\n const lastUpdateTime = ref('');\n const selectedPeriod = ref('7d');\n const customRangeEnabled = ref(false);\n const selectedStartDate = ref('');\n const selectedEndDate = ref('');\n const showMoreMenu = ref(false);\n const showSidebarMenu = ref(false);\n const currentPath = ref('/pages/mall/analytics/delivery-analysis');\n const timePeriods = ref([\n new TimePeriod({ value: '7d', label: '7天' }),\n new TimePeriod({ value: '30d', label: '30天' }),\n new TimePeriod({ value: '90d', label: '90天' }),\n new TimePeriod({ value: '1y', label: '1年' })\n ]);\n const deliveryData = reactive(new DeliveryData({\n avg_delivery_time: 0,\n time_growth: 0,\n total_fee: 0,\n avg_fee: 0,\n avg_orders_per_driver: 0,\n satisfaction_rate: 0,\n satisfaction_growth: 0\n }));\n const topDrivers = reactive([]);\n const timeChartOption = ref(new UTSJSONObject({}));\n const feeChartOption = ref(new UTSJSONObject({}));\n const isRankHover = ref(false);\n const _trendRows = ref([]);\n const selectedPeriodText = computed(() => {\n const p = UTS.arrayFind(timePeriods.value, (t) => { return t.value === selectedPeriod.value; });\n return p ? p.label : '7天';\n });\n onLoad(() => {\n updateTime();\n loadDeliveryData();\n });\n function loadDeliveryData() {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _q, _r, _s;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const range = selectedStartDate.value && selectedEndDate.value\n ? new UTSJSONObject({ start: selectedStartDate.value, end: selectedEndDate.value }) : null;\n const data = yield fetchDeliveryAnalysis(selectedPeriod.value, range);\n const trendList = data.trendList;\n const topList = data.topList;\n const trendRows = [];\n let totalFee = 0;\n let totalOrders = 0;\n for (let i = 0; i < trendList.length; i++) {\n const r = trendList[i];\n const dayStr = (_a = r.getString('day')) !== null && _a !== void 0 ? _a : '';\n const orders = (_b = r.getNumber('completed_orders')) !== null && _b !== void 0 ? _b : 0;\n const avgMin = (_c = r.getNumber('avg_delivery_minutes')) !== null && _c !== void 0 ? _c : 0;\n const avgFee = (_d = r.getNumber('avg_fee')) !== null && _d !== void 0 ? _d : 0;\n const tFee = (_g = r.getNumber('total_fee')) !== null && _g !== void 0 ? _g : 0;\n totalOrders += orders;\n totalFee += tFee;\n const obj = new UTSJSONObject();\n obj.set('day', dayStr);\n obj.set('avg_delivery_time', avgMin);\n obj.set('avg_fee', avgFee);\n obj.set('satisfaction_rate', 0);\n trendRows.push(obj);\n }\n let satisSum = 0;\n let satisCnt = 0;\n for (let i = 0; i < topList.length; i++) {\n const r = topList[i];\n const rating = r.getNumber('rating_avg');\n if (rating != null) {\n satisSum += rating;\n satisCnt += 1;\n }\n }\n const satisAvg = satisCnt > 0 ? satisSum / satisCnt : 0;\n for (let i = 0; i < trendRows.length; i++) {\n trendRows[i].set('satisfaction_rate', satisAvg);\n }\n const last = trendRows.length > 0 ? trendRows[trendRows.length - 1] : null;\n const prev = trendRows.length > 1 ? trendRows[trendRows.length - 2] : null;\n const lastAvgTime = last != null ? (_h = last.getNumber('avg_delivery_time')) !== null && _h !== void 0 ? _h : 0 : 0;\n const prevAvgTime = prev != null ? (_j = prev.getNumber('avg_delivery_time')) !== null && _j !== void 0 ? _j : 0 : 0;\n const timeGrowth = prevAvgTime > 0 ? ((lastAvgTime - prevAvgTime) / prevAvgTime) * 100 : 0;\n const lastSatis = last != null ? (_k = last.getNumber('satisfaction_rate')) !== null && _k !== void 0 ? _k : 0 : 0;\n const prevSatis = prev != null ? (_l = prev.getNumber('satisfaction_rate')) !== null && _l !== void 0 ? _l : 0 : 0;\n const satisGrowth = prevSatis > 0 ? ((lastSatis - prevSatis) / prevSatis) * 100 : 0;\n const dayCount = Math.max(1, trendRows.length);\n const driverCount = Math.max(1, topList.length);\n const avgOrdersPerDriverPerDay = (totalOrders / driverCount) / dayCount;\n deliveryData.avg_delivery_time = Math.round(lastAvgTime);\n deliveryData.time_growth = timeGrowth;\n deliveryData.total_fee = totalFee;\n deliveryData.avg_fee = totalOrders > 0 ? totalFee / totalOrders : 0;\n deliveryData.avg_orders_per_driver = avgOrdersPerDriverPerDay;\n deliveryData.satisfaction_rate = lastSatis;\n deliveryData.satisfaction_growth = satisGrowth;\n _trendRows.value = trendRows;\n const list = [];\n for (let i = 0; i < topList.length; i++) {\n const r = topList[i];\n list.push(new DriverRank({\n id: (_m = r.getString('driver_id')) !== null && _m !== void 0 ? _m : String(i),\n rank: i + 1,\n name: (_q = r.getString('driver_name')) !== null && _q !== void 0 ? _q : '未知',\n orders: (_r = r.getNumber('orders')) !== null && _r !== void 0 ? _r : 0,\n rating: (_s = r.getNumber('rating_avg')) !== null && _s !== void 0 ? _s : 0\n }));\n }\n topDrivers.splice(0, topDrivers.length, ...list);\n updateTime();\n buildChartOptions();\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/analytics/delivery-analysis.uvue:282', 'loadDeliveryData failed:', e);\n updateTime();\n buildChartOptions();\n uni.showToast({ title: mapAnalyticsError(e, new UTSJSONObject({ fallbackMessage: '配送分析数据加载失败' })), icon: 'none' });\n }\n });\n }\n function selectPeriod(p) {\n selectedPeriod.value = p;\n customRangeEnabled.value = false;\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n loadDeliveryData();\n }\n function toggleCustomRange() {\n customRangeEnabled.value = !customRangeEnabled.value;\n }\n function onDateRangeApply(range) {\n selectedStartDate.value = range.start;\n selectedEndDate.value = range.end;\n customRangeEnabled.value = true;\n loadDeliveryData();\n }\n function onDateRangeClear() {\n selectedStartDate.value = '';\n selectedEndDate.value = '';\n customRangeEnabled.value = false;\n loadDeliveryData();\n }\n function refreshData() {\n loadDeliveryData();\n uni.showToast({ title: '已刷新', icon: 'success' });\n }\n function exportReport() {\n uni.showActionSheet({\n itemList: ['导出Excel', '导出PDF', '导出图片'],\n success: () => { return uni.showToast({ title: '导出成功', icon: 'success' }); }\n });\n }\n function updateTime() {\n const now = new Date();\n const hh = now.getHours().toString().padStart(2, '0');\n const mm = now.getMinutes().toString().padStart(2, '0');\n lastUpdateTime.value = `${hh}:${mm}`;\n }\n function formatInt(n) {\n const v = isFinite(n) ? Math.round(n) : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toString();\n }\n function formatMoney(n) {\n const v = isFinite(n) ? n : 0;\n if (v >= 10000)\n return (v / 10000).toFixed(1) + '万';\n return v.toFixed(2);\n }\n function formatPct(n) {\n const v = isFinite(n) ? n : 0;\n const sign = v > 0 ? '+' : '';\n return `${sign}${v.toFixed(1)}%`;\n }\n function formatScore(n) {\n const v = isFinite(n) ? n : 0;\n return v.toFixed(1);\n }\n function buildChartOptions() {\n var _a, _b, _c, _d;\n const rows = Array.isArray(_trendRows.value) ? _trendRows.value : [];\n const xAxis = [];\n const timeSeries = [];\n const feeSeries = [];\n const satisSeries = [];\n for (let i = 0; i < rows.length; i++) {\n const r = rows[i];\n const day = (_a = r.getString('day')) !== null && _a !== void 0 ? _a : '';\n xAxis.push(day.length >= 10 ? day.substring(5, 10) : day);\n timeSeries.push((_b = r.getNumber('avg_delivery_time')) !== null && _b !== void 0 ? _b : 0);\n feeSeries.push((_c = r.getNumber('avg_fee')) !== null && _c !== void 0 ? _c : 0);\n satisSeries.push((_d = r.getNumber('satisfaction_rate')) !== null && _d !== void 0 ? _d : 0);\n }\n timeChartOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n legend: new UTSJSONObject({\n data: ['平均配送时间(分钟)', '满意度(评分)'],\n top: 'bottom',\n itemGap: 30,\n itemWidth: 16,\n itemHeight: 16\n }),\n grid: new UTSJSONObject({ left: 40, right: 50, top: 30, bottom: 60 }),\n xAxis: new UTSJSONObject({\n type: 'category',\n data: xAxis,\n axisTick: new UTSJSONObject({ alignWithLabel: true })\n }),\n yAxis: [\n new UTSJSONObject({\n type: 'value',\n name: '配送时间',\n min: 0,\n splitLine: new UTSJSONObject({ lineStyle: new UTSJSONObject({ color: '#e5e7eb' }) })\n }),\n new UTSJSONObject({\n type: 'value',\n name: '满意度',\n min: 0,\n max: 5,\n position: 'right',\n splitLine: new UTSJSONObject({ show: false })\n })\n ],\n series: [\n new UTSJSONObject({\n name: '平均配送时间(分钟)',\n type: 'line',\n smooth: true,\n symbolSize: 6,\n data: timeSeries,\n yAxisIndex: 0\n }),\n new UTSJSONObject({\n name: '满意度(评分)',\n type: 'line',\n smooth: true,\n symbol: 'circle',\n symbolSize: 6,\n data: satisSeries,\n yAxisIndex: 1\n })\n ]\n });\n feeChartOption.value = new UTSJSONObject({\n tooltip: new UTSJSONObject({ trigger: 'axis' }),\n grid: new UTSJSONObject({ left: 40, right: 20, top: 20, bottom: 30 }),\n xAxis: new UTSJSONObject({ type: 'category', data: xAxis }),\n yAxis: new UTSJSONObject({ type: 'value' }),\n series: [\n new UTSJSONObject({\n name: '平均配送费(元)',\n type: 'bar',\n data: feeSeries\n })\n ]\n });\n }\n function handleMenu() {\n showSidebarMenu.value = true;\n }\n function handleSidebarUpdate(visible) {\n showSidebarMenu.value = visible;\n }\n function toggleMoreMenu() {\n showMoreMenu.value = !showMoreMenu.value;\n }\n function closeMoreMenu() {\n showMoreMenu.value = false;\n }\n function handleSearch() {\n uni.showToast({ title: '搜索', icon: 'none' });\n }\n function handleNotification() {\n uni.showToast({ title: '通知', icon: 'none' });\n }\n function handleFullscreen() {\n uni.showToast({ title: '全屏', icon: 'none' });\n }\n function handleMobile() {\n uni.showToast({ title: '移动端', icon: 'none' });\n }\n function handleDropdown() {\n uni.showToast({ title: '下拉菜单', icon: 'none' });\n }\n function handleSettings() {\n uni.showToast({ title: '设置', icon: 'none' });\n }\n function onRankHover(hover) {\n isRankHover.value = hover;\n }\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(handleMenu),\n b: _o(refreshData),\n c: _o(handleSearch),\n d: _o(handleNotification),\n e: _o(handleFullscreen),\n f: _o(handleMobile),\n g: _o(handleDropdown),\n h: _o(handleSettings),\n i: _p({\n title: '配送效率分析',\n lastUpdateTime: lastUpdateTime.value,\n sidebarVisible: showSidebarMenu.value\n }),\n j: _o(handleSidebarUpdate),\n k: _p({\n visible: showSidebarMenu.value,\n currentPath: currentPath.value\n }),\n l: _f(timePeriods.value, (p, k0, i0) => {\n return {\n a: _t(p.label),\n b: p.value,\n c: selectedPeriod.value === p.value && !customRangeEnabled.value ? 1 : '',\n d: _o($event => { return selectPeriod(p.value); }, p.value)\n };\n }),\n m: customRangeEnabled.value ? 1 : '',\n n: _o(toggleCustomRange),\n o: customRangeEnabled.value\n }, customRangeEnabled.value ? {\n p: _o(onDateRangeApply),\n q: _o(onDateRangeClear),\n r: _p({\n initialStartDate: selectedStartDate.value,\n initialEndDate: selectedEndDate.value\n })\n } : {}, {\n s: _t(deliveryData.avg_delivery_time),\n t: _t(formatPct(deliveryData.time_growth)),\n v: _t(formatMoney(deliveryData.total_fee)),\n w: _t(formatMoney(deliveryData.avg_fee)),\n x: _t(formatInt(deliveryData.avg_orders_per_driver)),\n y: _t(formatScore(deliveryData.satisfaction_rate)),\n z: _t(formatPct(deliveryData.satisfaction_growth)),\n A: _t(selectedPeriodText.value),\n B: _p({\n option: timeChartOption.value\n }),\n C: _p({\n option: feeChartOption.value\n }),\n D: _f(topDrivers, (d, k0, i0) => {\n return {\n a: _t(d.rank),\n b: _t(d.name),\n c: _t(d.orders),\n d: _t(d.rating),\n e: _n(d.rating >= 4.5 ? 'pos' : 'neg'),\n f: d.id\n };\n }),\n E: _o($event => { return onRankHover(true); }),\n F: _o($event => { return onRankHover(false); }),\n G: _sei(_gei(_ctx, ''), 'view'),\n H: _o(closeMoreMenu)\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/analytics/delivery-analysis.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/components/analytics/AnalyticsSidebarMenu.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsTopBar.uvue.ts","D:/companyproject/mall/components/analytics/AnalyticsDateRangePicker.uvue.ts","D:/companyproject/mall/uni_modules/charts/EChartsView.vue.ts"],"uniExtApis":["uni.__f__","uni.showToast","uni.showActionSheet"],"map":"{\"version\":3,\"file\":\"delivery-analysis.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"delivery-analysis.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7b116391156b7c6fc34abd9e2ceeff7c6c259c9b b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7b116391156b7c6fc34abd9e2ceeff7c6c259c9b deleted file mode 100644 index 0d749dcd..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7b116391156b7c6fc34abd9e2ceeff7c6c259c9b +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\n/* 返回按钮 */\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'ratings',\n setup(__props) {\n function backToIndex() {\n uni.navigateBack(new UTSJSONObject({ url: '/pages/mall/delivery/index' }));\n }\n /* mock 数据 */\n const currentTab = ref('all');\n const isRefreshing = ref(false);\n const hasMore = ref(true);\n const page = ref(1);\n const list = ref([]);\n const tabs = [\n new UTSJSONObject({ key: 'all', label: '全部' }),\n new UTSJSONObject({ key: 'good', label: '好评' }),\n new UTSJSONObject({ key: 'bad', label: '差评' })\n ];\n function mockList() {\n const tagPool = ['准时送达', '着装整洁', '服务热情', '配送快', '餐品完好'];\n return Array.from({ length: 10 }, (_ = null, i) => { return (new UTSJSONObject({\n id: `${currentTab.value}_${page.value}_${i}`,\n userName: '用户' + (Math.random() * 1000).toFixed(0),\n avatar: 'https://img.yzcdn.cn/vant/cat.jpeg',\n score: currentTab.value === 'bad' ? Math.floor(Math.random() * 2) + 1 : Math.floor(Math.random() * 2) + 4,\n comment: Math.random() > 0.3 ? '配送很及时,服务态度很好!' : '',\n tags: tagPool.slice(0, Math.floor(Math.random() * 3) + 1),\n time: `${Math.floor(Math.random() * 60)}分钟前`\n })); });\n }\n function fetchList(reset = false) {\n return __awaiter(this, void 0, void 0, function* () {\n if (reset)\n page.value = 1;\n const newList = mockList();\n if (reset)\n list.value = newList;\n else\n list.value.push(...newList);\n hasMore.value = page.value < 4;\n page.value++;\n });\n }\n function switchTab(key) {\n if (currentTab.value === key)\n return null;\n currentTab.value = key;\n fetchList(true);\n }\n function loadMore() {\n if (!hasMore.value)\n return null;\n fetchList(false);\n }\n function onRefresh() {\n isRefreshing.value = true;\n fetchList(true).finally(() => { return isRefreshing.value = false; });\n }\n onMounted(() => { return fetchList(true); });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _o(backToIndex),\n b: _f(tabs, (t, k0, i0) => {\n return {\n a: _t(t.label),\n b: t.key,\n c: _n(currentTab.value === t.key ? 'active' : ''),\n d: _o($event => { return switchTab(t.key); }, t.key)\n };\n }),\n c: list.value.length\n }, list.value.length ? _e({\n d: _f(list.value, (item, k0, i0) => {\n return _e({\n a: item.avatar,\n b: _t(item.userName),\n c: _f(5, (s, k1, i1) => {\n return {\n a: s,\n b: _n(s <= item.score ? 'star-on' : 'star-off')\n };\n }),\n d: _t(item.time),\n e: item.comment\n }, item.comment ? {\n f: _t(item.comment)\n } : {}, {\n g: item.tags && item.tags.length\n }, item.tags && item.tags.length ? {\n h: _f(item.tags, (tag, k1, i1) => {\n return {\n a: _t(tag),\n b: tag\n };\n })\n } : {}, {\n i: item.id\n });\n }),\n e: hasMore.value\n }, hasMore.value ? {} : {}) : {}, {\n f: isRefreshing.value,\n g: _o(loadMore),\n h: _o(onRefresh),\n i: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/delivery/ratings.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.navigateBack"],"map":"{\"version\":3,\"file\":\"ratings.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"ratings.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7e6606013b285c04bff008b17b692fe367d4e710 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7e6606013b285c04bff008b17b692fe367d4e710 deleted file mode 100644 index f27196c1..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7e6606013b285c04bff008b17b692fe367d4e710 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, reactive, computed } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport { supabaseService, AddAddressParams, UpdateAddressParams } from \"@/utils/supabaseService\";\nclass Address extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n province: { type: String, optional: false },\n city: { type: String, optional: false },\n district: { type: String, optional: false },\n detail: { type: String, optional: false },\n isDefault: { type: Boolean, optional: false },\n label: { type: String, optional: true }\n };\n },\n name: \"Address\"\n };\n }\n constructor(options, metadata = Address.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.province = this.__props__.province;\n this.city = this.__props__.city;\n this.district = this.__props__.district;\n this.detail = this.__props__.detail;\n this.isDefault = this.__props__.isDefault;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nclass AddressForm extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n name: { type: String, optional: false },\n phone: { type: String, optional: false },\n detail: { type: String, optional: false },\n isDefault: { type: Boolean, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"AddressForm\"\n };\n }\n constructor(options, metadata = AddressForm.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.name = this.__props__.name;\n this.phone = this.__props__.phone;\n this.detail = this.__props__.detail;\n this.isDefault = this.__props__.isDefault;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'address-edit',\n setup(__props) {\n const isEdit = ref(false);\n const addressId = ref('');\n const regionString = ref('');\n const tags = ['家', '公司', '学校'];\n const smartInput = ref('');\n const formData = reactive(new AddressForm({\n name: '',\n phone: '',\n detail: '',\n isDefault: false,\n label: ''\n }));\n const loadAddress = (id) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n // 从Supabase加载地址详情\n const address = yield supabaseService.getAddressById(id);\n if (address != null) {\n formData.name = address.recipient_name;\n formData.phone = address.phone;\n formData.detail = address.detail_address;\n formData.isDefault = address.is_default;\n formData.label = (_a = address.label) !== null && _a !== void 0 ? _a : '';\n regionString.value = `${address.province} ${address.city} ${address.district}`.trim();\n }\n else {\n // 如果Supabase没有找到,尝试从本地存储加载\n const storedAddresses = uni.getStorageSync('addresses');\n if (storedAddresses != null) {\n const addresses = UTS.JSON.parse(storedAddresses);\n const localAddress = UTS.arrayFind(addresses, item => { return item.id === id; });\n if (localAddress != null) {\n formData.name = localAddress.name;\n formData.phone = localAddress.phone;\n formData.detail = localAddress.detail;\n formData.isDefault = localAddress.isDefault;\n formData.label = (_b = localAddress.label) !== null && _b !== void 0 ? _b : '';\n regionString.value = `${localAddress.province} ${localAddress.city} ${localAddress.district}`.trim();\n }\n }\n }\n }\n catch (error) {\n uni.__f__('error', 'at pages/mall/consumer/address-edit.uvue:140', '加载地址详情失败:', error);\n // 失败时从本地存储加载\n const storedAddresses = uni.getStorageSync('addresses');\n if (storedAddresses != null) {\n try {\n const addresses = UTS.JSON.parse(storedAddresses);\n const address = UTS.arrayFind(addresses, item => { return item.id === id; });\n if (address != null) {\n formData.name = address.name;\n formData.phone = address.phone;\n formData.detail = address.detail;\n formData.isDefault = address.isDefault;\n formData.label = (_c = address.label) !== null && _c !== void 0 ? _c : '';\n regionString.value = `${address.province} ${address.city} ${address.district}`.trim();\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/address-edit.uvue:156', '解析本地地址数据失败', e);\n }\n }\n }\n }); };\n onLoad((options = null) => {\n if (options['id'] != null) {\n isEdit.value = true;\n addressId.value = options['id'];\n loadAddress(addressId.value);\n }\n });\n const selectTag = (tag) => {\n if (formData.label === tag) {\n formData.label = '';\n }\n else {\n formData.label = tag;\n }\n };\n const onSwitchChange = (e) => {\n formData.isDefault = e.detail.value;\n };\n const saveAddress = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (formData.name == '') {\n uni.showToast({ title: '请填写收货人', icon: 'none' });\n return Promise.resolve(null);\n }\n if (formData.phone == '') {\n uni.showToast({ title: '请填写手机号码', icon: 'none' });\n return Promise.resolve(null);\n }\n if (regionString.value == '') {\n uni.showToast({ title: '请填写所在地区', icon: 'none' });\n return Promise.resolve(null);\n }\n if (formData.detail == '') {\n uni.showToast({ title: '请填写详细地址', icon: 'none' });\n return Promise.resolve(null);\n }\n // 简单解析地区(这里简化处理,实际应使用选择器)\n const regions = regionString.value.split(' ');\n const province = (_a = regions[0]) !== null && _a !== void 0 ? _a : '';\n const city = (_b = regions[1]) !== null && _b !== void 0 ? _b : '';\n const district = regions.slice(2).join(' ');\n // 构建地址对象\n const addressData = new AddAddressParams({\n recipient_name: formData.name,\n phone: formData.phone,\n province: province,\n city: city,\n district: district,\n detail_address: formData.detail,\n postal_code: '',\n is_default: formData.isDefault,\n label: formData.label\n });\n let success = false;\n if (isEdit.value) {\n // 更新地址\n const updateData = new UpdateAddressParams({\n recipient_name: formData.name,\n phone: formData.phone,\n province: province,\n city: city,\n district: district,\n detail_address: formData.detail,\n postal_code: '',\n is_default: formData.isDefault,\n label: formData.label\n });\n success = yield supabaseService.updateAddress(addressId.value, updateData);\n }\n else {\n // 添加新地址\n success = yield supabaseService.addAddress(addressData);\n }\n if (success) {\n // 同时更新本地存储作为缓存\n const storedAddresses = uni.getStorageSync('addresses');\n let addresses = [];\n if (storedAddresses != null) {\n try {\n addresses = UTS.JSON.parse(storedAddresses);\n }\n catch (e) {\n addresses = [];\n }\n }\n // 如果设为默认,取消其他默认\n if (formData.isDefault) {\n addresses.forEach(item => {\n item.isDefault = false;\n });\n }\n if (isEdit.value) {\n const index = addresses.findIndex(item => { return item.id === addressId.value; });\n if (index !== -1) {\n addresses[index] = new Address(Object.assign(Object.assign({}, addresses[index]), { name: formData.name, phone: formData.phone, province: province, city: city, district: district, detail: formData.detail, isDefault: formData.isDefault, label: formData.label }));\n }\n }\n else {\n const newAddress = new Address({\n id: `addr_${Date.now()}`,\n name: formData.name,\n phone: formData.phone,\n province: province,\n city: city,\n district: district,\n detail: formData.detail,\n isDefault: formData.isDefault,\n label: formData.label\n });\n addresses.push(newAddress);\n }\n uni.setStorageSync('addresses', UTS.JSON.stringify(addresses));\n uni.showToast({\n title: '保存成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/address-edit.uvue:300', '保存地址失败');\n uni.showToast({\n title: '保存失败',\n icon: 'none'\n });\n }\n }); };\n const parseSmartInput = () => {\n var _a, _b, _c, _d, _g, _h;\n const input = smartInput.value.trim();\n if (input == '')\n return null;\n // 提取手机号\n const phoneRegex = /(1[3-9]\\d{9})/;\n const phoneMatch = input.match(phoneRegex);\n if (phoneMatch != null) {\n formData.phone = (_a = phoneMatch[0]) !== null && _a !== void 0 ? _a : '';\n }\n // 提取姓名(取第一个2-4位中文)\n const nameRegex = /([\\u4e00-\\u9fa5]{2,4})/;\n const nameMatch = input.match(nameRegex);\n if (nameMatch != null) {\n formData.name = (_b = nameMatch[0]) !== null && _b !== void 0 ? _b : '';\n }\n // 去掉姓名和电话后剩余作为地址\n let addrText = input;\n if (formData.name != '')\n addrText = addrText.replace(formData.name, '');\n if (formData.phone != '')\n addrText = addrText.replace(formData.phone, '');\n addrText = addrText.replace(/[,,;;\\s]+/g, ' ').trim();\n // 解析省市区\n const pattern1 = /^(.*?省)?(.*?市)?(.*?[区县])?(.*)$/;\n const m = addrText.match(pattern1);\n if (m != null) {\n const province = (_c = m[1]) !== null && _c !== void 0 ? _c : '';\n const city = (_d = m[2]) !== null && _d !== void 0 ? _d : '';\n const district = (_g = m[3]) !== null && _g !== void 0 ? _g : '';\n const detail = (_h = m[4]) !== null && _h !== void 0 ? _h : '';\n regionString.value = `${province.trim()} ${city.trim()} ${district.trim()}`.trim();\n formData.detail = detail.trim();\n }\n else {\n formData.detail = addrText;\n }\n };\n const deleteAddress = () => {\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定要删除该地址吗?',\n success: (res) => {\n if (res.confirm) {\n // 调用Supabase服务删除地址\n supabaseService.deleteAddress(addressId.value).then((success) => {\n if (success) {\n // 同时从本地存储中移除\n const storedAddresses = uni.getStorageSync('addresses');\n if (storedAddresses != null) {\n try {\n let addresses = UTS.JSON.parse(storedAddresses);\n addresses = addresses.filter(item => { return item.id !== addressId.value; });\n uni.setStorageSync('addresses', UTS.JSON.stringify(addresses));\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/address-edit.uvue:363', '解析本地地址数据失败', e);\n }\n }\n uni.showToast({\n title: '删除成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }\n else {\n uni.__f__('error', 'at pages/mall/consumer/address-edit.uvue:376', '删除地址失败');\n uni.showToast({\n title: '删除失败',\n icon: 'none'\n });\n }\n });\n }\n }\n }));\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: formData.name,\n b: _o($event => { return formData.name = $event.detail.value; }),\n c: formData.phone,\n d: _o($event => { return formData.phone = $event.detail.value; }),\n e: regionString.value,\n f: _o($event => { return regionString.value = $event.detail.value; }),\n g: formData.detail,\n h: _o($event => { return formData.detail = $event.detail.value; }),\n i: _f(tags, (tag, k0, i0) => {\n return {\n a: _t(tag),\n b: formData.label === tag ? 1 : '',\n c: tag,\n d: formData.label === tag ? 1 : '',\n e: _o($event => { return selectTag(tag); }, tag)\n };\n }),\n j: formData.isDefault,\n k: _o(onSwitchChange),\n l: smartInput.value\n }, smartInput.value ? {\n m: _o($event => { return smartInput.value = ''; })\n } : {}, {\n n: _o([$event => { return smartInput.value = $event.detail.value; }, parseSmartInput]),\n o: smartInput.value,\n p: _o(saveAddress),\n q: isEdit.value\n }, isEdit.value ? {\n r: _o(deleteAddress)\n } : {}, {\n s: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/address-edit.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts"],"uniExtApis":["uni.getStorageSync","uni.__f__","uni.showToast","uni.setStorageSync","uni.navigateBack","uni.showModal"],"map":"{\"version\":3,\"file\":\"address-edit.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"address-edit.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7ed2701c28861659d76794a5c8a8f65e81feb886 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7ed2701c28861659d76794a5c8a8f65e81feb886 deleted file mode 100644 index 6cd02366..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/7ed2701c28861659d76794a5c8a8f65e81feb886 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { UserType } from \"@/types/mall-types\";\nimport supabaseService from \"@/utils/supabaseService\";\nclass UserStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n points: { type: Number, optional: false },\n balance: { type: Number, optional: false },\n level: { type: Number, optional: false }\n };\n },\n name: \"UserStatsType\"\n };\n }\n constructor(options, metadata = UserStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.points = this.__props__.points;\n this.balance = this.__props__.balance;\n this.level = this.__props__.level;\n delete this.__props__;\n }\n}\nclass OrderCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total: { type: Number, optional: false },\n pending: { type: Number, optional: false },\n toship: { type: Number, optional: false },\n shipped: { type: Number, optional: false },\n review: { type: Number, optional: false }\n };\n },\n name: \"OrderCountsType\"\n };\n }\n constructor(options, metadata = OrderCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total = this.__props__.total;\n this.pending = this.__props__.pending;\n this.toship = this.__props__.toship;\n this.shipped = this.__props__.shipped;\n this.review = this.__props__.review;\n delete this.__props__;\n }\n}\nclass ServiceCountsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n coupons: { type: Number, optional: false },\n favorites: { type: Number, optional: false },\n unreadMessages: { type: Number, optional: false }\n };\n },\n name: \"ServiceCountsType\"\n };\n }\n constructor(options, metadata = ServiceCountsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.coupons = this.__props__.coupons;\n this.favorites = this.__props__.favorites;\n this.unreadMessages = this.__props__.unreadMessages;\n delete this.__props__;\n }\n}\nclass ConsumptionStatsType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n total_amount: { type: Number, optional: false },\n order_count: { type: Number, optional: false },\n avg_amount: { type: Number, optional: false },\n save_amount: { type: Number, optional: false }\n };\n },\n name: \"ConsumptionStatsType\"\n };\n }\n constructor(options, metadata = ConsumptionStatsType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.total_amount = this.__props__.total_amount;\n this.order_count = this.__props__.order_count;\n this.avg_amount = this.__props__.avg_amount;\n this.save_amount = this.__props__.save_amount;\n delete this.__props__;\n }\n}\nclass StatsPeriodType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n key: { type: String, optional: false },\n label: { type: String, optional: false }\n };\n },\n name: \"StatsPeriodType\"\n };\n }\n constructor(options, metadata = StatsPeriodType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.key = this.__props__.key;\n this.label = this.__props__.label;\n delete this.__props__;\n }\n}\nclass OrderItemType extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n order_no: { type: String, optional: false },\n status: { type: Number, optional: false },\n actual_amount: { type: Number, optional: false },\n created_at: { type: String, optional: false },\n ml_order_items: { type: \"Any\", optional: true },\n ml_shops: { type: \"Any\", optional: true },\n items_count: { type: Number, optional: false }\n };\n },\n name: \"OrderItemType\"\n };\n }\n constructor(options, metadata = OrderItemType.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.order_no = this.__props__.order_no;\n this.status = this.__props__.status;\n this.actual_amount = this.__props__.actual_amount;\n this.created_at = this.__props__.created_at;\n this.ml_order_items = this.__props__.ml_order_items;\n this.ml_shops = this.__props__.ml_shops;\n this.items_count = this.__props__.items_count;\n delete this.__props__;\n }\n}\nexport default defineComponent({\n data() {\n return {\n userInfo: new UserType({\n id: '',\n phone: '',\n email: '',\n nickname: '',\n avatar_url: '',\n gender: 0,\n user_type: 0,\n status: 0,\n created_at: ''\n }),\n userStats: new UserStatsType({\n points: 0,\n balance: 0,\n level: 1\n }),\n orderCounts: new OrderCountsType({\n total: 0,\n pending: 0,\n toship: 0,\n shipped: 0,\n review: 0\n }),\n serviceCounts: new ServiceCountsType({\n coupons: 0,\n favorites: 0,\n unreadMessages: 0\n }),\n recentOrders: [],\n statsPeriods: [\n new StatsPeriodType({ key: 'month', label: '本月' }),\n new StatsPeriodType({ key: 'quarter', label: '本季度' }),\n new StatsPeriodType({ key: 'year', label: '本年' }),\n new StatsPeriodType({ key: 'all', label: '全部' })\n ],\n activeStatsPeriod: 'month',\n currentStats: new ConsumptionStatsType({\n total_amount: 0,\n order_count: 0,\n avg_amount: 0,\n save_amount: 0\n }),\n statusBarHeight: 0,\n navBarRight: 0,\n currentOrderTab: 'all',\n allOrders: []\n };\n },\n onLoad() {\n this.initPage();\n this.loadUserProfile();\n this.loadOrders();\n // 监听订单更新事件\n uni.$on('orderUpdated', this.handleOrderUpdated);\n },\n onShow() {\n this.refreshData();\n },\n onUnload() {\n // 移除事件监听\n uni.$off('orderUpdated', this.handleOrderUpdated);\n },\n computed: {\n filteredOrders() {\n const result = [];\n if (this.currentOrderTab === 'all') {\n for (let i = 0; i < this.allOrders.length; i++) {\n result.push(this.allOrders[i]);\n }\n return result;\n }\n let targetStatus = 0;\n if (this.currentOrderTab === 'pending') {\n targetStatus = 1;\n }\n else if (this.currentOrderTab === 'toship') {\n targetStatus = 2;\n }\n else if (this.currentOrderTab === 'shipped') {\n targetStatus = 3;\n }\n else if (this.currentOrderTab === 'review') {\n targetStatus = 4;\n }\n else {\n return result;\n }\n for (let i = 0; i < this.allOrders.length; i++) {\n if (this.allOrders[i].status === targetStatus) {\n result.push(this.allOrders[i]);\n }\n }\n return result;\n }\n },\n methods: {\n loadOrders() {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const orders = yield supabaseService.getOrders();\n const mappedOrders = [];\n for (let i = 0; i < orders.length; i++) {\n const rawItem = orders[i];\n const o = UTS.JSON.parse(UTS.JSON.stringify(rawItem));\n let status = o.getNumber('status');\n if (status == null) {\n const orderStatus = o.getNumber('order_status');\n status = orderStatus != null ? orderStatus : 0;\n }\n let actualAmount = o.getNumber('actual_amount');\n if (actualAmount == null) {\n const totalAmount = o.getNumber('total_amount');\n actualAmount = totalAmount != null ? totalAmount : 0;\n }\n const mlOrderItems = o.get('ml_order_items');\n let itemsCount = 0;\n if (mlOrderItems != null && Array.isArray(mlOrderItems)) {\n itemsCount = mlOrderItems.length;\n }\n const orderItem = new OrderItemType({\n id: (_a = o.getString('id')) !== null && _a !== void 0 ? _a : '',\n order_no: (_b = o.getString('order_no')) !== null && _b !== void 0 ? _b : '',\n status: status,\n actual_amount: actualAmount,\n created_at: (_c = o.getString('created_at')) !== null && _c !== void 0 ? _c : '',\n ml_order_items: mlOrderItems,\n ml_shops: o.get('ml_shops'),\n items_count: itemsCount\n });\n mappedOrders.push(orderItem);\n }\n for (let i = 0; i < mappedOrders.length; i++) {\n for (let j = i + 1; j < mappedOrders.length; j++) {\n const dateA = mappedOrders[i]['created_at'];\n const dateB = mappedOrders[j]['created_at'];\n const timeA = new Date(dateA != null ? dateA : '1970-01-01').getTime();\n const timeB = new Date(dateB != null ? dateB : '1970-01-01').getTime();\n if (timeA < timeB) {\n const temp = mappedOrders[i];\n mappedOrders[i] = mappedOrders[j];\n mappedOrders[j] = temp;\n }\n }\n }\n this.allOrders = mappedOrders;\n const recentList = [];\n const limit = mappedOrders.length < 5 ? mappedOrders.length : 5;\n for (let i = 0; i < limit; i++) {\n recentList.push(mappedOrders[i]);\n }\n this.recentOrders = recentList;\n let total = 0;\n let pending = 0;\n let toship = 0;\n let shipped = 0;\n let review = 0;\n for (let i = 0; i < mappedOrders.length; i++) {\n total++;\n const status = mappedOrders[i].status;\n if (status === 1)\n pending++;\n else if (status === 2)\n toship++;\n else if (status === 3)\n shipped++;\n else if (status === 4)\n review++;\n }\n this.orderCounts = {\n total: total,\n pending: pending,\n toship: toship,\n shipped: shipped,\n review: review\n };\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:521', '加载订单异常', e);\n }\n });\n },\n // 切换订单Tab\n switchOrderTab(tab) {\n this.currentOrderTab = tab;\n },\n // 获取当前订单部分标题\n getOrderSectionTitle() {\n if (this.currentOrderTab === 'all')\n return '全部订单';\n if (this.currentOrderTab === 'pending')\n return '待支付订单';\n if (this.currentOrderTab === 'shipped')\n return '待收货订单';\n if (this.currentOrderTab === 'review')\n return '待评价订单';\n return '我的订单';\n },\n initPage() {\n var _a;\n const systemInfo = uni.getSystemInfoSync();\n this.statusBarHeight = (_a = systemInfo.statusBarHeight) !== null && _a !== void 0 ? _a : 0;\n // 获取小程序胶囊按钮信息\n try {\n const menuButton = uni.getMenuButtonBoundingClientRect();\n if (menuButton != null) {\n this.navBarRight = (systemInfo.screenWidth - menuButton.left) + 10;\n }\n }\n catch (e) {\n uni.__f__('log', 'at pages/main/profile.uvue:551', '获取胶囊按钮信息失败', e);\n this.navBarRight = 90;\n }\n },\n loadUserProfile() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // 获取用户资料\n const profile = yield supabaseService.getUserProfile();\n if (profile != null) {\n // 映射字段\n let uId = '';\n let uPhone = '';\n let uEmail = '';\n let uNickname = '';\n let uAvatar = '';\n let uGender = 0;\n if (UTS.isInstanceOf(profile, UTSJSONObject)) {\n uId = (_a = profile.getString('user_id')) !== null && _a !== void 0 ? _a : '';\n uPhone = (_b = profile.getString('phone')) !== null && _b !== void 0 ? _b : '';\n uEmail = (_c = profile.getString('email')) !== null && _c !== void 0 ? _c : '';\n uNickname = (_d = profile.getString('nickname')) !== null && _d !== void 0 ? _d : '';\n uAvatar = (_e = profile.getString('avatar_url')) !== null && _e !== void 0 ? _e : '';\n uGender = (_f = profile.getNumber('gender')) !== null && _f !== void 0 ? _f : 0;\n }\n else {\n // 必须使用 JSON.parse(JSON.stringify()) 转换为 UTSJSONObject\n const profileObj = UTS.JSON.parse(UTS.JSON.stringify(profile));\n uId = (_g = profileObj.getString('user_id')) !== null && _g !== void 0 ? _g : '';\n uPhone = (_h = profileObj.getString('phone')) !== null && _h !== void 0 ? _h : '';\n uEmail = (_j = profileObj.getString('email')) !== null && _j !== void 0 ? _j : '';\n uNickname = (_k = profileObj.getString('nickname')) !== null && _k !== void 0 ? _k : '';\n uAvatar = (_l = profileObj.getString('avatar_url')) !== null && _l !== void 0 ? _l : '';\n uGender = (_m = profileObj.getNumber('gender')) !== null && _m !== void 0 ? _m : 0;\n }\n if (uNickname === '' && uPhone !== '') {\n uNickname = uPhone.substring(0, 3) + '****' + uPhone.substring(7);\n }\n this.userInfo = new UserType({\n id: uId,\n phone: uPhone,\n email: uEmail,\n nickname: uNickname != '' ? uNickname : '微信用户',\n avatar_url: uAvatar != '' ? uAvatar : '/static/images/default-product.png',\n gender: uGender,\n user_type: 1,\n status: 1,\n created_at: new Date().toISOString()\n });\n }\n else {\n // 如果获取失败(未登录或无档案),尝试获取当前登录ID\n const userId = supabaseService.getCurrentUserId();\n if (userId != null) {\n this.userInfo.id = userId;\n this.userInfo.nickname = '用户' + userId.substring(0, 4);\n }\n else {\n this.userInfo.nickname = '未登录';\n }\n }\n // 获取积分和余额(顺序获取,UTS不支持Promise.all数组解构)\n const balanceResult = yield supabaseService.getUserBalance();\n const points = yield supabaseService.getUserPoints();\n const balanceValue = (_o = balanceResult.getNumber('balance')) !== null && _o !== void 0 ? _o : 0;\n this.userStats = new UserStatsType({\n points: points,\n balance: balanceValue,\n level: this.calculateLevel(points) // 根据积分计算等级\n });\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:630', '加载用户信息失败', e);\n // 保持默认或显示错误\n }\n });\n },\n calculateLevel(points) {\n if (points < 1000)\n return 0;\n if (points < 5000)\n return 1;\n if (points < 20000)\n return 2;\n if (points < 50000)\n return 3;\n return 4;\n },\n loadConsumptionStats() {\n if (this.activeStatsPeriod === 'month') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 1280.50,\n order_count: 8,\n avg_amount: 160.06,\n save_amount: 85.20\n });\n }\n else if (this.activeStatsPeriod === 'quarter') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 3680.80,\n order_count: 18,\n avg_amount: 204.49,\n save_amount: 256.30\n });\n }\n else if (this.activeStatsPeriod === 'year') {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 15680.90,\n order_count: 56,\n avg_amount: 280.02,\n save_amount: 986.50\n });\n }\n else {\n this.currentStats = new ConsumptionStatsType({\n total_amount: 25680.50,\n order_count: 89,\n avg_amount: 288.55,\n save_amount: 1580.20\n });\n }\n },\n refreshData() {\n // 刷新页面数据\n this.loadUserProfile();\n this.loadOrders();\n this.updateCouponCount(); // 更新优惠券数量\n },\n updateCouponCount() {\n return __awaiter(this, void 0, void 0, function* () {\n // 从 Supabase 获取真实的优惠券数量\n try {\n const count = yield supabaseService.getUserCouponCount();\n this.serviceCounts.coupons = count;\n }\n catch (e) {\n uni.__f__('error', 'at pages/main/profile.uvue:688', '获取优惠券数量失败', e);\n this.serviceCounts.coupons = 0;\n }\n });\n },\n getUserLevel() {\n const levels = ['新手', '铜牌会员', '银牌会员', '金牌会员', '钻石会员'];\n if (this.userStats.level >= 0 && this.userStats.level < levels.length) {\n return levels[this.userStats.level];\n }\n return '新手';\n },\n getOrderStatusText(status) {\n if (status === 6)\n return '退款中';\n if (status === 7)\n return '已退款';\n const statusTexts = ['异常', '待支付', '待发货', '待收货', '已完成', '已取消'];\n if (status >= 0 && status < statusTexts.length) {\n return statusTexts[status];\n }\n return '未知';\n },\n getOrderStatusClass(status) {\n if (status === 6)\n return 'refunding';\n if (status === 7)\n return 'refunded';\n const statusClasses = ['error', 'pending', 'processing', 'shipping', 'completed', 'cancelled'];\n if (status >= 0 && status < statusClasses.length) {\n return statusClasses[status];\n }\n return 'error';\n },\n showOrderMenu(order) {\n const status = order.status;\n let actions = [];\n if (status === 1) {\n actions = ['取消订单', '联系卖家'];\n }\n else if (status === 2) {\n actions = ['提醒发货', '申请退款', '联系卖家'];\n }\n else if (status === 3) {\n actions = ['查看物流', '确认收货', '申请退款', '联系卖家'];\n }\n else if (status === 4) {\n actions = ['申请售后', '再次购买', '联系卖家'];\n }\n else if (status === 5) {\n actions = ['删除订单', '再次购买', '联系卖家'];\n }\n else if (status === 6) {\n actions = ['退款进度', '联系卖家'];\n }\n else if (status === 7) {\n actions = ['再次购买', '联系卖家'];\n }\n uni.showActionSheet({\n itemList: actions,\n success: (res) => {\n const action = actions[res.tapIndex];\n this.handleOrderAction(order, action);\n }\n });\n },\n handleOrderAction(order, action) {\n if (action === '取消订单') {\n this.cancelOrderAction(order);\n }\n else if (action === '联系卖家') {\n this.contactSeller(order);\n }\n else if (action === '提醒发货') {\n this.remindShipping(order);\n }\n else if (action === '申请退款' || action === '申请售后') {\n this.applyRefund(order);\n }\n else if (action === '查看物流') {\n this.viewLogistics(order.id);\n }\n else if (action === '确认收货') {\n this.confirmReceive(order);\n }\n else if (action === '再次购买') {\n this.repurchase(order);\n }\n else if (action === '删除订单') {\n this.deleteOrder(order.id);\n }\n else if (action === '退款进度') {\n this.viewRefundProgress(order.id);\n }\n },\n cancelOrderAction(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认取消',\n content: '确定要取消此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '取消中...' });\n supabaseService.cancelOrder(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已取消', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '取消失败', icon: 'none' });\n });\n }\n }\n }));\n },\n contactSeller(order) {\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/chat?merchantId=${merchantId}`\n });\n }\n else {\n uni.showToast({ title: '暂无卖家联系方式', icon: 'none' });\n }\n },\n getMerchantIdFromOrder(order) {\n var _a;\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n return (_a = shopObj.getString('merchant_id')) !== null && _a !== void 0 ? _a : '';\n }\n }\n return '';\n },\n remindShipping(order) {\n uni.showLoading({ title: '提醒中...' });\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (merchantId !== '') {\n const message = `你好,我的订单[${order.order_no}]还没有发货,请尽快安排,谢谢。`;\n supabaseService.sendChatMessage(message, merchantId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '已提醒卖家发货', icon: 'success' });\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '提醒失败', icon: 'none' });\n });\n }\n else {\n uni.hideLoading();\n uni.showToast({ title: '无法联系卖家', icon: 'none' });\n }\n },\n applyRefund(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/apply-refund?orderId=${order.id}`\n });\n },\n viewLogistics(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/logistics?orderId=${orderId}`\n });\n },\n repurchase(order) {\n var _a;\n uni.showLoading({ title: '处理中...' });\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null || itemsRaw.length === 0) {\n uni.hideLoading();\n uni.showToast({ title: '订单无商品', icon: 'none' });\n return null;\n }\n const items = itemsRaw;\n let completed = 0;\n const total = items.length;\n let successCount = 0;\n for (let i = 0; i < items.length; i++) {\n const itemStr = UTS.JSON.stringify(items[i]);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null) {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n continue;\n }\n const itemObj = itemParsed;\n const productId = (_a = itemObj.getString('product_id')) !== null && _a !== void 0 ? _a : '';\n const merchantId = order.ml_shops != null ? this.getMerchantIdFromOrder(order) : '';\n if (productId !== '') {\n supabaseService.addToCart(productId, 1, '', merchantId).then((success) => {\n completed++;\n if (success)\n successCount++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }).catch(() => {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n });\n }\n else {\n completed++;\n if (completed === total) {\n uni.hideLoading();\n if (successCount > 0) {\n uni.showToast({ title: `已添加${successCount}件商品`, icon: 'success' });\n }\n else {\n uni.showToast({ title: '添加失败', icon: 'none' });\n }\n }\n }\n }\n },\n deleteOrder(orderId) {\n uni.showModal(new UTSJSONObject({\n title: '删除订单',\n content: '确定要删除此订单吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '删除中...' });\n supabaseService.deleteOrder(orderId).then(() => {\n uni.hideLoading();\n uni.showToast({ title: '订单已删除', icon: 'success' });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({ title: '删除失败', icon: 'none' });\n });\n }\n }\n }));\n },\n viewRefundProgress(orderId) {\n uni.navigateTo({\n url: `/pages/mall/consumer/refund?orderId=${orderId}`\n });\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n getOrderMainImage(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '/static/images/default-product.png';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '/static/images/default-product.png';\n const itemObj = itemParsed;\n const imgUrl = itemObj.getString('image_url');\n const prodImg = itemObj.getString('product_image');\n const img = (imgUrl != null && imgUrl !== '') ? imgUrl : prodImg;\n if (img != null && img !== '')\n return img;\n }\n return '/static/images/default-product.png';\n },\n getOrderTitle(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '精选商品';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '精选商品';\n const itemObj = itemParsed;\n const pName = itemObj.getString('product_name');\n const name = (pName != null && pName !== '') ? pName : '商品';\n return name;\n }\n return '精选商品';\n },\n getOrderSpec(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return '';\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return '';\n const itemObj = itemParsed;\n const specRaw = itemObj.get('specifications');\n if (specRaw == null)\n return '';\n if (typeof specRaw === 'string') {\n const specStr = specRaw;\n if (specStr.startsWith('{')) {\n try {\n const specObj = UTS.JSON.parse(specStr);\n const parts = [];\n const color = specObj.get('Color');\n if (color != null)\n parts.push('颜色: ' + color);\n const size = specObj.get('Size');\n if (size != null)\n parts.push('尺码: ' + size);\n if (parts.length > 0)\n return parts.join(' ');\n return specStr.replace(/[{}\"]/g, '');\n }\n catch (e) {\n return specStr;\n }\n }\n return specStr;\n }\n return UTS.JSON.stringify(specRaw).replace(/[{}\"]/g, '');\n }\n return '';\n },\n getOrderItemCount(order) {\n if (order.items_count != null && order.items_count > 0) {\n return order.items_count;\n }\n return 1;\n },\n getOrderShopName(order) {\n const shopsRaw = order.ml_shops;\n if (shopsRaw != null) {\n const shopStr = UTS.JSON.stringify(shopsRaw);\n const shopParsed = UTS.JSON.parse(shopStr);\n if (shopParsed != null) {\n const shopObj = shopParsed;\n const name = shopObj.getString('shop_name');\n if (name != null && name !== '')\n return name;\n }\n }\n return '自营店铺';\n },\n formatDateTime(timeStr) {\n if (timeStr == null || timeStr === '')\n return '';\n const date = new Date(timeStr);\n const y = date.getFullYear();\n const m = (date.getMonth() + 1).toString().padStart(2, '0');\n const d = date.getDate().toString().padStart(2, '0');\n const h = date.getHours().toString().padStart(2, '0');\n const i = date.getMinutes().toString().padStart(2, '0');\n return `${y}-${m}-${d} ${h}:${i}`;\n },\n formatTime(timeStr) {\n const date = new Date(timeStr);\n const now = new Date();\n const diff = now.getTime() - date.getTime();\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n if (days === 0) {\n return '今天';\n }\n else if (days === 1) {\n return '昨天';\n }\n else {\n return `${days}天前`;\n }\n },\n switchStatsPeriod(period) {\n this.activeStatsPeriod = period;\n this.loadConsumptionStats();\n },\n editProfile() {\n uni.navigateTo({\n url: '/pages/mall/consumer/edit-profile'\n });\n },\n // 跳转设置\n goToSettings() {\n uni.navigateTo({\n url: '/pages/mall/consumer/settings'\n });\n },\n // 跳转钱包\n goToWallet() {\n uni.navigateTo({\n url: '/pages/mall/consumer/wallet'\n });\n },\n goToOrders(type) {\n uni.navigateTo({\n url: `/pages/mall/consumer/orders?type=${type}`\n });\n },\n goShopping() {\n uni.switchTab({\n url: '/pages/main/index'\n });\n },\n viewOrderDetail(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/order-detail?orderId=${order.id}`\n });\n },\n goToProductFromOrder(order) {\n const itemsRaw = order.ml_order_items;\n if (itemsRaw == null)\n return null;\n const items = itemsRaw;\n if (items.length > 0) {\n const firstItem = items[0];\n const itemStr = UTS.JSON.stringify(firstItem);\n const itemParsed = UTS.JSON.parse(itemStr);\n if (itemParsed == null)\n return null;\n const itemObj = itemParsed;\n const productId = itemObj.getString('product_id');\n if (productId != null && productId !== '') {\n uni.navigateTo({\n url: `/pages/mall/consumer/product-detail?id=${productId}`\n });\n }\n }\n },\n payOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/payment?orderId=${order.id}`\n });\n },\n confirmReceive(order) {\n uni.showModal(new UTSJSONObject({\n title: '确认收货',\n content: '确认已收到商品吗?',\n success: (res) => {\n if (res.confirm) {\n uni.showLoading({ title: '处理中...' });\n supabaseService.confirmOrderReceived(order.id).then(() => {\n uni.hideLoading();\n uni.showToast({\n title: '确认收货成功',\n icon: 'success'\n });\n this.loadOrders();\n }).catch(() => {\n uni.hideLoading();\n uni.showToast({\n title: '操作失败',\n icon: 'none'\n });\n });\n }\n }\n }));\n },\n reviewOrder(order) {\n uni.navigateTo({\n url: `/pages/mall/consumer/review?orderId=${order.id}`\n });\n },\n goToCoupons() {\n uni.navigateTo({\n url: '/pages/mall/consumer/coupons'\n });\n },\n goToMessages() {\n uni.navigateTo({\n url: '/pages/main/messages'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToAddress() {\n // 暂时跳转到设置页的地址管理\n uni.navigateTo({\n url: '/pages/mall/consumer/address-list'\n });\n },\n goToFavorites() {\n uni.navigateTo({\n url: '/pages/mall/consumer/favorites'\n });\n },\n goToFootprint() {\n uni.navigateTo({\n url: '/pages/mall/consumer/footprint'\n });\n },\n goToRefund() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=refund'\n });\n },\n contactService() {\n uni.navigateTo({\n url: '/pages/mall/service/chat'\n });\n },\n goToOrderReviews() {\n uni.navigateTo({\n url: '/pages/mall/consumer/orders?type=review'\n });\n },\n goToMySubscriptions() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/my-subscriptions'\n });\n },\n goToFollowedShops() {\n uni.navigateTo({\n url: '/pages/mall/consumer/subscription/followed-shops'\n });\n },\n goToPoints() {\n uni.navigateTo({\n url: '/pages/mall/consumer/points/index'\n });\n },\n goToBalance() {\n uni.navigateTo({\n url: '/pages/mall/consumer/balance/index'\n });\n },\n goToShare() {\n uni.navigateTo({\n url: '/pages/mall/consumer/share/index'\n });\n },\n goToMember() {\n uni.navigateTo({\n url: '/pages/mall/consumer/member/index'\n });\n },\n changePassword() {\n uni.navigateTo({\n url: '/pages/mall/consumer/change-password'\n });\n },\n bindPhone() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-phone'\n });\n },\n bindEmail() {\n uni.navigateTo({\n url: '/pages/mall/consumer/bind-email'\n });\n },\n handleOrderUpdated(data = null) {\n uni.__f__('log', 'at pages/main/profile.uvue:1283', '收到订单更新事件:', data);\n this.refreshData();\n const dataObj = data;\n const status = dataObj.getNumber('status');\n if (status === 1) {\n uni.showToast({\n title: '订单已保存到待支付',\n icon: 'success'\n });\n }\n else if (status === 2) {\n uni.showToast({\n title: '支付成功,订单待发货',\n icon: 'success'\n });\n }\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/main/profile.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.$on","uni.$off","uni.__f__","uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.showActionSheet","uni.showLoading","uni.hideLoading","uni.showToast","uni.showModal","uni.navigateTo","uni.switchTab"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/827da4df1694074e2abfae526ab958d8753962be b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/827da4df1694074e2abfae526ab958d8753962be deleted file mode 100644 index 6e90e99b..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/827da4df1694074e2abfae526ab958d8753962be +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass FollowedShop extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n merchant_id: { type: String, optional: false },\n shop_name: { type: String, optional: false },\n shop_logo: { type: String, optional: true },\n description: { type: String, optional: true },\n rating_avg: { type: Number, optional: false },\n total_sales: { type: Number, optional: false }\n };\n },\n name: \"FollowedShop\"\n };\n }\n constructor(options, metadata = FollowedShop.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.merchant_id = this.__props__.merchant_id;\n this.shop_name = this.__props__.shop_name;\n this.shop_logo = this.__props__.shop_logo;\n this.description = this.__props__.description;\n this.rating_avg = this.__props__.rating_avg;\n this.total_sales = this.__props__.total_sales;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'followed-shops',\n setup(__props) {\n const shops = ref([]);\n const loading = ref(true);\n const loadFollowedShops = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g;\n loading.value = true;\n const userId = supabaseService.getCurrentUserId();\n if (userId == null || userId == '') {\n uni.navigateTo({ url: '/pages/auth/login' });\n return Promise.resolve(null);\n }\n const res = yield supabaseService.getFollowedShops(userId);\n const list = [];\n if (res != null && Array.isArray(res)) {\n for (let i = 0; i < res.length; i++) {\n const item = res[i];\n const shopDataRaw = item.get('ml_shops');\n if (shopDataRaw != null) {\n const shopData = shopDataRaw;\n const shop = new FollowedShop({\n id: (_a = shopData.getString('id')) !== null && _a !== void 0 ? _a : '',\n merchant_id: (_b = shopData.getString('merchant_id')) !== null && _b !== void 0 ? _b : '',\n shop_name: (_c = shopData.getString('shop_name')) !== null && _c !== void 0 ? _c : '',\n shop_logo: shopData.getString('shop_logo'),\n description: shopData.getString('description'),\n rating_avg: (_d = shopData.getNumber('rating_avg')) !== null && _d !== void 0 ? _d : 5.0,\n total_sales: (_g = shopData.getNumber('total_sales')) !== null && _g !== void 0 ? _g : 0\n });\n list.push(shop);\n }\n }\n }\n shops.value = list;\n loading.value = false;\n }); };\n const doUnfollow = (shopId, userId) => { return __awaiter(this, void 0, void 0, function* () {\n const success = yield supabaseService.unfollowShop(shopId, userId);\n if (success) {\n uni.showToast({ title: '已取消', icon: 'none' });\n loadFollowedShops();\n }\n else {\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const unfollow = (shop) => { return __awaiter(this, void 0, void 0, function* () {\n const userId = supabaseService.getCurrentUserId();\n if (userId == null || userId == '')\n return Promise.resolve(null);\n uni.showModal(new UTSJSONObject({\n title: '提示',\n content: '确定取消关注该店铺吗?',\n success: (res) => {\n if (res.confirm) {\n doUnfollow(shop.id, userId);\n }\n }\n }));\n }); };\n const goToShop = (shop) => {\n const targetId = shop.merchant_id != '' ? shop.merchant_id : shop.id;\n uni.navigateTo({\n url: `/pages/mall/consumer/shop-detail?merchantId=${targetId}`\n });\n };\n const goHome = () => {\n uni.switchTab({ url: '/pages/main/index' });\n };\n onMounted(() => {\n loadFollowedShops();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: shops.value.length > 0\n }, shops.value.length > 0 ? {\n b: _f(shops.value, (shop, k0, i0) => {\n return {\n a: shop.shop_logo != null ? shop.shop_logo : '/static/default-shop.png',\n b: _t(shop.shop_name),\n c: _t(shop.description != null ? shop.description : '暂无介绍'),\n d: _t(shop.rating_avg),\n e: _t(shop.total_sales),\n f: _o($event => { return unfollow(shop); }, shop.id),\n g: shop.id,\n h: _o($event => { return goToShop(shop); }, shop.id)\n };\n })\n } : loading.value == false ? {\n d: _o(goHome)\n } : {}, {\n c: loading.value == false,\n e: loading.value\n }, loading.value ? {} : {}, {\n f: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/subscription/followed-shops.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.navigateTo","uni.showToast","uni.showModal","uni.switchTab"],"map":"{\"version\":3,\"file\":\"followed-shops.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"followed-shops.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/852e302629e1addc443a29cc65da8223ef29ad6e b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/852e302629e1addc443a29cc65da8223ef29ad6e deleted file mode 100644 index eb188f1b..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/852e302629e1addc443a29cc65da8223ef29ad6e +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent } from \"vue\";\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { IS_TEST_MODE } from \"@/ak/config\";\nexport default defineComponent({\n onLoad() {\n // 启动页:根据登录态重定向\n this.checkAndRedirect();\n },\n onShow() {\n // 启动页仅在首次进入时做一次跳转,避免影响 H5 手动输入 URL\n },\n methods: {\n checkAndRedirect() {\n uni.__f__('log', 'at pages/user/boot.uvue:40', 'boot: start redirect check');\n if (IS_TEST_MODE) {\n // 测试阶段:不做强制重定向,保留你手动输入的 URL / 目标页面\n return null;\n }\n try {\n const sessionInfo = supa.getSession();\n if (sessionInfo != null && sessionInfo.user != null) {\n uni.reLaunch({ url: '/pages/main/index' });\n return null;\n }\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/boot.uvue:54', 'boot: error checking session', e);\n }\n uni.reLaunch({ url: '/pages/user/login' });\n }\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/boot.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.reLaunch"],"map":"{\"version\":3,\"file\":\"boot.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"boot.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACQ,IAAI;OACJ,EAAE,YAAY,EAAE;AAEvB,+BAAe;IACd,MAAM;QACL,eAAe;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IACD,MAAM;QACL,mCAAmC;IACpC,CAAC;IACD,OAAO,EAAE;QACR,gBAAgB;YACf,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,4BAA4B,EAAC,4BAA4B,CAAC,CAAA;YAE1E,IAAI,YAAY,EAAE;gBACjB,mCAAmC;gBACnC,YAAM;aACN;YAED,IAAI;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBACrC,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE;oBACpD,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;oBAC1C,YAAM;iBACN;aACD;YAAC,OAAO,CAAC,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,4BAA4B,EAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;aACjF;YAED,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC3C,CAAC;KACD;CACD,EAAC\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/88222f196301ce1a0b9dac6d2283a692d04cc0e8 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/88222f196301ce1a0b9dac6d2283a692d04cc0e8 deleted file mode 100644 index 6f9f0f5c..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/88222f196301ce1a0b9dac6d2283a692d04cc0e8 +++ /dev/null @@ -1 +0,0 @@ -{"code":"// types/analytics/insight.uts\nexport class InsightDetail extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n report_id: { type: String, optional: false },\n type: { type: String, optional: false },\n impact: { type: String, optional: false },\n title: { type: String, optional: false },\n content: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"InsightDetail\"\n };\n }\n constructor(options, metadata = InsightDetail.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.report_id = this.__props__.report_id;\n this.type = this.__props__.type;\n this.impact = this.__props__.impact;\n this.title = this.__props__.title;\n this.content = this.__props__.content;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport class RelatedReport extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n type: { type: String, optional: false },\n period: { type: String, optional: false },\n generated_at: { type: String, optional: false }\n };\n },\n name: \"RelatedReport\"\n };\n }\n constructor(options, metadata = RelatedReport.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.type = this.__props__.type;\n this.period = this.__props__.period;\n this.generated_at = this.__props__.generated_at;\n delete this.__props__;\n }\n}\n//# sourceMappingURL=D:/companyproject/mall/types/analytics/insight.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"insight.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"insight.uts\"],\"names\":[],\"mappings\":\"AAAA,8BAA8B;AAE9B,MAAM,OAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUzB,MAAM,OAAM,aAAa\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/89d2aa02077b7b973b84e0ed774fd8ebdfe8f6f6 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/89d2aa02077b7b973b84e0ed774fd8ebdfe8f6f6 deleted file mode 100644 index 70d23f4f..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/89d2aa02077b7b973b84e0ed774fd8ebdfe8f6f6 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, f as _f, resolveComponent as _resolveComponent, p as _p, gei as _gei, sei as _sei, e as _e } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"picker-date\":{\"name\":\"_component_picker_date\",\"type\":\"unknown\"}}';\nif (!Array) {\n const _component_picker_date = _resolveComponent(\"picker-date\");\n (_component_picker_date)();\n}\nimport { ref, onMounted } from 'vue';\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { AkSupaSelectOptions } from \"@/components/supadb/aksupa\";\nimport { setUserProfile } from \"@/utils/store\";\nimport { UserProfile } from \"@/types/mall-types\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'profile',\n setup(__props) {\n const isLoading = ref(false);\n const saveSuccess = ref('');\n const saveError = ref('');\n const isSaving = ref(false);\n const userAvatar = ref('/static/logo.png');\n const currentLocale = ref('zh-CN');\n const genderOptions = ['male', 'female', 'other'];\n const tempGenderIndex = ref([0]);\n const showGenderPicker = ref(false);\n const showBirthdayPicker = ref(false);\n const tempBirthday = ref([2000, 1, 1]);\n const profile = ref(new UserProfile({\n id: '',\n username: '',\n email: '',\n gender: 'other',\n birthday: '',\n height_cm: 0,\n weight_kg: 0,\n bio: '',\n avatar_url: '/static/logo.png',\n preferred_language: 'zh-CN'\n }));\n const toggleLanguage = () => {\n if (currentLocale.value === 'zh-CN') {\n currentLocale.value = 'en-US';\n }\n else {\n currentLocale.value = 'zh-CN';\n }\n uni.showToast({\n title: '语言已切换',\n icon: 'success'\n });\n };\n const getGenderText = (genderCode) => {\n if (genderCode == 'male') {\n return '男';\n }\n else if (genderCode == 'female') {\n return '女';\n }\n else {\n return '其他';\n }\n };\n const loadProfile = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h, _j, _k, _l, _m, _q, _r;\n isLoading.value = true;\n const user = supa.user;\n if (user == null) {\n profile.value.email = '';\n isLoading.value = false;\n return Promise.resolve(null);\n }\n const userEmail = user.getString('email');\n if (userEmail == null || userEmail == '') {\n profile.value.email = '';\n isLoading.value = false;\n return Promise.resolve(null);\n }\n const filter = `id=eq.${user.id}`;\n const options = new AkSupaSelectOptions({ single: true });\n const result = yield supa.select('ak_users', filter, options);\n const data = result.data;\n const error = result.error;\n if (Array.isArray(data) && data.length > 0) {\n const prodata = data[0];\n const p = new UserProfile({\n id: user.id,\n username: (_a = prodata.getString('username')) !== null && _a !== void 0 ? _a : '',\n email: (_b = prodata.getString('email')) !== null && _b !== void 0 ? _b : '',\n gender: (_c = prodata.getString('gender')) !== null && _c !== void 0 ? _c : 'other',\n birthday: (_d = prodata.getString('birthday')) !== null && _d !== void 0 ? _d : '',\n height_cm: (_g = prodata.getNumber('height_cm')) !== null && _g !== void 0 ? _g : 0,\n weight_kg: (_h = prodata.getNumber('weight_kg')) !== null && _h !== void 0 ? _h : 0,\n bio: (_j = prodata.getString('bio')) !== null && _j !== void 0 ? _j : '',\n avatar_url: (_k = prodata.getString('avatar_url')) !== null && _k !== void 0 ? _k : '/static/logo.png',\n preferred_language: (_l = prodata.getString('preferred_language')) !== null && _l !== void 0 ? _l : 'zh-CN'\n });\n profile.value = p;\n if (p.avatar_url != null && p.avatar_url != '') {\n userAvatar.value = p.avatar_url;\n }\n setUserProfile(p);\n }\n else {\n profile.value.id = (_m = user.getString('id')) !== null && _m !== void 0 ? _m : '';\n profile.value.username = (_q = user.getString('username')) !== null && _q !== void 0 ? _q : '';\n profile.value.email = (_r = user.getString('email')) !== null && _r !== void 0 ? _r : '';\n if (profile.value.username == '') {\n const emailStr = profile.value.email;\n if (emailStr != null && emailStr != '') {\n const parts = emailStr.split('@');\n if (parts.length > 0) {\n profile.value.username = parts[0];\n }\n }\n }\n const newProfile = new UTSJSONObject(new UTSJSONObject({\n id: profile.value.id,\n username: profile.value.username,\n email: profile.value.email,\n gender: profile.value.gender,\n preferred_language: profile.value.preferred_language\n }));\n const insertResult = yield supa.from('ak_users').insert(newProfile).execute();\n if (insertResult.error == null) {\n const newProfileData = new UserProfile({\n id: profile.value.id,\n username: profile.value.username,\n email: profile.value.email,\n gender: profile.value.gender,\n preferred_language: profile.value.preferred_language\n });\n setUserProfile(newProfileData);\n }\n }\n isLoading.value = false;\n }); };\n const saveProfile = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a;\n isSaving.value = true;\n saveSuccess.value = '';\n saveError.value = '';\n try {\n const userid = (_a = profile.value.id) !== null && _a !== void 0 ? _a : '';\n const updateData = new UTSJSONObject({\n username: profile.value.username,\n gender: profile.value.gender,\n birthday: profile.value.birthday,\n height_cm: profile.value.height_cm,\n weight_kg: profile.value.weight_kg,\n bio: profile.value.bio,\n avatar_url: profile.value.avatar_url,\n preferred_language: profile.value.preferred_language\n });\n const result = yield supa\n .from('ak_users')\n .update(updateData)\n .eq('id', userid)\n .execute();\n if (result.error == null) {\n saveSuccess.value = '保存成功';\n }\n else {\n saveError.value = '保存失败';\n }\n }\n catch (e) {\n saveError.value = '保存失败';\n }\n isSaving.value = false;\n }); };\n const onSubmit = () => {\n saveProfile();\n };\n const getUuid = () => {\n return `${Date.now()}_${Math.floor(Math.random() * 1e8)}`;\n };\n const chooseAvatar = () => {\n uni.chooseImage(new UTSJSONObject({\n count: 1,\n sizeType: ['compressed'],\n sourceType: ['album', 'camera'],\n success: (res) => {\n var _a;\n const upfilepath = res.tempFilePaths[0];\n const userId = (_a = profile.value.id) !== null && _a !== void 0 ? _a : '';\n let ext = 'png';\n const tempFiles = res.tempFiles;\n if (Array.isArray(tempFiles) && tempFiles.length > 0) {\n const fileObj = tempFiles[0];\n const fileName = fileObj.name;\n if (fileName != null && fileName != '') {\n const idx = fileName.lastIndexOf('.');\n if (idx >= 0) {\n ext = fileName.substring(idx + 1);\n }\n }\n }\n const uuid = getUuid();\n const remotePath = `profiles/${userId}_${uuid}.${ext}`;\n supa.storage.from('zhipao').upload(remotePath, upfilepath, new UTSJSONObject({})).then((uploadResult) => {\n if (uploadResult.status == 200 || uploadResult.status == 201) {\n const data = uploadResult.data;\n if (data != null) {\n const dataObj = data;\n let avatarUrl = dataObj.getString('Key');\n if (avatarUrl != null && avatarUrl != '') {\n avatarUrl = 'https://ak3.oulog.com/storage/v1/object/public/' + avatarUrl;\n userAvatar.value = avatarUrl;\n profile.value.avatar_url = avatarUrl;\n saveProfile();\n uni.showToast({ title: '头像已更新', icon: 'success' });\n }\n }\n }\n else {\n uni.showToast({ title: '上传失败', icon: 'none' });\n }\n });\n }\n }));\n };\n const onHeightInput = (e) => {\n const val = e.detail.value;\n if (val == '') {\n profile.value.height_cm = 0;\n }\n else {\n profile.value.height_cm = parseInt(val);\n }\n };\n const onWeightInput = (e) => {\n const val = e.detail.value;\n if (val == '') {\n profile.value.weight_kg = 0;\n }\n else {\n profile.value.weight_kg = parseInt(val);\n }\n };\n const showGenderPickerNow = () => {\n const genderValue = profile.value.gender;\n const idx = genderValue != null ? genderOptions.indexOf(genderValue) : -1;\n tempGenderIndex.value = [idx >= 0 ? idx : 0];\n showGenderPicker.value = true;\n };\n const onGenderPickerViewChange = (e) => {\n const idx = e.detail.value[0];\n tempGenderIndex.value = [(idx >= 0 && idx < genderOptions.length) ? idx : 0];\n };\n const confirmGenderPicker = () => {\n profile.value.gender = genderOptions[tempGenderIndex.value[0]];\n showGenderPicker.value = false;\n };\n const onBirthdayDateChange = (vals) => {\n tempBirthday.value = vals;\n };\n const showBirthdayPickernow = () => {\n const birthday = profile.value.birthday;\n if (birthday != null && birthday != '') {\n const parts = birthday.split('-');\n if (parts.length == 3) {\n tempBirthday.value = [parseInt(parts[0]), parseInt(parts[1]), parseInt(parts[2])];\n }\n }\n showBirthdayPicker.value = true;\n };\n const confirmBirthdayPicker = () => {\n showBirthdayPicker.value = false;\n const y = tempBirthday.value[0];\n const m = tempBirthday.value[1];\n const d = tempBirthday.value[2];\n const mm = m < 10 ? '0' + m : '' + m;\n const dd = d < 10 ? '0' + d : '' + d;\n profile.value.birthday = `${y}-${mm}-${dd}`;\n };\n onMounted(() => {\n loadProfile();\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(currentLocale.value === 'zh-CN' ? 'EN' : '中'),\n b: _o(toggleLanguage),\n c: isLoading.value\n }, isLoading.value ? {} : profile.value.email == '' ? {\n e: _o(loadProfile)\n } : _e({\n f: userAvatar.value,\n g: _o(chooseAvatar),\n h: profile.value.username,\n i: _o($event => { return profile.value.username = $event.detail.value; }),\n j: profile.value.email,\n k: _o($event => { return profile.value.email = $event.detail.value; }),\n l: _t(getGenderText(profile.value.gender ?? 'other')),\n m: _o(showGenderPickerNow),\n n: showGenderPicker.value\n }, showGenderPicker.value ? {\n o: _f(genderOptions, (g, idx, i0) => {\n return {\n a: _t(getGenderText(g)),\n b: g\n };\n }),\n p: tempGenderIndex.value,\n q: _o(onGenderPickerViewChange),\n r: _o($event => { return showGenderPicker.value = false; }),\n s: _o(confirmGenderPicker)\n } : {}, {\n t: _t(profile.value.birthday != null && profile.value.birthday != '' ? profile.value.birthday : '请选择生日'),\n v: _o(showBirthdayPickernow),\n w: showBirthdayPicker.value\n }, showBirthdayPicker.value ? {\n x: _o(onBirthdayDateChange),\n y: _p({\n startYear: 1970,\n endYear: new Date().getFullYear(),\n value: tempBirthday.value\n }),\n z: _o($event => { return showBirthdayPicker.value = false; }),\n A: _o(confirmBirthdayPicker)\n } : {}, {\n B: profile.value.height_cm != null && profile.value.height_cm > 0 ? profile.value.height_cm : '',\n C: _o(onHeightInput),\n D: profile.value.weight_kg != null && profile.value.weight_kg > 0 ? profile.value.weight_kg : '',\n E: _o(onWeightInput),\n F: profile.value.bio,\n G: _o($event => { return profile.value.bio = $event.detail.value; }),\n H: isSaving.value,\n I: isSaving.value,\n J: _o(onSubmit),\n K: saveSuccess.value != ''\n }, saveSuccess.value != '' ? {\n L: _t(saveSuccess.value)\n } : saveError.value != '' ? {\n N: _t(saveError.value)\n } : {}, {\n M: saveError.value != ''\n }), {\n d: profile.value.email == '',\n O: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/user/profile.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.chooseImage"],"map":"{\"version\":3,\"file\":\"profile.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"profile.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8b3a99d66480038022feaaeae5cb054b5de36cdb b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8b3a99d66480038022feaaeae5cb054b5de36cdb deleted file mode 100644 index dc1514ab..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8b3a99d66480038022feaaeae5cb054b5de36cdb +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, unref as _unref, gei as _gei, p as _p } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport { ref } from 'vue';\nimport { onLoad } from '@dcloudio/uni-app';\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'record',\n setup(__props) {\n const params = ref('');\n onLoad((options = null) => {\n // options: Record\n params.value = UTS.JSON.stringify(options !== null && options !== void 0 ? options : new UTSJSONObject({}));\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _t(params.value),\n b: _gei(_ctx, ''),\n c: _p({\n currentPage: 'signin-record',\n id: _gei(_ctx, '')\n })\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/admin/marketing/signin/record.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-uts-v1/node_modules/@dcloudio/uni-uts-v1/lib/tsconfig/types/dcloudio__uni-app/types/index.d.ts","D:/companyproject/mall/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"record.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"record.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AACzG,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAI1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,QAAQ;IAChB,KAAK,CAAC,OAAO;QAEf,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAEtB,MAAM,CAAC,CAAC,OAAO,OAAA;YACb,+BAA+B;YAC/B,MAAM,CAAC,KAAK,GAAG,SAAK,SAAS,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,qBAAI,EAAE,CAAA,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnB,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC;oBACJ,WAAW,EAAE,eAAe;oBAC5B,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;iBACnB,CAAC;aACH,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8cfc29f875e6291545c52dca2841b0e175fa31d3 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8cfc29f875e6291545c52dca2841b0e175fa31d3 deleted file mode 100644 index a3794fb3..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8cfc29f875e6291545c52dca2841b0e175fa31d3 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass RedPacket extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n amount: { type: Number, optional: false },\n name: { type: String, optional: false },\n status: { type: Number, optional: false },\n expire_at: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"RedPacket\"\n };\n }\n constructor(options, metadata = RedPacket.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.amount = this.__props__.amount;\n this.name = this.__props__.name;\n this.status = this.__props__.status;\n this.expire_at = this.__props__.expire_at;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const loading = ref(true);\n const currentTab = ref(0);\n const packets = ref([]);\n const filteredPackets = computed(() => {\n const result = [];\n if (currentTab.value === 0) {\n for (let i = 0; i < packets.value.length; i++) {\n if (packets.value[i].status === 0) {\n result.push(packets.value[i]);\n }\n }\n }\n else {\n for (let i = 0; i < packets.value.length; i++) {\n if (packets.value[i].status !== 0) {\n result.push(packets.value[i]);\n }\n }\n }\n return result;\n });\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n loading.value = true;\n try {\n const rawList = yield supabaseService.getUserRedPackets();\n const mappedList = [];\n for (let i = 0; i < rawList.length; i++) {\n const item = rawList[i];\n const packet = new RedPacket({\n id: (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '',\n user_id: '',\n amount: (_b = item.getNumber('amount')) !== null && _b !== void 0 ? _b : 0,\n name: (_c = item.getString('name')) !== null && _c !== void 0 ? _c : '',\n status: (_d = item.getNumber('status')) !== null && _d !== void 0 ? _d : 0,\n expire_at: (_g = item.getString('expire_at')) !== null && _g !== void 0 ? _g : '',\n created_at: (_h = item.getString('created_at')) !== null && _h !== void 0 ? _h : ''\n });\n mappedList.push(packet);\n }\n packets.value = mappedList;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/red-packets/index.uvue:98', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n onMounted(() => {\n loadData();\n });\n const usePacket = (item) => {\n uni.switchTab({\n url: '/pages/main/index'\n });\n };\n const getStatusText = (status) => {\n if (status === 1)\n return '已使用';\n if (status === 2)\n return '已过期';\n return '';\n };\n const formatTime = (timeStr) => {\n if (timeStr == '')\n return '永久有效';\n const date = new Date(timeStr);\n return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: currentTab.value === 0 ? 1 : '',\n b: _o($event => { return currentTab.value = 0; }),\n c: currentTab.value === 1 ? 1 : '',\n d: _o($event => { return currentTab.value = 1; }),\n e: loading.value\n }, loading.value ? {} : _e({\n f: filteredPackets.value.length === 0\n }, filteredPackets.value.length === 0 ? {} : {\n g: _f(filteredPackets.value, (item, k0, i0) => {\n return _e({\n a: _t(item.amount),\n b: _t(item.name),\n c: _t(formatTime(item.expire_at)),\n d: item.status === 0\n }, item.status === 0 ? {\n e: _o($event => { return usePacket(item); }, item.id)\n } : {\n f: _t(getStatusText(item.status))\n }, {\n g: item.id,\n h: item.status !== 0 ? 1 : ''\n });\n })\n }), {\n h: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/red-packets/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.switchTab"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8f2e9fefce51e24da3791b2d384335ceb0ba47f3 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8f2e9fefce51e24da3791b2d384335ceb0ba47f3 deleted file mode 100644 index a3794fb3..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/8f2e9fefce51e24da3791b2d384335ceb0ba47f3 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, computed, onMounted } from 'vue';\nimport { supabaseService } from \"@/utils/supabaseService\";\nclass RedPacket extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n user_id: { type: String, optional: false },\n amount: { type: Number, optional: false },\n name: { type: String, optional: false },\n status: { type: Number, optional: false },\n expire_at: { type: String, optional: false },\n created_at: { type: String, optional: false }\n };\n },\n name: \"RedPacket\"\n };\n }\n constructor(options, metadata = RedPacket.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.user_id = this.__props__.user_id;\n this.amount = this.__props__.amount;\n this.name = this.__props__.name;\n this.status = this.__props__.status;\n this.expire_at = this.__props__.expire_at;\n this.created_at = this.__props__.created_at;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const loading = ref(true);\n const currentTab = ref(0);\n const packets = ref([]);\n const filteredPackets = computed(() => {\n const result = [];\n if (currentTab.value === 0) {\n for (let i = 0; i < packets.value.length; i++) {\n if (packets.value[i].status === 0) {\n result.push(packets.value[i]);\n }\n }\n }\n else {\n for (let i = 0; i < packets.value.length; i++) {\n if (packets.value[i].status !== 0) {\n result.push(packets.value[i]);\n }\n }\n }\n return result;\n });\n const loadData = () => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _g, _h;\n loading.value = true;\n try {\n const rawList = yield supabaseService.getUserRedPackets();\n const mappedList = [];\n for (let i = 0; i < rawList.length; i++) {\n const item = rawList[i];\n const packet = new RedPacket({\n id: (_a = item.getString('id')) !== null && _a !== void 0 ? _a : '',\n user_id: '',\n amount: (_b = item.getNumber('amount')) !== null && _b !== void 0 ? _b : 0,\n name: (_c = item.getString('name')) !== null && _c !== void 0 ? _c : '',\n status: (_d = item.getNumber('status')) !== null && _d !== void 0 ? _d : 0,\n expire_at: (_g = item.getString('expire_at')) !== null && _g !== void 0 ? _g : '',\n created_at: (_h = item.getString('created_at')) !== null && _h !== void 0 ? _h : ''\n });\n mappedList.push(packet);\n }\n packets.value = mappedList;\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/red-packets/index.uvue:98', e);\n }\n finally {\n loading.value = false;\n }\n }); };\n onMounted(() => {\n loadData();\n });\n const usePacket = (item) => {\n uni.switchTab({\n url: '/pages/main/index'\n });\n };\n const getStatusText = (status) => {\n if (status === 1)\n return '已使用';\n if (status === 2)\n return '已过期';\n return '';\n };\n const formatTime = (timeStr) => {\n if (timeStr == '')\n return '永久有效';\n const date = new Date(timeStr);\n return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: currentTab.value === 0 ? 1 : '',\n b: _o($event => { return currentTab.value = 0; }),\n c: currentTab.value === 1 ? 1 : '',\n d: _o($event => { return currentTab.value = 1; }),\n e: loading.value\n }, loading.value ? {} : _e({\n f: filteredPackets.value.length === 0\n }, filteredPackets.value.length === 0 ? {} : {\n g: _f(filteredPackets.value, (item, k0, i0) => {\n return _e({\n a: _t(item.amount),\n b: _t(item.name),\n c: _t(formatTime(item.expire_at)),\n d: item.status === 0\n }, item.status === 0 ? {\n e: _o($event => { return usePacket(item); }, item.id)\n } : {\n f: _t(getStatusText(item.status))\n }, {\n g: item.id,\n h: item.status !== 0 ? 1 : ''\n });\n })\n }), {\n h: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/companyproject/mall/pages/mall/consumer/red-packets/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.__f__","uni.switchTab"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"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\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/90760e62cc3ac1b5ce4be321da853112eb717abb b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/90760e62cc3ac1b5ce4be321da853112eb717abb deleted file mode 100644 index af0f6fec..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/90760e62cc3ac1b5ce4be321da853112eb717abb +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport supa, { ensureSupabaseReady } from \"@/components/supadb/aksupainstance\";\nexport function rpcOrEmptyArray(functionName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n yield ensureSupabaseReady();\n const res = yield supa.rpc(functionName, params);\n if ((res === null || res === void 0 ? null : res.status) === 404) {\n return [];\n }\n if ((res === null || res === void 0 ? null : res.error) != null) {\n throw res.error;\n }\n const anyData = res.data;\n return Array.isArray(anyData) ? anyData : [];\n });\n}\nexport function rpcOrNull(functionName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n yield ensureSupabaseReady();\n const res = yield supa.rpc(functionName, params);\n if ((res === null || res === void 0 ? null : res.status) === 404) {\n return null;\n }\n if ((res === null || res === void 0 ? null : res.error) != null) {\n throw res.error;\n }\n const anyData = res.data;\n if (Array.isArray(anyData)) {\n return anyData.length > 0 ? anyData[0] : null;\n }\n return anyData != null ? anyData : null;\n });\n}\nexport function rpcOrValue(functionName, params) {\n return __awaiter(this, void 0, void 0, function* () {\n yield ensureSupabaseReady();\n const res = yield supa.rpc(functionName, params);\n if ((res === null || res === void 0 ? null : res.status) === 404) {\n return null;\n }\n if ((res === null || res === void 0 ? null : res.error) != null) {\n throw res.error;\n }\n return res.data;\n });\n}\n//# sourceMappingURL=D:/companyproject/mall/services/analytics/rpc.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"rpc.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"rpc.uts\"],\"names\":[],\"mappings\":\";OAAO,IAAI,EAAE,EAAE,mBAAmB,EAAE;AAEpC,MAAM,UAAgB,eAAe,CAAC,YAAoB,EAAE,MAAqB;;QAC/E,MAAM,mBAAmB,EAAE,CAAA;QAC3B,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,MAAM,MAAK,GAAG,EAAE;YACvB,OAAO,EAA0B,CAAA;SAClC;QACD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,KAAK,KAAI,IAAI,EAAE;YACtB,MAAM,GAAG,CAAC,KAAK,CAAA;SAChB;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAW,CAAA;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAgC,CAAC,CAAC,CAAE,EAA2B,CAAA;IAClG,CAAC;CAAA;AAED,MAAM,UAAgB,SAAS,CAAC,YAAoB,EAAE,MAAqB;;QACzE,MAAM,mBAAmB,EAAE,CAAA;QAC3B,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,MAAM,MAAK,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,KAAK,KAAI,IAAI,EAAE;YACtB,MAAM,GAAG,CAAC,KAAK,CAAA;SAChB;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAW,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;SACjE;QACD,OAAO,OAAO,IAAI,IAAI,CAAC,CAAC,CAAE,OAAyB,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5D,CAAC;CAAA;AAED,MAAM,UAAgB,UAAU,CAAC,YAAoB,EAAE,MAAqB;;QAC1E,MAAM,mBAAmB,EAAE,CAAA;QAC3B,MAAM,GAAG,GAAQ,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,MAAM,MAAK,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;SACZ;QACD,IAAI,CAAA,GAAG,aAAH,GAAG,qBAAH,GAAG,CAAE,KAAK,KAAI,IAAI,EAAE;YACtB,MAAM,GAAG,CAAC,KAAK,CAAA;SAChB;QACD,OAAO,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC;CAAA\"}"} diff --git a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/91e2f1a9a3532248d1da9bf570b29c873bf989e0 b/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/91e2f1a9a3532248d1da9bf570b29c873bf989e0 deleted file mode 100644 index 228dc5a4..00000000 --- a/unpackage/cache/.mp-weixin/.uts2js/cache/uts_03e2ffe59ea0756f084c7b882568fd226fd0dc83/code/cache/91e2f1a9a3532248d1da9bf570b29c873bf989e0 +++ /dev/null @@ -1 +0,0 @@ -{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, toDisplayString as _toDisplayString, t as _t, n as _n, f as _f, gei as _gei, sei as _sei, e as _e } from \"vue\";\nimport { ref, onMounted } from 'vue';\nimport supaClient from \"@/components/supadb/aksupainstance\";\nimport { getCurrentUserId } from \"@/utils/store\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'my-subscriptions',\n setup(__props) {\n const loading = ref(true);\n const items = ref([]);\n const fmt = (s = null) => {\n if (s == null || s.length === 0)\n return '-';\n const d = new Date(s);\n if (isNaN(d.getTime()))\n return '-';\n return `${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, '0')}-${d.getDate().toString().padStart(2, '0')}`;\n };\n const statusText = (st) => {\n const map = new UTSJSONObject({ trial: '试用', active: '生效', past_due: '逾期', canceled: '已取消', expired: '已过期' });\n const val = map[st];\n return val != null ? val : st;\n };\n const loadSubs = () => { return __awaiter(this, void 0, void 0, function* () {\n try {\n loading.value = true;\n const userId = getCurrentUserId();\n if (userId == null || userId.length === 0) {\n items.value = [];\n return Promise.resolve(null);\n }\n // join: ml_user_subscriptions + ml_subscription_plans\n const res = yield supaClient\n .from('ml_user_subscriptions')\n .select('*, plan:ml_subscription_plans(*)', new UTSJSONObject({}))\n .eq('user_id', userId)\n .order('created_at', new UTSJSONObject({ ascending: false }))\n .execute();\n items.value = Array.isArray(res.data) ? res.data : [];\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/subscription/my-subscriptions.uvue:83', '加载订阅失败:', e);\n uni.showToast({ title: '加载失败', icon: 'none' });\n }\n finally {\n loading.value = false;\n }\n }); };\n const toggleAutoRenew = (s, value) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n const id = ((_a = s['id']) !== null && _a !== void 0 ? _a : '');\n const res = yield supaClient\n .from('ml_user_subscriptions')\n .update(new UTSJSONObject({ auto_renew: value }))\n .eq('id', id)\n .execute();\n if (res.error != null)\n throw new Error((_c = (_b = res.error) === null || _b === void 0 ? null : _b.message) !== null && _c !== void 0 ? _c : '未知错误');\n s['auto_renew'] = value;\n uni.showToast({ title: value ? '已开启自动续费' : '已关闭自动续费', icon: 'success' });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/subscription/my-subscriptions.uvue:102', '更新自动续费失败:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const cancelAtPeriodEnd = (s) => { return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n const id = ((_a = s['id']) !== null && _a !== void 0 ? _a : '');\n const res = yield supaClient\n .from('ml_user_subscriptions')\n .update(new UTSJSONObject({ cancel_at_period_end: true }))\n .eq('id', id)\n .execute();\n if (res.error != null)\n throw new Error((_c = (_b = res.error) === null || _b === void 0 ? null : _b.message) !== null && _c !== void 0 ? _c : '未知错误');\n s['cancel_at_period_end'] = true;\n s['status'] = 'active'; // 保持到期前仍为active\n uni.showToast({ title: '已设置到期取消', icon: 'success' });\n }\n catch (e) {\n uni.__f__('error', 'at pages/mall/consumer/subscription/my-subscriptions.uvue:120', '设置到期取消失败:', e);\n uni.showToast({ title: '操作失败', icon: 'none' });\n }\n }); };\n const goPlanList = () => {\n uni.navigateTo({ url: '/pages/mall/consumer/subscription/plan-list' });\n };\n onMounted(loadSubs);\n // 注意:uni-app x 的