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/fund/medicalCostApply/index.vue | 833 ++++++++++++++++++++---------------------------------------
1 files changed, 280 insertions(+), 553 deletions(-)
diff --git a/src/views/project/fund/medicalCostApply/index.vue b/src/views/project/fund/medicalCostApply/index.vue
index fd3981d..dc2a2e0 100644
--- a/src/views/project/fund/medicalCostApply/index.vue
+++ b/src/views/project/fund/medicalCostApply/index.vue
@@ -1,68 +1,37 @@
<!-- -->
<template>
<div class="app-container">
- <el-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-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-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"
@@ -70,23 +39,29 @@
</el-col>
</el-row>
<el-row>
- <el-table v-loading="loading" border :data="donateconsolationfundList">
- <el-table-column label="鐢宠鏃ユ湡" align="center" prop="createTime" 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.createTime, "{y}-{m}-{d}")
+ 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="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">
<template slot-scope="scope">
<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">
+ <template slot-scope="scope">
+ <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" />
@@ -94,428 +69,102 @@
<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 ||
+ <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 ||
+ " 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)"
- v-hasPermi="['project:medicalfund:edit']">淇敼</el-button>
- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)">鏌ョ湅</el-button>
- <el-button v-if="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" icon="el-icon-delete" @click="handleDelete(scope.row)"
- v-hasPermi="['project:medicalfund:delete']">鍒犻櫎</el-button>
- <el-button size="mini" type="text" icon="el-icon-download" @click="mixExport(scope.row.id)"
- v-hasPermi="['project:medicalfund:download']">涓嬭浇</el-button>
+ " 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"
+ width="120"
+ label="鍔熻兘"
+ >
+ <template slot-scope="scope">
+ <el-button size="mini" v-if="scope.row.uploadStates == 1"
+ >绾夸笅宸叉姤閿�</el-button
+ >
+ <el-button
+ size="mini"
+ type="success"
+ v-else-if="scope.row.uploadStates == 0"
+ @click="Dooffline(scope.$index, scope.row)"
+ >绾夸笅鎶ラ攢</el-button
+ >
+ </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 :visible.sync="dialogOpen" :close-on-click-modal="false" width="1400px" :title="title"
- style="text-align: center" v-loading="loading">
- <el-form ref="form" :model="form" label-width="120px" :rules="rules">
- <el-row style="text-align: left">
- <el-col :span="5">
- <el-form-item label="鐢宠鏃ユ湡" prop="createTime">
- <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date"
- value-format="yyyy-MM-dd HH:mm:ss" placeholder="鐢宠鏃ユ湡">
- </el-date-picker>
+
+ <!-- 鏂板鐢宠鍗曞墠鍏堥�夋嫨鎹愮尞妗堜緥锛堝師宸︿晶妗堜緥鍒楄〃绉诲埌杩欓噷锛� -->
+ <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="5">
- <el-form-item label="缁忓姙浜�" prop="username">
- <el-select v-model="form.username" placeholder="鐢宠浜�" clearable filterable allow-create style="width: 100%">
- <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname"
- :value="dict.nickname"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="鎵�灞炵粍鍒�" prop="deptmentname">
- <el-input v-model="form.deptmentname" placeholder="璇疯緭鍏ユ墍灞炵粍鍒�" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="缁勯暱" prop="managername">
- <el-input v-model="form.managername" placeholder="璇疯緭鍏ョ粍闀�" clearable />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="text-align: left">
- <el-col :span="5">
- <el-form-item label="鐢宠绫诲瀷">
- <el-radio v-model="form.applytype" label="3">鍖诲鎴愭湰鐢宠</el-radio>
- </el-form-item>
- </el-col>
- <el-col :span="10">
- <el-form-item label="鐢宠璇存槑" prop="remark">
- <el-input v-model="form.remark" placeholder="澶囨敞" />
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="鎹愮尞鑰�" prop="name">
- <el-input :disabled="true" v-model="form.name" placeholder="璇疯緭鍏ユ崘鐚�呭鍚�" clearable />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="text-align: left">
- <el-col :span="5">
- <el-form-item label="鐢宠閲戦" prop="amountrequested">
- <el-input v-model="form.amountrequested" placeholder="鐢宠閲戦" :disabled="true" />
- </el-form-item>
- </el-col>
- <!--<el-col :span="5">
- <el-form-item label="绋庡墠閲戦" prop="pretaxcost">
- <el-input v-model="form.pretaxcost" placeholder="绋庡墠閲戦鍚堣" :disabled="true" />
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="绋庡悗閲戦" prop="pretaxcost">
- <el-input v-model="form.taxedcost" placeholder="绋庡悗閲戦鍚堣" :disabled="true" />
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="瀹℃牳鐘舵��" prop="recordstatus">
- <el-input v-if="0" v-model="form.recordstatus" placeholder="瀹℃牳鎰忚"/>
- <el-select v-model="form.recordstatus" placeholder="璇烽�夋嫨瀹℃牳鐘舵��" clearable size="small" :disabled="true">
- <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label"
+ <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="5">
- <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
- <el-input v-model="form.phone" placeholder="璇疯緭鍏ョ敵璇疯�呯殑鑱旂郴鏂瑰紡" clearable />
- </el-form-item>
- </el-col>
- <el-col :span="5">
- <el-form-item label="宸ヤ綔鍗曚綅" prop="unitno">
- <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" />
- </el-form-item>
- </el-col>-->
- </el-row>
- <el-row style="margin-bottom: 10px">
- <el-col :span="4">
- <el-button @click.native.prevent="addAlls" type="primary" size="small">
- 瀵煎叆鏈嶅姟椤圭洰
- </el-button>
- </el-col>
- </el-row>
- <el-row style="margin-top: 5px; margin-bottom: 5px">
- <el-table :data="fundDetails" border highlight-current-row>
- <el-table-column prop="orderno" align="center" label="鎺掑簭" width="80">
- <template slot-scope="scope">
- <el-input v-model="scope.row.orderno" placeholder="鎺掑簭" />
- </template>
- </el-table-column>
- <el-table-column prop="itemtype" align="center" label="璐圭敤绫诲瀷" width="220">
- <template slot-scope="scope">
- <el-select v-model="scope.row.applytype" placeholder="璐圭敤绫诲瀷" @change="LoadItemTypeArr(scope.row)">
- <el-option v-for="dict in fundtypeArr" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
- </el-select>
- </template>
- </el-table-column>
- <el-table-column prop="itemtype" align="center" label="鏈嶅姟椤圭洰" width="260">
- <template slot-scope="scope">
- <el-select v-model="scope.row.itemid" placeholder="鏈嶅姟椤圭洰" clearable filterable allow-create
- @change="select(scope.row)" :filter-method="val => SearchItem(val, scope)">
- <el-option v-for="dict in scope.row.itemArr" :key="dict.id" :label="dict.itemName"
- :value="dict.id"></el-option>
- </el-select>
- </template>
- </el-table-column>
-
- <el-table-column prop="beneficiaryno" align="center" label="濮撳悕" width="120" v-if="form.applytype != 3">
- <template slot-scope="scope">
- <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname
- }}</el-button>
- </template>
- </el-table-column>
- <!-- <el-table-column
- prop="servicesscopename"
- align="center"
- label="璐圭敤璇存槑"
- width="180"
- >
- <template slot-scope="scope">
- <el-select
- v-model="scope.row.servicesscopename"
- placeholder="璐圭敤璇存槑"
- clearable
- allow-create
- filterable
- @change="selectremark(scope.row)"
- >
- <el-option
- v-for="dict in fundblock"
- :key="dict.expensedescribe"
- :label="dict.expensedescribe"
- :value="dict.expensedescribe"
- ></el-option>
- </el-select>
- </template>
- </el-table-column> -->
- <el-table-column prop="amount" align="center" label="绋庡墠閲戦" width="120" v-if="form.applytype != 3">
- <template slot-scope="scope">
- <el-select v-model="scope.row.amount" placeholder="绋庡墠閲戦" clearable filterable allow-create
- @change="selectamount(scope.row)">
- <el-option v-for="dict in fundblock" :key="dict.expensedescribe" :label="dict.expense"
- :value="dict.expense"></el-option>
- </el-select>
- <!--
- <el-input
- v-model="scope.row.amount"
- placeholder="绋庡墠閲戦"
- @change="selectamount(scope.row)"
- @blur="
- (val) => {
- sumTotalFee(scope.row);
- }
- " />
- -->
- </template>
- </el-table-column>
- <el-table-column prop="taxamount" align="center" label="鎵g◣" width="120" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.taxamount" placeholder="鎵g◣" @blur="val => {
- sumTotalFee(scope.row);
- }
- " />
- </template>
- </el-table-column>
- <el-table-column prop="taxedamount" align="center" label="绋庡悗閲戦" width="120" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.taxedamount" placeholder="绋庡悗閲戦" />
- </template>
- </el-table-column>
- <el-table-column prop="price" align="center" label="浠锋牸" width="120" v-if="form.applytype == '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.price" placeholder="浠锋牸" @blur="val => {
- sumTotalFee(scope.row);
- }
- " />
- </template>
- </el-table-column>
- <el-table-column prop="quantity" align="center" label="鏁伴噺" width="80" v-if="form.applytype == '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.quantity" placeholder="鏁伴噺" @blur="val => {
- sumTotalFee(scope.row);
- }
- " />
- </template>
- </el-table-column>
-
- <el-table-column prop="amount" align="center" label="閲戦" width="120" v-if="form.applytype == '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.amount" placeholder="浠锋牸" @blur="val => {
- sumTotalFee(scope.row);
- }
- " />
- </template>
- </el-table-column>
- <el-table-column prop="unitno" align="center" label="璐圭敤鍗曚綅鍚嶇О" width="220">
- <template slot-scope="scope">
- <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname
- }}</el-button>
- </template>
- </el-table-column>
- <el-table-column prop="depositbank" align="center" label="寮�鎴烽摱琛�" width="200">
- <template slot-scope="scope">
- <el-input v-model="scope.row.depositbank" placeholder="寮�鎴烽摱琛�" />
- </template>
- </el-table-column>
- <el-table-column prop="bankcardno" align="center" label="閾惰鍗″彿" width="210">
- <template slot-scope="scope">
- <el-input v-model="scope.row.bankcardno" placeholder="閾惰鍗″彿" />
- </template>
- </el-table-column>
- <el-table-column prop="remark" align="center" label="澶囨敞" width="210" v-if="form.applytype == '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.remark" placeholder="澶囨敞" />
- </template>
- </el-table-column>
- <el-table-column prop="title" align="center" label="鑱岀О" width="120" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.title" placeholder="鑱岀О" />
- </template>
- </el-table-column>
- <el-table-column prop="idcardno" align="center" label="韬唤璇佸彿" width="200" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.idcardno" placeholder="韬唤璇佸彿" />
- </template>
- </el-table-column>
- <el-table-column prop="depositbank" align="center" label="寮�鎴烽摱琛�" width="200" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.depositbank" placeholder="寮�鎴烽摱琛�" />
- </template>
- </el-table-column>
- <el-table-column prop="bankcardno" align="center" label="閾惰鍗″彿" width="210" v-if="form.applytype != '3'">
- <template slot-scope="scope">
- <el-input v-model="scope.row.bankcardno" placeholder="閾惰鍗″彿" />
- </template>
- </el-table-column>
- <el-table-column fixed="right" align="center" label="鎿嶄綔" width="120" v-if="dialogType == 'edit'">
- <template slot-scope="scope">
- <el-button type="text" size="mini" @click="addRow(scope.$index)">鏂板</el-button>
- <el-button @click.native.prevent="
- deleteRows(scope.row, scope.$index, fundDetails)
- " type="text" size="small">
- 鍒犻櫎
- </el-button>
- <el-button @click.native.prevent="
- Filepopup(scope.$index, fundDetails, scope.row)
- " type="text" size="small">
- 绁ㄦ嵁
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-row>
- <!-- <el-row>
- <el-col :span="4">
- <el-button
- type="primary"
- plain
- icon="el-icon-plus"
- size="mini"
- @click="addRow"
- >鏂板鎴愭湰璐圭敤</el-button
- >
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="7">
- <el-form-item label="棰勬敮閲戦" prop="prepaidamount">
- <el-input v-model="form.prepaidamount" placeholder="鐢宠閲戦" />
- </el-form-item>
- </el-col>
- <el-col :span="7">
- <el-form-item label="OPO涓績绛惧瓧" prop="opochecker">
- <el-input v-model="form.opochecker" placeholder="opo涓績绛惧瓧" />
- </el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="璐㈠姟鍓櫌闀�" prop="finvicepresident">
- <el-input v-model="form.finvicepresident" placeholder="璐㈠姟鍓櫌闀�" />
+ <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-col :span="7">
- <el-form-item label="涓氬姟鍓櫌闀�" prop="busvicepresident">
- <el-input v-model="form.busvicepresident" placeholder="涓氬姟鍓櫌闀�" />
- </el-form-item>
- </el-col>
- <el-col :span="7">
- <el-form-item label="鍔炲叕瀹や富浠�" prop="officedirector">
- <el-input v-model="form.officedirector" placeholder="璇疯緭鍏ュ姙鍏涓讳换" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="璐㈠姟閮ㄨ礋璐d汉" prop="financedirector">
- <el-input v-model="form.financedirector" placeholder="璇疯緭鍏ヨ储鍔¢儴璐熻矗浜�" />
- </el-form-item>
- </el-col>
- <el-col :span="7">
- <el-form-item label="璐㈠姟瀹℃牳" prop="financechecher">
- <el-input v-model="form.financechecher" placeholder="璇疯緭鍏ヨ储鍔″鏍�" />
- </el-form-item>
- </el-col>
- </el-row> -->
- <el-row>
- <el-col :span="24">
- <el-form-item label="璐圭敤鐢宠闄勪欢锛�" align="left" prop="annexbankcard">
- <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple
- :limit="20" :headers="headers" :on-success="(response, file, fileList) =>
- uploadSccess(response, file, fileList)
- " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError"
- :on-exceed="handleExceed" :on-remove="handleremove" accept="image/*,.pdf">
- <el-button :disabled="dialogType == 'detail'" size="small" type="primary">涓婁紶</el-button>
- </el-upload>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row v-if="dialogType == 'detail'">
- <el-table :data="fundflowList" border>
- <el-table-column label="瀹℃牳浜�" align="center" width="120" prop="checkusername" />
- <el-table-column label="瀹℃牳鏃ユ湡" align="center" width="160" prop="createTime" />
- <el-table-column label="瀹℃牳缁撴灉" align="center" width="200" prop="flowconclusion"><template
- slot-scope="scope"><span v-if="scope.row.flowconclusion == 1">閫氳繃</span><span
- v-if="scope.row.flowconclusion == 2">涓嶉�氳繃</span></template>
- </el-table-column>
- <el-table-column label="瀹℃牳澶囨敞" align="center" prop="flowcontent" />
- </el-table>
</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 type="primary" @click="submitForm" v-if="dialogType == 'edit'">淇� 瀛�</el-button>
- <!-- <el-button type="success" @click="print">鎵� 鍗�</el-button> -->
- <el-button @click="cancel">鍙� 娑�</el-button>
- </div>
- </el-dialog>
-
- <el-dialog :visible.sync="detailInfoDialogShow" :close-on-click-modal="false" :title="'璐圭敤鍗曚綅閫夋嫨'"
- style="text-align: center" v-loading="loading" width="500px">
- <el-form ref="funddetailForm" :model="funddetailForm" label-width="120px">
- <el-row>
- <el-col :span="24" v-if="detailInfoDialogShowType == 'name'">
- <el-form-item align="left" label="濮撳悕" prop="beneficiaryname" label-width="80px">
- <el-select filterable allow-create ref="beneficiaryname" default-first-option
- v-model="funddetailForm.beneficiaryname" placeholder="璇烽�夋嫨" style="width: 100%">
- <el-option v-for="item in arrr3" :key="item.reportNo" :label="item.reportName" :value="item.reportName">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="24" v-if="detailInfoDialogShowType == 'unit'">
- <el-form-item align="left" label="鍗曚綅鍚嶇О" prop="unitno" label-width="80px">
- <el-select v-model="funddetailForm.unitno" placeholder="璇烽�夋嫨鍗曚綅" clearable filterable allow-create
- style="width: 100%">
- <el-option v-for="(item, index) in bankaccountlist" :key="index" :label="item.reportName"
- :value="item.reportNo"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="detailInfoDialogShow = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="ConfirmDetailDialog()">纭� 瀹�</el-button>
- </span>
- </el-dialog>
-
- <el-dialog :title="pdftitle" :visible.sync="pdfVisible" width="50%">
- <div class="pdfimg">
- <div class="box-pdf">
- <div>
- <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" multiple
- :limit="20" :headers="headers" :on-success="(response, file, fileList) =>
- uploadSccess(response, file, fileList)
- " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError"
- :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf">
- <el-button :disabled="dialogType == 'detail'" size="small" type="primary">涓婁紶</el-button>
- </el-upload>
- </div>
- <!-- <div
- class="pdftit"
- @click="pdffn(item)"
- v-for="item in fileList"
- :key="item.name"
- >
- {{ item.name }}
- </div> -->
- </div>
-
- <div v-if="this.previewpdf" class="pdfimgmin">
- <img :src="pdfimg" />
- </div>
- <div v-else class="pdfimgmins">{{ hintitle }}</div>
+ <el-button @click="caseDialogVisible = false">鍙� 娑�</el-button>
</div>
</el-dialog>
</div>
@@ -579,6 +228,7 @@
import { getUserProfile } from "@/api/system/user";
import { listFundflow } from "@/api/project/fundflow";
import { getToken } from "@/utils/auth";
+import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
export default {
//import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -598,7 +248,8 @@
"sys_fund_type",
"sys_finsubject",
"sys_financeitemtype",
- "sys_expensetype"
+ "sys_expensetype",
+ "sys_stage_type"
],
data() {
//杩欓噷瀛樻斁鏁版嵁
@@ -628,10 +279,13 @@
fundQueryParam: {
pageNum: 1,
- pageSize: 100,
+ pageSize: 10,
infoid: null,
applytype: "3",
- createBy: null
+ createBy: null,
+ // 鎶ラ攢鍗曠瓫閫夋潯浠�
+ donorname: null,
+ recordstatus: null
},
// 琛ㄥ崟鍙傛暟
form: {},
@@ -640,7 +294,7 @@
username: [
{ required: true, message: "璇疯緭鍏ョ敵璇蜂汉", trigger: "blur" }
],
- createTime: [
+ applyTime: [
{ required: true, message: "璇疯緭鍏ョ敵璇锋棩鏈�", trigger: "blur" }
],
deptmentname: [
@@ -653,6 +307,9 @@
donatebaseinfoList: [],
//褰撳墠閫変腑鎹愮尞妗堜緥
curCase: {},
+ // 銆岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛堟柊澧炵敵璇峰崟鏃朵娇鐢級
+ caseDialogVisible: false,
+ casePickerMode: "",
//鏄惁鏄剧ず璐圭敤鐢宠寮圭獥
dialogOpen: false,
// title: "",
@@ -661,6 +318,8 @@
// 鎹愮尞浜洪亾鎱伴棶閲戣〃鏍兼暟鎹�
donateconsolationfundList: [],
+ // 鍙充晶鎶ラ攢鍗曟�绘暟锛堢敤浜庡垎椤碉級
+ fundTotal: 0,
//鏄庣粏璁板綍
fundDetails: [],
@@ -714,11 +373,12 @@
watch: {},
//鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
created() {
- this.getList();
- this.getBaseInfoList();
+ // 妗堜緥鍒楄〃宸茬Щ鍏ャ�岄�夋嫨鎹愮尞妗堜緥銆嶅璇濇锛屾墦寮�瀵硅瘽妗嗘椂鍐嶆煡璇�
this.getCurFundType();
this.getlistUser();
// this.getUnitList();
+ // 棣栧睆灞曠ず褰撳墠鐧诲綍浜虹殑鍏ㄩ儴鍖诲鎴愭湰鍗曟嵁
+ this.getAllfundList();
},
//鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
@@ -742,12 +402,23 @@
this.queryParams.pageNum = 1;
this.getList();
},
- /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ /** 閲嶇疆鎸夐挳鎿嶄綔锛堟渚嬮�夋嫨瀵硅瘽妗嗗唴鐨勬渚嬫煡璇級 */
resetQuery() {
this.daterangeReporttime = [];
this.resetForm("queryForm");
this.handleQuery();
+ },
+ Dooffline(a, value) {
+ value.uploadStates = 1;
+ value.notes = "绾夸笅宸叉姤閿�";
+ addorupdateFund(value).then(res => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("璁板綍鎴愬姛");
+ } else {
+ this.$modal.msgError(res.msg);
+ }
+ });
},
/** 鏌ヨ鎹愮尞浜洪亾鎱伴棶閲戝垪琛� */
@@ -768,53 +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) {
@@ -949,7 +591,19 @@
//鏌ユ壘鏄惁瀛樺湪鐧昏瀹屾垚璁板綍
//鍒ゆ柇鏄惁瀛樺湪涓婃姤璁板綍
row.recordstatus = 0;
-
+ var currenttime = new Date();
+ row.applyTime =
+ currenttime.getFullYear() +
+ "-" +
+ (currenttime.getMonth() + 1) +
+ "-" +
+ currenttime.getDate() +
+ " " +
+ currenttime.getHours() +
+ ":" +
+ currenttime.getMinutes() +
+ ":" +
+ currenttime.getSeconds();
updateFund(row).then(response => {
if (response.code == 200) {
this.$message({
@@ -1102,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();
},
// 鍙栨秷鎸夐挳
@@ -1408,41 +1110,40 @@
});
},
- //璁$畻鎬婚噾棰�
+ //璁$畻鎬婚噾棰濓紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛岀姝� parseFloat 绱姞锛�
sumTotalFee(row) {
- let allSum = 0;
+ const detailsArr = [];
if (this.form.applytype != null) {
for (let i = 0; i < this.fundDetails.length; i++) {
+ const detail = this.fundDetails[i];
let totalFee = 0;
let taxFee = 0;
if (this.form.applytype == 1 || this.form.applytype == 2) {
- //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣
- if (!isNaN(parseFloat(this.fundDetails[i].amount))) {
- totalFee += parseFloat(this.fundDetails[i].amount);
- taxFee += parseFloat(this.fundDetails[i].amount);
+ //璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣锛氱◣鍓� - 鎵g◣
+ if (!isNaN(parseFloat(detail.amount))) {
+ totalFee = moneyAdd(totalFee, detail.amount);
+ taxFee = moneyAdd(taxFee, detail.amount);
}
- if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) {
- totalFee -= parseFloat(this.fundDetails[i].taxamount);
- taxFee -= parseFloat(this.fundDetails[i].taxamount);
+ if (!isNaN(parseFloat(detail.taxamount))) {
+ totalFee = moneySub(totalFee, detail.taxamount);
+ taxFee = moneySub(taxFee, detail.taxamount);
}
} else if (this.form.applytype == 3) {
if (
- !isNaN(parseFloat(this.fundDetails[i].price)) &&
- !isNaN(parseFloat(this.fundDetails[i].quantity))
+ !isNaN(parseFloat(detail.price)) &&
+ !isNaN(parseFloat(detail.quantity))
) {
- totalFee +=
- parseFloat(this.fundDetails[i].price) *
- parseFloat(this.fundDetails[i].quantity);
+ totalFee = moneyMul(detail.price, detail.quantity);
}
}
if (!isNaN(parseFloat(taxFee))) {
- this.fundDetails[i].taxedamount = taxFee.toFixed(2);
+ this.fundDetails[i].taxedamount = moneyRound(taxFee).toFixed(2);
}
- allSum += totalFee;
+ detailsArr.push(totalFee);
}
}
//this.form.amountrequested = allSum.toFixed(2);
- this.$set(this.form, "amountrequested", allSum.toFixed(2));
+ this.$set(this.form, "amountrequested", moneyRound(moneySum(detailsArr)).toFixed(2));
//this.$forceUpdate();
},
@@ -1533,22 +1234,35 @@
// 鎹愮尞鑰呭尰瀛︾粺璁℃墦鍗�
dayin2(id) {
getdownloadYX(id).then(res => {
- if (res.downloadUrl) {
- var fileUrl = res;
- //鑾峰彇褰撳墠缃戝潃
- var urlBase = process.env.VUE_APP_BASE_API;
- var curWWWPath = window.document.location.href;
- var pos = curWWWPath.indexOf(window.document.location.pathname);
- // 鍒涘缓a鏍囩
- var aEle = document.createElement("a");
- aEle.href =
- curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
- aEle.click();
- this.$alert("涓嬭浇鎴愬姛", "鎻愮ず", {
- confirmButtonText: "纭畾",
- type: "success"
+ var fileUrl = res;
+ //鑾峰彇褰撳墠缃戝潃
+ var urlBase = process.env.VUE_APP_BASE_API;
+ var curWWWPath = window.document.location.href;
+ var pos = curWWWPath.indexOf(window.document.location.pathname);
+ // 鍒涘缓a鏍囩
+ var aEle = document.createElement("a");
+ aEle.href =
+ curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
+ console.log(aEle.href);
+ // 娣诲姞Authorization澶撮儴
+ fetch(aEle.href, {
+ headers: this.headers
+ })
+ .then(response => {
+ // 灏嗘枃浠朵笅杞介摼鎺ヤ綔涓篵lob瀵硅薄杩涜涓嬭浇
+ return response.blob();
+ })
+ .then(blob => {
+ const url = window.URL.createObjectURL(new Blob([blob]));
+ console.log(url);
+ const link = document.createElement("a");
+ link.href = url;
+ const name = fileUrl["downloadName"];
+ link.setAttribute("download", name); // 鏇挎崲file.pdf涓哄疄闄呯殑鏂囦欢鍚�
+ document.body.appendChild(link);
+ link.click();
+ link.parentNode.removeChild(link);
});
- }
});
},
@@ -1669,10 +1383,23 @@
this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
this.previewpdf = false;
}
+ },
+ rowClassName({ row, column, rowIndex, columnIndex }) {
+ if (row.recordstatus == -1 && row.backflowlevel != null) {
+ return "error-row";
+ }
+ return "";
}
}
};
</script>
-<style scoped>
+<style lang="scss" scoped>
/* @import url(); 寮曞叆鍏叡css绫� */
+.button-delete {
+ color: rgb(236, 69, 69);
+}
+
+::v-deep.el-table .error-row {
+ background: #fcebeb;
+}
</style>
--
Gitblit v1.9.3