From 0e10e10157b90002b99996914eaf1e5574924ddf Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 12 十月 2026 11:15:50 +0800
Subject: [PATCH] 修改了报销校验
---
src/views/project/fund/expertFeeApply/index.vue | 224 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 151 insertions(+), 73 deletions(-)
diff --git a/src/views/project/fund/expertFeeApply/index.vue b/src/views/project/fund/expertFeeApply/index.vue
index 5813975..52f172e 100644
--- a/src/views/project/fund/expertFeeApply/index.vue
+++ b/src/views/project/fund/expertFeeApply/index.vue
@@ -20,7 +20,7 @@
>
<el-form-item label="濮撳悕" prop="name">
<el-input
- v-model="queryParams.donorname"
+ v-model="queryParams.name"
placeholder="璇疯緭鍏ュ鍚�"
clearable
size="small"
@@ -133,6 +133,7 @@
v-loading="loading"
border
:data="donateconsolationfundList"
+ :row-class-name="rowClassName"
>
<el-table-column
label="鐢宠鏃ユ湡"
@@ -189,7 +190,7 @@
</template>
</el-table-column>
<el-table-column
- label="鐢宠鏉愭枡鐘舵��"
+ label="鏉愭枡棰勫鐘舵��"
width="140"
align="center"
prop="checkstatus"
@@ -201,10 +202,10 @@
/>
</template>
</el-table-column>
- <!--
- <el-table-column label="鐢宠閲戦" align="center" prop="amountrequested" width="120px" />
+ <!--
+ <el-table-column label="鐢宠閲戦" align="center" prop="amountrequested" width="120px" />
<el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phone" width="150px" />
- <el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="220px" />
+ <el-table-column label="宸ヤ綔鍗曚綅" align="center" prop="unitname" width="220px" />
-->
<el-table-column
label="鎿嶄綔"
@@ -251,9 +252,10 @@
"
size="mini"
type="text"
- icon="el-icon-delete"
@click="handleDelete(scope.row)"
- >鍒犻櫎</el-button
+ ><span class="button-delete"
+ ><i class="el-icon-delete"></i>鍒犻櫎</span
+ ></el-button
>
<!-- v-hasPermi="['project:expretfund:delete']" -->
<!-- <el-button
@@ -264,6 +266,25 @@
>涓嬭浇</el-button
> -->
<!-- v-hasPermi="['project:expretfund:download']" -->
+ </template>
+ </el-table-column>
+ <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>
@@ -296,8 +317,8 @@
clearable
style="width: 100%"
v-model="form.applyTime"
- type="date"
- value-format="yyyy-MM-dd HH:mm:ss"
+ type="date" format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
placeholder="鐢宠鏃ユ湡"
>
</el-date-picker>
@@ -756,21 +777,23 @@
type="text"
size="small"
>
- 鍒犻櫎
+ <span class="button-delete"
+ ><i class="el-icon-delete"></i>鍒犻櫎</span
+ >
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<!--
- <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-row>
- <el-row>
+ </el-col>
+ </el-row>
+ <el-row>
<el-col :span="7">
<el-form-item label="OPO涓績绛惧瓧" prop="opochecker">
<el-input v-model="form.opochecker" placeholder="opo涓績绛惧瓧" />
@@ -1003,7 +1026,7 @@
:value="dict.value"></el-option>
</el-select>
</el-form-item>
- </el-col>
+ </el-col>
</el-row>
-->
<el-row>
@@ -1089,7 +1112,8 @@
getdownloadYX,
getdownloadBX,
addorupdateFund,
- getdetailsByItemId
+ getdetailsByItemId,
+ validateExpertFee
} from "@/api/project/fund";
import {
@@ -1131,12 +1155,12 @@
updateExternalperson,
exportExternalperson
} from "@/api/project/externalperson";
-
import { getUserProfile } from "@/api/system/user";
import Li_area_select from "@/components/Address";
import OrgSelecter from "@/views/project/components/orgselect";
import elementIcons from "../../../components/icons/element-icons";
import { getToken } from "@/utils/auth";
+import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
export default {
//import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -1374,6 +1398,17 @@
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);
+ }
+ });
+ },
/** 鏂板鎸夐挳鎿嶄綔 */
handleAdd() {
@@ -1586,7 +1621,18 @@
//鍒ゆ柇鏄惁瀛樺湪涓婃姤璁板綍
row.recordstatus = 0;
var currenttime = new Date();
- row.applyTime = currenttime.getFullYear() + "-" + (currenttime.getMonth()+1) + "-" + currenttime.getDate() + " " + currenttime.getHours() + ":" + currenttime.getMinutes() + ":" + currenttime.getSeconds();
+ row.applyTime =
+ currenttime.getFullYear() +
+ "-" +
+ (currenttime.getMonth() + 1) +
+ "-" +
+ currenttime.getDate() +
+ " " +
+ currenttime.getHours() +
+ ":" +
+ currenttime.getMinutes() +
+ ":" +
+ currenttime.getSeconds();
updateFund(row).then(response => {
if (response.code == 200) {
@@ -1701,7 +1747,7 @@
}
this.fundDetails[i] = tempDetail;
/*
- //璁$畻涓◣
+ //璁$畻涓◣
//if (isNaN(parseFloat(tempDetail.taxedamount)))
//鑾峰彇鍙傛暟
this.taxParam.beneficiaryNo = tempDetail.beneficiaryno;
@@ -1780,21 +1826,37 @@
// });
}
- addorupdateFund(this.form).then(response => {
- if (response.code === 200) {
- this.selectDonotor(this.curCase);
- this.$modal.msgSuccess("涓撳鍔冲姟璐逛繚瀛樻垚鍔燂紒");
- } else {
- this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
- }
- });
+ // 淇濆瓨鍓嶅厛鍋氫笓瀹跺姵鍔¤垂 9 鏉¤垂鐢ㄦ帶鍒舵牎楠岋紙鍚屼竴妗堜緥绱锛�
+ validateExpertFee(this.form).then(valid => {
+ const errors = (valid && valid.errors) || [];
+ const warnings = (valid && valid.warnings) || [];
- //鍏抽棴绐楀彛
- this.loading = false;
- this.dialogOpen = false;
- // this.getfundList();
- this.getList();
- this.selectDonotor(this.curCase);
+ // warnings锛堣鍒� 5銆�6锛変粎鎻愮ず锛屼笉闃绘柇淇濆瓨
+ if (warnings.length > 0) {
+ this.$modal.msgWarning(warnings.join("锛�"));
+ }
+
+ // errors 闃绘柇淇濆瓨锛屼繚鐣欑獥鍙h缁忓姙浜哄厛淇
+ if (errors.length > 0) {
+ this.$modal.msgError(errors.join("锛�"));
+ this.loading = false;
+ return;
+ }
+
+ addorupdateFund(this.form).then(response => {
+ if (response.code === 200) {
+ //鍏抽棴绐楀彛
+ this.loading = false;
+ this.dialogOpen = false;
+ this.selectDonotor(this.curCase);
+ this.$modal.msgSuccess("涓撳鍔冲姟璐逛繚瀛樻垚鍔燂紒");
+ this.getList();
+ } else {
+ this.$modal.msgError("涓撳鍔冲姟璐逛繚瀛樺け璐ワ細" + response.msg);
+ this.loading = false;
+ }
+ });
+ });
}
});
},
@@ -1984,7 +2046,7 @@
this.standardlevel = response.data.standardlevel;
if (
this.defaultperson.createBy == "admin" ||
- this.defaultperson.createBy == "001" ||
+ this.defaultperson.createBy == "053" ||
this.defaultperson.createBy == "002"
) {
this.ismanager = true;
@@ -2407,43 +2469,34 @@
//璁$畻涓◣
calculateTax() {},
- //璁$畻鎬婚噾棰�
+ //璁$畻鎬婚噾棰濓紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛�
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);
}
- 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);
}
} 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);
- // }
-
- allSum += totalFee;
+ detailsArr.push(totalFee);
}
}
- // this.form.amountrequested = allSum.toFixed(2);
+ // 鍚堣浠嶅湪纭鍙e緞鍚庡惎鐢紱鍏堜繚璇佽绠楁湰韬槸绮剧‘鐨�
+ // this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2);
// this.$forceUpdate();
},
@@ -2484,22 +2537,35 @@
//涓撳璐瑰姵鍔℃墦鍗�
dayin(id) {
getdownloadLW(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);
});
- }
});
},
@@ -2557,10 +2623,22 @@
} else {
console.log(response.msg);
}
+ },
+ 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