From 3873d3c350c8c1edd7bfdc8afe08c9e78f56d968 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期四, 22 十月 2026 23:24:20 +0800
Subject: [PATCH] 调整费用申请模式
---
src/views/project/donationdetails/index.vue | 21
src/views/project/fund/applyDetail/index.vue | 46 +
src/views/project/fund/expertFeeApply/index.vue | 409 ++++++-----
src/views/project/fund/ethicalExpertFeeApply/index.vue | 422 +++++++-----
src/views/project/fund/medicalCostApply/index.vue | 505 ++++++--------
src/views/project/statistics/caseStatistics/index.vue | 50 -
src/views/project/register/index.vue | 351 ++++++++++
src/views/project/statistics/chargeStatistics/index.vue | 50 -
src/views/project/statistics/applyStatistics/index.vue | 50 -
src/views/project/statistics/performanceStaristics/index.vue | 50 -
src/api/project/register.js | 27
11 files changed, 1,157 insertions(+), 824 deletions(-)
diff --git a/src/api/project/register.js b/src/api/project/register.js
new file mode 100644
index 0000000..ca08933
--- /dev/null
+++ b/src/api/project/register.js
@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鍣ㄥ畼鍘诲鍒楄〃锛堟暟鎹簮锛氳鍥� v_service_donateorgan_register锛�
+export function listRegister(query) {
+ return request({
+ url: '/project/register/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鏌ヨ鍣ㄥ畼鍘诲璇︾粏
+export function getRegister(id) {
+ return request({
+ url: '/project/register/' + id,
+ method: 'get'
+ })
+}
+
+// 瀵煎嚭鍣ㄥ畼鍘诲鍒楄〃
+export function exportRegister(query) {
+ return request({
+ url: '/project/register/export',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/views/project/donationdetails/index.vue b/src/views/project/donationdetails/index.vue
index eb9f29e..be05831 100644
--- a/src/views/project/donationdetails/index.vue
+++ b/src/views/project/donationdetails/index.vue
@@ -4539,16 +4539,16 @@
overflow: hidden;
transition: all 0.3s ease;
- // 宸︿晶宸ヤ綔杩涚▼鏍�
+ // 宸︿晶宸ヤ綔杩涚▼鏍忥紙2026-10-22锛氬幓鎺夊簳鑹诧紝鍙暀涓�鏉″垎闅旂嚎锛涙爣棰樻枃瀛楁敼鍝佺墝闈掞級
.left-course {
- background: #fff;
+ background: transparent;
width: 220px;
min-width: 220px;
text-align: center;
margin: 0;
padding: 0;
height: 100%;
- box-shadow: 2px 0 8px rgba(16, 24, 40, 0.08);
+ border-right: 1px solid var(--opo-border-base, #e5e7eb);
transition: all 0.3s ease;
position: relative;
z-index: 100;
@@ -4583,10 +4583,10 @@
flex-direction: column;
.title {
- background: var(--opo-primary, #0e768f);
+ background: transparent;
margin-bottom: 0;
padding: 15px 10px;
- color: #fff;
+ color: var(--opo-primary, #0e768f);
font-size: 16px;
font-weight: 600;
display: flex;
@@ -4596,11 +4596,13 @@
transition: all 0.3s ease;
min-height: 54px; // 纭繚鏍囬鍖哄煙鏈夊浐瀹氶珮搴�
box-sizing: border-box;
+ border-bottom: 1px solid var(--opo-border-base, #e5e7eb);
.collapse-btn {
- background: rgba(255, 255, 255, 0.2);
- border: none;
- color: #fff;
+ // 鏍囬搴曡壊鍘绘帀鍚庯紝鎸夐挳鏀逛负娴呴潚鎻忚竟椋庢牸锛岄伩鍏嶇櫧搴曠櫧瀛楃湅涓嶈
+ background: var(--opo-primary-light-9, #e7f1f4);
+ border: 1px solid var(--opo-primary-light-7, #b7d6dd);
+ color: var(--opo-primary, #0e768f);
width: 32px; // 绋嶅井澧炲ぇ纭繚鍙偣鍑诲尯鍩�
height: 32px;
padding: 0;
@@ -4612,7 +4614,8 @@
flex-shrink: 0; // 闃叉鎸夐挳琚帇缂�
&:hover {
- background: rgba(255, 255, 255, 0.3);
+ background: var(--opo-primary-light-7, #b7d6dd);
+ border-color: var(--opo-primary, #0e768f);
transform: scale(1.1);
}
diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index e12ef3a..b4b6494 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -68,15 +68,7 @@
<el-form-item label="鎹愮尞妗堜緥" prop="name">
<el-input :disabled="true" v-model="form.donorname" placeholder="璇疯緭鍏ユ崘鐚�呭鍚�" />
</el-form-item>
- </el-col>
- <el-col :span="4">
- <div style="margin-left: 10px;">
- <dict-tag
- :options="dict.type.sys_DonationStatus"
- :value="form.invoicecount"
- />
- </div>
- </el-col>
+ </el-col>
<el-col :span="10">
<el-form-item label="鐢宠璇存槑" prop="remark">
<el-input v-model="form.remark" placeholder="鐢宠璇存槑" />
@@ -2606,6 +2598,23 @@
});
this.batchdialogVisible = true;
},
+ /**
+ * 鏄庣粏琛屾槸鍚︿负銆岀┖璁板綍銆嶏細鏈嶅姟椤圭洰銆佷笓瀹躲�佷笓瀹舵墍鍦ㄥ崟浣� 鏄惁閮戒负绌�
+ * 鐢ㄤ簬鎵归噺褰曞叆涓撳鏃跺垽鏂�"澶嶇敤鏈�鍚庝竴琛�"杩樻槸"杩藉姞鏂拌"
+ */
+ isBlankDetailRow(row) {
+ if (!row) {
+ return false;
+ }
+ const isEmpty = v =>
+ v === null || v === undefined || String(v).trim() === "";
+ return (
+ isEmpty(row.itemid) &&
+ isEmpty(row.beneficiaryname) &&
+ isEmpty(row.unitno) &&
+ isEmpty(row.unitname)
+ );
+ },
/** 鎵归噺褰曞叆寮规锛氬鍚�/鍗曚綅/宸ュ彿/韬唤璇佸悗4浣� 鍛戒腑鍒ゆ柇 */
personMatchKeyword(item, kw) {
const idcard = String(item.idcrad || "");
@@ -2631,6 +2640,17 @@
existed[String(row.beneficiaryname).trim()] = true;
}
});
+
+ // 2026-10-22锛氫慨姝�"瀵煎叆鍚庤〃鏍煎鍑轰竴琛岀┖璁板綍"銆�
+ // 瑙勫垯锛氬厛鐪嬫渶鍚庝竴鏉¤褰曪紝鑻ュ畠鐨�"鏈嶅姟椤圭洰 / 涓撳 / 涓撳鎵�鍦ㄥ崟浣�"閮芥槸绌虹殑锛�
+ // 璇存槑鏄竴鏉$┖璁板綍锛屽氨浠庤繖涓�琛屽紑濮嬪~锛涘惁鍒欒拷鍔犳柊琛屻��
+ let writeIndex = this.rbDetails.length;
+ if (
+ writeIndex > 0 &&
+ this.isBlankDetailRow(this.rbDetails[writeIndex - 1])
+ ) {
+ writeIndex -= 1;
+ }
const duplicated = [];
this.checkedCities.forEach(item => {
@@ -2690,7 +2710,13 @@
annexfiles: null
};
- this.rbDetails.push(rowData);
+ if (writeIndex < this.rbDetails.length) {
+ // 澶嶇敤鏈�鍚庨偅鏉$┖璁板綍
+ this.rbDetails.splice(writeIndex, 1, rowData);
+ } else {
+ this.rbDetails.push(rowData);
+ }
+ writeIndex++;
});
for (let i = 0; i < this.rbDetails.length; i++) {
this.rbDetails[i].orderno = i + 1;
diff --git a/src/views/project/fund/ethicalExpertFeeApply/index.vue b/src/views/project/fund/ethicalExpertFeeApply/index.vue
index c511f23..c6a74c6 100644
--- a/src/views/project/fund/ethicalExpertFeeApply/index.vue
+++ b/src/views/project/fund/ethicalExpertFeeApply/index.vue
@@ -1,123 +1,67 @@
<!-- -->
<template>
<div class="app-container">
- <el-form
- class="opo-query-form"
- :model="queryParams"
- ref="queryForm"
- :inline="true"
- label-width="70px"
- >
- <el-row align="left">
- <el-col :span="6">
- <el-form-item label="濮撳悕" prop="name">
- <el-input
- v-model="queryParams.name"
- placeholder="璇疯緭鍏ュ鍚�"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
- <el-select
- v-model="queryParams.recordstate"
- placeholder="璇烽�夋嫨璁板綍鐘舵��"
- clearable
- size="small"
- >
- <el-option
- v-for="dict in dict.type.sys_DonationStatus"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="鎹愮尞鑰�" prop="name">
- <el-input
- v-model="queryParams.donorname"
- placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-button
- type="primary"
- icon="el-icon-search"
- size="mini"
- @click="handleQuery"
- >鎼滅储</el-button
- >
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
- >閲嶇疆</el-button
- >
- </el-col>
- </el-row>
- </el-form>
<el-row>
- <el-col :span="6">
- <el-card shadow="never">
- <!-- 鎹愮尞妗堜緥鍒楄〃 -->
- <el-row>
- <el-col :span="10">
- <el-row type="flex" :gutter="10" align="right" class="mb8">
- </el-row>
- </el-col>
- </el-row>
- <el-table
- v-loading="loading"
- border
- highlight-current-row
- :data="donatebaseinfoList"
- @row-click="selectDonotor"
- >
- <!-- <el-table-column label="鎹愮尞缂栧彿" align="center" prop="donorno" /> -->
- <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
- <template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_DonationStatus"
- :value="scope.row.recordstate"
- />
- </template>
- </el-table-column>
- <el-table-column label="濮撳悕" align="center" prop="name" />
- </el-table>
- <pagination
- v-show="total > 0"
- :total="total"
- small
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getBaseInfoList"
- />
- </el-card>
- </el-col>
- <el-col :span="18">
+ <el-col :span="24">
<el-card shadow="naver">
<el-form ref="infoform" label-width="100px">
- <el-row :gutter="4" align="right" class="mb8">
- <el-col :span="9">
- <el-form-item label="鎹愮尞缂栧彿">
- <el-input
- v-model="curCase.donorno"
- :disabled="true"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="9">
- <el-form-item label="濮撳悕">
- <el-input v-model="curCase.name" :disabled="true"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
+ <!-- 鎶ラ攢鍗曠瓫閫夛細鎹愮尞鑰呫�佸鎵圭姸鎬� -->
+ <el-form
+ class="opo-query-form"
+ :model="fundQueryParam"
+ ref="fundQueryForm"
+ :inline="true"
+ label-width="82px"
+ >
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鎹愮尞鑰�" prop="donorname">
+ <el-input
+ v-model="fundQueryParam.donorname"
+ placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQueryFund"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瀹℃壒鐘舵��" prop="recordstatus">
+ <el-select
+ v-model="fundQueryParam.recordstatus"
+ placeholder="璇烽�夋嫨瀹℃壒鐘舵��"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_recordstatus"
+ :key="dict.value"
+ :label="dict.label"
+ :value="Number(dict.value)"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label-width="10px">
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="small"
+ @click="handleQueryFund"
+ >鎼滅储</el-button
+ >
+ <el-button
+ icon="el-icon-refresh"
+ size="small"
+ @click="resetFundQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@@ -199,6 +143,13 @@
/>
</template>
</el-table-column>
+ <el-table-column
+ label="鎹愮尞鑰�"
+ align="center"
+ prop="donorname"
+ width="110px"
+ show-overflow-tooltip
+ />
<!--
<el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phone" width="150px" />
<el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="220px" />
@@ -262,11 +213,119 @@
</template>
</el-table-column>
</el-table>
+ <!-- 鏈�夋嫨妗堜緥鏃跺睍绀鸿鐧诲綍浜哄叏閮ㄤ鸡鐞嗗鏌ュ崟鎹紝瓒呰繃涓�椤靛彲鐢ㄥ垎椤电炕鐪� -->
+ <pagination
+ v-show="fundTotal > 0"
+ :total="fundTotal"
+ small
+ :page.sync="fundQueryParam.pageNum"
+ :limit.sync="fundQueryParam.pageSize"
+ @pagination="listFundData"
+ />
</el-row>
</el-form>
</el-card>
</el-col>
</el-row>
+
+ <!-- 鏂板鐢宠鍗曞墠鍏堥�夋嫨鎹愮尞妗堜緥锛堝師宸︿晶妗堜緥鍒楄〃绉诲埌杩欓噷锛� -->
+ <el-dialog
+ title="閫夋嫨鎹愮尞妗堜緥"
+ :visible.sync="caseDialogVisible"
+ width="760px"
+ append-to-body
+ >
+ <el-form
+ class="opo-query-form"
+ :model="queryParams"
+ ref="queryForm"
+ :inline="true"
+ label-width="70px"
+ >
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input
+ v-model="queryParams.name"
+ placeholder="璇疯緭鍏ュ鍚�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
+ <el-select
+ v-model="queryParams.recordstate"
+ placeholder="璇烽�夋嫨璁板綍鐘舵��"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_DonationStatus"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label-width="10px">
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="small"
+ @click="handleQuery"
+ >鎼滅储</el-button
+ >
+ <el-button icon="el-icon-refresh" size="small" @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-table
+ ref="caseTable"
+ v-loading="loading"
+ border
+ height="380"
+ highlight-current-row
+ :data="donatebaseinfoList"
+ @row-click="selectDonotor"
+ >
+ <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
+ <template slot-scope="scope">
+ <dict-tag
+ :options="dict.type.sys_DonationStatus"
+ :value="scope.row.recordstate"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="濮撳悕" align="center" prop="name" />
+ <el-table-column label="鎿嶄綔" align="center" width="90">
+ <template slot-scope="scope">
+ <el-button type="text" size="mini" @click="selectDonotor(scope.row)"
+ >閫夋嫨</el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ small
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getBaseInfoList"
+ />
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="caseDialogVisible = false">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
<!-- 娣诲姞鎴栦慨鏀硅垂鐢ㄧ敵璇峰崟 -->
<el-dialog
@@ -1013,11 +1072,19 @@
},
fundQueryParam: {
pageNum: 1,
- pageSize: 100,
+ pageSize: 10,
infoid: null,
applytype: "2",
- createBy: null
+ createBy: null,
+ // 鎶ラ攢鍗曠瓫閫夋潯浠�
+ donorname: null,
+ recordstatus: null
},
+ // 鍙充晶鎶ラ攢鍗曟�绘暟锛堢敤浜庡垎椤碉級
+ fundTotal: 0,
+ // 銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛堟柊澧炵敵璇峰崟鏃朵娇鐢級
+ caseDialogVisible: false,
+ casePickerMode: "",
// 琛ㄥ崟鍙傛暟
form: {},
// 琛ㄥ崟鏍¢獙
@@ -1104,55 +1171,23 @@
},
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
- if (this.curCase.id) {
- this.$router.push({
- path: "/finance/applyDetail/",
- query: {
- id: 0,
- businessType: "2",
- operationType: "add",
- curCase: this.curCase
- }
- });
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [
- h("span", null, "璇峰湪宸﹁竟鐨勬崘鐚渚嬭〃閫夋嫨闇�瑕佹搷浣滅殑妗堜緥锛�")
- ])
- });
- }
- return;
+ // 鏂板鐢宠鍗曪細鍏堝脊鍑恒�岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇
+ this.casePickerMode = "add";
+ this.caseDialogVisible = true;
+ this.getBaseInfoList();
+ },
- if (this.curCase.id) {
- this.istrue += 2;
- this.reset();
- this.dialogOpen = true;
- this.title = "娣诲姞璐圭敤鐢宠";
- this.dialogType = "edit";
- this.queryParams.params = {};
-
- this.form.infoid = this.curCase.id;
- this.form.donorno = this.curCase.donorno;
- this.form.donorname = this.curCase.name;
- this.form.username = this.defaultperson.nickName;
- this.form.userno = this.defaultperson.userName;
-
- this.form.deptmentname = this.defaultperson.dept.deptName;
- this.form.deptmentno = this.defaultperson.dept.deptId;
- this.form.managername = this.defaultperson.dept.leader;
- // this.form.createTime = nowdate;
- //this.open = true;
- //this.initFundApplyForm();
- this.fundDetailArr = [];
- this.fundflowList = [];
- this.addRow();
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [h("span", null, "璇峰厛閫夋嫨宸︽柟鎹愮尞妗堜緥 ")])
- });
- }
+ /** 鎼哄甫宸查�夋渚嬭烦杞埌鐢宠鍗曞~鍐欓〉 */
+ goApplyAdd() {
+ this.$router.push({
+ path: "/finance/applyDetail/",
+ query: {
+ id: 0,
+ businessType: "2",
+ operationType: "add",
+ curCase: this.curCase
+ }
+ });
},
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
@@ -1496,18 +1531,60 @@
//鐐瑰嚮鎹愮尞妗堜緥鍒楄〃瑙﹀彂鏂规硶
selectDonotor(row, column, event) {
this.curCase = row;
- this.getfundList();
+ if (this.casePickerMode === "add") {
+ // 浠庛�屾柊澧炵敵璇峰崟銆嶈繘鍏ワ細閫夊畬妗堜緥鐩存帴璺冲埌鐢宠鍗曞~鍐欓〉
+ this.casePickerMode = "";
+ this.caseDialogVisible = false;
+ this.goApplyAdd();
+ }
+ },
+
+ /** 鎸夊綋鍓� fundQueryParam 鏌ヨ鍙充晶鎶ラ攢鍗曞垪琛� */
+ listFundData() {
+ this.loading = true;
+ listFund(this.fundQueryParam).then(response => {
+ this.loading = false;
+ this.donateconsolationfundList = response.rows;
+ this.fundTotal = response.total;
+ });
+ },
+
+ /** 鎶ラ攢鍗曠瓫閫夛細鎼滅储 */
+ handleQueryFund() {
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
+ },
+
+ /** 鎶ラ攢鍗曠瓫閫夛細閲嶇疆锛堟竻绌烘潯浠朵笌宸查�夋渚嬶紝鍥炲埌璇ョ櫥褰曚汉鍏ㄩ儴鍗曟嵁锛� */
+ resetFundQuery() {
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.getAllfundList();
+ },
+
+ /** 妫�绱㈠叏閮細鍙栨秷妗堜緥閫夋嫨涓庣瓫閫夋潯浠讹紝鏌ヨ褰撳墠鐧诲綍浜虹殑鍏ㄩ儴浼︾悊瀹℃煡鍗曟嵁 */
+ getAllfundList() {
+ this.curCase = {};
+ if (this.$refs.caseTable) {
+ this.$refs.caseTable.setCurrentRow();
+ }
+ this.reset();
+ this.fundQueryParam.infoid = null;
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
},
//鑾峰彇妗堜緥涓撳璐圭敤鐢宠鍗�
getfundList() {
- this.loading = true;
this.reset();
+ // 閫変腑妗堜緥鍚庢寜妗堜緥灞曠ず锛屽悓鏃舵竻鎺夊垪琛ㄧ瓫閫夋潯浠讹紝閬垮厤涓や釜鏉′欢鍙犲姞瀵艰嚧绌哄垪琛�
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
this.fundQueryParam.infoid = this.curCase.id;
- listFund(this.fundQueryParam).then(response => {
- this.loading = false;
- this.donateconsolationfundList = response.rows;
- });
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
},
select(row) {
@@ -2058,10 +2135,11 @@
//鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
created() {
this.getUnitList();
- this.getList();
- this.getBaseInfoList();
+ // 妗堜緥鍒楄〃宸茬Щ鍏ャ�岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛屾墦寮�瀵硅瘽妗嗘椂鍐嶆煡璇�
this.getlistUser();
this.getCurFundType();
+ // 棣栧睆灞曠ず褰撳墠鐧诲綍浜虹殑鍏ㄩ儴浼︾悊瀹℃煡鍗曟嵁
+ this.getAllfundList();
},
//鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
mounted() {
diff --git a/src/views/project/fund/expertFeeApply/index.vue b/src/views/project/fund/expertFeeApply/index.vue
index 283c508..0cd2053 100644
--- a/src/views/project/fund/expertFeeApply/index.vue
+++ b/src/views/project/fund/expertFeeApply/index.vue
@@ -2,120 +2,66 @@
<template>
<div class="app-container">
<el-row>
- <el-col :span="6">
- <el-card shadow="never">
- <!-- 鎹愮尞妗堜緥鍒楄〃 -->
- <el-row>
- <el-col :span="10">
- <el-row type="flex" :gutter="10" align="right" class="mb8">
- </el-row>
- </el-col>
- </el-row>
- <div>
- <el-form
- class="opo-query-form"
- :model="queryParams"
- ref="queryForm"
- :inline="true"
- label-width="70px"
- >
- <el-form-item label="濮撳悕" prop="name">
- <el-input
- v-model="queryParams.name"
- placeholder="璇疯緭鍏ュ鍚�"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
- <el-select
- v-model="queryParams.recordstate"
- placeholder="璇烽�夋嫨璁板綍鐘舵��"
- clearable
- size="small"
- >
- <el-option
- v-for="dict in dict.type.sys_DonationStatus"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- <div style="float: right; margin-bottom: 10px;">
- <el-button
- type="primary"
- icon="el-icon-search"
- size="mini"
- @click="handleQuery"
- >鎼滅储</el-button
- >
- <el-button
- icon="el-icon-refresh"
- size="mini"
- @click="resetQuery"
- >閲嶇疆</el-button
- >
- </div>
- </el-form>
- </div>
- <el-table
- v-loading="loading"
- highlight-current-row
- :data="donatebaseinfoList"
- @row-click="selectDonotor"
- >
- <!-- <el-table-column label="鎹愮尞缂栧彿" align="center" prop="donorno" /> -->
- <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
- <template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_DonationStatus"
- :value="scope.row.recordstate"
- :key="dict.value"
- />
- <!-- :label="dict.label" -->
- </template>
- </el-table-column>
- <el-table-column label="濮撳悕" align="center" prop="name" />
- </el-table>
- <pagination
- v-show="total > 0"
- :total="total"
- small
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getBaseInfoList"
- />
- </el-card>
- </el-col>
- <el-col :span="18">
+ <el-col :span="24">
<el-card shadow="naver">
<el-form ref="infoform" label-width="100px">
- <el-row :gutter="4" align="right" class="mb8">
- <el-col :span="7">
- <el-form-item label="鎹愮尞缂栧彿">
- <el-input
- v-model="curCase.donorno"
- :disabled="true"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="濮撳悕">
- <el-input v-model="curCase.name" :disabled="true"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="3">
- <el-button
- type="primary"
- icon="el-icon-search"
- size="mini"
- @click="allgetfundList"
- >妫�绱㈠叏閮�</el-button
- >
- </el-col>
- </el-row>
+ <!-- 鎶ラ攢鍗曠瓫閫夛細鎹愮尞鑰呫�佸鎵圭姸鎬� -->
+ <el-form
+ class="opo-query-form"
+ :model="fundQueryParam"
+ ref="fundQueryForm"
+ :inline="true"
+ label-width="82px"
+ >
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鎹愮尞鑰�" prop="donorname">
+ <el-input
+ v-model="fundQueryParam.donorname"
+ placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQueryFund"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瀹℃壒鐘舵��" prop="recordstatus">
+ <el-select
+ v-model="fundQueryParam.recordstatus"
+ placeholder="璇烽�夋嫨瀹℃壒鐘舵��"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_recordstatus"
+ :key="dict.value"
+ :label="dict.label"
+ :value="Number(dict.value)"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label-width="10px">
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="small"
+ @click="handleQueryFund"
+ >鎼滅储</el-button
+ >
+ <el-button
+ icon="el-icon-refresh"
+ size="small"
+ @click="resetFundQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@@ -269,6 +215,8 @@
<!-- v-hasPermi="['project:expretfund:download']" -->
</template>
</el-table-column>
+ <!-- 2026-10-22锛氭寜瑕佹眰闅愯棌銆屽姛鑳姐�嶅垪锛堢嚎涓嬫姤閿�锛夛紝闇�瑕佹椂鍙栨秷娉ㄩ噴鍗冲彲鎭㈠ -->
+ <!--
<el-table-column
fixed="right"
align="center"
@@ -288,12 +236,121 @@
>
</template>
</el-table-column>
+ -->
</el-table>
+ <!-- 鏈�夋嫨妗堜緥鏃跺睍绀鸿鐧诲綍浜哄叏閮ㄤ笓瀹跺姵鍔″崟鎹紝瓒呰繃涓�椤靛彲鐢ㄥ垎椤电炕鐪� -->
+ <pagination
+ v-show="fundTotal > 0"
+ :total="fundTotal"
+ small
+ :page.sync="fundQueryParam.pageNum"
+ :limit.sync="fundQueryParam.pageSize"
+ @pagination="listFundData"
+ />
</el-row>
</el-form>
</el-card>
</el-col>
</el-row>
+
+ <!-- 鏂板鐢宠鍗曞墠鍏堥�夋嫨鎹愮尞妗堜緥锛堝師宸︿晶妗堜緥鍒楄〃绉诲埌杩欓噷锛� -->
+ <el-dialog
+ title="閫夋嫨鎹愮尞妗堜緥"
+ :visible.sync="caseDialogVisible"
+ width="760px"
+ append-to-body
+ >
+ <el-form
+ class="opo-query-form"
+ :model="queryParams"
+ ref="queryForm"
+ :inline="true"
+ label-width="70px"
+ >
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input
+ v-model="queryParams.name"
+ placeholder="璇疯緭鍏ュ鍚�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
+ <el-select
+ v-model="queryParams.recordstate"
+ placeholder="璇烽�夋嫨璁板綍鐘舵��"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_DonationStatus"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label-width="10px">
+ <el-button
+ type="primary"
+ icon="el-icon-search"
+ size="small"
+ @click="handleQuery"
+ >鎼滅储</el-button
+ >
+ <el-button icon="el-icon-refresh" size="small" @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-table
+ ref="caseTable"
+ v-loading="loading"
+ border
+ height="380"
+ highlight-current-row
+ :data="donatebaseinfoList"
+ @row-click="selectDonotor"
+ >
+ <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
+ <template slot-scope="scope">
+ <dict-tag
+ :options="dict.type.sys_DonationStatus"
+ :value="scope.row.recordstate"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="濮撳悕" align="center" prop="name" />
+ <el-table-column label="鎿嶄綔" align="center" width="90">
+ <template slot-scope="scope">
+ <el-button type="text" size="mini" @click="selectDonotor(scope.row)"
+ >閫夋嫨</el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ small
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getBaseInfoList"
+ />
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="caseDialogVisible = false">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
<!-- 娣诲姞鎴栦慨鏀硅垂鐢ㄧ敵璇峰崟 -->
<el-dialog
@@ -1215,11 +1272,16 @@
},
fundQueryParam: {
pageNum: 1,
- pageSize: 100,
+ pageSize: 10,
infoid: null,
applytype: "1",
- createBy: null
+ createBy: null,
+ // 鎶ラ攢鍗曠瓫閫夋潯浠�
+ donorname: null,
+ recordstatus: null
},
+ // 鍙充晶鎶ラ攢鍗曟�绘暟锛堢敤浜庡垎椤碉級
+ fundTotal: 0,
// 琛ㄥ崟鍙傛暟
form: {},
//鎵�鏈変汉鍛樿〃
@@ -1268,6 +1330,9 @@
donatebaseinfoList: [],
//褰撳墠閫変腑鎹愮尞妗堜緥
curCase: {},
+ // 銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛堟柊澧炵敵璇峰崟鏃朵娇鐢級
+ caseDialogVisible: false,
+ casePickerMode: "",
//鏄惁鏄剧ず璐圭敤鐢宠寮圭獥
dialogOpen: false,
// title: "",
@@ -1363,11 +1428,12 @@
watch: {},
//鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
created() {
- this.getList();
- this.getBaseInfoList();
+ // 妗堜緥鍒楄〃宸茬Щ鍏ャ�岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛屾墦寮�瀵硅瘽妗嗘椂鍐嶆煡璇�
this.getCurFundType();
this.getUserList();
this.getUnitList();
+ // 棣栧睆灞曠ず褰撳墠鐧诲綍浜虹殑鍏ㄩ儴涓撳鍔冲姟鍗曟嵁
+ this.allgetfundList();
},
//鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
@@ -1411,57 +1477,24 @@
});
},
- /** 鏂板鎸夐挳鎿嶄綔 */
+ /** 鏂板鎸夐挳鎿嶄綔锛氬厛寮瑰嚭銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇 */
handleAdd() {
- if (this.curCase.id) {
- this.$router.push({
- path: "/finance/applyDetail/",
- query: {
- id: 0,
- businessType: "1",
- operationType: "add",
- curCase: this.curCase
- }
- });
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [
- h("span", null, "璇峰湪宸﹁竟鐨勬崘鐚渚嬭〃閫夋嫨闇�瑕佹搷浣滅殑妗堜緥锛�")
- ])
- });
- }
- return;
+ this.casePickerMode = "add";
+ this.caseDialogVisible = true;
+ this.getBaseInfoList();
+ },
- if (this.curCase.id) {
- this.istrue += 2;
- this.reset();
- this.queryParams.params = {};
- this.form.infoid = this.curCase.id;
- this.form.donorno = this.curCase.donorno;
- this.form.donorname = this.curCase.name;
-
- this.form.username = this.defaultperson.nickName;
- this.form.userno = this.defaultperson.userName;
- this.form.phone = this.defaultperson.phonenumber;
- this.form.deptmentname = this.defaultperson.dept.deptName;
- this.form.deptmentno = this.defaultperson.dept.deptId;
- this.form.managername = this.defaultperson.dept.leader;
-
- // this.form.createTime = nowdate;
- //this.open = true;
- //this.initFundApplyForm();
- this.fundDetails = [];
- this.addRow();
- this.dialogOpen = true;
- this.dialogType = "edit";
- this.title = "璐圭敤鐢宠";
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [h("span", null, "璇峰厛閫夋嫨宸︽柟鎹愮尞妗堜緥 ")])
- });
- }
+ /** 鎼哄甫宸查�夋渚嬭烦杞埌鐢宠鍗曞~鍐欓〉 */
+ goApplyAdd() {
+ this.$router.push({
+ path: "/finance/applyDetail/",
+ query: {
+ id: 0,
+ businessType: "1",
+ operationType: "add",
+ curCase: this.curCase
+ }
+ });
},
/** 淇敼鎸夐挳鎿嶄綔 */
@@ -2171,25 +2204,57 @@
//鐐瑰嚮鎹愮尞妗堜緥鍒楄〃瑙﹀彂鏂规硶
selectDonotor(row, column, event) {
this.curCase = row;
- this.getfundList();
+ if (this.casePickerMode === "add") {
+ // 浠庛�屾柊澧炵敵璇峰崟銆嶈繘鍏ワ細閫夊畬妗堜緥鐩存帴璺冲埌鐢宠鍗曞~鍐欓〉
+ this.casePickerMode = "";
+ this.caseDialogVisible = false;
+ this.goApplyAdd();
+ }
},
allgetfundList() {
- this.loading = true;
+ // 妫�绱㈠叏閮細鍙栨秷宸︿晶妗堜緥閫夋嫨涓庣瓫閫夋潯浠讹紝鏌ヨ褰撳墠鐧诲綍浜虹殑鍏ㄩ儴涓撳鍔冲姟鍗曟嵁
+ this.curCase = {};
+ if (this.$refs.caseTable) {
+ this.$refs.caseTable.setCurrentRow();
+ }
this.reset();
this.fundQueryParam.infoid = null;
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
+ },
+ /** 鎶ラ攢鍗曠瓫閫夛細鎼滅储 */
+ handleQueryFund() {
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
+ },
+ /** 鎶ラ攢鍗曠瓫閫夛細閲嶇疆锛堟竻绌烘潯浠朵笌宸查�夋渚嬶紝鍥炲埌璇ョ櫥褰曚汉鍏ㄩ儴鍗曟嵁锛� */
+ resetFundQuery() {
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.allgetfundList();
+ },
+ /**
+ * 鎸夊綋鍓� fundQueryParam 鏌ヨ鍙充晶鎶ラ攢鍗曞垪琛�
+ * infoid 涓虹┖ = 褰撳墠鐧诲綍浜虹殑鍏ㄩ儴璇ョ被鍨嬪崟鎹紱鏈夊�� = 鎸囧畾妗堜緥
+ */
+ listFundData() {
+ this.loading = true;
listFund(this.fundQueryParam).then(response => {
this.loading = false;
this.donateconsolationfundList = response.rows;
+ this.fundTotal = response.total;
});
},
getfundList() {
- this.loading = true;
this.reset();
+ // 閫変腑妗堜緥鍚庢寜妗堜緥灞曠ず锛屽悓鏃舵竻鎺夊垪琛ㄧ瓫閫夋潯浠讹紝閬垮厤涓や釜鏉′欢鍙犲姞瀵艰嚧绌哄垪琛�
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
this.fundQueryParam.infoid = this.curCase.id;
- listFund(this.fundQueryParam).then(response => {
- this.loading = false;
- this.donateconsolationfundList = response.rows;
- });
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
},
//瀵煎叆鎵�鏈夐」鐩�
diff --git a/src/views/project/fund/medicalCostApply/index.vue b/src/views/project/fund/medicalCostApply/index.vue
index 152bdac..dc2a2e0 100644
--- a/src/views/project/fund/medicalCostApply/index.vue
+++ b/src/views/project/fund/medicalCostApply/index.vue
@@ -2,254 +2,94 @@
<template>
<div class="app-container">
<el-row>
- <el-col :span="6">
- <el-card shadow="never">
- <!-- 鎹愮尞妗堜緥鍒楄〃 -->
- <el-row>
- <el-col :span="10">
- <el-row type="flex" :gutter="10" align="right" class="mb8">
- </el-row>
- </el-col>
- </el-row>
- <div>
- <el-form
- class="opo-query-form"
- :model="queryParams"
- ref="queryForm"
- :inline="true"
- label-width="70px"
- >
- <el-form-item label="濮撳悕" prop="name">
- <el-input
- v-model="queryParams.name"
- placeholder="璇疯緭鍏ュ鍚�"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
- <el-select
- v-model="queryParams.recordstate"
- placeholder="璇烽�夋嫨璁板綍鐘舵��"
- clearable
- size="small"
- >
- <el-option
- v-for="dict in dict.type.sys_DonationStatus"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- <div style="float: right; margin-bottom: 10px;">
- <el-button
- type="primary"
- icon="el-icon-search"
- size="mini"
- @click="handleQuery"
- >鎼滅储</el-button
- >
- <el-button
- icon="el-icon-refresh"
- size="mini"
- @click="resetQuery"
- >閲嶇疆</el-button
- >
- </div>
- </el-form>
- </div>
- <el-table
- v-loading="loading"
- border
- highlight-current-row
- :data="donatebaseinfoList"
- @row-click="selectDonotor"
- >
- <!-- <el-table-column label="鎹愮尞缂栧彿" align="center" prop="donorno" /> -->
- <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
- <template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_DonationStatus"
- :value="scope.row.recordstate"
- />
- </template>
- </el-table-column>
- <el-table-column label="濮撳悕" align="center" prop="name" />
- </el-table>
- <pagination
- v-show="total > 0"
- :total="total"
- small
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
- @pagination="getBaseInfoList"
- />
- </el-card>
- </el-col>
- <el-col :span="18">
+ <el-col :span="24">
<el-card shadow="naver">
<el-form ref="infoform" label-width="100px">
- <el-row :gutter="4" align="right" class="mb8">
- <el-col :span="9">
- <el-form-item label="鎹愮尞缂栧彿">
- <el-input
- v-model="curCase.donorno"
- :disabled="true"
- ></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="9">
- <el-form-item label="濮撳悕">
- <el-input v-model="curCase.name" :disabled="true"></el-input>
- </el-form-item>
- </el-col>
- <el-col> </el-col>
- </el-row>
+ <!-- 鎶ラ攢鍗曠瓫閫夛細鎹愮尞鑰呫�佸鎵圭姸鎬� -->
+ <el-form class="opo-query-form" :model="fundQueryParam" ref="fundQueryForm" :inline="true"
+ label-width="82px">
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鎹愮尞鑰�" prop="donorname">
+ <el-input v-model="fundQueryParam.donorname" placeholder="璇疯緭鍏ユ崘鐚�呭鍚�" clearable size="small"
+ @keyup.enter.native="handleQueryFund" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瀹℃壒鐘舵��" prop="recordstatus">
+ <el-select v-model="fundQueryParam.recordstatus" placeholder="璇烽�夋嫨瀹℃壒鐘舵��" clearable size="small"
+ style="width: 100%">
+ <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label"
+ :value="Number(dict.value)" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label-width="10px">
+ <el-button type="primary" icon="el-icon-search" size="small" @click="handleQueryFund">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="small" @click="resetFundQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
- <el-button
- type="primary"
- plain
- icon="el-icon-plus"
- size="mini"
- @click="handleAdd"
- v-hasPermi="['project:medicalfund:add']"
- >鏂板鐢宠鍗�</el-button
- >
+ <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+ v-hasPermi="['project:medicalfund:add']">鏂板鐢宠鍗�</el-button>
</el-col>
</el-row>
<el-row>
- <el-table
- v-loading="loading"
- border
- :data="donateconsolationfundList"
- :row-class-name="rowClassName"
- >
- <el-table-column
- label="鐢宠鏃ユ湡"
- align="center"
- prop="applyTime"
- width="150px"
- >
+ <el-table v-loading="loading" border :data="donateconsolationfundList" :row-class-name="rowClassName">
+ <el-table-column label="鐢宠鏃ユ湡" align="center" prop="applyTime" width="150px">
<template slot-scope="scope">
<span>{{
parseTime(scope.row.applyTime, "{y}-{m}-{d}")
}}</span>
</template>
</el-table-column>
- <el-table-column
- label="鐢宠浜�"
- align="center"
- prop="username"
- width="120px"
- />
- <el-table-column
- label="鐢宠閲戦"
- align="center"
- prop="pretaxcost"
- width="200px"
- />
- <el-table-column
- label="鎵�灞炵粍鍒�"
- align="center"
- prop="deptmentname"
- width="220px"
- />
- <el-table-column
- label="缁勯暱"
- align="center"
- prop="managername"
- width="200px"
- />
- <el-table-column
- label="瀹℃牳鐘舵��"
- align="center"
- prop="recordstatus"
- >
+ <el-table-column label="缁忓姙浜�" align="center" prop="username" width="120px" />
+ <el-table-column label="鐢宠閲戦" align="center" prop="pretaxcost" width="200px" />
+ <el-table-column label="瀹℃牳鐘舵��" align="center" prop="recordstatus">
<template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_recordstatus"
- :value="scope.row.recordstatus"
- />
+ <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" />
</template>
</el-table-column>
- <el-table-column
- label="鏉愭枡棰勫鐘舵��"
- width="140"
- align="center"
- prop="checkstatus"
- >
+ <el-table-column label="鏉愭枡棰勫鐘舵��" width="140" align="center" prop="checkstatus">
<template slot-scope="scope">
- <dict-tag
- :options="dict.type.sys_stage_type"
- :value="scope.row.checkstatus"
- />
+ <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" />
</template>
</el-table-column>
+ <el-table-column label="鎹愮尞鑰�" align="center" prop="donorname" show-overflow-tooltip />
+ <el-table-column label="鎵�灞炵粍鍒�" align="center" prop="deptmentname"/>
+ <el-table-column label="缁勯暱" align="center" prop="managername" />
<!--
<el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phone" width="150px" />
<el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="150px" />
-->
- <el-table-column
- label="鎿嶄綔"
- fixed="right"
- align="center"
- class-name="small-padding fixed-width"
- width="280px"
- >
+ <el-table-column label="鎿嶄綔" fixed="right" align="center" class-name="small-padding fixed-width"
+ width="280px">
<template slot-scope="scope">
- <el-button
- v-if="
- scope.row.recordstatus == -1 ||
- scope.row.recordstatus == 1
- "
- size="mini"
- type="text"
- icon="el-icon-edit"
- @click="handleup(scope.row)"
- >涓婃姤</el-button
- >
- <el-button
- v-if="
- scope.row.recordstatus == -1 ||
- scope.row.recordstatus == 1
- "
- size="mini"
- type="text"
- icon="el-icon-edit"
- @click="handleUpdate(scope.row)"
- >淇敼</el-button
- >
- <el-button
- size="mini"
- type="text"
- icon="el-icon-view"
- @click="handleDetail(scope.row)"
- >鏌ョ湅</el-button
- >
- <el-button
- v-if="
- scope.row.recordstatus == -1 ||
- scope.row.recordstatus == 1
- "
- size="mini"
- type="text"
- @click="handleDelete(scope.row)"
- ><span class="button-delete"
- ><i class="el-icon-delete"></i>鍒犻櫎</span
- ></el-button
- >
- <el-button
- size="mini"
- type="text"
- icon="el-icon-download"
- @click="mixExport(scope.row.id)"
- >涓嬭浇</el-button
- >
+ <el-button v-if="
+ scope.row.recordstatus == -1 ||
+ scope.row.recordstatus == 1
+ " size="mini" type="text" icon="el-icon-edit" @click="handleup(scope.row)">涓婃姤</el-button>
+ <el-button v-if="
+ scope.row.recordstatus == -1 ||
+ scope.row.recordstatus == 1
+ " size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">淇敼</el-button>
+ <el-button size="mini" type="text" icon="el-icon-view"
+ @click="handleDetail(scope.row)">鏌ョ湅</el-button>
+ <el-button v-if="
+ scope.row.recordstatus == -1 ||
+ scope.row.recordstatus == 1
+ " size="mini" type="text" @click="handleDelete(scope.row)"><span class="button-delete"><i
+ class="el-icon-delete"></i>鍒犻櫎</span></el-button>
+ <el-button size="mini" type="text" icon="el-icon-download"
+ @click="mixExport(scope.row.id)">涓嬭浇</el-button>
</template>
</el-table-column>
+ <!-- 2026-10-22锛氭寜瑕佹眰闅愯棌銆屽姛鑳姐�嶅垪锛堢嚎涓嬫姤閿�锛夛紝闇�瑕佹椂鍙栨秷娉ㄩ噴鍗冲彲鎭㈠ -->
+ <!--
<el-table-column
fixed="right"
align="center"
@@ -269,12 +109,64 @@
>
</template>
</el-table-column>
+ -->
</el-table>
+ <!-- 鏈�夋嫨妗堜緥鏃跺睍绀鸿鐧诲綍浜哄叏閮ㄥ尰瀛︽垚鏈崟鎹紝瓒呰繃涓�椤靛彲鐢ㄥ垎椤电炕鐪� -->
+ <pagination v-show="fundTotal > 0" :total="fundTotal" small :page.sync="fundQueryParam.pageNum"
+ :limit.sync="fundQueryParam.pageSize" @pagination="listFundData" />
</el-row>
</el-form>
</el-card>
</el-col>
</el-row>
+
+ <!-- 鏂板鐢宠鍗曞墠鍏堥�夋嫨鎹愮尞妗堜緥锛堝師宸︿晶妗堜緥鍒楄〃绉诲埌杩欓噷锛� -->
+ <el-dialog title="閫夋嫨鎹愮尞妗堜緥" :visible.sync="caseDialogVisible" width="760px" append-to-body>
+ <el-form class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" label-width="70px">
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" clearable size="small"
+ @keyup.enter.native="handleQuery" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎹愮尞杩涘害" prop="recordstate">
+ <el-select v-model="queryParams.recordstate" placeholder="璇烽�夋嫨璁板綍鐘舵��" clearable size="small"
+ style="width: 100%">
+ <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label"
+ :value="dict.value" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label-width="10px">
+ <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="small" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-table ref="caseTable" v-loading="loading" border height="380" highlight-current-row :data="donatebaseinfoList"
+ @row-click="selectDonotor">
+ <el-table-column label="鎹愮尞杩涘害" align="center" prop="recordstate">
+ <template slot-scope="scope">
+ <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" />
+ </template>
+ </el-table-column>
+ <el-table-column label="濮撳悕" align="center" prop="name" />
+ <el-table-column label="鎿嶄綔" align="center" width="90">
+ <template slot-scope="scope">
+ <el-button type="text" size="mini" @click="selectDonotor(scope.row)">閫夋嫨</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination v-show="total > 0" :total="total" small :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" />
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="caseDialogVisible = false">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -387,10 +279,13 @@
fundQueryParam: {
pageNum: 1,
- pageSize: 100,
+ pageSize: 10,
infoid: null,
applytype: "3",
- createBy: null
+ createBy: null,
+ // 鎶ラ攢鍗曠瓫閫夋潯浠�
+ donorname: null,
+ recordstatus: null
},
// 琛ㄥ崟鍙傛暟
form: {},
@@ -412,6 +307,9 @@
donatebaseinfoList: [],
//褰撳墠閫変腑鎹愮尞妗堜緥
curCase: {},
+ // 銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛堟柊澧炵敵璇峰崟鏃朵娇鐢級
+ caseDialogVisible: false,
+ casePickerMode: "",
//鏄惁鏄剧ず璐圭敤鐢宠寮圭獥
dialogOpen: false,
// title: "",
@@ -420,6 +318,8 @@
// 鎹愮尞浜洪亾鎱伴棶閲戣〃鏍兼暟鎹�
donateconsolationfundList: [],
+ // 鍙充晶鎶ラ攢鍗曟�绘暟锛堢敤浜庡垎椤碉級
+ fundTotal: 0,
//鏄庣粏璁板綍
fundDetails: [],
@@ -473,11 +373,12 @@
watch: {},
//鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
created() {
- this.getList();
- this.getBaseInfoList();
+ // 妗堜緥鍒楄〃宸茬Щ鍏ャ�岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛屾墦寮�瀵硅瘽妗嗘椂鍐嶆煡璇�
this.getCurFundType();
this.getlistUser();
// this.getUnitList();
+ // 棣栧睆灞曠ず褰撳墠鐧诲綍浜虹殑鍏ㄩ儴鍖诲鎴愭湰鍗曟嵁
+ this.getAllfundList();
},
//鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
@@ -486,13 +387,13 @@
this.getUsermsg();
},
- beforeCreate() {}, //鐢熷懡鍛ㄦ湡 - 鍒涘缓涔嬪墠
- beforeMount() {}, //鐢熷懡鍛ㄦ湡 - 鎸傝浇涔嬪墠
- beforeUpdate() {}, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪墠
- updated() {}, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪悗
- beforeDestroy() {}, //鐢熷懡鍛ㄦ湡 - 閿�姣佷箣鍓�
- destroyed() {}, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
- activated() {}, //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
+ beforeCreate() { }, //鐢熷懡鍛ㄦ湡 - 鍒涘缓涔嬪墠
+ beforeMount() { }, //鐢熷懡鍛ㄦ湡 - 鎸傝浇涔嬪墠
+ beforeUpdate() { }, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪墠
+ updated() { }, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪悗
+ beforeDestroy() { }, //鐢熷懡鍛ㄦ湡 - 閿�姣佷箣鍓�
+ destroyed() { }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
+ activated() { }, //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
//鏂规硶闆嗗悎
methods: {
@@ -501,7 +402,7 @@
this.queryParams.pageNum = 1;
this.getList();
},
- /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ /** 閲嶇疆鎸夐挳鎿嶄綔锛堟渚嬮�夋嫨瀵硅瘽妗嗗唴鐨勬渚嬫煡璇級 */
resetQuery() {
this.daterangeReporttime = [];
@@ -538,55 +439,24 @@
});
},
- /** 鏂板鎸夐挳鎿嶄綔 */
+ /** 鏂板鎸夐挳鎿嶄綔锛氬厛寮瑰嚭銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇 */
handleAdd() {
- if (this.curCase.id) {
- this.$router.push({
- path: "/finance/applyDetail/",
- query: {
- id: 0,
- businessType: "3",
- operationType: "add",
- curCase: this.curCase,
- }
- });
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [
- h("span", null, "璇峰湪宸﹁竟鐨勬崘鐚渚嬭〃閫夋嫨闇�瑕佹搷浣滅殑妗堜緥锛�")
- ])
- });
- }
- return;
+ this.casePickerMode = "add";
+ this.caseDialogVisible = true;
+ this.getBaseInfoList();
+ },
- if (this.curCase.id) {
- this.istrue += 2;
- this.reset();
- this.queryParams.params = {};
- this.form.donorno = this.curCase.donorno;
- this.form.name = this.curCase.name;
- this.form.infoid = this.curCase.id;
- this.form.username = this.defaultperson.nickName;
- this.form.userno = this.defaultperson.userName;
- this.form.deptmentname = this.defaultperson.dept.deptName;
- this.form.deptmentno = this.defaultperson.dept.deptId;
- this.form.managername = this.defaultperson.dept.leader;
-
- // this.form.createTime = nowdate;
- //this.open = true;
- //this.initFundApplyForm();
- this.fundDetails = [];
- this.addRow();
- this.dialogOpen = true;
- this.title = "娣诲姞璐圭敤鐢宠";
- this.dialogType = "edit";
- } else {
- const h = this.$createElement;
- this.$message({
- message: h("p", null, [h("span", null, "璇峰厛閫夋嫨宸︽柟鎹愮尞妗堜緥 ")])
- });
- }
+ /** 鎼哄甫宸查�夋渚嬭烦杞埌鐢宠鍗曞~鍐欓〉 */
+ goApplyAdd() {
+ this.$router.push({
+ path: "/finance/applyDetail/",
+ query: {
+ id: 0,
+ businessType: "3",
+ operationType: "add",
+ curCase: this.curCase,
+ }
+ });
},
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
@@ -617,8 +487,8 @@
//闄勪欢澶勭悊
this.fileList = this.form.annexbankcard
? this.form.annexbankcard
- .split(",")
- .map(item => ({ url: item, name: item }))
+ .split(",")
+ .map(item => ({ url: item, name: item }))
: [];
getownFundDetail(id).then(async res => {
@@ -664,8 +534,8 @@
//闄勪欢澶勭悊
this.fileList = this.form.annexbankcard
? this.form.annexbankcard
- .split(",")
- .map(item => ({ url: item, name: item }))
+ .split(",")
+ .map(item => ({ url: item, name: item }))
: [];
listFundflow(listFundflowparams).then(res => {
@@ -693,7 +563,7 @@
const ids = row.id || this.ids;
this.$modal
.confirm("鏄惁纭鍒犻櫎璇ヨ褰曪紵")
- .then(function() {
+ .then(function () {
return delFund(ids);
})
.then(() => {
@@ -707,7 +577,7 @@
this.getfundList();
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
})
- .catch(() => {});
+ .catch(() => { });
},
/** 涓婃姤鎸夐挳鎿嶄綔 */
@@ -886,20 +756,68 @@
});
},
- //鐐瑰嚮鎹愮尞妗堜緥鍒楄〃瑙﹀彂鏂规硶
+ //鐐瑰嚮鎹愮尞妗堜緥鍒楄〃瑙﹀彂鏂规硶锛堟渚嬪垪琛ㄥ凡绉诲叆銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛�
selectDonotor(row, column, event) {
this.curCase = row;
- this.getfundList();
+ if (this.casePickerMode === "add") {
+ // 浠庛�屾柊澧炵敵璇峰崟銆嶈繘鍏ワ細閫夊畬妗堜緥鐩存帴璺冲埌鐢宠鍗曞~鍐欓〉
+ this.casePickerMode = "";
+ this.caseDialogVisible = false;
+ this.goApplyAdd();
+ }
},
getfundList() {
- this.loading = true;
this.reset();
+ // 閫変腑妗堜緥鍚庢寜妗堜緥灞曠ず锛屽悓鏃舵竻鎺夊垪琛ㄧ瓫閫夋潯浠讹紝閬垮厤涓や釜鏉′欢鍙犲姞瀵艰嚧绌哄垪琛�
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
this.fundQueryParam.infoid = this.curCase.id;
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
+ },
+
+ /**
+ * 鎸夊綋鍓� fundQueryParam 鏌ヨ鍙充晶鎶ラ攢鍗曞垪琛�
+ * infoid 涓虹┖ = 褰撳墠鐧诲綍浜虹殑鍏ㄩ儴璇ョ被鍨嬪崟鎹紱鏈夊�� = 鎸囧畾妗堜緥
+ */
+ listFundData() {
+ this.loading = true;
listFund(this.fundQueryParam).then(response => {
this.loading = false;
this.donateconsolationfundList = response.rows;
+ this.fundTotal = response.total;
});
+ },
+
+ /** 鎶ラ攢鍗曠瓫閫夛細鎼滅储 */
+ handleQueryFund() {
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
+ },
+
+ /** 鎶ラ攢鍗曠瓫閫夛細閲嶇疆锛堟竻绌烘潯浠朵笌宸查�夋渚嬶紝鍥炲埌璇ョ櫥褰曚汉鍏ㄩ儴鍗曟嵁锛� */
+ resetFundQuery() {
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.getAllfundList();
+ },
+
+ /**
+ * 妫�绱㈠叏閮細鍙栨秷宸︿晶妗堜緥閫夋嫨涓庣瓫閫夋潯浠讹紝鏌ヨ褰撳墠鐧诲綍浜虹殑鍏ㄩ儴鍖诲鎴愭湰鍗曟嵁
+ */
+ getAllfundList() {
+ this.curCase = {};
+ // 鍚屾椂娓呮帀宸︿晶妗堜緥鍒楄〃鐨勯珮浜�変腑鎬�
+ if (this.$refs.caseTable) {
+ this.$refs.caseTable.setCurrentRow();
+ }
+ this.reset();
+ this.fundQueryParam.infoid = null;
+ this.fundQueryParam.donorname = null;
+ this.fundQueryParam.recordstatus = null;
+ this.fundQueryParam.pageNum = 1;
+ this.listFundData();
},
// 鍙栨秷鎸夐挳
@@ -1093,9 +1011,9 @@
tempData.itemid = tempItemArr[itemIndex].id;
}
if (tempData.id > 0) {
- updateFunddetail(tempData).then(response2 => {});
+ updateFunddetail(tempData).then(response2 => { });
} else {
- addFunddetail(tempData).then(response2 => {});
+ addFunddetail(tempData).then(response2 => { });
}
}
});
@@ -1398,7 +1316,7 @@
},
//鏂囦欢涓婁紶
- handleUploadError() {},
+ handleUploadError() { },
handleremove(file) {
this.fileList.splice(this.fileList.indexOf(file), 1);
@@ -1480,6 +1398,7 @@
.button-delete {
color: rgb(236, 69, 69);
}
+
::v-deep.el-table .error-row {
background: #fcebeb;
}
diff --git a/src/views/project/register/index.vue b/src/views/project/register/index.vue
new file mode 100644
index 0000000..cfac46a
--- /dev/null
+++ b/src/views/project/register/index.vue
@@ -0,0 +1,351 @@
+<template>
+ <div class="app-container">
+ <!-- 鏌ヨ鏉′欢锛氭寜閽揣璺熸潯浠朵箣鍚庯紙涓庢渚嬭瘎浼伴〉椋庢牸涓�鑷达級 -->
+ <el-form
+ class="opo-query-form"
+ :model="queryParams"
+ ref="queryForm"
+ :inline="true"
+ v-show="showSearch"
+ label-width="82px"
+ >
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鎹愮尞鑰�" prop="name">
+ <el-input
+ v-model="queryParams.name"
+ placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="璇佷欢鍙风爜" prop="idcardno">
+ <el-input
+ v-model="queryParams.idcardno"
+ placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鍣ㄥ畼绫诲埆" prop="organno">
+ <el-select
+ v-model="queryParams.organno"
+ placeholder="璇烽�夋嫨鍣ㄥ畼绫诲埆"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_Organ"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鑾峰彇鐘舵��" prop="organstate">
+ <el-select
+ v-model="queryParams.organstate"
+ placeholder="璇烽�夋嫨鑾峰彇鐘舵��"
+ clearable
+ size="small"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in dict.type.sys_organstate"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鍣ㄥ畼缂栧彿" prop="organnumber">
+ <el-input
+ v-model="queryParams.organnumber"
+ placeholder="璇疯緭鍏ュ櫒瀹樼紪鍙�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="绉绘鏈烘瀯" prop="transplanthospitalname">
+ <el-input
+ v-model="queryParams.transplanthospitalname"
+ placeholder="璇疯緭鍏ョЩ妞嶆満鏋勫悕绉�"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="绉绘浜�" prop="acceptname">
+ <el-input
+ v-model="queryParams.acceptname"
+ placeholder="璇疯緭鍏ョЩ妞嶄汉濮撳悕"
+ clearable
+ size="small"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label-width="10px">
+ <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="small" @click="resetQuery">閲嶇疆</el-button>
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-download"
+ size="small"
+ :loading="exportLoading"
+ @click="handleExport"
+ v-hasPermi="['project:register:export']"
+ >瀵煎嚭</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row class="mb8">
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
+ </el-form>
+
+ <el-table v-loading="loading" :data="registerList" :border="true">
+ <el-table-column label="鎹愮尞鑰呯紪鍙�" align="center" prop="donorno" width="200" show-overflow-tooltip />
+ <el-table-column label="濮撳悕" align="center" prop="name" width="90" show-overflow-tooltip />
+ <el-table-column label="鎬у埆" align="center" prop="sex" width="70">
+ <template slot-scope="scope">
+ <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
+ </template>
+ </el-table-column>
+ <el-table-column label="骞撮緞" align="center" width="80">
+ <template slot-scope="scope">
+ <span v-if="scope.row.age">{{ scope.row.age }}{{ scope.row.ageunit }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍣ㄥ畼绫诲埆" align="center" prop="organname" width="90" show-overflow-tooltip />
+ <el-table-column label="鍣ㄥ畼缂栧彿" align="center" prop="organnumber" width="130" show-overflow-tooltip />
+ <el-table-column label="鑾峰彇鐘舵��" align="center" prop="organstate" width="100">
+ <template slot-scope="scope">
+ <dict-tag :options="dict.type.sys_organstate" :value="scope.row.organstate" />
+ </template>
+ </el-table-column>
+ <el-table-column label="鑾峰彇鏃堕棿" align="center" prop="organgettime" width="150">
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.organgettime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鑾峰彇鏈烘瀯" align="center" prop="gainhospitalname" min-width="180" show-overflow-tooltip />
+ <el-table-column label="绉绘鏈烘瀯" align="center" prop="transplanthospitalname" min-width="180" show-overflow-tooltip />
+ <el-table-column label="绉绘鍖荤敓" align="center" prop="transplantdoct" width="100" show-overflow-tooltip />
+ <el-table-column label="绉绘鏃堕棿" align="center" prop="transplanttime" width="150">
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.transplanttime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" align="center" width="90" class-name="small-padding fixed-width">
+ <template slot-scope="scope">
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-view"
+ @click="handleDetail(scope.row)"
+ v-hasPermi="['project:register:query']"
+ >璇︽儏</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+
+ <!-- 璇︽儏锛氬彧璇诲睍绀哄叏閮ㄥ瓧娈� -->
+ <el-dialog title="鍣ㄥ畼鍘诲璇︽儏" :visible.sync="open" width="900px" append-to-body>
+ <div v-loading="detailLoading" class="register-detail">
+ <el-divider content-position="left">鎹愮尞鑰呬俊鎭�</el-divider>
+ <el-descriptions :column="3" size="small" border>
+ <el-descriptions-item label="濮撳悕">{{ detail.name }}</el-descriptions-item>
+ <el-descriptions-item label="鎬у埆">{{ dictLabel("sys_user_sex", detail.sex) }}</el-descriptions-item>
+ <el-descriptions-item label="骞撮緞">
+ <span v-if="detail.age">{{ detail.age }}{{ detail.ageunit }}</span>
+ </el-descriptions-item>
+ <el-descriptions-item label="璇佷欢鍙风爜">{{ detail.idcardno }}</el-descriptions-item>
+ <el-descriptions-item label="鍑虹敓鏃ユ湡">{{ parseTime(detail.birthday, "{y}-{m}-{d}") }}</el-descriptions-item>
+ <el-descriptions-item label="鑱旂郴鐢佃瘽">{{ detail.phone }}</el-descriptions-item>
+ <el-descriptions-item label="鐜颁綇鍦板潃" :span="3">{{ detail.residenceaddress }}</el-descriptions-item>
+ <el-descriptions-item label="鎹愮尞鑰呯紪鍙�">{{ detail.donorno }}</el-descriptions-item>
+ </el-descriptions>
+
+ <el-divider content-position="left">鍣ㄥ畼淇℃伅</el-divider>
+ <el-descriptions :column="3" size="small" border>
+ <el-descriptions-item label="鍣ㄥ畼绫诲埆">{{ detail.organname }}</el-descriptions-item>
+ <el-descriptions-item label="鍣ㄥ畼缂栧彿">{{ detail.organnumber }}</el-descriptions-item>
+ <el-descriptions-item label="鑾峰彇鐘舵��">
+ {{ dictLabel("sys_organstate", detail.organstate) }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鑾峰彇鏃堕棿">{{ parseTime(detail.organgettime) }}</el-descriptions-item>
+ <el-descriptions-item label="鑾峰彇鍖荤敓" :span="2">{{ detail.organgetdoct }}</el-descriptions-item>
+ <el-descriptions-item label="鑾峰彇鏈烘瀯" :span="2">{{ detail.gainhospitalname }}</el-descriptions-item>
+ <el-descriptions-item label="绉绘鏈烘瀯" :span="2">{{ detail.transplanthospitalname }}</el-descriptions-item>
+ <el-descriptions-item label="绉绘鍖荤敓">{{ detail.transplantdoct }}</el-descriptions-item>
+ <el-descriptions-item label="绉绘鏃堕棿" :span="2">{{ parseTime(detail.transplanttime) }}</el-descriptions-item>
+ </el-descriptions>
+
+ <el-divider content-position="left">鐢宠涓庡鏍�</el-divider>
+ <el-descriptions :column="3" size="small" border>
+ <el-descriptions-item label="鐢宠浜�">{{ detail.applicantusername }}</el-descriptions-item>
+ <el-descriptions-item label="鐢宠鏃堕棿" :span="2">{{ parseTime(detail.applicanttime) }}</el-descriptions-item>
+ <el-descriptions-item label="瀹℃牳浜�">{{ detail.checkusername }}</el-descriptions-item>
+ <el-descriptions-item label="瀹℃牳鏃堕棿" :span="2">{{ parseTime(detail.checktime) }}</el-descriptions-item>
+ <el-descriptions-item label="瀹℃牳鎰忚" :span="3">{{ detail.checksuggestion }}</el-descriptions-item>
+ </el-descriptions>
+
+ <el-divider content-position="left">绉绘浜轰俊鎭�</el-divider>
+ <el-descriptions :column="3" size="small" border>
+ <el-descriptions-item label="濮撳悕">{{ detail.acceptname }}</el-descriptions-item>
+ <el-descriptions-item label="鎬у埆">{{ dictLabel("sys_user_sex", detail.acceptsex) }}</el-descriptions-item>
+ <el-descriptions-item label="骞撮緞">
+ <span v-if="detail.acceptage">{{ detail.acceptage }}{{ detail.acceptageunit }}</span>
+ </el-descriptions-item>
+ <el-descriptions-item label="璇佷欢鍙风爜">{{ detail.acceptidcard }}</el-descriptions-item>
+ <el-descriptions-item label="鑱旂郴鐢佃瘽" :span="2">{{ detail.acceptphone }}</el-descriptions-item>
+ <el-descriptions-item label="鐜颁綇鍦板潃" :span="3">{{ detail.acceptresidenceaddress }}</el-descriptions-item>
+ </el-descriptions>
+ </div>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="open = false">鍏� 闂�</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { listRegister, getRegister, exportRegister } from "@/api/project/register";
+
+export default {
+ name: "Register",
+ dicts: ["sys_Organ", "sys_organstate", "sys_user_sex", "sys_AgeUnit"],
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 璇︽儏鍔犺浇
+ detailLoading: false,
+ // 瀵煎嚭閬僵灞�
+ exportLoading: false,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鍣ㄥ畼鍘诲鍒楄〃
+ registerList: [],
+ // 璇︽儏寮圭獥
+ open: false,
+ detail: {},
+ // 鏌ヨ鍙傛暟锛堝潎闇�涓庡悗绔� queryList / Mapper 鏀寔鐨勬潯浠朵竴鑷达級
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ name: null,
+ idcardno: null,
+ organno: null,
+ organstate: null,
+ organnumber: null,
+ transplanthospitalname: null,
+ acceptname: null
+ }
+ };
+ },
+ created() {
+ this.getList();
+ },
+ methods: {
+ /** 鏌ヨ鍣ㄥ畼鍘诲鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listRegister(this.queryParams).then(response => {
+ this.registerList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ });
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.resetForm("queryForm");
+ this.handleQuery();
+ },
+ /** 璇︽儏鎸夐挳鎿嶄綔 */
+ handleDetail(row) {
+ this.detail = {};
+ this.open = true;
+ this.detailLoading = true;
+ getRegister(row.id).then(response => {
+ this.detail = response.data || {};
+ this.detailLoading = false;
+ }).catch(() => {
+ this.detailLoading = false;
+ });
+ },
+ /** 瀛楀吀缈昏瘧锛堟ā鏉块噷鐢紝閬垮厤澶氫釜 dict-tag 宓屽锛� */
+ dictLabel(type, value) {
+ const list = this.dict.type[type] || [];
+ const item = list.find(d => String(d.value) === String(value));
+ return item ? item.label : value;
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.$modal
+ .confirm("鏄惁纭瀵煎嚭鍣ㄥ畼鍘诲鏁版嵁锛�")
+ .then(() => {
+ this.exportLoading = true;
+ return exportRegister(this.queryParams);
+ })
+ .then(response => {
+ this.$download.name(response.msg);
+ this.exportLoading = false;
+ })
+ .catch(() => {
+ this.exportLoading = false;
+ });
+ }
+ }
+};
+</script>
+
+<style scoped>
+.register-detail >>> .el-divider--horizontal {
+ margin: 12px 0 14px;
+}
+.register-detail >>> .el-divider__text {
+ color: var(--opo-primary, #0e768f);
+ font-size: var(--opo-font-size-sm, 14px);
+}
+.register-detail >>> .el-descriptions-item__label {
+ color: var(--opo-text-secondary, #6b7280);
+ width: 90px;
+}
+</style>
diff --git a/src/views/project/statistics/applyStatistics/index.vue b/src/views/project/statistics/applyStatistics/index.vue
index 0be6121..447eb92 100644
--- a/src/views/project/statistics/applyStatistics/index.vue
+++ b/src/views/project/statistics/applyStatistics/index.vue
@@ -266,48 +266,14 @@
this.queryParams.pabegtime = this.selecttime[0];
this.queryParams.paendtime = this.selecttime[1];
// if (this.queryParams.paendtime == this.queryParams.pabegtime) {
- let num = Number(this.queryParams.paendtime.slice(5, 7));
- if (num < 9) {
- let mon = Number(this.queryParams.paendtime.slice(6, 7));
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "0" +
- (mon + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)骞�
- else if (num >= 10) {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- (num + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- } else {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "10" +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
+ // 缁撴潫鏃堕棿鍙�"鎵�閫夌粨鏉熸湀鐨勬鏈� 1 鍙�"锛屼互鍖呭惈鏁翠釜缁撴潫鏈堛��
+ // 鍘熷疄鐜版妸鏈堜唤 +1 鍚庣洿鎺ユ嫾瀛楃涓诧紝12 鏈堜細寰楀埌 13 鏈堬紙2026-13-01锛夛紝
+ // MySQL 鎶� Incorrect datetime value锛屽瓨鍌ㄨ繃绋嬬洿鎺� 500銆�
+ this.queryParams.paendtime = this.$moment(this.queryParams.paendtime)
+ .startOf("month")
+ .add(1, "month")
+ .format("YYYY-MM")
+ .concat("-01 00:00:00");
this.queryParams.pabegtime =
this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00";
// }
diff --git a/src/views/project/statistics/caseStatistics/index.vue b/src/views/project/statistics/caseStatistics/index.vue
index 919800e..7a48431 100644
--- a/src/views/project/statistics/caseStatistics/index.vue
+++ b/src/views/project/statistics/caseStatistics/index.vue
@@ -272,48 +272,14 @@
this.queryParams.pabegtime = this.selecttime[0];
this.queryParams.paendtime = this.selecttime[1];
// if (this.queryParams.paendtime == this.queryParams.pabegtime) {
- let num = Number(this.queryParams.paendtime.slice(5, 7));
- if (num < 9) {
- let mon = Number(this.queryParams.paendtime.slice(6, 7));
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "0" +
- (mon + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)骞�
- else if (num >= 10) {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- (num + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- } else {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "10" +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
+ // 缁撴潫鏃堕棿鍙�"鎵�閫夌粨鏉熸湀鐨勬鏈� 1 鍙�"锛屼互鍖呭惈鏁翠釜缁撴潫鏈堛��
+ // 鍘熷疄鐜版妸鏈堜唤 +1 鍚庣洿鎺ユ嫾瀛楃涓诧紝12 鏈堜細寰楀埌 13 鏈堬紙2026-13-01锛夛紝
+ // MySQL 鎶� Incorrect datetime value锛屽瓨鍌ㄨ繃绋嬬洿鎺� 500銆�
+ this.queryParams.paendtime = this.$moment(this.queryParams.paendtime)
+ .startOf("month")
+ .add(1, "month")
+ .format("YYYY-MM")
+ .concat("-01 00:00:00");
this.queryParams.pabegtime =
this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00";
// }
diff --git a/src/views/project/statistics/chargeStatistics/index.vue b/src/views/project/statistics/chargeStatistics/index.vue
index c12a510..9046ff8 100644
--- a/src/views/project/statistics/chargeStatistics/index.vue
+++ b/src/views/project/statistics/chargeStatistics/index.vue
@@ -290,48 +290,14 @@
this.queryParams.pabegtime = this.selecttime[0];
this.queryParams.paendtime = this.selecttime[1];
// if (this.queryParams.paendtime == this.queryParams.pabegtime) {
- let num = Number(this.queryParams.paendtime.slice(5, 7));
- if (num < 9) {
- let mon = Number(this.queryParams.paendtime.slice(6, 7));
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "0" +
- (mon + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)骞�
- else if (num >= 10) {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- (num + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- } else {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "10" +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
+ // 缁撴潫鏃堕棿鍙�"鎵�閫夌粨鏉熸湀鐨勬鏈� 1 鍙�"锛屼互鍖呭惈鏁翠釜缁撴潫鏈堛��
+ // 鍘熷疄鐜版妸鏈堜唤 +1 鍚庣洿鎺ユ嫾瀛楃涓诧紝12 鏈堜細寰楀埌 13 鏈堬紙2026-13-01锛夛紝
+ // MySQL 鎶� Incorrect datetime value锛屽瓨鍌ㄨ繃绋嬬洿鎺� 500銆�
+ this.queryParams.paendtime = this.$moment(this.queryParams.paendtime)
+ .startOf("month")
+ .add(1, "month")
+ .format("YYYY-MM")
+ .concat("-01 00:00:00");
this.queryParams.pabegtime =
this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00";
// }
diff --git a/src/views/project/statistics/performanceStaristics/index.vue b/src/views/project/statistics/performanceStaristics/index.vue
index b1b8b35..85267d8 100644
--- a/src/views/project/statistics/performanceStaristics/index.vue
+++ b/src/views/project/statistics/performanceStaristics/index.vue
@@ -278,48 +278,14 @@
this.queryParams.pabegtime = this.selecttime[0];
this.queryParams.paendtime = this.selecttime[1];
// if (this.queryParams.paendtime == this.queryParams.pabegtime) {
- let num = Number(this.queryParams.paendtime.slice(5, 7));
- if (num < 9) {
- let mon = Number(this.queryParams.paendtime.slice(6, 7));
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "0" +
- (mon + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
- // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)骞�
- else if (num >= 10) {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- (num + 1) +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- } else {
- this.queryParams.paendtime =
- this.queryParams.paendtime.slice(0, 5) +
- "10" +
- "-" +
- "01" +
- " " +
- "00" +
- ":" +
- "00" +
- ":" +
- "00";
- }
+ // 缁撴潫鏃堕棿鍙�"鎵�閫夌粨鏉熸湀鐨勬鏈� 1 鍙�"锛屼互鍖呭惈鏁翠釜缁撴潫鏈堛��
+ // 鍘熷疄鐜版妸鏈堜唤 +1 鍚庣洿鎺ユ嫾瀛楃涓诧紝12 鏈堜細寰楀埌 13 鏈堬紙2026-13-01锛夛紝
+ // MySQL 鎶� Incorrect datetime value锛屽瓨鍌ㄨ繃绋嬬洿鎺� 500銆�
+ this.queryParams.paendtime = this.$moment(this.queryParams.paendtime)
+ .startOf("month")
+ .add(1, "month")
+ .format("YYYY-MM")
+ .concat("-01 00:00:00");
this.queryParams.pabegtime =
this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00";
// }
--
Gitblit v1.9.3