Browse Source

refactor(miniprogram): 优化页面逻辑和数据处理

- 改进登录和跳转逻辑,增加错误提示
- 移除不必要的错误提示,优化用户体验
- 添加空数据提示,提高页面可读性
- 调整水位信息和货盘列表样式,优化布局
wzg 8 tháng trước cách đây
mục cha
commit
90b4b4b404

+ 11 - 3
miniprogram/pages/index/index.js

@@ -22,11 +22,19 @@ Page({
         wx.setStorageSync(key, obj[key]);
       });
       wx.setStorageSync("accessToken", data.result.tokenInfo.tokenValue);
+    } else {
+      wx.showToast({
+        title: data.msg,
+        icon: "none",
+        duration: 1500,
+      });
     }
 
-    wx.switchTab({
-      url: "/pages/takePhoto/takePhoto",
-    });
+    setTimeout(() => {
+      wx.switchTab({
+        url: "/pages/takePhoto/takePhoto",
+      });
+    }, 1500);
   },
   onLoad: function (options) {
     if (wx.getStorageSync("userId") && wx.getStorageSync("shipName")) {

+ 8 - 37
miniprogram/pages/takePhoto/takePhoto.js

@@ -124,21 +124,12 @@ Page({
           this.setData({
             loading: false,
           });
-          wx.showToast({
-            title: res.data.msg || "获取数据失败",
-            icon: "none",
-          });
         }
       })
       .catch((res) => {
-        console.log(res);
         this.setData({
           loading: false,
         });
-        wx.showToast({
-          title: "网络请求失败",
-          icon: "none",
-        });
       });
   },
 
@@ -198,10 +189,6 @@ Page({
       this.setData({
         waterLevels: [],
       });
-      wx.showToast({
-        title: data.msg,
-        icon: "none",
-      });
     }
   },
   async getNewEnergyPolicy() {
@@ -216,10 +203,6 @@ Page({
         demolitionPolicy: [],
         shipbuildingPolicy: [],
       });
-      wx.showToast({
-        title: data.msg,
-        icon: "none",
-      });
     }
   },
 
@@ -235,9 +218,6 @@ Page({
         shipCrewCertificate: [],
         certOperationContact: [],
       });
