From e1dd822239ce5b1fd85462c95b264b300153a4cf Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期二, 03 十一月 2026 21:45:00 +0800
Subject: [PATCH] 修改了回款名字

---
 src/main.js                                             |    2 
 src/components/AttachmentPreviewPane/index.vue          |   77 ++++++++++++++
 src/views/project/donatebaseinfo/index.vue              |   14 +-
 src/views/project/statistics/chargeStatistics/index.vue |    4 
 src/views/project/unitCost/organfee/index.vue           |  103 +++++++++++++-------
 src/views/project/unitCost/index.vue                    |    4 
 src/components/FilePreview/index.vue                    |   75 ++++++++++++++
 7 files changed, 224 insertions(+), 55 deletions(-)

diff --git a/src/components/AttachmentPreviewPane/index.vue b/src/components/AttachmentPreviewPane/index.vue
index d832651..14f711d 100644
--- a/src/components/AttachmentPreviewPane/index.vue
+++ b/src/components/AttachmentPreviewPane/index.vue
@@ -45,10 +45,13 @@
         <img
           :src="file.url"
           class="attachment-preview-pane__image"
-          :style="{
-            transform: 'scale(' + scale + ') rotate(' + deg + 'deg)'
-          }"
+          :class="{ 'is-dragging': dragging }"
+          :style="imageStyle"
+          draggable="false"
           alt="鍥剧墖棰勮"
+          @mousedown="startDrag"
+          @click="toggleZoom"
+          @dragstart.prevent
         />
       </div>
       <iframe
@@ -76,10 +79,32 @@
   data() {
     return {
       scale: 1,
-      deg: 0
+      deg: 0,
+      offsetX: 0,
+      offsetY: 0,
+      dragging: false,
+      dragMoved: false,
+      dragStartX: 0,
+      dragStartY: 0,
+      dragOriginX: 0,
+      dragOriginY: 0
     };
   },
   computed: {
+    imageStyle() {
+      return {
+        transform:
+          "translate(" +
+          this.offsetX +
+          "px," +
+          this.offsetY +
+          "px) scale(" +
+          this.scale +
+          ") rotate(" +
+          this.deg +
+          "deg)"
+      };
+    },
     fileType() {
       if (!this.file) {
         return "other";
@@ -116,7 +141,45 @@
     reset() {
       this.scale = 1;
       this.deg = 0;
+      this.offsetX = 0;
+      this.offsetY = 0;
+    },
+    startDrag(e) {
+      if (e.button !== 0) return;
+      this.dragging = true;
+      this.dragMoved = false;
+      this.dragStartX = e.clientX;
+      this.dragStartY = e.clientY;
+      this.dragOriginX = this.offsetX;
+      this.dragOriginY = this.offsetY;
+      document.addEventListener("mousemove", this.onDragMove);
+      document.addEventListener("mouseup", this.onDragEnd);
+    },
+    onDragMove(e) {
+      if (!this.dragging) return;
+      const dx = e.clientX - this.dragStartX;
+      const dy = e.clientY - this.dragStartY;
+      if (Math.abs(dx) > 3 || Math.abs(dy) > 3) {
+        this.dragMoved = true;
+      }
+      this.offsetX = this.dragOriginX + dx;
+      this.offsetY = this.dragOriginY + dy;
+    },
+    onDragEnd() {
+      this.dragging = false;
+      document.removeEventListener("mousemove", this.onDragMove);
+      document.removeEventListener("mouseup", this.onDragEnd);
+    },
+    toggleZoom() {
+      if (this.dragMoved) {
+        this.dragMoved = false;
+        return;
+      }
+      this.scale = this.scale === 1 ? 1.5 : 1;
     }
+  },
+  beforeDestroy() {
+    this.onDragEnd();
   }
 };
 </script>
@@ -156,6 +219,12 @@
   max-height: 100%;
   transition: transform 0.2s ease;
   transform-origin: center center;
+  cursor: grab;
+  user-select: none;
+}
+.attachment-preview-pane__image.is-dragging {
+  cursor: grabbing;
+  transition: none;
 }
 .attachment-preview-pane__pdf {
   flex: 1 1 auto;
diff --git a/src/components/FilePreview/index.vue b/src/components/FilePreview/index.vue
index e80dc0e..b2ea45c 100644
--- a/src/components/FilePreview/index.vue
+++ b/src/components/FilePreview/index.vue
@@ -92,11 +92,13 @@
               <img
                 :src="currentFile.previewUrl"
                 class="file-preview__image"
-                :style="{
-                  transform:
-                    'scale(' + imageScale + ') rotate(' + imageRotate + 'deg)'
-                }"
+                :class="{ 'is-dragging': imageDragging }"
+                :style="imageStyle"
+                draggable="false"
                 alt="鍥剧墖棰勮"
