src/views/project/fund/applyDetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/ethicalExpertFeeApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/expertFeeApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/medicalCostApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/officeExpenseApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fundcheck/medicalCostCheck/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseapply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseapply/travelexpensedetail/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/project/fund/applyDetail/index.vue
@@ -99,7 +99,7 @@ <el-row style="margin-top: 5px; margin-bottom: 5px" /> <el-row style="margin-bottom: 10px" v-if="businessType == '1'"> <el-col :span="4"> <el-button @click.native.prevent="addAllItems" type="primary" size="small"> <el-button @click.native.prevent="importFeeItems" type="primary" size="small"> 导入服务项目 </el-button> </el-col> @@ -111,29 +111,30 @@ <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> </el-table-column> <el-table-column prop="applytype" align="center" label="费用类型" width="200"> <!-- <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip="" v-if="form.applytype == '1'"> </el-table-column>--> <el-table-column prop="applytype" align="center" label="服务类型" width="200"> <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="费用类型" @change="loadItemType(scope.row)"> <el-select v-model="scope.row.applytype" placeholder="服务类型" @change="loadFeeItems(scope.row)"> <el-option v-for="dict in rowfeeItemTypes" :key="dict.index" :label="dict.label" :value="dict.value"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemid" align="center" label="费用项目" width="260"> <el-table-column prop="itemid" align="center" label="服务项目" width="260"> <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="费用项目" filterable @change="verifyFeeItem(scope.row)" <el-select v-model="scope.row.itemid" placeholder="服务项目" filterable @change="verifyFeeItem(scope.row)" :filter-method="val => searchItemType(val, scope)"> <el-option v-for="dict in scope.row.itemlist" :key="dict.index" :label="dict.itemName" :value="dict.id"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip="" v-if="form.applytype == '1'"> </el-table-column> <el-table-column prop="servicesscope" align="center" label="费用说明" v-if="form.applytype == '1'" width="180"> <el-table-column prop="servicesscope" align="center" label="服务说明" v-if="form.applytype == '1'" width="180"> <template slot-scope="scope"> <el-select v-model="scope.row.servicesscope" placeholder="费用说明" clearable allow-create filterable <el-select v-model="scope.row.servicesscope" placeholder="服务说明" clearable allow-create filterable @change="selectedRemark(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope"></el-option> @@ -176,17 +177,17 @@ <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="姓名" width="100" <el-table-column prop="beneficiaryname" align="center" label="姓名" width="120" v-if="form.applytype == '1' || form.applytype == '2'"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname <el-button type="primary" plain @click="ShowDetailDialog(scope, 'expert')">{{ scope.row.beneficiaryname }}</el-button> <!-- <el-select filterable allow-create ref="getReportname" default-first-option @change="selectpersonmsg(scope.row)" @change="selectExpert(scope.row)" v-model="scope.row.beneficiaryname" placeholder="请选择" > @@ -200,7 +201,7 @@ </el-select> --> </template> </el-table-column> <el-table-column prop="unitno" align="center" label="单位名称" v-if="form.applytype != '4'"> <el-table-column prop="unitno" align="center" label="单位名称" width="250"> <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> @@ -347,18 +348,18 @@ </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'">保 存</el-button> <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'">保 存</el-button> <el-button @click="cancel" v-if="operationType == 'detail'">退 出</el-button> <el-button type="primary" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'">提交保存</el-button> <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'">提交审核</el-button> <el-button @click="cancel">关 闭</el-button> </div> </div> <el-dialog :visible.sync="showDetailInfoDialog" :close-on-click-modal="false" :title="'单位/专家信息选择'" width="500px" <el-dialog :visible.sync="showSelectionDialog" :close-on-click-modal="false" :title="'单位/专家信息选择'" width="500px" style="text-align: center" v-loading="loading"> <el-form ref="funddetailForm" :model="funddetailForm"> <el-row> <el-col :span="24" v-if="showDetailInfoType == 'name'"> <el-col :span="24" v-if="selectionType == 'expert'"> <el-form-item label="请选择专家信息:" prop="expertfrom"> <el-radio-group v-model="expertfrom" style="margin-bottom: 0"> <el-radio label="1">专家库</el-radio> @@ -366,17 +367,17 @@ </el-radio-group> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoType == 'name' && expertfrom == '1'"> <el-col :span="24" v-if="selectionType == 'expert' && expertfrom == '1'"> <el-form-item label="专家姓名" prop="beneficiaryname" label-width="80px"> <el-select filterable allow-create ref="beneficiaryname" default-first-option v-model="funddetailForm.beneficiaryname" placeholder="请选择" style="width: 100%"> <el-option v-for="item in expertlist" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> <el-option v-for="item in expertlist" :key="item.expertNo" :label="item.exportName" :value="item.exportName"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoType == 'unit'"> <el-col :span="24" v-if="selectionType == 'unit'"> <el-form-item label="单位名称" prop="unitno" label-width="120px" v-if="businessType == 1 || businessType == 2"> <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> @@ -450,7 +451,7 @@ </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showDetailInfoDialog = false">取 消</el-button> <el-button @click="showSelectionDialog = false">取 消</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">确 定</el-button> </span> </el-dialog> @@ -627,11 +628,9 @@ //专家费选择:1是专家库,2是新增 expertfrom: "1", //捐献案例列表数据 donatebaseinfoList: [], //捐献案例列表 donateList: [], // 捐献人道慰问金表格数据 donateconsolationfundList: [], //费用明细列表 rbDetails: [], formData: {}, @@ -640,17 +639,21 @@ totalAfterTaxAmount: 0.0, totalAmount: 0.0, //行记录的费用类型数组 rowfeeItemTypes: [], //费用类型数组 feeItemTypes: [], //行记录的费用类型数组 rowfeeItemTypes: [], //费用说明 rowfeeblocks: [], fundflowList: [], showDetailInfoDialog: false, showDetailInfoType: "", //专家/单位选择:expert/unit selectionType: "", showSelectionDialog: false, // 表单校验 rules: { @@ -777,30 +780,6 @@ computed: {}, //监控data中的数据变化 watch: {}, //生命周期 - 创建完成(可以访问当前this实例) created() { //获取路由参数 this.getroute(); this.getUserProfile(); this.getFeeUnitList(); }, //生命周期 - 挂载完成(可以访问DOM元素) mounted() { this.getUserList(); this.getBaseInfoList(); this.getExternalList(); }, beforeCreate() { }, //生命周期 - 创建之前 beforeMount() { }, //生命周期 - 挂载之前 beforeUpdate() { }, //生命周期 - 更新之前 updated() { }, //生命周期 - 更新之后 beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 //方法集合 methods: { // 表单重置 @@ -858,35 +837,46 @@ this.curId = this.$route.query.id; this.businessType = this.$route.query.businessType; this.operationType = this.$route.query.operationType; console.log(this.businessType, this.operationType); //获取费用项目类型 this.getFundType(); this.getFeeTypes(); // if (!this.businessType && !this.operationType) { if (this.businessType == "1") { this.curCase = this.$route.query.curCase; this.businessName = "专家劳务费申请单"; } else if (this.businessType == "2") { this.businessName = "专家劳务费申请单" this.getUnitList(); } else if (this.businessType == "2") { this.curCase = this.$route.query.curCase; this.businessName = "伦理专家劳务费申请单"; } else if (this.businessType == "3") { if (this.operationType != "check") { this.curCase = this.$route.query.curCase; } this.getUnitList(); } else if (this.businessType == "3") { if (this.operationType != "check") { this.curCase = this.$route.query.curCase; } this.businessName = "医学成本报销单"; } else if (this.businessType == "4") { this.businessName = "杂项费用报销单"; } else if (this.businessType == "4") { this.businessName = "办公费用报销单"; // this.getBaseInfoList(); } if (this.operationType == "add") { this.title = this.businessName + "新建"; this.handleAdd(); } else if (this.operationType == "update") { } else if (this.operationType == "update") { this.title = this.businessName + "修改"; this.handleUpdate(); } else if (this.operationType == "detail") { } else if (this.operationType == "detail") { this.title = this.businessName + "查看"; this.handleDetail(); } else if (this.operationType == "check") { } else if (this.operationType == "check") { this.title = this.businessName + "审核"; this.handleCheck(); } @@ -902,7 +892,7 @@ this.istrue += 2; this.reset(); /** businessType:1:专家费;2:伦理专家费;3:医学成本;4:杂项费用*/ /** businessType:1:专家费;2:伦理专家费;3:医学成本;4:办公费用*/ this.form.applytype = this.businessType; if ( this.businessType == "1" || @@ -941,7 +931,7 @@ if (this.rbDetails.length > 0) { for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getitemlist(m, this.rbDetails[m]); this.getFeeItems(m, this.rbDetails[m]); //获取费用项目的详细信息 this.rbDetails[m].rowfeeblocks = []; @@ -981,11 +971,10 @@ //业务明细 getownFundDetail(this.curId).then(res => { console.log(res); this.rbDetails = res.data; for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getitemlist(m, this.rbDetails[m]); this.getFeeItems(m, this.rbDetails[m]); this.rbDetails[m].rowfeeblocks = []; this.rbDetails[m].rowfeeblocks.push({ expense: this.rbDetails[m].expense, @@ -1024,7 +1013,7 @@ this.rbDetails = res.data; for (let m = 0; m < this.rbDetails.length; m++) { this.rbDetails[m].itemlist = []; this.getitemlist(m, this.rbDetails[m]); this.getFeeItems(m, this.rbDetails[m]); this.rbDetails[m].rowfeeblocks = []; this.rbDetails[m].rowfeeblocks.push({ expense: this.rbDetails[m].expense, @@ -1127,7 +1116,7 @@ return; } if (this.businessType == "1" || this.businessType == "2") { if (this.businessType == "1") { if (tempDetail.servicesscope == null) { this.$modal.msgWarning( "服务项目表中,第" + @@ -1137,7 +1126,7 @@ return; } if (tempDetail.beneficiaryno == null) { if (tempDetail.beneficiaryno == null || tempDetail.beneficiaryno == "点击选择") { this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + @@ -1146,6 +1135,7 @@ return; } } // //判断单位 unitSel // try { // let unitIndex = this.unitList.findIndex( @@ -1163,7 +1153,6 @@ //附件处理 let list = this.fileList; console.log(list); // if (list.length > 0) { // this.form.annexfiles = list.map(item => item.url).join(","); // } @@ -1280,7 +1269,6 @@ addorupdateFund(this.form).then(response => { if (response.code === 200) { this.selectDonotor(this.curCase); this.$modal.msgSuccess("申请单保存成功!"); } else { this.$modal.msgError("申请单保存失败:" + response.msg); @@ -1290,7 +1278,6 @@ //关闭窗口 // this.loading = false; // this.getfundList(); // this.selectDonotor(this.curCase); this.$router.go(-1); } }); @@ -1330,23 +1317,18 @@ } else { this.ismanager = false; } // this.form.applytype = this.businessType; // this.form.createTime = new Date(); this.form.username = this.userprofile.nickName; this.form.userno = this.userprofile.userName; this.form.phone = this.userprofile.phonenumber; this.form.deptmentname = this.userprofile.dept.deptName; this.form.deptmentno = this.userprofile.dept.deptId; this.form.managername = this.userprofile.dept.leader; // this.form.applytype = this.businessType; // this.form.createTime = new Date(); }); }, //获取系统用户列表 getUserList() { listUser().then(res => { this.userlist = res.data; }); }, //获取系统用户列表 getUserList() { listUser().then(res => { this.userlist = res.data; @@ -1418,8 +1400,18 @@ }); }, //获取捐献案例列表 getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then(response => { this.donateList = response.rows; this.total = response.total; this.loading = false; }); }, //获取费用类型 getFundType() { getFeeTypes() { getFundTypeAll(this.businessType).then(res => { let dataList = res.data; this.feeItemTypes = dataList; @@ -1435,7 +1427,7 @@ }); }, getitemlist(rowindex, row) { getFeeItems(rowindex, row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; this.$set(this.rbDetails, rowindex, row); @@ -1447,24 +1439,19 @@ // }); }, //获取捐献案例列表 getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then(response => { this.donatebaseinfoList = response.rows; this.total = response.total; this.loading = false; }); }, //获取申请单信息 getfundList() { this.loading = true; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then(response => { this.loading = false; this.donateconsolationfundList = response.rows; }); //加载服务项目 loadFeeItems(row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemid = null; // row.itemlist = res.data; // this.$forceUpdate(); // }); }, //获取费用项目的备注信息 @@ -1527,6 +1514,27 @@ }); }, //筛查出对应的费用项目 searchItemType(val, scope) { let result = []; if (val != "") { let tempitemlist = scope.row.itemlist; for (let i = 0; i < tempitemlist.length; i++) { let pym = tempitemlist[i].itempinyin; if (pym != null && pym != undefined && pym != "") { if (pym.indexOf(val) != -1) { result.push(tempitemlist[i]); } } } scope.row.itemlist = result; } else { getItemNames(scope.row.applytype).then(res => { scope.row.itemlist = res.data; //this.$set(this.rbDetails, rowindex, row); }); } }, //合计费用 selectamount(row) { this.rowfeeblocks.forEach((item, i) => { @@ -1536,14 +1544,28 @@ }); }, //点击捐献案例列表触发方法 selectDonotor(row, column, event) { this.curCase = row; this.getfundList(); 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; } }); }, //导入所有项目 addAllItems() { importFeeItems() { this.loading = true; this.rbDetails = this.rbDetails.filter( r => r.applytype != "" && r.applytype != null @@ -1610,32 +1632,6 @@ // }); }, addAll(row, i, arr) { row.itemlist.map(res => { if (res.id !== row.itemid) { let a = arr.length; this.addRow(); arr[a].itemlist = row.itemlist; arr[a].applytype = row.applytype; arr[a].itemid = res.id; getdetailsByItemId(arr[a].itemid).then(res => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach(item => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id }); }); row.rowfeeblocks = rowfeeblocks; }); } }); }, //新增一行 addRow(rowIndex) { let rowData = { @@ -1689,63 +1685,6 @@ } for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].orderno = i + 1; } }, //加载服务项目 loadItemType(row) { let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemid = null; // row.itemlist = res.data; // this.$forceUpdate(); // }); }, selectpersonmsg(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; } }); }, //筛查出对应的费用项目 searchItemType(val, scope) { let result = []; if (val != "") { let tempitemlist = scope.row.itemlist; for (let i = 0; i < tempitemlist.length; i++) { let pym = tempitemlist[i].itempinyin; if (pym != null && pym != undefined && pym != "") { if (pym.indexOf(val) != -1) { result.push(tempitemlist[i]); } } } scope.row.itemlist = result; } else { getItemNames(scope.row.applytype).then(res => { scope.row.itemlist = res.data; //this.$set(this.rbDetails, rowindex, row); }); } }, @@ -1840,12 +1779,12 @@ }, mixExport(scope) { this.dayin(scope.row.id); //this.totaldayin(id); this.print(scope.row.id); //this.totalprint(id); }, //专家费劳务打印 dayin(id) { print(id) { getdownloadLW(id).then(res => { if (res.downloadUrl) { var fileUrl = res; @@ -1867,7 +1806,7 @@ }, //汇总打印 totaldayin(e) { totalprint(e) { // const id =this.row.id getdownloadBX(e).then(res => { if (res.downloadUrl) { @@ -1977,10 +1916,12 @@ //专家/医疗机构/费用报销机构选择 ShowDetailDialog(spoce, showType) { this.selectionType = showType; this.expertfrom = "1"; this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.unitno = spoce.row.unitno; this.funddetailForm.unitname = spoce.row.unitname; this.funddetailForm.expertname = ""; @@ -1991,22 +1932,21 @@ this.funddetailForm.expertdepositbank = ""; this.funddetailForm.expertbankcardno = ""; this.showDetailInfoDialog = true; this.showDetailInfoType = showType; this.showSelectionDialog = true; }, //专家/医疗机构/费用报销机构选择 ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempExpertName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.rbDetails[tempIndex]; if (this.showDetailInfoType == "name") { if (this.selectionType == "expert") { if (this.expertfrom == "1") { //从专家列表获取信息 this.personlist.map(res => { if (tempName == res.username) { if (tempExpertName == res.username) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; @@ -2022,8 +1962,7 @@ } else { //保存新增专家 this.expertform.id = null; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1; this.expertform.usertype = "expert"; this.expertform.username = this.funddetailForm.expertname; this.expertform.idcardno = this.funddetailForm.expertidcardno; @@ -2082,7 +2021,7 @@ } }); } } else if (this.showDetailInfoType == "unit") { } else if (this.selectionType == "unit") { singleDetail.unitno = this.funddetailForm.unitno; if (this.businessType == 1 || this.businessType == 2) { try { @@ -2119,9 +2058,31 @@ } this.rbDetails[tempIndex] = singleDetail; this.showDetailInfoDialog = false; } } this.showSelectionDialog = false; }, }, //生命周期 - 创建完成(可以访问当前this实例) created() { //获取路由参数 this.getroute(); this.getUserProfile(); this.getUserList(); }, //生命周期 - 挂载完成(可以访问DOM元素) mounted() { this.getExternalList(); // this.getFeeUnitList(); }, beforeCreate() { }, //生命周期 - 创建之前 beforeMount() { }, //生命周期 - 挂载之前 beforeUpdate() { }, //生命周期 - 更新之前 updated() { }, //生命周期 - 更新之后 beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 }; </script> src/views/project/fund/ethicalExpertFeeApply/index.vue
@@ -51,10 +51,6 @@ <el-card shadow="naver"> <el-form ref="infoform" label-width="100px"> <el-row :gutter="4" align="right" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:ethicalfund:add']">伦理审查专家费申请</el-button> </el-col> <el-col :span="9"> <el-form-item label="捐献编号"> <el-input v-model="curCase.donorno" :disabled="true"></el-input> @@ -65,7 +61,12 @@ <el-input v-model="curCase.name" :disabled="true"></el-input> </el-form-item> </el-col> <el-col> </el-col> </el-row> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:ethicalfund:add']">新增申请单</el-button> </el-col> </el-row> <el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> @@ -373,8 +374,8 @@ <el-row> <el-col :span="24"> <el-form-item label="申请附件:" align="left" prop="annexbankcard"> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> @@ -612,62 +613,186 @@ }, }; }, //监听属性 类似于data概念 computed: {}, //监控data中的数据变化 watch: {}, //方法集合 //方法集合 methods: { ShowDetailDialog(spoce, showType) { this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.unitno = spoce.row.unitno; this.funddetailForm.unitname = spoce.row.unitname; this.detailInfoDialogShow = true; this.detailInfoDialogShowType = showType; /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetailArr[tempIndex]; if (this.detailInfoDialogShowType == "name") { this.personlist.map((res) => { if (tempName == res.username) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } else { singleDetail.beneficiaryname = tempName; singleDetail.beneficiaryno = tempName; /** 重置按钮操作 */ resetQuery() { this.daterangeReporttime = []; this.resetForm("queryForm"); this.handleQuery(); }, /** 新增按钮操作 */ handleAdd() { if (this.curCase.id) { this.$router.push({ path: "/finance/applyDetail/", query: { id: 0, businessType: "2", operationType: "add", curCase: this.curCase } }); } else if (this.detailInfoDialogShowType == "unit") { singleDetail.unitno = this.funddetailForm.unitno; try { let unitIndex = this.unitList.findIndex( (item) => singleDetail.unitno == item.organizationid ); if (unitIndex > -1) { singleDetail.unitname = this.unitList[unitIndex].organizationname; } else { singleDetail.unitname = singleDetail.unitno; } } catch { singleDetail.unitname = singleDetail.unitno; } } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请在左边的捐献案例表选择需要操作的案例!")]), }); } this.fundDetailArr[tempIndex] = singleDetail; this.detailInfoDialogShow = false; return; if (this.curCase.id) { this.istrue += 2; this.reset(); this.dialogOpen = true; this.title = "添加费用申请"; this.dialogType = "edit"; this.queryParams.params = {}; this.form.infoid = this.curCase.id; this.form.donorno = this.curCase.donorno; this.form.donorname = this.curCase.name; this.form.username = this.defaultperson.nickName; this.form.userno = this.defaultperson.userName; this.form.deptmentname = this.defaultperson.dept.deptName; this.form.deptmentno = this.defaultperson.dept.deptId; this.form.managername = this.defaultperson.dept.leader; // this.form.createTime = nowdate; //this.open = true; //this.initFundApplyForm(); this.fundDetailArr = []; this.fundflowList = []; this.addRow(); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]), }); } }, /** 修改按钮操作 */ handleUpdate(row) { this.$router.push({ path: "/finance/applyDetail/", query: { id: row.id, businessType: "2", operationType: "update", curCase: this.curCase } }); return; this.isopen = 0; this.reset(); this.queryParams.params = {}; this.dialogOpen = true; this.title = "修改费用申请"; this.dialogType = "edit"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] getownFundDetail(id).then(async (res) => { this.fundDetailArr = res.data; for (let m = 0; m < this.fundDetailArr.length; m++) { this.fundDetailArr[m].itemArr = []; this.getItemArr(m, this.fundDetailArr[m]); } }); }); }, /** 查看按钮操作 */ handleDetail(row) { this.$router.push({ path: "/finance/applyDetail/", query: { id: row.id, businessType: "2", operationType: "detail", curCase: this.curCase } }); return; this.isopen = 0; this.reset(); this.queryParams.params = {}; this.dialogOpen = true; this.title = "查看费用申请"; this.dialogType = "detail"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; let listFundflowparams = { fundid: row.id, fundtype: 2, }; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] listFundflow(listFundflowparams).then((res) => { this.fundflowList = res.rows; }); getownFundDetail(id).then((res) => { this.fundDetailArr = res.data; for (let m = 0; m < this.fundDetailArr.length; m++) { this.fundDetailArr[m].itemArr = []; this.getItemArr(m, this.fundDetailArr[m]); this.fundDetailArr[m].fundblock = []; this.fundDetailArr[m].fundblock.push({ expense: this.fundDetailArr[m].expense, expensedescribe: this.fundDetailArr[m].servicesscopename, remark: this.fundDetailArr[m].servicesscope, servicesscope: this.fundDetailArr[m].servicesscope, }); } }); }); }, /** 删除按钮操作 */ handleDelete(row) { const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该记录?") .then(function () { return delFund(ids); }) .then(() => { getownFundDetail(ids).then((res) => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); } }); // this.getList(); this.getfundList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); }, /** 上报按钮操作 */ handleup(row) { this.$confirm("是否确认将登记记录上报?", "提示", { confirmButtonText: "确定", @@ -701,24 +826,160 @@ }); }); }, /** 导出按钮操作 */ handleExport() { const queryParams = this.queryParams; this.$modal .confirm("是否确认导出所有报销申请数据项?") .then(() => { this.exportLoading = true; return exportReimbursement(queryParams); }) .then(response => { this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => { }); }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { let formData = this.form; let totalPreTaxAmount = 0.0; let totalAfterTaxAmount = 0.0; let totalAmount = 0.0; for (let k = 0; k < this.fundDetailArr.length; k++) { let tempDetail = this.fundDetailArr[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning("请选择服务项目"); return; } //判断单位 unitSel // try { // //获取服务项目明细 // let unitIndex = this.unitList.findIndex( // (item) => tempDetail.unitno == item.organizationid // ); // if (unitIndex > -1) { // tempDetail.unitname = this.unitList[unitIndex].organizationname; // } // else{ // tempDetail.unitname = tempDetail.unitno; // } // } catch { // tempDetail.unitname = tempDetail.unitno; // } if (!isNaN(parseFloat(tempDetail.amount))) { totalPreTaxAmount += parseFloat(tempDetail.amount); totalAmount += parseFloat(tempDetail.amount); } if (!isNaN(parseFloat(tempDetail.taxedamount))) { totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); totalAmount += parseFloat(tempDetail.taxedamount); } } try { this.form.unitname = this.$refs.orgSelecter.getOptionByValue( this.form.unitno ).organizationname; } catch { this.form.treatmenthospitalname = this.form.treatmenthospitalno; } this.form.pretaxcost = parseFloat(totalPreTaxAmount).toFixed(2); this.form.taxedcost = parseFloat(totalAfterTaxAmount).toFixed(2); this.form.amountrequested = totalAmount.toFixed(2); this.loading = true; //附件处理 let list = this.fileList; if (list.length > 0) { this.form.annexbankcard = list.map(item => item.url).join(","); } if (this.form.id != null) { updateFund(this.form).then((response) => { this.getfundList(); this.dialogOpen = false; this.getList(); this.selectDonotor(this.curCase); this.$modal.msgSuccess("修改成功"); this.loading = false; for (let m = 0; m < this.fundDetailArr.length; m++) { let tempData = this.fundDetailArr[m]; let tempItemArr = tempData.itemArr; tempData.fundid = formData.id; //获取服务项目明细 let itemIndex = tempItemArr.findIndex( (item) => tempData.itemid == item.id ); if (itemIndex > -1) { tempData.itemname = tempItemArr[itemIndex].itemName; tempData.itemid = tempItemArr[itemIndex].id; } if (tempData.id > 0) { updateFunddetail(tempData).then((response2) => { }); } else { addFunddetail(tempData).then((response2) => { }); } } }); } else { //保存费用申请 for (let m = 0; m < this.fundDetailArr.length; m++) { let tempData = this.fundDetailArr[m]; let tempUtemArr = tempData.itemArr; //获取服务项目明细 let itemIndex = tempUtemArr.findIndex( (item) => tempData.itemid == item.id ); if (itemIndex > -1) { tempData.itemname = tempUtemArr[itemIndex].itemName; tempData.itemid = tempUtemArr[itemIndex].id; } //获取applytypename let applytypeIndex = this.fundtypeArr.findIndex( (item) => tempData.applytype == item.value ); if (applytypeIndex > -1) { tempData.applytypename = this.fundtypeArr[applytypeIndex].label; } this.fundDetailArr[m] = tempData; } this.form.serviceFunddetails = this.fundDetailArr; addorupdateFund(this.form).then((response) => { if (response.code === 200) { this.$modal.msgSuccess("新增成功"); this.loading = false; this.selectDonotor(this.curCase); } else { this.$modal.msgError("新增失败:" + response.msg); this.loading = false; } }); this.dialogOpen = false; } } }); }, /** 取消按钮 */ cancel() { this.dialogOpen = false; this.reset(); }, //获取所有用户列表 getUsermsg() { getUserProfile().then((response) => { this.defaultperson = response.data; this.standardlevel = response.data.standardlevel; }); }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.daterangeReporttime = []; this.resetForm("queryForm"); this.handleQuery(); }, /** 查询捐献人道慰问金列表 */ getList() { this.loading = true; @@ -736,6 +997,7 @@ }); }, //获取捐献案例列表 getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then((response) => { @@ -745,43 +1007,13 @@ }); }, /** 新增按钮操作 */ handleAdd() { if (this.curCase.id) { this.istrue += 2; this.reset(); this.dialogOpen = true; this.title = "添加费用申请"; this.dialogType = "edit"; this.queryParams.params = {}; this.form.infoid = this.curCase.id; this.form.donorno = this.curCase.donorno; this.form.donorname = this.curCase.name; this.form.username = this.defaultperson.nickName; this.form.userno = this.defaultperson.userName; this.form.deptmentname = this.defaultperson.dept.deptName; this.form.deptmentno = this.defaultperson.dept.deptId; this.form.managername = this.defaultperson.dept.leader; // this.form.createTime = nowdate; //this.open = true; //this.initFundApplyForm(); this.fundDetailArr = []; this.fundflowList = []; this.addRow(); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]), }); } }, //点击捐献案例列表触发方法 selectDonotor(row, column, event) { this.curCase = row; this.getfundList(); }, //获取案例专家费用申请单 getfundList() { this.loading = true; this.reset(); @@ -825,11 +1057,6 @@ row.servicesscope = null; row.servicesscopename = ""; }); }, // 取消按钮 cancel() { this.dialogOpen = false; this.reset(); }, // 表单重置 @@ -947,128 +1174,7 @@ // }); }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { let formData = this.form; let totalPreTaxAmount = 0.0; let totalAfterTaxAmount = 0.0; let totalAmount = 0.0; for (let k = 0; k < this.fundDetailArr.length; k++) { let tempDetail = this.fundDetailArr[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning("请选择服务项目"); return; } //判断单位 unitSel // try { // //获取服务项目明细 // let unitIndex = this.unitList.findIndex( // (item) => tempDetail.unitno == item.organizationid // ); // if (unitIndex > -1) { // tempDetail.unitname = this.unitList[unitIndex].organizationname; // } // else{ // tempDetail.unitname = tempDetail.unitno; // } // } catch { // tempDetail.unitname = tempDetail.unitno; // } if (!isNaN(parseFloat(tempDetail.amount))) { totalPreTaxAmount += parseFloat(tempDetail.amount); totalAmount += parseFloat(tempDetail.amount); } if (!isNaN(parseFloat(tempDetail.taxedamount))) { totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); totalAmount += parseFloat(tempDetail.taxedamount); } } try { this.form.unitname = this.$refs.orgSelecter.getOptionByValue( this.form.unitno ).organizationname; } catch { this.form.treatmenthospitalname = this.form.treatmenthospitalno; } this.form.pretaxcost = parseFloat(totalPreTaxAmount).toFixed(2); this.form.taxedcost = parseFloat(totalAfterTaxAmount).toFixed(2); this.form.amountrequested = totalAmount.toFixed(2); this.loading = true; //附件处理 let list = this.fileList; if (list.length > 0) { this.form.annexbankcard = list.map(item => item.url).join(","); } if (this.form.id != null) { updateFund(this.form).then((response) => { this.getfundList(); this.dialogOpen = false; this.getList(); this.selectDonotor(this.curCase); this.$modal.msgSuccess("修改成功"); this.loading = false; for (let m = 0; m < this.fundDetailArr.length; m++) { let tempData = this.fundDetailArr[m]; let tempItemArr = tempData.itemArr; tempData.fundid = formData.id; //获取服务项目明细 let itemIndex = tempItemArr.findIndex( (item) => tempData.itemid == item.id ); if (itemIndex > -1) { tempData.itemname = tempItemArr[itemIndex].itemName; tempData.itemid = tempItemArr[itemIndex].id; } if (tempData.id > 0) { updateFunddetail(tempData).then((response2) => { }); } else { addFunddetail(tempData).then((response2) => { }); } } }); } else { //保存费用申请 for (let m = 0; m < this.fundDetailArr.length; m++) { let tempData = this.fundDetailArr[m]; let tempUtemArr = tempData.itemArr; //获取服务项目明细 let itemIndex = tempUtemArr.findIndex( (item) => tempData.itemid == item.id ); if (itemIndex > -1) { tempData.itemname = tempUtemArr[itemIndex].itemName; tempData.itemid = tempUtemArr[itemIndex].id; } //获取applytypename let applytypeIndex = this.fundtypeArr.findIndex( (item) => tempData.applytype == item.value ); if (applytypeIndex > -1) { tempData.applytypename = this.fundtypeArr[applytypeIndex].label; } this.fundDetailArr[m] = tempData; } this.form.serviceFunddetails = this.fundDetailArr; addorupdateFund(this.form).then((response) => { if (response.code === 200) { this.$modal.msgSuccess("新增成功"); this.loading = false; this.selectDonotor(this.curCase); } else { this.$modal.msgError("新增失败:" + response.msg); this.loading = false; } }); this.dialogOpen = false; } } }); }, selectremark(row) { this.fundblock.forEach((item, i) => { if (item.expensedescribe === row.servicesscopename) { @@ -1105,90 +1211,7 @@ }); }, /** 修改按钮操作 */ handleUpdate(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.dialogOpen = true; this.title = "修改费用申请"; this.dialogType = "edit"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] getownFundDetail(id).then(async (res) => { this.fundDetailArr = res.data; for (let m = 0; m < this.fundDetailArr.length; m++) { this.fundDetailArr[m].itemArr = []; this.getItemArr(m, this.fundDetailArr[m]); } }); }); }, /** 查看按钮操作 */ handleDetail(row) { this.isopen = 0; this.reset(); this.queryParams.params = {}; this.dialogOpen = true; this.title = "查看费用申请"; this.dialogType = "detail"; const id = row.id || this.ids; getFund(id).then((response) => { this.form = response.data; let listFundflowparams = { fundid: row.id, fundtype: 2, }; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] listFundflow(listFundflowparams).then((res) => { this.fundflowList = res.rows; }); getownFundDetail(id).then((res) => { this.fundDetailArr = res.data; for (let m = 0; m < this.fundDetailArr.length; m++) { this.fundDetailArr[m].itemArr = []; this.getItemArr(m, this.fundDetailArr[m]); this.fundDetailArr[m].fundblock = []; this.fundDetailArr[m].fundblock.push({ expense: this.fundDetailArr[m].expense, expensedescribe: this.fundDetailArr[m].servicesscopename, remark: this.fundDetailArr[m].servicesscope, servicesscope: this.fundDetailArr[m].servicesscope, }); } }); }); }, handleDelete(row) { const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该记录?") .then(function () { return delFund(ids); }) .then(() => { getownFundDetail(ids).then((res) => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); } }); // this.getList(); this.getfundList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); }, deleteRows(row, index, rows) { this.$confirm("是否确认删除?", "提示", { @@ -1327,7 +1350,7 @@ }); }, //汇总打印 //下载打印 totaldayin(e) { // const id =this.row.id getdownloadBX(e).then((res) => { @@ -1349,6 +1372,7 @@ } }); }, selectReporters() { //专家人员列表 let arr = ["zzry"]; @@ -1361,6 +1385,7 @@ }); } }, getlistExternalperson() { listExternalperson().then((res) => { this.personlist = res.rows; @@ -1383,6 +1408,18 @@ } }); }, getUnitList() { listOrganization(3).then((response) => { for (let i = 0; i < response.rows.length; i++) { this.unitList.push({ organizationid: response.rows[i].organizationid, organizationname: response.rows[i].organizationname, }); } }); }, SearchItem(val, scope) { let result = []; if (val != "") { @@ -1402,17 +1439,6 @@ //this.$set(this.fundDetailArr, rowindex, row); }); } }, getUnitList() { listOrganization(3).then((response) => { for (let i = 0; i < response.rows.length; i++) { this.unitList.push({ organizationid: response.rows[i].organizationid, organizationname: response.rows[i].organizationname, }); } }); }, addAlls() { @@ -1478,7 +1504,59 @@ a.href = url; a.dispatchEvent(event); }, ShowDetailDialog(spoce, showType) { this.funddetailForm.index = spoce.$index; this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; this.funddetailForm.unitno = spoce.row.unitno; this.funddetailForm.unitname = spoce.row.unitname; this.detailInfoDialogShow = true; this.detailInfoDialogShowType = showType; }, ConfirmDetailDialog() { let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetailArr[tempIndex]; if (this.detailInfoDialogShowType == "name") { this.personlist.map((res) => { if (tempName == res.username) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; singleDetail.branchbankname = res.branchbankname; singleDetail.depositbank = res.depositbank; singleDetail.idcardno = res.idcardno; singleDetail.phone = res.telephone; singleDetail.title = res.title; singleDetail.unitname = res.unitname; singleDetail.unitno = parseInt(res.unitno); } else { singleDetail.beneficiaryname = tempName; singleDetail.beneficiaryno = tempName; } }); } else if (this.detailInfoDialogShowType == "unit") { singleDetail.unitno = this.funddetailForm.unitno; try { let unitIndex = this.unitList.findIndex( (item) => singleDetail.unitno == item.organizationid ); if (unitIndex > -1) { singleDetail.unitname = this.unitList[unitIndex].organizationname; } else { singleDetail.unitname = singleDetail.unitno; } } catch { singleDetail.unitname = singleDetail.unitno; } } this.fundDetailArr[tempIndex] = singleDetail; this.detailInfoDialogShow = false; }, }, //生命周期 - 创建完成(可以访问当前this实例) created() { this.getUnitList(); @@ -1500,6 +1578,7 @@ beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 }; </script> <style scoped> src/views/project/fund/expertFeeApply/index.vue
@@ -51,10 +51,6 @@ <el-card shadow="naver"> <el-form ref="infoform" label-width="100px"> <el-row :gutter="4" align="right" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:expretfund:add']">专家费用申请</el-button> </el-col> <el-col :span="9"> <el-form-item label="捐献编号"> <el-input v-model="curCase.donorno" :disabled="true"></el-input> @@ -66,7 +62,12 @@ </el-form-item> </el-col> <el-col> <!-- <el-button round @click='totaldayin'>下载</el-button> --> </el-col> </el-row> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:expretfund:add']">新增申请单</el-button> </el-col> </el-row> <el-row> @@ -860,6 +861,24 @@ /** 新增按钮操作 */ handleAdd() { if (this.curCase.id) { this.$router.push({ path: "/finance/applyDetail/", query: { id: 0, businessType: "1", operationType: "add", curCase: this.curCase } }); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请在左边的捐献案例表选择需要操作的案例!")]), }); } return; if (this.curCase.id) { this.istrue += 2; this.reset(); this.queryParams.params = {}; @@ -892,6 +911,17 @@ /** 修改按钮操作 */ handleUpdate(row) { this.$router.push({ path: "/finance/applyDetail/", query: { id: row.id, businessType: "1", operationType: "update", curCase: this.curCase } }); return; this.isopen = 0; this.reset(); this.queryParams.params = {}; @@ -943,6 +973,17 @@ /** 查看按钮操作 */ handleDetail(row) { this.$router.push({ path: "/finance/applyDetail/", query: { id: row.id, businessType: "1", operationType: "detail", curCase: this.curCase } }); return; this.isopen = 0; this.reset(); this.queryParams.params = {}; @@ -1016,7 +1057,6 @@ //查找是否存在登记完成记录 //判断是否存在上报记录 row.recordstatus = 0; console.log("updateFund", row); updateFund(row).then((response) => { if (response.code == 200) { this.$message({ @@ -1145,7 +1185,6 @@ this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); console.log("1", this.amount); } }); } @@ -1297,7 +1336,6 @@ //从专家列表获取信息 this.personlist.map((res) => { if (tempName == res.username) { console.log("选择专家", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; @@ -1351,11 +1389,9 @@ listExternalperson().then((res) => { this.personlist = res.rows; console.log("new personlist", this.personlist); //从专家列表获取信息 this.personlist.map((res) => { if (res.username == this.funddetailForm.expertname) { console.log("新增专家", res); singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; singleDetail.bankcardno = res.bankcardno; @@ -1396,7 +1432,6 @@ //获取当前用户信息 getUsermsg() { getUserProfile().then((response) => { console.log("getUserProfile", response); this.defaultperson = response.data; this.standardlevel = response.data.standardlevel; if (this.defaultperson.createBy == "admin" || this.defaultperson.createBy == "001" || this.defaultperson.createBy == "002") { @@ -1438,14 +1473,16 @@ row.itemcode = res.itemCode; } }); var repeatNum = 0; this.fundDetails.map((res) => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; if (this.businessType == '1') { var repeatNum = 0; this.fundDetails.map((res) => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } }); if (repeatNum > 1) { this.$modal.msgWarning("您已经提交过该服务项目了"); } }); if (repeatNum > 1) { this.$modal.msgWarning("您已经提交过该服务项目了"); } //获取费用项目的详细信息 @@ -1488,7 +1525,6 @@ } // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); console.log("111", this.queryParams); listDonatebaseinfo(this.queryParams).then((response) => { this.donatebaseinfoList = response.rows; this.total = response.total; @@ -1744,7 +1780,6 @@ getUserList() { listUser().then((res) => { console.log("listUser", res); this.userlist = res.data; }); }, src/views/project/fund/medicalCostApply/index.vue
@@ -51,11 +51,6 @@ <el-card shadow="naver"> <el-form ref="infoform" label-width="100px"> <el-row :gutter="4" align="right" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:medicalfund:add']">医学成本申请</el-button> </el-col> <el-col :span="9"> <el-form-item label="捐献编号"> <el-input v-model="curCase.donorno" :disabled="true"></el-input> @@ -67,6 +62,12 @@ </el-form-item> </el-col> <el-col> </el-col> </el-row> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['project:medicalfund:add']">新增申请单</el-button> </el-col> </el-row> <el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> @@ -769,15 +770,22 @@ /** 新增按钮操作 */ handleAdd() { this.$router.push({ path: "/finance/applyDetail/", query: { id: 0, businessType: "3", operationType: "add", curCase: this.curCase } }); if (this.curCase.id) { this.$router.push({ path: "/finance/applyDetail/", query: { id: 0, businessType: "3", operationType: "add", curCase: this.curCase } }); } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请在左边的捐献案例表选择需要操作的案例!")]), }); } return; if (this.curCase.id) { @@ -1107,7 +1115,7 @@ listFund(this.fundQueryParam).then(response => { this.loading = false; this.donateconsolationfundList = response.rows; console.log("donateconsolationfundList",this.donateconsolationfundList); console.log("donateconsolationfundList", this.donateconsolationfundList); }); }, src/views/project/fund/officeExpenseApply/index.vue
@@ -33,7 +33,7 @@ @click="handleExport">导出</el-button> </el-col> <!-- v-hasPermi="['project:medicalfund:export']" --> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> --> </el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> <el-table-column label="申请日期" align="center" prop="createTime" width="180px"> @@ -892,6 +892,22 @@ }); }); }, /** 导出按钮操作 */ handleExport() { const queryParams = this.queryParams; this.$modal .confirm("是否确认导出所有报销申请数据项?") .then(() => { this.exportLoading = true; return exportReimbursement(queryParams); }) .then(response => { this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => {}); }, handleDelete(row) { const ids = row.id || this.ids; src/views/project/fundcheck/medicalCostCheck/index.vue
@@ -72,9 +72,9 @@ <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" width="260px"> <template slot-scope="scope"> <el-button v-if="scope.row.checkFlag == 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">审核</el-button> @click="handleCheck(scope.row)">审核</el-button> <!-- v-hasPermi="['project:donateconsolationfund:edit']" --> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleShow(scope.row)">详情</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)">查看</el-button> <el-button size="mini" type="text" icon="el-icon-download" @click="totaldayin(scope.row.id)">下载</el-button> <!-- v-hasPermi="['project:donateconsolationfund:download']" --> @@ -912,7 +912,7 @@ } }, /** 修改按钮操作 */ handleUpdate(row) { handleCheck(row) { this.$router.push({ path: "/finance/applyDetail/", query: { @@ -953,7 +953,17 @@ }, //查看审核详情 handleShow(row) { handleDetail(row) { this.$router.push({ path: "/finance/applyDetail/", query: { id: row.id, businessType: "3", operationType: "detail" } }); return; this.isopen = 0; this.reset(); this.queryParams.params = {}; src/views/project/travelexpenseapply/index.vue
@@ -1,12 +1,6 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" > <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-row> <!-- <el-col :span="6"> @@ -18,68 +12,31 @@ --> <el-col :span="6"> <el-form-item label="经办人" prop="username"> <el-input v-model="queryParams.username" placeholder="请输入经办人" clearable size="small" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.username" placeholder="请输入经办人" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="报销日期" prop="createTime"> <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick" range-separator="至" start-placeholder="报销开始日期" end-placeholder="报销结束日期" @keyup.enter.native="handleQuery" > <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick" range-separator="至" start-placeholder="报销开始日期" end-placeholder="报销结束日期" @keyup.enter.native="handleQuery"> </el-date-picker> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="审核状态" prop="recordstatus"> <el-input v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small" v-if="0" @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small" > <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-input v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small" v-if="0" @keyup.enter.native="handleQuery" /> <el-select v-model="queryParams.recordstatus" placeholder="请选择审核状态" clearable size="small"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> <el-col :span="4"> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button > <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> </el-form-item> </el-col> </el-row> @@ -87,97 +44,42 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" >新增</el-button > <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> <!-- v-hasPermi="['project:funddetail:add']" --> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" >导出</el-button > <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport">导出</el-button> </el-col> <!-- v-hasPermi="['project:funddetail:export']" --> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table border v-loading="loading" :data="reimbursementList" @selection-change="handleSelectionChange" > <el-table border v-loading="loading" :data="reimbursementList" @selection-change="handleSelectionChange"> <!-- <el-table-column type="selection" width="55" align="center" /> <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 label="申请时间" width="150" align="center" prop="createTime" > <el-table-column label="申请时间" width="150" 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="审核状态" align="center" prop="recordstatus" width="160" > <el-table-column label="审核状态" align="center" prop="recordstatus" width="160"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> </template> </el-table-column> <el-table-column label="经办人" width="150" align="center" prop="username" /> <el-table-column label="经办人" width="150" align="center" prop="username" /> <!-- <el-table-column label="出差人" width="180" align="center" prop="travelers"> </el-table-column>--> <el-table-column label="报销金额" width="150" align="center" prop="amountrequested" > <el-table-column label="报销金额" width="150" align="center" prop="amountrequested"> </el-table-column> <el-table-column label="所属组别" width="150" align="center" prop="deptmentname" /> <el-table-column label="组长" width="150" align="center" prop="managername" /> <el-table-column label="所属组别" width="150" align="center" prop="deptmentname" /> <el-table-column label="组长" width="150" align="center" prop="managername" /> <el-table-column label="出差事由" align="center" prop="reason" /> <!-- <el-table-column label="联系电话" width="120" align="center" prop="phone"> </el-table-column> @@ -187,115 +89,47 @@ </el-table-column> <el-table-column label="报销合计" align="center" prop="financechecher"/>--> <!-- <el-table-column label="财务审核" width="120" align="center" prop="financechecher" /> --> <el-table-column label="捐献者" width="150" align="center" prop="donorname" /> <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="210" > <el-table-column label="捐献者" width="150" align="center" prop="donorname" /> <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="210"> <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 > <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" >修改</el-button > <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)" >查看</el-button > <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> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleDetail(scope.row)">查看</el-button> <!-- v-hasPermi="['project:funddetail:edit']" --> <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)" > <el-button size="mini" type="text" icon="el-icon-download" @click="gettable(scope.row)"> 下载 </el-button> <!-- v-hasPermi="['project:funddetail:edit']" --> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" >删除</el-button > <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> <!-- v-hasPermi="['project:funddetail:remove']" --> </template> </el-table-column> </el-table> <!-- v-hasPermi="['project:donateconsolationfund:edit']" --> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <!-- 添加或修改费用申请明细对话框 --> <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1400px" append-to-body @close="reset" > <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1400px" append-to-body @close="reset"> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row ><el-col :span="5"> <el-row><el-col :span="5"> <el-form-item label="申请日期" prop="createTime"> <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期" > <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期"> </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="经办人" prop="username"> <el-select v-model="form.username" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" > <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="form.username" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择"> <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </el-form-item> @@ -320,18 +154,8 @@ </el-col> <el-col :span="5"> <el-form-item label="捐献者" prop="infoid"> <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者" > <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid" > <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者"> <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid"> </el-option> </el-select> </el-form-item> @@ -340,36 +164,17 @@ <el-row style="margin-top: 10px"> <el-col :span="5"> <el-form-item label="报销金额" prop="amountrequested"> <el-input :disabled="true" v-model="form.amountrequested" placeholder="报销合计金额" /> <el-input :disabled="true" v-model="form.amountrequested" placeholder="报销合计金额" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="大写金额" prop="bigstrmoney"> <el-input :disabled="true" v-model="form.bigstrmoney" placeholder="报销大写金额" /> </el-form-item> </el-col ><el-col :span="5"> <el-input :disabled="true" v-model="form.bigstrmoney" placeholder="报销大写金额" /> </el-form-item> </el-col><el-col :span="5"> <el-form-item label="审核状态" prop="flowlevel"> <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small" > <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> @@ -476,263 +281,116 @@ </el-row> <el-row> <el-table :data="rbDetails" border highlight-current-row> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65" > <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> </el-table-column> <!--主键、外不展示--> <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false" > <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.id" placeholder="id" /> </template> </el-table-column> <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false" > <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.rbid" placeholder="rbid" /> </template> </el-table-column> <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130" > <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)" > <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)"> <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="personname" slot="" label="费用人员" align="center" fixed width="110" > <el-table-column prop="personname" slot="" label="费用人员" align="center" fixed width="110"> <template slot-scope="scope"> <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option placeholder="请选择" @focus1="getPersons(scope.row)" > <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option placeholder="请选择" @focus1="getPersons(scope.row)"> <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="starttime" slot="" label="开始日期" fixed align="center" width="150" > <el-table-column prop="starttime" slot="" label="开始日期" fixed align="center" width="150"> <template slot-scope="scope"> <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.endtime) { return ( time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) ); } <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.endtime) { return ( time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) ); } }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始日期" @blur="getdays(scope.row)" > } }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始日期" @blur="getdays(scope.row)"> </el-date-picker> </template> </el-table-column> <el-table-column prop="endtime" slot="" label="结束日期" align="center" fixed width="150" > <el-table-column prop="endtime" slot="" label="结束日期" align="center" fixed width="150"> <template slot-scope="scope"> <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.starttime) { return ( time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) ); } <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.starttime) { return ( time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) ); } }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束日期" @blur="getdays(scope.row)" > } }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束日期" @blur="getdays(scope.row)"> </el-date-picker> </template> </el-table-column> <el-table-column prop="departure" slot="" label="出发地" align="center" width="100" > <el-table-column prop="departure" slot="" label="出发地" align="center" width="100"> <template slot-scope="scope"> <el-input v-model="scope.row.departure" placeholder="出发地" /> </template> </el-table-column> <el-table-column label="到达地" prop="destination" align="center" width="140" > <el-table-column label="到达地" prop="destination" align="center" width="140"> <template slot-scope="scope"> <!-- <el-input v-model="scope.row.destination" placeholder="到达地" @blur="getallowance(scope.row)" /> --> <el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="到达地" @change="getallowance(scope.row)" > <el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="到达地" @change="getallowance(scope.row)"> <el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="days" label="天数" width="65" align="center"> <template slot-scope="scope"> <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="天数" /> <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="天数" /> </template> </el-table-column> <el-table-column prop="traffictype" label="出发交通工具" align="center" width="100" > <el-table-column prop="traffictype" label="出发交通工具" align="center" width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.traffictype" placeholder="出发交通工具" > <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.traffictype" placeholder="出发交通工具"> <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="traffictype2" label="返回交通工具" align="center" width="100" > <el-table-column prop="traffictype2" label="返回交通工具" align="center" width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.traffictype2" placeholder="返回交通工具" > <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.traffictype2" placeholder="返回交通工具"> <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="trafficexpense" label="交通费" align="center" width="80" > <el-table-column prop="trafficexpense" label="交通费" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <!-- @@ -747,144 +405,65 @@ </template> </el-table-column> --> <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80" > <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80" > <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80" > <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80" > <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90" > <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90"> <template slot-scope="scope"> <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120" > <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120"> <template slot-scope="scope"> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> </template> </el-table-column> <el-table-column prop="total" label="合计" align="center" width="110" > <el-table-column prop="total" label="合计" align="center" width="110"> <template slot-scope="scope"> <el-input v-model="scope.row.total" placeholder="合计" /> </template> </el-table-column> <el-table-column fixed="right" label="操作" align="center" width="120" v-if="dialogType == 'edit'" > <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=" deleteDetailRow(scope.$index, rbDetails, scope.row) " type="text" size="small" > <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> </template> @@ -896,192 +475,75 @@ </el-row> <el-row style="margin-top: 30px"> <el-table :data="rbPayees" border highlight-current-row> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65" > <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> </el-table-column> <!--主键、外键不展示--> <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false" > <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.id" placeholder="id" /> </template> </el-table-column> <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false" > <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.rbid" placeholder="rbid" /> </template> </el-table-column> <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130" > <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)" > <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)"> <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="personname" slot="" label="收款人" align="center" fixed width="110" > <el-table-column prop="personname" slot="" label="收款人" align="center" fixed width="110"> <template slot-scope="scope"> <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" @change="getAccountinfo2(scope.row, scope.row.persontype)" > <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" @change="getAccountinfo2(scope.row, scope.row.persontype)"> <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="bankname" slot="" label="银行名称" align="center" fixed width="200" > <el-table-column prop="bankname" slot="" label="银行名称" align="center" fixed width="200"> <template slot-scope="scope"> <el-input v-model="scope.row.bankname" placeholder="银行名称" /> </template> </el-table-column> <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200" > <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130" > <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="打款金额" /> </template> </el-table-column> <el-table-column prop="remark" slot="" label="请款说明" align="center" fixed width="280" > <el-table-column prop="remark" slot="" label="请款说明" align="center" fixed width="280"> <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="说明" /> </template> </el-table-column ><el-table-column prop="paiddate" slot="" label="打款日期" fixed align="center" width="150" > </template> </el-table-column><el-table-column prop="paiddate" slot="" label="打款日期" fixed align="center" width="150"> <template slot-scope="scope"> <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.paiddate" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="打款日期" :disabled="true" > <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.paiddate" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="打款日期" :disabled="true"> </el-date-picker> </template> </el-table-column> <el-table-column label="操作" align="center" width="100" v-if="dialogType == 'edit'" > <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=" deletePayeeRow(scope.$index, rbPayees, scope.row) " type="text" size="small" > <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> </template> @@ -1128,76 +590,30 @@ --> <el-form-item label="文件上传" align="left" prop="annexfiles"> <!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> --> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success=" (response, file, fileList) => <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf" > <el-button :disabled="dialogType == 'detail'" size="small" type="primary" >上传</el-button > " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="dialogType == 'detail'" size="small" type="primary">上传</el-button> </el-upload> </el-form-item> </el-col> </el-row> <el-row v-if="dialogType == 'detail'"> <el-table :data="fundflowList" border> <el-table-column label="审核人" align="center" width="120" prop="checkusername" /> <el-table-column label="审核日期" align="center" width="160" prop="createTime" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion" ><template slot-scope="scope" ><span v-if="scope.row.flowconclusion == 1">通过</span ><span v-if="scope.row.flowconclusion == 2" >不通过</span ></template > <el-table-column label="审核人" align="center" width="120" prop="checkusername" /> <el-table-column label="审核日期" align="center" width="160" prop="createTime" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion"><template slot-scope="scope"><span v-if="scope.row.flowconclusion == 1">通过</span><span v-if="scope.row.flowconclusion == 2">不通过</span></template> </el-table-column> <el-table-column label="审核备注" align="center" prop="flowcontent" /> <el-table-column label="审核备注" align="center" prop="flowcontent" /> </el-table> </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="dialogType == 'edit'" >保 存</el-button > <el-button type="primary" @click="submitForm" v-if="dialogType == 'edit'">保 存</el-button> <el-button @click="cancel">取 消</el-button> </div> </el-dialog> @@ -1420,7 +836,7 @@ }, methods: { handleUploadError() {}, handleUploadError() { }, remove(file) { this.fileList.splice(this.fileList.indexOf(file), 1); @@ -1548,7 +964,7 @@ row.days = ( Math.floor( Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24) (1000 * 3600 * 24) ) + 1 ).toString(); } else { @@ -1845,10 +1261,10 @@ /** 新增按钮操作 */ handleAdd() { console.log("defaultperson",this.defaultperson); console.log("defaultperson", this.defaultperson); this.$router.push({ path: "/finance/travelexpenseapply/travelexpensedetail/", query: { id: 0, pos: 1,routerparam:this.defaultperson} query: { id: 0, pos: 1, routerparam: this.defaultperson } }); this.reset(); @@ -1884,8 +1300,8 @@ this.form = response.data; this.fileList = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; @@ -1930,7 +1346,7 @@ path: "/finance/travelexpenseapply/travelexpensedetail/", query: { id: row.id, pos: 3 } }); this.dialogType = "detail"; this.title = "查看报销申请"; @@ -1943,8 +1359,8 @@ //附件 this.fileList = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -2138,7 +1554,7 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该条记录?") .then(function() { .then(function () { // 删除details内的数据 return delReimbursement(ids); }) @@ -2147,7 +1563,7 @@ this.getList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => {}); .catch(() => { }); }, /** 导出按钮操作 */ @@ -2163,7 +1579,7 @@ this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => {}); .catch(() => { }); }, //新增一行 @@ -2446,7 +1862,7 @@ this.form.amountrequested = allSum.toFixed(2); this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); } catch {} } catch { } }, //金额数字转换成大写 src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -3,36 +3,19 @@ <div class="boxdiv"> <div class="top-text">{{ title }}</div> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row ><el-col :span="5"> <el-row><el-col :span="5"> <el-form-item label="申请日期" prop="createTime"> <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期" > <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期"> </el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="经办人" prop="username"> <el-select v-model="form.username" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" > <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="form.username" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择"> <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </el-form-item> @@ -57,18 +40,8 @@ </el-col> <el-col :span="5"> <el-form-item label="捐献者" prop="infoid"> <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者" > <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid" > <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者"> <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid"> </el-option> </el-select> </el-form-item> @@ -77,36 +50,17 @@ <el-row style="margin-top: 10px"> <el-col :span="5"> <el-form-item label="报销金额" prop="amountrequested"> <el-input :disabled="true" v-model="form.amountrequested" placeholder="报销合计金额" /> <el-input :disabled="true" v-model="form.amountrequested" placeholder="报销合计金额" /> </el-form-item> </el-col> <el-col :span="10"> <el-form-item label="大写金额" prop="bigstrmoney"> <el-input :disabled="true" v-model="form.bigstrmoney" placeholder="报销大写金额" /> </el-form-item> </el-col ><el-col :span="5"> <el-input :disabled="true" v-model="form.bigstrmoney" placeholder="报销大写金额" /> </el-form-item> </el-col><el-col :span="5"> <el-form-item label="审核状态" prop="flowlevel"> <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small" > <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small"> <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> @@ -209,273 +163,120 @@ </el-row> --> <el-row style="margin-top: 25px; margin-bottom: 5px"> <el-col :span="20">报销明细录入:</el-col> <el-col :span="20">报销明细</el-col> </el-row> <el-row> <el-table :data="rbDetails" border highlight-current-row :summary-method="getSummaries" show-summary > <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65" > <el-table :data="rbDetails" border highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> </el-table-column> <!--主键、外不展示--> <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false" > <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.id" placeholder="id" /> </template> </el-table-column> <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false" > <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.rbid" placeholder="rbid" /> </template> </el-table-column> <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130" > <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)" > <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)"> <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="personname" slot="" label="费用人员" align="center" fixed width="110" > <el-table-column prop="personname" slot="" label="费用人员" align="center" fixed width="110"> <template slot-scope="scope"> <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option placeholder="请选择" @focus1="getPersons(scope.row)" > <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option placeholder="请选择" @focus1="getPersons(scope.row)"> <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="starttime" slot="" label="开始日期" fixed align="center" width="150" > <el-table-column prop="starttime" slot="" label="开始日期" fixed align="center" width="150"> <template slot-scope="scope"> <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.endtime) { return ( time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) ); } <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.endtime) { return ( time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) ); } }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始日期" @blur="getdays(scope.row)" > } }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始日期" @blur="getdays(scope.row)"> </el-date-picker> </template> </el-table-column> <el-table-column prop="endtime" slot="" label="结束日期" align="center" fixed width="150" > <el-table-column prop="endtime" slot="" label="结束日期" align="center" fixed width="150"> <template slot-scope="scope"> <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.starttime) { return ( time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) ); } <el-date-picker :picker-options="{ disabledDate: time => { if (scope.row.starttime) { return ( time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) ); } }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束日期" @blur="getdays(scope.row)" > } }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束日期" @blur="getdays(scope.row)"> </el-date-picker> </template> </el-table-column> <el-table-column prop="departure" slot="" label="出发地" align="center" width="100" > <el-table-column prop="departure" slot="" label="出发地" align="center" width="100"> <template slot-scope="scope"> <el-input v-model="scope.row.departure" placeholder="出发地" /> </template> </el-table-column> <el-table-column label="到达地" prop="destination" align="center" width="140" > <el-table-column label="到达地" prop="destination" align="center" width="140"> <template slot-scope="scope"> <!-- <el-input v-model="scope.row.destination" placeholder="到达地" @blur="getallowance(scope.row)" /> --> <el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="到达地" @change="getallowance(scope.row)" > <el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="到达地" @change="getallowance(scope.row)"> <el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="days" label="天数" width="65" align="center"> <template slot-scope="scope"> <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="天数" /> <el-input v-model="scope.row.days" @blur="getallowance(scope.row)" placeholder="天数" /> </template> </el-table-column> <el-table-column prop="traffictype" label="出发交通工具" align="center" width="100" > <el-table-column prop="traffictype" label="出发交通工具" align="center" width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.traffictype" placeholder="出发交通工具" > <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.traffictype" placeholder="出发交通工具"> <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="traffictype2" label="返回交通工具" align="center" width="100" > <el-table-column prop="traffictype2" label="返回交通工具" align="center" width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.traffictype2" placeholder="返回交通工具" > <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.traffictype2" placeholder="返回交通工具"> <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="trafficexpense" label="交通费" align="center" width="80" > <el-table-column prop="trafficexpense" label="交通费" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <!-- @@ -490,310 +291,131 @@ </template> </el-table-column> --> <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80" > <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80" > <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80" > <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80" > <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80"> <template slot-scope="scope"> <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90" > <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90"> <template slot-scope="scope"> <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur=" val => { sumRowFee(scope.row); } " /> <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="val => { sumRowFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120" > <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120"> <template slot-scope="scope"> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" /> </template> </el-table-column> <el-table-column prop="total" label="合计" align="center" width="110" fixed="right" > <el-table-column prop="total" label="合计" align="center" width="110" fixed="right"> <template slot-scope="scope"> <el-input v-model="scope.row.total" placeholder="合计" /> </template> </el-table-column> <el-table-column fixed="right" label="操作" align="center" width="120" > <el-table-column fixed="right" label="操作" align="center" width="120"> <template slot-scope="scope"> <el-button type="text" size="mini" @click="addDetailRow(scope.$index)" v-if="dialogType == 'edit'" >新增</el-button > <el-button @click.native.prevent=" deleteDetailRow(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="dialogType == 'edit'" >删除</el-button > <el-button @click.native.prevent=" Filepopup(scope.$index, rbDetails, scope.row) " type="text" size="small" >票据</el-button > <el-button type="text" size="mini" @click="addDetailRow(scope.$index)" v-if="operationType == 'edit'">新增</el-button> <el-button @click.native.prevent=" deleteDetailRow(scope.$index, rbDetails, scope.row) " type="text" size="small" v-if="operationType == 'edit'">删除</el-button> <el-button @click.native.prevent=" Filepopup(scope.$index, rbDetails, scope.row) " type="text" size="small">票据</el-button> </template> </el-table-column> </el-table> </el-row> <el-row style="margin-top: 25px; margin-bottom: 5px"> <el-col :span="20">报销请款明细:</el-col> <el-col :span="20">打款明细</el-col> </el-row> <el-row style="margin-top: 30px"> <el-table :data="rbPayees" border highlight-current-row :summary-method="getSummaries" show-summary > <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65" > <el-row style="margin-top: 5px"> <el-table :data="rbPayees" border highlight-current-row :summary-method="getSummaries" show-summary> <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65"> <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="序号" /> </template> </el-table-column> <!--主键、外键不展示--> <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false" > <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.id" placeholder="id" /> </template> </el-table-column> <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false" > <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false"> <template slot-scope="scope"> <el-input v-model="scope.row.rbid" placeholder="rbid" /> </template> </el-table-column> <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130" > <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="130"> <template slot-scope="scope"> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)" > <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别" @change="getPersons(scope.row)"> <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> </el-select> </template> </el-table-column> <el-table-column prop="personname" slot="" label="收款人" align="center" fixed width="110" > <el-table-column prop="personname" slot="" label="收款人" align="center" fixed width="110"> <template slot-scope="scope"> <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" @change="getAccountinfo2(scope.row, scope.row.persontype)" > <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname" default-first-option placeholder="请选择" @change="getAccountinfo2(scope.row, scope.row.persontype)"> <el-option v-for="item in personsSel" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> </el-option> </el-select> </template> </el-table-column> <el-table-column prop="bankname" slot="" label="银行名称" align="center" fixed width="200" > <el-table-column prop="bankname" slot="" label="银行名称" align="center" fixed width="200"> <template slot-scope="scope"> <el-input v-model="scope.row.bankname" placeholder="银行名称" /> </template> </el-table-column> <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200" > <el-table-column prop="bankcardno" slot="" label="银行卡号" align="center" fixed width="200"> <template slot-scope="scope"> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> <el-input v-model="scope.row.bankcardno" placeholder="银行卡号" /> </template> </el-table-column> <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130" > <el-table-column prop="amount" slot="" label="打款金额" align="center" fixed width="130"> <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="打款金额" /> </template> </el-table-column> <el-table-column prop="remark" slot="" label="请款说明" align="center" fixed > <el-table-column prop="remark" slot="" label="请款说明" align="center" fixed> <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="说明" /> </template> @@ -806,70 +428,33 @@ </el-date-picker> </template> </el-table-column>--> <el-table-column label="操作" align="center" width="100" v-if="dialogType == 'edit'" > <el-table-column label="操作" align="center" width="100" v-if="operationType == 'edit'"> <template slot-scope="scope"> <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 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> </template> </el-table-column> </el-table> </el-row> <el-row v-if="dialogType == 'detail' || dialogType == 'check'"> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType != 'edit'"> <el-col :span="20">审核记录</el-col> </el-row> <el-row v-if="operationType != 'edit'"> <el-table :data="fundflowList" border> <el-table-column label="审核人" align="center" width="120" prop="checkusername" /> <el-table-column label="审核日期" align="center" width="160" prop="createTime" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion" ><template slot-scope="scope" ><span v-if="scope.row.flowconclusion == 1">通过</span ><span v-if="scope.row.flowconclusion == 2" >不通过</span ></template > <el-table-column label="审核人" align="center" width="150" prop="checkusername" /> <el-table-column label="审核日期" align="center" width="200" prop="createTime" /> <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion"><template slot-scope="scope"><span v-if="scope.row.flowconclusion == 1">通过</span><span v-if="scope.row.flowconclusion == 2">不通过</span></template> </el-table-column> <el-table-column label="审核备注" align="center" prop="flowcontent" /> <el-table-column label="审核备注" align="center" prop="flowcontent" /> </el-table> </el-row> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="dialogType == 'check'" > <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"> @@ -879,7 +464,7 @@ </el-form-item> </el-col> </el-row> <el-row v-if="dialogType == 'check'"> <el-row v-if="operationType == 'check'"> <el-col :span="17"> <el-form-item label="审核备注" align="left"> <el-input v-model="checkObj.flowconclusion" placeholder="备注" /> @@ -888,18 +473,8 @@ </el-row> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm" v-if="dialogType == 'edit'" >保 存</el-button > <el-button type="primary" @click="checksubmit" v-if="dialogType == 'check'" >提 交</el-button > <el-button type="primary" @click="submitForm" v-if="operationType == 'edit'">保 存</el-button> <el-button type="primary" @click="checksubmit" v-if="operationType == 'check'">提 交</el-button> <!--<el-button @click="cancel">退 出</el-button>--> </div> </div> @@ -908,31 +483,12 @@ <div class="pdfimg"> <div class="box-pdf"> <div> <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" multiple :limit="20" :headers="headers" :on-success=" (response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf" > <el-button :disabled="dialogType == 'detail'" size="small" type="primary" >上传</el-button > <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileListto" multiple :limit="20" :headers="headers" :on-success="(response, file, fileList) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="operationType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf"> <el-button :disabled="operationType == 'detail'" size="small" type="primary">上传</el-button> </el-upload> </div> <!-- <div @@ -1114,7 +670,7 @@ defaultperson: {}, fundflowList: [], showApproveRecordDialog: false, dialogType: "edit", operationType: "edit", //上传发票文件路径 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", @@ -1194,7 +750,7 @@ }, methods: { handleUploadError() {}, handleUploadError() { }, remove(file, fileList) { const rbDetails = [...this.rbDetails]; @@ -1354,7 +910,7 @@ row.days = ( Math.floor( Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24) (1000 * 3600 * 24) ) + 1 ).toString(); } else { @@ -1635,7 +1191,7 @@ this.reset(); // this.open = true; this.title = "新增差旅申请单"; this.dialogType = "edit"; this.operationType = "edit"; this.fundflowList = []; console.log(this.title, this.defaultperson); @@ -1657,7 +1213,7 @@ // query: { id: ids } // }); this.dialogType = "edit"; this.operationType = "edit"; this.reset(); // this.open = true; this.title = "报销申请修改"; @@ -1668,8 +1224,8 @@ this.form = response.data; this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; this.form.recordstatus = response.data.recordstatus + ""; @@ -1710,7 +1266,7 @@ /** 查看按钮操作 */ handleDetail(ids) { this.dialogType = "detail"; this.operationType = "detail"; this.title = "报销申请详情"; this.reset(); @@ -1722,8 +1278,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1770,7 +1326,7 @@ /** 审核按钮操作 */ handleCheck(ids) { this.dialogType = "check"; this.operationType = "check"; this.title = "报销申请详情"; this.reset(); @@ -1783,8 +1339,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -2013,7 +1569,7 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该条记录?") .then(function() { .then(function () { // 删除details内的数据 return delReimbursement(ids); }) @@ -2022,7 +1578,7 @@ this.getList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => {}); .catch(() => { }); }, /** 导出按钮操作 */ @@ -2038,7 +1594,7 @@ this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => {}); .catch(() => { }); }, //新增一行 @@ -2321,7 +1877,7 @@ this.form.amountrequested = allSum.toFixed(2); this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); } catch {} } catch { } }, //金额数字转换成大写