| | |
| | | > |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.donorname" |
| | | v-model="queryParams.name" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | size="small" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="申请材料状态" |
| | | label="材料预审状态" |
| | | width="140" |
| | | align="center" |
| | | prop="checkstatus" |
| | |
| | | /> |
| | | </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="操作" |
| | |
| | | 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> |
| | |
| | | </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中心签字" /> |
| | |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> |
| | | </el-row> |
| | | --> |
| | | <el-row> |
| | |
| | | getdownloadYX, |
| | | getdownloadBX, |
| | | addorupdateFund, |
| | | getdetailsByItemId |
| | | getdetailsByItemId, |
| | | validateExpertFee |
| | | } from "@/api/project/fund"; |
| | | |
| | | import { |
| | |
| | | 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引入的组件需要注入到对象中才能使用 |
| | |
| | | } |
| | | this.fundDetails[i] = tempDetail; |
| | | /* |
| | | //计算个税 |
| | | //计算个税 |
| | | //if (isNaN(parseFloat(tempDetail.taxedamount))) |
| | | //获取参数 |
| | | this.taxParam.beneficiaryNo = tempDetail.beneficiaryno; |
| | |
| | | // }); |
| | | } |
| | | |
| | | 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 阻断保存,保留窗口让经办人先修正 |
| | | 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; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | 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; |
| | |
| | | //计算个税 |
| | | 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); |
| | | //计算当前报销内容费用合计:税前 - 扣税 |
| | | 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); |
| | | // 合计仍在确认口径后启用;先保证计算本身是精确的 |
| | | // this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2); |
| | | // this.$forceUpdate(); |
| | | }, |
| | | |
| | |
| | | } |
| | | }, |
| | | rowClassName({ row, column, rowIndex, columnIndex }) { |
| | | if (row.recordstatus == -1 && row.backflowlevel >= 0) { |
| | | if (row.recordstatus == -1 && row.backflowlevel != null) { |
| | | return "error-row"; |
| | | } |
| | | return ""; |
| | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | /* @import url(); 引入公共css类 */ |
| | | .button-delete{ |
| | | .button-delete { |
| | | color: rgb(236, 69, 69); |
| | | } |
| | | ::v-deep.el-table .error-row { |