| | |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="申请日期" prop="createTime"> |
| | | <el-date-picker format="yyyy-MM-dd" @change="selectapplication" value-format="yyyy-MM-dd" |
| | | <el-date-picker format="yyyy-MM-dd" @change="selectapplication" value-format="yyyy-MM-dd HH:mm:ss" |
| | | v-model="createTime" type="daterange" range-separator="至" start-placeholder="申请开始日期" |
| | | end-placeholder="申请结束日期" @keyup.enter.native="flowconclusion"> |
| | | </el-date-picker> |
| | |
| | | <el-col :span="5"> |
| | | <el-form-item label="申请日期" prop="createTime"> |
| | | <!-- <el-input v-model="form.donorno" placeholder="请输入申请日期" /> --> |
| | | <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" |
| | | <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="dundcheck" v-if="dialogType == 'edit'">确认</el-button> |
| | | <el-button type="primary" :loading="checkSubmitLoading" :disabled="checkSubmitLoading" @click="dundcheck" v-if="dialogType == 'edit'">确认</el-button> |
| | | <el-button @click="cancel">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | import { listDept } from "@/api/system/dept"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { setItem, grtItem, removeItem } from "@/utils/storage.js"; |
| | | import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | ], |
| | | data() { |
| | | return { |
| | | checkSubmitLoading: false, |
| | | arrr2: [], |
| | | arrr3: [], |
| | | //费用类型数组 |
| | |
| | | }); |
| | | }, |
| | | dundcheck() { |
| | | if (this.checkSubmitLoading) return; |
| | | // this.$em |
| | | this.dialogOpen = false; |
| | | let checkfundobj = { |
| | |
| | | flowcontent: this.newobj.flowconclusion, |
| | | fundid: this.newobj.fundid |
| | | }; |
| | | this.checkSubmitLoading = true; |
| | | checkfund(checkfundobj).then(res => { |
| | | this.checkSubmitLoading = false; |
| | | if (res.code == 200) { |
| | | this.reset(); |
| | | this.$modal.msgSuccess("审核完成!"); |
| | | this.getlistbypower(); |
| | | } else { |
| | | if (res.msg) { |
| | | this.$modal.msgError("操作失误"); |
| | | } else { |
| | | this.$modal.msgError(res.msg); |
| | | } |
| | | this.$modal.msgError(res.msg || "操作失败"); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | // }); |
| | | }, |
| | | |
| | | //计算总金额 |
| | | //计算总金额(金额一律走精确运算,禁止 parseFloat 累加) |
| | | sumTotalFee() { |
| | | let allSum = 0; |
| | | const detailsArr = []; |
| | | if (this.form.applytype != null) { |
| | | for (let i = 0; i < this.fundDetailArr.length; i++) { |
| | | const detail = this.fundDetailArr[i]; |
| | | let totalFee = 0; |
| | | let taxFee = 0; |
| | | if (this.form.applytype == 1 || this.form.applytype == 2) { |
| | | //计算当前报销内容费用合计 |
| | | if (!isNaN(parseFloat(this.fundDetailArr[i].amount))) { |
| | | totalFee += parseFloat(this.fundDetailArr[i].amount); |
| | | taxFee += parseFloat(this.fundDetailArr[i].amount); |
| | | //计算当前报销内容费用合计:税前 - 扣税 |
| | | if (!isNaN(parseFloat(detail.amount))) { |
| | | totalFee = moneyAdd(totalFee, detail.amount); |
| | | taxFee = moneyAdd(taxFee, detail.amount); |
| | | } |
| | | if (!isNaN(parseFloat(this.fundDetailArr[i].taxamount))) { |
| | | totalFee -= parseFloat(this.fundDetailArr[i].taxamount); |
| | | taxFee -= parseFloat(this.fundDetailArr[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.fundDetailArr[i].price)) && |
| | | !isNaN(parseFloat(this.fundDetailArr[i].quantity)) |
| | | !isNaN(parseFloat(detail.price)) && |
| | | !isNaN(parseFloat(detail.quantity)) |
| | | ) { |
| | | totalFee += |
| | | parseFloat(this.fundDetailArr[i].price) * |
| | | parseFloat(this.fundDetailArr[i].quantity); |
| | | totalFee = moneyMul(detail.price, detail.quantity); |
| | | } |
| | | } |
| | | if (!isNaN(parseFloat(taxFee))) { |
| | | this.fundDetailArr[i].taxedamount = taxFee.toFixed(2); |
| | | this.fundDetailArr[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(); |
| | | }, |
| | | |