From 5dc54a59184b305a85aaad31dd4cce01b31a8a2d Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 13 六月 2024 14:58:06 +0800
Subject: [PATCH] 开关泵定版

---
 pages/home/home.js                    |   93 ++
 app.wxss                              |   23 
 pages/rechargeCard/rechargeCard.js    |  136 ++++
 pages/rechargeMoney/rechargMoney.js   |   49 +
 pages/feedback/feedback.wxml          |   33 
 pages/feedback/feedback.wxss          |  131 ++++
 pages/rechargeCard/rechargeCard.wxml  |    4 
 images/tape.svg                       |    1 
 pages/rechargeCard/rechargeCard.wxss  |    3 
 app.js                                |    2 
 pages/valveList/valveList.json        |    5 
 pages/openCard/openCard.wxss          |    4 
 pages/openCard/openCard.wxml          |    2 
 pages/rechargeMoney/rechargMoney.wxml |   40 
 pages/waterIntake/waterIntake.wxss    |  147 ++--
 pages/waterIntake/waterIntake.js      |  159 ++++-
 pages/waterIntake/waterIntake.wxml    |   46 
 pages/home/home.wxml                  |   12 
 pages/home/home.wxss                  |   69 +
 pages/rechargeMoney/rechargMoney.wxss |  333 ++++++-----
 pages/feedback/feedback.js            |  267 ++++++--
 images/phone.svg                      |    4 
 pages/valveList/valveList.wxss        |   29 +
 pages/valveList/valveList.wxml        |   30 +
 pages/rechargeCard/rechargeCard.json  |    4 
 project.private.config.json           |    2 
 app.json                              |    5 
 /dev/null                             |   16 
 pages/feedback/feedback.json          |    4 
 api/config.js                         |    2 
 pages/valveList/valveList.js          |   14 
 pages/openCard/openCard.js            |   61 +
 pages/waterIntake/waterIntake.json    |    3 
 33 files changed, 1,227 insertions(+), 506 deletions(-)

diff --git a/api/config.js b/api/config.js
index 1d2541e..e6a3218 100644
--- a/api/config.js
+++ b/api/config.js
@@ -6,7 +6,7 @@
     BASEURL = ''
     break
   case 'test':
-    BASEURL = 'https://44978f7456.imdo.co/remote/'
+    BASEURL = 'https://irrigate.dayuyanjiuyuan.top/'
     break
   default:
     BASEURL = ''