+                @mousedown="startImageDrag"
+                @click="toggleImageZoom"
+                @dragstart.prevent
               />
             </div>
           </div>
@@ -158,12 +160,34 @@
       currentIndex: 0,
       imageScale: 1,
       imageRotate: 0,
+      imageOffsetX: 0,
+      imageOffsetY: 0,
+      imageDragging: false,
+      imageDragMoved: false,
+      imageDragStartX: 0,
+      imageDragStartY: 0,
+      imageDragOriginX: 0,
+      imageDragOriginY: 0,
       fullscreen: false
     };
   },
   computed: {
     currentFile() {
       return this.previewFiles[this.currentIndex] || null;
+    },
+    imageStyle() {
+      return {
+        transform:
+          "translate(" +
+          this.imageOffsetX +
+          "px," +
+          this.imageOffsetY +
+          "px) scale(" +
+          this.imageScale +
+          ") rotate(" +
+          this.imageRotate +
+          "deg)"
+      };
     }
   },
   methods: {
@@ -334,6 +358,41 @@
     resetImage() {
       this.imageScale = 1;
       this.imageRotate = 0;
+      this.imageOffsetX = 0;
+      this.imageOffsetY = 0;
+    },
+    startImageDrag(e) {
+      if (e.button !== 0) return;
+      this.imageDragging = true;
+      this.imageDragMoved = false;
+      this.imageDragStartX = e.clientX;
+      this.imageDragStartY = e.clientY;
+      this.imageDragOriginX = this.imageOffsetX;
+      this.imageDragOriginY = this.imageOffsetY;
+      document.addEventListener("mousemove", this.onImageDrag);
+      document.addEventListener("mouseup", this.endImageDrag);
+    },
+    onImageDrag(e) {
+      if (!this.imageDragging) return;
+      const dx = e.clientX - this.imageDragStartX;
+      const dy = e.clientY - this.imageDragStartY;
+      if (Math.abs(dx) > 3 || Math.abs(dy) > 3) {
+        this.imageDragMoved = true;
+      }
+      this.imageOffsetX = this.imageDragOriginX + dx;
+      this.imageOffsetY = this.imageDragOriginY + dy;
+    },
+    endImageDrag() {
+      this.imageDragging = false;
+      document.removeEventListener("mousemove", this.onImageDrag);
+      document.removeEventListener("mouseup", this.endImageDrag);
+    },
+    toggleImageZoom() {
+      if (this.imageDragMoved) {
+        this.imageDragMoved = false;
+        return;
+      }
+      this.imageScale = this.imageScale === 1 ? 1.5 : 1;
     },
     handleDownload() {
       const file = this.currentFile;
@@ -357,6 +416,7 @@
       }
     },
     handleClosed() {
+      this.endImageDrag();
       this.revokeUrls();
       this.previewFiles = [];
       this.fileList = [];
@@ -373,6 +433,7 @@
     }
   },
   beforeDestroy() {
+    this.endImageDrag();
     this.revokeUrls();
   }
 };
@@ -430,6 +491,12 @@
   max-height: 100%;
   transition: transform 0.2s ease;
   transform-origin: center center;
