From 0e5553e2390bb336e589e5b7f0fa890d59aed735 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期二, 27 十月 2026 01:09:44 +0800
Subject: [PATCH] 统计、绩效模块
---
src/views/project/statistics/applyStatistics/index.vue | 191 +++++++++++++++++++++++++++++++++--------------
1 files changed, 132 insertions(+), 59 deletions(-)
diff --git a/src/views/project/statistics/applyStatistics/index.vue b/src/views/project/statistics/applyStatistics/index.vue
index 447eb92..b5e3653 100644
--- a/src/views/project/statistics/applyStatistics/index.vue
+++ b/src/views/project/statistics/applyStatistics/index.vue
@@ -6,54 +6,12 @@
:model="queryParams"
ref="queryForm"
:inline="true"
+ v-show="showSearch"
label-width="70px"
>
<el-row :gutter="8">
- <el-col :span="6">
- <el-form-item label="涓氬姟浜哄憳" prop="name">
- <el-input
- v-model="queryParams.pausername"
- placeholder="璇疯緭鍏ュ鍚�"
- clearable
- size="small"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item align="left" label="涓氬姟缁�" prop="treatmenthospitalno">
- <el-select
- v-model="queryParams.padeptno"
- placeholder="璇烽�夋嫨妗堜緥鐘舵��"
- >
- <el-option
- v-for="item in deptList"
- :label="item.deptName"
- :value="item.deptId"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="璐圭敤绫诲瀷">
- <el-select
- v-model="queryParams.paexpensetype"
- placeholder="璇烽�夋嫨妗堜緥鐘舵��"
- >
- <el-option
- v-for="item in reportlist"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="8">
- <el-col :span="12">
- <el-form-item label="缁熻鏃ユ湡">
+ <el-col :span="8">
+ <el-form-item label="鏈堜唤鑼冨洿">
<el-date-picker
style="width: 100%"
v-model="selecttime"
@@ -67,7 +25,57 @@
</el-date-picker>
</el-form-item>
</el-col>
-
+ <el-col :span="6">
+ <el-form-item label="璐圭敤绫诲瀷">
+ <el-select
+ v-model="queryParams.paexpensetype"
+ placeholder="璇烽�夋嫨璐圭敤绫诲瀷"
+ >
+ <el-option
+ v-for="item in reportlist"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item align="left" label="鎶ラ攢閮ㄩ棬" prop="padeptno">
+ <el-select
+ v-model="queryParams.padeptno"
+ placeholder="璇烽�夋嫨鎶ラ攢閮ㄩ棬"
+ >
+ <el-option
+ v-for="item in deptList"
+ :label="item.deptName"
+ :value="item.deptId"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="8">
+ <el-col :span="6">
+ <el-form-item label="鎶ラ攢浜哄憳" prop="pauserno">
+ <el-select
+ v-model="queryParams.pauserno"
+ placeholder="璇烽�夋嫨鎶ラ攢浜哄憳"
+ clearable
+ filterable
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in userList"
+ :key="item.username"
+ :label="item.nickname"
+ :value="item.username"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
<el-col :span="6">
<el-form-item>
<el-button
@@ -85,6 +93,24 @@
</el-row>
</el-form>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-download"
+ size="mini"
+ :loading="exportLoading"
+ @click="handleExport"
+ >瀵煎嚭</el-button
+ >
+ </el-col>
+ <right-toolbar
+ :showSearch.sync="showSearch"
+ @queryTable="getList"
+ ></right-toolbar>
+ </el-row>
+
<!--<el-table v-loading="loading" border :data="donatebaseinfoList"> -->
<el-table
:data="jxidata"
@@ -95,23 +121,24 @@
:summary-method="getSummaries"
show-summary
>
- <el-table-column label="搴忓彿" align="center" prop="id" width="100">
- </el-table-column>
-
+ <el-table-column label="搴忓彿" align="center" prop="id" width="50" />
<el-table-column label="缁熻鏈堜唤" align="center" prop="applymonth" />
- <el-table-column label="涓氬姟缁�" align="center" prop="deptmentName">
- </el-table-column>
+ <el-table-column label="涓氬姟缁�" align="center" prop="deptmentName" />
<el-table-column label="涓撹亴浜哄憳" align="center" prop="username" />
+ <el-table-column label="鎶ラ攢鎬婚噾棰�" align="center" prop="amount" width="180" :formatter="amountFormatter" />
+ <el-table-column label="涓撳璐�" align="center" prop="expertfee" width="160" :formatter="amountFormatter" />
+ <el-table-column label="浼︾悊涓撳璐�" align="center" prop="ethicalistfee" width="160" :formatter="amountFormatter" />
+ <el-table-column label="鍖诲鎴愭湰" align="center" prop="medicalcost" width="160" :formatter="amountFormatter" />
+ <el-table-column label="鍔炲叕璐�" align="center" prop="officecost" width="160" :formatter="amountFormatter" />
+ <el-table-column label="宸梾璐�" align="center" prop="reimcost" width="160" :formatter="amountFormatter" />
- <el-table-column label="閲戦" align="center" prop="amount" />
-
- <el-table-column label="鎿嶄綔" align="center">
+ <!-- <el-table-column label="鎿嶄綔" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
>鏄庣粏</el-button
>
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
<div style="margin: 10px;text-align: right;">
@@ -132,7 +159,8 @@
listsfeistatistics,
listbxiaostatistics,
listjixstatistics,
- listanlstatistics
+ listanlstatistics,
+ exportExpenseStatistics
} from "@/api/project/statistics";
import { listUser } from "@/api/project/organization";
@@ -161,7 +189,7 @@
selecttime: "",
reportervalue: "",
reportlist: [
- { label: "宸梾璐�", value: "0" },
+ { label: "宸梾璐�", value: "5" },
{ label: "涓撳璐�", value: "1" },
{ label: "浼︾悊涓撳璐�", value: "2" },
{ label: "鍖诲鎴愭湰", value: "3" },
@@ -205,6 +233,7 @@
qu: ""
},
deptList: [],
+ userList: [],
// 閬僵灞�
loading: false,
// 瀵煎嚭閬僵灞�
@@ -288,6 +317,11 @@
this.loading = false;
});
},
+ getUserList() {
+ listUser().then(res => {
+ this.userList = res.data;
+ });
+ },
resetArr(Arr) {
var hash = {};
Arr = Arr.reduce(function(arr, current) {
@@ -308,6 +342,29 @@
$obj.id = $index + 1;
});
});
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ const queryParams = {
+ pabegtime: this.queryParams.pabegtime,
+ paendtime: this.queryParams.paendtime,
+ padeptno: this.queryParams.padeptno,
+ pauserno: this.queryParams.pauserno,
+ paexpensetype: this.queryParams.paexpensetype
+ };
+ this.$modal
+ .confirm("鏄惁纭瀵煎嚭褰撳墠绛涢�夋潯浠朵笅鐨勮垂鐢ㄧ粺璁℃暟鎹紵")
+ .then(() => {
+ this.exportLoading = true;
+ return exportExpenseStatistics(queryParams);
+ })
+ .then(response => {
+ this.$download.name(response.msg);
+ this.exportLoading = false;
+ })
+ .catch(() => {
+ this.exportLoading = false;
+ });
},
// 琛ㄥ崟閲嶇疆
@@ -338,6 +395,20 @@
this.resetForm("queryForm");
this.handleQuery();
},
+ /** 閲戦鏄剧ず锛氫繚鐣欎袱浣嶅皬鏁帮紝0.00 涓嶆樉绀� */
+ formatAmount(value) {
+ if (value === null || value === undefined || value === "") {
+ return "";
+ }
+ const num = Number(value);
+ if (!Number.isFinite(num) || num === 0) {
+ return "";
+ }
+ return num.toFixed(2);
+ },
+ amountFormatter(row, column, cellValue) {
+ return this.formatAmount(cellValue);
+ },
getSummaries(param) {
const { columns, data } = param;
const sums = [];
@@ -354,7 +425,7 @@
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
- sums[index] = values.reduce((prev, curr) => {
+ const total = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
@@ -362,7 +433,8 @@
return prev;
}
}, 0);
- sums[index] = sums[index].toFixed(2); // 淇濈暀2浣嶅皬鏁帮紝瑙e喅灏忔暟鍚堣鍒�;
+ // 鍚堣淇濈暀 2 浣嶅皬鏁帮紱0.00 涓嶆樉绀�
+ sums[index] = total === 0 ? "" : Number(total).toFixed(2);
} else {
sums[index] = "";
}
@@ -376,6 +448,7 @@
//鑾峰彇鍒楄〃
this.getList();
this.listDept();
+ this.getUserList();
}
// //鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
--
Gitblit v1.9.3