From a2c5def7cf9562312a54216bc195a6ea071a26c5 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 21 一月 2026 17:38:36 +0800
Subject: [PATCH] 2026.1.21

---
 pages/mLedger/ledgerupload/ledgerupload.js |  284 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 226 insertions(+), 58 deletions(-)

diff --git a/pages/mLedger/ledgerupload/ledgerupload.js b/pages/mLedger/ledgerupload/ledgerupload.js
index 7257283..38baa06 100644
--- a/pages/mLedger/ledgerupload/ledgerupload.js
+++ b/pages/mLedger/ledgerupload/ledgerupload.js
@@ -1,76 +1,168 @@
 // pages/mLedger/ledgerupload/ledgerupload.js
-import bUploadLedger from '../behaviors/bUploadLedger'
-import ledgerservice from "../../../service/ledgerservice"
-import moment from '../../../utils/moment.min'
-import bLoadingToast from '../../../base/behaviors/bLoadingToast'
+import bUploadLedger from '../behaviors/bUploadLedger';
+import bUploadSelfPatrol from '../behaviors/bUploadSelfPatrol';
+import ledgerservice from '../../../service/ledgerservice';
+import selfpatrolservice from '../../../service/selfpatrolservice';
+import moment from '../../../utils/moment.min';
+import bLoadingToast from '../../../base/behaviors/bLoadingToast';
 
-const app = getApp()
+const app = getApp();
 
 Page({
-  behaviors: [bUploadLedger, bLoadingToast],
+  behaviors: [bUploadLedger, bLoadingToast, bUploadSelfPatrol],
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
+    barTitle: '涓婁紶鍙拌处',
     imgFiles: [],
 
     remark: '',
     remarkDisable: false,
 
-    previewImageUrls:[],
+    previewImageUrls: [],
     previewCurrent: 0,
     showPreview: false,
 
+    // 涓婁紶妯″紡锛�0锛氭櫘閫氫笂浼狅紱1锛氫笉娑夊強锛�2锛氬欢鐢ㄥ鍒跺巻鍙茶褰�
     uploadMode: 0,
-  },
+    // 绫诲瀷锛�0锛氬彴璐﹀拰鑷贰鏌ワ紱1锛氬簲鎬ヨ嚜宸℃煡
+    type: 0,
+    // 鍘嗗彶鏈�鏂拌褰�
+    lastLedger: undefined,
 
+    
+  },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-    var that = this
-    this.getOpenerEventChannel().on('acceptDataFromOpenerPage', function(data) {
-      that.setData({
-        ledger: data.ledger,
-        indexGroup: data.indexGroup
-      })
-      if (data.barTitle) {
+    var that = this;
+    this.getOpenerEventChannel().on(
+      'acceptDataFromOpenerPage',
+      function (data) {
+        data.ledger.description = data.ledger.description.replaceAll(
+          '\\n',
+          '\n',
+        );
+        that.setData({
+          ledger: data.ledger,
+          indexGroup: data.indexGroup,
+          type: data.type,
+          taskId: data.taskId,
+          reUpload: data.reUpload,
+          detail: data.detail,
+        });
+        if (data.barTitle) {
+          that.data.barTitle = data.barTitle;
+        }
         wx.setNavigationBarTitle({
-          title: data.barTitle,
-        })
-      }
+          title: that.data.barTitle,
+        });
 
-      that.checkStatus()
-    })
+        that.checkStatus();
+
+        // 瀵逛簬鍙鍒剁殑骞朵笖涓嶆槸閲嶄紶鐘舵�佺殑鍙拌处锛岃幏鍙栨渶鏂扮殑鍘嗗彶璁板綍鐢ㄤ簬澶嶅埗
+        if (data.ledger.copy && !data.reUpload) {
+          that.getLatestLedger()
+        }
+      },
+    );
   },
 