+  cursor: grab;
+  user-select: none;
+}
+.file-preview__image.is-dragging {
+  cursor: grabbing;
+  transition: none;
 }
 .file-preview__image-pane {
   width: 100%;
diff --git a/src/main.js b/src/main.js
index 11ed65b..14f631d 100644
--- a/src/main.js
+++ b/src/main.js
@@ -144,7 +144,7 @@
 Vue.config.productionTip = false
 
 // 鍓嶇鏋勫缓鏍囪瘑锛氱敤浜庣‘璁ゆ祻瑙堝櫒瀹為檯鍔犺浇鐨勬槸鍝竴鐗堜唬鐮�
-window.__APP_BUILD__ = '2026-11-03-PDF-PREVIEW-15'
+window.__APP_BUILD__ = '2026-11-03-PDF-PREVIEW-17'
 
 const app = new Vue({
   el: '#app',
diff --git a/src/views/project/donatebaseinfo/index.vue b/src/views/project/donatebaseinfo/index.vue
index c524778..c283ca1 100644
--- a/src/views/project/donatebaseinfo/index.vue
+++ b/src/views/project/donatebaseinfo/index.vue
@@ -181,7 +181,7 @@
       border
       :default-sort="{ prop: 'donatetime', order: 'descending' }"
     >
-      <!-- <el-table-column label="鎶ュ憡鏃堕棿" align="center" prop="id" /> -->
+      
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column
         label="妗堜緥鏃堕棿"
@@ -224,7 +224,7 @@
       <el-table-column
         label="鍖荤枟鏈烘瀯"
         align="center"
-        prop="treatmenthospitalname" width="220"
+        prop="treatmenthospitalname" width="250"
       />
       <el-table-column label="琛�鍨�" align="center" prop="bloodtype" width="80">
         <template slot-scope="scope">
@@ -254,14 +254,18 @@
         prop="reportername"
         width="100"
       />
-      
+      <el-table-column prop="reporttime" label="鎶ュ憡鏃堕棿">
+  <template slot-scope="scope">
+    {{ scope.row.reporttime ? parseTime(scope.row.reporttime, "{y}-{m}-{d}") : "" }}
+  </template>
+</el-table-column>      
          <el-table-column
         label="鐜版墍鍦ㄥ湴甯�"
         align="center"
         prop="registercityname"
         width="150"
       />
-      <el-table-column
+      <!-- <el-table-column
         label="鎹愮尞杩涘害"
         align="center"
         prop="recordstate"
@@ -273,7 +277,7 @@
             :value="scope.row.recordstate"
           />
         </template>
-      </el-table-column>
+      </el-table-column> -->
      
       <el-table-column
         label="鎹愮尞杩涘害"
diff --git a/src/views/project/statistics/chargeStatistics/index.vue b/src/views/project/statistics/chargeStatistics/index.vue
index d5ec2bc..f9a90bf 100644
--- a/src/views/project/statistics/chargeStatistics/index.vue
+++ b/src/views/project/statistics/chargeStatistics/index.vue
@@ -81,7 +81,7 @@
       show-summary
     >
       <el-table-column label="搴忓彿" align="center" prop="id" width="80" />
-      <el-table-column label="鍖婚櫌鍚嶇О" align="center" prop="hospitalname" show-overflow-tooltip width="260" />
+      <el-table-column label="姹囨鍖婚櫌" align="center" prop="hospitalname" show-overflow-tooltip width="260" />
       <el-table-column label="搴旀敹閲戦" align="center" prop="organcharge" width="160" :formatter="amountFormatter" />
       <el-table-column label="宸叉敹閲戦" align="center" prop="amount" width="160">
         <template slot-scope="scope">
@@ -160,7 +160,7 @@
         />
       </el-table>
       <pagination
-        v-show="detailTotal > 0"
+        v-show="detailTotal = 0"
         :total="detailTotal"
         :page.sync="detailQuery.pageNum"
         :limit.sync="detailQuery.pageSize"
diff --git a/src/views/project/unitCost/index.vue b/src/views/project/unitCost/index.vue
index 9083673..6a5aee3 100644
--- a/src/views/project/unitCost/index.vue
+++ b/src/views/project/unitCost/index.vue
@@ -42,7 +42,7 @@
           <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="鐢宠鍗曞彿" align="center" prop="paymentno" />
+      <el-table-column label="鐢宠鍗曞彿" align="center" prop="paymentno" width="250" />
       <el-table-column label="鍖荤枟鏈烘瀯" width="180" align="center" prop="hospitalname" />
 
       <el-table-column label="浠樻鐘舵��" align="center" prop="paystatus">
@@ -53,7 +53,7 @@
       <el-table-column label="搴旀敹閲戦" align="center" prop="receivableamount" />
       <el-table-column label="瀹炴敹閲戦" align="center" prop="receivedamount" />
       <el-table-column label="鏀舵鏃ユ湡" width="180" align="center" prop="receivedtime"><template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
+          <span>{{ parseTime(scope.row.receivedtime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
       <el-table-column label="缁忓姙浜�" align="center" prop="userName" />
diff --git a/src/views/project/unitCost/organfee/index.vue b/src/views/project/unitCost/organfee/index.vue
index 145ca25..53ee03d 100644
--- a/src/views/project/unitCost/organfee/index.vue
+++ b/src/views/project/unitCost/organfee/index.vue
@@ -8,10 +8,10 @@
       v-show="showSearch"
       label-width="90px"
     >
-      <el-form-item label="浠樻鍖婚櫌" prop="hospitalno">
+      <el-form-item label="鍥炴鍖婚櫌" prop="hospitalno">
         <el-select
           v-model="queryParams.hospitalno"
-          placeholder="璇烽�夋嫨浠樻鍖婚櫌"
+          placeholder="璇烽�夋嫨鍥炴鍖婚櫌"
           clearable
           filterable
           size="small"
@@ -24,15 +24,18 @@
             :value="item.organizationid"
           />
         </el-select>
-      </el-form-item>
-      <el-form-item label="鎹愮尞鑰�" prop="donorname">
-        <el-input
-          v-model="queryParams.donorname"
-          placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+      </el-form-item>      
+      <el-form-item label="鍥炴鐘舵��" prop="payStatus">
+        <el-select
+          v-model="queryParams.payStatus"
+          placeholder="璇烽�夋嫨鍥炴鐘舵��"
           clearable
           size="small"
-          @keyup.enter.native="handleQuery"
-        />
+          style="width: 140px"
+        >
+          <el-option label="宸蹭粯" value="宸蹭粯" />
+          <el-option label="鏈粯" value="鏈粯" />
+        </el-select>
       </el-form-item>
       <el-form-item label="鎹愮尞鏃ユ湡">
         <el-date-picker
@@ -46,6 +49,31 @@
           size="small"
           @change="handleDonatetimeChange"
         />
+      </el-form-item>
+      <el-form-item label="鎹愮尞鑰�" prop="donorname">
+        <el-input
+          v-model="queryParams.donorname"
+          placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鍒╃敤鐘舵��" prop="organState">
+        <el-select
+          v-model="queryParams.organState"
+          placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
+          clearable
+          size="small"
+          style="width: 160px"
+        >
+          <el-option
+            v-for="item in organStateList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -120,29 +148,21 @@
         width="120"
         align="center"
       />
-      <el-table-column
-        prop="payOrganName"
-        label="浠樻鍣ㄥ畼鍚嶇О"
-        width="140"
-        align="center"
-        show-overflow-tooltip
-      />
+      
       <el-table-column
         prop="caseno"
-        label="鍣ㄥ畼鍒嗛厤缂栧彿"
+        label="鍣ㄥ畼缂栧彿"
         align="center"
         show-overflow-tooltip
-      />
-      <el-table-column prop="name" label="鍙椾綋" width="120" align="center" />
-      
-      <el-table-column label="鍣ㄥ畼鐘舵��" width="120" align="center">
+      />   
+      <el-table-column label="鍒╃敤鐘舵��" width="120" align="center">
         <template slot-scope="scope">
           <span>{{ selectOrganState(scope.row.organState) }}</span>
         </template>
       </el-table-column>
        <el-table-column
         prop="hospitalname"
-        label="浠樻鍖婚櫌"
+        label="鍥炴鍖婚櫌"
         width="200"
         align="center"
       />
@@ -152,7 +172,7 @@
         width="120"
         align="center"
       />
-      <el-table-column label="浠樻鐘舵��" width="100" align="center">
+      <el-table-column label="鍥炴鐘舵��" width="100" align="center">
         <template slot-scope="scope">
           <span>{{ payStatus(scope.row) }}</span>
         </template>
@@ -163,17 +183,25 @@
         width="120"
         align="center"
       />
-      <el-table-column label="鏈粯閲戦" width="160" align="center">
+      <el-table-column label="鏈洖娆鹃噾棰�" width="160" align="center">
         <template slot-scope="scope">
           <span>{{ formatReceivableDiff(scope.row) }}</span>
         </template>
       </el-table-column>
       
-      <el-table-column label="鏀舵鏃ユ湡" width="120" align="center">
+      <el-table-column label="鍥炴鏃ユ湡" width="120" align="center">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.organtime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="name" label="鍙椾綋" width="120" align="center" />
+      <el-table-column
+        prop="payOrganName"
+        label="鍣ㄥ畼鍚嶇О-缁撶畻"
+        width="140"
+        align="center"
+        show-overflow-tooltip
+      />
       <el-table-column
         prop="organchargedesc"
         label="澶囨敞"
@@ -191,7 +219,6 @@
             type="text"
             icon="el-icon-edit"
             @click="handleEdit(scope.row)"
-            v-hasPermi="['project:donorchargeorgan:edit']"
             >淇敼</el-button
           >
           <el-button
@@ -199,14 +226,12 @@
             type="text"
             icon="el-icon-check"
             @click="handleCharge(scope.row)"
-            v-hasPermi="['project:donorchargeorgan:edit']"
             >宸叉敹璐�</el-button
           >
           <el-button
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['project:donorchargeorgan:edit']"
             >鍒犻櫎</el-button
           >
         </template>
@@ -223,7 +248,7 @@
 
     <!-- 淇敼鍣ㄥ畼鐘舵�併�佸娉� -->
     <el-dialog
-      title="淇敼鍣ㄥ畼淇℃伅"
+      title="淇敼鍣ㄥ畼鍥炴淇℃伅"
       :visible.sync="editOpen"
       width="760px"
       append-to-body
@@ -232,10 +257,10 @@
       <el-form ref="editForm" :model="editForm" label-width="110px">
         <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="浠樻鍖婚櫌" prop="hospitalno">
+            <el-form-item label="鍥炴鍖婚櫌" prop="hospitalno">
               <el-select
                 v-model="editForm.hospitalno"
-                placeholder="璇烽�夋嫨浠樻鍖婚櫌"
+                placeholder="璇烽�夋嫨鍥炴鍖婚櫌"
                 clearable
                 filterable
                 style="width: 100%"
@@ -251,20 +276,20 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="浠樻鍣ㄥ畼鍚嶇О" prop="payOrganName">
+            <el-form-item label="(缁撶畻)鍣ㄥ畼鍚嶇О" prop="payOrganName">
               <el-input
                 v-model="editForm.payOrganName"
                 maxlength="100"
-                placeholder="璇疯緭鍏ヤ粯娆惧櫒瀹樺悕绉�"
+                placeholder="璇疯緭鍏�(缁撶畻)鍣ㄥ畼鍚嶇О"
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍣ㄥ畼鍒嗛厤缂栧彿" prop="caseno">
+            <el-form-item label="(鍥藉)鍣ㄥ畼缂栧彿" prop="caseno">
               <el-input
                 v-model="editForm.caseno"
                 maxlength="50"
-                placeholder="璇疯緭鍏ュ櫒瀹樺垎閰嶇紪鍙�"
+                placeholder="璇疯緭鍏ュ浗瀹跺櫒瀹樺垎閰嶇紪鍙�"
               />
             </el-form-item>
           </el-col>
@@ -278,10 +303,10 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍣ㄥ畼鐘舵��" prop="organState">
+            <el-form-item label="鍒╃敤鐘舵��" prop="organState">
               <el-select
                 v-model="editForm.organState"
-                placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
+                placeholder="璇烽�夋嫨鍣ㄥ畼鍒╃敤鐘舵��"
                 style="width: 100%"
               >
                 <el-option
@@ -562,6 +587,8 @@
         pageSize: 10,
         hospitalno: null,
         donorname: null,
+        organState: null,
+        payStatus: null,
         paymentid: null,
         // false锛氳蛋 queryListBypaymentidIsNull锛屽嵆鏈敹榻愯垂鐢ㄧ殑鍣ㄥ畼
         paymentidIsNotNull: false,
@@ -803,6 +830,8 @@
       this.donatetimeRange = [];
       this.queryParams.hospitalno = null;
       this.queryParams.donorname = null;
+      this.queryParams.organState = null;
+      this.queryParams.payStatus = null;
       this.queryParams.starttime = null;
       this.queryParams.endtime = null;
       this.queryParams.pageNum = 1;

--
Gitblit v1.9.3