沙盘演示系统应用的微信小程序
pages/home/home.js
@@ -34,7 +34,8 @@
    showInfoDialog: false,
    showTipDialog: false,
    options: '',
    showUnBind: false
    showUnBind: false,
    useTestData: false  // 新增:是否使用测试数据的标志
  },
  openValve: function (e) {
@@ -58,6 +59,14 @@
    }).exec();
  },
  startPullDownRefresh() {
    if (this.data.useTestData) {
      this.setData({
        isRefreshing: true
      });
      this.getOpenList();
      return;
    }
    if (this.data.isLogin) {
      if (!this.data.isWXRefreshing) {
        var self = this;
@@ -105,6 +114,17 @@
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    // 直接加载测试数据
    if (this.data.useTestData) {
      this.setData({
        isLogin: true, // 设置为已登录状态以便能看到测试数据
        userName: "测试用户",
        userPhone: "135****6789"
      });
      this.getOpenList();
      return;
    }
    //判断本地是否保存sessionId
    if (storage.isHasKeySync("sessionId")) {
      const app = getApp();
@@ -344,10 +364,83 @@
    });
  },
  /**
   * 生成测试数据 - 新增函数
   */
  generateTestData() {
    const now = new Date();
    const year = now.getFullYear();
    const month = String(now.getMonth() + 1).padStart(2, '0');
    const day = String(now.getDate()).padStart(2, '0');
    const hours = String(now.getHours()).padStart(2, '0');
    const minutes = String(now.getMinutes()).padStart(2, '0');
    const seconds = String(now.getSeconds()).padStart(2, '0');
    const dateString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    const orderBase = `TEST-${year}${month}${day}-`;
    const testData = [
      {
        intakeNum: "取水口1",
        isOnLine: true,
        dt: dateString,
        waterInstant: "1.23",
        orderNo: orderBase + "001",
        rtuAddr: "TEST-RTU-001",
        vcNum: "TEST-VC-001",
        planned: false,
        time: this.extractTime(dateString),
        deleteText: "删除",
        displayText: "关阀",
        isOpen: true
      },
      {
        intakeNum: "取水口2",
        isOnLine: false,
        dt: dateString,
        waterInstant: "2.45",
        orderNo: orderBase + "002",
        rtuAddr: "TEST-RTU-002",
        vcNum: "TEST-VC-002",
        planned: false,
        time: this.extractTime(dateString),
        deleteText: "删除",
        displayText: "关阀",
        isOpen: true
      },
      {
        intakeNum: "取水口3",
        isOnLine: true,
        dt: dateString,
        waterInstant: "3.67",
        orderNo: orderBase + "003",
        rtuAddr: "TEST-RTU-003",
        vcNum: "TEST-VC-003",
        planned: true,
        time: this.extractTime(dateString),
        deleteText: "删除",
        displayText: "取消",
        isOpen: true
      }
    ];
    return testData;
  },
  /**
   * 获取为关阀记录
   */
  getOpenList() {
    if (this.data.isLogin) {
      // 如果设置了使用测试数据,则直接使用测试数据
      if (this.data.useTestData) {
        const testData = this.generateTestData();
        this.setData({
          listData: testData,
          isRefreshing: false,
          isWXRefreshing: false,
        });
        this.updateDisplayText();
        return;
      }
      const app = getApp();
      const params = {
        url: 'wx/valve/get',
@@ -394,6 +487,30 @@
    this.setData({
      showConfirm: false
    });
    if (this.data.useTestData) {
      // 测试数据模式下,模拟关阀操作
      wx.showLoading({
        title: '正在关阀请稍候...',
        mask: true
      });
      // 模拟请求延迟
      setTimeout(() => {
        wx.hideLoading();
        // 从列表中移除被关闭的阀门
        const updatedList = this.data.listData.filter(item =>
          item.orderNo !== this.data.myItem.orderNo
        );
        this.setData({
          listData: updatedList,
          showTipDialog: true,
          tipData: "关阀命令下发成功,约20-60秒后可刷新快速关阀列表查看执行结果。"
        });
      }, 1500);
      return;
    }
    this.postCloseValaue(this.data.myItem.orderNo, this.data.myItem.rtuAddr, this.data.myItem.vcNum);
  },
  //根据session获取农户信息
@@ -563,6 +680,36 @@
  onDelete(e) {
    const item = e.currentTarget.dataset.item;
    const that = this;
    if (this.data.useTestData) {
      // 测试数据模式下,模拟删除操作
      wx.showLoading({
        title: '正在强制删除请稍候...',
        mask: true
      });
      // 模拟请求延迟
      setTimeout(() => {
        wx.hideLoading();
        // 从列表中移除被删除的项
        const updatedList = this.data.listData.filter(listItem =>
          listItem.orderNo !== item.orderNo
        );
        this.setData({
          listData: updatedList
        });
        wx.showToast({
          title: '删除成功',
          icon: 'success',
          duration: 2000
        });
      }, 1500);
      return;
    }
    wx.showLoading({
      title: '正在强制删除请稍候...', // 加载提示文字
      mask: true // 是否显示透明蒙层,防止触摸穿透,默认为 false