diff --git a/app.js b/app.js
index 2b9b904..aa1d3eb 100644
--- a/app.js
+++ b/app.js
@@ -14,7 +14,7 @@
     })
   },
   globalData: {
-    sessionId:'2024042414041300006',
+    sessionId:'2024052821300200006',
     userInfo: null,
     userId:"",
     userCode:"",
diff --git a/app.json b/app.json
index e7cc7e4..c680884 100644
--- a/app.json
+++ b/app.json
@@ -1,17 +1,18 @@
 {
   "pages": [
+   
     "pages/home/home",
+    "pages/valveList/valveList",
+    "pages/feedback/feedback",
     "pages/wxlogin/wxlogin",
     "pages/login/login",
     "pages/wxbind/wxbind",
     "pages/rechargeList/rechargeList",
     "pages/wallet/wallet",
     "pages/index/index",
-    "pages/logs/logs",
     "pages/my/my",
     "pages/waterIntake/waterIntake",
     "pages/personCharge/personcharge",
-    "pages/feedback/feedback",
     "pages/openCard/openCard",
     "pages/rechargeMoney/rechargMoney",
     "pages/rechargeCard/rechargeCard"
diff --git a/app.wxss b/app.wxss
index ca25be8..d5d4919 100644
--- a/app.wxss
+++ b/app.wxss
@@ -8,13 +8,18 @@
   box-sizing: border-box;
 } 
 .noMore-View {
-  flex: 1;
-  display: flex;
+  /* display: flex;
+  flex-direction: column;
   justify-content: center;
   align-items: center;
-  height: 100%;
-  text-align: center;
-  flex-direction: column;
+  height: 100vh;
+  width: 100%;
+  text-align: center; */
+  display: flex;
+  flex-direction: column; /* 纭繚瀛愬厓绱犵旱鍚戞帓鍒� */
+  justify-content: center; /* 鍨傜洿灞呬腑 */
+  align-items: center; /* 姘村钩灞呬腑 */
+  height: 100%; /* 璁╁鍣ㄩ珮搴﹀崰婊$埗鍏冪礌 */
 }
 
 .noMore-img{
@@ -24,4 +29,12 @@
 
 .noMore-text{
   color:#969494;
+}
+
+.list-container {
+  display: flex;
+  flex: 1;
+  overflow-y: auto;
+  z-index: 0;
+  margin-top: 10rpx;
 }
\ No newline at end of file
diff --git a/images/phone.svg b/images/phone.svg
new file mode 100644
index 0000000..cc375fe
--- /dev/null
+++ b/images/phone.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="18.6175537109375" height="18.306396484375" viewBox="0 0 18.6175537109375 18.306396484375" fill="none">
+<path d="M14.3121 18.3064C13.4059 18.3064 12.3896 18.135 11.3243 17.8043C8.76513 17.0084 6.24269 15.3431 4.22229 13.1145C1.19781 9.7717 -0.24709 6.44109 0.0345342 3.47782C0.120245 2.74312 0.35291 1.81251 1.45494 1.06558C2.29984 0.379873 3.26719 -0.0119789 4.02635 0.000278951C4.82229 0.0125132 5.09168 0.294138 5.91208 1.4819C7.1733 3.22069 7.25901 4.07782 7.21003 4.56762C7.12432 5.37579 6.6835 5.73089 6.27942 6.04924C6.18147 6.12272 6.0835 6.20843 5.99779 6.28191C5.508 6.9064 4.908 7.77579 7.47942 10.4329C9.67127 12.539 10.859 12.7962 11.361 12.7594C11.7529 12.735 11.8998 12.5268 11.961 12.4533L11.9733 12.4411C12.7937 11.2901 13.0631 11.0084 13.8468 10.886C14.6059 10.7635 14.9978 11.0084 16.6141 12.0248C18.0713 12.9431 18.7447 13.5554 18.5978 14.5227C18.5488 15.5758 17.7406 17.0084 16.8345 17.6574C16.21 18.086 15.3406 18.3064 14.3121 18.3064Z"   fill="#2D8BF7" >
+</path>
+</svg>
diff --git a/images/tape.svg b/images/tape.svg
new file mode 100644
index 0000000..7399801
--- /dev/null
+++ b/images/tape.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="17" y="4" width="14" height="27" rx="7" fill="none" stroke="#1890FF" stroke-width="4" stroke-linejoin="round"/><path d="M9 23C9 31.2843 15.7157 38 24 38C32.2843 38 39 31.2843 39 23" stroke="#1890FF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M24 38V44" stroke="#1890FF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/pages/feedback/feedback.js b/pages/feedback/feedback.js
index 023a57c..7887046 100644
--- a/pages/feedback/feedback.js
+++ b/pages/feedback/feedback.js
@@ -2,20 +2,41 @@
   data: {
     recordingSrc: '',
     isRecording: false,
+    isshowVoiceMask: true, //鏄惁鏄剧ず褰曢煶涓�
+    voiceTime: 2, //褰曢煶鏃堕暱
+    gridConfig: {
+      column: 3,
+      width: 160,
+      height: 160,
+    },
+    originFiles: [{
+        url: 'https://tdesign.gtimg.com/mobile/demos/example4.png',
+        name: 'uploaded1.png',
+        type: 'image',
+      },
+      {
+        url: 'https://tdesign.gtimg.com/mobile/demos/example6.png',
+        name: 'uploaded2.png',
+        type: 'image',
+      }
+    ]
   },
 
   onLoad() {
     this.recorderManager = wx.getRecorderManager();
-
     this.recorderManager.onStart(() => {
       console.log('recorder start');
-      this.setData({ isRecording: true });
+      this.setData({
+        isRecording: true
+      });
       this.startWaveformDrawing();
     });
 
     this.recorderManager.onStop((res) => {
       console.log('recorder stop', res);
-      const { tempFilePath } = res;
+      const {
+        tempFilePath
+      } = res;
       this.setData({
         recordingSrc: tempFilePath,
         isRecording: false
@@ -25,73 +46,189 @@
 
     this.recorderManager.onError((res) => {
       console.error(res);
-      this.setData({ isRecording: false });
+      this.setData({
+        isRecording: false
+      });
       this.stopWaveformDrawing();
     });
   },
-
-  startRecording() {
-    if (this.data.isRecording) return;
-
-    wx.authorize({
-      scope: 'scope.record',
-      success: () => {
-        const options = {
-          duration: 60000,
-          sampleRate: 44100,
-          numberOfChannels: 1,
-          encodeBitRate: 192000,
-          format: 'aac',
-          frameSize: 50
-        };
-        this.recorderManager.start(options);
-      },
-      fail: () => {
-        wx.showModal({
-          title: '鎺堟潈澶辫触',
-          content: '璇锋巿鏉冨綍闊冲姛鑳�',
-          showCancel: false
-        });
-      }
+  handleRemove(e) {
+    console.log("handleRemove");
+    const {
+      index
+    } = e.detail;
+    const {
+      originFiles
+    } = this.data;
+    originFiles.splice(index, 1);
+    this.setData({
+      originFiles,
     });
   },
-
-  stopRecording() {
-    if (!this.data.isRecording) return;
-
-    this.recorderManager.stop();
+  handleClick() {
+    console.log("handleClick");
   },
-
-  startWaveformDrawing() {
-    if (this.waveformInterval) return;
-
-    const canvasContext = wx.createCanvasContext('waveform');
-    const drawWaveform = () => {
-      if (!this.data.isRecording) return;
-
-      // 鐢熸垚妯℃嫙鐨勯煶閲忔暟鎹�
-      const data = new Array(100).fill(0).map(() => Math.random() * 100);
-
-      canvasContext.clearRect(0, 0, 300, 100);
-      canvasContext.beginPath();
-      canvasContext.moveTo(0, 50);
-      for (let i = 0; i < data.length; i++) {
-        const x = (i / data.length) * 300;
-        const y = 50 - data[i] / 2;
-        canvasContext.lineTo(x, y);
-      }
-      canvasContext.lineTo(300, 50);
-      canvasContext.stroke();
-      canvasContext.draw();
-
-      this.waveformInterval = setTimeout(drawWaveform, 100);
-    };
-
-    drawWaveform();
+  handleAdd(e) {
+    console.log("handleAdd");
+    const {
+      files
+    } = e.detail;
+    const {
+      originFiles
+    } = this.data;
+    this.setData({
+      originFiles: [...originFiles, ...files], // 姝ゆ椂璁剧疆浜� fileList 涔嬪悗鎵嶄細灞曠ず閫夋嫨鐨勫浘鐗�
+    });
   },
+  /**
+   * 涓婁紶鍥剧墖
+   */
+  onUpload() {
+    wx.uploadFile({
+      url: 'https://example.weixin.qq.com/upload', // 浠呬负绀轰緥锛岄潪鐪熷疄鐨勬帴鍙e湴鍧�
+      filePath: file.url,
+      name: 'file',
+      formData: {
+        user: 'test'
+      },
+      success: () => {
+        this.setData({
+          [`fileList[${length}].status`]: 'done',
+        });
+      },
+    });
+  },
+  //鎸変綇鎸夐挳
+  startHandel () {
+    this.setData({
+     isShowVoiceMask:true
+    })
+    console.log("寮�濮嬪綍闊�")
+    wx.getRecorderManager().start({
+     duration: 0
+    })
+   },
+   //鏉惧紑鎸夐挳
+   endHandle () {
+    this.setData({
+     isShowVoiceMask:false
+    })
+    console.log("缁撴潫")
+    const recorderManager = wx.getRecorderManager()
+    //褰曢煶鍋滄鍑芥暟
+    var that = this;  
+    wx.getRecorderManager().onStop((res) => {
+      const voiceTime =  Math.floor(res.duration/1000)
+      console.log('voiceTime',voiceTime);
+      that.setData({
+        voiceTime
+      })
+      console.log('res',res);
+     const { tempFilePath } = res; //杩欓噷鏉惧紑鎸夐挳 浼氳繑鍥炲綍闊虫湰鍦拌矾寰�
+     audio.src = tempFilePath
+     console.log(tempFilePath);
+     //涓婁紶褰曞埗鐨勯煶棰戝埌鏈嶅姟鍣�
+     // wx.uploadFile({
+     //  url: '鎺ュ彛鍦板潃' + api.voice, //鎺ュ彛鍦板潃
+     //  name: 'file', //涓婁紶鏂囦欢鍚�
+     //  filePath: tempFilePath,
+     //  success: function (res) { //鍚庡彴杩斿洖缁欏墠绔瘑鍒悗鐨勬枃瀛�
+     //   var model = res.data
+     //   var modeljson = JSON.parse(model)
+     //   if (modeljson.status_code == 500) {
+     //    wx.showToast({
+     //     title: '璇煶杞崲澶辫触',
+     //     image: '/assets/image/icon/fail@2x.png'
+     //    })
+     //    return false;
+     //   }
+     //   if (modeljson.meta.status_code === 200 && !modeljson.data.err_msg) {
+     //    var saymessage = modeljson.data.message;
+     //    wx.setStorageSync('sayinfo', saymessage)
+     //    that.setData({
+     //     inpvalue: saymessage
+     //    })
+     //    setTimeout(() =>{
+     //     wx.navigateTo({
+     //      url: '../loding/loding'
+     //     })
+         
+     //    },2000)
+     //    setTimeout(() => {
+     //     wx.hideLoading();
+     //    }, 100)
+     //   } else if (modeljson.data.err_msg) {
+     //    wx.showToast({
+     //     title: '璇峰ぇ澹拌璇�',
+     //     image: '/assets/image/icon/fail@2x.png'
+     //    })
+     //    return false;
+     //   }
+     //  }
+     // })
+    })
+    //瑙﹀彂褰曢煶鍋滄
+    wx.getRecorderManager().stop()
+   },
+// 鎾斁
+handlePlay(e){
+  // 鍊掕鏃�
+  let time = this.data.voiceTime
+  audio.play()
+  let timer1 = -1,timer2 = -1,timer3 = -1,timer4 = -1,timer5 = -1,timer6 = -1;
+  // 绗竴娆℃挱鏀句负0 绗簩娆℃挱鏀�2绉掗挓
+  timer6 = setInterval(()=>{
+    console.log('鏃堕棿',time);
+    if(time <= 0){
+      this.setData({
+        line2Opcity: 1,
+        line3Opcity: 1
+      })
+      clearInterval(timer6)
+      clearTimeout(timer2)
+      clearTimeout(timer3)
+      clearTimeout(timer4)
+      clearTimeout(timer5)
+      return
+    }
+    timer2 = setTimeout(()=>{
+      console.log('timer2');
+      this.setData({
+        line2Opcity: 0,
+        line3Opcity: 0
+      })
+    },300)
+    timer3 = setTimeout(()=>{
+      console.log('timer3');
+        this.setData({
+          line2Opcity: 1,
+          line3Opcity:0
+        })
+    },600)
+    timer4 = setTimeout(()=>{
+      console.log('timer4');
+        this.setData({
+          line2Opcity: 1,
+          line3Opcity: 1
+      })
+    },900)
+    timer5 = setTimeout(()=>{
+      console.log('timer5');
+        this.setData({
+          line2Opcity: 0,
+          line3Opcity: 0
+        })
+    },1200)    
+  },1200)
+  // 鍊掕鏃�
+  timer1 = setInterval(()=>{
+    time--;
+    if(time <= 0){
+      clearInterval(timer1)
+      return
+    }
+},1000)
 
-  stopWaveformDrawing() {
-    clearTimeout(this.waveformInterval);
-    this.waveformInterval = null;
-  }
-});
+}
+
+});
\ No newline at end of file
diff --git a/pages/feedback/feedback.json b/pages/feedback/feedback.json
index 83cdf94..4a37d45 100644
--- a/pages/feedback/feedback.json
+++ b/pages/feedback/feedback.json
@@ -1,4 +1,8 @@
 {
+  "component": true,
+  "usingComponents": {
+    "t-upload": "tdesign-miniprogram/upload/upload"
+  },
   "navigationBarTitleText": "闂鍙嶉",
   "navigationBarTextStyle": "white"
 }
\ No newline at end of file
diff --git a/pages/feedback/feedback.wxml b/pages/feedback/feedback.wxml
index b4efa7a..c55587b 100644
--- a/pages/feedback/feedback.wxml
+++ b/pages/feedback/feedback.wxml
@@ -1,9 +1,30 @@
 <view class="container">
-  <button class="btn" bindtouchstart="startRecording" bindtouchend="stopRecording">
-    鎸変綇褰曢煶
-  </button>
-  <view wx:if="{{isRecording}}" class="recording-overlay">
-    <canvas canvas-id="waveform" style="width: 300px; height: 100px;"></canvas>
+
+  <view class="container-item">
+    <text class="fb-text">鍙嶉璇︽儏锛�</text>
+    <textarea class="input-class" />
   </view>
-  <audio src="{{recordingSrc}}" controls></audio>
+  <view class="divider"></view>
+  <view class="container-item">
+    <text class="img-upload">鍥剧墖锛堟渶澶氫笁寮狅級:</text>
+    <t-upload style="margin-top: 20rpx;" media-type="{{['image']}}" files="{{originFiles}}" gridConfig="{{gridConfig}}" bind:success="handleSuccess" max="3" bind:add="handleAdd" bind:remove="handleRemove" bind:click="handleClick" bind:sort-end="handleSortEnd" />
+  </view>
+  <view class="divider"></view>
+  <view class="container-voice">
+    <text class="fb-text">褰曢煶锛�</text>
+    <view class="voice_wrapper">
+      <image class="voice_img" bindtouchstart='startHandel' bindtouchend='endHandle' src="/images/tape.svg" mode="" />
+      <view class="voice_content" bind:tap="handlePlay" wx:if="{{voiceTime}}">
+        <view class="left">
+          <view class="line"></view>
+          <view class="line" style="opacity:{{line2Opcity}}" id="test2"></view>
+          <view class="line" style="opacity:{{line3Opcity}}" id="test3"></view>
+        </view>
+        <view class="right">{{voiceTime}}"</view>
+      </view>
+    </view>
+  </view>
+  <!-- 褰曢煶涓� -->
+  <view wx:if="{{isShowVoiceMask}}" class="voice_starting">褰曢煶涓�</view>
+  <button class="fb-submit">鎻愪氦</button>
 </view>
\ No newline at end of file
diff --git a/pages/feedback/feedback.wxss b/pages/feedback/feedback.wxss
index af408cd..6218e0a 100644
--- a/pages/feedback/feedback.wxss
+++ b/pages/feedback/feedback.wxss
@@ -2,10 +2,14 @@
 .container {
   display: flex;
   flex-direction: column;
-  align-items: center;
-  justify-content: center;
   height: 100vh;
-  padding: 20px;
+  padding-left: 30rpx;
+  padding-right: 30rpx;
+  width: calc(100% - 0rpx);
+  /* 鑰冭檻浜嗗乏鍙宠竟璺濆悗鐨勫疄闄呭搴� */
+  background-color: #fff;
+  justify-content: flex-start;
+  align-items: center;
 }
 
 .btn {
@@ -35,3 +39,124 @@
   background-color: rgba(0, 0, 0, 0.7);
   z-index: 9999;
 }
+
+.input-class {
+  border-radius: 5px;
+  border: 2rpx solid #000000;
+  height: 20vh;
+  width: 100%;
+  background-color: #fcfcfc;
+}
+
+.img-upload {
+  font-size: 35rpx;
+  margin-left: 30rpx;
+}
+
+.container-item {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+
+}
+
+.container-voice {
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+
+  align-items: center;
+}
+
+.fb-text {
+  font-size: 35rpx;
+  margin-left: 30rpx;
+}
+
+.fb-submit {
+  width: 80%;
+  background-color: #1890FF;
+  font-size: 35rpx;
+  color: white;
+  margin-top: 50rpx;
+}
+
+.voice_img {
+  width: 80rpx;
+  height: 70rpx;
+}
+
+.divider {
+  height: 1px;
+  /* 璁剧疆鍒嗗壊绾块珮搴� */
+  background-color: #d3d3d3;
+  /* 璁剧疆鍒嗗壊绾块鑹� */
+  margin: 10px 0;
+  /* 璁剧疆鍒嗗壊绾跨殑涓婁笅闂磋窛 */
+  width: 100%;
+}
+
+.voice_wrapper {
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  padding: 10px;
+  box-sizing: border-box;
+}
+
+.voice_content {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-left: 16rpx;
+  padding: 0 6rpx;
+  box-sizing: border-box;
+  width: 200rpx;
+  height: 80rpx;
+  border-radius: 15rpx;
+  background-color: #1890FF;
+}
+
+.voice_content .left {
+  display: flex;
+  align-items: center;
+}
+
+.voice_content .left .line {
+  width: 8rpx;
+  background-color: white;
+  margin-left: 10rpx;
+}
+
+.voice_content .left .line:nth-child(1) {
+  height: 24rpx;
+}
+
+.voice_content .left .line:nth-child(2) {
+  height: 36rpx;
+}
+
+.voice_content .left .line:nth-child(3) {
+  height: 45rpx;
+}
+
+.right {
+  font-size: 35rpx;
+  color: #ffffff;
+  margin-right: 20rpx;
+}
+
+.voice_starting{
+  position: fixed;
+  top: 30%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 200rpx;
+  height: 200rpx;
+  line-height: 200rpx;
+  background-color: #787879;
+  color: #fff;
+  text-align: center;
+  border-radius: 100rpx; /* 浣垮叾鍛堢幇鍦嗗舰 */
+  z-index: 10000;
+}
\ No newline at end of file
diff --git a/pages/home/home.js b/pages/home/home.js
index e0509ad..35d0b50 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -12,7 +12,7 @@
   data: {
     sessionId: "",
     showConfirm: false,
-    myItem:{},
+    myItem: {},
     waterIntakeName: "",
     image: "/images/ic_head_bg.jpg",
     userPhone: "158****0723",
@@ -44,7 +44,7 @@
         isRefreshing: true
       });
       this.getOpenList();
- 
+
     }
 
   },
@@ -73,14 +73,15 @@
     });
     //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
     console.log("onLoad锛�" + options.param);
-    if(options.param){
+    if (options.param) {
       wx.showToast({
-        title: '寮�娉垫垚鍔�',
+        title: '寮�闃�鎴愬姛',
         icon: 'success',
-        duration: 2000
+        duration: 3000
       })
-      getOpenList() ;
+      this.getOpenList();
     }
+    this.getUserDataBySession();
   },
 
   /**
@@ -158,14 +159,13 @@
     })
   },
   openValveList() {
-    wx.showToast({
-      title: '姝e湪寮�鍙戜腑',
-      icon: 'none'
+    wx.navigateTo({
+      url: '/pages/valveList/valveList',
     })
   },
   feedBack() {
     wx.showToast({
-      title: '姝e湪寮�鍙戜腑',
+      title: '鏆傛湭寮�鏀�',
       icon: 'none'
     })
   },
@@ -175,7 +175,7 @@
     this.setData({
       showConfirm: true,
       waterIntakeName: item.intakeNum,
-      myItem:item
+      myItem: item
     });
   },
   closeDialog() {
@@ -190,31 +190,46 @@
    * @param {*} vcNum 铏氭嫙鍗$紪鍙�
    */
   postCloseValaue(orderNo, rtuAddr, vcNum) {
+    wx.showLoading({
+      title: '姝e湪鍏抽榾璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
     const app = getApp();
     const data = {
-      rtuAddr: rtuAddr, 
+      rtuAddr: rtuAddr,
       vcNum: vcNum, //铏氭嫙鍗D
-      orderNo:orderNo,
-      userType: 2, //鐢ㄦ埛绫诲瀷1-骞冲彴锛�2-App
+      orderNo: orderNo,
       operator: app.globalData.sessionId //鎿嶄綔鍛�
     };
-    console.log("postCloseValaue"+data);
+    console.log("postCloseValaue" + data);
     post({
-      url: "valve/close",
+      url: "wx/valve/close_wx",
       data: data,
-      isShowLoding:true
+      isShowLoding: false
     }).then(response => {
+
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
       wx.hideLoading();
-      //瀹屾垚鍚庡洖鍒伴椤�
-      wx.reLaunch({
-        url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
-      });
+      this.getOpenList();
+      wx.showToast({
+        title: '鍏抽榾鎴愬姛',
+        icon: 'success',
+        duration: 3000
+      })
     }).catch(error => {
+      wx.hideLoading();
+      if (error.code === "1002") {
+        wx.showToast({
+          title: '鍏抽榾澶辫触',
+          icon: 'error',
+          duration: 3000 // 鎻愮ず鐨勬寔缁椂闂达紝鍗曚綅姣
+        })
+      }
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
+
     });
   },
   /**
@@ -223,7 +238,7 @@
   getOpenList() {
     const app = getApp();
     const params = {
-      url: 'valve/get',
+      url: 'wx/valve/get',
       data: {
         operator: app.globalData.sessionId
       }
@@ -236,7 +251,6 @@
       })
     }).catch(err => {
       // 閿欒鍥炶皟
-      
       this.setData({
         isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
       })
@@ -246,14 +260,39 @@
    * 纭鍏抽棴鍥炶皟
    * @param {} item 
    */
-  confirmDialog(){
+  confirmDialog() {
     this.setData({
       showConfirm: false
     });
-    this.postCloseValaue(this.data.myItem.orderNo,this.data.myItem.rtuAddr,this.data.myItem.vcNum);
+    this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
+  },
+  //鏍规嵁session鑾峰彇鍐滄埛淇℃伅
+  getUserDataBySession() {
+    const app = getApp();
+    const params = {
+      url: 'sell/client/simple_info',
+      data: {
+        sessionId: app.globalData.sessionId
+      }
+    };
+    get(params).then(data => {
+      this.setData({
+        userName: data.content.clientName,
+        userPhone: this.maskPhoneNumber(data.content.phone)
+      })
+    }).catch(err => {
+      // 閿欒鍥炶皟
+
+    })
+  },
+  maskPhoneNumber(phoneNumber) {
+    if (phoneNumber.length !== 11) {
+      throw new Error("Phone number must be 11 digits");
+    }
+    // 浣跨敤姝e垯琛ㄨ揪寮忔浛鎹腑闂村洓浣嶆暟瀛椾负鏄熷彿
+    const maskedPhoneNumber = phoneNumber.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
+    return maskedPhoneNumber;
   }
-
-
 
 
 
diff --git a/pages/home/home.wxml b/pages/home/home.wxml
index 2e74315..f4ee37e 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -8,8 +8,8 @@
         <text class="head-bottom">{{userPhone}}</text>
       </view>
       <view class="head-button-wrapper">
-        <text class="unbind">瑙g粦</text>
-        <text class="head-bottom">鑱旂郴瀹㈡湇</text>
+        <text class="unbind" bind:tap="feedBack">瑙g粦</text>
+        <text class="head-bottom" bind:tap="feedBack">鑱旂郴瀹㈡湇</text>
       </view>
     </view>
   </view>
@@ -38,6 +38,7 @@
     <text class="bottom-title-text">蹇�熷叧闃�</text>
     <text class="refresh-button" bind:tap="startPullDownRefresh">鍒锋柊</text>
   </view>
+  <view class="divider"></view>
   <!-- refresher-enabled="true" refresher-threshold="50" -->
   <scroll-view class="scroll-view" scroll-x="false" scroll-y="true" refresher-enabled="{{isRefreshing==false?true:false}}" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh" refresher-triggered="{{isWXRefreshing}}">
     <view wx:if="{{isRefreshing}}" class="refresh-view">
@@ -53,13 +54,14 @@
           <image class="item-img" src="{{item.isOnLine ? '/images/wifi_no.svg' : '/images/wifi_off.svg'}}" />
         </view>
         <view>
-          <t-switch wx:if="{{item.isOnLine }}" class="switch" data-item="{{item}}" bindchange="handleChange" value="{{true}}" label="{{['寮�', '鍏�']}}" slot="note" />
+          <!-- <t-switch  class="switch" data-item="{{item}}" bindchange="handleChange" value="{{true}}" label="{{['寮�', '鍏�']}}" slot="note" /> -->
+          <text class="item-button" bind:tap="handleChange" data-item="{{item}}">鍏抽榾</text>
         </view>
       </view>
     </view>
-    <view wx:if="{{listData.length === 0}}" class="noMore-View">
+    <view wx:if="{{listData.length === 0}}" class="noMore-View-home">
       <image class="noMore-img" src="/images/no_more.svg" />
-      <text class="noMore-text">娌℃湁鏁版嵁</text>
+      <text class="noMore-text">娌℃湁寮�娉佃褰�</text>
     </view>
   </scroll-view>
   <t-dialog class="t-dialog" visible="{{showConfirm}}" content="纭鍏抽棴{{waterIntakeName}}鍚楋紵" confirm-btn="{{ { content: '纭', variant: 'base', theme: 'danger' } }}" close-on-overlay-click="false" cancel-btn="鍙栨秷"  bind:confirm="confirmDialog" bind:cancel="closeDialog" />
diff --git a/pages/home/home.wxss b/pages/home/home.wxss
index 49a8d8d..0b70b8e 100644
--- a/pages/home/home.wxss
+++ b/pages/home/home.wxss
@@ -1,6 +1,6 @@
 /* pages/home/home.wxss */
 .base-wrapper {
-  background-color: #f5f5f5;
+  background-color: #ececec;
   width: 100%;
   height: 100vh;
   overflow: hidden;
@@ -76,6 +76,7 @@
 
 .head-text-wrapper text {
   color: #fff;
+  font-size: 32rpx;
 }
 
 .balance-label {
@@ -148,14 +149,14 @@
 
 .list-item {
   background-color: #fff;
-  margin-top: 2rpx;
+  margin-bottom: 2rpx;
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding-left: 30rpx;
   padding-right: 30rpx;
-  padding-top: 20rpx;
-  padding-bottom: 20rpx;
+  padding-top: 30rpx;
+  padding-bottom: 30rpx;
   margin-left: 20rpx;
   margin-right: 20rpx;
 }
@@ -213,10 +214,10 @@
   /* 鍘绘帀鎸夐挳杈规 */
   border-radius: 5px;
   /* 鎸夐挳鍦嗚 */
-  padding-left: 20rpx;
-  padding-right: 20rpx;
-  padding-top: 10rpx;
-  padding-bottom: 10rpx;
+  padding-left: 25rpx;
+  padding-right: 25rpx;
+  padding-top: 15rpx;
+  padding-bottom: 15rpx;
 }
 
 .refresh-view {
@@ -245,14 +246,19 @@
 }
 
 @keyframes blink {
-  0%, 80%, 100% {
+
+  0%,
+  80%,
+  100% {
     opacity: 0;
   }
+
   40% {
     opacity: 1;
   }
 }
-.switch{
+
+.switch {
   --td-switch-checked-color: #1890FF;
 }
 
@@ -261,9 +267,12 @@
   display: flex;
   align-items: center;
 }
-.item-left text{
+
+.item-left text {
   font-size: 40rpx;
+  min-width: 150rpx;
 }
+
 .item-img {
   width: 40rpx;
   /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
@@ -271,7 +280,39 @@
   /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
   margin-left: 20rpx;
 }
-.t-dialog{
-  --td-dialog-content-font-size:40rpx;
-  --td-dialog-content-line-height:50rpx
+
+.t-dialog {
+  --td-dialog-content-font-size: 40rpx;
+  --td-dialog-content-line-height: 50rpx
+}
+
+.noMore-View-home {
+  display: flex;
+  flex-direction: column;
+  /* 纭繚瀛愬厓绱犵旱鍚戞帓鍒� */
+  justify-content: center;
+  /* 鍨傜洿灞呬腑 */
+  align-items: center;
+  /* 姘村钩灞呬腑 */
+  height: 100%;
+  /* 璁╁鍣ㄩ珮搴﹀崰婊$埗鍏冪礌 */
+}
+
+.item-button {
+  display: flex;
+  height: 80rpx;
+  padding: 0 60rpx;
+  background-color: #1890FF;
+  color: white;
+  border: none;
+  border-radius: 20rpx;
+  font-size: 30rpx;
+  align-items: center;
+  justify-content: center;
+}
+
+.divider {
+  width: 100%;
+  margin-top: 2rpx;
+  /* background-color: #e0e0e0; */
 }
\ No newline at end of file
diff --git a/pages/logs/logs.js b/pages/logs/logs.js
deleted file mode 100644
index 85f6aac..0000000
--- a/pages/logs/logs.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// logs.js
-const util = require('../../utils/util.js')
-
-Page({
-  data: {
-    logs: []
-  },
-  onLoad() {
-    this.setData({
-      logs: (wx.getStorageSync('logs') || []).map(log => {
-        return {
-          date: util.formatTime(new Date(log)),
-          timeStamp: log
-        }
-      })
-    })
-  }
-})
diff --git a/pages/logs/logs.json b/pages/logs/logs.json
deleted file mode 100644
index b55b5a2..0000000
--- a/pages/logs/logs.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "usingComponents": {
-  }
-}
\ No newline at end of file
diff --git a/pages/logs/logs.wxml b/pages/logs/logs.wxml
deleted file mode 100644
index 85cf1bf..0000000
--- a/pages/logs/logs.wxml
+++ /dev/null
@@ -1,6 +0,0 @@
-<!--logs.wxml-->
-<scroll-view class="scrollarea" scroll-y type="list">
-  <block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log">
-    <view class="log-item">{{index + 1}}. {{log.date}}</view>
-  </block>
-</scroll-view>
diff --git a/pages/logs/logs.wxss b/pages/logs/logs.wxss
deleted file mode 100644
index 33f9d9e..0000000
--- a/pages/logs/logs.wxss
+++ /dev/null
@@ -1,16 +0,0 @@
-page {
-  height: 100vh;
-  display: flex;
-  flex-direction: column;
-}
-.scrollarea {
-  flex: 1;
-  overflow-y: hidden;
-}
-.log-item {
-  margin-top: 20rpx;
-  text-align: center;
-}
-.log-item:last-child {
-  padding-bottom: env(safe-area-inset-bottom);
-}
diff --git a/pages/openCard/openCard.js b/pages/openCard/openCard.js
index 0942e8c..532d7e1 100644
--- a/pages/openCard/openCard.js
+++ b/pages/openCard/openCard.js
@@ -20,7 +20,7 @@
     if (item.inUse === 0) {
       // 鍦ㄩ〉闈㈠姞杞芥椂鏄剧ず鍔犺浇鍔ㄧ敾
       wx.showLoading({
-        title: '姝e湪寮�娉佃绋嶅悗...', // 鍔犺浇鎻愮ず鏂囧瓧
+        title: '姝e湪寮�娉佃绋嶅��...', // 鍔犺浇鎻愮ず鏂囧瓧
         mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
       });
       this.postOpenValva(item.vcId);
@@ -32,14 +32,13 @@
     const data = {
       intakeId: this.data.intakeId, //鍙栨按鍙D
       vcId: vcId, //铏氭嫙鍗D
-      userType: 2, //鐢ㄦ埛绫诲瀷1-骞冲彴锛�2-App
       operator: app.globalData.sessionId //鎿嶄綔鍛�
     };
     post({
-      url: "comRes/receive",
+      url: "8087/wx/valve/open_wx",
       data: data
     }).then(response => {
-    
+
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
@@ -48,12 +47,19 @@
       wx.reLaunch({
         url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
       });
-  
+
     }).catch(error => {
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
+      if (error.code === "1002") {
+        wx.showToast({
+          title: '寮�娉靛け璐�',
+          icon: 'error',
+          duration: 3000 // 鎻愮ず鐨勬寔缁椂闂达紝鍗曚綅姣
+        })
+      }
     });
   },
   /**
@@ -67,7 +73,7 @@
       intakeId
     })
     console.log('intakeId:' + this.data.intakeId);
-    this. getCardList();
+    this.getCardList();
   },
 
   /**
@@ -119,24 +125,29 @@
 
   },
   //鑾峰彇铏氭嫙鍗″垪琛�
-  getCardList(){
-    get({url:'https://d4x9787456.vicp.fun/sell/virtual_card/get', data: {
-      operator: getApp().globalData.sessionId
-    }})
-    .then((data) => {
-      if(data.success&&data.code==="0001"){
-        this.setData({
-          allCardPoints:  data.content
-        });
-      }else{
-        wx.showToast({
-          title: data.msg,
-        })
-      }
-      console.log('Failed to add item:');
-    })
-    .catch((error) => {
-      console.error('Failed to add item:', error);
-    });
+  getCardList() {
+    get({
+        url: '8084/sell/virtual_card/get',
+        data: {
+          clientId: getApp().globalData.sessionId
+        }
+      })
+      .then((data) => {
+        if (data.success && data.code === "0001") {
+          this.setData({
+            allCardPoints: data.content
+          });
+        } else {
+          wx.showToast({
+            title: data.msg,
+          })
+        }
+        console.log('Failed to add item:');
+      })
+      .catch((error) => {
+
+
+        console.error('Failed to add item:', error);
+      });
   }
 })
\ No newline at end of file
diff --git a/pages/openCard/openCard.wxml b/pages/openCard/openCard.wxml
index f688677..a2adbc4 100644
--- a/pages/openCard/openCard.wxml
+++ b/pages/openCard/openCard.wxml
@@ -2,7 +2,7 @@
 <view class="container">
 
   <scroll-view class="list-container" scroll-y="true" scroll-x="false">
-    <block wx:for="{{allCardPoints}}" wx:key="index">
+    <block wx:if="{{allCardPoints.length > 0}}" wx:for="{{allCardPoints}}" wx:key="index">
       <view class="{{item.inUse===0?'item':'item-gray'}}">
         <view class="item-card">
           <text>鍗$紪鍙凤細</text>
diff --git a/pages/openCard/openCard.wxss b/pages/openCard/openCard.wxss
index f88c7f2..3d73876 100644
--- a/pages/openCard/openCard.wxss
+++ b/pages/openCard/openCard.wxss
@@ -93,7 +93,9 @@
   /* 搴曢儴瀵归綈 */
 }
 
-.list-container{
+.list-container {
   display: flex;
   padding-bottom: 30rpx;
+  flex: 1;
+  height: 100%;
 }
\ No newline at end of file
diff --git a/pages/rechargeCard/rechargeCard.js b/pages/rechargeCard/rechargeCard.js
new file mode 100644
index 0000000..56a094a
--- /dev/null
+++ b/pages/rechargeCard/rechargeCard.js
@@ -0,0 +1,136 @@
+// pages/rechargeCard/rechargeCard.js
+const {
+  get,
+  post
+} = require('../../api/request.js');
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    confirmBtn: { content: '纭', variant: 'base' },
+    currentTab: 0, // 褰撳墠鏄剧ず鐨勮〃鏍硷紝榛樿涓虹涓�涓〃鏍�
+    allCardPoints: [],
+    allWaterPoints:[],
+    showDialog:false
+  },
+ // 鍒囨崲 Tabs
+ switchTab: function (e) {
+  const tab = parseInt(e.currentTarget.dataset.tab);
+  this.setData({
+    currentTab: tab
+  });
+},
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+    this.getCardList();
+    this.getWaterCardList();
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  },//鑾峰彇铏氭嫙鍗″垪琛�
+  getCardList(){
+    get({url:'https://d4x9787456.vicp.fun/sell/virtual_card/get', data: {
+      operator: getApp().globalData.sessionId
+    }})
+    .then((data) => {
+      if(data.success&&data.code==="0001"){
+        this.setData({
+          allCardPoints:  data.content
+        });
+      }else{
+        wx.showToast({
+          title: data.msg,
+        })
+      }
+      console.log('Failed to add item:');
+    })
+    .catch((error) => {
+      console.error('Failed to add item:', error);
+    });
+  },
+  getWaterCardList(){
+    get({url:'https://d4x9787456.vicp.fun/sell/virtual_card/get', data: {
+      operator: getApp().globalData.sessionId
+    }})
+    .then((data) => {
+      if(data.success&&data.code==="0001"){
+        this.setData({
+          allWaterPoints:  data.content
+        });
+      }else{
+        wx.showToast({
+          title: data.msg,
+        })
+      }
+      console.log('Failed to add item:');
+    })
+    .catch((error) => {
+      console.error('Failed to add item:', error);
+    });
+  },
+  rechargeCard(item){
+    wx.navigateTo({
+      url: '/pages/rechargeMoney/rechargMoney' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+    });
+  },
+  ruinCard(){
+
+  },
+  closeDialog(){
+    this.setData({
+      showDialog:false
+    })
+  }
+
+
+})
\ No newline at end of file
diff --git a/pages/rechargeCard/rechargeCard.json b/pages/rechargeCard/rechargeCard.json
index 8835af0..84ea31a 100644
--- a/pages/rechargeCard/rechargeCard.json
+++ b/pages/rechargeCard/rechargeCard.json
@@ -1,3 +1,5 @@
 {
-  "usingComponents": {}
+  "usingComponents": {
+    "t-dialog": "tdesign-miniprogram/dialog/dialog"
+  }
 }
\ No newline at end of file
diff --git a/pages/rechargeCard/rechargeCard.wxml b/pages/rechargeCard/rechargeCard.wxml
index 3fda0dc..cf37a96 100644
--- a/pages/rechargeCard/rechargeCard.wxml
+++ b/pages/rechargeCard/rechargeCard.wxml
@@ -28,16 +28,18 @@
             <text class="item-balance-text-yuan">鍏�</text>
           </view>
           <view class="button-view">
-            <text wx:if="{{item.inUse==0}}" class="ruinCard">閿�鍗�</text>
+            <text wx:if="{{item.inUse==0}}" class="ruinCard" bind:tap="ruinCard">閿�鍗�</text>
             <text wx:if="{{item.inUse==0}}" class="recharge" bind:tap="rechargeCard">鍏呭��</text>
           </view>
         </view>
       </view>
     </block>
+    
     <view wx:if="{{allCardPoints.length === 0}}" class="noMore-View">
       <image class="noMore-img" src="/images/no_more.svg" />
       <text class="noMore-text">娌℃湁鏁版嵁</text>
     </view>
+    <t-dialog visible="{{showDialog}}" content="鎮ㄨ繕鏈変綑棰濇湭浣跨敤锛屽闇�閿�鍗★紝璇峰厛浣跨敤瀹屾垨閫�娆惧悗鎵嶅彲鎿嶄綔銆�" confirm-btn="{{ confirmBtn }}" bind:confirm="closeDialog" />
   </scroll-view>
 
   <!-- 姘村崱 -->
diff --git a/pages/rechargeCard/rechargeCard.wxss b/pages/rechargeCard/rechargeCard.wxss
index 0eded79..2457a03 100644
--- a/pages/rechargeCard/rechargeCard.wxss
+++ b/pages/rechargeCard/rechargeCard.wxss
@@ -177,4 +177,5 @@
   padding: 15rpx 30rpx;
   border-radius: 30rpx;
   font-size: 30rpx;
-}
\ No newline at end of file
+}
+
diff --git a/pages/rechargeMoney/rechargMoney.js b/pages/rechargeMoney/rechargMoney.js
index 03bfb1b..dfc163e 100644
--- a/pages/rechargeMoney/rechargMoney.js
+++ b/pages/rechargeMoney/rechargMoney.js
@@ -5,11 +5,28 @@
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-    userName: "寮犱笁", 
-    userPhone: "15802220723", 
-    userCode: "15584236", 
-    balance: "1025鍏�", 
-    activeIndex: -1, 
+    userName: "寮犱笁",
+    userPhone: "15802220723",
+    userCode: "15584236",
+    balance: "1025鍏�",
+    activeIndex: -1,
+    allRechargeList: [{
+      time: "2024-05-12:20:20",
+      type: "杩滅▼",
+      morny: "500鍏�"
+    }, {
+      time: "2024-05-12:20:20",
+      type: "杩滅▼",
+      morny: "500鍏�"
+    }, {
+      time: "2024-05-12:20:20",
+      type: "杩滅▼",
+      morny: "500鍏�"
+    }, {
+      time: "2024-05-12:20:20",
+      type: "杩滅▼",
+      morny: "500鍏�"
+    }]
   },
 
   /**
@@ -67,14 +84,16 @@
   onShareAppMessage() {
 
   },
-  handleMoneyWrapperTap: function (e) { 
-    const index = e.currentTarget.dataset.index; 
-    console.log(index) 
-    if (index !== undefined) { 
-      this.setData({ 
-        activeIndex: parseInt(index), 
-      }); 
-    } 
- 
-  }, 
+  handleMoneyWrapperTap: function (e) {
+    const index = e.currentTarget.dataset.index;
+    console.log(index)
+    if (index !== undefined) {
+      this.setData({
+        activeIndex: parseInt(index),
+      });
+    }
+  },
+  onPullDownRefresh() {
+    console.log("onPullDownRefresh")
+  }
 })
\ No newline at end of file
diff --git a/pages/rechargeMoney/rechargMoney.wxml b/pages/rechargeMoney/rechargMoney.wxml
index 18c0177..ae395e1 100644
--- a/pages/rechargeMoney/rechargMoney.wxml
+++ b/pages/rechargeMoney/rechargMoney.wxml
@@ -15,19 +15,19 @@
 
   <view class="money-base-wrapper">
     <view class="row">
-      <view class="item {{activeIndex === 0 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="0">
+      <view class="item{{activeIndex === 0 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="0">
         <view class="money-wrapper">
           <text class="money-number">100</text>
           <text class="money-label">鍏�</text>
         </view>
       </view>
-      <view class="item {{activeIndex === 1 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="1">
+      <view class="item{{activeIndex === 1 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="1">
         <view class="money-wrapper">
           <text class="money-number">200</text>
           <text class="money-label">鍏�</text>
         </view>
       </view>
-      <view class="item {{activeIndex === 2 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="2">
+      <view class="item{{activeIndex === 2 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="2">
         <view class="money-wrapper">
           <text class="money-number">300</text>
           <text class="money-label">鍏�</text>
@@ -35,19 +35,19 @@
       </view>
     </view>
     <view class="row">
-      <view class="item {{activeIndex === 3 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="3">
+      <view class="item{{activeIndex === 3 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="3">
         <view class="money-wrapper">
           <text class="money-number">400</text>
           <text class="money-label">鍏�</text>
         </view>
       </view>
-      <view class="item {{activeIndex === 4 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="4">
+      <view class="item{{activeIndex === 4 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="4">
         <view class="money-wrapper">
           <text class="money-number">500</text>
           <text class="money-label">鍏�</text>
         </view>
       </view>
-      <view class="item {{activeIndex === 5 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="5">
+      <view class="item{{activeIndex === 5 ? 'active' : ''}}" bindtap="handleMoneyWrapperTap" data-index="5">
         <view class="money-wrapper">
           <text class="money-number">600</text>
           <text class="money-label">鍏�</text>
@@ -57,12 +57,28 @@
   </view>
 
   <view class="rechage-view">
-    <view class="rechage {{activeIndex === -1 ? 'active' : ''}}">
-      <text>鍏呭��</text>
+    <view class="rechage{{activeIndex === -1 ? 'active' : ''}}">
+      <text class="rechage-text">鍏呭��</text>
     </view>
   </view>
-  <!-- 
+
   <view class="rechageList-view">
-  </view> 
-  -->
-</view>
+    <text class="rechageList-view-head">鍏呭�艰褰�</text>
+    <scroll-view class="list-container" scroll-y="true" scroll-x="false" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh">
+      <block wx:if="{{allRechargeList.length > 0}}" wx:for="{{allRechargeList}}" wx:key="index">
+        <view class="itemList">
+          <text class="item-card-text">{{item.time}}</text>
+          <text class="item-card-text">{{item.type}}</text>
+          <text class="item-card-text">{{item.morny}}</text>
+        </view>
+      </block>
+      <view wx:if="{{allRechargeList.length === 0}}" class="noMore-View">
+        <image class="noMore-img" src="/images/no_more.svg" />
+        <text class="noMore-text">娌℃湁鏁版嵁</text>
+      </view>
+    </scroll-view>
+
+
+  </view>
+
+</view>
\ No newline at end of file
diff --git a/pages/rechargeMoney/rechargMoney.wxss b/pages/rechargeMoney/rechargMoney.wxss
index ca20ff7..438e59a 100644
--- a/pages/rechargeMoney/rechargMoney.wxss
+++ b/pages/rechargeMoney/rechargMoney.wxss
@@ -1,155 +1,182 @@
-/* pages/recharge/recharge.wxss */ 
-.base-wrapper { 
-  background-color: #f5f5f5; 
-  width: 100%; 
-  height: 100vh; 
-  overflow: hidden; 
-  display: flex; 
-  flex-direction: column; 
-} 
- 
-.user-wrapper { 
-  background-color: #1890FF; 
-  height: 20vh; 
-  padding-left: 10rpx; 
-  display: flex; 
-  flex-direction: column; 
-  justify-content: space-around; 
-  padding-top: 20rpx; 
-  padding-bottom: 30rpx; 
-} 
- 
-.user-wrapper text { 
-  color: #fff; 
-  margin-left: 30rpx; 
-} 
- 
-.money-base-wrapper { 
-  flex-direction: column; 
-  height: 20vh; 
-  display: flex; 
-  justify-content: space-around; 
-  margin-top: 20rpx; 
-} 
- 
-.row { 
-  display: flex; 
-  justify-content: space-around; 
-} 
- 
-.item { 
-  background-color: #fff; 
-  border-radius: 5px; 
-  width: 100%; 
-  height: 10vh; 
-  margin-left: 20rpx; 
-  margin-top: 30rpx; 
-  margin-right: 20rpx; 
-  display: flex; 
-  align-items: center; 
-  justify-content: center; 
-} 
- 
-.item text { 
-  color: #2D8BF7; 
-} 
- 
-.money-number { 
-  font-size: 40rpx; 
-} 
- 
-.money-label { 
-  font-size: 30rpx; 
-  margin-left: 5rpx; 
-} 
- 
-.itemactive { 
-  background-color: #2D8BF7; 
-  border-radius: 5px; 
-  width: 100%; 
-  height: 10vh; 
-  margin-top: 30rpx; 
-  margin-left: 20rpx; 
-  margin-right: 20rpx; 
-  display: flex; 
-  align-items: center; 
-  justify-content: center; 
-} 
- 
-.itemactive text { 
-  color: #fff; 
-} 
- 
-.money-wrapper { 
-  display: flex; 
-  align-items: flex-end; 
-  /* 搴曢儴瀵归綈 */ 
-  justify-content: center; 
-  /* 姘村钩灞呬腑 */ 
-} 
- 
-.rechage-view { 
-  margin-top: 40rpx;
-  /* 鍗犳嵁鍓╀綑鐨勫叏閮ㄩ珮搴� */ 
-  flex-direction: column; 
-  display: flex; 
-  justify-content: center; 
-  align-items: center; 
-  width: 100%; 
-} 
-.rechage-view text { 
-  font-size: 30rpx; 
-  padding-top: 10rpx; 
-  padding-bottom: 10rpx; 
-} 
- 
-.rechageList-view { 
-  margin-top: 40rpx;
-  width: 50%; 
-  background-color: #fff; 
-  display: flex; 
-  margin-left: 20rpx; 
-  margin-right: 20rpx; 
-  align-items: center; 
-  justify-content: center; 
-  margin-top: 30rpx; 
-  border-radius: 90px; 
-  border: 2px solid #2D8BF7; 
-  /* 娣诲姞钃濊壊鐨勮竟妗� */ 
-  padding-top: 15rpx; 
-  padding-bottom: 15rpx; 
-} 
- 
-.rechage { 
-  display: flex; 
-  width: 80%; 
-  background-color: #2D8BF7; 
-  align-items: center; 
-  justify-content: center; 
-  padding-top: 15rpx; 
-  padding-bottom: 15rpx; 
-  border-radius: 90px; 
-  margin-top: 45rpx; 
-} 
- 
-.rechageactive { 
-  display: flex; 
-  margin-top: 45rpx; 
-  align-items: center; 
-  justify-content: center; 
-  width: 80%; 
-  background-color: #bababa; 
-  padding-top: 15rpx; 
-  padding-bottom: 15rpx; 
-  border-radius: 90px; 
-} 
- 
+/* pages/recharge/recharge.wxss */
+.base-wrapper {
+  background-color: #f5f5f5;
+  width: 100%;
+  height: 100vh;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+}
 
- 
-.rechageactive text { 
-  color: #fff; 
-} 
- 
-.rechage text { 
-  color: #fff; 
+.user-wrapper {
+  background-color: #1890FF;
+  height: 20vh;
+  padding-left: 10rpx;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  padding-top: 20rpx;
+  padding-bottom: 30rpx;
+}
+
+.user-wrapper text {
+  color: #fff;
+  margin-left: 30rpx;
+}
+
+.money-base-wrapper {
+  flex-direction: column;
+  height: 20vh;
+  display: flex;
+  justify-content: space-around;
+  margin-top: 40rpx;
+}
+
+.row {
+  display: flex;
+  justify-content: space-around;
+}
+
+.item {
+  background-color: #fff;
+  border-radius: 5px;
+  width: 100%;
+  height: 10vh;
+  margin-left: 20rpx;
+  margin-top: 10rpx;
+  margin-right: 20rpx;
+  margin-bottom: 10rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.itemactive {
+  background-color: #1890FF;
+  border-radius: 5px;
+  width: 100%;
+  height: 10vh;
+  margin-left: 20rpx;
+  margin-top: 10rpx;
+  margin-right: 20rpx;
+  margin-bottom: 10rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.itemList {
+  background-color: #fff;
+  border-radius: 5px;
+  margin-left: 20rpx;
+  margin-top: 10rpx;
+  margin-right: 20rpx;
+  margin-bottom: 0rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 30rpx 20rpx;
+}
+
+
+.item text {
+  color: #1890FF;
+}
+
+.money-number {
+  font-size: 40rpx;
+}
+
+.money-label {
+  font-size: 30rpx;
+  margin-left: 5rpx;
+}
+
+
+
+.itemactive text {
+  color: #fff;
+}
+
+.money-wrapper {
+  display: flex;
+  align-items: flex-end;
+  /* 搴曢儴瀵归綈 */
+  justify-content: center;
+  /* 姘村钩灞呬腑 */
+}
+
+.rechage-view {
+  margin-top: 40rpx;
+  /* 鍗犳嵁鍓╀綑鐨勫叏閮ㄩ珮搴� */
+  flex-direction: column;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 100%;
+}
+
+.rechage-view text {
+  font-size: 30rpx;
+  padding-top: 10rpx;
+  padding-bottom: 10rpx;
+}
+
+.rechageList-view {
+  display: flex;
+  flex: 1;
+  width: 100%;
+  flex-direction: column;
+  margin-top: 10rpx;
+}
+
+.rechage {
+  display: flex;
+  width: 80%;
+  background-color: #1890FF;
+  align-items: center;
+  justify-content: center;
+  padding-top: 15rpx;
+  padding-bottom: 15rpx;
+  border-radius: 90px;
+  margin-top: 45rpx;
+}
+
+.rechageactive {
+  display: flex;
+  margin-top: 45rpx;
+  align-items: center;
+  justify-content: center;
+  width: 80%;
+  background-color: #bababa;
+  padding-top: 15rpx;
+  padding-bottom: 15rpx;
+  border-radius: 90px;
+}
+
+.rechage-text {
+  color: #fff;
+  font-size: 40rpx;
+}
+
+.rechageList-view-head {
+  color: #2D8BF7;
+  border-radius: 5px 5px 0 0;
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  /* 鍨傜洿鏂瑰悜灞呬腑 */
+  justify-content: space-between;
+  /* 瀛愬厓绱犲湪涓昏酱涓婄殑瀵归綈鏂瑰紡 */
+  padding: 10px;
+  /* 瀹瑰櫒鐨勫唴杈硅窛 */
+  margin-left: 20rpx;
+  margin-right: 20rpx;
+  margin-top: 20rpx;
+  text-align: center;
+  flex-direction: column;
+}
+
+.item-card-text {
+  font-size: 35rpx;
 }
\ No newline at end of file
diff --git a/pages/recharge/recharge.js b/pages/valveList/valveList.js
similarity index 72%
rename from pages/recharge/recharge.js
rename to pages/valveList/valveList.js
index b043fef..78d4eb5 100644
--- a/pages/recharge/recharge.js
+++ b/pages/valveList/valveList.js
@@ -1,11 +1,21 @@
-// pages/recharge/recharge.js
+// pages/valveList/valveList.js 寮�鍏抽榾璁板綍
 Page({
 
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-
+    listData: [{
+      intakeNum: "1023356646612"
+    }, {
+      intakeNum: "1023356646612"
+    }, {
+      intakeNum: "1023356646612"
+    }, {
+      intakeNum: "1023356646612"
+    }, {
+      intakeNum: "1023356646612"
+    }]
   },
 
   /**
diff --git a/pages/valveList/valveList.json b/pages/valveList/valveList.json
new file mode 100644
index 0000000..ea14f2f
--- /dev/null
+++ b/pages/valveList/valveList.json
@@ -0,0 +1,5 @@
+{
+  "usingComponents": {},
+  "navigationBarTitleText": "寮�鍏抽榾璁板綍",
+  "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/pages/valveList/valveList.wxml b/pages/valveList/valveList.wxml
new file mode 100644
index 0000000..b48f7ae
--- /dev/null
+++ b/pages/valveList/valveList.wxml
@@ -0,0 +1,30 @@
+<!--pages/valveList/valveList.wxml 寮�鍏抽榾璁板綍-->
+<view>
+  <scroll-view class="list-container" scroll-y="true" scroll-x="false">
+    <block wx:if="{{listData.length > 0}}" wx:for="{{listData}}" wx:key="index">
+      <view class="list-item" wx:for="{{listData}}" wx:for-item="item" wx:for-index="index">
+        <!-- <image class="item-img" src="/images/pipeline.svg" /> -->
+        <view class="item-time">
+          <text class="item-text">娑堣垂閲戦锛�</text>
+          <view>
+            <text class="item-morny">50</text>
+            <text class="item-text">  鍏�</text>
+          </view>
+        </view>
+        <text class="item-text">铏氭嫙鍗$紪鍙凤細{{item.intakeNum}}</text>
+        <text class="item-text">鍙栨按鍙g紪鍙凤細</text>
+        <text class="item-text">寮�闃�鏃堕棿锛�</text>
+        <text class="item-text">鍏抽榾鏃堕棿锛�</text>
+        <view class="item-time">
+          <text class="item-text">鐢ㄦ按鏃堕暱锛�120 鍒嗛挓</text>
+          <text class="item-text">鐢ㄦ按閲忥細2 m鲁</text>
+        </view>
+
+      </view>
+    </block>
+    <view wx:if="{{listData.length === 0}}" class="noMore-View">
+      <image class="noMore-img" src="/images/no_more.svg" />
+      <text class="noMore-text">娌℃湁鏁版嵁</text>
+    </view>
+  </scroll-view>
+</view>
\ No newline at end of file
diff --git a/pages/valveList/valveList.wxss b/pages/valveList/valveList.wxss
new file mode 100644
index 0000000..babafeb
--- /dev/null
+++ b/pages/valveList/valveList.wxss
@@ -0,0 +1,29 @@
+/* pages/valveList/valveList.wxss */
+.list-item {
+  display: flex;
+  flex-direction: column;
+  background-color: #1890FF;
+  margin-top: 30rpx;
+  margin-left: 30rpx;
+  margin-right: 30rpx;
+  margin-bottom: 30rpx;
+  padding: 20rpx;
+  border-radius: 15rpx;
+}
+
+.item-text {
+  color: #fff;
+  font-size: 35rpx;
+}
+
+.item-time {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-end;
+}
+
+.item-morny {
+  color: #FFFF00;
+  font-size: 50rpx;
+  font-weight: bold;
+}
\ No newline at end of file
diff --git a/pages/waterIntake/waterIntake.js b/pages/waterIntake/waterIntake.js
index 869e711..81ded95 100644
--- a/pages/waterIntake/waterIntake.js
+++ b/pages/waterIntake/waterIntake.js
@@ -6,9 +6,14 @@
 Page({
   data: {
     currentTab: 0, // 褰撳墠鏄剧ず鐨勮〃鏍硷紝榛樿涓虹涓�涓〃鏍�
-    searchQuery:"",
+    searchQuery: "",
     commonWaterPoints: [], // 甯哥敤鍙栨按鍙f暟鎹�
     allWaterPoints: [], // 鎵�鏈夊彇姘村彛鏁版嵁
+    isRefreshing_all: false,
+    isRefreshing_common: false,
+    showConfirm: false,
+    waterIntakeName: "",
+    choseItem: null
   },
 
   // 鍒囨崲 Tabs
@@ -18,7 +23,7 @@
       currentTab: tab
     });
   },
-  onInput(e){
+  onInput(e) {
     this.setData({
       searchQuery: e.detail.value // 灏嗚緭鍏ユ鐨勫�煎瓨鍌ㄥ埌 inputValue
     });
@@ -26,7 +31,7 @@
   onSearch: function () {
     const query = this.data.searchQuery;
     if (query) {
-     this.getallWaterPoints(query)
+      this.getallWaterPoints(query)
       // 鍦ㄨ繖閲岃繘琛屾悳绱㈡搷浣滐紝鏇存柊 allWaterPoints 鏁版嵁
     } else {
       this.getallWaterPoints(query)
@@ -38,13 +43,56 @@
    * @param {} event 
    */
   choseCard(event) {
-   const intakeId= event.currentTarget.dataset.item.intakeId;
-   console.log(intakeId);
-    wx.navigateTo({
-      url: '/pages/openCard/openCard?intakeId='+intakeId,
+    this.setData({
+      showConfirm: true,
+      choseItem: event.currentTarget.dataset.item
     })
-  },
+    //  console.log(intakeId);
+    //   wx.navigateTo({
+    //     url: '/pages/openCard/openCard?intakeId='+intakeId,
+    //   })
 
+  },
+  //寮�娉甸�氫俊
+  postOpenValva(intakeId) {
+    wx.showLoading({
+      title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const app = getApp();
+    const data = {
+      intakeId: intakeId, //鍙栨按鍙D
+      // vcId: vcId, //铏氭嫙鍗D
+      operator: app.globalData.sessionId //鎿嶄綔鍛�
+    };
+    post({
+      url: "wx/valve/open_wx",
+      data: data
+    }).then(response => {
+
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "1002") {
+        wx.showToast({
+          title: '寮�闃�澶辫触',
+          icon: 'error',
+          duration: 3000 // 鎻愮ず鐨勬寔缁椂闂达紝鍗曚綅姣
+        })
+      }
+    });
+  },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
@@ -82,12 +130,8 @@
 
   },
 
-  /**
-   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
-   */
-  onPullDownRefresh() {
 
-  },
+
 
   /**
    * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
@@ -101,24 +145,29 @@
    */
   onShareAppMessage() {
 
-  }
-  ,
+  },
   /**
    * 鑾峰彇鎵�鏈夊彇姘村彛
    */
   getallWaterPoints: function (intakeNum) {
-    let params = { url: 'rtu/get_online_intakes' };
+    let params = {
+      url: 'project/intake/all_intakes'
+    };
     if (intakeNum) {
-      params.data = { intakeNum: intakeNum };
+      params.data = {
+        intakeNum: intakeNum
+      };
     }
-  
     get(params)
       .then((data) => {
-        if(data.success&&data.code==="0001"){
+        this.setData({
+          isRefreshing_all: false
+        });
+        if (data.success && data.code === "0001") {
           this.setData({
-            allWaterPoints:  data.content.obj
+            allWaterPoints: data.content.obj
           });
-        }else{
+        } else {
           wx.showToast({
             title: data.msg,
           })
@@ -126,28 +175,66 @@
         console.log('Failed to add item:');
       })
       .catch((error) => {
+        this.setData({
+          isRefreshing_all: false
+        });
         console.error('Failed to add item:', error);
       });
   },
-  getcommonWaterPoints(){
-
-    get({url:'rtu/used_intakes', data: {
-      operator: getApp().globalData.sessionId
-    }})
-    .then((data) => {
-      if(data.success&&data.code==="0001"){
+  //鑾峰彇甯哥敤鍙栨按鍙�
+  getcommonWaterPoints() {
+    get({
+        url: 'project/intake/used_intakes',
+        data: {
+          operator: getApp().globalData.sessionId
+        }
+      })
+      .then((data) => {
         this.setData({
-          commonWaterPoints:  data.content
+          isRefreshing_common: false
         });
-      }else{
+        if (data.success && data.code === "0001") {
+          this.setData({
+            commonWaterPoints: data.content
+          });
+        } else {
+          wx.showToast({
+            title: data.msg,
+          })
+        }
+        console.log('Failed to add item:');
+      })
+      .catch((error) => {
+        this.setData({
+          isRefreshing_common: false
+        });
         wx.showToast({
-          title: data.msg,
+          title: error.code,
+          icon: 'error',
+          duration: 3000 // 鎻愮ず鐨勬寔缁椂闂达紝鍗曚綅姣
         })
-      }
-      console.log('Failed to add item:');
+        console.error('Failed to add item:', error);
+      });
+  },
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh_all() {
+    this.getallWaterPoints();
+  },
+  onPullDownRefresh_common() {
+    this.getcommonWaterPoints();
+  },
+  confirmDialog() {
+    this.setData({
+      showConfirm:false
     })
-    .catch((error) => {
-      console.error('Failed to add item:', error);
-    });
+    this.postOpenValva(this.data.choseItem.intakeId);
+  },
+  closeDialog() {
+    this.setData({
+      showConfirm: false
+    })
   }
+
 })
\ No newline at end of file
diff --git a/pages/waterIntake/waterIntake.json b/pages/waterIntake/waterIntake.json
index 2af1a1e..1bfc009 100644
--- a/pages/waterIntake/waterIntake.json
+++ b/pages/waterIntake/waterIntake.json
@@ -3,7 +3,8 @@
   "usingComponents": {
     "t-avatar": "tdesign-miniprogram/avatar/avatar",
     "t-switch": "tdesign-miniprogram/switch/switch",
-    "t-button": "tdesign-miniprogram/button/button"
+    "t-button": "tdesign-miniprogram/button/button",
+    "t-dialog": "tdesign-miniprogram/dialog/dialog"
   },
   "navigationBarTitleText": "鍙栨按鍙�",
   "navigationBarTextStyle": "white"
diff --git a/pages/waterIntake/waterIntake.wxml b/pages/waterIntake/waterIntake.wxml
index 5b19ea4..f9a559a 100644
--- a/pages/waterIntake/waterIntake.wxml
+++ b/pages/waterIntake/waterIntake.wxml
@@ -1,4 +1,3 @@
-<!--pages/waterIntake/waterIntake.wxml鍙栨按鍙e垪琛�-->
 <view class="container">
   <!-- 椤堕儴 Tabs -->
   <view class="tabs">
@@ -13,15 +12,14 @@
   </view>
 
   <!-- 甯哥敤鍙栨按鍙� -->
-  <scroll-view class="list-container" wx:if="{{currentTab === 0}}" scroll-y="true" scroll-x="false">
-    <block wx:if="{{commonWaterPoints.length > 0}}" wx:for="{{commonWaterPoints}}" wx:key="index">
+  <scroll-view class="list-container" wx:if="{{currentTab === 0}}" scroll-y="true" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh_common" refresher-triggered="{{isRefreshing_common}}">
+    <block wx:for="{{commonWaterPoints}}" wx:key="index">
       <view class="item">
         <view class="item-left">
-          <!-- <image class="item-img" src="/images/pipeline.svg" /> -->
           <text>{{item.intakeNum}}</text>
           <image class="item-img" src="{{item.isOnLine ? '/images/wifi_no.svg' : '/images/wifi_off.svg'}}" />
         </view>
-        <text wx:if="{{item.isOnLine}}" class="item-button" bind:tap="choseCard" data-item="{{item}}">閫夋嫨</text>
+        <text  class="item-button" bindtap="choseCard" data-item="{{item}}">寮�闃�</text>
       </view>
     </block>
     <view wx:if="{{commonWaterPoints.length === 0}}" class="noMore-View">
@@ -31,29 +29,27 @@
   </scroll-view>
 
   <!-- 鎵�鏈夊彇姘村彛 -->
-  <view class="all-waterIntake" wx:else>
+  <view class="all-waterIntake" wx:if="{{currentTab === 1}}">
     <view class="search-container">
       <input class="search-input" placeholder="璇疯緭鍏ュ彇姘村彛缂栫爜鍚庣偣鍑绘悳绱�" bindinput="onInput" />
-      <!-- <text class="search-button" >鎼滅储</text> -->
-      <t-button class="search-button" theme="primary" size="large" icon="search" shape="square" aria-label="鎼滅储" bindtap="onSearch" style="background-color: #1890FF; border: none;  height: 80rpx;"></t-button>
+      <t-button class="search-button" theme="primary" size="large" icon="search" shape="square" aria-label="鎼滅储" bindtap="onSearch" style="background-color: #1890FF; border: none; height: 80rpx;"></t-button>
     </view>
-    <view>
-      <scroll-view class="list-container" scroll-y="true" scroll-x="false">
-        <block wx:if="{{allWaterPoints.length > 0}}" wx:for="{{allWaterPoints}}" wx:key="index">
-          <view class="item">
-            <view class="item-left">
-              <!-- <image class="item-img" src="/images/pipeline.svg" /> -->
-              <text>{{item.intakeNum}}</text>
-              <image class="item-img" src="{{item.isOnLine ? '/images/wifi_no.svg' : '/images/wifi_off.svg'}}" />
-            </view>
-            <text wx:if="{{item.isOnLine}}" class="item-button" bind:tap="choseCard" data-item="{{item}}">閫夋嫨</text>
+    <scroll-view class="list-container" scroll-y="true" refresher-enabled="true" refresher-threshold="50" bindrefresherrefresh="onPullDownRefresh_all" refresher-triggered="{{isRefreshing_all}}">
+      <block wx:for="{{allWaterPoints}}" wx:key="index">
+        <view class="item">
+          <view class="item-left">
+            <text>{{item.intakeNum}}</text>
+            <image class="item-img" src="{{item.isOnLine ? '/images/wifi_no.svg' : '/images/wifi_off.svg'}}" />
           </view>
-        </block>
-        <view wx:if="{{allWaterPoints.length === 0}}" class="noMore-View">
-          <image class="noMore-img" src="/images/no_more.svg" />
-          <text class="noMore-text">娌℃湁鏁版嵁</text>
+          <text  class="item-button" bindtap="choseCard" data-item="{{item}}">寮�闃�</text>
         </view>
-      </scroll-view>
-    </view>
+      </block>
+      <view wx:if="{{allWaterPoints.length === 0}}" class="noMore-View">
+        <image class="noMore-img" src="/images/no_more.svg" />
+        <text class="noMore-text">娌℃湁鏁版嵁</text>
+      </view>
+    </scroll-view>
   </view>
-</view>
\ No newline at end of file
+
+  <t-dialog class="t-dialog" visible="{{showConfirm}}" content="纭鎵撳紑{{choseItem.intakeNum}}鍚楋紵" confirm-btn="{{ { content: '纭', variant: 'base', theme: 'danger' } }}" close-on-overlay-click="false" cancel-btn="鍙栨秷"  bind:confirm="confirmDialog" bind:cancel="closeDialog" />
+</view>
diff --git a/pages/waterIntake/waterIntake.wxss b/pages/waterIntake/waterIntake.wxss
index 9c65252..4369c9a 100644
--- a/pages/waterIntake/waterIntake.wxss
+++ b/pages/waterIntake/waterIntake.wxss
@@ -1,106 +1,43 @@
-/* pages/waterIntake/waterIntake.wxss */
-/* index.wxss */
 .container {
-  padding-left: 20rpx;
-  padding-right: 20rpx;
-  padding-top: 5rpx;
-  padding-bottom: 5rpx;
+  padding: 5rpx 20rpx;
   background-color: #fff;
   width: 100%;
   height: 100vh;
-  overflow: hidden;
-  /* 闃叉搴曢儴鍖哄煙婊氬姩 */
   display: flex;
   flex-direction: column;
+  overflow: hidden;
 }
 
 .tabs {
   display: flex;
   justify-content: space-around;
-  position: relative;
   width: 100%;
   border-bottom: 1px solid #eee;
-  /* Tabs 鍗犳弧鏁翠釜妯悜灞忓箷 */
 }
 
 .tab {
   font-size: 16px;
   padding: 10px;
-  cursor: pointer;
-  position: relative;
   width: 50%;
-  /* Tabs 骞冲垎鏁翠釜妯悜灞忓箷 */
   text-align: center;
-  /* 鏂囧瓧灞呬腑 */
-}
-
-list-container
-
-.list {
-  margin-top: 20px;
-}
-
-.item {
-  padding: 10px;
-  border-bottom: 1px solid #eee;
-}
-
-
-.search-container {
-  display: flex;
-  align-items: center;
-  padding: 10rpx;
-  border-bottom: 1px solid #eee;
-}
-
-/* 鎼滅储妗� */
-.search-input {
-  flex: 1;
-  height: 80rpx;
-  padding: 0 20rpx;
-  border: 1px solid #ccc;
-  border-radius: 20rpx;
-  font-size: 30rpx;
-}
-
-/* 鎼滅储鎸夐挳 */
-.search-button {
-  display: flex;
-  margin-left: 10rpx;
-  height: 60rpx;
-
-  background-color: #1890FF;
-  color: white;
-  border: none;
-  border-radius: 20rpx;
-  font-size: 30rpx;
-  text-align: center;
-  align-items: center;
+  position: relative;
 }
 
 .list-container {
+  flex: 1;
+  overflow-y: auto;
+  z-index: 0;
   display: flex;
   flex-direction: column;
-  justify-content: flex-start;
-  /* 纭繚鍐呭灞呬笂 */
-  height: 100%;
-}
-
-.all-waterIntake {
-  display: flex;
-  flex-direction: column;
-  justify-content: flex-start;
-  /* 纭繚鍐呭灞呬笂 */
-  height: 100%;
-  width: 100%;
+  padding-bottom: 20rpx; /* 澧炲姞搴曢儴濉厖 */
 }
 
 .item {
   display: flex;
   align-items: center;
   justify-content: space-between;
-  padding: 10px;
-  /* 閫傚綋璋冩暣闂磋窛 */
+  padding: 15px 20rpx;
+  border-bottom: 1px solid #eee;
 }
 
 .item-left {
@@ -108,22 +45,20 @@
   align-items: center;
 }
 
-.item-right {
-  display: flex;
-  align-items: center;
+.item-left text{
+  font-size: 40rpx;
+  min-width: 150rpx;
 }
 
 .item-img {
   width: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
   height: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
   margin-left: 20rpx;
 }
 
 .item-button {
   display: flex;
-  height: 60rpx;
+  height: 80rpx;
   padding: 0 60rpx;
   background-color: #1890FF;
   color: white;
@@ -133,9 +68,7 @@
   align-items: center;
   justify-content: center;
 }
-.item-left text{
-  font-size: 40rpx;
-}
+
 .indicator {
   width: 100%;
   height: 3px;
@@ -143,8 +76,6 @@
   position: absolute;
   bottom: 0;
   left: 0;
-  transform: translateX(0);
-  /* 鍒濆鍖栦綅缃� */
 }
 
 .noMore-View {
@@ -156,11 +87,55 @@
   flex-direction: column;
 }
 
-.noMore-img{
+.noMore-img {
   width: 300rpx;
   height: 300rpx;
 }
 
-.noMore-text{
-  color:#969494;
+.noMore-text {
+  color: #969494;
+}
+
+.search-container {
+  display: flex;
+  align-items: center;
+  padding: 10rpx;
+  border-bottom: 1px solid #eee;
+}
+
+.search-input {
+  flex: 1;
+  height: 80rpx;
+  padding: 0 20rpx;
+  border: 1px solid #ccc;
+  border-radius: 20rpx;
+  font-size: 30rpx;
+}
+
+.search-button {
+  margin-left: 10rpx;
+  height: 60rpx;
+  background-color: #1890FF;
+  color: white;
+  border: none;
+  border-radius: 20rpx;
+  font-size: 30rpx;
+  text-align: center;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.all-waterIntake {
+  width: 100%;
+  flex: 1;
+  overflow-y: auto;
+  z-index: 0;
+  display: flex;
+  flex-direction: column;
+  padding-bottom: 10rpx; /* 澧炲姞搴曢儴濉厖 */
+}
+.t-dialog{
+  --td-dialog-content-font-size:40rpx;
+  --td-dialog-content-line-height:50rpx
 }
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
index 126fb63..2462bad 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -3,6 +3,6 @@
   "projectname": "irrigate_user",
   "setting": {
     "compileHotReLoad": true,
-    "urlCheck": false
+    "urlCheck": true
   }
 }
\ No newline at end of file

--
Gitblit v1.8.0