Преглед изворни кода

fix(afterSalesDetail): 修复优惠券访问空指针异常

- 为 couponBaseInfoDTO 属性添加可选链操作符,避免访问空值时报错
- 优化优惠券及金额显示的条件判断逻辑
- 修改实付款显示为实际支付总额,避免显示不准确金额

fix(xsBOrderList): 修正倒计时组件刷新事件触发逻辑

- 移除倒计时组件完成事件的刷新触发,避免多余刷新

feat(classfiy): 优化购物车商品数量显示与结算按钮状态

- 在购物车图标数量为0时切换禁用图标
- 未添加商品时显示提示文本
- 结算按钮根据商品数量动态禁用和切换样式

fix(sys): 修复门店选择逻辑,优先保留已选门店

- 调整最近门店选择时,若已存在选中门店,则保留已选门店信息

chore(config): 更新开发环境接口地址

- 将开发环境接口地址由192.168.1.89更新为192.168.1.21
- 注释掉原47.109.84.152开发环境配置,暂时禁用该地址
zhangtao пре 1 недеља
родитељ
комит
c682ef2293

+ 2 - 2
src/config/index.ts

@@ -9,9 +9,9 @@ const mapEnvVersion = {
   // develop: 'http://192.168.0.19:8080', // 邓
   // develop: 'http://192.168.0.217:8080', // 黄
   // develop: 'http://192.168.0.11:8080', // 王
-  // develop: 'http://192.168.1.89:8080', // 田
+  develop: 'http://192.168.1.21:8080', // 田
   // develop: 'http://74949mkfh190.vicp.fun', // 付
-  develop: 'http://47.109.84.152:8081',
+  // develop: 'http://47.109.84.152:8081',
   // develop: 'https://5ed0f7cc.r9.vip.cpolar.cn',
   // develop: 'https://smqjh.api.zswlgz.com',
   /**

+ 7 - 7
src/subPack-common/afterSalesDetail/index.vue

@@ -151,7 +151,7 @@ function copyToClipboard(text: string) {
             退还优惠券:
           </view>
           <view class="text-#FF4D3A font-semibold">
-            ¥{{ refundOrderInfo.isAll ? refundOrderInfo.couponBaseInfoDTO.discountMoney : '0' }}
+            ¥{{ refundOrderInfo.isAll ? refundOrderInfo.couponBaseInfoDTO?.discountMoney : '0' }}
           </view>
         </view>
       </view>
@@ -169,7 +169,7 @@ function copyToClipboard(text: string) {
       <view class="text-28rpx font-semibold">
         优惠券处理
       </view>
-      <view class="mt10rpx text-24rpx">
+      <view v-if="refundOrderInfo.couponBaseInfoDTO" class="mt10rpx text-24rpx">
         使用的优惠券:{{ refundOrderInfo.couponBaseInfoDTO.activityName }}
       </view>
       <view class="mb24rpx mt10rpx text-24rpx">
@@ -185,7 +185,7 @@ function copyToClipboard(text: string) {
         </template>
         <template v-else-if="refundStatus.ReturnCompleted == refundOrderInfo.returnMoneySts">
           <view v-if="refundOrderInfo.isAll">
-            <view> 有效期不变至: {{ refundOrderInfo.couponBaseInfoDTO.expirationTime }}</view>
+            <view> 有效期不变至: {{ refundOrderInfo.couponBaseInfoDTO?.expirationTime }}</view>
           </view>
           <view v-else>
             <view> 优惠券已使用,不退回</view>
@@ -310,12 +310,12 @@ function copyToClipboard(text: string) {
           ¥{{ refundOrderInfo.freightAmount }}
         </view>
       </view>
-      <view v-if="refundOrderInfo.couponBaseInfoDTO.discountMoney" class="mt24rpx flex items-center justify-between">
+      <view v-if="refundOrderInfo.couponBaseInfoDTO" class="mt24rpx flex items-center justify-between">
         <view class="text-28rpx">
           优惠券
         </view>
         <view class="text-#FF4A39 font-semibold">
-          -¥{{ refundOrderInfo.couponBaseInfoDTO.discountMoney }}
+          -¥{{ refundOrderInfo.couponBaseInfoDTO?.discountMoney }}
         </view>
       </view>
       <view class="mt24rpx flex items-center justify-between">
@@ -341,7 +341,7 @@ function copyToClipboard(text: string) {
             共减
           </view>
           <view class="ml5rpx text-28rpx text-#FF4D3A font-semibold">
-            {{ refundOrderInfo.omsOrderVo.offsetPointsMoney + refundOrderInfo.couponBaseInfoDTO.discountMoney }}
+            {{ Number(refundOrderInfo.omsOrderVo.offsetPointsMoney) + Number(refundOrderInfo.couponBaseInfoDTO?.discountMoney) }}
           </view>
         </view>
         <view class="ml10rpx flex items-center">
@@ -349,7 +349,7 @@ function copyToClipboard(text: string) {
             实付款
           </view>
           <view class="ml5rpx text-28rpx text-#FF4D3A font-semibold">
-            {{ refundOrderInfo.userRefundMoney }}
+            ¥{{ refundOrderInfo.omsOrderVo?.actualTotal }}
           </view>
         </view>
       </view>

+ 2 - 1
src/subPack-smqjh/components/xsb-orderList/xsb-orderList.vue

@@ -11,6 +11,7 @@ const _emit = defineEmits<{
 }>()
 const NodeList = ref<Api.DeliveryNode[]>([])
 const showNode = ref(false)
+
 const plugins = requirePlugin('logisticsPlugin')
 async function handleCancel(order: Api.xsbOrderList) {
   await useUserStore().handleCommonCancelOrder?.(order)
@@ -90,7 +91,7 @@ async function handleLogistics(_order: Api.xsbOrderList) {
         </template>
         <template v-else>
           <view class="flex items-center">
-            待支付( 还剩 <wd-count-down :time="useUserStore().handleXSBCommonOrderStatusText(order)" @finish="$emit('refresh')">
+            待支付( 还剩 <wd-count-down :time="useUserStore().handleXSBCommonOrderStatusText(order)">
               <template #default="{ current }">
                 <view class="text-24rpx text-[#FF4D3A]">
                   {{ current.minutes }}:{{ current.seconds }}

+ 7 - 3
src/subPack-xsb/commonTab/components/classfiy.vue

@@ -645,10 +645,11 @@ export default {
         <view class="flex items-center">
           <view class="flex items-center" @click="cartPopup = true, priceDetailPopup = false">
             <wd-badge :model-value="getTotalNum" :top="20">
-              <image :src="`${StaticUrl}/cart-lanzi.png`" class="cart-box h100rpx w100rpx" />
+              <image v-if="getTotalNum" :src="`${StaticUrl}/cart-lanzi.png`" class="cart-box h100rpx w100rpx" />
+              <image v-else :src="`${StaticUrl}/xsb-cart-disabled.png`" class="cart-box h100rpx w100rpx" />
             </wd-badge>
           </view>
-          <view class="ml40rpx">
+          <view v-if="getTotalNum" class="ml40rpx">
             <view class="flex items-center">
               <view class="font-semibold">
                 ¥ {{ totalProduct?.amount || 0 }}
@@ -669,6 +670,9 @@ export default {
               配送费:¥{{ totalProduct?.transfee || 0 }}
             </view>
           </view>
+          <view v-else class="ml40rpx text-24rpx text-#AAA">
+            您还没有添加商品
+          </view>
         </view>
         <view class="flex items-center">
           <!-- <view class="flex items-center font-semibold">
@@ -683,7 +687,7 @@ export default {
             </view>
           </view> -->
           <view class="ml20rpx w160rpx">
-            <wd-button block size="large" @click="handlePay">
+            <wd-button block size="large" :disabled="!getTotalNum" :type="getTotalNum ? 'primary' : 'info'" @click="handlePay">
               结算
             </wd-button>
           </view>

+ 1 - 1
src/subPack-xsb/store-xsb/sys.ts

@@ -90,7 +90,7 @@ export const useSysXsbStore = defineStore('system-xsb', {
         Apis.xsb.nearestShop({ data: { longitude, latitude } }).then((res) => {
           const newShop = this.xsbShopList.find(it => it.shopId === res.data.nearestShopId)
           if (newShop) {
-            this.SelectShopInfo = newShop
+            this.SelectShopInfo = this.SelectShopInfo || newShop
           }
           resolve(res)
         }).catch((err) => { reject(err) })