From 5743e533414c608a12f9323f17a7c86721c7f54c Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 06 十一月 2026 00:13:43 +0800
Subject: [PATCH] organfee

---
 src/views/project/unitCost/organfee/index.vue |  228 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 184 insertions(+), 44 deletions(-)

diff --git a/src/views/project/unitCost/organfee/index.vue b/src/views/project/unitCost/organfee/index.vue
index d019258..c3afdba 100644
--- a/src/views/project/unitCost/organfee/index.vue
+++ b/src/views/project/unitCost/organfee/index.vue
@@ -8,31 +8,38 @@
       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="璇烽�夋嫨浠樻鍖婚櫌"
+          v-model="hospitalFilter"
+          placeholder="璇烽�夋嫨鍥炴鍖婚櫌"
           clearable
           filterable
           size="small"
           style="width: 200px"
+          @change="handleHospitalFilterChange" 
+          allow-create
         >
+         <el-option label="鏈~鍐欏洖娆惧尰闄�" value="__EMPTY__" />
           <el-option
             v-for="item in organizationList"
             :key="item.organizationid"
             :label="item.organizationname"
-            :value="item.organizationid"
+            :value="String(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 +53,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 +152,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 +176,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 +187,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="澶囨敞"
@@ -182,7 +214,7 @@
       />
       <el-table-column
         label="鎿嶄綔"
-        width="160"
+        width="210"
         align="center"
         fixed="right"
       >
@@ -191,7 +223,6 @@
             type="text"
             icon="el-icon-edit"
             @click="handleEdit(scope.row)"
-            v-hasPermi="['project:donorchargeorgan:edit']"
             >淇敼</el-button
           >
           <el-button
@@ -199,8 +230,13 @@
             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)"
+            >鍒犻櫎</el-button
           >
         </template>
       </el-table-column>
@@ -216,7 +252,7 @@
 
     <!-- 淇敼鍣ㄥ畼鐘舵�併�佸娉� -->
     <el-dialog
-      title="淇敼鍣ㄥ畼淇℃伅"
+      title="淇敼鍣ㄥ畼鍥炴淇℃伅"
       :visible.sync="editOpen"
       width="760px"
       append-to-body
@@ -225,10 +261,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%"
@@ -244,28 +280,72 @@
             </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>
           <el-col :span="12">
-            <el-form-item label="鍣ㄥ畼鐘舵��" prop="organState">
+            <el-form-item label="鍙椾綋" prop="name">
+              <el-input
+                v-model="editForm.name"
+                maxlength="50"
+                placeholder="璇疯緭鍏ュ彈浣�"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="搴旀敹閲戦" prop="organcharge">
+              <el-input-number
+                v-model="editForm.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="editForm.amount"
+                :min="0"
+                :precision="2"
+                :controls="false"
+                placeholder="璇疯緭鍏ュ疄鏀堕噾棰�"
+                style="width: 100%"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鏀舵鏃ユ湡" prop="organtime">
+              <el-date-picker
+                v-model="editForm.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="organState">
               <el-select
                 v-model="editForm.organState"
-                placeholder="璇烽�夋嫨鍣ㄥ畼鐘舵��"
+                placeholder="璇烽�夋嫨鍣ㄥ畼鍒╃敤鐘舵��"
                 style="width: 100%"
               >
                 <el-option
@@ -370,11 +450,11 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍙椾綋濮撴皬" prop="name">
+            <el-form-item label="鍙椾綋" prop="name">
               <el-input
                 v-model="addForm.name"
                 maxlength="50"
-                placeholder="璇疯緭鍏ュ彈浣撳姘�"
+                placeholder="璇疯緭鍏ュ彈浣�"
               />
             </el-form-item>
           </el-col>
@@ -458,6 +538,7 @@
   listDonorchargeorgan,
   addDonorchargeorgan,
   updateDonorchargeorgan,
+  delDonorchargeorgan,
   exportOrganfee
 } from "@/api/project/donorcharge";
 import { listOrganization } from "@/api/project/organization";
@@ -465,6 +546,7 @@
 /** 鏂板鍣ㄥ畼璐圭敤鐨勭┖琛ㄥ崟 */
 function emptyAddForm() {
   return {
+    infoid: null,
     donorname: null,
     hospitalno: null,
     hospitalname: null,
@@ -519,8 +601,12 @@
         hospitalname: null,
         payOrganName: null,
         caseno: null,
+        name: null,
+        organcharge: null,
+        amount: null,
         organState: null,
-        organchargedesc: null
+        organchargedesc: null,
+        organtime: null
       },
       // 鏂板寮圭獥
       addOpen: false,
@@ -538,11 +624,16 @@
         ]
       },
       // 鏌ヨ鍙傛暟
