Bladeren bron

bug修复

chenjj 3 maanden geleden
bovenliggende
commit
fc4463a4e8
4 gewijzigde bestanden met toevoegingen van 327 en 19 verwijderingen
  1. 1 1
      pages/common/orderList/listItem.vue
  2. 10 11
      pages_classify/pages/handle/index.vue
  3. 85 7
      pages_classify/pages/order/index.vue
  4. 231 0
      pnpm-lock.yaml

+ 1 - 1
pages/common/orderList/listItem.vue

@@ -33,7 +33,7 @@
             </view>
             <view class="item-box">
                 <view class="item-btns">
-                    <view class="btn-m" @click="onClick(1)" v-if="['2','4'].includes(data.orderStatus)">查看</view>
+                    <view class="btn-m" @click="onClick(1)" >查看</view>
                     <view class="btn-m" @click="onClick(2)">
                         <text style="margin-left: 8rpx;">沟通</text>
                     </view>

+ 10 - 11
pages_classify/pages/handle/index.vue

@@ -264,19 +264,18 @@ const change = async (e) => {
         title: '获取位置信息...'
       })
       
-      // 获取结束服务时的位置
-      const locationData = await getCurrentLocation().catch(err => {
-        uni.hideLoading()
-        verify.value.initialization()
-        throw new Error('无法获取位置信息,请确保已开启位置权限')
-      })
-      
-      // 构建参数字符串
-      const params = `secondOrderId=${secondOrderId.value}&serviceFinishLongitude=${locationData.longitude.toString()}&serviceFinishLatitude=${locationData.latitude.toString()}`
+      // // 获取结束服务时的位置
+      // const locationData = await getCurrentLocation().catch(err => {
+      //   uni.hideLoading()
+      //   verify.value.initialization()
+      //   throw new Error('无法获取位置信息,请确保已开启位置权限')
+      // })
       
-      // 调用结束服务接口,通过URL查询参数传递位置信息
-      await getVolunteerFinishSecondOrder(params)
+      // // 构建参数字符串
+      // const params = `secondOrderId=${secondOrderId.value}&serviceFinishLongitude=${locationData.longitude.toString()}&serviceFinishLatitude=${locationData.latitude.toString()}`
       
