From 4c5487bd2d72d1c36942e731c9f3ee83bba031ea Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期三, 10 五月 2023 19:35:38 +0800 Subject: [PATCH] 报销单 --- src/views/project/travelexpenseslist/index.vue | 302 +++++++++++++++++++++++++++----------------------- 1 files changed, 162 insertions(+), 140 deletions(-) diff --git a/src/views/project/travelexpenseslist/index.vue b/src/views/project/travelexpenseslist/index.vue index 5b40667..d70002b 100644 --- a/src/views/project/travelexpenseslist/index.vue +++ b/src/views/project/travelexpenseslist/index.vue @@ -67,35 +67,36 @@ <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> @@ -261,7 +262,7 @@ plain icon="el-icon-plus" size="mini" - @click="adddetailRow" + @click="addDetailRow" >鏂板涓�琛�</el-button > </el-col> @@ -444,8 +445,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="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> @@ -523,8 +524,8 @@ </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> @@ -718,6 +719,10 @@ queryParams2: { persontype: null, arriveAddr: null, + }, + //鏌ヨ浠樻 + queryParamsPayee: { + rbid: null, }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -1215,8 +1220,8 @@ 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 = "娣诲姞鎶ラ攢鐢宠"; }, @@ -1232,21 +1237,14 @@ 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; - } - + //瑙f瀽鍑哄樊鍦板潃 + /* for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].index = i; this.rbDetails[i].searchAddress = { @@ -1255,23 +1253,26 @@ 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 = "淇敼鎶ラ攢鐢宠"; }, /** 鏌ョ湅鎸夐挳鎿嶄綔 */ @@ -1279,13 +1280,16 @@ 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, @@ -1294,6 +1298,7 @@ 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++) { @@ -1306,68 +1311,82 @@ } //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; } //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰� @@ -1379,61 +1398,64 @@ 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("鎶ラ攢鍗曚繚瀛樺け璐ワ紒"); + }); } } }); @@ -1473,7 +1495,7 @@ }, //鏂板涓�琛� - adddetailRow(rowIndex) { + addDetailRow(rowIndex) { let rowData = { //index: this.rbDetails.length, searchAddress: { @@ -1523,7 +1545,7 @@ } }, - addpayeeRow(rowIndex) { + addPayeeRow(rowIndex) { let rowData = { id: null, personType: null, @@ -1546,7 +1568,7 @@ } }, - deleteRow(index, rows, row) { + deleteDetailRow(index, rows, row) { this.$confirm("鏄惁纭鍒犻櫎?", "鎻愮ず", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", @@ -1573,7 +1595,7 @@ }); }, - deleteRow2(index, rows, row) { + deletePayeeRow(index, rows, row) { this.$confirm("鏄惁纭鍒犻櫎?", "鎻愮ず", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", -- Gitblit v1.9.3