From f14ea940fb32105de8b592992e3f53c62f31d84d Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 22 一月 2026 16:42:51 +0800
Subject: [PATCH] 2026.1.22

---
 pages/mLedger/ledgerupload/ledgerupload.js |  157 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 134 insertions(+), 23 deletions(-)

diff --git a/pages/mLedger/ledgerupload/ledgerupload.js b/pages/mLedger/ledgerupload/ledgerupload.js
index 2544bb5..df3c757 100644
--- a/pages/mLedger/ledgerupload/ledgerupload.js
+++ b/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骞碝M鏈圖D鏃�'),
           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骞碝M鏈圖D鏃�',
+              ),
+            },
+          });
+        }
+      },
+      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,
+    });
   },
 });

--
Gitblit v1.9.3