riku
2026-01-22 f14ea940fb32105de8b592992e3f53c62f31d84d
pages/mLedger/ledgerupload/ledgerupload.js
@@ -24,7 +24,12 @@
    previewCurrent: 0,
    showPreview: false,
    // 上传模式,0:普通上传;1:不涉及;2:延用复制历史记录
    uploadMode: 0,
    // 类型,0:台账和自巡查;1:应急自巡查
    type: 0,
    // 历史最新记录
    lastLedger: undefined,
  },
  /**
@@ -35,12 +40,13 @@
    this.getOpenerEventChannel().on(
      'acceptDataFromOpenerPage',
      function (data) {
        data.ledger.description = data.ledger.description.replaceAll(
        data.ledger.description = data.ledger.description?.replaceAll(
          '\\n',
          '\n',
        );
        that.setData({
          ledger: data.ledger,
          time: moment(data.ledger.updateDate).format('YYYY年MM月DD日'),
          indexGroup: data.indexGroup,
          type: data.type,
          taskId: data.taskId,
@@ -55,8 +61,18 @@
        });
        that.checkStatus();
        // 对于可复制的并且不是重传状态的台账,获取最新的历史记录用于复制
        if (data.ledger.copy && !data.reUpload) {
          that.getLatestLedger();
        }
      },
    );
    this.setData({
      loadingText: '上传中',
      loadCompleteText: '上传完成',
      timeoutText: '上传超时',
    });
  },
  /**
@@ -66,12 +82,16 @@
    if (this.data.reUpload) {
      //do nothing
      return;
    } else if (this.data.ledger.path1) {
      let imgFiles = this.data.ledger.path1;
    } else if (this.data.ledger._files) {
      let imgFiles = this.data.ledger._files;
      let remark = this.data.remark;
      if (this.data.ledger.remark1) remark = this.data.ledger.remark1;
      let remarkDisable = true;
      this.setData({ imgFiles, remark, remarkDisable });
      this.setData({
        imgFiles,
        remark,
        remarkDisable,
      });
    } else if (this.data.ledger.upLoad) {
      var that = this;
      var userId = app.globalData.accessToken.userId;
@@ -85,10 +105,15 @@
            if (res.length > 0) {
              let detail = res[0];
              if (detail.upLoad) {
                let imgFiles = detail.path1;
                let imgFiles = detail._files;
                let remark = detail.remark1 ? detail.remark1 : '';
                let remarkDisable = true;
                that.setData({ imgFiles, remark, remarkDisable, detail });
                that.setData({
                  imgFiles,
                  remark,
                  remarkDisable,
                  detail,
                });
              }
            }
          },
@@ -99,10 +124,15 @@
            if (res.success) {
              let detail = res.data;
              if (detail.upLoad) {
                let imgFiles = detail.path1;
                let imgFiles = detail._files;
                let remark = detail.remark1 ? detail.remark1 : '';
                let remarkDisable = true;
                that.setData({ imgFiles, remark, remarkDisable, detail });
                that.setData({
                  imgFiles,
                  remark,
                  remarkDisable,
                  detail,
                });
              }
            }
          },
@@ -111,11 +141,51 @@
    }
  },
  // 获取最新一次的历史记录,用于延用复制功能
  getLatestLedger() {
    var userId = app.globalData.accessToken.userId;
    var typeId = this.data.ledger.ledgerSubTypeId;
    var sceneType = app.globalData.userInfo.extension2;
    this.setData({
      latestLedgerLoading: true,
    });
    ledgerservice.getLedgerDetail(userId, typeId, sceneType, null, {
      success: res => {
        if (res.length > 0) {
          const ledger = res[0];
          this.setData({
            lastLedger: {
              ...ledger,
              _updateTimeStr: moment(ledger.updateDate).format(
                'YYYY年MM月DD日',
              ),
            },
          });
        }
      },
      complete: () => {
        this.setData({
          latestLedgerLoading: false,
        });
      },
    });
  },
  uploadFileFail(e) {
    const { type, index } = e.detail;
    if (type == 1) {
      wx.showToast({
        title: `文件过大`,
        icon: 'error',
      });
    }
  },
  // 上传台账
  onSubmit: function () {
    if (this.data.imgFiles.length == 0) {
      wx.showToast({
        title: '请至少选择一张图片',
        title: '请至少选择一个文件',
        icon: 'none',
      });
    } else {
@@ -134,26 +204,62 @@
    });
  },
  // 延用复制台账
  onCopyLedger() {
    if (this.data.latestLedgerLoading) {
      return;
    } else if (this.data.lastLedger == undefined) {
      wx.showToast({
        title: '没有可延用的记录',
        icon: 'none',
      });
    } else {
      this.setData({
        showDialog: true,
        uploadMode: 2,
      });
    }
  },
  //提交台账
  submitLedger() {
    this.setData({
      showDialog: false,
    });
    if (this.data.uploadMode == 0) {
      if (this.data.type == 0) {
        this._uploadLedger();
      } else {
        this._uploadSelfPatrol();
      }
    } else {
      if (this.data.type == 0) {
        this._uploadNoLedger();
      } else {
        this._uploadNoSelfPatrol();
      }
    switch (this.data.uploadMode) {
      case 0:
        if (this.data.type == 0) {
          this._uploadLedger();
        } else {
          this._uploadSelfPatrol();
        }
        break;
      case 1:
        if (this.data.type == 0) {
          this._uploadNoLedger();
        } else {
          this._uploadNoSelfPatrol();
        }
        break;
      case 2:
        if (this.data.type == 0) {
          const { lastLedger } = this.data;
          const copyLedgerList = [
            {
              subTypeId: lastLedger.ledgerSubTypeId,
              time: `${lastLedger.year}-${lastLedger.month}`,
            },
          ];
          this._uploadCopyLedger(copyLedgerList);
        }
        break;
      default:
        break;
    }
  },
  // 跳转重传界面
  reUpload() {
    wx.navigateTo({
      url: '/pages/mLedger/ledgerupload/ledgerupload',
@@ -189,7 +295,9 @@
  //图片放大预览
  previewImage(e) {
    const { index } = e.currentTarget.dataset;
    const previewImageUrls = this.data.imgFiles;
    const previewImageUrls = this.data.imgFiles
      .filter(f => f.type == 'image')
      .map(f => f.url);
    this.setData({
      previewImageUrls,
      previewCurrent: index,
@@ -197,8 +305,11 @@
    });
  },
  // 台账备注监听
  onRemarkChange(e) {
    const { value } = e.detail;
    this.setData({ remark: value });
    this.setData({
      remark: value,
    });
  },
});