-      wx.showToast({
-        title: data.msg,
-      });
     }
   },
   /**
@@ -261,20 +241,12 @@ Page({
           loading: false,
           palletList: [],
         });
-        wx.showToast({
-          title: data.msg || "获取数据失败",
-          icon: "none",
-        });
       }
     } catch (error) {
       console.log(error);
       this.setData({
         loading: false,
       });
-      wx.showToast({
-        title: "网络请求失败",
-        icon: "none",
-      });
     }
   },
 
@@ -301,22 +273,21 @@ Page({
       let { data } = await getApi("/checkin/wx/checkin/status");
       if (data && data.status === 0) {
         this.setData(data.result);
-      } else {
-        wx.showToast({
-          title: data.msg || "获取签到状态失败",
-          icon: "none",
-        });
       }
-    } catch (error) {
-      console.log(error);
+    } catch (error) {}
+  },
+  checkToken() {
+    if (!wx.getStorageSync("accessToken")) {
       wx.showToast({
-        title: "网络请求失败",
+        title: "尚未登录,正在体验",
         icon: "none",
       });
+      return false;
     }
+    return true;
   },
-
   async onSignIn() {
+    if (!this.checkToken()) return;
     if (this.data.checkinStatus == 1) return;
     if (this.data.locked) {
       wx.showLoading({

+ 53 - 29
miniprogram/pages/takePhoto/takePhoto.wxml

@@ -44,13 +44,18 @@
         <!-- 水位信息 -->
         <view class="section-title">水位信息</view>
         <scroll-view class="water-level-info" scroll-y="true">
-          <view class="water-level-item" wx:for="{{waterLevels}}">
-            <view class="water-level-station">{{item.site}}</view>
-            <view class="water-level-value">{{item.waterLevel}}米</view>
-            <view class="water-level-trend {{ item.change}}">
-              {{item.changeIcon}} {{item.waterLevelFluctuation}} 米
+          <block wx:if="{{waterLevels.length > 0}}">
+            <view class="water-level-item" wx:for="{{waterLevels}}" wx:key="site">
+              <view class="water-level-station">{{item.site}}</view>
+              <view class="water-level-value">{{item.waterLevel}}米</view>
+              <view class="water-level-trend {{ item.change}}">
+                {{item.changeIcon}} {{item.waterLevelFluctuation}} 米
+              </view>
             </view>
-          </view>
+          </block>
+          <block wx:else>
+            <view class="no-data">暂无水位数据</view>
+          </block>
         </scroll-view>
       </view>
     </view>
@@ -65,10 +70,15 @@
             <view class="policy-cell">吨位</view>
             <view class="policy-cell">补贴额度</view>
           </view>
-          <view class="policy-row" wx:for="{{demolitionPolicy}}">
-            <view class="policy-cell">{{item.shipTons}}</view>
-            <view class="policy-cell">{{item.subsidyAmount}} 万元/艘</view>
-          </view>
+          <block wx:if="{{demolitionPolicy.length > 0}}">
+            <view class="policy-row" wx:for="{{demolitionPolicy}}" wx:key="shipTons">
+              <view class="policy-cell">{{item.shipTons}}</view>
+              <view class="policy-cell">{{item.subsidyAmount}} 万元/艘</view>
+            </view>
+          </block>
+          <block wx:else>
+            <view class="no-data">暂无拆船政策数据</view>
+          </block>
         </view>
         <!-- 造船政策 -->
         <view class="section-title">造船政策</view>
@@ -78,11 +88,16 @@
             <view class="policy-cell">新能源类型</view>
             <view class="policy-cell">补贴额度</view>
           </view>
-          <view class="policy-row" wx:for="{{shipbuildingPolicy}}">
-            <view class="policy-cell">{{item.shipTons}}</view>
-            <view class="policy-cell">{{item.newEnergyType}}</view>
-            <view class="policy-cell">{{item.subsidyAmount}} 万元/艘</view>
-          </view>
+          <block wx:if="{{shipbuildingPolicy.length > 0}}">
+            <view class="policy-row" wx:for="{{shipbuildingPolicy}}" wx:key="shipTons">
+              <view class="policy-cell">{{item.shipTons}}</view>
+              <view class="policy-cell">{{item.newEnergyType}}</view>
+              <view class="policy-cell">{{item.subsidyAmount}} 万元/艘</view>
+            </view>
+          </block>
+          <block wx:else>
+            <view class="no-data">暂无造船政策数据</view>
+          </block>
         </view>
       </view>
     </view>
@@ -101,7 +116,7 @@
             </view>
           </view>
           <view>
-            <view class="cert-item" wx:for="{{shipAnnualInspection}}" wx:key="index">
+            <view class="cert-item" wx:for="{{shipAnnualInspection}}" wx:key="shipCertName">
               <view>{{item.shipCertName}}</view>
               <view class="expire-date {{item.expireType === 1 ? 'text-danger' : ''}}">
                 {{item.validityPeriodEndTime}}
@@ -120,7 +135,7 @@
             </view>
           </view>
           <view>
-            <view class="cert-item" wx:for="{{shipCertificate}}" wx:key="index">
+            <view class="cert-item" wx:for="{{shipCertificate}}" wx:key="shipCertName">
               <view>{{item.shipCertName}}</view>
               <view class="expire-date {{item.shipCertValid.expireType === 1 ? 'text-danger' : ''}}">
                 {{item.shipCertValid.validityPeriodEndTime}}
@@ -138,6 +153,10 @@
             </view>
           </view>
         </view>
+        <!-- 无数据提示 -->
+        <view class="no-data" wx:if="{{(!shipAnnualInspection || shipAnnualInspection.length === 0) && (!shipCertificate || shipCertificate.length === 0) && (!certOperationContact || certOperationContact.length === 0)}}">
+          暂无智能服务数据
+        </view>
       </view>
     </view>
     <!-- 搜查附近货盘 -->
@@ -158,20 +177,25 @@
         </view> -->
         <!-- 货盘列表 -->
         <view class="cargo-list">
-          <view class="cargo-item" wx:for="{{palletList}}">
-            <view class="cargo-info">
-              <text class="cargo-type">{{item.cargoName}}</text>
-              <view>| {{item.loadPortName}} → {{item.dischargePortName}} |</view>
-              <view>{{item.cargoTons}} 吨</view>
-            </view>
-            <view class="cargo-meta">
-              <view class="cargo-distance">联系人: {{item.contactName}}</view>
-              <view class="btn btn-phone" data-phone="{{item.contactPhone}}" bindtap="makePhoneCall">
-                <image class="tel" src="../../images/tel-f.png"></image>
-                拨打电话
+          <block wx:if="{{palletList.length > 0}}">
+            <view class="cargo-item" wx:for="{{palletList}}" wx:key="id">
+              <view class="cargo-info">
+                <text class="cargo-type">{{item.cargoName}}</text>
+                <view>| {{item.loadPortName}} → {{item.dischargePortName}} |</view>
+                <view>{{item.cargoTons}} 吨</view>
+              </view>
+              <view class="cargo-meta">
+                <view class="cargo-distance">联系人: {{item.contactName}}</view>
+                <view class="btn btn-phone" data-phone="{{item.contactPhone}}" bindtap="makePhoneCall">
+                  <image class="tel" src="../../images/tel-f.png"></image>
+                  拨打电话
+                </view>
               </view>
             </view>
-          </view>
+          </block>
+          <block wx:else>
+            <view class="no-data">暂无货盘数据</view>
+          </block>
         </view>
       </view>
     </view>

+ 1 - 1
miniprogram/pages/takePhoto/takePhoto.wxss

@@ -258,7 +258,7 @@ page {
 /* 水位信息样式 */
 .water-level-info {
   margin-top: 10px;
-  height: 400rpx;
+  max-height: 400rpx;
 }
 
 .water-level-item {