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