From 84c2bfd27fa610fb42dd52b9f145ca2507230c18 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 14 七月 2023 16:05:12 +0800
Subject: [PATCH] yxh
---
src/views/project/travelexpenseslist/index.vue | 1141 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 615 insertions(+), 526 deletions(-)
diff --git a/src/views/project/travelexpenseslist/index.vue b/src/views/project/travelexpenseslist/index.vue
index 941acb8..f153007 100644
--- a/src/views/project/travelexpenseslist/index.vue
+++ b/src/views/project/travelexpenseslist/index.vue
@@ -3,20 +3,27 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-row>
+ <!--
<el-col :span="6">
<el-form-item label="鍑哄樊浜�" prop="travelers">
<el-input v-model="queryParams.travelers" placeholder="璇疯緭鍏ュ嚭宸汉" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
-
+-->
<el-col :span="6">
- <el-form-item label="鎶ラ攢浜�" prop="username">
- <el-input v-model="queryParams.username" placeholder="璇疯緭鍏ユ姤閿�浜�" clearable size="small"
+ <el-form-item label="缁忓姙浜�" prop="username">
+ <el-input v-model="queryParams.username" placeholder="璇疯緭鍏ョ粡鍔炰汉" clearable size="small"
@keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
-
+ <el-col :span="8">
+ <el-form-item label="鎶ラ攢鏃ユ湡" prop="createTime">
+ <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick"
+ range-separator="鑷�" start-placeholder="鎶ラ攢寮�濮嬫棩鏈�" end-placeholder="鎶ラ攢缁撴潫鏃ユ湡" @keyup.enter.native="handleQuery">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
<el-col :span="6">
<el-form-item label="瀹℃牳鐘舵��" prop="recordstatus">
<el-input v-model="queryParams.recordstatus" placeholder="璇烽�夋嫨瀹℃牳鐘舵��" clearable size="small" v-if="0"
@@ -27,18 +34,7 @@
</el-select>
</el-form-item>
</el-col>
- </el-row>
-
- <el-row>
- <el-col :span="8">
- <el-form-item label="鎶ラ攢鏃ユ湡" prop="createTime">
- <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick"
- range-separator="鑷�" start-placeholder="鎶ラ攢寮�濮嬫棩鏈�" end-placeholder="鎶ラ攢缁撴潫鏃ユ湡" @keyup.enter.native="handleQuery">
- </el-date-picker>
- </el-form-item>
- </el-col>
-
- <el-col :span="6">
+ <el-col :span="4">
<el-form-item>
<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>
@@ -61,41 +57,41 @@
</el-row>
<el-table border v-loading="loading" :data="reimbursementList" @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" width="55" align="center" /> -->
- <el-table-column label="璁板綍鐘舵��" align="center" prop="recordstatus" width="180">
- <template slot-scope="scope">
- <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" />
- </template>
- </el-table-column>
+ <!-- <el-table-column type="selection" width="55" align="center" />
<el-table-column label="鎶ラ攢浜虹被鍒�" width="120" align="center" prop="costtype">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_travelexpensebelong" :value="scope.row.costtype" />
</template>
- </el-table-column>
- <el-table-column label="鐢宠鏃堕棿" width="120" align="center" prop="createTime">
+ </el-table-column>-->
+ <el-table-column label="鐢宠鏃堕棿" width="150" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
- <el-table-column label="鎶ラ攢浜�" width="120" align="center" prop="username">
+ <el-table-column label="瀹℃牳鐘舵��" align="center" prop="recordstatus" width="160">
+ <template slot-scope="scope">
+ <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" />
+ </template>
</el-table-column>
+ <el-table-column label="缁忓姙浜�" width="150" align="center" prop="username" />
+ <!--
<el-table-column label="鍑哄樊浜�" width="180" align="center" prop="travelers">
+ </el-table-column>-->
+ <el-table-column label="鎶ラ攢閲戦" width="150" align="center" prop="amountrequested">
</el-table-column>
- <el-table-column label="鎶ラ攢閲戦" width="120" align="center" prop="amountrequested">
- </el-table-column>
- <el-table-column label="鍑哄樊浜嬬敱" align="center" width="280" prop="reason">
- </el-table-column>
- <el-table-column label="鑱旂郴鐢佃瘽" width="120" align="center" prop="phone">
+ <el-table-column label="鎵�灞炵粍鍒�" width="150" align="center" prop="deptmentname" />
+ <el-table-column label="缁勯暱" width="150" align="center" prop="managername" />
+ <el-table-column label="鍑哄樊浜嬬敱" align="center" prop="reason" />
+ <!-- <el-table-column label="鑱旂郴鐢佃瘽" width="120" align="center" prop="phone">
</el-table-column>
<el-table-column label="寮�鎴烽摱琛�" width="180" align="center" prop="depositbank">
</el-table-column>
<el-table-column label="閾惰鍗″彿" width="180" align="center" prop="bankcardno">
</el-table-column>
- <!-- <el-table-column label="鎶ラ攢鍚堣" align="center" prop="financechecher"/>-->
+ <el-table-column label="鎶ラ攢鍚堣" align="center" prop="financechecher"/>-->
<!-- <el-table-column label="璐㈠姟瀹℃牳" width="120" align="center" prop="financechecher" /> -->
- <el-table-column label="鎹愮尞鑰�" width="120" align="center" prop="donorname">
- </el-table-column>
- <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="270">
+ <el-table-column label="鎹愮尞鑰�" width="150" align="center" prop="donorname" />
+ <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text"
icon="el-icon-upload2" @click="handleup(scope.row)">涓婃姤</el-button>
@@ -103,9 +99,7 @@
icon="el-icon-edit" @click="handleUpdate(scope.row)">淇敼</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)">鏌ョ湅</el-button>
<!-- v-hasPermi="['project:funddetail:edit']" -->
- <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)">
- 涓嬭浇
- </el-button>
+ <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)"> 涓嬭浇 </el-button>
<!-- v-hasPermi="['project:funddetail:edit']" -->
<el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text"
icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
@@ -128,22 +122,34 @@
placeholder="鐢宠鏃ユ湡">
</el-date-picker>
</el-form-item>
- </el-col>
- <el-col :span="5">
+ </el-col> <el-col :span="5">
<el-form-item label="缁忓姙浜�" prop="username">
<el-select v-model="form.username" clearable filterable allow-create ref="getReportname"
default-first-option placeholder="璇烽�夋嫨">
- <el-option v-for="item in personList" :key="item.reportNo" :label="item.reportName"
+ <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName"
:value="item.reportName">
</el-option>
</el-select>
</el-form-item>
- </el-col><el-col :span="5">
- <el-form-item label="鍖哄煙缁勯暱" prop="managername">
- <el-input v-model="form.managername" placeholder="鍖哄煙缁勯暱" />
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="鎵�灞炵粍鍒�" prop="deptmentname">
+ <el-input v-model="form.deptmentname" placeholder="鎵�灞炵粍鍒�" />
+ <!--<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬" />-->
</el-form-item>
</el-col>
-
+ <el-col :span="5">
+ <el-form-item label="缁勯暱" prop="managername">
+ <el-input v-model="form.managername" placeholder="缁勯暱" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="15">
+ <el-form-item label="鍑哄樊浜嬬敱" prop="reason">
+ <el-input v-model="form.reason" placeholder="鍑哄樊浜嬬敱" />
+ </el-form-item>
+ </el-col>
<el-col :span="5">
<el-form-item label="鎹愮尞鑰�" prop="infoid">
<el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="璇烽�夋嫨鎹愮尞鑰�">
@@ -188,9 +194,9 @@
</el-form-item>
</el-col>
<el-col :span="5">
- <el-form-item label="鎶ラ攢浜�" prop="travelers">
+ <el-form-item label="鍑哄樊浜�" prop="travelers">
<el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname"
- default-first-option placeholder="璇烽�夋嫨" @change="selectedTraveler">
+ default-first-option placeholder="璇烽�夋嫨" @change="getAccountinfo()">
<el-option v-for="item in travelers" :key="item.reportNo" :label="item.reportName"
:value="item.reportName">
</el-option>
@@ -263,14 +269,17 @@
plain
icon="el-icon-plus"
size="mini"
- @click="addRow"
+ @click="addDetailRow"
>鏂板涓�琛�</el-button
>
</el-col>
</el-row>
- -->
+ -->
+ <el-row style="margin-top: 25px; margin-bottom: 5px">
+ <el-col :span="20">鎶ラ攢鏄庣粏褰曞叆锛�</el-col>
+ </el-row>
<el-row>
- <el-table :data="applicationDetailArr" border highlight-current-row>
+ <el-table :data="rbDetails" border highlight-current-row>
<el-table-column prop="orderno" slot="" label="搴忓彿" align="center" fixed width="65">
<template slot-scope="scope">
<el-input v-model="scope.row.orderno" placeholder="搴忓彿" />
@@ -288,24 +297,21 @@
</template>
</el-table-column>
- <el-table-column prop="persontype" slot="" label="浜哄憳绫诲埆" align="center" fixed width="120">
+ <el-table-column prop="persontype" slot="" label="浜哄憳绫诲埆" align="center" fixed width="130">
<template slot-scope="scope">
<el-select v-model="scope.row.persontype" value-key="value" placeholder="浜哄憳绫诲埆"
- @change="getTravelers(scope.row)">
+ @change="getPersons(scope.row)">
<el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
+ :value="dict.label"></el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column prop="personname2" slot="" label="璐圭敤浜哄憳" align="center" fixed width="120">
- <!-- <template slot-scope="scope">
- <el-input v-model="scope.row.personname" placeholder="鍑哄樊浜�" />
- </template> -->
+ <el-table-column prop="personname" slot="" label="璐圭敤浜哄憳" align="center" fixed width="110">
<template slot-scope="scope">
<el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option
- placeholder="璇烽�夋嫨" @focus="filterPersonList(scope.row)">
- <el-option v-for="item in scope.row.personname2" :key="item.reportNo" :label="item.reportName"
+ placeholder="璇烽�夋嫨" @focus1="getPersons(scope.row)">
+ <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName"
:value="item.reportName">
</el-option>
</el-select>
@@ -314,45 +320,44 @@
<el-table-column prop="starttime" slot="" label="寮�濮嬫棩鏈�" fixed align="center" width="150">
<template slot-scope="scope">
<el-date-picker :picker-options="{
- disabledDate: time => {
- if (scope.row.endtime) { return time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) }
- }
- }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date"
- value-format="yyyy-MM-dd HH:mm:ss" placeholder="寮�濮嬫棩鏈�" @blur="getallowance(scope.row)">
+ disabledDate: time => {
+ if (scope.row.endtime) { return time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) }
+ }
+ }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date"
+ value-format="yyyy-MM-dd HH:mm:ss" placeholder="寮�濮嬫棩鏈�" @blur="getdays(scope.row)">
</el-date-picker>
</template>
</el-table-column>
<el-table-column prop="endtime" slot="" label="缁撴潫鏃ユ湡" align="center" fixed width="150">
<template slot-scope="scope">
<el-date-picker :picker-options="{
- disabledDate: time => {
- if (scope.row.starttime) { return time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) }
- }
- }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date"
- value-format="yyyy-MM-dd HH:mm:ss" placeholder="缁撴潫鏃ユ湡" @blur="getallowance(scope.row)">
+ disabledDate: time => {
+ if (scope.row.starttime) { return time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) }
+ }
+ }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date"
+ value-format="yyyy-MM-dd HH:mm:ss" placeholder="缁撴潫鏃ユ湡" @blur="getdays(scope.row)">
</el-date-picker>
</template>
</el-table-column>
- <el-table-column prop="departure" slot="" label="鍑哄彂鍦�" align="center" fixed width="100">
+ <el-table-column prop="departure" slot="" label="鍑哄彂鍦�" align="center" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.departure" placeholder="鍑哄彂鍦�" />
</template>
</el-table-column>
- <el-table-column label="鍒拌揪鍦�" prop="destination2" align="center" fixed width="100">
+ <el-table-column label="鍒拌揪鍦�" prop="destination" align="center" width="140">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.destination" placeholder="鍒拌揪鍦�" @blur="getallowance(scope.row)" /> -->
-
<el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="鍒拌揪鍦�"
- @change="getallowance2(scope.row, scope.row.destination)">
+ @change="getallowance(scope.row)">
<el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
+ :value="dict.label"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="days" label="澶╂暟" width="65" align="center">
<template slot-scope="scope">
- <el-input v-model="scope.row.days" @blur="getStandard(scope.row)" placeholder="澶╂暟" />
+ <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="澶╂暟" />
</template>
</el-table-column>
<el-table-column prop="traffictype" label="鍑哄彂浜ら�氬伐鍏�" align="center" width="100">
@@ -374,8 +379,8 @@
<el-table-column prop="trafficexpense" label="浜ら�氳垂" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.trafficexpense" placeholder="浜ら�氳垂" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
@@ -384,7 +389,7 @@
<template slot-scope="scope">
<el-input v-model="scope.row.cityfee" placeholder="甯傚唴浜ら�氳垂" @blur="
(val) => {
- sumTotalFee();
+ sumRowFee(scope.row);
}
">{{ Number(scope.row.cityfee).toFixed(2) }}
</el-input>
@@ -394,8 +399,8 @@
<el-table-column prop="hotelexpense" label="浣忓璐�" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.hotelexpense" placeholder="浣忓璐�" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
@@ -403,24 +408,24 @@
<el-table-column prop="foodexpenses" label="椁愯垂鎶ラ攢" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.foodexpenses" placeholder="浼欓璐规姤閿�" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
<el-table-column prop="foodallowance" label="浼欓琛ュ姪" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.foodallowance" placeholder="浼欓璐硅ˉ鍔�" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
<el-table-column prop="otherexpense" label="鍏潅璐硅ˉ鍔�" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.otherexpense" placeholder="鏉傝垂" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
@@ -428,8 +433,8 @@
<el-table-column prop="otherfeeamount" label="鍏朵粬璐圭敤" align="center" width="90">
<template slot-scope="scope">
<el-input v-model="scope.row.otherfeeamount" placeholder="鍏朵粬璐圭敤" @blur="(val) => {
- sumTotalFee();
- }
+ sumRowFee(scope.row);
+ }
" />
</template>
</el-table-column>
@@ -446,8 +451,8 @@
</el-table-column>
<el-table-column fixed="right" label="鎿嶄綔" align="center" 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="deleteRow(scope.$index, applicationDetailArr, scope.row)
+ <el-button type="text" size="mini" @click="addDetailRow(scope.$index)">鏂板</el-button>
+ <el-button @click.native.prevent="deleteDetailRow(scope.$index, rbDetails, scope.row)
" type="text" size="small">
鍒犻櫎
</el-button>
@@ -455,16 +460,18 @@
</el-table-column>
</el-table>
</el-row>
-
+ <el-row style="margin-top: 25px; margin-bottom: 5px">
+ <el-col :span="20">鎶ラ攢璇锋鏄庣粏锛�</el-col>
+ </el-row>
<el-row style="margin-top: 30px">
- <el-table :data="applicationDetailArr2" border highlight-current-row>
- <el-table-column prop="col_orderno" slot="" label="搴忓彿" align="center" fixed width="65">
+ <el-table :data="rbPayees" border highlight-current-row>
+ <el-table-column prop="orderno" slot="" label="搴忓彿" align="center" fixed width="65">
<template slot-scope="scope">
- <el-input v-model="scope.row.col_orderno" placeholder="搴忓彿" />
+ <el-input v-model="scope.row.orderno" placeholder="搴忓彿" />
</template>
</el-table-column>
- <!--涓婚敭銆佸涓嶅睍绀�-->
+ <!--涓婚敭銆佸閿笉灞曠ず-->
<el-table-column prop="id" slot="" label="涓婚敭" align="center" fixed width="95" v-if="false">
<template slot-scope="scope">
<el-input v-model="scope.row.id" placeholder="id" />
@@ -476,49 +483,55 @@
</template>
</el-table-column>
- <el-table-column prop="col_personType" slot="" label="浜哄憳绫诲埆" align="center" fixed width="120">
+ <el-table-column prop="persontype" slot="" label="浜哄憳绫诲埆" align="center" fixed width="130">
<template slot-scope="scope">
- <el-select v-model="scope.row.col_personType" value-key="value" placeholder="浜哄憳绫诲埆"
- @change="getColTravelers(scope.row, scope.row.col_personType)">
+ <el-select v-model="scope.row.persontype" value-key="value" placeholder="浜哄憳绫诲埆"
+ @change="getPersons(scope.row)">
<el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
- :value="dict.value"></el-option>
+ :value="dict.label"></el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column prop="col_personname2" slot="" label="鏀舵浜�" align="center" fixed width="130">
+ <el-table-column prop="personname" slot="" label="鏀舵浜�" align="center" fixed width="110">
<template slot-scope="scope">
- <el-select v-model="scope.row.col_personname" clearable filterable allow-create ref="getReportname"
- default-first-option placeholder="璇烽�夋嫨" @change="selectedColTraveler(scope.row)">
- <el-option v-for="item in scope.row.col_personname2" :key="item.reportNo" :label="item.reportName"
+ <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname"
+ default-first-option placeholder="璇烽�夋嫨" @change="getAccountinfo2(scope.row, scope.row.persontype)">
+ <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName"
:value="item.reportName">
</el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column prop="col_bank" slot="" label="鏀舵閾惰" align="center" fixed width="260">
+ <el-table-column prop="bankname" slot="" label="閾惰鍚嶇О" align="center" fixed width="200">
<template slot-scope="scope">
- <el-input v-model="scope.row.col_bank" placeholder="鏀舵閾惰" />
+ <el-input v-model="scope.row.bankname" placeholder="閾惰鍚嶇О" />
</template>
</el-table-column>
- <el-table-column prop="col_accounts" slot="" label="鏀舵甯愬彿" align="center" fixed width="230">
+ <el-table-column prop="bankcardno" slot="" label="閾惰鍗″彿" align="center" fixed width="200">
<template slot-scope="scope">
- <el-input v-model="scope.row.col_accounts" placeholder="鏀舵甯愬彿" />
+ <el-input v-model="scope.row.bankcardno" placeholder="閾惰鍗″彿" />
</template>
</el-table-column>
- <el-table-column prop="col_date" slot="" label="浠樻鏃ユ湡" align="center" fixed width="150">
+ <el-table-column prop="amount" slot="" label="鎵撴閲戦" align="center" fixed width="130">
<template slot-scope="scope">
- <el-input v-model="scope.row.col_date" placeholder="浠樻鏃ユ湡" />
+ <el-input v-model="scope.row.amount" placeholder="鎵撴閲戦" />
</template>
</el-table-column>
- <el-table-column prop="col_illustrate" slot="" label="璇存槑" align="center" fixed width="310">
+ <el-table-column prop="remark" slot="" label="璇锋璇存槑" align="center" fixed width="280">
<template slot-scope="scope">
- <el-input v-model="scope.row.col_illustrate" placeholder="璇存槑" />
+ <el-input v-model="scope.row.remark" placeholder="璇存槑" />
+ </template>
+ </el-table-column><el-table-column prop="paiddate" slot="" label="鎵撴鏃ユ湡" fixed align="center" width="150">
+ <template slot-scope="scope">
+ <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.paiddate" type="date"
+ value-format="yyyy-MM-dd HH:mm:ss" placeholder="鎵撴鏃ユ湡" :disabled="true">
+ </el-date-picker>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" align="center" width="100" v-if="dialogType == 'edit'">
<template slot-scope="scope">
- <el-button type="text" size="mini" @click="col_addRow(scope.$index)">鏂板</el-button>
- <el-button @click.native.prevent="deleteRow2(scope.$index, applicationDetailArr2, scope.row)
+ <el-button type="text" size="mini" @click="addPayeeRow(scope.$index)">鏂板</el-button>
+ <el-button @click.native.prevent="deletePayeeRow(scope.$index, rbPayees, scope.row)
" type="text" size="small">
鍒犻櫎
</el-button>
@@ -557,9 +570,8 @@
<el-input v-model="form.financedirector" placeholder="璐㈠姟閮ㄤ富浠�" />
</el-form-item>
</el-col>
- </el-row>
- -->
- <el-row>
+ </el-row> -->
+ <el-row style="margin-top: 25px; margin-bottom: 5px">
<el-col :span="14">
<!--
<el-form-item label="鏂囦欢鍦板潃" prop="fileurl">
@@ -568,9 +580,9 @@
-->
<el-form-item label="鏂囦欢涓婁紶" align="left" prop="annexfiles">
<!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> -->
- <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="5"
- :headers="headers" :on-success="(response, file, fileList) =>
- uploadSccess(response, file, fileList)
+ <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="remove" accept="image/*,.pdf">
<el-button :disabled='dialogType == "detail"' size="small" type="primary">涓婁紶</el-button>
@@ -599,8 +611,10 @@
</template>
<script>
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { listDonatebaseinfo } from "@/api/project/donatebaseinfo";
-import { addOrUpdateRBpayee, listReimbursementpayee } from "@/api/project/reimbursementpayee";
+import { listReimbursementpayee, addReimbursementpayee, updateReimbursementpayee } from "@/api/project/reimbursementpayee";
import {
listReimbursement,
getReimbursement,
@@ -617,19 +631,21 @@
listReimbursementdetailid,
getReimbursementdetaillist,
delReimbursementdetail,
- updateReimbursementdetaillist,
+ addOrupdateReimbursementdetaillist,
getTravelStandard,
} from "@/api/project/reimbursementdetail";
import { listFundflow } from "@/api/project/fundflow";
import { getInfoBytheUserNo } from "@/api/project/externalperson";
import { regionDataPlus, CodeToText } from "element-china-area-data";
import Li_area_select from "@/components/Address";
-import { getUserProfile } from "@/api/system/user";
+import { getUser,getUserProfile } from "@/api/system/user";
+import { treeselect } from "@/api/system/dept";
import { getSubsidy } from "@/api/project/travelcity";
import { listReportname, listUser } from "@/api/project/organization";
import { getToken } from "@/utils/auth";
export default {
components: {
+ Treeselect,
Li_area_select,
},
name: "Funddetail",
@@ -645,14 +661,26 @@
],
data() {
return {
- personList: [],
- travelers: [],
- coltravelers: [],
+ //OPO鍗忚皟鍛�
+ personsXty: [],
+ //OPO涓撹亴浜哄憳
+ personsZzry: [],
+ //OPO绠$悊浜哄憳
+ personsManager: [],
+ //OPO涓撳
+ personsExpert: [],
+ //鍏ㄩ儴浜哄憳
+ personsList: [],
+ //涓嬫媺鍙互閫夋嫨浜哄憳鍒楄〃
+ personsSel: [],
+ // 閮ㄩ棬鏍戦�夐」
+ deptOptions: undefined,
+
costtypeobj: {
value: 0,
label: "",
},
- userlist: [],
+
options: regionDataPlus,
selectedOptions: [],
searchAddress: {
@@ -691,32 +719,40 @@
remark: null,
departure: null,
endtime: null,
- destination2: null,
+ destination: null,
uploadFlag: null,
uploadTime: null,
- orderByColumn: "createTime",
+ // orderByColumn: "createTime",
+ orderByColumn: "id",
isAsc: "desc",
},
queryParams2: {
persontype: null,
arriveAddr: null,
},
+ feesParams: {
+ beneficiaryNo: null,
+ starttime: null,
+ endtime: null,
+ },
+ //鏌ヨ浠樻
+ queryParamsPayee: {
+ rbid: null,
+ },
// 琛ㄥ崟鍙傛暟
form: {},
reimbursementList: [],
+
// 琛ㄥ崟鏍¢獙
rules: {
- costtype: [
- { required: true, message: "璇烽�夋嫨鎶ラ攢褰掔被", trigger: "blur" },
- ],
- username: [
- { required: true, message: "璇烽�夋嫨濉姤浜�", trigger: "blur" },
- ],
- travelers: [
- { required: true, message: "璇烽�夋嫨鎶ラ攢浜�", trigger: "blur" },
+ createTime: [
+ { required: true, message: "璇疯緭鍏ュ~鎶ユ棩鏈�", trigger: "blur" },
],
reason: [
{ required: true, message: "璇疯緭鍏ュ嚭宸簨鐢�", trigger: "blur" },
+ ],
+ deptmentname: [
+ { required: true, message: "璇疯緭鍏ユ墍灞炰笟鍔$粍", trigger: "blur" },
],
},
//璐圭敤鐢宠鍗昮orm
@@ -726,11 +762,12 @@
donorname: null,
bigstrmoney: null,
},
- applicationDetailArr: [],
- applicationDetailArr2: [],
+
+ rbDetails: [],
+ rbPayees: [],
arrr2: [],
baselist: [],
- balist: [],
+ donatorList: [],
standardlevel: 0,
defaultperson: {},
fundflowList: [],
@@ -751,42 +788,50 @@
},
};
},
+
created() {
+ //鑾峰彇璁板綍鍒楄〃
this.getList();
- this.getUserList();
+
+ //鑾峰彇鎶ラ攢涓殑浜哄憳淇℃伅
this.getPersonList();
},
+
mounted() {
+ //鑾峰彇鎹愮尞鑰呭鍚�
listDonatebaseinfo().then((res) => {
- // console.log("base鍩虹琛ㄦ暟鎹�", res.rows);
let list = res.rows;
let baseinfolist = [];
- this.balist = list;
+ this.donatorList = list;
list.forEach((element) => {
baseinfolist.push({
infoid: element.id,
name: element.name,
});
});
- // console.log("缁勫悎鐨勬柊鏁扮粍", baseinfolist);
+
if (baseinfolist != 0) {
this.baselist = baseinfolist;
}
});
- this.getUsermsg();
- },
- methods: {
- alertMessage(row) {
- debugger
- },
+ //鑾峰彇鐧诲綍鑰呬俊鎭�
+ this.getUsermsg();
+ //鑾峰彇閮ㄩ棬淇℃伅
+ //this.getTreeselect();
+ },
+
+ methods: {
handleUploadError() { },
+
remove(file) {
this.fileList.splice(this.fileList.indexOf(file), 1)
},
+
handleExceed() {
this.$message.error(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${5} 涓�!`);
},
+
//鏂囦欢涓婁紶鎴愬姛鍥炶皟
uploadSccess(response, file, fileList) {
//鑾峰彇闄勪欢淇℃伅浣嶇疆
@@ -800,72 +845,7 @@
}
},
- //鑾峰彇浜哄憳鍒楄〃
- getPersonList() {
- //鑾峰彇鍚勭被鍒殑浜哄憳锛氬崗璋冨憳銆佷笓鑱屼汉鍛樸�佽礋璐d汉銆佷笓瀹�
- let persontypeArr = ["xty1", "zzry", "fzr", "expert"];
- for (let i = 0; i < persontypeArr.length; i++) {
- this.tempArrr = [];
- listReportname(persontypeArr[i]).then((res) => {
- this.tempArrr = res.data;
- this.personList = this.personList.concat(this.tempArrr);
- });
- }
- },
- //鑾峰彇涓�涓被鍒殑浜哄憳鍒楄〃
- filterPersonList(row) {
- let travelertype = row.persontype;
- },
-
- //鑾峰彇鍑哄樊浜哄垪琛�
- getTravelers(row, val) {
- //涓撹亴浜哄憳-1,鍗忚皟鍛�-2,涓撳-3,瀹跺睘-4,鍏朵粬浜哄憳-5
- let travelertype = "";
- if (row.persontype == "1") {
- travelertype = "zzry";
- } else if (row.persontype == "2") {
- travelertype = "xty1";
- } else if (row.persontype == "3") {
- travelertype = "expert";
- } else if (row.persontype == "4") {
- travelertype = "jiashu";
- } else if (row.persontype == "5") {
- travelertype = "fzr";
- }
- listReportname(travelertype).then((res) => {
- this.travelers = res.data;
- row.personname2 = res.data;
- });
- this.form.persontype = val;
- },
- //鑾峰彇鏀舵浜哄垪琛�
- getColTravelers(row, val2) {
- debugger;
- //涓撹亴浜哄憳-1,鍗忚皟鍛�-2,涓撳-3,瀹跺睘-4,鍏朵粬浜哄憳-5
- let travelertype = "";
- if (val2 == 1) {
- travelertype = "zzry";
- } else if (val2 == 2) {
- travelertype = "xty1";
- } else if (val2 == 3) {
- travelertype = "expert";
- } else if (val2e == 4) {
- travelertype = "jiashu";
- } else if (val2 == 5) {
- travelertype = "fzr";
- }
- listReportname(travelertype).then((res) => {
- this.travelers = res.data;
- row.col_personname2 = res.data;
- });
- this.col_personType = val2;
- },
-
- selectcosttype() {
- this.form.costtype = this.costtypeobj.value;
- this.form.costtypename = this.costtypeobj.label;
- },
-
+ //鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
getUsermsg() {
getUserProfile().then((response) => {
this.defaultperson = response.data;
@@ -873,13 +853,60 @@
});
},
- getUserList() {
- listUser().then((res) => {
- this.userlist = res.data;
+ /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+ getTreeselect() {
+ treeselect().then(response => {
+ this.deptOptions = response.data;
});
},
- selectedTraveler() {
- this.travelers.map((res) => {
+
+ //鑾峰彇浜哄憳鍒楄〃
+ getPersonList() {
+ //鑾峰彇OPO鍗忚皟鍛樺悕鍗�
+ listReportname("xty1").then((res) => {
+ this.personsXty = res.data;
+ this.personsList = this.personsXty;
+
+ //OPO涓撹亴浜哄憳鍚嶅崟
+ listReportname("zzry").then((res) => {
+ this.personsZzry = res.data;
+ this.personsList = this.personsList.concat(this.personsZzry);
+
+ //OPO绠$悊浜哄憳鍚嶅崟
+ listReportname("fzr").then((res) => {
+ this.personsManager = res.data;
+ this.personsList = this.personsList.concat(this.personsManager);
+
+ //OPO涓撳鍚嶅崟
+ listReportname("expert").then((res) => {
+ this.personsExpert = res.data;
+ this.personsList = this.personsList.concat(this.personsExpert);
+ });
+ });
+ });
+ });
+ },
+
+ //鑾峰彇涓�涓被鍒殑浜哄憳鍒楄〃
+ getPersons(row) {
+ //涓撹亴浜哄憳-1,鍗忚皟鍛�-2,涓撳-3,瀹跺睘-4,鍏朵粬浜哄憳-5
+ let tmpList = null;
+ if (row.persontype == "涓撹亴浜哄憳") {
+ this.personsSel = this.personsZzry;
+ } else if (row.persontype == "鍗忚皟鍛�") {
+ this.personsSel = this.personsXty;
+ } else if (row.persontype == "涓撳") {
+ this.personsSel = this.personsExpert;
+ } else if (row.persontype == "瀹跺睘") {
+ this.personsSel = tmpList;
+ } else if (row.persontype == "绠$悊浜哄憳") {
+ this.personsSel = this.personsManager;
+ }
+ },
+
+ //鑾峰彇璁剧疆浜哄憳璐﹀彿淇℃伅
+ getAccountinfo() {
+ this.coltravelers.map((res) => {
if (res.reportName == this.form.travelers) {
getInfoBytheUserNo(res.reportNo).then((res) => {
this.form.depositbank = res.data.depositbank;
@@ -889,95 +916,74 @@
}
});
},
- //鑾峰彇鏀舵浜洪摱琛屽崱鍜屽笎鍙�
- selectedColTraveler(row) {
- let travelertype = "";
- if (row.col_personType == 1) {
- travelertype = "zzry";
- } else if (row.col_personType == 2) {
- travelertype = "xty1";
- } else if (row.col_personType == 3) {
- travelertype = "expert";
- } else if (row.col_personType == 4) {
- travelertype = "jiashu";
- } else if (row.col_personType == 5) {
- travelertype = "fzr";
+
+ //鑾峰彇璁剧疆浜哄憳璐﹀彿淇℃伅
+ getAccountinfo2(row, personType) {
+ let dataArr = [];
+ if (personType == '涓撹亴浜哄憳') {
+ dataArr = this.personsZzry;
+ } else if (personType == '鍗忚皟鍛�') {
+ dataArr = this.personsXty;
+ } else if (personType == '涓撳') {
+ dataArr = this.personsExpert;
+ } else if (personType == '绠$悊浜哄憳') {
+ dataArr = this.personsManager;
}
- listReportname(travelertype).then((res) => {
- let dataArr = res.data;
- for (let m = 0; m < dataArr.length; m++) {
- if (dataArr[m].reportName == row.col_personname) {
- row.col_bank = dataArr[m].depositbank;
- row.col_accounts = dataArr[m].bankcardno;
- };
- }
- });
- // this.coltravelers.map((res) => {
- // console.log("-----------------------------");
- // if (res.reportName == this.form.travelers) {
- // getInfoBytheUserNo(res.reportNo).then((res) => {
- // this.form.depositbank = res.data.depositbank;
- // this.form.bankcardno = res.data.bankcardno;
- // this.form.phone = res.data.telephone;
- // });
- // }
- // });
+
+ for (let m = 0; m < dataArr.length; m++) {
+ if (dataArr[m].reportName == row.personname) {
+ row.bankname = dataArr[m].depositbank;
+ row.bankcardno = dataArr[m].bankcardno;
+ };
+ }
},
- //璁$畻琛ュ姪
- getallowance(row) {
- if (
- row.starttime != "" &&
- row.starttime != null &&
- row.endtime != "" &&
- row.endtime != null
- ) {
+
+ //璁$畻鏃ユ湡
+ getdays(row) {
+ if (row.starttime != "" && row.starttime != null && row.endtime != "" && row.endtime != null) {
//璁$畻澶╂暟
- row.days = 1 + Math.floor(Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1099 * 3699 * 24))
-
- /*let aDate, oDate1, oDate2, Date_end,Date_start;
- Date_end = row.endtime.split(" "); //灏嗘椂闂翠互绌烘牸鍒掑垎涓轰袱涓暟缁� 绗竴涓暟缁勬槸 2019-05-20 绗簩涓暟缁勬槸 00锛�00锛�00
- aDate = Date_end[0].split("-"); //鑾峰彇绗竴涓暟缁勭殑鍊�
- oDate1 = new Date(aDate[0], aDate[1], aDate[2]); //灏嗗墠鍗婁釜鏁扮粍浠�-鎷嗗垎锛屾瘡涓�涓槸涓�涓暟鍊�
-
- Date_start = row.starttime.split(" ");
- aDate = Date_start[0].split("-");
- oDate2 = new Date(aDate[0], aDate[1], aDate[2]);
- row.days = 1+parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //鎶婄浉宸殑姣鏁拌浆鎹负澶╂暟
- */
+ row.days = (Math.floor(Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24)) + 1).toString()
} else {
- row.days = ''
+ row.days = 0;
};
+ //璁$畻琛ュ姪
+ this.getallowance(row);
+ },
+
+ //璁$畻琛ュ姪
+ getallowance(row) {
+ console.log("ro",row);
//鍏潅璐硅ˉ鍔╋細鏉窞妗愬簮锛屽缓寰凤紝娣冲畨60锛屾澀宸炲叾浠栧湴鍖�0锛岄潪鏉窞鍦板尯80
- if (row.destination2 != "") {
- var str = row.destination2;
+ if (row.destination != "") {
+ var tempStr = row.destination;
+
//楠岃瘉鍩庡競
- ////if (str.indexOf("妗愬簮锛屽缓寰凤紝娣冲畨") !== -1) { };
- if (str.includes("鏉窞")) { row.otherexpense = parseInt(row.days) * 0 }
- else if (str.includes("妗愬簮") || str.includes("寤哄痉") || str.includes("娣冲畨")) { row.otherexpense = parseInt(row.days) * 60 }
- else { row.otherexpense = parseInt(row.days) * 80 };
+ if (tempStr == "鏉窞") {
+ row.otherexpense = '';
+ }
+ else if (tempStr == "鏉窞-妗愬簮" || tempStr == "鏉窞-寤哄痉" || tempStr == "鏉窞-娣冲畨") {
+ row.otherexpense = (parseInt(row.days) * 60).toString();
+ }
+ else {
+ row.otherexpense = (parseInt(row.days) * 80).toString();
+ };
}
//浼欓璐硅ˉ鍔╋細鍩庡競锛堣タ钘忥紝鏂扮枂锛岄潚娴�.120锛夛紙鍏朵粬100锛�
- row.foodallowance = parseInt(row.days) * 100
+ row.foodallowance = (parseInt(row.days) * 100).toString();
- //璁$畻鍚堣
- this.sumTotalFee();
+ //璁$畻鍚堣
+ this.sumRowFee(row);
},
+
getallowance2(row, val2) {
- debugger;
- // this.getallowance(row);
this.arriveAddr = val2;
this.queryParams2.arriveAddr;
this.queryParams2.personType = row;
- console.log(row.persontype);
- console.log(this.arriveAddr);
- if (row.persontype != undefined && row.persontype == "2" || row.persontype == "5") {
- console.log(this.arriveAddr);
+ if (row.persontype != undefined && row.persontype == "鍗忚皟鍛�" || row.persontype == "绠$悊浜哄憳") {
this.loading = true;
- debugger;
getSubsidy(val2).then((response) => {
- debugger
this.loading = false;
row.otherexpense = response.data.others;
row.foodallowance = response.data.food;
@@ -985,6 +991,7 @@
}
},
+
getStandard(row) {
if (
row.searchAddress.sheng != "" &&
@@ -1005,6 +1012,7 @@
patowncode: this.$refs["residenceSelect_" + row.index].getQu(),
standardlevel: this.standardlevel,
};
+
getTravelStandard(info)
.then((response) => {
let fee = 0;
@@ -1014,10 +1022,11 @@
row.hotelexpense = fee;
})
.finally(() => {
- this.sumTotalFee(row);
+ this.sumTotalFee();
});
}
},
+
selcetdestination(row) {
console.log("鐩殑鍦伴�夋嫨浜嬩欢", row, row.searchAddress);
//row.searchAddress = this.searchAddress;
@@ -1026,7 +1035,7 @@
row.searchAddress.shi != "" &&
row.searchAddress.qu != ""
) {
- row.destination2 =
+ row.destination =
row.searchAddress.sheng +
row.searchAddress.shi +
row.searchAddress.qu;
@@ -1071,8 +1080,9 @@
return area;
},
+ //鑾峰彇鎹愮尞鑰呭熀鏈俊鎭細鎹愮尞缂栧彿銆佹崘鐚�呭鍚�
selectbaseinfo() {
- let list = this.balist;
+ let list = this.donatorList;
list.forEach((item) => {
if (item.id == this.form.infoid) {
this.form.donorno = item.donorno;
@@ -1118,10 +1128,10 @@
getList() {
this.loading = true;
listReimbursement(this.queryParams).then((response) => {
- console.log("宸梾璐规暟鎹垪琛�:", response);
this.reimbursementList = response.rows;
this.total = response.total;
this.loading = false;
+
});
},
// 鍙栨秷鎸夐挳
@@ -1131,8 +1141,7 @@
},
// 琛ㄥ崟閲嶇疆
reset() {
-
- this.fileList = []
+ this.fileList = [];
this.form = {
ceshi: {},
bigstrmoney: null,
@@ -1177,14 +1186,15 @@
costtype: null,
costtypename: null,
};
- this.applicationDetailArr = [];
- this.applicationDetailArr2 = [];
+ this.rbDetails = [];
+ this.rbPayees = [];
this.resetForm("form");
},
//
handup(e) {
console.log("涓婃姤", e);
},
+
// 涓嬭浇鏂囦欢
downFile(item) {
const url = process.env.VUE_APP_BASE_API + item.url
@@ -1194,6 +1204,7 @@
a.href = url;
a.dispatchEvent(event);
},
+
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
// console.log('pop',this.value1)
@@ -1208,6 +1219,7 @@
this.queryParams.pageNum = 1;
this.getList();
},
+
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
this.resetForm("queryForm");
@@ -1219,78 +1231,90 @@
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
+
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
this.reset();
+
+ this.open = true;
+ this.title = "鏂板鎶ラ攢鐢宠";
this.dialogType = "edit";
this.fundflowList = [];
- this.form.username = this.defaultperson.nickName;
+
this.form.userno = this.defaultperson.userName;
- this.addRow();
- this.col_addRow();
- this.open = true;
- this.title = "娣诲姞鎶ラ攢鐢宠";
+ this.form.username = this.defaultperson.nickName;
+ this.form.deptmentname = this.defaultperson.dept.deptName;
+ this.form.deptmentno = this.defaultperson.dept.deptId;
+ this.form.managername = this.defaultperson.dept.leader;
+
+ this.addDetailRow(0);
+ this.addPayeeRow(0);
},
+
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.dialogType = "edit";
this.reset();
+ this.open = true;
+ this.title = "淇敼鎶ラ攢鐢宠";
+
+ //鑾峰彇鎶ラ攢涓讳俊鎭�
const id = row.id || this.ids;
getReimbursement(id).then((response) => {
this.form = response.data;
this.fileList = this.form.annexfiles ? this.form.annexfiles.split(",").map(item => ({ url: item, name: item })) : []
this.form.recordstatus = response.data.recordstatus + "";
- this.open = true;
- this.title = "淇敼鎶ラ攢鐢宠";
+
+
let ids = response.data.id;
-
+ //鑾峰彇鎶ラ攢鏄庣粏淇℃伅
getReimbursementdetaillist(ids).then((res) => {
- if (res.data.length == 0) {
- return;
- }
- this.applicationDetailArr = res.data;
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- debugger;
- // this.applicationDetailArr[i].personname2 = res.data[i].personname;
+ this.rbDetails = res.data;
+ if (this.rbDetails.length == 0) { this.addDetailRow(0); }
+
+ for (let i = 0; i < this.rbDetails.length; i++) {
+ this.sumRowFee(this.rbDetails[i]);
+ //瑙f瀽鍑哄樊鍦板潃
+ /*
+ this.rbDetails[i].index = i;
+ this.rbDetails[i].searchAddress = {
+ sheng: this.rbDetails[i].travelprovincename,
+ shi: this.rbDetails[i].travelcityname,
+ qu: this.rbDetails[i].traveltownname,
+ }; */
}
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- debugger;
- this.applicationDetailArr[i].index = i;
- this.applicationDetailArr[i].searchAddress = {
- sheng: this.applicationDetailArr[i].travelprovincename,
- shi: this.applicationDetailArr[i].travelcityname,
- qu: this.applicationDetailArr[i].traveltownname,
- };
- }
- this.sumTotalFee();
+ //瀹炴椂鍚堣閲戦
+ //this.sumTotalFee();
});
- let obj = { rbid: ids };
- listReimbursementpayee(obj).then((res) => {
- if (res.rows.length == 0) {
- return;
- }
- this.applicationDetailArr2 = res.rows;
- // this.sumTotalFee();
+
+ //鑾峰彇鎶ラ攢鎵撴淇℃伅
+ this.queryParamsPayee.rbid = ids;
+ listReimbursementpayee(this.queryParamsPayee).then((res) => {
+ this.rbPayees = res.rows;
+ if (this.rbPayees.length == 0) { this.addPayeeRow(0); }
});
});
- //榛樿瀛樺湪涓�琛�
- this.addRow();
- this.col_addRow();
- this.selectedTraveler();
},
+
/** 鏌ョ湅鎸夐挳鎿嶄綔 */
handleDetail(row) {
this.dialogType = "detail";
+ this.title = "鏌ョ湅鎶ラ攢鐢宠";
+
this.reset();
+ this.open = true;
const id = row.id || this.ids;
+
+
getReimbursement(id).then((response) => {
this.form = response.data;
+ //闄勪欢
this.fileList = this.form.annexfiles ? this.form.annexfiles.split(",").map(item => ({ url: item, name: item })) : []
+ //瀹℃牳鐘舵��
this.form.recordstatus = response.data.recordstatus + "";
- this.open = true;
- this.title = "鏌ョ湅鎶ラ攢鐢宠";
+
let ids = response.data.id;
let listFundflowparams = {
fundid: row.id,
@@ -1299,146 +1323,173 @@
listFundflow(listFundflowparams).then((res) => {
this.fundflowList = res.rows;
});
+
+ //鎶ラ攢鏄庣粏
getReimbursementdetaillist(ids).then((res) => {
- this.applicationDetailArr = res.data;
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- this.applicationDetailArr[i].index = i;
- this.applicationDetailArr[i].searchAddress = {
- sheng: this.applicationDetailArr[i].travelprovincename,
- shi: this.applicationDetailArr[i].travelcityname,
- qu: this.applicationDetailArr[i].traveltownname,
+ this.rbDetails = res.data;
+ /*
+ for (let i = 0; i < this.rbDetails.length; i++) {
+ this.rbDetails[i].index = i;
+ this.rbDetails[i].searchAddress = {
+ sheng: this.rbDetails[i].travelprovincename,
+ shi: this.rbDetails[i].travelcityname,
+ qu: this.rbDetails[i].traveltownname,
};
}
- //this.sumTotalFee();
+ */
});
+
+ if (this.rbDetails.length > 0) this.sumTotalFee();
+
+
+ //浠樻淇℃伅
+ this.queryParamsPayee.rbid = ids;
+ listReimbursementpayee(this.queryParamsPayee).then((res) => {
+ this.rbPayees = res.rows;
+ if (this.rbPayees.length == 0) { this.addPayeeRow(0); }
+ });
+
});
},
+
/** 鎻愪氦鎸夐挳 */
submitForm() {
- debugger;
this.$refs["form"].validate((valid) => {
- debugger;
if (valid) {
- let indexErrTime = this.applicationDetailArr.findIndex((item) => {
- if (item.endtime && item.starttime) {
- let d = this.$moment(item.endtime).diff(
- this.$moment(item.starttime),
- "d"
- );
- if (d < 0) {
- return true;
- } else {
- return false;
- }
- } else {
- false;
- }
- });
-
- if (indexErrTime > -1) {
- this.$message({
- message: "绗�" + (indexErrTime + 1) + "琛屽埌杈炬棩鏈熸棭浜庡嚭鍙戞棩鏈�",
- type: "warning",
- });
- return;
- }
-
- let emptyStartTimeindex = this.applicationDetailArr.findIndex(
- (item) =>
- item.starttime == null ||
- item.starttime == undefined ||
- item.starttime == ""
- );
-
- if (emptyStartTimeindex > -1) {
- this.$message({
- message: "绗�" + (emptyStartTimeindex + 1) + "琛屽嚭鍙戞棩鏈熶负绌�",
- type: "warning",
- });
- return;
- }
-
- let emptyEndTimeindex = this.applicationDetailArr.findIndex(
- (item) =>
- item.endtime == null ||
- item.endtime == undefined ||
- item.endtime == ""
- );
-
- if (emptyEndTimeindex > -1) {
- this.$message({
- message: "绗�" + (emptyEndTimeindex + 1) + "琛屽埌杈炬棩鏈熶负绌�",
- type: "warning",
- });
- return;
- }
-
+ /**
+ let indexErrTime = this.rbDetails.findIndex((item) => {
+ if (item.endtime && item.starttime) {
+ let d = this.$moment(item.endtime).diff(this.$moment(item.starttime), "d");
+ if (d < 0) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ false;
+ }
+ });
+
+ if (indexErrTime > -1) {
+ this.$message({
+ message: "绗�" + (indexErrTime + 1) + "琛屽埌杈炬棩鏈熸棭浜庡嚭鍙戞棩鏈�",
+ type: "warning",
+ });
+ return;
+ }
+
+ let emptyStartTimeindex = this.rbDetails.findIndex(
+ (item) => item.starttime == null || item.starttime == undefined || item.starttime == ""
+ );
+
+ if (emptyStartTimeindex > -1) {
+ this.$message({
+ message: "绗�" + (emptyStartTimeindex + 1) + "琛屽嚭鍙戞棩鏈熶负绌�",
+ type: "warning",
+ });
+ return;
+ }
+
+ let emptyEndTimeindex = this.rbDetails.findIndex(
+ (item) => item.endtime == null || item.endtime == undefined || item.endtime == ""
+ );
+
+ if (emptyEndTimeindex > -1) {
+ this.$message({
+ message: "绗�" + (emptyEndTimeindex + 1) + "琛屽埌杈炬棩鏈熶负绌�",
+ type: "warning",
+ });
+ return;
+ }
+
+ //璐圭敤褰掑睘
let belongArr = this.dict.type.sys_travelexpensebelong;
let costtypeindex = belongArr.findIndex(
(item) => this.form.costtype == item.value
);
+ if (costtypeindex > -1) {
+ this.form.costtypename = belongArr[costtypeindex].label;
+ }
+ */
+
+ //闄勪欢鏂囦欢澶勭悊
let list = this.fileList;
if (list.length > 0) {
this.form.annexfiles = list.map(item => item.url).join(",");
}
- if (costtypeindex > -1) {
- this.form.costtypename = belongArr[costtypeindex].label;
- }
- if (this.form.id != null) {
- //rbid涓昏〃Id,鏂逛究鍚庨潰鍏宠仈涓昏〃
- let rbid = this.form.id;
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- this.applicationDetailArr[i].rbid = rbid;
- }
- updateReimbursement(this.form).then((response) => {
- updateReimbursementdetaillist(this.applicationDetailArr).then((response) => {
- //鏇存柊鏀粯琛ㄤ俊鎭�
- for (let i = 0; i < this.applicationDetailArr2.length; i++) {
- this.applicationDetailArr2[i].rbid = rbid;
- }
- addOrUpdateRBpayee(this.applicationDetailArr2);
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- if (this.applicationDetailArr[i].rbid != null) {
- updateReimbursementdetail(this.applicationDetailArr[i]);
- } else {
- this.applicationDetailArr[i].rbid = this.form.id;
- addReimbursementdetail(this.applicationDetailArr[i]);
- }
- }
- this.$modal.msgSuccess("淇敼鎴愬姛");
- this.open = false;
- this.getList();
- });
+
+ //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰�
+ if (this.form.amountrequested != this.rbPayees.reduce((amount, item) => amount + Number(item.amount), 0.0)) {
+ this.$message({
+ message: "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�",
+ type: "warning",
});
- } else {
- this.form.recordstatus = -1;
- const applicationDetailArr = [...this.applicationDetailArr]
- const applicationDetailArr2 = [...this.applicationDetailArr2]
- addReimbursement(this.form).then((response) => {
- this.$modal.msgSuccess("鏂板鎴愬姛");
+ return;
+ }
+
+ const rbDetails = [...this.rbDetails]
+ const rbPayees = [...this.rbPayees]
+ if (this.form.id != null) {
+ updateReimbursement(this.form).then((res) => {
+ //淇濆瓨鏄庣粏
+ for (let i = 0; i < rbDetails.length; i++) {
+ if (rbDetails[i].rbid != null) {
+ updateReimbursementdetail(rbDetails[i]);
+ } else {
+ //rbid鍏宠仈涓昏〃Id
+ rbDetails[i].rbid = this.form.id;
+ addReimbursementdetail(rbDetails[i]);
+ }
+ }
+
+ //淇濆瓨璐︽埛
+ for (let i = 0; i < rbPayees.length; i++) {
+ if (rbPayees[i].rbid != null) {
+ updateReimbursementpayee(rbPayees[i]);
+ } else {
+ //rbid鍏宠仈涓昏〃Id
+ rbPayees[i].rbid = this.form.id;
+ addReimbursementpayee(rbPayees[i]);
+ }
+ }
+
+ this.$modal.msgSuccess("淇敼鎶ラ攢鍗曚繚瀛樻垚鍔�!");
this.open = false;
this.getList();
- console.log(
- "涓昏〃鏂板鎴愬姛浜嗭細",
- response,
- this.applicationDetailArr
- );
- listReimbursementdetailid().then((res) => {
- let id = res.data;
- for (let i = 0; i < applicationDetailArr.length; i++) {
- applicationDetailArr[i].rbid = id;
- addReimbursementdetail(applicationDetailArr[i]);
- }
- for (let i = 0; i < applicationDetailArr2.length; i++) {
- applicationDetailArr2[i].rbid = id;
- }
- addOrUpdateRBpayee(applicationDetailArr2);
- });
+
+ }).catch(err => {
+ this.$modal.msgError("淇敼鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+ });
+ }
+ else {
+ this.form.recordstatus = -1;
+ addReimbursement(this.form).then((response) => {
+ //淇濆瓨鏄庣粏
+ for (let i = 0; i < rbDetails.length; i++) {
+ //rbid鍏宠仈涓昏〃Id
+ rbDetails[i].rbid = response.data;
+ addReimbursementdetail(rbDetails[i]);
+ }
+
+ //淇濆瓨璐﹀彿
+ for (let i = 0; i < rbPayees.length; i++) {
+ //rbid鍏宠仈涓昏〃Id
+ rbPayees[i].rbid = response.data;
+ addReimbursementpayee(rbPayees[i]);
+ }
+
+ this.$modal.msgSuccess("鏂板鎶ラ攢鍗曚繚瀛樻垚鍔�!");
+ this.open = false;
+ this.getList();
+
+ }).catch(err => {
+ this.$modal.msgError("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
});
}
}
});
},
+
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
const ids = row.id || this.ids;
@@ -1455,6 +1506,7 @@
})
.catch(() => { });
},
+
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
const queryParams = this.queryParams;
@@ -1472,9 +1524,9 @@
},
//鏂板涓�琛�
- addRow(rowIndex) {
+ addDetailRow(rowIndex) {
let rowData = {
- //index: this.applicationDetailArr.length,
+ //index: this.rbDetails.length,
searchAddress: {
sheng: "",
shi: "",
@@ -1485,10 +1537,11 @@
starttime: null,
departure: null,
endtime: null,
- destination2: null,
+ destination: null,
days: null,
trafficexpense: 0,
traffictype: null,
+ traffictype2: null,
cityfee: 0,
hotelexpense: 0,
invoicecount: null,
@@ -1513,38 +1566,39 @@
destination: null,
};
if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
- this.applicationDetailArr.push(rowData);
+ this.rbDetails.push(rowData);
} else {
- this.applicationDetailArr.splice(rowIndex + 1, 0, rowData);
+ this.rbDetails.splice(rowIndex + 1, 0, rowData);
}
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- this.applicationDetailArr[i].orderno = i + 1;
+ for (let i = 0; i < this.rbDetails.length; i++) {
+ this.rbDetails[i].orderno = i + 1;
}
},
- col_addRow(rowIndex) {
+ addPayeeRow(rowIndex) {
let rowData = {
id: null,
- col_personType: null,
- col_personname: null,
- col_bank: null,
- col_accounts: null,
- col_date: null,
- col_illustrate: null,
- col_orderno: null,
- col_personname2: null,
+ personType: null,
+ personname: null,
+ bankname: null,
+ bankcardno: null,
+ paiddate: null,
+ remark: null,
+ orderno: null,
+ personname: null,
+ amount: null,
};
- if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
- this.applicationDetailArr2.push(rowData);
+ if (rowIndex == undefined || rowIndex == null || rowIndex <= 0) {
+ this.rbPayees.push(rowData);
} else {
- this.applicationDetailArr2.splice(rowIndex + 1, 0, rowData);
+ this.rbPayees.splice(rowIndex + 1, 0, rowData);
}
- for (let i = 0; i < this.applicationDetailArr2.length; i++) {
- this.applicationDetailArr2[i].col_orderno = i + 1;
+ for (let i = 0; i < this.rbPayees.length; i++) {
+ this.rbPayees[i].orderno = i + 1;
}
},
- deleteRow(index, rows, row) {
+ deleteDetailRow(index, rows, row) {
this.$confirm("鏄惁纭鍒犻櫎?", "鎻愮ず", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
@@ -1571,7 +1625,7 @@
});
},
- deleteRow2(index, rows, row) {
+ deletePayeeRow(index, rows, row) {
this.$confirm("鏄惁纭鍒犻櫎?", "鎻愮ず", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
@@ -1584,11 +1638,11 @@
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
rows.splice(index, 1);
this.recountOrderNo2();
- // this.sumTotalFee();
+ this.sumTotalFee();
});
} else {
rows.splice(index, 1);
- //this.sumTotalFee();
+ this.sumTotalFee();
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
this.recountOrderNo2();
}
@@ -1597,14 +1651,16 @@
//鍑犵偣鍙栨秷鐨勬彁绀�
});
},
+ //閲嶆柊璁$畻鎺掑簭
recountOrderNo() {
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- this.applicationDetailArr[i].orderno = i + 1;
+ for (let i = 0; i < this.rbDetails.length; i++) {
+ this.rbDetails[i].orderno = i + 1;
}
},
+ //閲嶆柊璁$畻鎺掑簭
recountOrderNo2() {
- for (let i = 0; i < this.applicationDetailArr2.length; i++) {
- this.applicationDetailArr2[i].orderno = i + 1;
+ for (let i = 0; i < this.rbPayees.length; i++) {
+ this.rbPayees[i].orderno = i + 1;
}
},
@@ -1644,10 +1700,66 @@
});
},
+ //璁$畻涓�琛屽悎璁�
+ //璁$畻褰撳墠琛屾姤閿�鍐呭璐圭敤鍚堣
+ sumRowFee(row) {
+ let totalFee = 0;
+ if (!isNaN(parseFloat(row.trafficexpense))) {
+ totalFee += parseFloat(row.trafficexpense);
+ }
+ if (!isNaN(parseFloat(row.cityfee))) {
+ totalFee += parseFloat(row.cityfee);
+ }
+ if (!isNaN(parseFloat(row.hotelexpense))) {
+ totalFee += parseFloat(row.hotelexpense);
+ }
+ if (!isNaN(parseFloat(row.otherexpense))) {
+ totalFee += parseFloat(row.otherexpense);
+ }
+ if (!isNaN(parseFloat(row.foodexpenses))) {
+ totalFee += parseFloat(row.foodexpenses);
+ }
+ if (!isNaN(parseFloat(row.foodallowance))) {
+ totalFee += parseFloat(row.foodallowance);
+ }
+ if (!isNaN(parseFloat(row.otherfeeamount))) {
+ totalFee += parseFloat(row.otherfeeamount);
+ }
+ row.total = totalFee;
+
+ /*
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].trafficexpense))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].trafficexpense);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].cityfee))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].cityfee);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].hotelexpense))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].hotelexpense);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].otherexpense))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].otherexpense);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].foodexpenses))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].foodexpenses);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].foodallowance))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].foodallowance);
+ }
+ if (!isNaN(parseFloat(this.rbDetails[rowIndex].otherfeeamount))) {
+ totalFee += parseFloat(this.rbDetails[rowIndex].otherfeeamount);
+ }
+ this.rbDetails[rowIndex].total = parseFloat(totalFee).toFixed(2);
+ this.$set(this.rbDetails, rowIndex, this.rbDetails[rowIndex]);
+ */
+ //閲嶆柊璁$畻鏁翠釜鎶ラ攢鍗曠殑鍚堣
+ this.sumTotalFee();
+ },
+
//璁$畻璐圭敤鍚堣
sumTotalFee() {
- // debugger;
let allSum = 0;
+
//鎹愮尞鑰呭灞炶垂鐢�
if (!isNaN(parseFloat(this.form.donoramount))) {
allSum += parseFloat(this.form.donoramount);
@@ -1655,34 +1767,37 @@
//鎶ラ攢鏄庣粏璐圭敤
try {
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
+ for (let i = 0; i < this.rbDetails.length; i++) {
+ /*
let totalFee = 0;
//璁$畻褰撳墠鎶ラ攢鍐呭璐圭敤鍚堣
- if (!isNaN(parseFloat(this.applicationDetailArr[i].trafficexpense))) {
- totalFee += parseFloat(this.applicationDetailArr[i].trafficexpense);
+ if (!isNaN(parseFloat(this.rbDetails[i].total))) {
+ totalFee += parseFloat(this.rbDetails[i].total);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].cityfee))) {
- totalFee += parseFloat(this.applicationDetailArr[i].cityfee);
+ if (!isNaN(parseFloat(this.rbDetails[i].cityfee))) {
+ totalFee += parseFloat(this.rbDetails[i].cityfee);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].hotelexpense))) {
- totalFee += parseFloat(this.applicationDetailArr[i].hotelexpense);
+ if (!isNaN(parseFloat(this.rbDetails[i].hotelexpense))) {
+ totalFee += parseFloat(this.rbDetails[i].hotelexpense);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].otherexpense))) {
- totalFee += parseFloat(this.applicationDetailArr[i].otherexpense);
+ if (!isNaN(parseFloat(this.rbDetails[i].otherexpense))) {
+ totalFee += parseFloat(this.rbDetails[i].otherexpense);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].foodexpenses))) {
- totalFee += parseFloat(this.applicationDetailArr[i].foodexpenses);
+ if (!isNaN(parseFloat(this.rbDetails[i].foodexpenses))) {
+ totalFee += parseFloat(this.rbDetails[i].foodexpenses);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].foodallowance))) {
- totalFee += parseFloat(this.applicationDetailArr[i].foodallowance);
+ if (!isNaN(parseFloat(this.rbDetails[i].foodallowance))) {
+ totalFee += parseFloat(this.rbDetails[i].foodallowance);
}
- if (!isNaN(parseFloat(this.applicationDetailArr[i].otherfeeamount))) {
- totalFee += parseFloat(this.applicationDetailArr[i].otherfeeamount);
+ if (!isNaN(parseFloat(this.rbDetails[i].otherfeeamount))) {
+ totalFee += parseFloat(this.rbDetails[i].otherfeeamount);
}
- this.applicationDetailArr[i].total = parseFloat(totalFee).toFixed(2);
- this.$set(this.applicationDetailArr, i, this.applicationDetailArr[i]);
- if (!isNaN(parseFloat(this.applicationDetailArr[i].total))) {
- allSum += parseFloat(this.applicationDetailArr[i].total);
+ this.rbDetails[i].total = parseFloat(totalFee).toFixed(2);
+ this.$set(this.rbDetails, i, this.rbDetails[i]);
+ */
+
+ if (!isNaN(parseFloat(this.rbDetails[i].total))) {
+ allSum += parseFloat(this.rbDetails[i].total);
}
}
@@ -1691,36 +1806,10 @@
} catch { }
},
- getDetailArr(rbid) {
- getReimbursementdetaillist(rbid).then((res) => {
- this.applicationDetailArr = res.data;
- for (let i = 0; i < this.applicationDetailArr.length; i++) {
- this.applicationDetailArr[i].index = i;
- this.applicationDetailArr[i].searchAddress = {
- sheng: this.applicationDetailArr[i].travelprovincename,
- shi: this.applicationDetailArr[i].travelcityname,
- qu: this.applicationDetailArr[i].traveltownname,
- };
- }
- this.sumTotalFee();
- });
- },
-
- //閲戦澶у啓
+ //閲戦鏁板瓧杞崲鎴愬ぇ鍐�
convertCurrency(money) {
//姹夊瓧鐨勬暟瀛�
- var cnNums = new Array(
- "闆�",
- "澹�",
- "璐�",
- "鍙�",
- "鑲�",
- "浼�",
- "闄�",
- "鏌�",
- "鎹�",
- "鐜�"
- );
+ var cnNums = new Array("闆�", "澹�", "璐�", "鍙�", "鑲�", "浼�", "闄�", "鏌�", "鎹�", "鐜�");
//鍩烘湰鍗曚綅
var cnIntRadice = new Array("", "鎷�", "浣�", "浠�");
//瀵瑰簲鏁存暟閮ㄥ垎鎵╁睍鍗曚綅
--
Gitblit v1.9.3