| | |
| | | <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | <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>--> |
| | | <el-table-column label="申请时间" width="120" 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> |
| | | <el-table-column label="经办人" width="120" align="center" prop="username"> |
| | | </el-table-column><!-- |
| | | <el-table-column label="出差人" width="180" align="center" prop="travelers"> |
| | | </el-table-column> |
| | | </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="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="250"> |
| | | <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="300"> |
| | | <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> |
| | |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="adddetailRow" |
| | | @click="addDetailRow" |
| | | >新增一行</el-button |
| | | > |
| | | </el-col> |
| | |
| | | </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="adddetailRow(scope.$index)">新增</el-button> |
| | | <el-button @click.native.prevent="deleteRow(scope.$index, rbDetails, 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> |
| | |
| | | </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="addpayeeRow(scope.$index)">新增</el-button> |
| | | <el-button @click.native.prevent="deleteRow2(scope.$index, rbPayees, 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> |
| | |
| | | queryParams2: { |
| | | persontype: null, |
| | | arriveAddr: null, |
| | | }, |
| | | //查询付款 |
| | | queryParamsPayee: { |
| | | rbid: null, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | |
| | | this.fundflowList = []; |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.userno = this.defaultperson.userName; |
| | | this.adddetailRow(); |
| | | this.addpayeeRow(); |
| | | this.addDetailRow(); |
| | | this.addPayeeRow(); |
| | | this.open = true; |
| | | this.title = "添加报销申请"; |
| | | }, |
| | |
| | | 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 ids = response.data.id; |
| | | //获取报销明细信息 |
| | | getReimbursementdetaillist(ids).then((res) => { |
| | | if (res.data.length == 0) { |
| | | return; |
| | | } |
| | | |
| | | this.rbDetails = res.data; |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | // this.rbDetails[i].personname2 = res.data[i].personname; |
| | | } |
| | | |
| | | //解析出差地址 |
| | | /* |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].index = i; |
| | | this.rbDetails[i].searchAddress = { |
| | |
| | | qu: this.rbDetails[i].traveltownname, |
| | | }; |
| | | } |
| | | */ |
| | | //实时合计金额 |
| | | this.sumTotalFee(); |
| | | //this.sumTotalFee(); |
| | | }); |
| | | |
| | | //获取报销打款信息 |
| | | let obj = { rbid: ids }; |
| | | listReimbursementpayee(obj).then((res) => { |
| | | if (res.rows.length == 0) { |
| | | return; |
| | | } |
| | | this.rbPayees = res.rows; |
| | | console.log("listReimbursementpayee", res.rows); |
| | | }); |
| | | //获取报销打款信息 |
| | | queryParamsPayee.rbid=response.data.id; |
| | | console.log("rbPayees11111 ", queryParamsPayee); |
| | | listReimbursementpayee(queryParamsPayee).then((res) => { |
| | | console.log("rbPayees", res); |
| | | this.rbPayees = res.data.rows; |
| | | }); |
| | | }); |
| | | |
| | | //默认存在一行 |
| | | this.adddetailRow(); |
| | | this.addpayeeRow(); |
| | | this.addDetailRow(); |
| | | this.addPayeeRow(); |
| | | |
| | | this.open = true; |
| | | this.title = "修改报销申请"; |
| | | }, |
| | | |
| | | /** 查看按钮操作 */ |
| | |
| | | this.dialogType = "detail"; |
| | | this.reset(); |
| | | 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, |
| | |
| | | listFundflow(listFundflowparams).then((res) => { |
| | | this.fundflowList = res.rows; |
| | | }); |
| | | //报销明细 |
| | | getReimbursementdetaillist(ids).then((res) => { |
| | | this.rbDetails = res.data; |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | |
| | | } |
| | | //this.sumTotalFee(); |
| | | }); |
| | | |
| | | //账户 |
| | | getReimbursementpayeelist(ids).then((res) => { |
| | | this.rbPayees = res.data; |
| | | }); |
| | | |
| | | }); |
| | | |
| | | this.open = true; |
| | | this.title = "查看报销申请"; |
| | | }, |
| | | |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | 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; |
| | | } |
| | | }); |
| | | /** |
| | | 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; |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | | //校验请款金额合计是否等于报销单金额 |
| | |
| | | return; |
| | | } |
| | | |
| | | |
| | | const rbDetails = [...this.rbDetails] |
| | | const rbPayees = [...this.rbPayees] |
| | | if (this.form.id != null) { |
| | | //rbid主表Id,方便后面关联主表 |
| | | let rbid = this.form.id; |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].rbid = rbid; |
| | | } |
| | | updateReimbursement(this.form).then((response) => { |
| | | addOrupdateReimbursementdetaillist(this.rbDetails).then((response) => { |
| | | //更新支付表信息 |
| | | for (let i = 0; i < this.rbPayees.length; i++) { |
| | | this.rbPayees[i].rbid = rbid; |
| | | } |
| | | //addOrUpdateRBpayee(this.rbPayees); |
| | | for (let i = 0; i < this.rbPayees.length; i++) { |
| | | if (this.rbPayees[i].rbid != null) { |
| | | updateReimbursementpayee(this.rbPayees[i]); |
| | | } else { |
| | | addReimbursementpayee(this.rbPayees[i]); |
| | | } |
| | | } |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | }).catch(err => { |
| | | console.log(err); |
| | | }) |
| | | } else { |
| | | this.form.recordstatus = -1; |
| | | const rbDetails = [...this.rbDetails] |
| | | const rbPayees = [...this.rbPayees] |
| | | addReimbursement(this.form).then((response) => { |
| | | //保存明细 |
| | | for (let i = 0; i < rbDetails.length; i++) { |
| | | rbDetails[i].rbid = response.data; |
| | | if (rbDetails[i].rbid != null) { |
| | | updateReimbursementdetail(rbDetails[i]); |
| | | } else { |
| | | //rbid关联主表Id |
| | | rbDetails[i].rbid = this.form.id; |
| | | addReimbursementdetail(rbDetails[i]); |
| | | } |
| | | } |
| | | addOrupdateReimbursementdetaillist(rbDetails).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | listReimbursementdetailid().then((res) => { |
| | | let id = res.data; |
| | | for (let i = 0; i < rbDetails.length; i++) { |
| | | rbDetails[i].rbid = id; |
| | | addReimbursementdetail(rbDetails[i]); |
| | | } |
| | | |
| | | for (let i = 0; i < rbPayees.length; i++) { |
| | | rbPayees[i].rbid = id; |
| | | } |
| | | //addOrUpdateRBpayee(rbPayees); |
| | | addReimbursementpayee(rbPayees); |
| | | }) |
| | | }) |
| | | }) |
| | | //保存账户 |
| | | 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(); |
| | | |
| | | }).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 = id; |
| | | addReimbursementpayee(rbPayees[i]); |
| | | } |
| | | |
| | | this.$modal.msgSuccess("报销单修改成功!"); |
| | | this.open = false; |
| | | this.getList(); |
| | | |
| | | }).catch(err => { |
| | | this.$modal.msgError("报销单保存失败!"); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | |
| | | }, |
| | | |
| | | //新增一行 |
| | | adddetailRow(rowIndex) { |
| | | addDetailRow(rowIndex) { |
| | | let rowData = { |
| | | //index: this.rbDetails.length, |
| | | searchAddress: { |
| | |
| | | } |
| | | }, |
| | | |
| | | addpayeeRow(rowIndex) { |
| | | addPayeeRow(rowIndex) { |
| | | let rowData = { |
| | | id: null, |
| | | personType: null, |
| | |
| | | } |
| | | }, |
| | | |
| | | deleteRow(index, rows, row) { |
| | | deleteDetailRow(index, rows, row) { |
| | | this.$confirm("是否确认删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | |
| | | }); |
| | | }, |
| | | |
| | | deleteRow2(index, rows, row) { |
| | | deletePayeeRow(index, rows, row) { |
| | | this.$confirm("是否确认删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |