From 50433e86b718fab0d94ea1410724b29b5f53fa0a Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期三, 09 四月 2025 15:11:26 +0800
Subject: [PATCH] 更新SVG图标样式,优化灌溉计划和取水口页面逻辑,添加状态处理和信息提示功能;调整界面样式,提升用户体验。

---
 pages/irrigation/irrigation.js               |  102 
 pages/home/home.js                           | 2890 ++++++++++++++++++-------------------
 images/info.svg                              |    2 
 pages/createIrrigation/createIrrigation.wxml |    2 
 pages/irrigation/irrigation.wxml             |   28 
 images/empty.svg                             |   24 
 pages/irrigation/irrigation.wxss             |   15 
 pages/irrigationDetail/irrigationDetail.js   |  170 +
 pages/createIrrigation/createIrrigation.js   |    2 
 pages/waterIntake/waterIntake.wxss           |  136 
 pages/waterIntake/waterIntake.js             |  163 +
 pages/home/home.wxml                         |   19 
 utils/projectConfig.js                       |   31 
 pages/home/home.wxss                         |  736 +++++----
 pages/irrigationDetail/irrigationDetail.wxss |  148 +
 pages/irrigationDetail/irrigationDetail.wxml |   52 
 16 files changed, 2,511 insertions(+), 2,009 deletions(-)

