From caa81f0f5f71ec3aa978e2762ce0e7051ceabf8d Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 02 十一月 2026 10:07:24 +0800
Subject: [PATCH] 器管回款添加录入数据
---
src/views/project/unitCost/organfee/index.vue | 402 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 362 insertions(+), 40 deletions(-)
diff --git a/src/views/project/unitCost/organfee/index.vue b/src/views/project/unitCost/organfee/index.vue
index 422f60c..d019258 100644
--- a/src/views/project/unitCost/organfee/index.vue
+++ b/src/views/project/unitCost/organfee/index.vue
@@ -64,6 +64,16 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
+ type="primary"
+ plain
+ icon="el-icon-plus"
+ size="mini"
+ @click="handleAdd"
+ >鏂板</el-button
+ >
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
type="warning"
plain
icon="el-icon-download"
@@ -79,7 +89,13 @@
></right-toolbar>
</el-row>
- <el-table v-loading="loading" border :data="organfeeList">
+ <el-table
+ v-loading="loading"
+ border
+ :data="organfeeList"
+ highlight-current-row
+ @current-change="handleCurrentChange"
+ >
<el-table-column type="index" label="搴忓彿" width="55" align="center" />
<el-table-column
prop="donatetime"
@@ -91,12 +107,7 @@
<span>{{ parseTime(scope.row.donatetime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
- <el-table-column
- prop="hospitalname"
- label="浠樻鍖婚櫌"
- width="200"
- align="center"
- />
+
<el-table-column
prop="donorname"
label="鎹愮尞鑰�"
@@ -129,6 +140,12 @@
<span>{{ selectOrganState(scope.row.organState) }}</span>
</template>
</el-table-column>
+ <el-table-column
+ prop="hospitalname"
+ label="浠樻鍖婚櫌"
+ width="200"
+ align="center"
+ />
<el-table-column
prop="organcharge"
label="搴旀敹閲戦"
@@ -201,46 +218,234 @@
<el-dialog
title="淇敼鍣ㄥ畼淇℃伅"
:visible.sync="editOpen"
- width="500px"
+ width="760px"
append-to-body
:close-on-click-modal="false"
>
<el-form ref="editForm" :model="editForm" label-width="110px">
- <el-form-item label="浠樻鍣ㄥ畼鍚嶇О" prop="payOrganName">
- <el-input
- v-model="editForm.payOrganName"
- maxlength="100"
- placeholder="璇疯緭鍏ヤ粯娆惧櫒瀹樺悕绉�"
- />
- </el-form-item>
- <el-form-item label="鍣ㄥ畼鐘舵��" prop="organState">
- <el-select
- v-model="editForm.organState"
- placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
- style="width: 100%"
- >
- <el-option
- v-for="item in organStateList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="organchargedesc">
- <el-input
- v-model="editForm.organchargedesc"
- type="textarea"
- :rows="3"
- maxlength="200"
- show-word-limit
- placeholder="璇疯緭鍏ュ娉�"
- />
- </el-form-item>
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="浠樻鍖婚櫌" prop="hospitalno">
+ <el-select
+ v-model="editForm.hospitalno"
+ placeholder="璇烽�夋嫨浠樻鍖婚櫌"
+ clearable
+ filterable
+ style="width: 100%"
+ @change="handleEditHospitalChange"
+ >
+ <el-option
+ v-for="item in organizationList"
+ :key="item.organizationid"
+ :label="item.organizationname"
+ :value="String(item.organizationid)"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浠樻鍣ㄥ畼鍚嶇О" prop="payOrganName">
+ <el-input
+ v-model="editForm.payOrganName"
+ maxlength="100"
+ placeholder="璇疯緭鍏ヤ粯娆惧櫒瀹樺悕绉�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍣ㄥ畼鍒嗛厤缂栧彿" prop="caseno">
+ <el-input
+ v-model="editForm.caseno"
+ maxlength="50"
+ placeholder="璇疯緭鍏ュ櫒瀹樺垎閰嶇紪鍙�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍣ㄥ畼鐘舵��" prop="organState">
+ <el-select
+ v-model="editForm.organState"
+ placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in organStateList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囨敞" prop="organchargedesc">
+ <el-input
+ v-model="editForm.organchargedesc"
+ type="textarea"
+ :rows="3"
+ maxlength="200"
+ show-word-limit
+ placeholder="璇疯緭鍏ュ娉�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editOpen = false">鍙� 娑�</el-button>
<el-button type="primary" :loading="editLoading" @click="submitEdit"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+
+ <!-- 鏂板鍣ㄥ畼璐圭敤 -->
+ <el-dialog
+ title="鏂板鍣ㄥ畼璐圭敤"
+ :visible.sync="addOpen"
+ width="820px"
+ append-to-body
+ :close-on-click-modal="false"
+ >
+ <el-form
+ ref="addForm"
+ :model="addForm"
+ :rules="addRules"
+ label-width="110px"
+ >
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="鎹愮尞鑰�" prop="donorname">
+ <el-input
+ v-model="addForm.donorname"
+ maxlength="50"
+ placeholder="璇疯緭鍏ユ崘鐚��"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浠樻鍖婚櫌" prop="hospitalno">
+ <el-select
+ v-model="addForm.hospitalno"
+ placeholder="璇烽�夋嫨浠樻鍖婚櫌"
+ clearable
+ filterable
+ style="width: 100%"
+ @change="handleAddHospitalChange"
+ >
+ <el-option
+ v-for="item in organizationList"
+ :key="item.organizationid"
+ :label="item.organizationname"
+ :value="String(item.organizationid)"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍣ㄥ畼鍚嶇О" prop="organname">
+ <el-input
+ v-model="addForm.organname"
+ maxlength="50"
+ placeholder="璇疯緭鍏ュ櫒瀹樺悕绉�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浠樻鍣ㄥ畼鍚嶇О" prop="payOrganName">
+ <el-input
+ v-model="addForm.payOrganName"
+ maxlength="100"
+ placeholder="璇疯緭鍏ヤ粯娆惧櫒瀹樺悕绉�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍣ㄥ畼鍒嗛厤缂栧彿" prop="caseno">
+ <el-input
+ v-model="addForm.caseno"
+ maxlength="50"
+ placeholder="璇疯緭鍏ュ櫒瀹樺垎閰嶇紪鍙�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍙椾綋濮撴皬" prop="name">
+ <el-input
+ v-model="addForm.name"
+ maxlength="50"
+ placeholder="璇疯緭鍏ュ彈浣撳姘�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍣ㄥ畼鐘舵��" prop="organState">
+ <el-select
+ v-model="addForm.organState"
+ placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in organStateList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏀舵鏃ユ湡" prop="organtime">
+ <el-date-picker
+ v-model="addForm.organtime"
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="璇烽�夋嫨鏀舵鏃ユ湡"
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="搴旀敹閲戦" prop="organcharge">
+ <el-input-number
+ v-model="addForm.organcharge"
+ :min="0"
+ :precision="2"
+ :controls="false"
+ placeholder="璇疯緭鍏ュ簲鏀堕噾棰�"
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瀹炴敹閲戦" prop="amount">
+ <el-input-number
+ v-model="addForm.amount"
+ :min="0"
+ :precision="2"
+ :controls="false"
+ placeholder="璇疯緭鍏ュ疄鏀堕噾棰�"
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囨敞" prop="organchargedesc">
+ <el-input
+ v-model="addForm.organchargedesc"
+ type="textarea"
+ :rows="3"
+ maxlength="200"
+ show-word-limit
+ placeholder="璇疯緭鍏ュ娉�"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="addOpen = false">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="addLoading" @click="submitAdd"
>纭� 瀹�</el-button
>
</span>
@@ -251,10 +456,29 @@
<script>
import {
listDonorchargeorgan,
+ addDonorchargeorgan,
updateDonorchargeorgan,
exportOrganfee
} from "@/api/project/donorcharge";
import { listOrganization } from "@/api/project/organization";
+
+/** 鏂板鍣ㄥ畼璐圭敤鐨勭┖琛ㄥ崟 */
+function emptyAddForm() {
+ return {
+ donorname: null,
+ hospitalno: null,
+ hospitalname: null,
+ organname: null,
+ payOrganName: null,
+ caseno: null,
+ name: null,
+ organState: null,
+ organcharge: null,
+ amount: null,
+ organtime: null,
+ organchargedesc: null
+ };
+}
export default {
name: "Organfee",
@@ -270,6 +494,8 @@
total: 0,
// 鍣ㄥ畼璐圭敤鍒楄〃
organfeeList: [],
+ // 琛ㄦ牸褰撳墠閫変腑琛�
+ currentRow: null,
// 鎺ユ敹鍖婚櫌锛堟満鏋勶級涓嬫媺鏁版嵁
organizationList: [],
// 鎶ュ憡鏃ユ湡鍖洪棿
@@ -289,9 +515,27 @@
editLoading: false,
editForm: {
id: null,
+ hospitalno: null,
+ hospitalname: null,
payOrganName: null,
+ caseno: null,
organState: null,
organchargedesc: null
+ },
+ // 鏂板寮圭獥
+ addOpen: false,
+ addLoading: false,
+ addForm: emptyAddForm(),
+ addRules: {
+ donorname: [
+ { required: true, message: "璇疯緭鍏ユ崘鐚��", trigger: "blur" }
+ ],
+ organname: [
+ { required: true, message: "璇疯緭鍏ュ櫒瀹樺悕绉�", trigger: "blur" }
+ ],
+ organcharge: [
+ { required: true, message: "璇疯緭鍏ュ簲鏀堕噾棰�", trigger: "blur" }
+ ]
},
// 鏌ヨ鍙傛暟
queryParams: {
@@ -395,11 +639,89 @@
})
.catch(() => {});
},
- /** 鎵撳紑淇敼寮圭獥锛堜粯娆惧櫒瀹樺悕绉般�佸櫒瀹樼姸鎬併�佸娉級 */
+ /** 琛ㄦ牸褰撳墠琛屽彉鍖� */
+ handleCurrentChange(row) {
+ this.currentRow = row;
+ },
+ /** 鏂板鎸夐挳鎿嶄綔锛氫互褰撳墠閫変腑鐨勪竴琛屼负妯℃澘锛屽鍒堕櫎 id 澶栫殑瀛楁 */
+ handleAdd() {
+ const row = this.currentRow;
+ if (!row) {
+ this.$modal.msgWarning("璇峰厛閫変腑涓�琛屾暟鎹�");
+ return;
+ }
+ this.addForm = {
+ donorname: row.donorname || null,
+ hospitalno:
+ row.hospitalno === null || row.hospitalno === undefined
+ ? null
+ : String(row.hospitalno),
+ hospitalname: row.hospitalname || null,
+ organname: row.organname || null,
+ payOrganName: row.payOrganName || null,
+ caseno: row.caseno || null,
+ name: row.name || null,
+ organState:
+ row.organState === null || row.organState === undefined
+ ? null
+ : String(row.organState),
+ organcharge:
+ row.organcharge === null || row.organcharge === undefined
+ ? null
+ : row.organcharge,
+ amount:
+ row.amount === null || row.amount === undefined ? null : row.amount,
+ organtime: row.organtime || null,
+ organchargedesc: row.organchargedesc || null
+ };
+ this.addOpen = true;
+ this.$nextTick(() => {
+ this.$refs.addForm && this.$refs.addForm.clearValidate();
+ });
+ },
+ /** 浠樻鍖婚櫌閫夋嫨鍚庡悓姝ュ尰闄㈠悕绉� */
+ handleAddHospitalChange(value) {
+ const org = this.organizationList.find(
+ item => String(item.organizationid) === String(value)
+ );
+ this.addForm.hospitalname = org ? org.organizationname : null;
+ },
+ /** 淇敼寮圭獥锛氫粯娆惧尰闄㈤�夋嫨鍚庡悓姝ュ尰闄㈠悕绉� */
+ handleEditHospitalChange(value) {
+ const org = this.organizationList.find(
+ item => String(item.organizationid) === String(value)
+ );
+ this.editForm.hospitalname = org ? org.organizationname : null;
+ },
+ /** 鎻愪氦鏂板 */
+ submitAdd() {
+ this.$refs.addForm.validate(valid => {
+ if (!valid) {
+ return;
+ }
+ this.addLoading = true;
+ addDonorchargeorgan(this.addForm)
+ .then(() => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.addOpen = false;
+ this.getList();
+ })
+ .finally(() => {
+ this.addLoading = false;
+ });
+ });
+ },
+ /** 鎵撳紑淇敼寮圭獥锛堜粯娆惧尰闄€�佷粯娆惧櫒瀹樺悕绉般�佸櫒瀹樼姸鎬併�佸娉級 */
handleEdit(row) {
this.editForm = {
id: row.id,
+ hospitalno:
+ row.hospitalno === null || row.hospitalno === undefined
+ ? null
+ : String(row.hospitalno),
+ hospitalname: row.hospitalname || null,
payOrganName: row.payOrganName || "",
+ caseno: row.caseno || "",
organState:
row.organState === null || row.organState === undefined
? null
--
Gitblit v1.9.3