+      // 鍥炴鍖婚櫌绛涢�夛紙__EMPTY__ 琛ㄧず鏈~鍐欙級
+      hospitalFilter: null,
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         hospitalno: null,
+        hospitalnoIsNull: false,
         donorname: null,
+        organState: null,
+        payStatus: null,
         paymentid: null,
         // false锛氳蛋 queryListBypaymentidIsNull锛屽嵆鏈敹榻愯垂鐢ㄧ殑鍣ㄥ畼
         paymentidIsNotNull: false,
@@ -639,6 +730,20 @@
         })
         .catch(() => {});
     },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍣ㄥ畼璐圭敤缂栧彿涓�"' + row.id + '"鐨勬暟鎹」锛�')
+        .then(() => delDonorchargeorgan(row.id))
+        .then(() => {
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          if (this.currentRow && this.currentRow.id === row.id) {
+            this.currentRow = null;
+          }
+          this.getList();
+        })
+        .catch(() => {});
+    },
     /** 琛ㄦ牸褰撳墠琛屽彉鍖� */
     handleCurrentChange(row) {
       this.currentRow = row;
@@ -651,6 +756,8 @@
         return;
       }
       this.addForm = {
+        infoid:
+          row.infoid === null || row.infoid === undefined ? null : row.infoid,
         donorname: row.donorname || null,
         hospitalno:
           row.hospitalno === null || row.hospitalno === undefined
@@ -711,7 +818,7 @@
           });
       });
     },
-    /** 鎵撳紑淇敼寮圭獥锛堜粯娆惧尰闄€�佷粯娆惧櫒瀹樺悕绉般�佸櫒瀹樼姸鎬併�佸娉級 */
+    /** 鎵撳紑淇敼寮圭獥锛堝洖娆惧尰闄€�佷粯娆惧櫒瀹樺悕绉般�侀噾棰濄�佸埄鐢ㄧ姸鎬併�佸娉級 */
     handleEdit(row) {
       this.editForm = {
         id: row.id,
@@ -722,11 +829,19 @@
         hospitalname: row.hospitalname || null,
         payOrganName: row.payOrganName || "",
         caseno: row.caseno || "",
+        name: row.name || "",
+        organcharge:
+          row.organcharge === null || row.organcharge === undefined
+            ? null
+            : row.organcharge,
+        amount:
+          row.amount === null || row.amount === undefined ? null : row.amount,
         organState:
           row.organState === null || row.organState === undefined
             ? null
             : String(row.organState),
-        organchargedesc: row.organchargedesc || ""
+        organchargedesc: row.organchargedesc || "",
+        organtime: row.organtime
       };
       this.editOpen = true;
     },
@@ -765,13 +880,38 @@
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.donatetimeRange = [];
+      this.hospitalFilter = null;
+      this.queryParams.hospitalnoIsNull = false;
       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;
       this.getList();
     },
+    /** 鍥炴鍖婚櫌绛涢�夛細__EMPTY__ 琛ㄧず鍙煡鏈~鍐欏洖娆惧尰闄㈢殑鏁版嵁 */
+    handleHospitalFilterChange(value) {
+      if (value === "__EMPTY__") {
+        this.queryParams.hospitalno = null;
+        this.queryParams.hospitalnoIsNull = true;
+      } else {
+        const selectedOption = this.organizationList.findIndex(item => item.organizationid === value);
+        if(selectedOption==-1){
+          this.queryParams.hospitalname = value;
+          this.queryParams.hospitalno=null;
+        } 
+        else{
+          this.queryParams.hospitalno=value;
+          this.queryParams.hospitalname=null;
+        }
+          
+  
+        this.queryParams.hospitalnoIsNull = false;
+      }
+      this.queryParams.pageNum = 1;
+    },
     /** 鎶ュ憡鏃ユ湡鍖洪棿 -> 鏌ヨ鍙傛暟锛屾湭閫夋嫨鏃朵紶 null锛岄伩鍏嶅悗绔嫾鍑� donatetime >= '' */
     handleDonatetimeChange(val) {
       if (val && val.length === 2) {

--
Gitblit v1.9.3