diff --git a/images/empty.svg b/images/empty.svg
new file mode 100644
index 0000000..50327d6
--- /dev/null
+++ b/images/empty.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300px" height="300px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g><path style="opacity:0.245" fill="#bfcadf" d="M 180.5,43.5 C 181.552,43.3505 182.552,43.5172 183.5,44C 186.713,48.2579 190.047,52.4246 193.5,56.5C 190.136,60.6986 186.302,64.3653 182,67.5C 177.833,64.6667 174.333,61.1667 171.5,57C 174.628,52.5742 177.628,48.0742 180.5,43.5 Z"/></g>
+<g><path style="opacity:0.991" fill="#c1d1e2" d="M 57.5,51.5 C 61.5586,53.7205 64.8919,56.8872 67.5,61C 64.5,63.5 61.5,66 58.5,68.5C 55.6314,66.4659 53.2981,63.9659 51.5,61C 53.3134,57.6926 55.3134,54.526 57.5,51.5 Z"/></g>
+<g><path style="opacity:0.991" fill="#c1d1e2" d="M 101.5,78.5 C 105.559,80.7205 108.892,83.8872 111.5,88C 108.5,90.5 105.5,93 102.5,95.5C 99.6314,93.4659 97.2981,90.9659 95.5,88C 97.3134,84.6926 99.3134,81.526 101.5,78.5 Z"/></g>
+<g><path style="opacity:0.355" fill="#c0cddf" d="M 210.5,81.5 C 211.496,81.4142 212.329,81.7476 213,82.5C 214.515,84.6772 216.015,86.8439 217.5,89C 216.037,91.6312 214.037,93.7979 211.5,95.5C 208.963,93.7979 206.963,91.6312 205.5,89C 207.295,86.5742 208.962,84.0742 210.5,81.5 Z"/></g>
+<g><path style="opacity:1" fill="#d9e2ee" d="M 195.5,94.5 C 192.443,96.3951 190.277,99.0618 189,102.5C 188.212,108.582 188.379,114.582 189.5,120.5C 189.5,141.833 189.5,163.167 189.5,184.5C 212.696,188.344 235.029,195.01 256.5,204.5C 256.649,205.552 256.483,206.552 256,207.5C 251.328,207.304 246.995,206.97 243,206.5C 242,207.167 241,207.833 240,208.5C 226.713,207.509 213.213,207.509 199.5,208.5C 198.006,208.291 196.839,207.624 196,206.5C 195.374,208.991 194.541,208.991 193.5,206.5C 188.433,207.479 183.599,207.479 179,206.5C 178,207.167 177,207.833 176,208.5C 174.333,208.5 172.667,208.5 171,208.5C 169.933,207.809 168.766,207.309 167.5,207C 168.5,206.167 169.5,205.333 170.5,204.5C 170.376,203.893 170.043,203.56 169.5,203.5C 166.558,199.277 164.391,194.61 163,189.5C 162.393,185.463 162.56,181.463 163.5,177.5C 139.994,177.831 116.661,177.498 93.5,176.5C 95.8333,176.5 98.1667,176.5 100.5,176.5C 100.333,154.497 100.5,132.497 101,110.5C 101.927,102.239 106.427,97.0718 114.5,95C 141.498,94.5 168.498,94.3334 195.5,94.5 Z"/></g>
+<g><path style="opacity:1" fill="#ccd9ed" d="M 195.5,94.5 C 200.048,94.1994 203.215,96.1994 205,100.5C 207.128,106.991 207.961,113.658 207.5,120.5C 201.5,120.5 195.5,120.5 189.5,120.5C 188.379,114.582 188.212,108.582 189,102.5C 190.277,99.0618 192.443,96.3951 195.5,94.5 Z"/></g>
+<g><path style="opacity:1" fill="#fbfcfd" d="M 121.5,116.5 C 126.989,116.504 128.822,119.171 127,124.5C 122.791,127.596 119.958,126.596 118.5,121.5C 119.092,119.577 120.092,117.911 121.5,116.5 Z"/></g>
+<g><path style="opacity:1" fill="#fefefe" d="M 140.5,117.5 C 150.172,117.334 159.839,117.5 169.5,118C 172.167,120.333 172.167,122.667 169.5,125C 159.833,125.667 150.167,125.667 140.5,125C 137.88,122.441 137.88,119.941 140.5,117.5 Z"/></g>
+<g><path style="opacity:1" fill="#fcfdfd" d="M 120.5,134.5 C 127.486,134.331 129.153,137.164 125.5,143C 121.229,144.513 118.895,143.013 118.5,138.5C 118.752,136.927 119.418,135.594 120.5,134.5 Z"/></g>
+<g><path style="opacity:1" fill="#fcfdfe" d="M 140.5,134.5 C 150.172,134.334 159.839,134.5 169.5,135C 172.167,137.667 172.167,140.333 169.5,143C 159.833,143.667 150.167,143.667 140.5,143C 137.899,140.17 137.899,137.337 140.5,134.5 Z"/></g>
+<g><path style="opacity:0.245" fill="#bfcadf" d="M 46.5,145.5 C 47.552,145.351 48.552,145.517 49.5,146C 52.7132,150.258 56.0465,154.425 59.5,158.5C 56.1356,162.699 52.3023,166.365 48,169.5C 43.8333,166.667 40.3333,163.167 37.5,159C 40.6283,154.574 43.6283,150.074 46.5,145.5 Z"/></g>
+<g><path style="opacity:1" fill="#fcfdfe" d="M 120.5,152.5 C 127.486,152.331 129.153,155.164 125.5,161C 118.946,160.957 117.279,158.123 120.5,152.5 Z"/></g>
+<g><path style="opacity:1" fill="#fefefe" d="M 140.5,152.5 C 150.172,152.334 159.839,152.5 169.5,153C 171.648,155.075 171.982,157.408 170.5,160C 160.167,160.667 149.833,160.667 139.5,160C 138.083,157.257 138.416,154.757 140.5,152.5 Z"/></g>
+<g><path style="opacity:0.248" fill="#bfcadf" d="M 238.5,157.5 C 240.39,157.297 241.89,157.963 243,159.5C 246.233,163.063 249.067,166.896 251.5,171C 248.223,175.064 244.39,178.564 240,181.5C 235.833,178.667 232.333,175.167 229.5,171C 232.733,166.611 235.733,162.111 238.5,157.5 Z"/></g>
+<g><path style="opacity:1" fill="#ccd9ed" d="M 93.5,176.5 C 116.661,177.498 139.994,177.831 163.5,177.5C 162.56,181.463 162.393,185.463 163,189.5C 164.391,194.61 166.558,199.277 169.5,203.5C 159.833,203.5 150.167,203.5 140.5,203.5C 136.167,203.5 131.833,203.5 127.5,203.5C 118.143,203.832 108.81,203.498 99.5,202.5C 96.2675,198.112 93.6009,193.446 91.5,188.5C 90.9106,184.029 91.5772,180.029 93.5,176.5 Z"/></g>
+<g><path style="opacity:0.31" fill="#d9e2ec" d="M 91.5,188.5 C 93.6009,193.446 96.2675,198.112 99.5,202.5C 108.81,203.498 118.143,203.832 127.5,203.5C 122.102,205.74 116.435,207.407 110.5,208.5C 97.4696,207.361 84.4696,207.361 71.5,208.5C 70.0055,208.291 68.8388,207.624 68,206.5C 67.3741,208.991 66.5407,208.991 65.5,206.5C 62.5395,206.865 59.3728,207.532 56,208.5C 51.6667,207.167 47.3333,207.167 43,208.5C 41.6976,207.915 40.531,207.249 39.5,206.5C 56.1876,198.715 73.5209,192.715 91.5,188.5 Z"/></g>
+<g><path style="opacity:0.282" fill="#e5ebf2" d="M 39.5,206.5 C 40.531,207.249 41.6976,207.915 43,208.5C 47.3333,207.167 51.6667,207.167 56,208.5C 59.3728,207.532 62.5395,206.865 65.5,206.5C 66.5407,208.991 67.3741,208.991 68,206.5C 68.8388,207.624 70.0055,208.291 71.5,208.5C 84.4696,207.361 97.4696,207.361 110.5,208.5C 103.939,210.424 97.2724,212.424 90.5,214.5C 88.6555,213.062 87.4888,213.396 87,215.5C 86,212.833 85,212.833 84,215.5C 83.6667,214.833 83.3333,214.167 83,213.5C 82.082,215.632 80.7487,216.299 79,215.5C 76.6667,216.167 74.3333,216.833 72,217.5C 71.2588,216.359 70.4255,216.359 69.5,217.5C 68.4593,215.009 67.6259,215.009 67,217.5C 66.3333,216.167 65.3333,215.167 64,214.5C 61.2683,217.807 58.6016,218.141 56,215.5C 55.3741,217.991 54.5407,217.991 53.5,215.5C 49.4792,216.826 45.1458,216.826 40.5,215.5C 38.6803,215.649 37.1803,216.316 36,217.5C 35.3741,215.009 34.5407,215.009 33.5,217.5C 32.4593,215.009 31.6259,215.009 31,217.5C 29.0088,216.008 26.8422,215.008 24.5,214.5C 29.3065,211.595 34.3065,208.928 39.5,206.5 Z"/></g>
+<g><path style="opacity:0.272" fill="#e7edf3" d="M 140.5,203.5 C 150.167,203.5 159.833,203.5 169.5,203.5C 170.043,203.56 170.376,203.893 170.5,204.5C 169.5,205.333 168.5,206.167 167.5,207C 168.766,207.309 169.933,207.809 171,208.5C 172.667,208.5 174.333,208.5 176,208.5C 177,207.833 178,207.167 179,206.5C 183.599,207.479 188.433,207.479 193.5,206.5C 194.541,208.991 195.374,208.991 196,206.5C 196.839,207.624 198.006,208.291 199.5,208.5C 213.213,207.509 226.713,207.509 240,208.5C 241,207.833 242,207.167 243,206.5C 246.995,206.97 251.328,207.304 256,207.5C 256.483,206.552 256.649,205.552 256.5,204.5C 266.186,209.007 275.519,214.007 284.5,219.5C 282.085,219.556 279.751,219.889 277.5,220.5C 276.459,218.009 275.626,218.009 275,220.5C 274,217.833 273,217.833 272,220.5C 271.667,219.833 271.333,219.167 271,218.5C 270.333,219.833 269.333,220.833 268,221.5C 267.259,220.359 266.425,220.359 265.5,221.5C 264.402,217.639 263.569,217.639 263,221.5C 262.751,220.376 262.251,219.376 261.5,218.5C 258.833,219.833 256.167,219.833 253.5,218.5C 252.459,220.991 251.626,220.991 251,218.5C 250.333,219.833 249.333,220.833 248,221.5C 243.667,220.167 239.333,220.167 235,221.5C 232.266,220.638 232.099,219.805 234.5,219C 233.5,218.833 232.5,218.667 231.5,218.5C 229.796,219.068 228.296,219.068 227,218.5C 226,219.167 225,219.833 224,220.5C 220.57,220.306 217.07,220.306 213.5,220.5C 212.459,218.009 211.626,218.009 211,220.5C 210,217.833 209,217.833 208,220.5C 207.667,219.833 207.333,219.167 207,218.5C 206.333,219.833 205.333,220.833 204,221.5C 203.259,220.359 202.425,220.359 201.5,221.5C 200.402,217.639 199.569,217.639 199,221.5C 198.751,220.376 198.251,219.376 197.5,218.5C 194.833,219.833 192.167,219.833 189.5,218.5C 188.459,220.991 187.626,220.991 187,218.5C 186.333,219.833 185.333,220.833 184,221.5C 179.667,220.167 175.333,220.167 171,221.5C 168.266,220.638 168.099,219.805 170.5,219C 167.805,218.746 165.305,218.579 163,218.5C 162,219.167 161,219.833 160,220.5C 155.667,219.167 151.333,219.167 147,220.5C 146.833,220.167 146.667,219.833 146.5,219.5C 148.672,218.795 150.672,217.795 152.5,216.5C 150.432,214.055 148.265,211.722 146,209.5C 145.333,210.833 144.667,210.833 144,209.5C 143.667,210.167 143.333,210.833 143,211.5C 142.505,209.01 141.005,207.51 138.5,207C 139.973,206.29 140.64,205.124 140.5,203.5 Z"/></g>
+<g><path style="opacity:0.253" fill="#f1f4f8" d="M 127.5,203.5 C 131.833,203.5 136.167,203.5 140.5,203.5C 140.64,205.124 139.973,206.29 138.5,207C 141.005,207.51 142.505,209.01 143,211.5C 143.333,210.833 143.667,210.167 144,209.5C 144.667,210.833 145.333,210.833 146,209.5C 148.265,211.722 150.432,214.055 152.5,216.5C 150.672,217.795 148.672,218.795 146.5,219.5C 146.667,219.833 146.833,220.167 147,220.5C 151.333,219.167 155.667,219.167 160,220.5C 161,219.833 162,219.167 163,218.5C 165.305,218.579 167.805,218.746 170.5,219C 168.099,219.805 168.266,220.638 171,221.5C 175.333,220.167 179.667,220.167 184,221.5C 185.333,220.833 186.333,219.833 187,218.5C 187.626,220.991 188.459,220.991 189.5,218.5C 192.167,219.833 194.833,219.833 197.5,218.5C 198.251,219.376 198.751,220.376 199,221.5C 199.569,217.639 200.402,217.639 201.5,221.5C 202.425,220.359 203.259,220.359 204,221.5C 205.333,220.833 206.333,219.833 207,218.5C 207.333,219.167 207.667,219.833 208,220.5C 209,217.833 210,217.833 211,220.5C 211.626,218.009 212.459,218.009 213.5,220.5C 217.07,220.306 220.57,220.306 224,220.5C 225,219.833 226,219.167 227,218.5C 228.296,219.068 229.796,219.068 231.5,218.5C 232.5,218.667 233.5,218.833 234.5,219C 232.099,219.805 232.266,220.638 235,221.5C 239.333,220.167 243.667,220.167 248,221.5C 249.333,220.833 250.333,219.833 251,218.5C 251.626,220.991 252.459,220.991 253.5,218.5C 256.167,219.833 258.833,219.833 261.5,218.5C 262.251,219.376 262.751,220.376 263,221.5C 263.569,217.639 264.402,217.639 265.5,221.5C 266.425,220.359 267.259,220.359 268,221.5C 269.333,220.833 270.333,219.833 271,218.5C 271.333,219.167 271.667,219.833 272,220.5C 273,217.833 274,217.833 275,220.5C 275.626,218.009 276.459,218.009 277.5,220.5C 279.751,219.889 282.085,219.556 284.5,219.5C 288.3,221.234 291.966,223.234 295.5,225.5C 295.585,226.995 294.919,227.995 293.5,228.5C 291.576,228.894 289.743,228.227 288,226.5C 287.259,227.641 286.425,227.641 285.5,226.5C 284.459,228.991 283.626,228.991 283,226.5C 280.975,228.725 278.642,229.059 276,227.5C 275.667,225.833 275.333,224.167 275,222.5C 274.871,225.003 273.871,227.003 272,228.5C 271.259,227.359 270.425,227.359 269.5,228.5C 268.459,226.009 267.626,226.009 267,228.5C 265.475,227.28 263.641,226.613 261.5,226.5C 258.989,226.288 256.822,226.955 255,228.5C 250.572,228.019 246.572,228.019 243,228.5C 241.676,227.12 240.343,226.786 239,227.5C 237.667,226.833 236.667,225.833 236,224.5C 235.374,226.991 234.541,226.991 233.5,224.5C 232.459,226.991 231.626,226.991 231,224.5C 229.177,228.121 226.843,228.787 224,226.5C 223.259,227.641 222.425,227.641 221.5,226.5C 220.459,228.991 219.626,228.991 219,226.5C 216.975,228.725 214.642,229.059 212,227.5C 211.667,225.833 211.333,224.167 211,222.5C 210.871,225.003 209.871,227.003 208,228.5C 207.259,227.359 206.425,227.359 205.5,228.5C 204.459,226.009 203.626,226.009 203,228.5C 201.475,227.28 199.641,226.613 197.5,226.5C 194.989,226.288 192.822,226.955 191,228.5C 186.572,228.019 182.572,228.019 179,228.5C 177.676,227.12 176.343,226.786 175,227.5C 173.667,226.833 172.667,225.833 172,224.5C 171.374,226.991 170.541,226.991 169.5,224.5C 168.459,226.991 167.626,226.991 167,224.5C 165.177,228.121 162.843,228.787 160,226.5C 159.259,227.641 158.425,227.641 157.5,226.5C 156.459,228.991 155.626,228.991 155,226.5C 152.975,228.725 150.642,229.059 148,227.5C 147.472,220.927 146.638,220.927 145.5,227.5C 144.167,227.833 142.833,228.167 141.5,228.5C 140.459,226.009 139.626,226.009 139,228.5C 138.228,227.151 137.061,226.318 135.5,226C 135.833,225.667 136.167,225.333 136.5,225C 135.167,224.667 133.833,224.333 132.5,224C 132.833,223.667 133.167,223.333 133.5,223C 132.216,222.316 131.049,222.483 130,223.5C 129,222.833 128,222.167 127,221.5C 125.902,222.967 124.402,223.801 122.5,224C 123.337,225.011 123.67,226.178 123.5,227.5C 120.495,227.22 117.661,227.554 115,228.5C 113.676,227.12 112.343,226.786 111,227.5C 109.667,226.833 108.667,225.833 108,224.5C 107.374,226.991 106.541,226.991 105.5,224.5C 104.459,226.991 103.626,226.991 103,224.5C 101.177,228.121 98.8432,228.787 96,226.5C 95.2588,227.641 94.4255,227.641 93.5,226.5C 92.4593,228.991 91.6259,228.991 91,226.5C 88.975,228.725 86.6417,229.059 84,227.5C 83.6667,225.833 83.3333,224.167 83,222.5C 82.8706,225.003 81.8706,227.003 80,228.5C 79.2588,227.359 78.4255,227.359 77.5,228.5C 76.4593,226.009 75.6259,226.009 75,228.5C 73.4747,227.28 71.6413,226.613 69.5,226.5C 66.9886,226.288 64.8219,226.955 63,228.5C 58.5718,228.019 54.5718,228.019 51,228.5C 49.6764,227.12 48.3431,226.786 47,227.5C 45.6667,226.833 44.6667,225.833 44,224.5C 43.3741,226.991 42.5407,226.991 41.5,224.5C 40.4593,226.991 39.6259,226.991 39,224.5C 37.1766,228.121 34.8432,228.787 32,226.5C 31.2588,227.641 30.4255,227.641 29.5,226.5C 28.4593,228.991 27.6259,228.991 27,226.5C 24.975,228.725 22.6417,229.059 20,227.5C 19.6667,225.833 19.3333,224.167 19,222.5C 18.8706,225.003 17.8706,227.003 16,228.5C 15.2588,227.359 14.4255,227.359 13.5,228.5C 12.4593,226.009 11.6259,226.009 11,228.5C 9.17386,226.835 7.00719,225.835 4.5,225.5C 10.8377,221.329 17.5044,217.663 24.5,214.5C 26.8422,215.008 29.0088,216.008 31,217.5C 31.6259,215.009 32.4593,215.009 33.5,217.5C 34.5407,215.009 35.3741,215.009 36,217.5C 37.1803,216.316 38.6803,215.649 40.5,215.5C 45.1458,216.826 49.4792,216.826 53.5,215.5C 54.5407,217.991 55.3741,217.991 56,215.5C 58.6016,218.141 61.2683,217.807 64,214.5C 65.3333,215.167 66.3333,216.167 67,217.5C 67.6259,215.009 68.4593,215.009 69.5,217.5C 70.4255,216.359 71.2588,216.359 72,217.5C 74.3333,216.833 76.6667,216.167 79,215.5C 80.7487,216.299 82.082,215.632 83,213.5C 83.3333,214.167 83.6667,214.833 84,215.5C 85,212.833 86,212.833 87,215.5C 87.4888,213.396 88.6555,213.062 90.5,214.5C 97.2724,212.424 103.939,210.424 110.5,208.5C 116.435,207.407 122.102,205.74 127.5,203.5 Z"/></g>
+<g><path style="opacity:0.219" fill="#fafbfd" d="M 295.5,225.5 C 296.833,226.167 298.167,226.833 299.5,227.5C 299.5,228.5 299.5,229.5 299.5,230.5C 199.5,230.5 99.5,230.5 -0.5,230.5C -0.5,229.833 -0.5,229.167 -0.5,228.5C 1.00087,227.248 2.66754,226.248 4.5,225.5C 7.00719,225.835 9.17386,226.835 11,228.5C 11.6259,226.009 12.4593,226.009 13.5,228.5C 14.4255,227.359 15.2588,227.359 16,228.5C 17.8706,227.003 18.8706,225.003 19,222.5C 19.3333,224.167 19.6667,225.833 20,227.5C 22.6417,229.059 24.975,228.725 27,226.5C 27.6259,228.991 28.4593,228.991 29.5,226.5C 30.4255,227.641 31.2588,227.641 32,226.5C 34.8432,228.787 37.1766,228.121 39,224.5C 39.6259,226.991 40.4593,226.991 41.5,224.5C 42.5407,226.991 43.3741,226.991 44,224.5C 44.6667,225.833 45.6667,226.833 47,227.5C 48.3431,226.786 49.6764,227.12 51,228.5C 54.5718,228.019 58.5718,228.019 63,228.5C 64.8219,226.955 66.9886,226.288 69.5,226.5C 71.6413,226.613 73.4747,227.28 75,228.5C 75.6259,226.009 76.4593,226.009 77.5,228.5C 78.4255,227.359 79.2588,227.359 80,228.5C 81.8706,227.003 82.8706,225.003 83,222.5C 83.3333,224.167 83.6667,225.833 84,227.5C 86.6417,229.059 88.975,228.725 91,226.5C 91.6259,228.991 92.4593,228.991 93.5,226.5C 94.4255,227.641 95.2588,227.641 96,226.5C 98.8432,228.787 101.177,228.121 103,224.5C 103.626,226.991 104.459,226.991 105.5,224.5C 106.541,226.991 107.374,226.991 108,224.5C 108.667,225.833 109.667,226.833 111,227.5C 112.343,226.786 113.676,227.12 115,228.5C 117.661,227.554 120.495,227.22 123.5,227.5C 123.67,226.178 123.337,225.011 122.5,224C 124.402,223.801 125.902,222.967 127,221.5C 128,222.167 129,222.833 130,223.5C 131.049,222.483 132.216,222.316 133.5,223C 133.167,223.333 132.833,223.667 132.5,224C 133.833,224.333 135.167,224.667 136.5,225C 136.167,225.333 135.833,225.667 135.5,226C 137.061,226.318 138.228,227.151 139,228.5C 139.626,226.009 140.459,226.009 141.5,228.5C 142.833,228.167 144.167,227.833 145.5,227.5C 146.638,220.927 147.472,220.927 148,227.5C 150.642,229.059 152.975,228.725 155,226.5C 155.626,228.991 156.459,228.991 157.5,226.5C 158.425,227.641 159.259,227.641 160,226.5C 162.843,228.787 165.177,228.121 167,224.5C 167.626,226.991 168.459,226.991 169.5,224.5C 170.541,226.991 171.374,226.991 172,224.5C 172.667,225.833 173.667,226.833 175,227.5C 176.343,226.786 177.676,227.12 179,228.5C 182.572,228.019 186.572,228.019 191,228.5C 192.822,226.955 194.989,226.288 197.5,226.5C 199.641,226.613 201.475,227.28 203,228.5C 203.626,226.009 204.459,226.009 205.5,228.5C 206.425,227.359 207.259,227.359 208,228.5C 209.871,227.003 210.871,225.003 211,222.5C 211.333,224.167 211.667,225.833 212,227.5C 214.642,229.059 216.975,228.725 219,226.5C 219.626,228.991 220.459,228.991 221.5,226.5C 222.425,227.641 223.259,227.641 224,226.5C 226.843,228.787 229.177,228.121 231,224.5C 231.626,226.991 232.459,226.991 233.5,224.5C 234.541,226.991 235.374,226.991 236,224.5C 236.667,225.833 237.667,226.833 239,227.5C 240.343,226.786 241.676,227.12 243,228.5C 246.572,228.019 250.572,228.019 255,228.5C 256.822,226.955 258.989,226.288 261.5,226.5C 263.641,226.613 265.475,227.28 267,228.5C 267.626,226.009 268.459,226.009 269.5,228.5C 270.425,227.359 271.259,227.359 272,228.5C 273.871,227.003 274.871,225.003 275,222.5C 275.333,224.167 275.667,225.833 276,227.5C 278.642,229.059 280.975,228.725 283,226.5C 283.626,228.991 284.459,228.991 285.5,226.5C 286.425,227.641 287.259,227.641 288,226.5C 289.743,228.227 291.576,228.894 293.5,228.5C 294.919,227.995 295.585,226.995 295.5,225.5 Z"/></g>
+</svg>
diff --git a/images/info.svg b/images/info.svg
index a5e7511..deb7a92 100644
--- a/images/info.svg
+++ b/images/info.svg
@@ -1 +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"><path d="M24 44C29.5228 44 34.5228 41.7614 38.1421 38.1421C41.7614 34.5228 44 29.5228 44 24C44 18.4772 41.7614 13.4772 38.1421 9.85786C34.5228 6.23858 29.5228 4 24 4C18.4772 4 13.4772 6.23858 9.85786 9.85786C6.23858 13.4772 4 18.4772 4 24C4 29.5228 6.23858 34.5228 9.85786 38.1421C13.4772 41.7614 18.4772 44 24 44Z" fill="none" stroke="#333" stroke-width="4" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 11C25.3807 11 26.5 12.1193 26.5 13.5C26.5 14.8807 25.3807 16 24 16C22.6193 16 21.5 14.8807 21.5 13.5C21.5 12.1193 22.6193 11 24 11Z" fill="#333"/><path d="M24.5 34V20H23.5H22.5" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 34H28" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
+<?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"><path d="M24 44C29.5228 44 34.5228 41.7614 38.1421 38.1421C41.7614 34.5228 44 29.5228 44 24C44 18.4772 41.7614 13.4772 38.1421 9.85786C34.5228 6.23858 29.5228 4 24 4C18.4772 4 13.4772 6.23858 9.85786 9.85786C6.23858 13.4772 4 18.4772 4 24C4 29.5228 6.23858 34.5228 9.85786 38.1421C13.4772 41.7614 18.4772 44 24 44Z" fill="none" stroke="#2D8BF7" stroke-width="4" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 11C25.3807 11 26.5 12.1193 26.5 13.5C26.5 14.8807 25.3807 16 24 16C22.6193 16 21.5 14.8807 21.5 13.5C21.5 12.1193 22.6193 11 24 11Z" fill="#2D8BF7"/><path d="M24.5 34V20H23.5H22.5" stroke="#2D8BF7" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 34H28" stroke="#2D8BF7" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
diff --git a/pages/createIrrigation/createIrrigation.js b/pages/createIrrigation/createIrrigation.js
index 6a03e17..6a77e38 100644
--- a/pages/createIrrigation/createIrrigation.js
+++ b/pages/createIrrigation/createIrrigation.js
@@ -62,7 +62,7 @@
             isShowLoding: true
         }).then(res => {
             if (res.success) {
-                const projectList = res.content.obj.map(project => ({
+                const projectList = res.content.map(project => ({
                     id: project.projectId,
                     name: project.projectName,
                     groupCount: project.groupCount,
diff --git a/pages/createIrrigation/createIrrigation.wxml b/pages/createIrrigation/createIrrigation.wxml
index 8a1aac5..a6087f4 100644
--- a/pages/createIrrigation/createIrrigation.wxml
+++ b/pages/createIrrigation/createIrrigation.wxml
@@ -83,7 +83,7 @@
         </block>
       </block>
       <view wx:else class="empty-container">
-        <image class="empty-image" src="/images/empty.png" mode="aspectFit"></image>
+        <image class="empty-image" src="/images/empty.svg" mode="aspectFit"></image>
         <view class="empty-text">鏆傛棤杞亴缁勬暟鎹�</view>
         <view class="empty-text">璇峰埛鏂版垨绋嶅悗鍐嶈瘯</view>
       </view>
diff --git a/pages/home/home.js b/pages/home/home.js
index b139784..afb394f 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -1,1505 +1,1501 @@
 // pages/home/home.js
 const storage = require('../../utils/storage.js');
 const {
-  get,
-  post
+    get,
+    post
 } = require('../../api/request.js');
 const {
-  PROJECT_URLS
+    PROJECT_URLS
 } = require('../../api/config.js');
-
-// 椤圭洰閰嶇疆锛屽寘鍚悇椤圭洰鐨勪笓鏈夎缃�
-const PROJECT_CONFIG = {
-  JYG: {
-    tag: 'ym',
-    displayName: '鍢夊唱鍏抽」鐩�',
-    needLogin: true // 闇�瑕佺櫥褰�
-  },
-  MQ: {
-    tag: 'mq',
-    displayName: '姘戝嫟椤圭洰',
-    operatorId: '2025033115305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
-    needLogin: false // 涓嶉渶瑕佺櫥褰�
-  },
-  TEST: {
-    tag: 'ym',
-    displayName: '娴嬭瘯椤圭洰',
-    operatorId: '2025032411245000006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
-    vcId: '2024122617295800009',
-    needLogin: false // 涓嶉渶瑕佺櫥褰�
-  },
-  SCHOOL: {
-    tag: 'XX',
-    displayName: '瀛︽牎椤圭洰',
-    operatorId: '2025040215305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
-    needLogin: true // 涓嶉渶瑕佺櫥褰�
-  }
-};
+const {
+    PROJECT_CONFIG
+} = require('../../utils/projectConfig.js');
 
 Page({
 
-  /**
-   * 椤甸潰鐨勫垵濮嬫暟鎹�
-   */
-  data: {
-    sessionId: "",
-    showConfirm: false,
-    myItem: {},
-    waterIntakeName: "",
-    image: "/images/ic_head_bg.jpg",
-    userPhone: "",
-    userName: "璇风偣鍑荤櫥褰�",
-    scrollViewHeight: 0,
-    listData: [],
-    isRefreshing: false,
-    isWXRefreshing: false,
-    errorData: '', //閿欒鍐呭
-    showErrorDialog: false,
-    confirmBtn: {
-      content: '纭'
-    },
-    errorDialogTitle: "鍏抽榾閿欒",
-    showForceConfirm: false, //鏄惁寮哄埗寮�闃�
-    lastIntakeName: "",
-    showProjectDialog: false,
-    selectedProject: '',
-    avatarTapCount: 0,
-    isFromLogin: false,
-    showTipDialog: '',
-    projectConfig: PROJECT_CONFIG // 娣诲姞椤圭洰閰嶇疆鍒癲ata涓�
-  },
-
-  openValve: function (e) {
-    const app = getApp();
-    if (app.globalData.isLoggedIn) {
-      wx.navigateTo({
-        url: '/pages/waterIntake/waterIntake',
-      })
-    } else {
-      wx.showToast({
-        title: '璇峰厛鐧诲綍',
-        icon: 'error'
-      })
-    }
-  },
-  calculateScrollViewHeight: function () {
-    wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => {
-      let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0);
-      this.setData({
-        scrollViewHeight: totalHeight,
-      });
-    }).exec();
-  },
-  startPullDownRefresh() {
-    if (getApp().globalData.isLoggedIn) {
-      if (!this.data.isWXRefreshing) {
-        var self = this;
-        console.log(this.data.isRefreshing);
-        this.setData({
-          isRefreshing: true
-        });
-        this.getOpenList();
-      }
-    } else {
-      wx.showToast({
-        title: '璇峰厛鐧诲綍',
-        icon: 'error'
-      })
-    }
-
-
-  },
-
-
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
-   */
-  onLoad(options) {
-    console.log('home椤甸潰onLoad寮�濮嬶紝鍙傛暟:', options);
-    //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
-    if (options.param === "1" || options.param === "2") {
-      this.setData({
-        options: options
-      })
-    }
-    // 妫�鏌ユ槸鍚︿粠鐧诲綍椤甸潰杩斿洖
-    let fromLogin = false;
-
-    // 妫�鏌RL鍙傛暟
-    if (options && options.fromLogin === 'true') {
-      console.log('妫�娴嬪埌URL鍙傛暟fromLogin=true');
-      fromLogin = true;
-    }
-
-    console.log('home椤甸潰鍔犺浇锛宖romLogin:', fromLogin, '鍙傛暟:', options);
-
-    // 璁剧疆fromLogin鏍囧織
-    if (fromLogin) {
-      console.log('璁剧疆isFromLogin=true');
-      this.setData({
-        isFromLogin: true
-      });
-    }
-
-    // 寤惰繜鎵ц鍓╀綑鐨勫垵濮嬪寲杩囩▼锛屼互纭繚涓存椂鏍囪鍜孶RL鍙傛暟鑳借姝g‘澶勭悊
-    setTimeout(() => {
-      this.initializePage(options, fromLogin);
-    }, 100);
-  },
-
-  // 鏂板鐨勫垵濮嬪寲椤甸潰杈呭姪鍑芥暟锛屽垎绂诲嚭onLoad涓殑閫昏緫浠ヤ究寤惰繜鎵ц
-  initializePage(options, fromLogin) {
-    // 妫�鏌ユ槸鍚﹀凡閫夋嫨椤圭洰
-    const {
-      PROJECT_URLS
-    } = require('../../api/config.js');
-
-    // 纭繚鍏ㄥ眬鍙橀噺瀛樺湪
-    getApp().globalData = getApp().globalData || {};
-
-    storage.getItemSafe('selectedProject')
-      .then((project) => {
-        if (project) {
-          this.setData({
-            selectedProject: project
-          });
-
-          // 璁剧疆 baseUrl
-          const baseUrl = PROJECT_URLS[project];
-          getApp().globalData.baseUrl = baseUrl;
-          getApp().globalData.selectedProject = project;
-
-          // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag
-          const projectConfig = PROJECT_CONFIG[project];
-          if (projectConfig) {
-            getApp().globalData.tag = projectConfig.tag;
-            this.setData({
-              userName: projectConfig.displayName
-            });
-          }
-
-          // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨刼perator鍜宑lientId
-          if (projectConfig && projectConfig.operatorId) {
-            getApp().globalData.operator = projectConfig.operatorId;
-            getApp().globalData.clientId = projectConfig.operatorId;
-            getApp().globalData.isLoggedIn = true;
-            getApp().globalData.sessionId = projectConfig.operatorId;
-
-            // 濡傛灉鏈塿cId锛屼篃璁剧疆
-            if (projectConfig.vcId) {
-              getApp().globalData.vcId = projectConfig.vcId;
-            }
-
-            // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
-            const params = {
-              operator: projectConfig.operatorId,
-              clientId: projectConfig.operatorId,
-              isLoggedIn: true,
-              sessionId: projectConfig.operatorId
-            };
-            
-            if (projectConfig.vcId) {
-              params.vcId = projectConfig.vcId;
-            }
-            
-            storage.setItem(`${project}_params`, params);
-          }
-
-          // 缁х画鍒濆鍖栭〉闈�
-          this.continueInitPage(options);
-        } else {
-          // 棣栨杩涘叆锛屾樉绀洪」鐩�夋嫨寮圭獥
-          this.setData({
-            showProjectDialog: true
-          });
-          return Promise.reject({
-            type: 'project_not_selected',
-            message: '鏈�夋嫨椤圭洰'
-          }); // 缁堟鍚庣画澶勭悊
-        }
-      })
-      .then(() => {
-        // 缁х画鍒濆鍖栭〉闈�
-        this.continueInitPage(options);
-      })
-      .catch(err => {
-        // 灏嗛敊璇璞¤鑼冨寲
-        const error = typeof err === 'object' ? err : {
-          type: 'unknown',
-          message: String(err)
-        };
-        console.log('鑾峰彇瀛樺偍鏁版嵁涓柇:', error.message);
-
-        // 濡傛灉鏄粠鐧诲綍椤佃繑鍥炴垨宸茬櫥褰曪紝涓嶅啀璺宠浆
-        if (fromLogin) {
-          console.log('浠庣櫥褰曢〉杩斿洖鎴栧凡鐧诲綍锛岀户缁垵濮嬪寲椤甸潰');
-          this.continueInitPage(options);
-          return;
-        }
-
-        // 澶勭悊鏈�夋嫨椤圭洰鐨勬儏鍐�
-        if (error.type === 'project_not_selected') {
-          console.log('鏈�夋嫨椤圭洰锛屾樉绀洪」鐩�夋嫨寮圭獥');
-          this.setData({
-            showProjectDialog: true
-          });
-          return;
-        }
-
-        // 鍏朵粬鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰
-        console.warn('鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰:', error);
-        this.continueInitPage(options);
-      });
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
-   */
-  onReady() {
-    // 妫�鏌ユ槸鍚︽湁options鍜宲aram
-    if (this.data.options && this.data.options.param) {
-      if (this.data.options.param === "1" || this.data.options.param === "2") {
-        this.getOpenList();
-      }
-    }
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
-   */
-  onShow() {
-    console.log('home椤甸潰onShow寮�濮�');
-
-    // 鑾峰彇褰撳墠椤甸潰鐨勫弬鏁�
-    const pages = getCurrentPages();
-    const currentPage = pages[pages.length - 1];
-
-    let fromLogin = false;
-
-    // 妫�鏌ユ槸鍚︽湁fromLogin鍙傛暟
-    if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
-      console.log('onShow: 妫�娴嬪埌fromLogin鍙傛暟锛岃缃甶sFromLogin鏍囪');
-      fromLogin = true;
-      this.setData({
-        isFromLogin: true
-      });
-    }
-
-    // 鍒濆鍖栧鐞�
-    if (fromLogin || this.data.isFromLogin) {
-      console.log('onShow: 浠庣櫥褰曢〉杩斿洖锛屼笉杩涜鐧诲綍妫�鏌�');
-    } else {
-      console.log('onShow: 姝e父鏄剧ず椤甸潰');
-      // 寤惰繜妫�鏌ョ櫥褰曠姸鎬侊紝纭繚鑳芥纭瘑鍒复鏃舵爣璁�
-      setTimeout(() => {
-        this.checkLoginStatusIfNeeded();
-      }, 300);
-    }
-  },
-
-  // 妫�鏌ョ櫥褰曠姸鎬侊紙浠呭湪闇�瑕佹椂锛�
-  checkLoginStatusIfNeeded() {
-    // 鍐嶆纭鏄惁浠庣櫥褰曢〉杩斿洖
-    if (this.getFromLogin()) {
-      console.log('妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶈繘琛岀櫥褰曟鏌�');
-      return;
-    }
-
-    console.log('鎵ц鐧诲綍鐘舵�佹鏌�');
-    this.checkLoginStatus();
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
-   */
-  onHide() {
-    // 椤甸潰闅愯棌鏃惰�冭檻娓呯悊涓存椂鏍囪
-    this.cleanupTempMarkers();
-  },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
-   */
-  onUnload() {
-    // 椤甸潰鍗歌浇鏃舵竻鐞嗕复鏃舵爣璁�
-    this.cleanupTempMarkers();
-  },
-
-  /**
-   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
-   */
-  onPullDownRefresh() {
-    // 涓嬫媺鍒锋柊瑙﹀彂鐨勯�昏緫锛屽彲浠ユ槸璇锋眰鏁版嵁绛夋搷浣�
-    // 渚嬪锛岃姹傛暟鎹悗鏇存柊椤甸潰鍐呭
-    console.log(this.data.isRefreshing);
-    this.setData({
-      isWXRefreshing: true
-    });
-    console.log(this.data.isRefreshing);
-    // 鏁版嵁璇锋眰瀹屾垚鍚庯紝鍋滄涓嬫媺鍒锋柊鐨勫姩鐢�
-    this.getOpenList();
-  },
-
-  /**
-   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
-   */
-  onReachBottom() {
-
-  },
-
-  /**
-   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
-   */
-  onShareAppMessage() {
-
-  },
-  recharge() {
-    // wx.navigateTo({
-    //   url: '/pages/rechargeCard/rechargeCard',
-    // })
-    wx.showToast({
-      title: '鏆傛湭寮�鏀�',
-      icon: 'none'
-    })
-  },
-  openValveList() {
-    // wx.navigateTo({
-    //   url: '/pages/valveList/valveList',
-    // })
-    wx.showToast({
-      title: '鏆傛湭寮�鏀�',
-      icon: 'none'
-    })
-  },
-  feedBack() {
-    wx.showToast({
-      title: '鏆傛湭寮�鏀�',
-      icon: 'none'
-    })
-  },
-  //瑙g粦鐢ㄦ埛
-  unbind() {
-    // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
-    const currentProject = getApp().globalData.selectedProject;
-    const projectConfig = PROJECT_CONFIG[currentProject];
-    
-    // 濡傛灉褰撳墠椤圭洰閰嶇疆涓轰笉闇�瑕佺櫥褰曪紝鍒欐彁绀虹敤鎴蜂笉鍙В缁�
-    if (projectConfig && !projectConfig.needLogin) {
-      wx.showToast({
-        title: '褰撳墠鐢ㄦ埛涓嶅彲瑙g粦',
-        icon: 'none',
-        duration: 2000
-      });
-      return;
-    }
-    
-    if (getApp().globalData.isLoggedIn) {
-      wx.showModal({
-        title: '瑙g粦纭',
-        content: '纭畾瑕佽В缁戝綋鍓嶈处鍙峰悧锛�',
-        success: (res) => {
-          if (res.confirm) {
-            this.unBindPost()
-          }
-        }
-      });
-    } else {
-      wx.showToast({
-        title: '杩樻湭缁戝畾',
-        icon: 'error'
-      })
-    }
-  },
-  //杞亴
-  irrigation() {
-    if (getApp().globalData.isLoggedIn) {
-      wx.navigateTo({
-        url: '/pages/irrigation/irrigation',
-      })
-    } else {
-      wx.showToast({
-        title: '璇峰厛鐧诲綍',
-        icon: 'error'
-      })
-    }
-  },
-  handleChange(e) {
-    const item = e.currentTarget.dataset.item;
-    console.log(item);
-    this.setData({
-      showConfirm: true,
-      waterIntakeName: item.intakeNum,
-      myItem: item
-    });
-  },
-  closeDialog() {
-    console.log("closeDialog");
-    this.setData({
-      showConfirm: false,
-      showErrorDialog: false,
-      showForceConfirm: false
-    });
-  },
-  cancelDialog() {
-    this.setData({
-      showForceConfirm: false,
-      showConfirm: false
-    });
-  },
-  /**
-   * 鍏抽棴闃�闂�
-   * @param {*} orderNo 璁㈠崟鍙�
-   * @param {*} rtuAddr 闃�鎺у櫒鍦板潃
-   * @param {*} vcNum 铏氭嫙鍗$紪鍙�
-   */
-  postCloseValaue(orderNo, rtuAddr, vcNum) {
-    wx.showLoading({
-      title: '姝e湪鍏抽榾璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
-      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
-    });
-    const app = getApp();
-    const data = {
-      rtuAddr: rtuAddr,
-      vcNum: vcNum, //铏氭嫙鍗D
-      orderNo: orderNo,
-      operator: app.globalData.clientId //鎿嶄綔鍛�
-    };
-    console.log("postCloseValaue" + data);
-    post({
-      url: "wx/valve/close_wx",
-      data: data,
-      isShowLoding: false,
-      timeout: 185000
-    }).then(response => {
-
-      // 澶勭悊鎴愬姛鍝嶅簲
-      console.log('璇锋眰鎴愬姛:', response);
-      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
-      wx.hideLoading();
-      this.getOpenList();
-      wx.showToast({
-        title: '鍏抽榾鎴愬姛',
-        icon: 'success',
-        duration: 3000
-      })
-    }).catch(error => {
-      wx.hideLoading();
-      this.setData({
-        showErrorDialog: true,
-        errorData: error.msg,
-        errorDialogTitle: "鍏抽榾閿欒"
-      })
-      // 澶勭悊閿欒鍝嶅簲
-      console.error('璇锋眰澶辫触:', error);
-
-    });
-  },
-  /**
-   * 鑾峰彇涓哄叧闃�璁板綍
-   */
-  getOpenList() {
-    const app = getApp();
-    if (!getApp().globalData.isLoggedIn) {
-      wx.showToast({
-        title: '璇峰厛鐧诲綍',
-        icon: 'error'
-      })
-      this.setData({
-        isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-      });
-      return;
-    }
-    // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-    const fromLogin = this.getFromLogin();
-
-    // 妫�鏌lientId鏄惁瀛樺湪
-    if (!app.globalData.clientId) {
-      console.log('getOpenList: clientId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
-
-      // 濡傛灉鏄粠鐧诲綍椤佃繑鍥烇紝灏辨樉绀虹┖鍒楄〃鑰屼笉鏄敊璇彁绀�
-      this.setData({
+    /**
+     * 椤甸潰鐨勫垵濮嬫暟鎹�
+     */
+    data: {
+        sessionId: "",
+        showConfirm: false,
+        myItem: {},
+        waterIntakeName: "",
+        image: "/images/ic_head_bg.jpg",
+        userPhone: "",
+        userName: "璇风偣鍑荤櫥褰�",
+        scrollViewHeight: 0,
         listData: [],
         isRefreshing: false,
-        isWXRefreshing: false
-      });
+        isWXRefreshing: false,
+        errorData: '', //閿欒鍐呭
+        showErrorDialog: false,
+        confirmBtn: {
+            content: '纭'
+        },
+        errorDialogTitle: "鍏抽榾閿欒",
+        showForceConfirm: false, //鏄惁寮哄埗寮�闃�
+        lastIntakeName: "",
+        showProjectDialog: false,
+        selectedProject: '',
+        avatarTapCount: 0,
+        isFromLogin: false,
+        showTipDialog: '',
+        projectConfig: PROJECT_CONFIG, // 娣诲姞椤圭洰閰嶇疆鍒癲ata涓�
+        showInfoDialog: false
+    },
 
-      // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖涓斾笉澶勪簬鍒锋柊鐘舵�侊紝鑰冭檻妫�鏌ョ櫥褰曠姸鎬�
-      if (!fromLogin && !this.data.isRefreshing && !this.data.isWXRefreshing) {
-        console.log('getOpenList: 闈炲埛鏂扮姸鎬佷笅妫�娴嬪埌鏃燾lientId锛屽皾璇曡嚜鍔ㄧ櫥褰�');
-        // 寤惰繜璋冪敤寰俊鐧诲綍锛屽皾璇曡嚜鍔ㄦ仮澶嶄細璇�
-        setTimeout(() => {
-          if (!getApp().globalData.clientId && !this.getFromLogin()) {
-            this.wxLogin();
-          }
-        }, 1000);
-      }
-      return;
-    }
-
-    console.log('getOpenList: 寮�濮嬭幏鍙栧垪琛ㄦ暟鎹�, clientId:', app.globalData.clientId);
-
-    const params = {
-      url: 'wx/valve/get',
-      data: {
-        operator: app.globalData.clientId
-      }
-    };
-
-    get(params).then(data => {
-      console.log('鑾峰彇鍒楄〃鏁版嵁鎴愬姛:', data);
-      this.setData({
-        listData: data.content,
-        isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-      });
-
-      // 鎴愬姛鑾峰彇鏁版嵁鍚庡埛鏂癠I楂樺害
-      setTimeout(() => {
-        this.calculateScrollViewHeight();
-      }, 200);
-    }).catch(err => {
-      console.error('鑾峰彇鍒楄〃鏁版嵁澶辫触:', err);
-      // 閿欒鍥炶皟
-      this.setData({
-        isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-        isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
-      });
-
-      // 妫�鏌ラ敊璇被鍨�
-      if (err && err.code === '0003') {
-        console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
-
-        // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
-        if (!fromLogin) {
-          wx.showToast({
-            title: '鐧诲綍宸茶繃鏈燂紝璇峰埛鏂伴噸璇�',
-            icon: 'none',
-            duration: 3000
-          });
-        }
-      } else {
-        // 涓�鑸敊璇紝鏄剧ず閿欒淇℃伅
-        wx.showToast({
-          title: err.msg || '鑾峰彇鍒楄〃鏁版嵁澶辫触',
-          icon: 'none',
-          duration: 3000
-        });
-      }
-    });
-  },
-  /**
-   * 纭鍏抽棴鍥炶皟
-   * @param {} item 
-   */
-  confirmDialog() {
-    this.setData({
-      showConfirm: false
-    });
-    this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
-  },
-  //鏍规嵁session鑾峰彇鍐滄埛淇℃伅
-  getUserDataBySession() {
-    // 鍏堟鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-    if (this.getFromLogin()) {
-      console.log('getUserDataBySession: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶆墽琛孉PI璇锋眰');
-      return;
-    }
-
-    const app = getApp();
-
-    // 妫�鏌ユ槸鍚︽湁sessionId
-    if (!app.globalData.sessionId) {
-      console.log('getUserDataBySession: sessionId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
-      return;
-    }
-
-    console.log('getUserDataBySession: 寮�濮嬭幏鍙栫敤鎴锋暟鎹�, sessionId:', app.globalData.sessionId);
-
-    const params = {
-      url: 'wx/client/simple_info',
-      data: {
-        sessionId: app.globalData.sessionId
-      }
-    };
-
-    get(params).then(data => {
-      console.log('鑾峰彇鐢ㄦ埛鏁版嵁鎴愬姛:', data);
-      this.setData({
-        userName: data.content.clientName,
-        userPhone: this.maskPhoneNumber(data.content.phone)
-      });
-    }).catch(err => {
-      console.error('鑾峰彇鐢ㄦ埛鏁版嵁澶辫触:', err);
-      // 閿欒鍥炶皟锛屼絾涓嶈繘琛岄〉闈㈣烦杞�
-
-      // 妫�鏌ラ敊璇被鍨�
-      if (err && err.code === '0003') {
-        console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
-        // 涓嶅啀鐩存帴璺宠浆鍒扮櫥褰曢〉
-
-        // 娓呴櫎浼氳瘽淇℃伅
-        app.globalData.sessionId = '';
-        app.globalData.isLoggedIn = false;
-
-        // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
-        if (!this.getFromLogin()) {
-          wx.showToast({
-            title: '鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�',
-            icon: 'none',
-            duration: 3000
-          });
-        }
-      } else {
-        // 鍏朵粬閿欒锛屾樉绀洪敊璇俊鎭�
-        wx.showToast({
-          title: err.msg || '鑾峰彇鐢ㄦ埛淇℃伅澶辫触',
-          icon: 'none',
-          duration: 3000
-        });
-      }
-    });
-  },
-  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;
-  },
-
-  closeDialog() {
-    this.setData({
-      showErrorDialog: false
-    })
-  },
-  /**
-   * 鎵爜寮�闃�
-   */
-  scenCode() {
-    const that = this;
-    wx.scanCode({
-      success(res) {
-        console.log(res.result); // 褰撲笖浠呭綋鎵爜涓洪潪寰俊浜岀淮鐮佹椂锛屼細杩斿洖result  
-        if (res.result.startsWith("content://")) {
-          let jsonStr = res.result.replace("content://", "")
-          try {
-
-            that.saveData(jsonStr)
-          } catch (error) {
-            console.error('Error parsing JSON:', error);
-          }
-
+    openValve: function (e) {
+        const app = getApp();
+        if (app.globalData.isLoggedIn) {
+            wx.navigateTo({
+                url: '/pages/waterIntake/waterIntake',
+            })
         } else {
-          that.postOppenValva(res.result)
+            wx.showToast({
+                title: '璇峰厛鐧诲綍',
+                icon: 'error'
+            })
         }
-
-      },
-      fail(err) {
-        console.error(err);
-      }
-    })
-  },
-  confirmForceDialog() {
-    console.log("confirmForceDialog");
-    this.setData({
-      showForceConfirm: false
-    })
-    this.postOppenValva(this.data.lastIntakeName, true)
-  },
-  /**
-   * 
-   * @param {*} intakeName 
-   */
-  postOppenValva(intakeName, isforce) {
-    const that = this;
-    wx.showLoading({
-      title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
-      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
-    });
-    const app = getApp();
-    that.setData({
-      lastIntakeName: intakeName
-    })
-    const data = {
-      intakeName: intakeName, //鍙栨按鍙D
-      // vcId: vcId, //铏氭嫙鍗D
-      operator: app.globalData.clientId, //鎿嶄綔鍛�
-      forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿��  
-    };
-    post({
-      url: "wx/valve/open_wx",
-      data: data,
-      timeout: 180000
-    }).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 === "10005") {
-        that.setData({
-          showForceConfirm: true
-        })
-      } else {
-        that.setData({
-          showErrorDialog: true,
-          errorData: error.msg,
-          errorDialogTitle: "寮�闃�閿欒"
-        })
-      }
-    });
-  },
-  /**
-   * 鎵弿鍚庝繚瀛樼敤鎴穒d鍜宼ag
-   */
-  saveData(userData) {
-    storage.setItem("userData", userData).then(() => {
-      this.initData();
-    }).catch((error) => {});
-
-  },
-  //杩涘叆鐣岄潰鑾峰彇鐣岄潰鏁版嵁
-  initData() {
-    const app = getApp();
-    console.log("initData寮�濮嬶紝tag:", app.globalData.tag);
-
-    // 棣栧厛妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-    if (this.getFromLogin()) {
-      console.log('initData: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝浠呰幏鍙栧熀鏈暟鎹�');
-
-      // 鍗充娇浠庣櫥褰曢〉杩斿洖锛屼篃灏濊瘯鑾峰彇寮�闃�鍒楄〃浠ユ樉绀哄熀鏈琔I
-      // 浣嗗厛妫�鏌ユ槸鍚︽湁瀹㈡埛绔疘D鍙敤
-      if (!app.globalData.clientId) {
-        console.log('initData: 浠庣櫥褰曢〉杩斿洖涓旀棤clientId锛屽皾璇曚粠瀛樺偍鎭㈠');
-        // 灏濊瘯浠庡瓨鍌ㄦ仮澶峜lientId
-        storage.getItemSafe('clientId')
-          .then(clientId => {
-            if (clientId) {
-              console.log('initData: 浠庡瓨鍌ㄦ仮澶峜lientId鎴愬姛:', clientId);
-              app.globalData.clientId = clientId;
-              this.getOpenList();
-            } else {
-              console.log('initData: 鏃犳硶鎭㈠clientId锛屾樉绀虹┖鍒楄〃');
-              this.setData({
-                listData: []
-              });
-            }
-          })
-          .catch(err => {
-            console.error('initData: 鎭㈠clientId澶辫触:', err);
+    },
+    calculateScrollViewHeight: function () {
+        wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => {
+            let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0);
             this.setData({
-              listData: []
+                scrollViewHeight: totalHeight,
             });
-          });
-      } else {
-        this.getOpenList();
-      }
-      return;
-    }
-
-    // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
-    const currentProject = app.globalData.selectedProject;
-    const projectConfig = PROJECT_CONFIG[currentProject];
-    const needLogin = projectConfig && projectConfig.needLogin;
-
-    // 灏濊瘯鑾峰彇鐢ㄦ埛鏁版嵁鍜屽凡寮�闃�璁板綍
-    try {
-      // 浼樺厛妫�鏌ュ叏灞�鍙橀噺涓槸鍚︽湁sessionId
-      if (app.globalData.sessionId) {
-        console.log('initData: 浣跨敤鍏ㄥ眬sessionId鑾峰彇鏁版嵁');
-        
-        // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
-        if (needLogin) {
-          console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
-          this.getUserDataBySession();
+        }).exec();
+    },
+    startPullDownRefresh() {
+        if (getApp().globalData.isLoggedIn) {
+            if (!this.data.isWXRefreshing) {
+                var self = this;
+                console.log(this.data.isRefreshing);
+                this.setData({
+                    isRefreshing: true
+                });
+                this.getOpenList();
+            }
         } else {
-          console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+            wx.showToast({
+                title: '璇峰厛鐧诲綍',
+                icon: 'error'
+            })
         }
-        
+
+
+    },
+
+
+
+    /**
+     * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+     */
+    onLoad(options) {
+        console.log('home椤甸潰onLoad寮�濮嬶紝鍙傛暟:', options);
+        //褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
+        if (options.param === "1" || options.param === "2") {
+            this.setData({
+                options: options
+            })
+        }
+        // 妫�鏌ユ槸鍚︿粠鐧诲綍椤甸潰杩斿洖
+        let fromLogin = false;
+
+        // 妫�鏌RL鍙傛暟
+        if (options && options.fromLogin === 'true') {
+            console.log('妫�娴嬪埌URL鍙傛暟fromLogin=true');
+            fromLogin = true;
+        }
+
+        console.log('home椤甸潰鍔犺浇锛宖romLogin:', fromLogin, '鍙傛暟:', options);
+
+        // 璁剧疆fromLogin鏍囧織
+        if (fromLogin) {
+            console.log('璁剧疆isFromLogin=true');
+            this.setData({
+                isFromLogin: true
+            });
+        }
+
+        // 寤惰繜鎵ц鍓╀綑鐨勫垵濮嬪寲杩囩▼锛屼互纭繚涓存椂鏍囪鍜孶RL鍙傛暟鑳借姝g‘澶勭悊
+        setTimeout(() => {
+            this.initializePage(options, fromLogin);
+        }, 100);
+    },
+
+    // 鏂板鐨勫垵濮嬪寲椤甸潰杈呭姪鍑芥暟锛屽垎绂诲嚭onLoad涓殑閫昏緫浠ヤ究寤惰繜鎵ц
+    initializePage(options, fromLogin) {
+        // 妫�鏌ユ槸鍚﹀凡閫夋嫨椤圭洰
+        const {
+            PROJECT_URLS
+        } = require('../../api/config.js');
+
+        // 纭繚鍏ㄥ眬鍙橀噺瀛樺湪
+        getApp().globalData = getApp().globalData || {};
+
+        storage.getItemSafe('selectedProject')
+            .then((project) => {
+                if (project) {
+                    this.setData({
+                        selectedProject: project
+                    });
+
+                    // 璁剧疆 baseUrl
+                    const baseUrl = PROJECT_URLS[project];
+                    getApp().globalData.baseUrl = baseUrl;
+                    getApp().globalData.selectedProject = project;
+
+                    // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag
+                    const projectConfig = PROJECT_CONFIG[project];
+                    if (projectConfig) {
+                        getApp().globalData.tag = projectConfig.tag;
+                        this.setData({
+                            userName: projectConfig.displayName
+                        });
+                    }
+
+                    // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨刼perator鍜宑lientId
+                    if (projectConfig && projectConfig.operatorId) {
+                        getApp().globalData.operator = projectConfig.operatorId;
+                        getApp().globalData.clientId = projectConfig.operatorId;
+                        getApp().globalData.isLoggedIn = true;
+                        getApp().globalData.sessionId = projectConfig.operatorId;
+
+                        // 濡傛灉鏈塿cId锛屼篃璁剧疆
+                        if (projectConfig.vcId) {
+                            getApp().globalData.vcId = projectConfig.vcId;
+                        }
+
+                        // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
+                        const params = {
+                            operator: projectConfig.operatorId,
+                            clientId: projectConfig.operatorId,
+                            isLoggedIn: true,
+                            sessionId: projectConfig.operatorId
+                        };
+
+                        if (projectConfig.vcId) {
+                            params.vcId = projectConfig.vcId;
+                        }
+
+                        storage.setItem(`${project}_params`, params);
+                    }
+
+                    // 缁х画鍒濆鍖栭〉闈�
+                    this.continueInitPage(options);
+                } else {
+                    // 棣栨杩涘叆锛屾樉绀洪」鐩�夋嫨寮圭獥
+                    this.setData({
+                        showProjectDialog: true
+                    });
+                    return Promise.reject({
+                        type: 'project_not_selected',
+                        message: '鏈�夋嫨椤圭洰'
+                    }); // 缁堟鍚庣画澶勭悊
+                }
+            })
+            .then(() => {
+                // 缁х画鍒濆鍖栭〉闈�
+                this.continueInitPage(options);
+            })
+            .catch(err => {
+                // 灏嗛敊璇璞¤鑼冨寲
+                const error = typeof err === 'object' ? err : {
+                    type: 'unknown',
+                    message: String(err)
+                };
+                console.log('鑾峰彇瀛樺偍鏁版嵁涓柇:', error.message);
+
+                // 濡傛灉鏄粠鐧诲綍椤佃繑鍥炴垨宸茬櫥褰曪紝涓嶅啀璺宠浆
+                if (fromLogin) {
+                    console.log('浠庣櫥褰曢〉杩斿洖鎴栧凡鐧诲綍锛岀户缁垵濮嬪寲椤甸潰');
+                    this.continueInitPage(options);
+                    return;
+                }
+
+                // 澶勭悊鏈�夋嫨椤圭洰鐨勬儏鍐�
+                if (error.type === 'project_not_selected') {
+                    console.log('鏈�夋嫨椤圭洰锛屾樉绀洪」鐩�夋嫨寮圭獥');
+                    this.setData({
+                        showProjectDialog: true
+                    });
+                    return;
+                }
+
+                // 鍏朵粬鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰
+                console.warn('鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰:', error);
+                this.continueInitPage(options);
+            });
+    },
+
+    /**
+     * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+     */
+    onReady() {
+        // 妫�鏌ユ槸鍚︽湁options鍜宲aram
+        if (this.data.options && this.data.options.param) {
+            if (this.data.options.param === "1" || this.data.options.param === "2") {
+                this.getOpenList();
+            }
+        }
+    },
+
+    /**
+     * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+     */
+    onShow() {
+        console.log('home椤甸潰onShow寮�濮�');
+
+        // 鑾峰彇褰撳墠椤甸潰鐨勫弬鏁�
+        const pages = getCurrentPages();
+        const currentPage = pages[pages.length - 1];
+
+        let fromLogin = false;
+
+        // 妫�鏌ユ槸鍚︽湁fromLogin鍙傛暟
+        if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
+            console.log('onShow: 妫�娴嬪埌fromLogin鍙傛暟锛岃缃甶sFromLogin鏍囪');
+            fromLogin = true;
+            this.setData({
+                isFromLogin: true
+            });
+        }
+
+        // 鍒濆鍖栧鐞�
+        if (fromLogin || this.data.isFromLogin) {
+            console.log('onShow: 浠庣櫥褰曢〉杩斿洖锛屼笉杩涜鐧诲綍妫�鏌�');
+        } else {
+            console.log('onShow: 姝e父鏄剧ず椤甸潰');
+            // 寤惰繜妫�鏌ョ櫥褰曠姸鎬侊紝纭繚鑳芥纭瘑鍒复鏃舵爣璁�
+            setTimeout(() => {
+                this.checkLoginStatusIfNeeded();
+            }, 300);
+        }
+    },
+
+    // 妫�鏌ョ櫥褰曠姸鎬侊紙浠呭湪闇�瑕佹椂锛�
+    checkLoginStatusIfNeeded() {
+        // 鍐嶆纭鏄惁浠庣櫥褰曢〉杩斿洖
+        if (this.getFromLogin()) {
+            console.log('妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶈繘琛岀櫥褰曟鏌�');
+            return;
+        }
+
+        console.log('鎵ц鐧诲綍鐘舵�佹鏌�');
+        this.checkLoginStatus();
+    },
+
+    /**
+     * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+     */
+    onHide() {
+        // 椤甸潰闅愯棌鏃惰�冭檻娓呯悊涓存椂鏍囪
+        this.cleanupTempMarkers();
+    },
+
+    /**
+     * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+     */
+    onUnload() {
+        // 椤甸潰鍗歌浇鏃舵竻鐞嗕复鏃舵爣璁�
+        this.cleanupTempMarkers();
+    },
+
+    /**
+     * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+     */
+    onPullDownRefresh() {
+        // 涓嬫媺鍒锋柊瑙﹀彂鐨勯�昏緫锛屽彲浠ユ槸璇锋眰鏁版嵁绛夋搷浣�
+        // 渚嬪锛岃姹傛暟鎹悗鏇存柊椤甸潰鍐呭
+        console.log(this.data.isRefreshing);
+        this.setData({
+            isWXRefreshing: true
+        });
+        console.log(this.data.isRefreshing);
+        // 鏁版嵁璇锋眰瀹屾垚鍚庯紝鍋滄涓嬫媺鍒锋柊鐨勫姩鐢�
         this.getOpenList();
-        return;
-      }
+    },
 
-      // 妫�鏌ユ槸鍚︽湁瀛樺偍鐨剈serData
-      const hasUserData = storage.isHasKeySync("userData");
-      console.log('initData: 鏄惁瀛樺湪userData:', hasUserData);
+    /**
+     * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+     */
+    onReachBottom() {
 
-      if (hasUserData) {
-        storage.getItemSafe('userData')
-          .then((data) => {
-            console.log('initData: 鎴愬姛璇诲彇userData');
-            if (data) {
-              try {
-                let jsonObj = JSON.parse(data);
-                app.globalData.sessionId = jsonObj.sessionId;
-                app.globalData.tag = jsonObj.tag;
-                console.log("userData宸插姞杞�:", data);
-              } catch (e) {
-                console.error('userData瑙f瀽澶辫触:', e);
-              }
-            }
-            
-            // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
-            if (needLogin) {
-              console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
-              this.getUserDataBySession();
-            } else {
-              console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
-            }
-            
+    },
+
+    /**
+     * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+     */
+    onShareAppMessage() {
+
+    },
+    recharge() {
+        // wx.navigateTo({
+        //   url: '/pages/rechargeCard/rechargeCard',
+        // })
+        wx.showToast({
+            title: '鏆傛湭寮�鏀�',
+            icon: 'none'
+        })
+    },
+    openValveList() {
+        // wx.navigateTo({
+        //   url: '/pages/valveList/valveList',
+        // })
+        wx.showToast({
+            title: '鏆傛湭寮�鏀�',
+            icon: 'none'
+        })
+    },
+    feedBack() {
+        wx.showToast({
+            title: '鏆傛湭寮�鏀�',
+            icon: 'none'
+        })
+    },
+    //瑙g粦鐢ㄦ埛
+    unbind() {
+        // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+        const currentProject = getApp().globalData.selectedProject;
+        const projectConfig = PROJECT_CONFIG[currentProject];
+
+        // 濡傛灉褰撳墠椤圭洰閰嶇疆涓轰笉闇�瑕佺櫥褰曪紝鍒欐彁绀虹敤鎴蜂笉鍙В缁�
+        if (projectConfig && !projectConfig.needLogin) {
+            wx.showToast({
+                title: '褰撳墠鐢ㄦ埛涓嶅彲瑙g粦',
+                icon: 'none',
+                duration: 2000
+            });
+            return;
+        }
+
+        if (getApp().globalData.isLoggedIn) {
+            wx.showModal({
+                title: '瑙g粦纭',
+                content: '纭畾瑕佽В缁戝綋鍓嶈处鍙峰悧锛�',
+                success: (res) => {
+                    if (res.confirm) {
+                        this.unBindPost()
+                    }
+                }
+            });
+        } else {
+            wx.showToast({
+                title: '杩樻湭缁戝畾',
+                icon: 'error'
+            })
+        }
+    },
+    //杞亴
+    irrigation() {
+        if (getApp().globalData.isLoggedIn) {
+            wx.navigateTo({
+                url: '/pages/irrigation/irrigation',
+            })
+        } else {
+            wx.showToast({
+                title: '璇峰厛鐧诲綍',
+                icon: 'error'
+            })
+        }
+    },
+    handleChange(e) {
+        const item = e.currentTarget.dataset.item;
+        console.log(item);
+        this.setData({
+            showConfirm: true,
+            waterIntakeName: item.intakeNum,
+            myItem: item
+        });
+    },
+    closeDialog() {
+        console.log("closeDialog");
+        this.setData({
+            showConfirm: false,
+            showErrorDialog: false,
+            showForceConfirm: false
+        });
+    },
+    cancelDialog() {
+        this.setData({
+            showForceConfirm: false,
+            showConfirm: false
+        });
+    },
+    /**
+     * 鍏抽棴闃�闂�
+     * @param {*} orderNo 璁㈠崟鍙�
+     * @param {*} rtuAddr 闃�鎺у櫒鍦板潃
+     * @param {*} vcNum 铏氭嫙鍗$紪鍙�
+     */
+    postCloseValaue(orderNo, rtuAddr, vcNum) {
+        wx.showLoading({
+            title: '姝e湪鍏抽榾璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+            mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+        });
+        const app = getApp();
+        const data = {
+            rtuAddr: rtuAddr,
+            vcNum: vcNum, //铏氭嫙鍗D
+            orderNo: orderNo,
+            operator: app.globalData.clientId //鎿嶄綔鍛�
+        };
+        console.log("postCloseValaue" + data);
+        post({
+            url: "wx/valve/close_wx",
+            data: data,
+            isShowLoding: false,
+            timeout: 185000
+        }).then(response => {
+
+            // 澶勭悊鎴愬姛鍝嶅簲
+            console.log('璇锋眰鎴愬姛:', response);
+            // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+            wx.hideLoading();
             this.getOpenList();
-          })
-          .catch((err) => {
-            console.error('鍔犺浇userData澶辫触:', err);
+            wx.showToast({
+                title: '鍏抽榾鎴愬姛',
+                icon: 'success',
+                duration: 3000
+            })
+        }).catch(error => {
+            wx.hideLoading();
+            // 澶勭悊閿欒鍝嶅簲
+            console.error('璇锋眰澶辫触:', error);
+            if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+                // 澶勭悊瓒呮椂閿欒
+                this.setData({
+                    showErrorDialog: true,
+                    errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+                    errorDialogTitle: "鍏抽榾閿欒"
+                })
+            } else {
+                this.setData({
+                    showErrorDialog: true,
+                    errorData: error.msg,
+                    errorDialogTitle: "鍏抽榾閿欒"
+                })
+            }
+        });
+    },
+    /**
+     * 鑾峰彇涓哄叧闃�璁板綍
+     */
+    getOpenList() {
+        const app = getApp();
+        if (!getApp().globalData.isLoggedIn) {
+            wx.showToast({
+                title: '璇峰厛鐧诲綍',
+                icon: 'error'
+            })
+            this.setData({
+                isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+                isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+            });
+            return;
+        }
+        // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+        const fromLogin = this.getFromLogin();
+
+        // 妫�鏌lientId鏄惁瀛樺湪
+        if (!app.globalData.clientId) {
+            console.log('getOpenList: clientId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
+
+            // 濡傛灉鏄粠鐧诲綍椤佃繑鍥烇紝灏辨樉绀虹┖鍒楄〃鑰屼笉鏄敊璇彁绀�
+            this.setData({
+                listData: [],
+                isRefreshing: false,
+                isWXRefreshing: false
+            });
+
+            // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖涓斾笉澶勪簬鍒锋柊鐘舵�侊紝鑰冭檻妫�鏌ョ櫥褰曠姸鎬�
+            if (!fromLogin && !this.data.isRefreshing && !this.data.isWXRefreshing) {
+                console.log('getOpenList: 闈炲埛鏂扮姸鎬佷笅妫�娴嬪埌鏃燾lientId锛屽皾璇曡嚜鍔ㄧ櫥褰�');
+                // 寤惰繜璋冪敤寰俊鐧诲綍锛屽皾璇曡嚜鍔ㄦ仮澶嶄細璇�
+                setTimeout(() => {
+                    if (!getApp().globalData.clientId && !this.getFromLogin()) {
+                        this.wxLogin();
+                    }
+                }, 1000);
+            }
+            return;
+        }
+
+        console.log('getOpenList: 寮�濮嬭幏鍙栧垪琛ㄦ暟鎹�, clientId:', app.globalData.clientId);
+
+        const params = {
+            url: 'wx/valve/get',
+            data: {
+                operator: app.globalData.clientId
+            }
+        };
+
+        get(params).then(data => {
+            console.log('鑾峰彇鍒楄〃鏁版嵁鎴愬姛:', data);
+            this.setData({
+                listData: data.content,
+                isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+                isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+            });
+
+            // 鎴愬姛鑾峰彇鏁版嵁鍚庡埛鏂癠I楂樺害
+            setTimeout(() => {
+                this.calculateScrollViewHeight();
+            }, 200);
+        }).catch(err => {
+            console.error('鑾峰彇鍒楄〃鏁版嵁澶辫触:', err);
+            // 閿欒鍥炶皟
+            this.setData({
+                isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+                isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+            });
+
+            // 妫�鏌ラ敊璇被鍨�
+            if (err && err.code === '0003') {
+                console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
+
+                // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
+                if (!fromLogin) {
+                    wx.showToast({
+                        title: '鐧诲綍宸茶繃鏈燂紝璇峰埛鏂伴噸璇�',
+                        icon: 'none',
+                        duration: 3000
+                    });
+                }
+            } else {
+                // 涓�鑸敊璇紝鏄剧ず閿欒淇℃伅
+                wx.showToast({
+                    title: err.msg || '鑾峰彇鍒楄〃鏁版嵁澶辫触',
+                    icon: 'none',
+                    duration: 3000
+                });
+            }
+        });
+    },
+    /**
+     * 纭鍏抽棴鍥炶皟
+     * @param {} item 
+     */
+    confirmDialog() {
+        this.setData({
+            showConfirm: false
+        });
+        this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
+    },
+    //鏍规嵁session鑾峰彇鍐滄埛淇℃伅
+    getUserDataBySession() {
+        // 鍏堟鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+        if (this.getFromLogin()) {
+            console.log('getUserDataBySession: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶆墽琛孉PI璇锋眰');
+            return;
+        }
+
+        const app = getApp();
+
+        // 妫�鏌ユ槸鍚︽湁sessionId
+        if (!app.globalData.sessionId) {
+            console.log('getUserDataBySession: sessionId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
+            return;
+        }
+
+        console.log('getUserDataBySession: 寮�濮嬭幏鍙栫敤鎴锋暟鎹�, sessionId:', app.globalData.sessionId);
+
+        const params = {
+            url: 'wx/client/simple_info',
+            data: {
+                sessionId: app.globalData.sessionId
+            }
+        };
+
+        get(params).then(data => {
+            console.log('鑾峰彇鐢ㄦ埛鏁版嵁鎴愬姛:', data);
+            this.setData({
+                userName: data.content.clientName,
+                userPhone: this.maskPhoneNumber(data.content.phone)
+            });
+        }).catch(err => {
+            console.error('鑾峰彇鐢ㄦ埛鏁版嵁澶辫触:', err);
+            // 閿欒鍥炶皟锛屼絾涓嶈繘琛岄〉闈㈣烦杞�
+
+            // 妫�鏌ラ敊璇被鍨�
+            if (err && err.code === '0003') {
+                console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
+                // 涓嶅啀鐩存帴璺宠浆鍒扮櫥褰曢〉
+
+                // 娓呴櫎浼氳瘽淇℃伅
+                app.globalData.sessionId = '';
+                app.globalData.isLoggedIn = false;
+
+                // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
+                if (!this.getFromLogin()) {
+                    wx.showToast({
+                        title: '鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�',
+                        icon: 'none',
+                        duration: 3000
+                    });
+                }
+            } else {
+                // 鍏朵粬閿欒锛屾樉绀洪敊璇俊鎭�
+                wx.showToast({
+                    title: err.msg || '鑾峰彇鐢ㄦ埛淇℃伅澶辫触',
+                    icon: 'none',
+                    duration: 3000
+                });
+            }
+        });
+    },
+    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;
+    },
+
+    closeDialog() {
+        this.setData({
+            showErrorDialog: false
+        })
+    },
+    /**
+     * 鎵爜寮�闃�
+     */
+    scenCode() {
+        const that = this;
+        wx.scanCode({
+            success(res) {
+                console.log(res.result); // 褰撲笖浠呭綋鎵爜涓洪潪寰俊浜岀淮鐮佹椂锛屼細杩斿洖result  
+                if (res.result.startsWith("content://")) {
+                    let jsonStr = res.result.replace("content://", "")
+                    try {
+
+                        that.saveData(jsonStr)
+                    } catch (error) {
+                        console.error('Error parsing JSON:', error);
+                    }
+
+                } else {
+                    that.postOppenValva(res.result)
+                }
+
+            },
+            fail(err) {
+                console.error(err);
+            }
+        })
+    },
+    confirmForceDialog() {
+        console.log("confirmForceDialog");
+        this.setData({
+            showForceConfirm: false
+        })
+        this.postOppenValva(this.data.lastIntakeName, true)
+    },
+    /**
+     * 
+     * @param {*} intakeName 
+     */
+    postOppenValva(intakeName, isforce) {
+        const that = this;
+        wx.showLoading({
+            title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+            mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+        });
+        const app = getApp();
+        that.setData({
+            lastIntakeName: intakeName
+        })
+        const data = {
+            intakeName: intakeName, //鍙栨按鍙D
+            // vcId: vcId, //铏氭嫙鍗D
+            operator: app.globalData.clientId, //鎿嶄綔鍛�
+            forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿��  
+        };
+        post({
+            url: "wx/valve/open_wx",
+            data: data,
+            timeout: 180000
+        }).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 === "10005") {
+                that.setData({
+                    showForceConfirm: true
+                })
+            } else {
+                that.setData({
+                    showErrorDialog: true,
+                    errorData: error.msg,
+                    errorDialogTitle: "寮�闃�閿欒"
+                })
+            }
+        });
+    },
+    /**
+     * 鎵弿鍚庝繚瀛樼敤鎴穒d鍜宼ag
+     */
+    saveData(userData) {
+        storage.setItem("userData", userData).then(() => {
+            this.initData();
+        }).catch((error) => { });
+
+    },
+    //杩涘叆鐣岄潰鑾峰彇鐣岄潰鏁版嵁
+    initData() {
+        const app = getApp();
+        console.log("initData寮�濮嬶紝tag:", app.globalData.tag);
+
+        // 棣栧厛妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+        if (this.getFromLogin()) {
+            console.log('initData: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝浠呰幏鍙栧熀鏈暟鎹�');
+
+            // 鍗充娇浠庣櫥褰曢〉杩斿洖锛屼篃灏濊瘯鑾峰彇寮�闃�鍒楄〃浠ユ樉绀哄熀鏈琔I
+            // 浣嗗厛妫�鏌ユ槸鍚︽湁瀹㈡埛绔疘D鍙敤
+            if (!app.globalData.clientId) {
+                console.log('initData: 浠庣櫥褰曢〉杩斿洖涓旀棤clientId锛屽皾璇曚粠瀛樺偍鎭㈠');
+                // 灏濊瘯浠庡瓨鍌ㄦ仮澶峜lientId
+                storage.getItemSafe('clientId')
+                    .then(clientId => {
+                        if (clientId) {
+                            console.log('initData: 浠庡瓨鍌ㄦ仮澶峜lientId鎴愬姛:', clientId);
+                            app.globalData.clientId = clientId;
+                            this.getOpenList();
+                        } else {
+                            console.log('initData: 鏃犳硶鎭㈠clientId锛屾樉绀虹┖鍒楄〃');
+                            this.setData({
+                                listData: []
+                            });
+                        }
+                    })
+                    .catch(err => {
+                        console.error('initData: 鎭㈠clientId澶辫触:', err);
+                        this.setData({
+                            listData: []
+                        });
+                    });
+            } else {
+                this.getOpenList();
+            }
+            return;
+        }
+
+        // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+        const currentProject = app.globalData.selectedProject;
+        const projectConfig = PROJECT_CONFIG[currentProject];
+        const needLogin = projectConfig && projectConfig.needLogin;
+
+        // 灏濊瘯鑾峰彇鐢ㄦ埛鏁版嵁鍜屽凡寮�闃�璁板綍
+        try {
+            // 浼樺厛妫�鏌ュ叏灞�鍙橀噺涓槸鍚︽湁sessionId
+            if (app.globalData.sessionId) {
+                console.log('initData: 浣跨敤鍏ㄥ眬sessionId鑾峰彇鏁版嵁');
+
+                // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+                if (needLogin) {
+                    console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+                    this.getUserDataBySession();
+                } else {
+                    console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+                }
+
+                this.getOpenList();
+                return;
+            }
+
+            // 妫�鏌ユ槸鍚︽湁瀛樺偍鐨剈serData
+            const hasUserData = storage.isHasKeySync("userData");
+            console.log('initData: 鏄惁瀛樺湪userData:', hasUserData);
+
+            if (hasUserData) {
+                storage.getItemSafe('userData')
+                    .then((data) => {
+                        console.log('initData: 鎴愬姛璇诲彇userData');
+                        if (data) {
+                            try {
+                                let jsonObj = JSON.parse(data);
+                                app.globalData.sessionId = jsonObj.sessionId;
+                                app.globalData.tag = jsonObj.tag;
+                                console.log("userData宸插姞杞�:", data);
+                            } catch (e) {
+                                console.error('userData瑙f瀽澶辫触:', e);
+                            }
+                        }
+
+                        // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+                        if (needLogin) {
+                            console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+                            this.getUserDataBySession();
+                        } else {
+                            console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+                        }
+
+                        this.getOpenList();
+                    })
+                    .catch((err) => {
+                        console.error('鍔犺浇userData澶辫触:', err);
+
+                        // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+                        if (this.getFromLogin()) {
+                            console.log('initData:catch: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+                            this.getOpenList();
+                        } else {
+                            // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+                            if (needLogin) {
+                                console.log('initData:catch: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+                                this.getUserDataBySession();
+                            } else {
+                                console.log('initData:catch: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+                            }
+
+                            this.getOpenList();
+                        }
+                    });
+            } else {
+                console.log('鏈壘鍒皍serData锛岀洿鎺ヨ幏鍙栨暟鎹�');
+
+                // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+                if (this.getFromLogin()) {
+                    console.log('initData:else: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+                    this.getOpenList();
+                } else {
+                    // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+                    if (needLogin) {
+                        console.log('initData:else: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+                        this.getUserDataBySession();
+                    } else {
+                        console.log('initData:else: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+                    }
+
+                    this.getOpenList();
+                }
+            }
+        } catch (e) {
+            console.error('initData鎵ц鍑洪敊:', e);
 
             // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
             if (this.getFromLogin()) {
-              console.log('initData:catch: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
-              this.getOpenList();
+                console.log('initData:error: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+                this.getOpenList();
             } else {
-              // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
-              if (needLogin) {
-                console.log('initData:catch: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
-                this.getUserDataBySession();
-              } else {
-                console.log('initData:catch: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
-              }
-              
-              this.getOpenList();
+                // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+                if (needLogin) {
+                    console.log('initData:error: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+                    this.getUserDataBySession();
+                } else {
+                    console.log('initData:error: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+                }
+
+                this.getOpenList();
             }
-          });
-      } else {
-        console.log('鏈壘鍒皍serData锛岀洿鎺ヨ幏鍙栨暟鎹�');
-
-        // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-        if (this.getFromLogin()) {
-          console.log('initData:else: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
-          this.getOpenList();
-        } else {
-          // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
-          if (needLogin) {
-            console.log('initData:else: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
-            this.getUserDataBySession();
-          } else {
-            console.log('initData:else: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
-          }
-          
-          this.getOpenList();
         }
-      }
-    } catch (e) {
-      console.error('initData鎵ц鍑洪敊:', e);
-
-      // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-      if (this.getFromLogin()) {
-        console.log('initData:error: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
-        this.getOpenList();
-      } else {
-        // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
-        if (needLogin) {
-          console.log('initData:error: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
-          this.getUserDataBySession();
-        } else {
-          console.log('initData:error: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
-        }
-        
-        this.getOpenList();
-      }
-    }
-  },
-  // 澶勭悊澶村儚鐐瑰嚮
-  handleAvatarTap() {
-    this.setData({
-      avatarTapCount: this.data.avatarTapCount + 1
-    });
-
-    if (this.data.avatarTapCount >= 5) {
-      this.setData({
-        showProjectDialog: true,
-        avatarTapCount: 0
-      });
-    }
-  },
-
-  // 澶勭悊寮圭獥鍙鎬у彉鍖�
-  onVisibleChange(e) {
-    // 濡傛灉灏濊瘯鍏抽棴寮圭獥涓旀病鏈夐�夋嫨椤圭洰锛屽垯闃绘鍏抽棴
-    if (!e.detail.visible && !this.data.selectedProject) {
-      return;
-    }
-    this.setData({
-      showProjectDialog: e.detail.visible
-    });
-  },
-
-  // 澶勭悊椤圭洰閫夋嫨鍙樺寲
-  onProjectChange(event) {
-    console.log('閫夋嫨鐨勯」鐩細', event.detail.value);
-    this.setData({
-      selectedProject: event.detail.value
-    });
-  },
-
-  // 澶勭悊椤圭洰閫夋嫨纭
-  handleProjectConfirm() {
-    if (!this.data.selectedProject) {
-      wx.showToast({
-        title: '璇烽�夋嫨椤圭洰',
-        icon: 'none'
-      });
-      return;
-    }
-
-    // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩�
-    const currentProject = getApp().globalData.selectedProject;
-    const newProject = this.data.selectedProject;
-    const projectConfig = PROJECT_CONFIG[newProject];
-    
-    if (!projectConfig) {
-      wx.showToast({
-        title: '椤圭洰閰嶇疆閿欒',
-        icon: 'none'
-      });
-      return;
-    }
-
-    // 妫�鏌ユ槸鍚﹀垏鎹簡椤圭洰锛堝鏋滃綋鍓嶉」鐩笉鍚屼簬鏂伴�夋嫨鐨勯」鐩級
-    const isProjectChanged = currentProject && currentProject !== newProject;
-
-    // 濡傛灉鍒囨崲浜嗛」鐩紝鍏堟竻闄ょ櫥褰曠姸鎬�
-    if (isProjectChanged) {
-      console.log(`姝e湪浠庨」鐩� ${currentProject} 鍒囨崲鍒� ${newProject}锛屽皢娓呴櫎鐧诲綍鐘舵�乣);
-
-      // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
-      getApp().globalData.sessionId = '';
-      getApp().globalData.clientId = '';
-      getApp().globalData.isLoggedIn = false;
-      getApp().globalData.userInfo = null;
-
-      // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
-      try {
-        wx.removeStorageSync('sessionId');
-        wx.removeStorageSync('clientId');
-        wx.removeStorageSync('userData');
-        wx.removeStorageSync('isLoggedIn');
-        console.log('宸叉竻闄ょ櫥褰曠浉鍏崇殑瀛樺偍鏁版嵁');
-      } catch (e) {
-        console.error('娓呴櫎瀛樺偍鏁版嵁澶辫触:', e);
-      }
-
-      // 閲嶇疆UI鏄剧ず鐘舵��
-      this.setData({
-        userName: "璇风櫥褰�",
-        userPhone: "",
-        listData: []
-      });
-    }
-
-    // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌�
-    storage.setItem('selectedProject', newProject).then(() => {
-      // 鏇存柊 BASEURL
-      const baseUrl = PROJECT_URLS[newProject];
-
-      // 鏇存柊鍏ㄥ眬鍙橀噺
-      getApp().globalData = getApp().globalData || {};
-      getApp().globalData.baseUrl = baseUrl;
-      getApp().globalData.selectedProject = newProject;
-
-      // 閫氳繃閰嶇疆瀵硅薄缁熶竴璁剧疆椤圭洰鍙傛暟
-      getApp().globalData.tag = projectConfig.tag;
-      
-      // 璁剧疆鐢ㄦ埛鐣岄潰鏄剧ず鐨勯」鐩悕绉�
-      this.setData({
-        userName: projectConfig.displayName
-      });
-      
-      // 瀵逛簬涓嶉渶瑕佺櫥褰曠殑椤圭洰锛岀洿鎺ヨ缃畂perator鍜宑lientId
-      if (!projectConfig.needLogin && projectConfig.operatorId) {
-        const operatorId = projectConfig.operatorId;
-        getApp().globalData.operator = operatorId;
-        getApp().globalData.clientId = operatorId;
-        getApp().globalData.isLoggedIn = true;
-        getApp().globalData.sessionId = operatorId;
-        
-        // 濡傛灉鏈塿cId锛屼篃璁剧疆
-        if (projectConfig.vcId) {
-          getApp().globalData.vcId = projectConfig.vcId;
-        }
-        
-        // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
-        const params = {
-          operator: operatorId,
-          clientId: operatorId,
-          isLoggedIn: true,
-          sessionId: operatorId
-        };
-        
-        if (projectConfig.vcId) {
-          params.vcId = projectConfig.vcId;
-        }
-        
-        storage.setItem(`${newProject}_params`, params);
-      }
-
-      console.log('宸插垏鎹㈠埌椤圭洰:', projectConfig.displayName, '鍩熷悕:', baseUrl, 'tag:', getApp().globalData.tag);
-
-      this.setData({
-        showProjectDialog: false
-      });
-
-      // 鏄剧ず鍒囨崲鎴愬姛鎻愮ず
-      wx.showToast({
-        title: `宸查�夋嫨${projectConfig.displayName}`,
-        icon: 'success',
-        duration: 2000
-      });
-      setTimeout(() => {
-        console.log('椤圭洰宸插垏鎹紝姝e湪鍒濆鍖栨暟鎹�');
-        this.initData();
-      }, 1000);
-
-    }).catch(err => {
-      console.error('淇濆瓨椤圭洰閫夋嫨澶辫触锛�', err);
-      wx.showToast({
-        title: '淇濆瓨澶辫触锛岃閲嶈瘯',
-        icon: 'none',
-        duration: 2000
-      });
-    });
-  },
-
-  // 妫�鏌ョ櫥褰曠姸鎬�
-  checkLoginStatus() {
-    const app = getApp();
-
-    // 妫�鏌ユ槸鍚﹀凡鐧诲綍
-    if (app.globalData.isLoggedIn && app.globalData.sessionId) {
-      console.log('宸蹭粠鍏ㄥ眬鍙橀噺妫�娴嬪埌鐧诲綍鐘舵��');
-      return;
-    }
-
-    // 妫�鏌ユ湰椤甸潰鏄惁姝e湪澶勭悊杩斿洖閫昏緫
-    const fromLogin = this.getFromLogin();
-    if (fromLogin) {
-      console.log('浠庣櫥褰曢〉杩斿洖锛屼笉鍐嶉噸瀹氬悜');
-      return;
-    }
-
-    // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
-    const currentProject = app.globalData.selectedProject;
-    if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
-      console.log('褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
-      return;
-    }
-
-    // 鑾峰彇褰撳墠椤甸潰璺敱鍜屽弬鏁�
-    const pages = getCurrentPages();
-    const currentPage = pages[pages.length - 1];
-    const currentRoute = currentPage ? currentPage.route : '';
-    const currentOptions = currentPage ? currentPage.options || {} : {};
-
-    console.log('褰撳墠椤甸潰璺敱:', currentRoute, '鍙傛暟:', currentOptions);
-
-    // 妫�鏌RL鍙傛暟涓槸鍚︽湁fromLogin
-    if (currentOptions.fromLogin === 'true') {
-      console.log('URL鍙傛暟涓娴嬪埌fromLogin=true锛屼笉鎵ц璺宠浆');
-      this.setData({
-        isFromLogin: true
-      });
-      return;
-    }
-
-    // 濡傛灉褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆
-    if (currentRoute === 'pages/login/login') {
-      console.log('褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆');
-      return;
-    }
-
-    // Promise閾惧鐞嗗瓨鍌ㄦ鏌�
-    Promise.all([
-        storage.getItemSafe('sessionId'),
-        storage.getItemSafe('clientId'),
-        storage.getItemSafe('isLoggedIn')
-      ])
-      .then(([sessionId, clientId, isLoggedIn]) => {
-        if (sessionId) {
-          // 浠庡瓨鍌ㄤ腑鎭㈠鐧诲綍鐘舵��
-          app.globalData.sessionId = sessionId;
-          app.globalData.isLoggedIn = true;
-
-          if (clientId) {
-            app.globalData.clientId = clientId;
-          }
-
-          console.log('宸蹭粠瀛樺偍鎭㈠鐧诲綍鐘舵��');
-          // 宸茬櫥褰曪紝鍒锋柊椤甸潰
-          wx.reLaunch({
-            url: '/pages/home/home'
-          });
-        } else {
-          // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
-          this.setData({
-            isFromLogin: true
-          });
-
-          // 鏈櫥褰曪紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤甸潰
-          console.log('鏈娴嬪埌鐧诲綍鐘舵�侊紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤�');
-
-          // 鏈�鍚庡啀妫�鏌ヤ竴娆℃槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
-          const finalCheck = this.getFromLogin();
-          if (finalCheck) {
-            console.log('鏈�缁堟鏌�: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
-            return;
-          }
-
-          // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
-          if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
-            console.log('鏈�缁堟鏌�: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
-            return;
-          }
-
-          console.log('纭闇�瑕佽烦杞埌鐧诲綍椤�');
-
-          // 璺宠浆鍓嶅啀娆℃鏌ョ櫥褰曢〉闈复鏃舵爣璁�
-          try {
-            wx.setStorageSync('_attempted_login_redirect', 'true');
-          } catch (e) {}
-
-          // wx.navigateTo({
-          //   url: `/pages/login/login?project=${this.data.selectedProject}`,
-          //   success: () => console.log('鎴愬姛璺宠浆鍒扮櫥褰曢〉'),
-          //   fail: (err) => console.error('璺宠浆鍒扮櫥褰曢〉澶辫触:', err)
-          // });
-        }
-      })
-      .catch(err => {
-        console.error('妫�鏌ョ櫥褰曠姸鎬佹椂鍑洪敊:', err);
-
-        // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
+    },
+    // 澶勭悊澶村儚鐐瑰嚮
+    handleAvatarTap() {
         this.setData({
-          isFromLogin: true
+            avatarTapCount: this.data.avatarTapCount + 1
         });
 
-        // 鍐嶆妫�鏌ユ槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
-        if (this.getFromLogin()) {
-          console.log('閿欒澶勭悊: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
-          return;
+        if (this.data.avatarTapCount >= 5) {
+            this.setData({
+                showProjectDialog: true,
+                avatarTapCount: 0
+            });
+        }
+    },
+
+    // 澶勭悊寮圭獥鍙鎬у彉鍖�
+    onVisibleChange(e) {
+        // 濡傛灉灏濊瘯鍏抽棴寮圭獥涓旀病鏈夐�夋嫨椤圭洰锛屽垯闃绘鍏抽棴
+        if (!e.detail.visible && !this.data.selectedProject) {
+            return;
+        }
+        this.setData({
+            showProjectDialog: e.detail.visible
+        });
+    },
+
+    // 澶勭悊椤圭洰閫夋嫨鍙樺寲
+    onProjectChange(event) {
+        console.log('閫夋嫨鐨勯」鐩細', event.detail.value);
+        this.setData({
+            selectedProject: event.detail.value
+        });
+    },
+
+    // 澶勭悊椤圭洰閫夋嫨纭
+    handleProjectConfirm() {
+        if (!this.data.selectedProject) {
+            wx.showToast({
+                title: '璇烽�夋嫨椤圭洰',
+                icon: 'none'
+            });
+            return;
         }
 
-        // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+        // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩�
+        const currentProject = getApp().globalData.selectedProject;
+        const newProject = this.data.selectedProject;
+        const projectConfig = PROJECT_CONFIG[newProject];
+
+        if (!projectConfig) {
+            wx.showToast({
+                title: '椤圭洰閰嶇疆閿欒',
+                icon: 'none'
+            });
+            return;
+        }
+
+        // 妫�鏌ユ槸鍚﹀垏鎹簡椤圭洰锛堝鏋滃綋鍓嶉」鐩笉鍚屼簬鏂伴�夋嫨鐨勯」鐩級
+        const isProjectChanged = currentProject && currentProject !== newProject;
+
+        // 濡傛灉鍒囨崲浜嗛」鐩紝鍏堟竻闄ょ櫥褰曠姸鎬�
+        if (isProjectChanged) {
+            console.log(`姝e湪浠庨」鐩� ${currentProject} 鍒囨崲鍒� ${newProject}锛屽皢娓呴櫎鐧诲綍鐘舵�乣);
+
+            // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
+            getApp().globalData.sessionId = '';
+            getApp().globalData.clientId = '';
+            getApp().globalData.isLoggedIn = false;
+            getApp().globalData.userInfo = null;
+
+            // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
+            try {
+                wx.removeStorageSync('sessionId');
+                wx.removeStorageSync('clientId');
+                wx.removeStorageSync('userData');
+                wx.removeStorageSync('isLoggedIn');
+                console.log('宸叉竻闄ょ櫥褰曠浉鍏崇殑瀛樺偍鏁版嵁');
+            } catch (e) {
+                console.error('娓呴櫎瀛樺偍鏁版嵁澶辫触:', e);
+            }
+
+            // 閲嶇疆UI鏄剧ず鐘舵��
+            this.setData({
+                userName: "璇风櫥褰�",
+                userPhone: "",
+                listData: []
+            });
+        }
+
+        // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌�
+        storage.setItem('selectedProject', newProject).then(() => {
+            // 鏇存柊 BASEURL
+            const baseUrl = PROJECT_URLS[newProject];
+
+            // 鏇存柊鍏ㄥ眬鍙橀噺
+            getApp().globalData = getApp().globalData || {};
+            getApp().globalData.baseUrl = baseUrl;
+            getApp().globalData.selectedProject = newProject;
+
+            // 閫氳繃閰嶇疆瀵硅薄缁熶竴璁剧疆椤圭洰鍙傛暟
+            getApp().globalData.tag = projectConfig.tag;
+
+            // 璁剧疆鐢ㄦ埛鐣岄潰鏄剧ず鐨勯」鐩悕绉�
+            this.setData({
+                userName: projectConfig.displayName
+            });
+
+            // 瀵逛簬涓嶉渶瑕佺櫥褰曠殑椤圭洰锛岀洿鎺ヨ缃畂perator鍜宑lientId
+            if (!projectConfig.needLogin && projectConfig.operatorId) {
+                const operatorId = projectConfig.operatorId;
+                getApp().globalData.operator = operatorId;
+                getApp().globalData.clientId = operatorId;
+                getApp().globalData.isLoggedIn = true;
+                getApp().globalData.sessionId = operatorId;
+
+                // 濡傛灉鏈塿cId锛屼篃璁剧疆
+                if (projectConfig.vcId) {
+                    getApp().globalData.vcId = projectConfig.vcId;
+                }
+
+                // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
+                const params = {
+                    operator: operatorId,
+                    clientId: operatorId,
+                    isLoggedIn: true,
+                    sessionId: operatorId
+                };
+
+                if (projectConfig.vcId) {
+                    params.vcId = projectConfig.vcId;
+                }
+
+                storage.setItem(`${newProject}_params`, params);
+            }
+
+            console.log('宸插垏鎹㈠埌椤圭洰:', projectConfig.displayName, '鍩熷悕:', baseUrl, 'tag:', getApp().globalData.tag);
+
+            this.setData({
+                showProjectDialog: false
+            });
+
+            // 鏄剧ず鍒囨崲鎴愬姛鎻愮ず
+            wx.showToast({
+                title: `宸查�夋嫨${projectConfig.displayName}`,
+                icon: 'success',
+                duration: 2000
+            });
+            setTimeout(() => {
+                console.log('椤圭洰宸插垏鎹紝姝e湪鍒濆鍖栨暟鎹�');
+                this.initData();
+            }, 1000);
+
+        }).catch(err => {
+            console.error('淇濆瓨椤圭洰閫夋嫨澶辫触锛�', err);
+            wx.showToast({
+                title: '淇濆瓨澶辫触锛岃閲嶈瘯',
+                icon: 'none',
+                duration: 2000
+            });
+        });
+    },
+
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    checkLoginStatus() {
+        const app = getApp();
+
+        // 妫�鏌ユ槸鍚﹀凡鐧诲綍
+        if (app.globalData.isLoggedIn && app.globalData.sessionId) {
+            console.log('宸蹭粠鍏ㄥ眬鍙橀噺妫�娴嬪埌鐧诲綍鐘舵��');
+            return;
+        }
+
+        // 妫�鏌ユ湰椤甸潰鏄惁姝e湪澶勭悊杩斿洖閫昏緫
+        const fromLogin = this.getFromLogin();
+        if (fromLogin) {
+            console.log('浠庣櫥褰曢〉杩斿洖锛屼笉鍐嶉噸瀹氬悜');
+            return;
+        }
+
+        // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+        const currentProject = app.globalData.selectedProject;
         if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
-          console.log('閿欒澶勭悊: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
-          return;
+            console.log('褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+            return;
         }
 
-        // 鍑洪敊鏃朵篃璺宠浆鍒扮櫥褰曢〉
-        // wx.navigateTo({
-        //   url: `/pages/login/login?project=${this.data.selectedProject}`,
-        //   success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌鐧诲綍椤�'),
-        //   fail: (err) => console.error('閿欒鍚庤烦杞埌鐧诲綍椤靛け璐�:', err)
-        // });
-      });
-  },
+        // 鑾峰彇褰撳墠椤甸潰璺敱鍜屽弬鏁�
+        const pages = getCurrentPages();
+        const currentPage = pages[pages.length - 1];
+        const currentRoute = currentPage ? currentPage.route : '';
+        const currentOptions = currentPage ? currentPage.options || {} : {};
 
-  // 杈呭姪鍑芥暟锛氭鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-  getFromLogin() {
-    // 妫�鏌ュ綋鍓嶉〉闈㈢殑options
-    const pages = getCurrentPages();
-    const currentPage = pages[pages.length - 1];
-    if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
-      console.log('getFromLogin: 妫�娴嬪埌URL鍙傛暟fromLogin=true');
-      // 璁剧疆鏍囧織锛岀‘淇濅笅娆℃鏌ユ椂鑳借瘑鍒�
-      this.setData({
-        isFromLogin: true
-      });
-      return true;
-    }
-    console.log('getFromLogin: 鏈娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁�');
-    return false;
-  },
+        console.log('褰撳墠椤甸潰璺敱:', currentRoute, '鍙傛暟:', currentOptions);
 
-  // 缁х画鍒濆鍖栭〉闈�
-  continueInitPage(options) {
-    console.log('缁х画鍒濆鍖栭〉闈紝options:', options);
-
-    // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
-    let fromLogin = false;
-
-    // 浠嶶RL鍙傛暟涓鏌�
-    if (options && options.fromLogin === 'true') {
-      console.log('continueInitPage: 浠嶶RL鍙傛暟妫�娴嬪埌fromLogin=true');
-      fromLogin = true;
-      this.setData({
-        isFromLogin: true
-      });
-    }
-
-    // 浠庨〉闈㈡暟鎹腑妫�鏌�
-    if (this.data.isFromLogin) {
-      console.log('continueInitPage: 浠庨〉闈㈡暟鎹腑妫�娴嬪埌isFromLogin=true');
-      fromLogin = true;
-    }
-
-    // 鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
-    // 浣跨敤 wx.nextTick 绛夊緟椤甸潰娓叉煋瀹屾垚
-    wx.nextTick(() => {
-      this.calculateScrollViewHeight();
-    });
-
-    // 褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
-    if (options && options.param) {
-      console.log("寮�闃�鎴愬姛鍙傛暟:", options.param);
-      wx.showToast({
-        title: '寮�闃�鎴愬姛',
-        icon: 'success',
-        duration: 3000
-      });
-      this.getOpenList();
-    }
-
-    // 鍒濆鍖栨暟鎹�
-    this.initData();
-
-    // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽垯璁剧疆寤惰繜妫�鏌ョ櫥褰曠姸鎬�
-    if (!fromLogin) {
-      console.log('涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽欢杩熸鏌ョ櫥褰曠姸鎬�');
-      setTimeout(() => {
-        // 浠呭湪鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖鏃舵鏌ョ櫥褰曠姸鎬�
-        if (!getApp().globalData.isLoggedIn) {
-          console.log('寤惰繜妫�鏌ワ細鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾墽琛岀櫥褰曠姸鎬佹鏌�');
-          this.checkLoginStatus();
+        // 妫�鏌RL鍙傛暟涓槸鍚︽湁fromLogin
+        if (currentOptions.fromLogin === 'true') {
+            console.log('URL鍙傛暟涓娴嬪埌fromLogin=true锛屼笉鎵ц璺宠浆');
+            this.setData({
+                isFromLogin: true
+            });
+            return;
         }
-      }, 500);
-    } else {
-      console.log('浠庣櫥褰曢〉杩斿洖锛屼笉妫�鏌ョ櫥褰曠姸鎬�');
-    }
-  },
 
-  // 寰俊鐧诲綍
-  wxLogin() {
-    // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
-    const currentProject = getApp().globalData.selectedProject;
-    if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
-      console.log('wxLogin: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
-      return;
-    }
-    
-    if (!getApp().globalData.isLoggedIn) {
-      wx.showLoading({
-        title: '姝e湪鐧诲綍璇风◢鍊�...',
-        mask: true
-      });
+        // 濡傛灉褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆
+        if (currentRoute === 'pages/login/login') {
+            console.log('褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆');
+            return;
+        }
 
-      wx.login({
-        success: (res) => {
-          if (res.code) {
-            // 灏哻ode鍙戦�佸埌鏈嶅姟鍣ㄨ幏鍙杘penid
-            post({
-              url: "wx/client/code_login",
-              data: {
-                code: res.code
-              }
-            }).then(response => {
-              wx.hideLoading();
-              if (response.code === "0001") {
-                if (response.content.client.clientId === "") {
-                  // 鏈粦瀹氳处鍙凤紝璺宠浆鍒扮櫥褰曢〉闈�
-                  // wx.navigateTo({
-                  //   url: `/pages/login/login?project=${this.data.selectedProject}`
-                  // });
+        // Promise閾惧鐞嗗瓨鍌ㄦ鏌�
+        Promise.all([
+            storage.getItemSafe('sessionId'),
+            storage.getItemSafe('clientId'),
+            storage.getItemSafe('isLoggedIn')
+        ])
+            .then(([sessionId, clientId, isLoggedIn]) => {
+                if (sessionId) {
+                    // 浠庡瓨鍌ㄤ腑鎭㈠鐧诲綍鐘舵��
+                    app.globalData.sessionId = sessionId;
+                    app.globalData.isLoggedIn = true;
+
+                    if (clientId) {
+                        app.globalData.clientId = clientId;
+                    }
+
+                    console.log('宸蹭粠瀛樺偍鎭㈠鐧诲綍鐘舵��');
+                    // 宸茬櫥褰曪紝鍒锋柊椤甸潰
+                    wx.reLaunch({
+                        url: '/pages/home/home'
+                    });
                 } else {
-                  this.setData({
-                    userName: response.content.client.clientName,
-                    userPhone: response.content.client.userPhone
-                  })
-                  // 宸叉湁璐﹀彿锛屼繚瀛樻暟鎹苟鍒濆鍖�
-                  const sessionId = response.content.client.sessionId;
-                  const clientId = response.content.client.clientId;
-
-                  // 璁剧疆鍏ㄥ眬鍙橀噺
-                  getApp().globalData.sessionId = sessionId;
-                  getApp().globalData.clientId = clientId;
-                  getApp().globalData.isLoggedIn = true;
-
-                  // 璁剧疆姝g‘鐨勯」鐩畉ag
-                  const projectConfig = PROJECT_CONFIG[this.data.selectedProject];
-                  if (projectConfig) {
-                    getApp().globalData.tag = projectConfig.tag;
-                  }
-
-                  // 淇濆瓨鍒板瓨鍌�
-                  storage.setItem("sessionId", sessionId);
-                  storage.setItem("clientId", clientId);
-                  storage.setItem("isLoggedIn", "true");
-
-                  // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
-                  const userData = JSON.stringify({
-                    sessionId: sessionId,
-                    tag: projectConfig ? projectConfig.tag : 'ym',
-                    project: this.data.selectedProject,
-                    userName: response.content.client.clientName,
-                    userPhone: response.content.client.userPhone
-                  });
-                  storage.setItem("userData", userData)
-                    .then(() => {
-                      console.log('鐢ㄦ埛鏁版嵁淇濆瓨鎴愬姛锛屽寘鍚」鐩俊鎭�:', this.data.selectedProject, 'tag:', projectConfig ? projectConfig.tag : 'ym');
-                      this.initData();
-                    })
-                    .catch(err => {
-                      console.warn('淇濆瓨userData澶辫触锛屼絾缁х画鍒濆鍖�:', err);
-                      this.initData();
+                    // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
+                    this.setData({
+                        isFromLogin: true
                     });
 
+                    // 鏈櫥褰曪紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤甸潰
+                    console.log('鏈娴嬪埌鐧诲綍鐘舵�侊紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤�');
+
+                    // 鏈�鍚庡啀妫�鏌ヤ竴娆℃槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
+                    const finalCheck = this.getFromLogin();
+                    if (finalCheck) {
+                        console.log('鏈�缁堟鏌�: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
+                        return;
+                    }
+
+                    // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+                    if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+                        console.log('鏈�缁堟鏌�: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+                        return;
+                    }
+
+                    console.log('纭闇�瑕佽烦杞埌鐧诲綍椤�');
+
+                    // 璺宠浆鍓嶅啀娆℃鏌ョ櫥褰曢〉闈复鏃舵爣璁�
+                    try {
+                        wx.setStorageSync('_attempted_login_redirect', 'true');
+                    } catch (e) { }
+
+                    // wx.navigateTo({
+                    //   url: `/pages/login/login?project=${this.data.selectedProject}`,
+                    //   success: () => console.log('鎴愬姛璺宠浆鍒扮櫥褰曢〉'),
+                    //   fail: (err) => console.error('璺宠浆鍒扮櫥褰曢〉澶辫触:', err)
+                    // });
                 }
-              } else {
-                wx.showToast({
-                  title: '鐧诲綍澶辫触',
-                  icon: 'error',
-                  duration: 2000
+            })
+            .catch(err => {
+                console.error('妫�鏌ョ櫥褰曠姸鎬佹椂鍑洪敊:', err);
+
+                // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
+                this.setData({
+                    isFromLogin: true
                 });
+
+                // 鍐嶆妫�鏌ユ槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
+                if (this.getFromLogin()) {
+                    console.log('閿欒澶勭悊: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
+                    return;
+                }
+
+                // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+                if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+                    console.log('閿欒澶勭悊: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+                    return;
+                }
+
+                // 鍑洪敊鏃朵篃璺宠浆鍒扮櫥褰曢〉
                 // wx.navigateTo({
-                //   url: `/pages/login/login?project=${this.data.selectedProject}`
+                //   url: `/pages/login/login?project=${this.data.selectedProject}`,
+                //   success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌鐧诲綍椤�'),
+                //   fail: (err) => console.error('閿欒鍚庤烦杞埌鐧诲綍椤靛け璐�:', err)
                 // });
-              }
-            }).catch(error => {
-              wx.hideLoading();
-              console.error('鐧诲綍璇锋眰澶辫触:', error);
-              wx.showToast({
-                title: '鐧诲綍澶辫触锛岃閲嶈瘯',
-                icon: 'none'
-              });
-              // wx.redirectTo({
-              //   url: `/pages/login/login?project=${this.data.selectedProject}`
-              // });
             });
-          } else {
-            wx.hideLoading();
-            console.log('鐧诲綍澶辫触锛�' + res.errMsg);
-            wx.showToast({
-              title: '寰俊鐧诲綍澶辫触',
-              icon: 'none'
+    },
+
+    // 杈呭姪鍑芥暟锛氭鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+    getFromLogin() {
+        // 妫�鏌ュ綋鍓嶉〉闈㈢殑options
+        const pages = getCurrentPages();
+        const currentPage = pages[pages.length - 1];
+        if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
+            console.log('getFromLogin: 妫�娴嬪埌URL鍙傛暟fromLogin=true');
+            // 璁剧疆鏍囧織锛岀‘淇濅笅娆℃鏌ユ椂鑳借瘑鍒�
+            this.setData({
+                isFromLogin: true
             });
-          }
-        },
-        fail: (err) => {
-          wx.hideLoading();
-          console.error('寰俊鐧诲綍API璋冪敤澶辫触:', err);
-          wx.showToast({
-            title: '鐧诲綍澶辫触锛岃閲嶈瘯',
-            icon: 'none'
-          });
+            return true;
         }
-      });
-    }
-  },
+        console.log('getFromLogin: 鏈娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁�');
+        return false;
+    },
 
-  // 杈呭姪鍑芥暟锛氭竻鐞嗕复鏃舵爣璁�
-  cleanupTempMarkers() {
-    // 鍙湁鍦╥sFromLogin涓簍rue鏃舵墠杩涜娓呯悊
-    if (this.data.isFromLogin) {
+    // 缁х画鍒濆鍖栭〉闈�
+    continueInitPage(options) {
+        console.log('缁х画鍒濆鍖栭〉闈紝options:', options);
+
+        // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+        let fromLogin = false;
+
+        // 浠嶶RL鍙傛暟涓鏌�
+        if (options && options.fromLogin === 'true') {
+            console.log('continueInitPage: 浠嶶RL鍙傛暟妫�娴嬪埌fromLogin=true');
+            fromLogin = true;
+            this.setData({
+                isFromLogin: true
+            });
+        }
+
+        // 浠庨〉闈㈡暟鎹腑妫�鏌�
+        if (this.data.isFromLogin) {
+            console.log('continueInitPage: 浠庨〉闈㈡暟鎹腑妫�娴嬪埌isFromLogin=true');
+            fromLogin = true;
+        }
+
+        // 鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
+        // 浣跨敤 wx.nextTick 绛夊緟椤甸潰娓叉煋瀹屾垚
+        wx.nextTick(() => {
+            this.calculateScrollViewHeight();
+        });
+
+        // 褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
+        if (options && options.param) {
+            console.log("寮�闃�鎴愬姛鍙傛暟:", options.param);
+            wx.showToast({
+                title: '寮�闃�鎴愬姛',
+                icon: 'success',
+                duration: 3000
+            });
+            this.getOpenList();
+        }
+
+        // 鍒濆鍖栨暟鎹�
+        this.initData();
+
+        // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽垯璁剧疆寤惰繜妫�鏌ョ櫥褰曠姸鎬�
+        if (!fromLogin) {
+            console.log('涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽欢杩熸鏌ョ櫥褰曠姸鎬�');
+            setTimeout(() => {
+                // 浠呭湪鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖鏃舵鏌ョ櫥褰曠姸鎬�
+                if (!getApp().globalData.isLoggedIn) {
+                    console.log('寤惰繜妫�鏌ワ細鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾墽琛岀櫥褰曠姸鎬佹鏌�');
+                    this.checkLoginStatus();
+                }
+            }, 500);
+        } else {
+            console.log('浠庣櫥褰曢〉杩斿洖锛屼笉妫�鏌ョ櫥褰曠姸鎬�');
+        }
+    },
+
+    // 寰俊鐧诲綍
+    wxLogin() {
+        // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+        const currentProject = getApp().globalData.selectedProject;
+        if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+            console.log('wxLogin: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+            return;
+        }
+
+        if (!getApp().globalData.isLoggedIn) {
+            wx.showLoading({
+                title: '姝e湪鐧诲綍璇风◢鍊�...',
+                mask: true
+            });
+
+            wx.login({
+                success: (res) => {
+                    if (res.code) {
+                        // 灏哻ode鍙戦�佸埌鏈嶅姟鍣ㄨ幏鍙杘penid
+                        post({
+                            url: "wx/client/code_login",
+                            data: {
+                                code: res.code
+                            }
+                        }).then(response => {
+                            wx.hideLoading();
+                            if (response.code === "0001") {
+                                if (response.content.client.clientId === "") {
+                                    // 鏈粦瀹氳处鍙凤紝璺宠浆鍒扮櫥褰曢〉闈�
+                                    // wx.navigateTo({
+                                    //   url: `/pages/login/login?project=${this.data.selectedProject}`
+                                    // });
+                                } else {
+                                    this.setData({
+                                        userName: response.content.client.clientName,
+                                        userPhone: response.content.client.userPhone
+                                    })
+                                    // 宸叉湁璐﹀彿锛屼繚瀛樻暟鎹苟鍒濆鍖�
+                                    const sessionId = response.content.client.sessionId;
+                                    const clientId = response.content.client.clientId;
+
+                                    // 璁剧疆鍏ㄥ眬鍙橀噺
+                                    getApp().globalData.sessionId = sessionId;
+                                    getApp().globalData.clientId = clientId;
+                                    getApp().globalData.isLoggedIn = true;
+
+                                    // 璁剧疆姝g‘鐨勯」鐩畉ag
+                                    const projectConfig = PROJECT_CONFIG[this.data.selectedProject];
+                                    if (projectConfig) {
+                                        getApp().globalData.tag = projectConfig.tag;
+                                    }
+
+                                    // 淇濆瓨鍒板瓨鍌�
+                                    storage.setItem("sessionId", sessionId);
+                                    storage.setItem("clientId", clientId);
+                                    storage.setItem("isLoggedIn", "true");
+
+                                    // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
+                                    const userData = JSON.stringify({
+                                        sessionId: sessionId,
+                                        tag: projectConfig ? projectConfig.tag : 'ym',
+                                        project: this.data.selectedProject,
+                                        userName: response.content.client.clientName,
+                                        userPhone: response.content.client.userPhone
+                                    });
+                                    storage.setItem("userData", userData)
+                                        .then(() => {
+                                            console.log('鐢ㄦ埛鏁版嵁淇濆瓨鎴愬姛锛屽寘鍚」鐩俊鎭�:', this.data.selectedProject, 'tag:', projectConfig ? projectConfig.tag : 'ym');
+                                            this.initData();
+                                        })
+                                        .catch(err => {
+                                            console.warn('淇濆瓨userData澶辫触锛屼絾缁х画鍒濆鍖�:', err);
+                                            this.initData();
+                                        });
+
+                                }
+                            } else {
+                                wx.showToast({
+                                    title: '鐧诲綍澶辫触',
+                                    icon: 'error',
+                                    duration: 2000
+                                });
+                                // wx.navigateTo({
+                                //   url: `/pages/login/login?project=${this.data.selectedProject}`
+                                // });
+                            }
+                        }).catch(error => {
+                            wx.hideLoading();
+                            console.error('鐧诲綍璇锋眰澶辫触:', error);
+                            wx.showToast({
+                                title: '鐧诲綍澶辫触锛岃閲嶈瘯',
+                                icon: 'none'
+                            });
+                            // wx.redirectTo({
+                            //   url: `/pages/login/login?project=${this.data.selectedProject}`
+                            // });
+                        });
+                    } else {
+                        wx.hideLoading();
+                        console.log('鐧诲綍澶辫触锛�' + res.errMsg);
+                        wx.showToast({
+                            title: '寰俊鐧诲綍澶辫触',
+                            icon: 'none'
+                        });
+                    }
+                },
+                fail: (err) => {
+                    wx.hideLoading();
+                    console.error('寰俊鐧诲綍API璋冪敤澶辫触:', err);
+                    wx.showToast({
+                        title: '鐧诲綍澶辫触锛岃閲嶈瘯',
+                        icon: 'none'
+                    });
+                }
+            });
+        }
+    },
+
+    // 杈呭姪鍑芥暟锛氭竻鐞嗕复鏃舵爣璁�
+    cleanupTempMarkers() {
+        // 鍙湁鍦╥sFromLogin涓簍rue鏃舵墠杩涜娓呯悊
+        if (this.data.isFromLogin) {
 
 
-      // 閲嶈isFromLogin涓篺alse锛屼絾娣诲姞寤惰繜锛岄伩鍏嶅奖鍝嶅綋鍓嶉〉闈㈢殑杩斿洖閫昏緫
-      setTimeout(() => {
+            // 閲嶈isFromLogin涓篺alse锛屼絾娣诲姞寤惰繜锛岄伩鍏嶅奖鍝嶅綋鍓嶉〉闈㈢殑杩斿洖閫昏緫
+            setTimeout(() => {
+                this.setData({
+                    isFromLogin: false
+                });
+                console.log('閲嶇疆isFromLogin=false');
+            }, 5000);
+        }
+    }, //纭瑙g粦
+    unBindPost() {
         this.setData({
-          isFromLogin: false
-        });
-        console.log('閲嶇疆isFromLogin=false');
-      }, 5000);
-    }
-  }, //纭瑙g粦
-  unBindPost() {
-    this.setData({
-      showUnBind: false
-    })
-    wx.showLoading({
-      title: '姝e湪瑙g粦璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
-      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
-    });
-    const data = {
-      sessionId: getApp().globalData.sessionId //鍙栨按鍙D
-    };
-    post({
-      url: 'wx/client/unbind',
-      data: data,
-      useParams: true
-    }).then(response => {
-      // 澶勭悊鎴愬姛鍝嶅簲
-      console.log('璇锋眰鎴愬姛:', response);
-      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
-      wx.hideLoading();
-      const app = getApp();
-
-      // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
-      app.globalData.sessionId = '';
-      app.globalData.clientId = '';
-      app.globalData.isLoggedIn = false;
-      app.globalData.userInfo = null;
-
-      // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
-      const storage = require('../../utils/storage.js');
-      storage.removeItem('sessionId')
-        .then(() => storage.removeItem('clientId'))
-        .then(() => storage.removeItem('userData'))
-        .then(() => storage.removeItem('isLoggedIn'))
-        .then(() => {
-          wx.showToast({
-            title: '瑙g粦鎴愬姛',
-            icon: 'success',
-            duration: 2000
-          });
-
-          // 閲嶇疆UI鏄剧ず鐘舵��
-          this.setData({
-            userName: "璇风偣鍑荤櫥褰�",
-            userPhone: "",
-            listData: []
-          });
+            showUnBind: false
         })
-        .catch(err => {
-          console.error('瑙g粦杩囩▼涓嚭閿�:', err);
-          wx.showToast({
-            title: '瑙g粦澶辫触锛岃閲嶈瘯',
-            icon: 'none',
-            duration: 2000
-          });
+        wx.showLoading({
+            title: '姝e湪瑙g粦璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+            mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
         });
-    }).catch(error => {
-      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
-      wx.hideLoading();
-      // 澶勭悊閿欒鍝嶅簲
-      console.error('璇锋眰澶辫触:', error);
-      wx.showToast({
-        title: '瑙g粦澶辫触',
-        icon: 'error',
-        duration: 3000
-      })
-    });
-  },
-  onShareAppMessage: function (options) {
-    // 璁剧疆鍒嗕韩鍐呭
-    return {
-      title: '澶х鐏屾簤鍔╂墜', // 鍒嗕韩鏍囬
-      path: '/pages/home/home', // 鍒嗕韩璺緞锛岃璺緞闇�瑕佹槸褰撳墠灏忕▼搴忓瓨鍦ㄧ殑椤甸潰璺緞
-      imageUrl: '/images/logo2.jpg', // 鍒嗕韩鍥炬爣锛屽彲浠ユ槸缃戠粶鍥剧墖璺緞鎴栨湰鍦板浘鐗囪矾寰�
-      success: function (res) {
-        // 鍒嗕韩鎴愬姛鐨勫洖璋冨嚱鏁�
-      },
-      fail: function (res) {
-        // 鍒嗕韩澶辫触鐨勫洖璋冨嚱鏁�
-      }
-    };
-  }
+        const data = {
+            sessionId: getApp().globalData.sessionId //鍙栨按鍙D
+        };
+        post({
+            url: 'wx/client/unbind',
+            data: data,
+            useParams: true
+        }).then(response => {
+            // 澶勭悊鎴愬姛鍝嶅簲
+            console.log('璇锋眰鎴愬姛:', response);
+            // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+            wx.hideLoading();
+            const app = getApp();
+
+            // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
+            app.globalData.sessionId = '';
+            app.globalData.clientId = '';
+            app.globalData.isLoggedIn = false;
+            app.globalData.userInfo = null;
+
+            // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
+            const storage = require('../../utils/storage.js');
+            storage.removeItem('sessionId')
+                .then(() => storage.removeItem('clientId'))
+                .then(() => storage.removeItem('userData'))
+                .then(() => storage.removeItem('isLoggedIn'))
+                .then(() => {
+                    wx.showToast({
+                        title: '瑙g粦鎴愬姛',
+                        icon: 'success',
+                        duration: 2000
+                    });
+
+                    // 閲嶇疆UI鏄剧ず鐘舵��
+                    this.setData({
+                        userName: "璇风偣鍑荤櫥褰�",
+                        userPhone: "",
+                        listData: []
+                    });
+                })
+                .catch(err => {
+                    console.error('瑙g粦杩囩▼涓嚭閿�:', err);
+                    wx.showToast({
+                        title: '瑙g粦澶辫触锛岃閲嶈瘯',
+                        icon: 'none',
+                        duration: 2000
+                    });
+                });
+        }).catch(error => {
+            // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+            wx.hideLoading();
+            // 澶勭悊閿欒鍝嶅簲
+            console.error('璇锋眰澶辫触:', error);
+            wx.showToast({
+                title: '瑙g粦澶辫触',
+                icon: 'error',
+                duration: 3000
+            })
+        });
+    },
+    onShareAppMessage: function (options) {
+        // 璁剧疆鍒嗕韩鍐呭
+        return {
+            title: '澶х鐏屾簤鍔╂墜', // 鍒嗕韩鏍囬
+            path: '/pages/home/home', // 鍒嗕韩璺緞锛岃璺緞闇�瑕佹槸褰撳墠灏忕▼搴忓瓨鍦ㄧ殑椤甸潰璺緞
+            imageUrl: '/images/logo2.jpg', // 鍒嗕韩鍥炬爣锛屽彲浠ユ槸缃戠粶鍥剧墖璺緞鎴栨湰鍦板浘鐗囪矾寰�
+            success: function (res) {
+                // 鍒嗕韩鎴愬姛鐨勫洖璋冨嚱鏁�
+            },
+            fail: function (res) {
+                // 鍒嗕韩澶辫触鐨勫洖璋冨嚱鏁�
+            }
+        };
+    },
+    //鐐瑰嚮鎻愮ず鎸夐挳
+    infoShow() {
+        this.setData({
+            showInfoDialog: true
+        })
+    },
+    //鎻愮ず绐楃‘璁ゆ寜閽�
+    confirmBtnInfoDialog() {
+        this.setData({
+            showInfoDialog: false
+        })
+    },
 })
\ No newline at end of file
diff --git a/pages/home/home.wxml b/pages/home/home.wxml
index 384154d..513fc93 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -41,7 +41,10 @@
 
 
   <view class="bottom-title">
-    <text class="bottom-title-text">蹇�熷叧闃�</text>
+    <view class="title-center">
+      <text class="bottom-title-text">蹇�熷叧闃�</text>
+      <image class="info-img" bind:tap="infoShow" src="/images/info.svg"></image>
+    </view>
     <text class="refresh-button" bind:tap="startPullDownRefresh">鍒锋柊</text>
   </view>
   <view class="divider"></view>
@@ -109,4 +112,18 @@
     </view>
   </view>
   <t-dialog class="dialog" title="閫氱煡缁撴灉" visible="{{showTipDialog}}" content="{{tipData}}" confirm-btn="{{ confirmBtn }}" bind:confirm="cancelDialog" />
+  <t-dialog visible="{{showInfoDialog}}" title="鍙嬫儏鎻愮ず" confirm-btn="{{ confirmBtn  }}" bind:confirm="confirmBtnInfoDialog">
+    <!-- 閫傞厤skyline锛屽鍔爐ype="list" -->
+    <scroll-view slot="content" type="list" scroll-y class="long-content">
+      <view class="content-container">
+        <text class="content-container">
+          1.缃戠粶绛変笉鍙姉鍔涘洜绱犲彲鑳藉鑷磋澶囩姸鎬佹樉绀哄欢杩熸垨閿欒銆�
+          2.褰撴彁绀烘偍鎿嶄綔澶辫触鍚庢偍鍙◢鍚庡皾璇曢噸鏂版搷浣溿��
+          3.鍦ㄥ畾鏃舵垨瀹氶噺寮�闃�鐨勯绾﹀紡寮�闃�鍚庯紝鍙湁闃�闂ㄥ埌杈剧害瀹氱殑鏃堕棿鎴愬姛寮�闃�鍚庢湭鍏抽榾璁板綍鎵嶄細鏄剧ず銆�
+          4.鎴戜滑璇氭寶鍦伴個璇锋偍閫氳繃鎰忚鍙嶉娓犻亾鎻愬嚭瀹濊吹鐨勫缓璁垨鎰忚銆�
+        </text>
+
+      </view>
+    </scroll-view>
+  </t-dialog>
 </view>
\ No newline at end of file
diff --git a/pages/home/home.wxss b/pages/home/home.wxss
index e653d5c..113d5c7 100644
--- a/pages/home/home.wxss
+++ b/pages/home/home.wxss
@@ -1,604 +1,636 @@
 /* pages/home/home.wxss */
 .base-wrapper {
-  background-color: #ececec;
-  width: 100%;
-  height: 100vh;
-  overflow: hidden;
-  /* 闃叉搴曢儴鍖哄煙婊氬姩 */
-  display: flex;
-  flex-direction: column;
+    background-color: #ececec;
+    width: 100%;
+    height: 100vh;
+    overflow: hidden;
+    /* 闃叉搴曢儴鍖哄煙婊氬姩 */
+    display: flex;
+    flex-direction: column;
 }
 
 .head-wrapper {
-  background-color: #1890FF;
-  height: 25vh;
-  width: 100%;
-  padding-left: 40rpx;
-  display: grid;
-  flex-direction: column;
-  align-items: center;
-  border-bottom-left-radius: 5rpx;
-  border-bottom-right-radius: 5rpx;
-  z-index: 1;
-  border-top: 1px solid #0484fc;
+    background-color: #1890FF;
+    height: 25vh;
+    width: 100%;
+    padding-left: 40rpx;
+    display: grid;
+    flex-direction: column;
+    align-items: center;
+    border-bottom-left-radius: 5rpx;
+    border-bottom-right-radius: 5rpx;
+    z-index: 1;
+    border-top: 1px solid #0484fc;
 
 }
 
 .head-top {
-  display: flex;
-  align-items: center;
-  /* 鍦ㄧ旱鍚戞柟鍚戜笂灞呬腑瀵归綈 */
+    display: flex;
+    align-items: center;
+    /* 鍦ㄧ旱鍚戞柟鍚戜笂灞呬腑瀵归綈 */
 }
 
 
 .head-text-wrapper {
-  flex: 1;
-  display: flex;
-  flex-direction: column;
-  align-items: left;
-  justify-content: center;
-  margin-left: 15rpx;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    align-items: left;
+    justify-content: center;
+    margin-left: 15rpx;
 }
 
 .head-button-wrapper {
-  flex: 1;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-  margin-left: 15rpx;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    margin-left: 15rpx;
 }
 
 
 .head-bottom {
-  margin-top: 20rpx;
-  color: #fff;
-  font-size: 35rpx;
+    margin-top: 20rpx;
+    color: #fff;
+    font-size: 35rpx;
 }
 
 .unbind {
-  font-size: 30rpx;
-  /* 鎸夐挳鏂囧瓧鐨勫瓧浣撳ぇ灏� */
-  color: #1890FF;
-  /* 鎸夐挳鏂囧瓧棰滆壊 */
-  background-color: #fff;
-  /* 鎸夐挳鑳屾櫙棰滆壊 */
-  border: none;
-  /* 鍘绘帀鎸夐挳杈规 */
-  border-radius: 20px;
-  /* 鎸夐挳鍦嗚 */
-  padding-left: 20rpx;
-  padding-right: 20rpx;
-  padding-top: 5rpx;
-  padding-bottom: 5rpx;
-  margin-bottom: 10rpx;
+    font-size: 30rpx;
+    /* 鎸夐挳鏂囧瓧鐨勫瓧浣撳ぇ灏� */
+    color: #1890FF;
+    /* 鎸夐挳鏂囧瓧棰滆壊 */
+    background-color: #fff;
+    /* 鎸夐挳鑳屾櫙棰滆壊 */
+    border: none;
+    /* 鍘绘帀鎸夐挳杈规 */
+    border-radius: 20px;
+    /* 鎸夐挳鍦嗚 */
+    padding-left: 20rpx;
+    padding-right: 20rpx;
+    padding-top: 5rpx;
+    padding-bottom: 5rpx;
+    margin-bottom: 10rpx;
 }
 
 .head-text-wrapper text {
-  color: #fff;
-  font-size: 32rpx;
+    color: #fff;
+    font-size: 32rpx;
 }
 
 .balance-label {
-  margin-bottom: 40rpx;
-  color: #fff;
-  font-size: 35rpx;
+    margin-bottom: 40rpx;
+    color: #fff;
+    font-size: 35rpx;
 }
 
 .center-wrapper {
-  margin-top: -40rpx;
-  margin-right: 20rpx;
-  margin-left: 20rpx;
-  margin-bottom: 10rpx;
-  height: 18vh;
-  background-color: #fff;
-  border-radius: 5px;
-  display: flex;
-  padding-top: 20rpx;
-  padding-bottom: 20rpx;
-  justify-content: space-around;
-  z-index: 1;
-  /* 浣� center-wrapper 鍦ㄥご閮ㄤ箣涓� */
+    margin-top: -40rpx;
+    margin-right: 20rpx;
+    margin-left: 20rpx;
+    margin-bottom: 10rpx;
+    height: 18vh;
+    background-color: #fff;
+    border-radius: 5px;
+    display: flex;
+    padding-top: 20rpx;
+    padding-bottom: 20rpx;
+    justify-content: space-around;
+    z-index: 1;
+    /* 浣� center-wrapper 鍦ㄥご閮ㄤ箣涓� */
 }
 
 .center-view {
-  flex: 1;
-  /* 姣忎釜鍏冪礌骞冲垎瀹藉害 */
-  display: flex;
-  flex-direction: column;
-  /* 鍦ㄧ旱鍚戜笂鎺掑垪瀛愬厓绱� */
-  align-items: center;
-  /* 鍦ㄧ旱鍚戜笂灞呬腑鏄剧ず瀛愬厓绱� */
-  justify-content: center;
-  /* 鍦ㄦí鍚戝拰绾靛悜涓婇兘灞呬腑鏄剧ず瀛愬厓绱� */
+    flex: 1;
+    /* 姣忎釜鍏冪礌骞冲垎瀹藉害 */
+    display: flex;
+    flex-direction: column;
+    /* 鍦ㄧ旱鍚戜笂鎺掑垪瀛愬厓绱� */
+    align-items: center;
+    /* 鍦ㄧ旱鍚戜笂灞呬腑鏄剧ず瀛愬厓绱� */
+    justify-content: center;
+    /* 鍦ㄦí鍚戝拰绾靛悜涓婇兘灞呬腑鏄剧ず瀛愬厓绱� */
 }
 
 .center-view image,
 .center-view t-avatar {
-  width: 90rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-  height: 90rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-  margin-bottom: 10rpx;
-  /* 鍥炬爣鍜屾枃鏈箣闂寸殑闂磋窛 */
+    width: 90rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
+    height: 90rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
+    margin-bottom: 10rpx;
+    /* 鍥炬爣鍜屾枃鏈箣闂寸殑闂磋窛 */
 }
 
 .center-view text {
-  margin-top: 15rpx;
-  font-size: 30rpx;
-  color: #1890FF;
+    margin-top: 15rpx;
+    font-size: 30rpx;
+    color: #1890FF;
 }
 
 .bottom-wrapper {
-  margin-right: 20rpx;
-  margin-left: 20rpx;
-  display: flex;
-  flex-direction: column;
-  margin-top: 48vh;
+    margin-right: 20rpx;
+    margin-left: 20rpx;
+    display: flex;
+    flex-direction: column;
+    margin-top: 48vh;
 }
 
 .scroll-view {
-  flex: 1;
-  overflow-y: auto;
-  /* 鍏佽鍨傜洿婊氬姩 */
-  z-index: 0;
-  /* 纭繚 scroll-view 鍦ㄥご閮ㄥ拰 center-wrapper 涔嬩笅 */
+    flex: 1;
+    overflow-y: auto;
+    /* 鍏佽鍨傜洿婊氬姩 */
+    z-index: 0;
+    /* 纭繚 scroll-view 鍦ㄥご閮ㄥ拰 center-wrapper 涔嬩笅 */
 }
 
 
 
 .list-item {
-  background-color: #fff;
-  margin-bottom: 2rpx;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding-left: 30rpx;
-  padding-right: 30rpx;
-  padding-top: 30rpx;
-  padding-bottom: 30rpx;
-  margin-left: 20rpx;
-  margin-right: 20rpx;
+    background-color: #fff;
+    margin-bottom: 2rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding-left: 30rpx;
+    padding-right: 30rpx;
+    padding-top: 30rpx;
+    padding-bottom: 30rpx;
+    margin-left: 20rpx;
+    margin-right: 20rpx;
 }
 
 .list-item text {
-  font-size: 30rpx;
+    font-size: 30rpx;
 }
 
 
 
 .list-item-piping {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
 }
 
 .bottom-title {
-  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;
+    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;
 }
 
 .bottom-title-text {
-  position: absolute;
-  /* 缁濆瀹氫綅 */
-  left: 50%;
-  /* 绉诲姩鍒板鍣ㄧ殑涓棿 */
-  transform: translateX(-50%);
-  /* 閫氳繃骞崇Щ鑷韩瀹藉害鐨勪竴鍗婃潵瀹炵幇鐪熸鐨勫眳涓� */
-  font-size: 16px;
-  /* 瀛椾綋澶у皬 */
-  color: #333;
-  /* 瀛椾綋棰滆壊 */
-}
+    margin-right: 10rpx;
+    /* 缁欐枃鏈拰鍥炬爣涔嬮棿娣诲姞涓�浜涢棿璺� */
+    font-size: 35rpx;
+    /* 瀛椾綋澶у皬 */
+    color: #333;
+    /* 瀛椾綋棰滆壊 */
+  }
+  
 
 .refresh-button {
-  margin-left: auto;
-  /* 灏嗘寜閽帹鍒板鍣ㄧ殑鏈�鍙充晶 */
-  font-size: 30rpx;
-  /* 鎸夐挳鏂囧瓧鐨勫瓧浣撳ぇ灏� */
-  color: #fff;
-  /* 鎸夐挳鏂囧瓧棰滆壊 */
-  background-color: #1890FF;
-  /* 鎸夐挳鑳屾櫙棰滆壊 */
-  border: none;
-  /* 鍘绘帀鎸夐挳杈规 */
-  border-radius: 5px;
-  /* 鎸夐挳鍦嗚 */
-  padding-left: 25rpx;
-  padding-right: 25rpx;
-  padding-top: 15rpx;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  padding-bottom: 15rpx;
+    margin-left: auto;
+    /* 灏嗘寜閽帹鍒板鍣ㄧ殑鏈�鍙充晶 */
+    font-size: 30rpx;
+    /* 鎸夐挳鏂囧瓧鐨勫瓧浣撳ぇ灏� */
+    color: #fff;
+    /* 鎸夐挳鏂囧瓧棰滆壊 */
+    background-color: #1890FF;
+    /* 鎸夐挳鑳屾櫙棰滆壊 */
+    border: none;
+    /* 鍘绘帀鎸夐挳杈规 */
+    border-radius: 5px;
+    /* 鎸夐挳鍦嗚 */
+    padding-left: 25rpx;
+    padding-right: 25rpx;
+    padding-top: 15rpx;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding-bottom: 15rpx;
 }
-.refresh-button:active{
-  background-color: #7c7c7c; /* Change to a darker color when pressed */
+
+.refresh-button:active {
+    background-color: #7c7c7c;
+    /* Change to a darker color when pressed */
 }
+
 .refresh-view {
-  text-align: center;
-  padding: 30rpx;
-  display: flex;
-  justify-content: center;
-  align-items: center;
+    text-align: center;
+    padding: 30rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
 }
 
 .dot {
-  width: 20rpx;
-  height: 20rpx;
-  background-color: #333;
-  border-radius: 50%;
-  margin: 0 5px;
-  animation: blink 1.4s infinite both;
+    width: 20rpx;
+    height: 20rpx;
+    background-color: #333;
+    border-radius: 50%;
+    margin: 0 5px;
+    animation: blink 1.4s infinite both;
 }
 
 .dot:nth-child(2) {
-  animation-delay: 0.2s;
+    animation-delay: 0.2s;
 }
 
 .dot:nth-child(3) {
-  animation-delay: 0.4s;
+    animation-delay: 0.4s;
 }
 
 @keyframes blink {
 
-  0%,
-  80%,
-  100% {
-    opacity: 0;
-  }
+    0%,
+    80%,
+    100% {
+        opacity: 0;
+    }
 
-  40% {
-    opacity: 1;
-  }
+    40% {
+        opacity: 1;
+    }
 }
 
 .switch {
-  --td-switch-checked-color: #1890FF;
+    --td-switch-checked-color: #1890FF;
 }
 
 
 .item-left {
-  display: flex;
-  align-items: center;
+    display: flex;
+    align-items: center;
 }
 
 .item-left text {
-  font-size: 40rpx;
-  min-width: 150rpx;
+    font-size: 40rpx;
+    min-width: 150rpx;
 }
 
 .item-img {
-  width: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-  height: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-  margin-left: 20rpx;
+    width: 40rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
+    height: 40rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
+    margin-left: 20rpx;
 }
 
 .dialog {
-  --td-dialog-content-font-size: 40rpx;
-  --td-dialog-content-line-height: 50rpx
+    --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%;
-  /* 璁╁鍣ㄩ珮搴﹀崰婊$埗鍏冪礌 */
+    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;
+    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;
 }
 
 .item-button:active {
-  background-color: #7c7c7c; /* Change to a darker color when pressed */
+    background-color: #7c7c7c;
+    /* Change to a darker color when pressed */
 }
 
 .divider {
-  width: 100%;
-  margin-top: 2rpx;
-  /* background-color: #e0e0e0; */
+    width: 100%;
+    margin-top: 2rpx;
+    /* background-color: #e0e0e0; */
 }
 
 
 .error-dialog {
-  --td-dialog-title-color: red;
-  --td-dialog-title-font-size: 40rpx;
+    --td-dialog-title-color: red;
+    --td-dialog-title-font-size: 40rpx;
 }
 
 .scen-view {
-  position: absolute;
-  /* 娣诲姞杩欒 */
-  top: 15rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁磋窛绂婚《閮ㄧ殑璺濈 */
-  right: 30rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁磋窛绂诲彸渚х殑璺濈 */
-  display: flex;
-  align-items: center;
-  /* 鍨傜洿鏂瑰悜灞呬腑 */
-  justify-content: space-between;
+    position: absolute;
+    /* 娣诲姞杩欒 */
+    top: 15rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁磋窛绂婚《閮ㄧ殑璺濈 */
+    right: 30rpx;
+    /* 鏍规嵁闇�瑕佽皟鏁磋窛绂诲彸渚х殑璺濈 */
+    display: flex;
+    align-items: center;
+    /* 鍨傜洿鏂瑰悜灞呬腑 */
+    justify-content: space-between;
 }
 
 .scen-code {
-  width: 40rpx;
-  height: 40rpx;
+    width: 40rpx;
+    height: 40rpx;
 }
 
 .scen-view text {
-  font-size: 30rpx;
-  color: #ffffff;
+    font-size: 30rpx;
+    color: #ffffff;
 }
 
 .project-select-container {
-  padding: 20rpx 0;
+    padding: 20rpx 0;
 }
 
 .project-select-container .t-radio {
-  margin-bottom: 20rpx;
-  padding: 10rpx 0;
+    margin-bottom: 20rpx;
+    padding: 10rpx 0;
 }
 
 .project-select-container .t-radio:last-child {
-  margin-bottom: 0;
+    margin-bottom: 0;
 }
 
 .project-select-container .t-radio__label {
-  font-size: 28rpx;
-  color: #333;
+    font-size: 28rpx;
+    color: #333;
 }
 
 .project-select-container .t-radio--checked {
-  background: #e6f4ff;
+    background: #e6f4ff;
 }
 
 /* 寮圭獥鎸夐挳鏍峰紡 */
 .dialog__button-group {
-  display: flex;
-  justify-content: space-between;
-  margin-top: 32rpx;
+    display: flex;
+    justify-content: space-between;
+    margin-top: 32rpx;
 }
 
 .dialog__button-group .t-button {
-  flex: 1;
-  margin: 0 16rpx;
+    flex: 1;
+    margin: 0 16rpx;
 }
 
 .dialog__button-group .t-button:first-child {
-  margin-left: 0;
+    margin-left: 0;
 }
 
 .dialog__button-group .t-button:last-child {
-  margin-right: 0;
+    margin-right: 0;
 }
 
 .project-select-popup {
-  background-color: #fff;
-  border-radius: 16rpx;
-  width: 600rpx;
+    background-color: #fff;
+    border-radius: 16rpx;
+    width: 600rpx;
 }
 
 .popup-title {
-  font-size: 32rpx;
-  font-weight: bold;
-  text-align: center;
-  padding: 32rpx;
-  border-bottom: 1px solid #f0f0f0;
+    font-size: 32rpx;
+    font-weight: bold;
+    text-align: center;
+    padding: 32rpx;
+    border-bottom: 1px solid #f0f0f0;
 }
 
 .popup-content {
-  padding: 32rpx;
+    padding: 32rpx;
 }
 
 .radio-group {
-  display: flex;
-  flex-direction: column;
-  gap: 20rpx;
+    display: flex;
+    flex-direction: column;
+    gap: 20rpx;
 }
 
 .radio-group .t-radio {
-  margin-bottom: 20rpx;
-  padding: 20rpx;
-  background: #f5f5f5;
-  border-radius: 8rpx;
+    margin-bottom: 20rpx;
+    padding: 20rpx;
+    background: #f5f5f5;
+    border-radius: 8rpx;
 }
 
 .radio-group .t-radio:last-child {
-  margin-bottom: 0;
+    margin-bottom: 0;
 }
 
 .popup-footer {
-  padding: 32rpx;
-  border-top: 1px solid #f0f0f0;
+    padding: 32rpx;
+    border-top: 1px solid #f0f0f0;
 }
 
 .dialog-content {
-  padding: 32rpx;
-  max-height: 60vh;
+    padding: 32rpx;
+    max-height: 60vh;
 }
 
 .project-options {
-  display: flex;
-  flex-direction: column;
-  gap: 20rpx;
+    display: flex;
+    flex-direction: column;
+    gap: 20rpx;
 }
 
 .project-option {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 30rpx;
-  background: #f5f5f5;
-  border-radius: 8rpx;
-  font-size: 32rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 30rpx;
+    background: #f5f5f5;
+    border-radius: 8rpx;
+    font-size: 32rpx;
 }
 
 .project-option.selected {
-  background: #e6f4ff;
-  border: 2rpx solid #1890FF;
+    background: #e6f4ff;
+    border: 2rpx solid #1890FF;
 }
 
 .selected-icon {
-  width: 40rpx;
-  height: 40rpx;
+    width: 40rpx;
+    height: 40rpx;
 }
 
 .project-dialog-content {
-  padding: 20rpx;
+    padding: 20rpx;
 }
 
 .project-item {
-  margin: 20rpx 0;
-  padding: 30rpx;
-  background-color: #f5f5f5;
-  border-radius: 8rpx;
-  text-align: center;
-  font-size: 32rpx;
+    margin: 20rpx 0;
+    padding: 30rpx;
+    background-color: #f5f5f5;
+    border-radius: 8rpx;
+    text-align: center;
+    font-size: 32rpx;
 }
 
 .project-item-selected {
-  background-color: #e6f4ff;
-  color: #1890FF;
-  border: 2rpx solid #1890FF;
+    background-color: #e6f4ff;
+    color: #1890FF;
+    border: 2rpx solid #1890FF;
 }
 
 .radio-content {
-  padding: 30rpx 20rpx 10rpx;
+    padding: 30rpx 20rpx 10rpx;
 }
 
 .radio-content .t-radio {
-  margin-bottom: 20rpx;
-  padding: 20rpx;
-  background-color: #f5f5f5;
-  border-radius: 8rpx;
+    margin-bottom: 20rpx;
+    padding: 20rpx;
+    background-color: #f5f5f5;
+    border-radius: 8rpx;
 }
 
 .radio-content .t-radio--checked {
-  background-color: #e6f4ff;
+    background-color: #e6f4ff;
 }
 
 .project-modal {
-  position: fixed;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  z-index: 9999;
-  display: flex;
-  align-items: center;
-  justify-content: center;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 9999;
+    display: flex;
+    align-items: center;
+    justify-content: center;
 }
 
 .project-modal-mask {
-  position: absolute;
-  top: 0;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  background-color: rgba(0, 0, 0, 0.6);
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    background-color: rgba(0, 0, 0, 0.6);
 }
 
 .project-modal-content {
-  position: relative;
-  width: 80%;
-  max-width: 600rpx;
-  background-color: #fff;
-  border-radius: 16rpx;
-  overflow: hidden;
-  display: flex;
-  flex-direction: column;
+    position: relative;
+    width: 80%;
+    max-width: 600rpx;
+    background-color: #fff;
+    border-radius: 16rpx;
+    overflow: hidden;
+    display: flex;
+    flex-direction: column;
 }
 
 .project-modal-header {
-  padding: 30rpx;
-  text-align: center;
-  border-bottom: 1rpx solid #f0f0f0;
+    padding: 30rpx;
+    text-align: center;
+    border-bottom: 1rpx solid #f0f0f0;
 }
 
 .project-modal-title {
-  font-size: 36rpx;
-  font-weight: bold;
-  color: #333;
+    font-size: 36rpx;
+    font-weight: bold;
+    color: #333;
 }
 
 .project-modal-body {
-  padding: 30rpx;
+    padding: 30rpx;
 }
 
 .project-modal-tip {
-  display: block;
-  font-size: 28rpx;
-  color: #999;
-  margin-bottom: 30rpx;
-  text-align: center;
+    display: block;
+    font-size: 28rpx;
+    color: #999;
+    margin-bottom: 30rpx;
+    text-align: center;
 }
 
 .project-radio-group {
-  display: flex;
-  flex-direction: column;
-  gap: 20rpx;
+    display: flex;
+    flex-direction: column;
+    gap: 20rpx;
 }
 
 .project-radio {
-  display: flex;
-  align-items: center;
-  padding: 20rpx;
-  background-color: #f5f5f5;
-  border-radius: 8rpx;
+    display: flex;
+    align-items: center;
+    padding: 20rpx;
+    background-color: #f5f5f5;
+    border-radius: 8rpx;
 }
 
 .project-radio-selected {
-  background-color: #e6f4ff;
-  border: 2rpx solid #1890FF;
+    background-color: #e6f4ff;
+    border: 2rpx solid #1890FF;
 }
 
 .project-radio text {
-  margin-left: 10rpx;
-  font-size: 32rpx;
+    margin-left: 10rpx;
+    font-size: 32rpx;
 }
 
 .project-modal-footer {
-  padding: 30rpx;
-  border-top: 1rpx solid #f0f0f0;
+    padding: 30rpx;
+    border-top: 1rpx solid #f0f0f0;
 }
 
 .project-modal-btn {
-  width: 100%;
-  height: 80rpx;
-  line-height: 80rpx;
-  text-align: center;
-  background-color: #1890FF;
-  color: #fff;
-  font-size: 32rpx;
-  border-radius: 8rpx;
+    width: 100%;
+    height: 80rpx;
+    line-height: 80rpx;
+    text-align: center;
+    background-color: #1890FF;
+    color: #fff;
+    font-size: 32rpx;
+    border-radius: 8rpx;
 }
 
 .project-modal-btn[disabled] {
-  background-color: #cccccc;
-  color: #ffffff;
+    background-color: #cccccc;
+    color: #ffffff;
 }
+
+.info-img {
+    width: 50rpx;
+    height: 50rpx;
+}
+
+.title-center {
+    position: absolute;
+    /* 缁濆瀹氫綅 */
+    left: 50%;
+    /* 绉诲姩鍒板鍣ㄧ殑涓棿 */
+    transform: translateX(-50%);
+    display: flex;
+    justify-content: space-between;
+    /* 浣垮瓙鍏冪礌鍦ㄤ富杞翠笂鍧囧寑鍒嗗竷 */
+    align-items: center;
+    /* 鍨傜洿灞呬腑瀵归綈 */
+}
+.content-container {
+    white-space: pre-line;
+    word-wrap: break-word;
+    /* 闃叉闀垮崟璇嶆棤娉曟崲琛� */
+  }
+  
+  .long-content {
+    height: 450rpx;
+    margin-top: 16rpx;
+    font-size: 32rpx;
+    color: #888;
+  }
+  
\ No newline at end of file
diff --git a/pages/irrigation/irrigation.js b/pages/irrigation/irrigation.js
index 248efcc..61b0f3e 100644
--- a/pages/irrigation/irrigation.js
+++ b/pages/irrigation/irrigation.js
@@ -46,16 +46,20 @@
       url: '/wx/plan/getNotCompletePlans'
     }).then(res => {
       if (res.success) {
-        const activeList = res.content.map(item => ({
-          id: item.planId,
-          title: item.planName,
-          projectName: item.projectName || '鏈垎閰嶉」鐩�',
-          status: item.planState,
-          planStartTime: item.planStartTime,
-          planStopTime: item.planStopTime,
-          duration: item.duration,
-          startupMode: item.startupMode
-        }));
+        const activeList = res.content.map(item => {
+          // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
+          const planState = String(item.planState);
+          return {
+            id: item.planId,
+            title: item.planName,
+            projectName: item.projectName || '鏈垎閰嶉」鐩�',
+            status: planState,
+            planStartTime: item.planStartTime,
+            planStopTime: item.planStopTime,
+            duration: item.duration,
+            startupMode: item.startupMode
+          };
+        });
 
         console.log('杞亴璁″垝鏁版嵁锛�', activeList);
 
@@ -91,16 +95,20 @@
       url: '/wx/plan/getCompletedPlans'
     }).then(res => {
       if (res.success) {
-        const completedList = res.content.map(item => ({
-          id: item.planId,
-          title: item.planName,
-          projectName: item.projectName || '鏈垎閰嶉」鐩�',
-          status: item.planState,
-          planStartTime: item.planStartTime,
-          planStopTime: item.planStopTime,
-          duration: item.duration,
-          startupMode: item.startupMode
-        }));
+        const completedList = res.content.map(item => {
+          // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆
+          const planState = String(item.planState);
+          return {
+            id: item.planId,
+            title: item.planName,
+            projectName: item.projectName || '鏈垎閰嶉」鐩�',
+            status: planState,
+            planStartTime: item.planStartTime,
+            planStopTime: item.planStopTime,
+            duration: item.duration,
+            startupMode: item.startupMode
+          };
+        });
 
         console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', completedList);
 
@@ -153,9 +161,22 @@
     const id = e.currentTarget.dataset.id;
     const status = e.currentTarget.dataset.status;
     
+    console.log('鐐瑰嚮椤圭洰鐘舵��:', status, '绫诲瀷:', typeof status);
+    
+    // 鍒ゆ柇璁″垝鐘舵�侊紝濡傛灉鏄�1(鏈彂甯�)锛屽垯鎻愮ず鐢ㄦ埛
+    if (status === '1' || status === 1) {
+      wx.showModal({
+        title: '鎻愮ず',
+        content: '褰撳墠璁″垝鏈彂甯冿紝璇峰彂甯冨悗鏌ョ湅',
+        showCancel: false,
+        confirmText: '纭'
+      });
+      return;
+    }
+    
     // 瀵艰埅鍒扮亴婧夎鎯呴〉闈紝骞朵紶閫掑弬鏁�
     wx.navigateTo({
-      url: `/pages/irrigationDetail/irrigationDetail?id=${id}&fromList=true`
+      url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true`
     });
   },
 
@@ -213,17 +234,42 @@
       content: '纭畾瑕佺粓姝㈣杞亴璁″垝鍚楋紵',
       success: (res) => {
         if (res.confirm) {
-          // 杩欓噷搴旇璋冪敤API缁堟杞亴璁″垝
-          wx.showToast({
-            title: '宸茬粓姝�',
-            icon: 'success'
-          });
-          // 鍒锋柊鏁版嵁
-          this.loadIrrigationData();
+            this.postStop(id)
         }
       }
     });
   },
+  //缁堟杞亴璁″垝
+   postStop(planID){
+    post({
+        url: '/wx/plan/terminatePlan',
+        data: {
+          planId: planID,
+          operatorId: app.globalData.clientId
+        },
+        isShowLoding: true
+      }).then(res => {
+        if (res.success) {
+          wx.showToast({
+            title: '缁堟鎴愬姛',
+            icon: 'success'
+          });
+          // 鍒锋柊鏁版嵁
+          this.loadIrrigationData();
+        } else {
+          wx.showToast({
+            title: res.msg || '缁堟澶辫触',
+            icon: 'none'
+          });
+        }
+      }).catch(err => {
+        console.error('缁堟澶辫触锛�', err);
+        wx.showToast({
+          title: '缁堟澶辫触',
+          icon: 'none'
+        });
+      });
+   },
 
   /**
    * 鐐瑰嚮绔嬪嵆鎵ц鎸夐挳
diff --git a/pages/irrigation/irrigation.wxml b/pages/irrigation/irrigation.wxml
index b5af43c..6f42faa 100644
--- a/pages/irrigation/irrigation.wxml
+++ b/pages/irrigation/irrigation.wxml
@@ -20,8 +20,8 @@
       <block wx:if="{{currentList.length > 0}}">
         <view class="list-item" wx:for="{{currentList}}" wx:key="id" bindtap="onItemTap" data-id="{{item.id}}" data-status="{{item.status}}">
           <!-- 鐘舵�佹爣绛� -->
-          <view class="status-tag {{item.status === '1' ? 'draft' : item.status === '2' ? 'published' : item.status === '3' ? 'executing' : 'completed'}}">
-            {{item.status === '1' ? '鑽夌' : item.status === '2' ? '鏈墽琛�' : item.status === '3' ? '鎵ц涓�' : '宸插畬鎴�'}}
+          <view class="status-tag {{item.status === '1' ? 'draft' : item.status === '2' ? 'published' : item.status === '3' ? 'executing' : item.status === '5' ? 'terminated' : 'completed'}}">
+            {{item.status === '1' ? '鑽夌' : item.status === '2' ? '鏈墽琛�' : item.status === '3' ? '鎵ц涓�' : item.status === '5' ? '宸茬粓姝�' : '宸插畬鎴�'}}
           </view>
           
           <!-- 涓昏鍐呭鍖� -->
@@ -57,30 +57,6 @@
                   </view>
                 </view>
               </view>
-
-              <!-- 鎵ц涓姸鎬侀澶栦俊鎭� -->
-              <block wx:if="{{item.status === '3'}}">
-                <view class="executing-info">
-                  <view class="info-item">
-                    <view class="info-icon">
-                      <image src="/images/progress-icon.svg" mode="aspectFit"></image>
-                    </view>
-                    <view class="info-content">
-                      <view class="info-label">宸茬亴婧夋椂闂�</view>
-                      <view class="info-value">{{item.irrigatedTime}}</view>
-                    </view>
-                  </view>
-                  <view class="info-item">
-                    <view class="info-icon">
-                      <image src="/images/group-icon.svg" mode="aspectFit"></image>
-                    </view>
-                    <view class="info-content">
-                      <view class="info-label">宸茬亴婧夎疆缁�</view>
-                      <view class="info-value">{{item.irrigatedGroups}}</view>
-                    </view>
-                  </view>
-                </view>
-              </block>
             </view>
 
             <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
diff --git a/pages/irrigation/irrigation.wxss b/pages/irrigation/irrigation.wxss
index 690a85d..5a4e019 100644
--- a/pages/irrigation/irrigation.wxss
+++ b/pages/irrigation/irrigation.wxss
@@ -39,7 +39,7 @@
   bottom: 0;
   left: 50%;
   transform: translateX(-50%);
-  width: 40rpx;
+  width: 50rpx;
   height: 4rpx;
   background-color: #0052d9;
   border-radius: 2rpx;
@@ -81,19 +81,24 @@
 }
 
 .status-tag.draft {
-  background-color: #ff9d00;
+  background-color: #9E9E9E;
 }
 
 .status-tag.published {
-  background-color: #0052d9;
+  background-color: #90CAF9;
 }
 
 .status-tag.executing {
-  background-color: #00a870;
+  background-color: #2196F3;
 }
 
 .status-tag.completed {
-  background-color: #999;
+  background-color: #4CAF50;
+}
+
+.status-tag.terminated {
+  background-color: #F44336;
+  color: #ffffff;
 }
 
 /* 鍐呭鍖哄煙鏍峰紡 */
diff --git a/pages/irrigationDetail/irrigationDetail.js b/pages/irrigationDetail/irrigationDetail.js
index 5012c84..597a4c7 100644
--- a/pages/irrigationDetail/irrigationDetail.js
+++ b/pages/irrigationDetail/irrigationDetail.js
@@ -4,52 +4,144 @@
    */
   data: {
     planCode: '',
+    projectName: '',
     startTime: '',
+    stopTime: '',
     isRefreshing: false,
-    projects: []
+    groupList: [],
+    planId: '',
+    planStatusText: '',
+    planStatusClass: ''
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad: function (options) {
-    // 妯℃嫙鏁版嵁
+    if (options.planId) {
+      this.setData({
+        planId: options.planId
+      });
+      this.fetchIrrigationData(options.planId);
+    } else {
+      wx.showToast({
+        title: '缂哄皯璁″垝ID',
+        icon: 'none'
+      });
+      setTimeout(() => {
+        wx.navigateBack();
+      }, 1500);
+    }
+  },
+
+  /**
+   * 鑾峰彇鐏屾簤璁″垝鏁版嵁
+   */
+  fetchIrrigationData: function(planId) {
+    const { get } = require('../../api/request');
+    
+    const data = {
+      planId: planId || this.data.planId,
+    };
+    
+    get({
+      url: 'wx/plan/getPublishResults',
+      isShowLoding: true,
+      useParams: true,
+      data: data
+    }).then(res => {
+      if (res.success) {
+        this.processIrrigationData(res.content);
+      } else {
+        wx.showToast({
+          title: res.msg || '鑾峰彇鏁版嵁澶辫触',
+          icon: 'none'
+        });
+      }
+    }).catch(err => {
+      console.error('璇锋眰澶辫触锛�', err);
+      wx.showToast({
+        title: '璇锋眰澶辫触',
+        icon: 'none'
+      });
+    });
+  },
+
+  /**
+   * 澶勭悊鎺ュ彛杩斿洖鐨勬暟鎹�
+   */
+  processIrrigationData: function(data) {
+    console.log('鐏屾簤璁″垝璇︽儏鏁版嵁锛�', data);
+    
+    // 澶勭悊杞亴缁勭姸鎬�
+    const statusMap = {
+      2: {status: 'pending', statusText: '鏈紑濮�'},
+      3: {status: 'in_progress', statusText: '鐏屾簤涓�'},
+      4: {status: 'completed', statusText: '宸茬粨鏉�'}
+    };
+
+    // 澶勭悊璁″垝鐘舵��
+    let planStatusText = '';
+    let planStatusClass = '';
+    
+    // 鏍规嵁璁″垝鐨勭姸鎬佽缃笉鍚岀殑鏂囨湰鍜屾牱寮�
+    // 娉ㄦ剰锛氭帴鍙h繑鍥炵殑鏄痵tate鑰屼笉鏄痯lanState
+    console.log('璁″垝鐘舵�佸�硷細', data.state, '绫诲瀷锛�', typeof data.state);
+    
+    // 纭繚state鏄暟瀛楃被鍨�
+    const planState = parseInt(data.state);
+    
+    switch(planState) {
+      case 1:
+        planStatusText = '鑽夌';
+        planStatusClass = 'draft';
+        break;
+      case 2:
+        planStatusText = '鏈墽琛�';
+        planStatusClass = 'published';
+        break;
+      case 3:
+        planStatusText = '鎵ц涓�';
+        planStatusClass = 'executing';
+        break;
+      case 4:
+        planStatusText = '宸插畬鎴�';
+        planStatusClass = 'completed';
+        break;
+      case 5:
+        planStatusText = '宸茬粓姝�';
+        planStatusClass = 'terminated';
+        break;
+      default:
+        planStatusText = '鏈煡鐘舵��';
+        planStatusClass = 'draft';
+        console.log('鏈瘑鍒殑璁″垝鐘舵�佸�硷細', planState);
+    }
+
+    // 杞崲鏁版嵁鏍煎紡
+    const groupList = data.groups.map(group => {
+      const statusInfo = statusMap[group.state] || {status: 'unknown', statusText: '鏈煡鐘舵��'};
+      
+      return {
+        id: group.groupId,
+        name: group.groupCode,
+        status: statusInfo.status,
+        statusText: statusInfo.statusText,
+        startTime: group.startTime,
+        endTime: group.stopTime,
+        duration: group.duration,
+        publishResult: group.publishResult || []
+      };
+    });
+
     this.setData({
-      planCode: 'IRR-2024-001',
-      startTime: '2024-03-20 08:00',
-      projects: [{
-        id: 1,
-        name: '绀轰緥椤圭洰',
-        groups: [
-          {
-            id: 1,
-            name: '杞亴缁�1',
-            status: 'pending',
-            statusText: '寰呯亴婧�',
-            startTime: '08:00',
-            endTime: '09:00',
-            duration: 60
-          },
-          {
-            id: 2,
-            name: '杞亴缁�2',
-            status: 'in_progress',
-            statusText: '鐏屾簤涓�',
-            startTime: '09:00',
-            endTime: '10:00',
-            duration: 60
-          },
-          {
-            id: 3,
-            name: '杞亴缁�3',
-            status: 'completed',
-            statusText: '宸插畬鎴�',
-            startTime: '10:00',
-            endTime: '11:00',
-            duration: 60
-          }
-        ]
-      }]
+      planCode: data.planName,
+      projectName: data.projectName,
+      startTime: data.planStartTime,
+      stopTime: data.planStopTime,
+      groupList: groupList,
+      planStatusText: planStatusText,
+      planStatusClass: planStatusClass
     });
   },
 
@@ -89,7 +181,9 @@
       isRefreshing: true
     });
 
-    // 妯℃嫙鍒锋柊鏁版嵁
+    this.fetchIrrigationData(this.data.planId);
+    
+    // 瀹屾垚鍒锋柊
     setTimeout(() => {
       this.setData({
         isRefreshing: false
diff --git a/pages/irrigationDetail/irrigationDetail.wxml b/pages/irrigationDetail/irrigationDetail.wxml
index cf8747a..991e17e 100644
--- a/pages/irrigationDetail/irrigationDetail.wxml
+++ b/pages/irrigationDetail/irrigationDetail.wxml
@@ -6,20 +6,26 @@
         <text class="label">璁″垝缂栧彿锛�</text>
         <text class="value">{{planCode}}</text>
       </view>
-      <image class="status-icon" src="/images/progress.svg" mode="aspectFit"></image>
+      <view class="plan-status {{planStatusClass}}">
+        <text>{{planStatusText}}</text>
+      </view>
     </view>
       <!-- 椤圭洰淇℃伅 -->
     <view class="project-info">
       <text class="label">椤圭洰鍚嶇О锛�</text>
-      <text class="value">{{projects[0].name}}</text>
+      <text class="value">{{projectName}}</text>
     </view>
     <!-- 鐏屾簤鏃堕棿淇℃伅 -->
     <view class="time-info">
       <text class="label">鐏屾簤寮�濮嬫椂闂达細</text>
       <text class="value">{{startTime}}</text>
     </view>
-
-  
+    
+    <!-- 鏂板缁撴潫鏃堕棿淇℃伅 -->
+    <view class="time-info">
+      <text class="label">鐏屾簤缁撴潫鏃堕棿锛�</text>
+      <text class="value">{{stopTime}}</text>
+    </view>
   </view>
 
   <!-- 杞亴缁勫垪琛� -->
@@ -31,17 +37,19 @@
     refresher-triggered="{{isRefreshing}}" 
     bindrefresherrefresh="onPullDownRefresh">
     <view class="scroll-content">
-      <block wx:for="{{projects[0].groups}}" wx:key="id" wx:for-item="group">
-        <view class="group-item {{group.status}}" bindtap="navigateToGroupDetail" data-project-name="{{projects[0].name}}" data-group-name="{{group.name}}" data-group-id="{{group.id}}" data-status="{{group.status}}">
-          <!-- 杞亴缁勭姸鎬佹爣璇� -->
-          <view class="group-status-indicator">
-            <view class="status-dot"></view>
-            <text class="status-text">{{group.statusText}}</text>
-          </view>
-          
+      <block wx:for="{{groupList}}" wx:key="id" wx:for-item="group">
+        <view class="group-item {{group.status}}" bindtap="navigateToGroupDetail" data-project-name="{{projectName}}" data-group-name="{{group.name}}" data-group-id="{{group.id}}" data-status="{{group.status}}">
           <!-- 杞亴缁勪俊鎭� -->
           <view class="group-info">
-            <view class="group-name">{{group.name}}</view>
+            <view class="group-name-row">
+              <text class="group-label">杞亴缁勶細</text>
+              <text class="group-name">{{group.name}}</text>
+              <!-- 杞亴缁勭姸鎬佹爣璇� -->
+              <view class="group-status-indicator">
+                <view class="status-dot"></view>
+                <text class="status-text">{{group.statusText}}</text>
+              </view>
+            </view>
             <view class="group-time-info">
               <view class="time-row">
                 <text class="time-label">寮�濮嬫椂闂达細</text>
@@ -56,6 +64,24 @@
                 <text class="time-value">{{group.duration}}鍒嗛挓</text>
               </view>
             </view>
+            
+            <!-- 鍙栨按鍙d俊鎭� -->
+            <view class="intake-info" wx:if="{{group.publishResult && group.publishResult.length > 0}}">
+              <view class="intake-header">鍙栨按鍙d俊鎭�</view>
+              <view class="intake-list">
+                <block wx:for="{{group.publishResult}}" wx:key="intakeName" wx:for-item="intake">
+                  <view class="intake-item {{intake.code === 0 ? 'success' : 'error'}}">
+                    <view class="intake-name">
+                      <text class="intake-status-dot"></text>
+                      <text>{{intake.intakeName}}</text>
+                    </view>
+                    <view class="intake-result" wx:if="{{intake.result}}">
+                      <text>{{intake.result}}</text>
+                    </view>
+                  </view>
+                </block>
+              </view>
+            </view>
           </view>
         </view>
       </block>
diff --git a/pages/irrigationDetail/irrigationDetail.wxss b/pages/irrigationDetail/irrigationDetail.wxss
index eb5eac0..55c152d 100644
--- a/pages/irrigationDetail/irrigationDetail.wxss
+++ b/pages/irrigationDetail/irrigationDetail.wxss
@@ -30,21 +30,43 @@
 .plan-code .label {
   color: #666;
   font-size: 28rpx;
+  margin-right: 8rpx;
 }
 
 .plan-code .value {
   color: #333;
-  font-size: 28rpx;
+  font-size: 32rpx;
   font-weight: 500;
 }
 
-.status-icon {
-  width: 80rpx;
-  height: 80rpx;
+/* 鐘舵�佹爣绛炬牱寮� */
+.plan-status {
+  padding: 4rpx 16rpx;
+  border-radius: 20rpx;
+  font-size: 24rpx;
+  color: #fff;
+  text-align: center;
   margin-left: 20rpx;
-  flex-shrink: 0;
-  margin-top: -10rpx;
-  margin-bottom: -10rpx;
+}
+
+.plan-status.draft {
+  background-color: #9E9E9E;
+}
+
+.plan-status.published {
+  background-color: #90CAF9;
+}
+
+.plan-status.executing {
+  background-color: #2196F3;
+}
+
+.plan-status.completed {
+  background-color: #4CAF50;
+}
+
+.plan-status.terminated {
+  background-color: #F44336;
 }
 
 .time-info, .project-info {
@@ -61,6 +83,7 @@
 .time-info .value, .project-info .value {
   color: #333;
   font-size: 28rpx;
+  font-weight: 500;
 }
 
 /* 椤圭洰鍒楄〃鏍峰紡 */
@@ -150,7 +173,10 @@
 .group-status-indicator {
   display: flex;
   align-items: center;
-  margin-bottom: 16rpx;
+  margin-left: auto;
+  background-color: #f5f7fa;
+  padding: 4rpx 10rpx;
+  border-radius: 8rpx;
 }
 
 .status-dot {
@@ -158,6 +184,7 @@
   height: 16rpx;
   border-radius: 50%;
   margin-right: 8rpx;
+  flex-shrink: 0;
 }
 
 .group-item.pending .status-dot {
@@ -175,6 +202,32 @@
 .status-text {
   font-size: 26rpx;
   color: #666;
+  flex-shrink: 0;
+}
+
+.group-item.pending .status-text {
+  color: #e6c100;
+}
+
+.group-item.in_progress .status-text {
+  color: #4CAF50;
+}
+
+.group-item.completed .status-text {
+  color: #2196F3;
+}
+
+/* 鏍规嵁涓嶅悓鐘舵�佹樉绀轰笉鍚岃儗鏅壊 */
+.group-item.pending .group-status-indicator {
+  background-color: rgba(255, 215, 0, 0.1);
+}
+
+.group-item.in_progress .group-status-indicator {
+  background-color: rgba(76, 175, 80, 0.1);
+}
+
+.group-item.completed .group-status-indicator {
+  background-color: rgba(33, 150, 243, 0.1);
 }
 
 /* 杞亴缁勪俊鎭牱寮� */
@@ -182,11 +235,25 @@
   margin-top: 12rpx;
 }
 
+.group-name-row {
+  display: flex;
+  align-items: center;
+  margin-bottom: 12rpx;
+  width: 100%;
+}
+
+.group-label {
+  font-size: 32rpx;
+  color: #666;
+  margin-right: 8rpx;
+  flex-shrink: 0;
+}
+
 .group-name {
   font-size: 32rpx;
   font-weight: 500;
   color: #333;
-  margin-bottom: 12rpx;
+  flex-shrink: 0;
 }
 
 .group-time-info {
@@ -209,4 +276,67 @@
 .time-value {
   color: #333;
   font-size: 26rpx;
+}
+
+/* 鍙栨按鍙d俊鎭牱寮� */
+.intake-info {
+  margin-top: 20rpx;
+  border-top: 1rpx dashed #e0e0e0;
+  padding-top: 16rpx;
+}
+
+.intake-header {
+  font-size: 28rpx;
+  color: #333;
+  font-weight: 500;
+  margin-bottom: 12rpx;
+}
+
+.intake-list {
+  display: flex;
+  flex-direction: column;
+  gap: 10rpx;
+}
+
+.intake-item {
+  background-color: #f9f9f9;
+  border-radius: 8rpx;
+  padding: 12rpx 16rpx;
+}
+
+.intake-item.success {
+  border-left: 4rpx solid #4CAF50;
+}
+
+.intake-item.error {
+  border-left: 4rpx solid #F44336;
+}
+
+.intake-name {
+  display: flex;
+  align-items: center;
+  font-size: 26rpx;
+  color: #333;
+}
+
+.intake-status-dot {
+  width: 12rpx;
+  height: 12rpx;
+  border-radius: 50%;
+  margin-right: 8rpx;
+}
+
+.intake-item.success .intake-status-dot {
+  background-color: #4CAF50;
+}
+
+.intake-item.error .intake-status-dot {
+  background-color: #F44336;
+}
+
+.intake-result {
+  margin-top: 6rpx;
+  font-size: 24rpx;
+  color: #F44336;
+  padding-left: 20rpx;
 } 
\ No newline at end of file
diff --git a/pages/waterIntake/waterIntake.js b/pages/waterIntake/waterIntake.js
index 5ac5cb2..9305679 100644
--- a/pages/waterIntake/waterIntake.js
+++ b/pages/waterIntake/waterIntake.js
@@ -47,8 +47,6 @@
     openTime: "", //璁″垝寮�娉电殑寮�濮嬫椂闂�
     openTimeText: "",
     isShowOpenTime: "false",
-    isOpenTiming: false, //鏄惁鏄鍒掑紑闃�鏃堕棿鏍峰紡鐨勫紑闃�
-    postMinutes: 0, //瀹氱亴婧夋椂闀跨殑鏃堕棿
     showForceConfirm: false,
     showErrorDialog: false, //閿欒鎻愮ず
     errorData: "",
@@ -136,7 +134,6 @@
       data: data,
       timeout: 180000
     }).then(response => {
-
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
@@ -145,7 +142,6 @@
       wx.reLaunch({
         url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
       });
-
     }).catch(error => {
       // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
       wx.hideLoading();
@@ -156,10 +152,18 @@
           forceIntakeId: intakeId,
           showForceConfirm: true
         })
+      } else if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
       } else {
         this.setData({
           showErrorDialog: true,
-          errorData: error.msg
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
         })
       }
     });
@@ -507,14 +511,14 @@
     });
     const data = {
       intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
-    //   vcId:  app.globalData.vcId, //铏氭嫙鍗D
       minutes: this.data.postMinutes, //鍒嗛挓
       operator: app.globalData.clientId, //鎿嶄綔鍛�
       plannedOpenTime: this.data.openTime
     };
     post({
       url: "wx/valve/planed_open_timed_close",
-      data: data
+      data: data,
+      timeout: 180000
     }).then(response => {
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
@@ -529,10 +533,20 @@
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
-      this.setData({
-        showErrorDialog: true,
-        errorData: error.msg
-      })
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
     });
   },
   //瀹氭椂鍏抽榾寮忓紑闃�
@@ -544,13 +558,13 @@
     });
     const data = {
       intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
-    //   vcId:  app.globalData.vcId, //铏氭嫙鍗D
       minutes: this.data.postMinutes, //鍒嗛挓
       operator: app.globalData.clientId //鎿嶄綔鍛�
     };
     post({
       url: "wx/valve/timed_close",
-      data: data
+      data: data,
+      timeout: 180000
     }).then(response => {
       // 澶勭悊鎴愬姛鍝嶅簲
       console.log('璇锋眰鎴愬姛:', response);
@@ -565,10 +579,20 @@
       wx.hideLoading();
       // 澶勭悊閿欒鍝嶅簲
       console.error('璇锋眰澶辫触:', error);
-      this.setData({
-        showErrorDialog: true,
-        errorData: error.msg
-      })
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
     });
   },
     // 閫氳繃灏忔椂杞崲鎴愬垎閽�
@@ -626,5 +650,110 @@
       isOpenTiming: false,
       radioValue: "0"
     })
+  }, // 瀹氶噺寮�娉垫寜閽�
+  btnOpenOnWater() {
+    if (this.data.waterAmount > 0) {
+      if (this.data.isOpenTiming) {
+        this.quantifyOpenTime();
+      } else {
+        this.quantifyOpen();
+      }
+    } else {
+      wx.showToast({
+        icon: 'error',
+        title: '璇烽�夋嫨鎴栬緭鍏ョ亴婧夋椂闂达紒',
+      })
+    }
+  },//瀹氶噺寮�闃�寮忚鍒掑紑闃�
+  quantifyOpenTime() {
+    const app = getApp();
+    wx.showLoading({
+      title: '姝e湪閫氫俊璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const data = {
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
+      waterAmount: this.data.waterAmount, //姘撮噺
+      operator: app.globalData.clientId, //鎿嶄綔鍛�
+      plannedOpenTime: this.data.openTime
+    };
+    post({
+      url: "wx/valve/planed_open_quantify_close",
+      data: data,
+      timeout: 180000
+    }).then(response => {
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=2' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
+    });
+  },//瀹氶噺寮�闃�
+  quantifyOpen() {
+    const app = getApp();
+    wx.showLoading({
+      title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+      mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+    });
+    const data = {
+      intakeId: this.data.choseItem.intakeId, //鍙栨按鍙D
+      waterAmount: this.data.waterAmount, //姘撮噺
+      operator: app.globalData.clientId //鎿嶄綔鍛�
+    };
+    post({
+      url: "wx/valve/quantify_close",
+      data: data,
+      timeout: 180000
+    }).then(response => {
+      // 澶勭悊鎴愬姛鍝嶅簲
+      console.log('璇锋眰鎴愬姛:', response);
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      //瀹屾垚鍚庡洖鍒伴椤�
+      wx.reLaunch({
+        url: '/pages/home/home?param=1' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+      });
+    }).catch(error => {
+      // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+      wx.hideLoading();
+      // 澶勭悊閿欒鍝嶅簲
+      console.error('璇锋眰澶辫触:', error);
+      if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+        // 澶勭悊瓒呮椂閿欒
+        this.setData({
+          showErrorDialog: true,
+          errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      } else {
+        this.setData({
+          showErrorDialog: true,
+          errorData: error.msg,
+          errorDialogTitle: "寮�闃�閿欒"
+        })
+      }
+    });
   },
 })
\ No newline at end of file
diff --git a/pages/waterIntake/waterIntake.wxss b/pages/waterIntake/waterIntake.wxss
index 58a1612..d538a5b 100644
--- a/pages/waterIntake/waterIntake.wxss
+++ b/pages/waterIntake/waterIntake.wxss
@@ -1,5 +1,5 @@
 .container {
-  padding: 5rpx 20rpx;
+  padding: 0;
   background-color: #fff;
   width: 100%;
   height: 100vh;
@@ -29,48 +29,98 @@
   z-index: 0;
   display: flex;
   flex-direction: column;
-  padding-bottom: 20rpx; /* 澧炲姞搴曢儴濉厖 */
+  padding: 20rpx;
+  background-color: #f5f5f5;
+  box-sizing: border-box;
+  /* 闅愯棌婊氬姩鏉� */
+  -webkit-overflow-scrolling: touch;
+  scrollbar-width: none;
+  -ms-overflow-style: none;
+}
+
+.list-container::-webkit-scrollbar {
+  display: none;
+  width: 0;
+  height: 0;
+  color: transparent;
+  background: transparent;
+}
+
+/* 涓哄井淇″皬绋嬪簭娣诲姞鐗瑰畾鏍峰紡 */
+.list-container {
+  -webkit-overflow-scrolling: touch;
+  scrollbar-width: none;
+  -ms-overflow-style: none;
+  overflow: -moz-scrollbars-none;
 }
 
 .item {
   display: flex;
   align-items: center;
   justify-content: space-between;
-  padding: 15px 20rpx;
-  border-bottom: 1px solid #eee;
+  padding: 30rpx;
+  margin: 0 20rpx 20rpx 10rpx;
+  background-color: #ffffff;
+  border-radius: 12rpx;
+  box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
+  transition: all 0.3s ease;
+  box-sizing: border-box;
+  width: calc(100% - 20rpx);
+}
+
+.item:active {
+  transform: scale(0.98);
+  box-shadow: 0 1rpx 5rpx rgba(0, 0, 0, 0.1);
 }
 
 .item-left {
   display: flex;
   align-items: center;
+  flex: 1;
+  padding-right: 20rpx;
 }
 
-.item-left text{
-  font-size: 40rpx;
-  min-width: 150rpx;
+.item-img-left {
+  width: 48rpx;
+  height: 48rpx;
+  margin-right: 20rpx;
+}
+
+.water-intake-name {
+  font-size: 36rpx !important;
+  color: #333;
+  font-weight: 500;
 }
 
 .item-img {
-  width: 40rpx;
-  height: 40rpx;
-  margin-left: 20rpx;
+  width: 32rpx;
+  height: 32rpx;
+  margin-left: 16rpx;
 }
 
 .item-button {
   display: flex;
-  height: 80rpx;
-  padding: 0 60rpx;
-  background-color: #1890FF;
+  height: 64rpx;
+  min-width: 120rpx;
+  padding: 0 32rpx;
+  background: linear-gradient(135deg, #1890FF, #096DD9);
   color: white;
   border: none;
-  border-radius: 20rpx;
-  font-size: 30rpx;
+  border-radius: 32rpx;
+  font-size: 28rpx;
+  font-weight: 500;
   align-items: center;
   justify-content: center;
+  box-shadow: 0 4rpx 12rpx rgba(24, 144, 255, 0.2);
+  transition: all 0.3s ease;
+  margin-left: auto;
 }
+
 .item-button:active {
-  background-color: #7c7c7c; /* Change to a darker color when pressed */
+  transform: scale(0.95);
+  box-shadow: 0 2rpx 6rpx rgba(24, 144, 255, 0.2);
 }
+
 .indicator {
   width: 100%;
   height: 3px;
@@ -138,7 +188,6 @@
   padding-bottom: 10rpx; /* 澧炲姞搴曢儴濉厖 */
 }
 
-
 .error-dialog{
   --td-dialog-title-color:red;
   --td-dialog-title-font-size:45rpx;
@@ -158,24 +207,6 @@
 .result-item {
   padding: 20rpx;
   border-bottom: 1px solid #eaeaea;
-}
-
-.item-img-left {
-  width: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-  height: 40rpx;
-  /* 鏍规嵁闇�瑕佽皟鏁村浘鏍囧ぇ灏� */
-
-}
-
-.item-img {
-  width: 40rpx;
-  height: 40rpx;
-  margin-left: 20rpx;
-}
-.water-intake-name {
-  font-size: 50rpx !important;
-  margin-left: 15rpx;
 }
 
 .item-balance-img {
@@ -209,24 +240,6 @@
     color: #FF6A6A;
     font-size: 50rpx;
     margin-left: 5rpx;
-  }
-  
-  .item-button {
-    margin-left: auto;
-    /* 灏嗘寜閽浐瀹氬湪鍙宠竟 */
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    /* 浣挎寜閽唴閮ㄦ按骞冲拰鍨傜洿灞呬腑 */
-    background-color: #32CD32;
-    color: white;
-    padding-left: 40rpx;
-    padding-right: 40rpx;
-    padding-bottom: 10rpx;
-    padding-top: 10rpx;
-    border-radius: 30rpx;
-    font-size: 35rpx;
-    border: none;
   }
   
   .item-button-gray {
@@ -265,14 +278,6 @@
     display: flex;
     align-items: flex-end;
     /* 搴曢儴瀵归綈 */
-  }
-  
-  .list-container {
-    display: flex;
-    flex-grow: 1; /* 鍗犳弧鍓╀綑楂樺害 */
-    padding-bottom: 30rpx;
-    height: 100%;
-    flex-direction: column; /* 纭繚鍐呴儴鍏冪礌鎸夊垪鎺掑垪 */
   }
   
   .dialog {
@@ -422,15 +427,6 @@
     font-size: 30rpx;
   }
 
-  .item {
-    background-color: #1890FF;
-    margin-top: 20rpx;
-    margin-left: 20rpx;
-    margin-right: 20rpx;
-    padding: 30rpx;
-    border-radius: 30rpx;
-  }
-  
   .item-gray {
     background-color: #D3D3D3;
     margin-top: 20rpx;
diff --git a/utils/projectConfig.js b/utils/projectConfig.js
new file mode 100644
index 0000000..3c6c19a
--- /dev/null
+++ b/utils/projectConfig.js
@@ -0,0 +1,31 @@
+// 椤圭洰閰嶇疆锛屽寘鍚悇椤圭洰鐨勪笓鏈夎缃�
+const PROJECT_CONFIG = {
+    JYG: {
+        tag: 'ym',
+        displayName: '鍢夊唱鍏抽」鐩�',
+        needLogin: true // 闇�瑕佺櫥褰�
+    },
+    MQ: {
+        tag: 'mq',
+        displayName: '姘戝嫟椤圭洰',
+        operatorId: '2025033115305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+        needLogin: false // 涓嶉渶瑕佺櫥褰�
+    },
+    TEST: {
+        tag: 'ym',
+        displayName: '娴嬭瘯椤圭洰',
+        operatorId: '2024122617295800009', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+        vcId: '2024122617295800009',
+        needLogin: false // 涓嶉渶瑕佺櫥褰�
+    },
+    SCHOOL: {
+        tag: 'XX',
+        displayName: '瀛︽牎椤圭洰',
+        operatorId: '2025040215305200006', // 缁熶竴ID鐢ㄤ簬operator鍜宑lientId
+        needLogin: true // 涓嶉渶瑕佺櫥褰�
+    }
+};
+
+module.exports = {
+    PROJECT_CONFIG
+}; 
\ No newline at end of file

--
Gitblit v1.8.0