+      // // 调用结束服务接口,通过URL查询参数传递位置信息
+      // await getVolunteerFinishSecondOrder(params)
       uni.showToast({
         title: '操作成功',
         icon: 'success',

+ 85 - 7
pages_classify/pages/order/index.vue

@@ -175,16 +175,94 @@ const getOrderDetail = async () => {
 	}
 }
 
-const onSubmit = () => {
+// 获取当前位置信息
+const getCurrentLocation = () => {
+  return new Promise((resolve, reject) => {
+    // 先检查用户是否授权了位置权限
+    uni.getSetting({
+      success: (res) => {
+        if (!res.authSetting['scope.userLocation']) {
+          // 如果用户未授权,先请求授权
+          uni.authorize({
+            scope: 'scope.userLocation',
+            success: () => {
+              // 授权成功后获取位置
+              getLocation(resolve, reject);
+            },
+            fail: (err) => {
+              console.error('位置授权失败:', err);
+              uni.showModal({
+                title: '提示',
+                content: '需要获取您的位置信息,请在设置中打开位置权限',
+                confirmText: '去设置',
+                success: (res) => {
+                  if (res.confirm) {
+                    uni.openSetting();
+                  }
+                }
+              });
+              reject(err);
+            }
+          });
+        } else {
+          // 已授权,直接获取位置
+          getLocation(resolve, reject);
+        }
+      },
+      fail: (err) => {
+        console.error('获取设置失败:', err);
+        reject(err);
+      }
+    });
+  });
+}
+
+// 获取位置的具体实现
+const getLocation = (resolve, reject) => {
+  // 删除开发环境模拟位置的代码,始终获取真实位置
+  uni.getLocation({
+    type: 'gcj02',
+    isHighAccuracy: true, // 高精度
+    highAccuracyExpireTime: 3000, // 高精度过期时间
+    success: (res) => {
+      const { longitude, latitude } = res;
+      console.log('当前位置 - 经度:', longitude);
+      console.log('当前位置 - 纬度:', latitude);
+      resolve({
+        longitude,
+        latitude
+      });
+    },
+    fail: (err) => {
+      console.error('获取位置失败:', err);
+      // 获取位置失败时向用户提示
+      uni.showToast({
+        title: '获取位置失败,请确保已开启位置权限',
+        icon: 'none',
+        duration: 2000
+      });
+      reject(err);
+    }
+  });
+}
+
+const onSubmit = async() => {
 	const img_urls = fileList.value.map(item => item.url).join(',');
 	console.log('submit', fileList.value, img_urls);
 
-	getVolunteerFinishSecondOrder({
-		secondOrderId: secondOrderId.value,
-		volunteerPicture: img_urls,
-		// volunteerId: detaile.value.volunteerId,
-		volunteerReview: detaile.value.volunteerReview
-	}).then(res => {
+	      // 获取结束服务时的位置
+      const locationData = await getCurrentLocation().catch(err => {
+        uni.hideLoading()
+        verify.value.initialization()
+        throw new Error('无法获取位置信息,请确保已开启位置权限')
+      })
+      
+      // 构建参数字符串
+      const params = `volunteerPicture=${img_urls}&volunteerReview=${detaile.value.volunteerReview}&secondOrderId=${secondOrderId.value}&serviceFinishLongitude=${locationData.longitude.toString()}&serviceFinishLatitude=${locationData.latitude.toString()}`
+      
+      // 调用结束服务接口,通过URL查询参数传递位置信息
+
+	getVolunteerFinishSecondOrder(params).then(res => {
 		if (res.code === 200) {
 			uni.showToast({
 				title: '服务结束',

+ 231 - 0
pnpm-lock.yaml

@@ -0,0 +1,231 @@
+lockfileVersion: '9.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+importers:
+
+  .:
+    dependencies:
+      dayjs:
+        specifier: ^1.11.13
+        version: 1.11.13
+      qs:
+        specifier: ^6.14.0
+        version: 6.14.0
+      uview-plus:
+        specifier: ^3.4.9
+        version: 3.4.36
+
+packages:
+
+  call-bind-apply-helpers@1.0.2:
+    resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+    engines: {node: '>= 0.4'}
+
+  call-bound@1.0.4:
+    resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+    engines: {node: '>= 0.4'}
+
+  clipboard@2.0.11:
+    resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==}
+
+  dayjs@1.11.13:
+    resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+
+  delegate@3.2.0:
+    resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
+
+  dunder-proto@1.0.1:
+    resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+    engines: {node: '>= 0.4'}
+
+  es-define-property@1.0.1:
+    resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+    engines: {node: '>= 0.4'}
+
+  es-errors@1.3.0:
+    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+    engines: {node: '>= 0.4'}
+
+  es-object-atoms@1.1.1:
+    resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+    engines: {node: '>= 0.4'}
+
+  function-bind@1.1.2:
+    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+  get-intrinsic@1.3.0:
+    resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+    engines: {node: '>= 0.4'}
+
+  get-proto@1.0.1:
+    resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+    engines: {node: '>= 0.4'}
+
+  good-listener@1.2.2:
+    resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
+
+  gopd@1.2.0:
+    resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+    engines: {node: '>= 0.4'}
+
+  has-symbols@1.1.0:
+    resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+    engines: {node: '>= 0.4'}
+
+  hasown@2.0.2:
+    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+    engines: {node: '>= 0.4'}
+
+  math-intrinsics@1.1.0:
+    resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+    engines: {node: '>= 0.4'}
+
+  object-inspect@1.13.4:
+    resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+    engines: {node: '>= 0.4'}
+
+  qs@6.14.0:
+    resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
+    engines: {node: '>=0.6'}
+
+  select@1.1.2:
+    resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
+
+  side-channel-list@1.0.0:
+    resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+    engines: {node: '>= 0.4'}
+
+  side-channel-map@1.0.1:
+    resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+    engines: {node: '>= 0.4'}
+
+  side-channel-weakmap@1.0.2:
+    resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+    engines: {node: '>= 0.4'}
+
+  side-channel@1.1.0:
+    resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+    engines: {node: '>= 0.4'}
+
+  tiny-emitter@2.1.0:
+    resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==}
+
+  uview-plus@3.4.36:
+    resolution: {integrity: sha512-IaH0axgerMWqPrNKpA+9qRT0swdTV5vyBRxvtYCu6LLBFUP52PDSYbh1R10hE8i18Ap+ioS1qAjSOllwHUmpKA==}
+    engines: {HBuilderX: ^3.1.0}
+
+snapshots:
+
+  call-bind-apply-helpers@1.0.2:
+    dependencies:
+      es-errors: 1.3.0
+      function-bind: 1.1.2
+
+  call-bound@1.0.4:
+    dependencies:
+      call-bind-apply-helpers: 1.0.2
+      get-intrinsic: 1.3.0
+
+  clipboard@2.0.11:
+    dependencies:
+      good-listener: 1.2.2
+      select: 1.1.2
+      tiny-emitter: 2.1.0
+
+  dayjs@1.11.13: {}
+
+  delegate@3.2.0: {}
+
+  dunder-proto@1.0.1:
+    dependencies:
+      call-bind-apply-helpers: 1.0.2
+      es-errors: 1.3.0
+      gopd: 1.2.0
+
+  es-define-property@1.0.1: {}
+
+  es-errors@1.3.0: {}
+
+  es-object-atoms@1.1.1:
+    dependencies:
+      es-errors: 1.3.0
+
+  function-bind@1.1.2: {}
+
+  get-intrinsic@1.3.0:
+    dependencies:
+      call-bind-apply-helpers: 1.0.2
+      es-define-property: 1.0.1
+      es-errors: 1.3.0
+      es-object-atoms: 1.1.1
+      function-bind: 1.1.2
+      get-proto: 1.0.1
+      gopd: 1.2.0
+      has-symbols: 1.1.0
+      hasown: 2.0.2
+      math-intrinsics: 1.1.0
+
+  get-proto@1.0.1:
+    dependencies:
+      dunder-proto: 1.0.1
+      es-object-atoms: 1.1.1
+
+  good-listener@1.2.2:
+    dependencies:
+      delegate: 3.2.0
+
+  gopd@1.2.0: {}
+
+  has-symbols@1.1.0: {}
+
+  hasown@2.0.2:
+    dependencies:
+      function-bind: 1.1.2
+
+  math-intrinsics@1.1.0: {}
+
+  object-inspect@1.13.4: {}
+
+  qs@6.14.0:
+    dependencies:
+      side-channel: 1.1.0
+
+  select@1.1.2: {}
+
+  side-channel-list@1.0.0:
+    dependencies:
+      es-errors: 1.3.0
+      object-inspect: 1.13.4
+
+  side-channel-map@1.0.1:
+    dependencies:
+      call-bound: 1.0.4
+      es-errors: 1.3.0
+      get-intrinsic: 1.3.0
+      object-inspect: 1.13.4
+
+  side-channel-weakmap@1.0.2:
+    dependencies:
+      call-bound: 1.0.4
+      es-errors: 1.3.0
+      get-intrinsic: 1.3.0
+      object-inspect: 1.13.4
+      side-channel-map: 1.0.1
+
+  side-channel@1.1.0:
+    dependencies:
+      es-errors: 1.3.0
+      object-inspect: 1.13.4
+      side-channel-list: 1.0.0
+      side-channel-map: 1.0.1
+      side-channel-weakmap: 1.0.2
+
+  tiny-emitter@2.1.0: {}
+
+  uview-plus@3.4.36:
+    dependencies:
+      clipboard: 2.0.11
+      dayjs: 1.11.13