src/views/project/fund/applyDetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseapply/travelexpensedetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/project/fund/applyDetail/index.vue
@@ -361,23 +361,6 @@ : "点击选择" }}</el-button > <!-- <el-select filterable allow-create ref="getReportname" default-first-option @change="selectExpert(scope.row)" v-model="scope.row.beneficiaryname" placeholder="请选择" > <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > </el-option> </el-select> --> </template> </el-table-column> <el-table-column @@ -570,47 +553,7 @@ </el-table-column> </el-table> </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 :span="7"> <el-form-item label="OPO中心签字" prop="opochecker"> <el-input v-model="form.opochecker" placeholder="opo中心签字" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="财务副院长" prop="finvicepresident"> <el-input v-model="form.finvicepresident" placeholder="财务副院长" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="业务副院长" prop="busvicepresident"> <el-input v-model="form.busvicepresident" placeholder="业务副院长" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="办公室主任" prop="officedirector"> <el-input v-model="form.officedirector" placeholder="请输入办公室主任" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="财务部负责人" prop="financedirector"> <el-input v-model="form.financedirector" placeholder="请输入财务部负责人" /> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="财务审核" prop="financechecher"> <el-input v-model="form.financechecher" placeholder="请输入财务审核" /> </el-form-item> </el-col> </el-row> --> <el-row> <el-col :span="12"> <el-form-item @@ -1001,18 +944,7 @@ </el-form-item> </el-col> </el-row> <!-- <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="人员类别" prop="usertype" label-width="80px"> <el-select v-model="funddetailForm.usertype" placeholder="必填项"> <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </el-select> </el-form-item> </el-col> </el-row> --> <el-row v-if="businessType != 4 && businessType != 3"> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item @@ -1157,106 +1089,208 @@ </el-table-column> </el-table> </div> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将票据拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em <el-tabs style="margin-top: 20px;" v-model="activeName" type="border-card" @tab-click="handleClick" > <el-tab-pane label="普通附件" :name="1"> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将票据拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em > </div> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> </div> <!-- <div class="el-upload__tip" slot="tip"> 只能上传jpg/png文件,且不超过500kb </div> --> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400" </div> <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="pdfimg" :preview-src-list="pdfimgsrcList" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> <!-- <div slot="error" class="image-slot"> <i class="el-icon-picture-outline"></i> </div> --> </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> <!-- <div class="pdftit" @click="pdffn(item)" v-for="item in fileList" :key="item.name" > {{ item.name }} </div> --> </div> </el-tab-pane> <el-tab-pane label="发票文件" :name="2"> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="invoicefileList" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将发票文件拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em > </div> </el-upload> <el-table :data="invoicefileListto" @row-click="downFile" style="width: 100%" height="400" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin"> <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="pdfimg" :preview-src-list="pdfimgsrcList" > </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> </div> </div> <div v-if="this.previewpdf && invoicepdfimgsrcList.length" class="pdfimgmin" > <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="invoicepdfimg" :preview-src-list="invoicepdfimgsrcList" > <!-- <div slot="error" class="image-slot"> <i class="el-icon-picture-outline"></i> </div> --> </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div></el-tab-pane > </el-tabs> </el-dialog> <el-dialog title="提示" :visible.sync="Savereminder" width="30%"> <el-alert @@ -1626,6 +1660,12 @@ //附件列表 fileList: [], fileListto: [], invoicefileList: [], invoicefileListto: [], invoicepdfimg: "", invoicepdfimgsrcList: [], invoDatatop: [], activeName: 1, //文件类型 //上传附件路径 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", //文件上传token @@ -2042,9 +2082,6 @@ this.$refs["form"].validate(valid => { if (valid) { this.formData = this.form; // let totalPreTaxAmount = 0.0; // let totalAfterTaxAmount = 0.0; // let totalAmount = 0.0; //保存前校验数据 for (let k = 0; k < this.rbDetails.length; k++) { @@ -2102,7 +2139,6 @@ } //附件处理 let list = this.fileList; // if (list.length > 0) { // this.form.annexfiles = list.map(item => item.url).join(","); // } @@ -2580,26 +2616,6 @@ }); }, selectExpert(row) { // if(row.beneficiaryname) this.personlist.map(res => { if (row.beneficiaryname == res.username) { row.beneficiaryno = res.userno; row.beneficiaryname = res.username; row.bankcardno = res.bankcardno; row.branchbankname = res.branchbankname; row.depositbank = res.depositbank; row.idcardno = res.idcardno; row.phone = res.phonenumber; row.title = res.title; row.unitname = res.unitname; row.unitno = res.unitno; } else { row.beneficiaryno = row.beneficiaryname; } }); }, //计算个税:type(A:已知税前金额,计算税后金额;B:已知税后金额,计算税前金额) calculateTax(row, type) { let targetValue = 0; @@ -2611,30 +2627,6 @@ } console.log(targetValue, "合计"); this.form.pretaxcost = targetValue; //if (isNaN(parseFloat(tempDetail.taxedamount))) //获取参数 // this.taxParam.beneficiaryNo = row.beneficiaryno; // this.taxParam.startTime = this.form.createTime.substring(0, 10); // if (type == "A") { // // 计算个税、税后金额 // this.taxParam.money = row.amount.toString(); // getTaxByBeneFiciaryNo(this.taxParam).then(res => { // if (res.code == 200) { // row.taxamount = res.data; // row.taxedamount = row.amount - row.taxamount; // } // }); // } else { // // 计算税前、个税金额 // this.taxParam.money = row.taxedamount.toString(); // getTaxBeforeByAfterMoney(this.taxParam).then(res => { // if (res.code == 200) { // row.taxamount = res.data.nowTax; // row.amount = parseFloat(res.data.nowTaxBeforeMoney); // } // }); // } }, //导入所有项目 @@ -2718,9 +2710,6 @@ this.$refs["form"].validate(valid => { if (valid) { this.formData = this.form; // let totalPreTaxAmount = 0.0; // let totalAfterTaxAmount = 0.0; // let totalAmount = 0.0; //保存前校验数据 for (let k = 0; k < this.rbDetails.length; k++) { @@ -2768,12 +2757,6 @@ // tempDetail.unitname = tempDetail.unitno; // } } //附件处理 let list = this.fileList; // if (list.length > 0) { // this.form.annexfiles = list.map(item => item.url).join(","); // } //处理明细 for (let i = 0; i < this.rbDetails.length; i++) { @@ -3249,39 +3232,59 @@ handleUploadError() {}, remove(file, fileList) { const rbDetails = [...this.rbDetails]; this.fileListto.splice(this.fileListto.indexOf(file), 1); rbDetails[this.atpresent].annexfilesList = this.fileListto; if (this.activeName == 1) { this.fileListto.splice(this.fileListto.indexOf(file), 1); rbDetails[this.atpresent].annexfilesList = this.fileListto; } else { this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1); rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto; } }, //文件上传成功回调 // uploadSccess(response, file, fileList) { // //获取附件信息位置 // if (response.code == 200) { // this.form.filename = file.raw.name; // this.$modal.msgSuccess(response.msg); // this.fileList.push({ name: response.fileName, url: response.fileName }); // } else { // } // }, uploadSccess(response, file, fileList) { this.rbDetails; //获取票据信息位置 if (response.code == 200) { this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.fileListto.push({ name: file.name, url: response.fileName }); // this.fileListto.push({ name: file.name, url: response.url }); this.pdfimgsrcList.push( this.Networkheader + "/prod-api" + response.fileName ); this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; this.rbDetails[this.atpresent].annexfilesList = this.fileListto; if (this.activeName == 1) { if (response.code == 200) { // this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.fileListto.push({ name: file.name, url: response.fileName }); 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); } } else { if (response.code == 200) { // this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.invoicefileListto.push({ name: file.name, url: response.fileName }); this.invoicepdfimgsrcList.push( this.Networkheader + "/prod-api" + response.fileName ); console.log(this.invoicepdfimgsrcList); this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; this.rbDetails[ this.atpresent ].invoicefilesList = this.invoicefileListto; console.log(this.rbDetails[this.atpresent]); } else { console.log(response.msg); } } }, @@ -3289,70 +3292,144 @@ Filepopup(index, rows, row) { this.tableDatatop = []; this.pdfimgsrcList = []; this.invoDatatop = []; this.invoicepdfimgsrcList = []; this.invoDatatop.push(row); this.tableDatatop.push(row); this.atpresent = index; this.pdfVisible = true; console.log(this.rbDetails[index]); if (this.rbDetails[index].annexfilesList) { this.previewpdf = true; this.fileListto = this.rbDetails[index].annexfilesList; console.log(this.fileListto); this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url; // this.pdfimg = this.fileListto[0].url; this.fileListto.forEach(item => { this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url); }); this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; } else { this.fileListto = []; this.pdfimg = ""; this.pdftitle = ""; } // -发票文件 if (this.rbDetails[index].invoicefilesList) { this.previewpdf = true; this.invoicefileListto = this.rbDetails[index].invoicefilesList; console.log(this.invoicefileListto); this.invoicepdfimg = this.Networkheader + "/prod-api" + this.invoicefileListto[0].url; this.invoicefileListto.forEach(item => { this.invoicepdfimgsrcList.push( this.Networkheader + "/prod-api" + item.url ); }); console.log(this.invoicepdfimgsrcList); console.log(this.invoicepdfimg); } else { this.invoicefileListto = []; this.invoicepdfimg = ""; this.pdftitle = ""; } if (this.activeName == 1) { this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; } else { this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; } }, // 点击已上传文件 downFile(item) { this.pdftitle = "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.pdfimg = this.Networkheader + "/prod-api" + item.url; // if (!this.pdfimgsrcList.includes(this.pdfimg)) { // this.pdfimgsrcList.push(this.pdfimg); // } if (this.activeName == 1) { console.log(item, "点击文件拿item"); this.pdftitle = "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.pdfimg = this.Networkheader + "/prod-api" + item.url; } else { this.pdfimg = this.Networkheader + "/prod-api" + item.response.url; } } else { this.pdfimg = this.Networkheader + "/prod-api" + item.url; this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; } } else { this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; console.log(item, "点击文件拿item"); this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url; console.log(this.invoicepdfimg, "pdfimg"); console.log(this.invoicepdfimgsrcList, "imglist"); } else { this.invoicepdfimg = this.Networkheader + "/prod-api" + item.response.url; } } else { this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; } } }, getIndexInArray(arr, obj) { return arr.indexOf(obj); }, // 发票切换 handleClick(tab, event) { if (this.activeName == 1) { this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; } else { this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; } }, // 点击删除 deletedowfile(row) { const indexlist = this.getIndexInArray( this.pdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); this.pdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.fileListto, row); this.fileListto.splice(index, 1); if (this.activeName == 1) { const indexlist = this.getIndexInArray( this.pdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); this.pdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.fileListto, row); this.fileListto.splice(index, 1); } else { const indexlist = this.getIndexInArray( this.invoicepdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); this.invoicepdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.invoicefileListto, row); this.invoicefileListto.splice(index, 1); } }, // 点击上移 moveupdowfile(row) { const index = this.getIndexInArray(this.fileListto, row); const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 if (this.activeName == 1) { const index = this.getIndexInArray(this.fileListto, row); const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 } else { const index = this.getIndexInArray(this.invoicefileListto, row); const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 } }, //专家/医疗机构/费用报销机构选择 ShowDetailDialog(spoce, showType) { src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -956,7 +956,7 @@ <el-button type="primary" @click="submitForm" v-if="operationType == 'edit'||userprofile.nickName == '陈慕华'" v-if="operationType == 'edit' || userprofile.nickName == '陈慕华'" >保 存</el-button > <el-button @@ -1006,98 +1006,207 @@ </el-table-column> </el-table> </div> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将票据拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em <el-tabs style="margin-top: 20px;" v-model="activeName" type="border-card" @tab-click="handleClick" > <el-tab-pane label="普通附件" :name="1"> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将票据拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em > </div> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> </div> </el-upload> <el-table :data="fileListto" @row-click="downFile" style="width: 100%" height="400" </div> <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="pdfimg" :preview-src-list="pdfimgsrcList" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> </div> </div> <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin"> <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="pdfimg" :preview-src-list="pdfimgsrcList" > <!-- <div slot="error" class="image-slot"> <!-- <div slot="error" class="image-slot"> <i class="el-icon-picture-outline"></i> </div> --> </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> </el-tab-pane> <el-tab-pane label="发票文件" :name="2"> <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="invoicefileList" :show-file-list="false" multiple drag :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-remove="remove" accept="image/*,.pdf" > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将发票文件拖到此处,或 <em ><el-button :disabled="operationType == 'detail'" size="small" type="primary" >点击上传</el-button ></em > </div> </el-upload> <el-table :data="invoicefileListto" @row-click="downFile" style="width: 100%" height="400" > <el-table-column prop="name" :show-overflow-tooltip="true" label="名称" > <template slot-scope="scope"> <i style="color:#409EFF" class=" el-icon-s-order" />{{ scope.row.name }} </template> </el-table-column> <el-table-column prop="name" width="180" :show-overflow-tooltip="true" label="功能" > <template slot-scope="scope"> <el-button type="primary" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >删除</el-button > <el-button type="primary" size="mini" @click.native.prevent.stop="moveupdowfile(scope.row)" >上移</el-button > </template> </el-table-column> </el-table> </div> </div> <div v-if="this.previewpdf && invoicepdfimgsrcList.length" class="pdfimgmin" > <!-- <img :src="pdfimg" /> --> <el-image style="width: 95%; height: 90%" :src="invoicepdfimg" :preview-src-list="invoicepdfimgsrcList" > <!-- <div slot="error" class="image-slot"> <i class="el-icon-picture-outline"></i> </div> --> </el-image> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div></el-tab-pane > </el-tabs> </el-dialog> <el-dialog title="提示" :visible.sync="Savereminder" width="30%"> <el-alert @@ -1189,6 +1298,7 @@ personsList: [], //下拉可以选择人员列表 personsSel: [], activeName: 1, //文件类型 // 部门树选项 deptOptions: undefined, @@ -1318,6 +1428,11 @@ //文件列表 fileList: [], fileListto: [], invoicefileList: [], invoicefileListto: [], invoicepdfimg: "", invoicepdfimgsrcList: [], invoDatatop: [], //人员类别 persontype: null, //到达地 @@ -1437,10 +1552,23 @@ console.log(this.Networkheader); } }, // 发票切换 handleClick(tab, event) { if (this.activeName == 1) { this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; } else { this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; } }, remove(file, fileList) { const rbDetails = [...this.rbDetails]; this.fileListto.splice(this.fileListto.indexOf(file), 1); rbDetails[this.atpresent].annexfilesList = this.fileListto; if (this.activeName == 1) { this.fileListto.splice(this.fileListto.indexOf(file), 1); rbDetails[this.atpresent].annexfilesList = this.fileListto; } else { this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1); rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto; } }, handleExceed() { @@ -1451,31 +1579,56 @@ uploadSccess(response, file, fileList) { this.rbDetails; //获取票据信息位置 if (response.code == 200) { this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.fileListto.push({ name: file.name, url: response.fileName }); 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; if (this.activeName == 1) { if (response.code == 200) { // this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.fileListto.push({ name: file.name, url: response.fileName }); 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); } } else { console.log(response.msg); if (response.code == 200) { // this.form.filename = file.raw.name; this.previewpdf = true; this.$modal.msgSuccess(response.msg); this.invoicefileListto.push({ name: file.name, url: response.fileName }); this.invoicepdfimgsrcList.push( this.Networkheader + "/prod-api" + response.fileName ); console.log(this.invoicepdfimgsrcList); this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; this.rbDetails[ this.atpresent ].invoicefilesList = this.invoicefileListto; } else { console.log(response.msg); } } }, // 点击票据 Filepopup(index, rows, row) { this.tableDatatop = []; this.pdfimgsrcList = []; this.invoDatatop = []; this.invoicepdfimgsrcList = []; this.invoDatatop.push(row); this.tableDatatop.push(row); // console.log(row); this.atpresent = index; this.pdfVisible = true; console.log(this.rbDetails[index]); @@ -1487,44 +1640,85 @@ 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 = ""; this.pdftitle = ""; } // -发票文件 if (this.rbDetails[index].invoicefilesList) { this.previewpdf = true; this.invoicefileListto = this.rbDetails[index].invoicefilesList; console.log(this.invoicefileListto); this.invoicepdfimg = this.Networkheader + "/prod-api" + this.invoicefileListto[0].url; this.invoicefileListto.forEach(item => { this.invoicepdfimgsrcList.push( this.Networkheader + "/prod-api" + item.url ); }); console.log(this.invoicepdfimgsrcList); console.log(this.invoicepdfimg); } else { this.invoicefileListto = []; this.invoicepdfimg = ""; this.pdftitle = ""; } if (this.activeName == 1) { this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; } else { this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; } }, // 点击已上传文件 downFile(item) { console.log(item, "点击文件拿item"); this.pdftitle = "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.pdfimg = this.Networkheader + "/prod-api" + item.url; // if (!this.pdfimgsrcList.includes(this.pdfimg)) { // this.pdfimgsrcList.push(this.pdfimg); // console.log("加入"); // } console.log(this.pdfimg, "pdfimg"); console.log(this.pdfimgsrcList, "imglist"); if (this.activeName == 1) { console.log(item, "点击文件拿item"); this.pdftitle = "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.pdfimg = this.Networkheader + "/prod-api" + item.url; } else { this.pdfimg = this.Networkheader + "/prod-api" + item.response.url; } } else { this.pdfimg = this.Networkheader + "/prod-api" + item.response.url; this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; } } else { this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; console.log(item, "点击文件拿item"); this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name; let name = item.name.split("."); if (name[1] == "pdf") { this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; this.hintitle = "当前文件暂不支持预览"; } else if (name[1] == "jpg" || "png") { this.previewpdf = true; if (item.url) { this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url; console.log(this.invoicepdfimg, "pdfimg"); console.log(this.invoicepdfimgsrcList, "imglist"); } else { this.invoicepdfimg = this.Networkheader + "/prod-api" + item.response.url; } } else { this.hintitle = "当前文件暂不支持预览"; this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; } } }, getIndexInArray(arr, obj) { @@ -1532,24 +1726,35 @@ }, // 点击删除 deletedowfile(row) { console.log(this.fileListto); console.log(row); const indexlist = this.getIndexInArray( this.pdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); console.log(indexlist); this.pdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.fileListto, row); this.fileListto.splice(index, 1); console.log(index); console.log(this.pdfimgsrcList); if (this.activeName == 1) { const indexlist = this.getIndexInArray( this.pdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); this.pdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.fileListto, row); this.fileListto.splice(index, 1); } else { const indexlist = this.getIndexInArray( this.invoicepdfimgsrcList, this.Networkheader + "/prod-api" + row.url ); this.invoicepdfimgsrcList.splice(indexlist, 1); const index = this.getIndexInArray(this.invoicefileListto, row); this.invoicefileListto.splice(index, 1); } }, // 点击上移 moveupdowfile(row) { const index = this.getIndexInArray(this.fileListto, row); const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 if (this.activeName == 1) { const index = this.getIndexInArray(this.fileListto, row); const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 } else { const index = this.getIndexInArray(this.invoicefileListto, row); const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 } }, /** 查询部门下拉树结构 */ @@ -1980,6 +2185,11 @@ .split(",") .map(item => ({ url: item, name: item })) : []; this.invoicefileListto = this.form.invoicefilesList ? this.form.invoicefilesList .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; sessionStorage.removeItem("apiform"); sessionStorage.setItem("apiform", JSON.stringify(this.form)); @@ -2042,6 +2252,11 @@ .split(",") .map(item => ({ url: item, name: item })) : []; this.invoicefileListto = this.form.invoicefilesList ? this.form.invoicefilesList .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 this.form.recordstatus = response.data.recordstatus + ""; @@ -2057,16 +2272,6 @@ //报销明细 getReimbursementdetaillist(ids).then(res => { this.rbDetails = res.data; /* for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].index = i; this.rbDetails[i].searchAddress = { sheng: this.rbDetails[i].travelprovincename, shi: this.rbDetails[i].travelcityname, qu: this.rbDetails[i].traveltownname, }; } */ //合计费用 // if (this.rbDetails.length > 0) this.sumTotalFee(); for (let i = 0; i < this.rbDetails.length; i++) { @@ -2106,6 +2311,11 @@ .split(",") .map(item => ({ url: item, name: item })) : []; this.invoicefileListto = this.form.invoicefilesList ? this.form.invoicefilesList .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 this.form.recordstatus = response.data.recordstatus + ""; @@ -2123,16 +2333,6 @@ getReimbursementdetaillist(ids).then(res => { this.rbDetails = res.data; console.log(this.rbDetails); /* for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].index = i; this.rbDetails[i].searchAddress = { sheng: this.rbDetails[i].travelprovincename, shi: this.rbDetails[i].travelcityname, qu: this.rbDetails[i].traveltownname, }; } */ //合计费用 // if (this.rbDetails.length > 0) this.sumTotalFee(); @@ -2201,8 +2401,6 @@ (amount, item) => amount + Number(item.amount), 0 ); let list = this.fileListto; console.log(list); //校验请款金额合计是否等于报销单金额 if (this.form.amountrequested != addnumber) { @@ -2249,12 +2447,6 @@ // 关闭窗口 this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); // this.getList(); // }) // .catch(err => { // this.$modal.msgError("修改报销单保存失败!"); // }); } else { this.form.recordstatus = -1; addReimbursement(this.form) @@ -2343,9 +2535,6 @@ this.$refs["form"].validate(valid => { if (valid) { //票据文件处理 let list = this.fileListto; console.log(list); //校验请款金额合计是否等于报销单金额 if (this.form.amountrequested != addnumber) { this.$message({ @@ -2385,12 +2574,6 @@ } this.$modal.msgSuccess("修改报销单保存成功!"); // this.getList(); // }) // .catch(err => { // this.$modal.msgError("修改报销单保存失败!"); // }); } else { this.form.recordstatus = -1; addReimbursement(this.form)