+  /**
+   * 鍒ゆ柇褰撳墠鍙拌处鐘舵�侊紝濡傛灉鏈変笂浼犺褰曞垯鏄剧ず璁板綍
+   */
   checkStatus() {
-    if (this.data.ledger.path1) {
-      let imgFiles = this.data.ledger.path1
-      let remark = this.data.ledger.remark1 == null ? '' : this.data.ledger.remark1
-      let remarkDisable = true
-      this.setData({imgFiles, remark, remarkDisable})
-    }else if (this.data.ledger.upLoad) {
-      var that = this
-      var userId = app.globalData.accessToken.userId
-      var typeId = this.data.ledger.ledgerSubTypeId
-      var sceneType = app.globalData.userInfo.extension2
-      var time = moment().format('YYYY-MM-DD')
-      ledgerservice.getLedgerDetail(userId, typeId, sceneType, time, {
-        success (res) {
-          if (res.length > 0) {
-            let detail = res[0]
-            if (detail.upLoad) {
-              let imgFiles = detail.path1
-              let remark = detail.remark1 == null ? '' : detail.remark1
-              let remarkDisable = true
-              that.setData({imgFiles, remark, remarkDisable})
+    if (this.data.reUpload) {
+      //do nothing
+      return;
+    } else if (this.data.ledger.path1) {
+      let imgFiles = this.data.ledger.path1;
+      let remark = this.data.remark;
+      if (this.data.ledger.remark1) remark = this.data.ledger.remark1;
+      let remarkDisable = true;
+      this.setData({
+        imgFiles,
+        remark,
+        remarkDisable
+      });
+    } else if (this.data.ledger.upLoad) {
+      var that = this;
+      var userId = app.globalData.accessToken.userId;
+      var typeId = this.data.ledger.ledgerSubTypeId;
+      var taskId = this.data.taskId;
+      var sceneType = app.globalData.userInfo.extension2;
+      var time = moment().format('YYYY-MM-DD');
+      if (this.data.type == 0) {
+        ledgerservice.getLedgerDetail(userId, typeId, sceneType, time, {
+          success(res) {
+            if (res.length > 0) {
+              let detail = res[0];
+              if (detail.upLoad) {
+                let imgFiles = detail.path1;
+                let remark = detail.remark1 ? detail.remark1 : '';
+                let remarkDisable = true;
+                that.setData({
+                  imgFiles,
+                  remark,
+                  remarkDisable,
+                  detail
+                });
+              }
             }
-          }
-        }
-      })
+          },
+        });
+      } else {
+        selfpatrolservice.getSelfPatrolDetail(userId, typeId, taskId, {
+          success(res) {
+            if (res.success) {
+              let detail = res.data;
+              if (detail.upLoad) {
+                let imgFiles = detail.path1;
+                let remark = detail.remark1 ? detail.remark1 : '';
+                let remarkDisable = true;
+                that.setData({
+                  imgFiles,
+                  remark,
+                  remarkDisable,
+                  detail
+                });
+              }
+            }
+          },
+        });
+      }
     }
+  },
+
+  // 鑾峰彇鏈�鏂颁竴娆$殑鍘嗗彶璁板綍锛岀敤浜庡欢鐢ㄥ鍒跺姛鑳�
+  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
+        })
+      }
+    });
   },
 
   // 涓婁紶鍙拌处
@@ -79,12 +171,12 @@
       wx.showToast({
         title: '璇疯嚦灏戦�夋嫨涓�寮犲浘鐗�',
         icon: 'none',
-      })
+      });
     } else {
       this.setData({
         showDialog: true,
-        uploadMode: 0
-      })
+        uploadMode: 0,
+      });
     }
   },
 
@@ -92,30 +184,96 @@
   onSubmitNoLedger() {
     this.setData({
       showDialog: true,
-      uploadMode: 1
-    })
+      uploadMode: 1,
+    });
+  },
+
+  // 寤剁敤澶嶅埗鍙拌处
+  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.uploadMode == 0) {
-      this._uploadLedger()      
-    } else {
-      this._uploadNoLedger()
+    });
+    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',
+      success: res => {
+        res.eventChannel.emit('acceptDataFromOpenerPage', {
+          ledger: this.data.ledger,
+          detail: this.data.detail,
+          type: this.data.type,
+          indexGroup: this.data.indexGroup,
+          taskId: this.data.taskId,
+          barTitle: `閲嶆柊${this.data.barTitle}`,
+          reUpload: true,
+        });
+      },
+      events: {
+        uploadOver: data => {
+          this.checkStatus();
+        },
+      },
+    });
   },
 
   //鍙拌处鎻愪氦鎴愬姛鍚�
   _success(res) {
     this.getOpenerEventChannel().emit('uploadOver', {
-      indexGroup: this.data.indexGroup
-    })
+      indexGroup: this.data.indexGroup,
+    });
     wx.navigateBack({
       delta: 1,
-    })
+    });
   },
 
   //鍥剧墖鏀惧ぇ棰勮
@@ -127,7 +285,17 @@
     this.setData({
       previewImageUrls,
       previewCurrent: index,
-      showPreview: true
+      showPreview: true,
     });
   },
-})
\ No newline at end of file
+
+  // 鍙拌处澶囨敞鐩戝惉
+  onRemarkChange(e) {
+    const {
+      value
+    } = e.detail;
+    this.setData({
+      remark: value
+    });
+  },
+});
\ No newline at end of file

--
Gitblit v1.9.3