Bladeren bron

fix(confirmOrder): 修复加油订单确认页输入与价格计算逻辑

- 增加不使用优惠卷提示及第三方价格校验
- 恢复加油金额最小10元校验逻辑
- 优化抵扣券列表处理,自动选择最优优惠券
- 修改价格计算接口调用地址和参数
- 将金额输入框类型由digit改为number
- 根据是否支持优惠方案显示“去兑换”按钮
fix(index): 调整首页排序选项及列表样式

- 调换“距离优先”和“价格从低到高”的索引值
- 默认当前选项调整为距离优先
- 修复列表项标题区域上边距样式问题
fix(user): 修改用户定位坐标为固定测试值

- 注释掉真实经纬度赋值
- 设置固定经纬度用于调试测试
zhangtao 12 uur geleden
bovenliggende
commit
54cfd27b83
3 gewijzigde bestanden met toevoegingen van 30 en 12 verwijderingen
  1. 22 6
      src/pages/confirmOrder/index.vue
  2. 4 4
      src/pages/index/index.vue
  3. 4 2
      src/store/user.ts

+ 22 - 6
src/pages/confirmOrder/index.vue

@@ -33,6 +33,12 @@ const priceData = computed(() => {
   return storeDetail.value?.itemInfoList ? storeDetail.value?.itemInfoList.find(item => item.itemId === refuelNumber.value) : null
 })
 function handlePay() {
+  if (!selectDk.value) {
+    return useGlobalToast().show('如需不使用优惠卷,请选择暂不使用优惠卷')
+  }
+  if (!ThreePrice.value) {
+    return useGlobalToast().show('第三方价格计算失败')
+  }
   if (!refuelGun.value) {
     return useGlobalToast().show('请选择油枪')
   }
@@ -62,9 +68,9 @@ function handlePay() {
   console.log('handlePay')
 }
 async function handleBlur() {
-  // if (Number(refuelMoney.value) < 10) {
-  //   return useGlobalToast().show('最小金额为10元')
-  // }
+  if (Number(refuelMoney.value) < 10) {
+    return useGlobalToast().show('最小金额为10元')
+  }
   if (!storeDetail.value)
     return
   if (!storeDetail.value.allowanceClientScheme) {
@@ -76,13 +82,23 @@ async function handleBlur() {
     })
 
     dkList.value = res.data
+    if (dkList.value?.appCouponOrderOptimalVO != null) {
+      selectDk.value = dkList.value?.appCouponOrderOptimalVO?.allowanceId
+      isSeletDk.value = true
+      getMoney()
+    }
+    else {
+      selectDk.value = null
+      isSeletDk.value = false
+      ThreePrice.value = undefined
+    }
   }
 }
 async function getMoney() {
   if (!storeDetail.value)
     return
   const nams = storeDetail.value?.itemInfoList?.find(item => item.itemId === refuelNumber.value)?.itemName
-  const { data } = await Apis.general.post_smqjh_pms_api_v1_refueling_querycalprice({ data: {
+  const { data } = await Apis.general.post_smqjh_pms_app_api_v1_product_oil_querycalprice({ data: {
     storeId: storeDetail.value?.storeId as string,
     itemName: nams as string,
     amount: Number(refuelMoney.value) * 100,
@@ -200,7 +216,7 @@ function getSelectDkInfo() {
           加油金额
         </view>
         <view class="mt20rpx bg-#F9F9F9 px24rpx py20rpx">
-          <input v-model="refuelMoney" type="digit" class="w-full" placeholder="请输入加油金额,优惠价格计算" @blur="handleBlur">
+          <input v-model="refuelMoney" type="number" class="w-full" placeholder="请输入加油金额,优惠价格计算" @blur="handleBlur">
         </view>
         <view class="mt20rpx text-#ff4d3a">
           最小金额10元
@@ -211,7 +227,7 @@ function getSelectDkInfo() {
           <view class="mr20rpx text-28rpx font-semibold">
             抵扣券
           </view>
-          <wd-button size="small" @click="router.push({ name: 'activityList' })">
+          <wd-button v-if="!storeDetail.allowanceClientScheme" size="small" @click="router.push({ name: 'activityList' })">
             去兑换
           </wd-button>
         </view>

+ 4 - 4
src/pages/index/index.vue

@@ -11,10 +11,10 @@ definePage({
   },
 })
 const tabList = ref([
-  { label: '距离优先', value: 0 },
-  { label: '价格从低到高', value: 1 },
+  { label: '距离优先', value: 1 },
+  { label: '价格从低到高', value: 0 },
 ])
-const currentTab = ref(0)
+const currentTab = ref(1)
 const { data, send, isLastPage, page, reload } = usePagination((pageNum, pageSize) =>
   Apis.general.post_smqjh_pms_app_api_v1_product_oil_page(
     { data: { pageNum, pageSize, lat: useUserStore().lat, lon: useUserStore().lng, sort: currentTab.value } },
@@ -76,7 +76,7 @@ watch(() => currentTab.value, () => {
       </view>
       <!-- </wd-sticky> -->
       <view v-for="item in data" :key="item.storeId" class="relative mb20rpx box-border rounded-16rpx bg-white p24rpx" @click="handleView(item)">
-        <view class="mt80rpx flex items-center justify-between">
+        <view class="flex items-center justify-between">
           <view class="text-36rpx font-semibold">
             {{ item.storeName }}
           </view>

+ 4 - 2
src/store/user.ts

@@ -79,8 +79,10 @@ export const useUserStore = defineStore('user', {
           success: (res) => {
             uni.hideLoading()
             console.log('H5位置获取成功', res)
-            this.lat = Number(res.latitude.toFixed(6))
-            this.lng = Number(res.longitude.toFixed(6))
+            // this.lat = Number(res.latitude.toFixed(6))
+            // this.lng = Number(res.longitude.toFixed(6))
+            this.lat = 30.282
+            this.lng = 120.09
             resolve(true)
           },
           fail: (err) => {