Explorar el Código

feat(takePhoto): 添加货盘列表功能

- 新增货盘列表数据获取和搜索功能
- 实现货盘列表的渲染和搜索输入框的绑定
- 优化码头服务搜索相关代码
wzg hace 8 meses
padre
commit
a37cd62002

+ 86 - 5
miniprogram/pages/takePhoto/takePhoto.js

@@ -6,7 +6,7 @@ Page({
    */
   data: {
     terminalServices: [], // 码头服务列表
-    searchWords: "", // 搜索关键词
+    terminalSearchWords: "", // 搜索关键词
     loading: false, // 加载状态
     waterLevels: [], // 水位数据
     demolitionPolicy: [], // 拆解政策
@@ -15,6 +15,33 @@ Page({
     shipCertificate: [],
     shipCrewCertificate: [],
     certOperationContact: [],
+    palletList: [
+      {
+        id: 5,
+        cargoName: "222",
+        loadPortName: "2",
+        dischargePortName: "3",
+        cargoTons: 4,
+        contactName: "5",
+        contactPhone: "13666666666",
+        status: 1,
+        releaseTime: "2025/05/08 19:52:33",
+        createTime: "2025/05/07 23:36:26",
+      },
+      {
+        id: 6,
+        cargoName: "测试1",
+        loadPortName: "上海",
+        dischargePortName: "张家港",
+        cargoTons: 111,
+        contactName: "11",
+        contactPhone: "11111111111",
+        status: 1,
+        releaseTime: "2025/05/08 19:52:14",
+        createTime: "2025/05/08 11:06:03",
+      },
+    ],
+    palletListSearchWords: "", // 货盘搜索关键词
   },
 
   /**
@@ -25,6 +52,7 @@ Page({
     this.getWaterLevel();
     this.getNewEnergyPolicy();
     this.getIntelligentService();
+    this.getPalletList();
   },
 
   /**
@@ -71,12 +99,12 @@ Page({
   /**
    * 获取码头服务数据
    */
-  getTerminalServices(searchWords = "") {
+  getTerminalServices(terminalSearchWords = "") {
     this.setData({
       loading: true,
     });
     postApi("/pallet/terminal/services", {
-      searchWords: searchWords,
+      searchWords: terminalSearchWords,
     })
       .then((res) => {
         if (res.data && res.data.status === 0) {
@@ -110,7 +138,7 @@ Page({
    * 搜索码头服务
    */
   searchTerminalServices() {
-    this.getTerminalServices(this.data.searchWords);
+    this.getTerminalServices(this.data.terminalSearchWords);
   },
 
   /**
@@ -118,7 +146,7 @@ Page({
    */
   onSearchInput(e) {
     this.setData({
-      searchWords: e.detail.value,
+      terminalSearchWords: e.detail.value,
     });
   },
 
@@ -204,4 +232,57 @@ Page({
       });
     }
   },
+  /**
+   * 获取货盘列表数据
+   */
+  async getPalletList(palletListSearchWords = "") {
+    this.setData({
+      loading: true,
+    });
+    try {
+      let { data } = await postApi("/pallet/list", {
+        searchWords: palletListSearchWords,
+      });
+      if (data && data.status === 0) {
+        this.setData({
+          palletList: data.result || [],
+          loading: false,
+        });
+      } else {
+        this.setData({
+          loading: false,
+          palletList: [],
+        });
+        wx.showToast({
+          title: data.msg || "获取数据失败",
+          icon: "none",
+        });
+      }
+    } catch (error) {
+      console.log(error);
+      this.setData({
+        loading: false,
+      });
+      wx.showToast({
+        title: "网络请求失败",
+        icon: "none",
+      });
+    }
+  },
+
+  /**
+   * 搜索货盘列表
+   */
+  searchPalletList() {
+    this.getPalletList(this.data.palletListSearchWords);
+  },
+
+  /**
+   * 货盘搜索输入框内容变化事件
+   */
+  onPalletSearchInput(e) {
+    this.setData({
+      palletListSearchWords: e.detail.value,
+    });
+  },
 });

+ 9 - 37
miniprogram/pages/takePhoto/takePhoto.wxml

@@ -15,7 +15,7 @@
       <view class="card-content">
         <!-- 搜索栏 -->
         <view class="search-box">
-          <input type="text" class="search-input" placeholder="输入关键词搜索" bindinput="onSearchInput" value="{{searchWords}}" />
+          <input type="text" class="search-input" placeholder="输入关键词搜索" bindinput="onSearchInput" value="{{terminalSearchWords}}" />
           <view class="search-btn" bindtap="searchTerminalServices">搜索</view>
         </view>
         <!-- 热门推荐 -->
@@ -143,8 +143,8 @@
       <view class="card-header">搜查附近货盘</view>
       <view class="card-content">
         <view class="search-box">
-          <input type="text" class="search-input" placeholder="输入关键词搜索" />
-          <view class="search-btn">搜索</view>
+          <input type="text" class="search-input" placeholder="输入关键词搜索" bindinput="onPalletSearchInput" value="{{palletListSearchWords}}" />
+          <view class="search-btn" bindtap="searchPalletList">搜索</view>
         </view>
         <view class="map-container">
           <view>地图区域 - 显示船舶与货盘</view>
@@ -156,43 +156,15 @@
         </view>
         <!-- 货盘列表 -->
         <view class="cargo-list">
-          <view class="cargo-item">
+          <view class="cargo-item" wx:for="{{palletList}}">
             <view class="cargo-info">
-              <text class="cargo-type">煤炭</text>
-              <view>| 南京港 → 芜湖港 |</view>
-              <view>3000吨</view>
+              <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">距离: 约50公里</view>
-              <view class="btn btn-phone" data-phone="13900139001">
-                <image class="tel" src="../../images/tel-f.png"></image>
-                拨打电话
-              </view>
-            </view>
-          </view>
-          <view class="cargo-item">
-            <view class="cargo-info">
-              <text class="cargo-type">砂石</text>
-              <view>| 马鞍山港 → 安庆港 |</view>
-              <view>5000吨</view>
-            </view>
-            <view class="cargo-meta">
-              <view class="cargo-distance">距离: 约80公里</view>
-              <view class="btn btn-phone" data-phone="13900139002">
-                <image class="tel" src="../../images/tel-f.png"></image>
-                拨打电话
-              </view>
-            </view>
-          </view>
-          <view class="cargo-item">
-            <view class="cargo-info">
-              <text class="cargo-type">水泥</text>
-              <view>| 芜湖港 → 九江港 |</view>
-              <view>2000吨</view>
-            </view>
-            <view class="cargo-meta">
-              <view class="cargo-distance">距离: 约120公里</view>
-              <view class="btn btn-phone" data-phone="13900139003">
+              <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>

+ 2 - 37
project.private.config.json

@@ -3,43 +3,8 @@
     "miniprogram": {
       "list": [
         {
-          "name": "pages/cert/cert",
-          "pathName": "pages/cert/cert",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "pages/legal/submitLegal/submitLegal",
-          "pathName": "pages/legal/submitLegal/submitLegal",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "pages/takePhoto/takePhoto",
-          "pathName": "pages/takePhoto/takePhoto",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/index/index",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/maritime/maritime",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/maritime/maritime",
+          "name": "pages/securityCheck/securityCheck",
+          "pathName": "pages/securityCheck/securityCheck",
           "query": "",
           "launchMode": "default",
           "scene": null