From 11b3fee3b15e3facf39e5ce9570b65b838b919c4 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期三, 11 十月 2023 17:16:04 +0800 Subject: [PATCH] yxh --- src/views/project/travelexpenseapply/travelexpensedetail/index.vue | 268 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 176 insertions(+), 92 deletions(-) diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue index 19f6b8a..4373323 100644 --- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue +++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue @@ -84,7 +84,7 @@ /> </el-form-item> </el-col> - <el-col :span="10"> + <el-col :span="7"> <el-form-item label="澶у啓閲戦" prop="bigstrmoney"> <el-input :disabled="true" @@ -92,7 +92,7 @@ placeholder="鎶ラ攢澶у啓閲戦" /> </el-form-item> </el-col - ><el-col :span="5"> + ><el-col :span="4"> <el-form-item label="瀹℃牳鐘舵��" prop="flowlevel"> <el-select v-model="form.recordstatus" @@ -107,6 +107,23 @@ :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="5"> + <el-form-item label="棰勫鐘舵��" prop="infoid"> + <el-select + v-model="form.checkstatus" + filterable + placeholder="璇烽�夋嫨棰勫鐘舵��" + > + <el-option + v-for="item in baselisttages" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> </el-select> </el-form-item> </el-col> @@ -900,6 +917,25 @@ v-if="operationType == 'check'" > <el-col :span="7"> + <el-form-item label="棰勫鐘舵��" prop="infoid"> + <el-radio-group + v-model="form.checkstatus" + align="left" + :disabled="userprofile.nickName != '闄堟厱鍗�'" + > + <el-radio label="1">寰呴瀹�</el-radio> + <el-radio label="2">棰勫閫氳繃绛夊緟鏉愭枡</el-radio> + <el-radio label="3">宸叉敹鍒版姤閿�鏉愭枡</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + + <el-row + style="margin-top: 25px; margin-bottom: 5px" + v-if="operationType == 'check'" + > + <el-col :span="7"> <el-form-item label="瀹℃牳缁撴灉" align="left"> <el-radio-group v-model="checkObj.flowlevelone" align="left"> <el-radio label="1">閫氳繃</el-radio> @@ -920,13 +956,13 @@ <el-button type="primary" @click="submitForm" - v-if="operationType == 'edit'" + v-if="operationType == 'edit' || beforehandType == '1'" >淇� 瀛�</el-button > <el-button type="primary" @click="checksubmit" - v-if="operationType == 'check'" + v-if="operationType == 'check' && beforehandType != '1'" >鎻� 浜�</el-button > <!--<el-button @click="cancel">閫� 鍑�</el-button>--> @@ -941,6 +977,35 @@ :visible.sync="pdfVisible" width="60%" > + <div> + <el-table :data="tableDatatop" style="width: 100%"> + <el-table-column prop="orderno" label="搴忓彿"> </el-table-column> + <el-table-column prop="personname" label="璐圭敤浜哄憳"> + </el-table-column> + <el-table-column prop="starttime" label="寮�濮嬫棩鏈�"> </el-table-column> + <el-table-column prop="endtime" label="缁撴潫鏃ユ湡"> </el-table-column> + <el-table-column prop="departure" label="鍑哄彂鍦�"> </el-table-column> + <el-table-column prop="destination" label="鍒拌揪鍦�"> </el-table-column> + <el-table-column prop="days" label="澶╂暟"> </el-table-column> + </el-table> + <el-table :data="tableDatatop" style="width: 100%"> + <el-table-column prop="traffictype" label="鍑哄彂浜ら�氬伐鍏�"> + </el-table-column> + <el-table-column prop="traffictype2" label="杩斿洖浜ら�氬伐鍏�"> + </el-table-column> + <el-table-column prop="trafficexpense" label="浜ら�氳垂"> + </el-table-column> + <el-table-column prop="cityfee" label="甯傚唴浜ら�氳垂"> </el-table-column> + <el-table-column prop="hotelexpense" label="浣忓璐�"> + </el-table-column> + <el-table-column prop="foodallowance" label="浼欓琛ュ姪"> + </el-table-column> + <el-table-column prop="otherexpense" label="鍏潅璐硅ˉ鍔�"> + </el-table-column> + <el-table-column prop="otherfeeamount" label="鍏朵粬璐圭敤"> + </el-table-column> + </el-table> + </div> <div class="pdfimg"> <div class="box-pdf"> <div> @@ -1020,7 +1085,7 @@ </div> <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin"> - <!-- <img :src="pdfimg" /> --> + <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="pdfimg" @@ -1060,7 +1125,8 @@ import { listReimbursementpayee, addReimbursementpayee, - updateReimbursementpayee + updateReimbursementpayee, + delReimbursementpayee } from "@/api/project/reimbursementpayee"; import { listReimbursement, @@ -1185,10 +1251,19 @@ starttime: null, endtime: null }, + tableDatatop: [ + { + date: "2016-05-02", + name: "鐜嬪皬铏�", + address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�" + } + ], //鏌ヨ浠樻 queryParamsPayee: { rbid: null }, + // 褰撳墠鐢ㄦ埛淇℃伅 + userprofile: {}, // 琛ㄥ崟鍙傛暟 form: {}, reimbursementList: [], @@ -1216,6 +1291,20 @@ rbDetails: [], rbPayees: [], arrr2: [], + baselisttages: [ + { + id: 1, + name: "寰呴瀹�" + }, + { + id: 2, + name: "棰勫閫氳繃绛夊緟鏉愭枡" + }, + { + id: 3, + name: "宸叉敹鍒版姤閿�鏉愭枡" + } + ], baselist: [], donatorList: [], standardlevel: 0, @@ -1233,7 +1322,7 @@ persontype: null, //鍒拌揪鍦� arriveAddr: null, - + beforehandType: null, headers: { Authorization: "Bearer " + getToken() }, @@ -1262,6 +1351,7 @@ //鑾峰彇鐧诲綍鑰呬俊鎭� getUserProfile().then(response => { + this.userprofile = response.data; this.defaultperson = response.data; this.standardlevel = response.data.standardlevel; console.log("this.defaultperson", this.defaultperson); @@ -1289,10 +1379,13 @@ }, mounted() { + window.addEventListener("beforeunload", e => this.beforeunloadHandler(e)); + //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪� let curId = this.$route.query.id; let pos = this.$route.query.pos; this.defaultperson = this.$route.query.routerparam; + this.beforehandType = this.$route.query.beforehandType; if (pos == 1) { this.handleAdd(curId); } else if (pos == 2) { @@ -1308,8 +1401,29 @@ this.$refs["table"].doLayout(); }); }, + destroyed() { + window.removeEventListener("beforeunload", e => this.beforeunloadFn(e)); + }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴� methods: { + // 娴忚鍣ㄩ〉闈㈠叧闂垨鍒锋柊鎻愮ず + beforeunloadHandler(e) { + if ( + (JSON.stringify(this.form) == sessionStorage.getItem("apiform") && + JSON.stringify(this.rbDetails) == + sessionStorage.getItem("apifunddetail")) || + !sessionStorage.getItem("apifunddetail") + ) { + } else { + this._beforeUnload_time = new Date().getTime(); + e = e || window.event; + if (e) { + e.returnValue = "鍏抽棴鎻愮ず"; + } + return "鍏抽棴鎻愮ず"; + } + }, + handleUploadError() {}, // 鑾峰彇璇锋眰澶� Getnetworkheader() { @@ -1350,8 +1464,9 @@ this.pdfimgsrcList.push( this.Networkheader + "/prod-api" + response.fileName ); + console.log(this.pdfimgsrcList); + this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�"; this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; - this.rbDetails[this.atpresent].annexfilesList = this.fileListto; } else { console.log(response.msg); @@ -1359,6 +1474,10 @@ }, // 鐐瑰嚮绁ㄦ嵁 Filepopup(index, rows, row) { + this.tableDatatop = []; + this.pdfimgsrcList = []; + this.tableDatatop.push(row); + // console.log(row); this.atpresent = index; this.pdfVisible = true; console.log(this.rbDetails[index]); @@ -1367,12 +1486,12 @@ this.fileListto = this.rbDetails[index].annexfilesList; console.log(this.fileListto); this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url; - this.pdfimgsrcList = []; this.fileListto.forEach(item => { this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url); }); console.log(this.pdfimgsrcList); console.log(this.pdfimg); + this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�"; } else { this.fileListto = []; this.pdfimg = ""; @@ -1383,7 +1502,8 @@ // 鐐瑰嚮宸蹭笂浼犳枃浠� downFile(item) { console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem"); - this.pdftitle = item.name; + this.pdftitle = + "鍏�" + this.pdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮"); @@ -1856,12 +1976,15 @@ //鑾峰彇鎶ラ攢涓讳俊鎭� getReimbursement(curId).then(response => { this.form = response.data; + this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; + sessionStorage.removeItem("apiform"); + sessionStorage.setItem("apiform", JSON.stringify(this.form)); //鑾峰彇鎶ラ攢鏄庣粏淇℃伅 getReimbursementdetaillist(curId).then(res => { @@ -1870,20 +1993,16 @@ if (this.rbDetails.length == 0) { this.addDetailRow(0); } - //瀹炴椂鍚堣閲戦 //this.sumTotalFee(); for (let i = 0; i < this.rbDetails.length; i++) { this.sumRowFee(this.rbDetails[i]); - //瑙f瀽鍑哄樊鍦板潃 - /* - this.rbDetails[i].index = i; - this.rbDetails[i].searchAddress = { - sheng: this.rbDetails[i].travelprovincename, - shi: this.rbDetails[i].travelcityname, - qu: this.rbDetails[i].traveltownname, - }; */ } + sessionStorage.removeItem("apifunddetail"); + sessionStorage.setItem( + "apifunddetail", + JSON.stringify(this.rbDetails) + ); }); //鑾峰彇鎶ラ攢鎵撴淇℃伅 @@ -1965,6 +2084,8 @@ this.addPayeeRow(0); } }); + sessionStorage.removeItem("apiform"); + sessionStorage.setItem("apiform", JSON.stringify(this.form)); }); }, @@ -1980,6 +2101,7 @@ getReimbursement(id).then(response => { this.form = response.data; + //绁ㄦ嵁 this.fileListto = this.form.annexfiles ? this.form.annexfiles @@ -2029,11 +2151,17 @@ this.addPayeeRow(0); } }); + sessionStorage.removeItem("apiform"); + sessionStorage.setItem("apiform", JSON.stringify(this.form)); }); }, //鎻愪氦瀹℃牳鎰忚 checksubmit() { + if (this.form.checkstatus != 3 && this.userprofile.nickName == "闄堟厱鍗�") { + this.$modal.msgError("璇风‘璁ゆ敹鍒版潗鏂欏悗鍐嶆彁浜ゅ鏍革紒"); + return; + } let checkfundobj = { flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion, @@ -2063,75 +2191,16 @@ submitForm: debounce(function(data) { this.$refs["form"].validate(valid => { if (valid) { - // idisabled=true; - /** - 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; - } - - //璐圭敤褰掑睘 - 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; - } - */ - //绁ㄦ嵁鏂囦欢澶勭悊 + const addnumber = this.rbPayees.reduce( + (amount, item) => amount + Number(item.amount), + 0 + ); let list = this.fileListto; console.log(list); //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰� - if ( - this.form.amountrequested != - this.rbPayees.reduce( - (amount, item) => amount + Number(item.amount), - 0.0 - ) - ) { + if (this.form.amountrequested != addnumber) { this.$message({ message: "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�", @@ -2197,6 +2266,11 @@ rbPayees[i].rbid = response.data; addReimbursementpayee(rbPayees[i]); } + sessionStorage.setItem( + "apifunddetail", + JSON.stringify(this.rbDetails) + ); + sessionStorage.setItem("apiform", JSON.stringify(this.form)); this.$modal.msgSuccess("鏂板鎶ラ攢鍗曚繚瀛樻垚鍔�!"); this.open = false; @@ -2255,6 +2329,11 @@ this.Savereminder = false; this.Reminderquantity = 0; this.totalquantity = 0; + const addnumber = this.rbPayees.reduce( + (amount, item) => amount + Number(item.amount), + 0 + ); + console.log(addnumber, "addnumber"); this.$refs["form"].validate(valid => { if (valid) { //绁ㄦ嵁鏂囦欢澶勭悊 @@ -2262,13 +2341,7 @@ console.log(list); //鏍¢獙璇锋閲戦鍚堣鏄惁绛変簬鎶ラ攢鍗曢噾棰� - if ( - this.form.amountrequested != - this.rbPayees.reduce( - (amount, item) => amount + Number(item.amount), - 0.0 - ) - ) { + if (this.form.amountrequested != addnumber) { this.$message({ message: "鎶ラ攢璇锋琛ㄤ腑鍚堣閲戦涓嶇瓑浜庢姤閿�鍗曠殑鎶ラ攢閲戦锛岃鏇存鍚庡啀淇濆瓨锛�", @@ -2342,6 +2415,8 @@ //鏂板涓�琛� addDetailRow(rowIndex) { + console.log(rowIndex); + let rowData = { //index: this.rbDetails.length, searchAddress: { @@ -2356,6 +2431,8 @@ endtime: null, destination: null, days: null, + persontype: null, + personname: null, trafficexpense: 0, traffictype: null, traffictype2: null, @@ -2379,9 +2456,14 @@ total: 0, orderno: null, personname2: null, - personname: null, destination: null }; + if (this.rbDetails.length) { + console.log(this.rbDetails[rowIndex].persontype); + console.log(this.rbDetails[rowIndex].personname); + rowData.persontype = this.rbDetails[rowIndex].persontype; + rowData.personname = this.rbDetails[rowIndex].personname; + } // if (this.Reminderquantity >= 5) { // this.Savereminder = true; // return; @@ -2462,8 +2544,10 @@ }) .then(() => { console.log(row); + let arrow = []; + arrow.push(row.id); if (row.id !== null) { - delReimbursementdetail(row.id).then(res => { + delReimbursementpayee(arrow).then(res => { this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); rows.splice(index, 1); this.recountOrderNo2(); -- Gitblit v1.9.3