src/views/project/fund/fundcontext/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/fund/medicalCostFundApply/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/project/travelexpenseslist/Modifydetails/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
vue.config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/project/fund/fundcontext/index.vue
@@ -7,27 +7,52 @@ <el-row> <el-col :span="5"> <el-form-item label="申请日期" prop="createTime"> <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期"> <el-date-picker clearable 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" placeholder="申请人" clearable filterable allow-create style="width: 100%"> <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname"></el-option> <el-select v-model="form.username" placeholder="申请人" clearable filterable allow-create style="width: 100%" > <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname" ></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="所属组别" prop="deptmentname"> <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable /> <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="组长" prop="managername"> <el-input v-model="form.managername" placeholder="请输入组长" clearable /> <el-input v-model="form.managername" placeholder="请输入组长" clearable /> </el-form-item> </el-col> </el-row> @@ -41,7 +66,9 @@ --> <el-col :span="5"> <el-form-item label="申请单类型"> <el-radio v-model="form.applytype" :label="businessType">{{ businessName }}</el-radio> <el-radio v-model="form.applytype" :label="businessType">{{ businessName }}</el-radio> </el-form-item> </el-col> <el-col :span="10"> @@ -54,7 +81,6 @@ <el-input v-model="form.phone" placeholder="请输入联系电话" /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <!-- @@ -66,12 +92,20 @@ --> <el-col :span="5"> <el-form-item label="申请金额" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="应缴税" prop="taxcost"> <el-input v-model="form.taxcost" placeholder="应缴税金额合计" :disabled="true" /> <el-input v-model="form.taxcost" placeholder="应缴税金额合计" :disabled="true" /> </el-form-item> </el-col> <!-- @@ -82,15 +116,29 @@ </el-col>--> <el-col :span="5"> <el-form-item label="捐献者" prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请输入捐献者姓名" /> <el-input :disabled="true" v-model="form.name" placeholder="请输入捐献者姓名" /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="申请状态" prop="recordstatus"> <!-- <el-input v-model="form.recordstatus" placeholder="审核意见"/> --> <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable size="small" :disabled="true"> <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 size="small" :disabled="true" > <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> @@ -98,65 +146,155 @@ <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="addAllItems" type="primary" size="small" > 导入服务项目 </el-button> </el-col> </el-row> <el-row> <el-table :data="fundDetails" v-loading="loading" border highlight-current-row> <el-table-column prop="orderno" align="center" label="序号" width="65"> <el-table :data="rbDetails" v-loading="loading" border highlight-current-row > <el-table-column prop="orderno" align="center" label="序号" width="65" > <template slot-scope="scope"> <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="applytype" align="center" label="费用类型" width="200" > <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="费用类型" @change="loadItemType(scope.row)"> <el-option v-for="dict in rowfeeItemTypes" :key="dict.index" :label="dict.label" :value="dict.value"></el-option> <el-select v-model="scope.row.applytype" placeholder="费用类型" @change="loadItemType(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)" :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 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 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 @change="selectedRemark(scope.row)"> <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.servicesscope" :label="dict.remark" :value="dict.servicesscope"></el-option> <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> </el-select> </template> </el-table-column> <el-table-column prop="price" align="center" label="单价" width="120" v-if="0"> <el-table-column prop="price" align="center" label="单价" width="120" v-if="0" > <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="单价" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.price" placeholder="单价" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="0"> <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="0" > <template slot-scope="scope"> <el-input v-model="scope.row.quantity" placeholder="数量" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.quantity" placeholder="数量" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column v-if="this.ismanager == true" prop="amount" align="center" label="税前金额" width="120"> <el-table-column v-if="this.ismanager == true" prop="amount" align="center" label="税前金额" width="120" > <template slot-scope="scope"> <!-- <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create @@ -168,17 +306,37 @@ <el-input v-model="scope.row.amount" placeholder="税前金额" /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="this.ismanager == true & (form.applytype == '1' || form.applytype == '2')"> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if=" (this.ismanager == true) & (form.applytype == '1' || form.applytype == '2') " > <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> </template> </el-table-column> <el-table-column prop="beneficiaryname" align="center" label="姓名" width="100" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="beneficiaryname" align="center" label="姓名" width="100" 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> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')" >{{ scope.row.beneficiaryname }}</el-button > <!-- <el-select filterable allow-create @@ -198,10 +356,19 @@ </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="单位名称" v-if="form.applytype != '4'" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')" >{{ scope.row.unitname }}</el-button > <!-- <el-select v-model="scope.row.unitno" placeholder="单位" @@ -218,43 +385,98 @@ </el-select> --> </template> </el-table-column> <el-table-column prop="remark" align="center" label="备注" v-if="form.applytype == '4'"> <el-table-column prop="remark" align="center" label="备注" v-if="form.applytype == '4'" > <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="备注" /> </template> </el-table-column> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype == '1' || form.applytype == '2'" > <template slot-scope="scope"> <el-input v-model="scope.row.title" placeholder="职称" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype == '1' || form.applytype == '2'"> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype == '1' || form.applytype == '2'" > <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份证号" /> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '4'"> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '4'" > <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210" v-if="form.applytype != '4'"> <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210" v-if="form.applytype != '4'" > <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 fixed="right" align="center" label="操作" width="180"> <el-table-column fixed="right" align="center" label="操作" width="180" > <template slot-scope="scope"> <el-button type="text" size="mini" @click="addRow(scope.$index)" v-if="operationType == 'add' || operationType == 'update'">新增</el-button> <el-button @click.native.prevent="deleteRows(scope.row, scope.$index, fundDetails)" type="text" size="small" v-if="operationType == 'add' || operationType == 'update'"> <el-button type="text" size="mini" @click="addRow(scope.$index)" v-if="operationType == 'add' || operationType == 'update'" >新增</el-button > <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, rbDetails) " type="text" size="small" v-if="operationType == 'add' || operationType == 'update'" > 删除 </el-button> <el-button @click.native.prevent="Filepopup(scope.$index, fundDetails, scope.row)" type="text" size="small">票据</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> @@ -302,29 +524,78 @@ --> <el-row> <el-col :span="12"> <el-form-item label="费用申请附件" align="left" prop="annexbankcard" v-if="businessType == 0"> <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='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-form-item label="费用申请附件" align="left" prop="annexbankcard" v-if="businessType == 0" > <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="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> </el-form-item> </el-col> </el-row> <el-row v-if="operationType == 'detail' || operationType == 'check'"> <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-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType == '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"> @@ -343,15 +614,32 @@ </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" v-if="operationType == 'detail'" >退 出</el-button > </div> </div> <el-dialog :visible.sync="showDetailInfoDialog" :close-on-click-modal="false" :title="'单位/专家信息选择'" width="500px" style="text-align: center" v-loading="loading"> <el-dialog :visible.sync="showDetailInfoDialog" :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'"> @@ -362,29 +650,77 @@ </el-radio-group> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoType == 'name' && 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-col :span="24" v-if="showDetailInfoType == 'name' && 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> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="showDetailInfoType == '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%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> <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%" > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> </el-form-item> <el-form-item label="发票单位名称" prop="unitno" label-width="120px" v-if="businessType == 3 || businessType == 4"> <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> <el-option v-for="(item, index) in feeUnitList" :key="index" :label="item.reportName" :value="item.reportNo"></el-option> <el-form-item label="发票单位名称" prop="unitno" label-width="120px" v-if="businessType == 3 || businessType == 4" > <el-select v-model="funddetailForm.unitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%" > <el-option v-for="(item, index) in feeUnitList" :key="index" :label="item.reportName" :value="item.reportNo" ></el-option> </el-select> </el-form-item> </el-col> @@ -392,22 +728,43 @@ <el-row> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="专家姓名" prop="expertname" label-width="80px"> <el-input v-model="funddetailForm.expertname" placeholder="必填项" /> <el-input v-model="funddetailForm.expertname" placeholder="必填项" /> </el-form-item> </el-col> <el-col :span="12" v-if="expertfrom == '2'"> <el-form-item label="职 称" prop="experttitle" label-width="80px"> <el-select v-model="funddetailForm.experttitle" placeholder="必填项"> <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label"></el-option> <el-form-item label="职 称" prop="experttitle" label-width="80px" > <el-select v-model="funddetailForm.experttitle" placeholder="必填项" > <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label" :value="dict.label" ></el-option> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="身份证号" prop="expertidcardno" label-width="80px"> <el-input v-model="funddetailForm.expertidcardno" placeholder="必填项" /> <el-form-item label="身份证号" prop="expertidcardno" label-width="80px" > <el-input v-model="funddetailForm.expertidcardno" placeholder="必填项" /> </el-form-item> </el-col> </el-row> @@ -425,42 +782,91 @@ --> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="单位名称" prop="expertunitno" label-width="80px"> <el-select v-model="funddetailForm.expertunitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%"> <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid"></el-option> </el-select> </el-form-item></el-col> <el-form-item label="单位名称" prop="expertunitno" label-width="80px" > <el-select v-model="funddetailForm.expertunitno" placeholder="单位名称" clearable filterable allow-create style="width: 100%" > <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname" :value="spec.organizationid" ></el-option> </el-select> </el-form-item ></el-col> </el-row> <el-row> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="开户银行" prop="expertdepositbank" label-width="80px"> <el-input v-model="funddetailForm.expertdepositbank" placeholder="必填项" /> <el-form-item label="开户银行" prop="expertdepositbank" label-width="80px" > <el-input v-model="funddetailForm.expertdepositbank" placeholder="必填项" /> </el-form-item> </el-col> <el-col :span="24" v-if="expertfrom == '2'"> <el-form-item label="银行卡号" prop="expertbankcardno" label-width="80px"> <el-input v-model="funddetailForm.expertbankcardno" placeholder="必填项" /> <el-form-item label="银行卡号" prop="expertbankcardno" label-width="80px" > <el-input v-model="funddetailForm.expertbankcardno" placeholder="必填项" /> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="showDetailInfoDialog = false">取 消</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">确 定</el-button> <el-button type="primary" @click="ConfirmDetailDialog()" >确 定</el-button > </span> </el-dialog> <el-dialog :title="pdftitle" :visible.sync="pdfVisible" width="50%"> <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="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 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 @@ -509,7 +915,7 @@ import { onelistFunds, listFunddetails, listrbDetails, listFunddetail, getFunddetail, delFunddetail, @@ -556,7 +962,7 @@ //import引入的组件需要注入到对象中才能使用 components: { Li_area_select, OrgSelecter, OrgSelecter }, name: "fundApply", @@ -629,9 +1035,9 @@ // 捐献人道慰问金表格数据 donateconsolationfundList: [], //费用明细列表 fundDetails: [], rbDetails: [], formData: {}, amount: 0.00, amount: 0.0, totalPreTaxAmount: 0.0, totalAfterTaxAmount: 0.0, totalAmount: 0.0, @@ -673,7 +1079,7 @@ expertunitname: null, experttitle: null, expertdepositbank: null, expertbankcardno: null, expertbankcardno: null }, expertform: { @@ -701,7 +1107,7 @@ userno: null, userstatus: 1, usertype: null, wbm: null, wbm: null }, // 查询参数 @@ -719,7 +1125,7 @@ treatmenthospitalname: null, donorno: null, reportername: null, reporttime: null, reporttime: null }, fundQueryParam: { @@ -727,7 +1133,7 @@ pageSize: 100, infoid: null, applytype: "0", createBy: null, createBy: null }, expertQueryParam: { @@ -735,14 +1141,14 @@ pageSize: 10000, userno: null, username: null, usertype: null, usertype: null }, //计算个税参数 taxParam: { beneficiaryNo: '', money: '0', startTime: '', beneficiaryNo: "", money: "0", startTime: "" }, //附件列表 @@ -752,7 +1158,7 @@ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", //文件上传token headers: { Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken() }, //票据文件 pdftitle: "", @@ -760,15 +1166,14 @@ pdfVisible: false, previewpdf: false, hintitle: "选中左侧已上传文件预览查看", atpresent: "", atpresent: "" }; }, //监听属性 类似于data概念 computed: {}, //监控data中的数据变化 watch: {}, //生命周期 - 创建完成(可以访问当前this实例) //生命周期 - 创建完成(可以访问当前this实例) created() { //获取路由参数 @@ -784,14 +1189,13 @@ this.getExternalList(); }, beforeCreate() { }, //生命周期 - 创建之前 beforeMount() { }, //生命周期 - 挂载之前 beforeUpdate() { }, //生命周期 - 更新之前 updated() { }, //生命周期 - 更新之后 beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 beforeCreate() {}, //生命周期 - 创建之前 beforeMount() {}, //生命周期 - 挂载之前 beforeUpdate() {}, //生命周期 - 更新之前 updated() {}, //生命周期 - 更新之后 beforeDestroy() {}, //生命周期 - 销毁之前 destroyed() {}, //生命周期 - 销毁完成 activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发 //方法集合 methods: { @@ -838,11 +1242,11 @@ consolationmoney: null, servicetypename: null, servicesscope: null, servicesscopename: null, servicesscopename: null }; this.resetForm("form"); //清空附件 this.fileList = [] this.fileList = []; }, /** 通过参数获取业务类型 */ getroute() { @@ -857,31 +1261,28 @@ // if (!this.businessType && !this.operationType) { if (this.businessType == "1") { this.curCase = this.$route.query.curCase; this.businessName = '专家劳务费申请单'; this.businessName = "专家劳务费申请单"; } else if (this.businessType == "2") { this.curCase = this.$route.query.curCase; this.businessName = '伦理专家劳务费申请单'; } else if (this.businessType == "3") { this.businessName = "伦理专家劳务费申请单"; } else if (this.businessType == "3") { this.curCase = this.$route.query.curCase; this.businessName = '医学成本报销单'; } else if (this.businessType == "4") { this.businessName = '杂项费用报销单'; this.businessName = "医学成本报销单"; } else if (this.businessType == "4") { this.businessName = "杂项费用报销单"; } if (this.operationType == 'add') { this.title = this.businessName + '新建' if (this.operationType == "add") { this.title = this.businessName + "新建"; this.handleAdd(); } else if (this.operationType == 'update') { this.title = this.businessName + '修改' } else if (this.operationType == "update") { this.title = this.businessName + "修改"; this.handleUpdate(); } else if (this.operationType == 'detail') { this.title = this.businessName + '查看' } else if (this.operationType == "detail") { this.title = this.businessName + "查看"; this.handleDetail(); } else if (this.operationType == 'check') { this.title = this.businessName + '审核' } else if (this.operationType == "check") { this.title = this.businessName + "审核"; this.handleCheck(); } // } else { @@ -898,15 +1299,19 @@ /** businessType:1:专家费;2:伦理专家费;3:医学成本;4:杂项费用*/ this.form.applytype = this.businessType; if (this.businessType == "1" || this.businessType == "2" || this.businessType == "3") { console.log("", this.curCase) if ( this.businessType == "1" || this.businessType == "2" || this.businessType == "3" ) { console.log("", this.curCase); this.form.infoid = this.curCase.id; this.form.donorname = this.curCase.name; this.form.donorno = this.curCase.donorno; } //初始化明细 this.fundDetails = []; //初始化明细 this.rbDetails = []; this.addRow(0); }, @@ -915,34 +1320,34 @@ this.isopen = 0; this.reset(); getFund(this.curId).then((response) => { getFund(this.curId).then(response => { this.form = response.data; // this.form.recordstate =-1; // this.form.recordstatus = response.data.recordstatus + ""; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] //明细处理 getownFundDetail(this.curId).then((res) => { this.fundDetails = res.data; console.log(this.curId,res.data); if (this.fundDetails.length > 0) { for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); getownFundDetail(this.curId).then(res => { this.rbDetails = res.data; console.log(this.curId, res.data); 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.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ servicesscope: this.fundDetails[m].servicesscope, expensedescribe: this.fundDetails[m].servicesscopename, expense: this.fundDetails[m].expense, remark: this.fundDetails[m].servicesscopename, this.rbDetails[m].rowfeeblocks = []; this.rbDetails[m].rowfeeblocks.push({ servicesscope: this.rbDetails[m].servicesscope, expensedescribe: this.rbDetails[m].servicesscopename, expense: this.rbDetails[m].expense, remark: this.rbDetails[m].servicesscopename }); // getdetailsByItemId(this.fundDetails[m].itemid).then((res) => { // getdetailsByItemId(this.rbDetails[m].itemid).then((res) => { // let fundmsg = res.data; // fundmsg.forEach((item) => { // this.fundDetails[m].rowfeeblocks.push({ // this.rbDetails[m].rowfeeblocks.push({ // servicesscope: item.id, // expensedescribe: item.expensedescribe, // expense: item.expense, @@ -951,7 +1356,9 @@ // }); // }); } } else { this.addRow(0); } } else { this.addRow(0); } }); }); }, @@ -961,37 +1368,37 @@ this.isopen = 0; this.reset(); getFund(this.curId).then((response) => { getFund(this.curId).then(response => { this.form = response.data; let listFundflowparams = { fundid: this.curId, fundtype: this.businessType, fundtype: this.businessType }; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] //业务明细 getownFundDetail(this.curId).then((res) => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemlist = []; this.getitemlist(m, this.fundDetails[m]); this.fundDetails[m].rowfeeblocks = []; this.fundDetails[m].rowfeeblocks.push({ expense: this.fundDetails[m].expense, expensedescribe: this.fundDetails[m].servicesscopename, remark: this.fundDetails[m].servicesscope, servicesscope: this.fundDetails[m].servicesscope, getownFundDetail(this.curId).then(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.rbDetails[m].rowfeeblocks = []; this.rbDetails[m].rowfeeblocks.push({ expense: this.rbDetails[m].expense, expensedescribe: this.rbDetails[m].servicesscopename, remark: this.rbDetails[m].servicesscope, servicesscope: this.rbDetails[m].servicesscope }); } if (this.fundDetails.length == 0) { if (this.rbDetails.length == 0) { this.addRow(0); } }); //业务流程 listFundflow(listFundflowparams).then((res) => { listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); }); @@ -1000,11 +1407,11 @@ handleDelete() { this.$modal .confirm("是否确认删除该记录?") .then(function () { .then(function() { return delFund(this.curId); }) .then(() => { getownFundDetail(this.curId).then((res) => { getownFundDetail(this.curId).then(res => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); @@ -1013,7 +1420,7 @@ this.getfundList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 上报按钮操作 */ @@ -1021,23 +1428,23 @@ this.$confirm("是否确认将登记记录上报?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", type: "warning" }) .then(() => { //查找是否存在登记完成记录 //判断是否存在上报记录 this.form.recordstatus = 0; updateFund(this.form).then((response) => { updateFund(this.form).then(response => { if (response.code == 200) { this.$message({ type: "success", message: "申请成功", message: "申请成功" }); } else { this.$message({ type: "error", message: "申请失败", message: "申请失败" }); } this.loading = false; @@ -1046,14 +1453,14 @@ .catch(() => { this.$message({ type: "info", message: "已取消申请", message: "已取消申请" }); }); }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate((valid) => { this.$refs["form"].validate(valid => { if (valid) { this.formData = this.form; // let totalPreTaxAmount = 0.0; @@ -1061,21 +1468,33 @@ // let totalAmount = 0.0; //保存前校验数据 for (let k = 0; k < this.fundDetails.length; k++) { let tempDetail = this.fundDetails[k]; for (let k = 0; k < this.rbDetails.length; k++) { let tempDetail = this.rbDetails[k]; if (tempDetail.itemid == null) { this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的服务项目未选择,请先选择服务项目后再提交保存!"); this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的服务项目未选择,请先选择服务项目后再提交保存!" ); return; } if (this.businessType == '1' || this.businessType == '2') { if (this.businessType == "1" || this.businessType == "2") { if (tempDetail.servicesscope == null) { this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的费用说明未选择,请选择费用说明后再提交保存!"); this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的费用说明未选择,请选择费用说明后再提交保存!" ); return; } if (tempDetail.beneficiaryno == null) { this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的服务人员姓名为选择,请选择人员后再提交保存!"); this.$modal.msgWarning( "服务项目表中,第" + (k + 1).toString() + "行的服务人员姓名为选择,请选择人员后再提交保存!" ); return; } } @@ -1096,17 +1515,18 @@ //附件处理 let list = this.fileList; if (list.length > 0) { this.form.annexfiles = list.map(item => item.url).join(","); } console.log(list); // if (list.length > 0) { // this.form.annexfiles = list.map(item => item.url).join(","); // } //处理明细 for (let i = 0; i < this.fundDetails.length; i++) { let tempDetail = this.fundDetails[i]; for (let i = 0; i < this.rbDetails.length; i++) { let tempDetail = this.rbDetails[i]; //获取服务项目明细 let tempitemlist = tempDetail.itemlist; let itemIndex = tempitemlist.findIndex( (item) => tempDetail.itemid == item.id item => tempDetail.itemid == item.id ); if (itemIndex > -1) { tempDetail.itemname = tempitemlist[itemIndex].itemName; @@ -1115,14 +1535,20 @@ //获取applytypename、服务费用大类 let applytypeIndex = this.rowfeeItemTypes.findIndex( (item) => tempDetail.applytype == item.value item => tempDetail.applytype == item.value ); if (applytypeIndex > -1) { tempDetail.applytypename = this.rowfeeItemTypes[applytypeIndex].label; tempDetail.subjecttype = this.rowfeeItemTypes[applytypeIndex].subjecttype; tempDetail.subjecttypename = this.rowfeeItemTypes[applytypeIndex].subjecttypename; tempDetail.applytypename = this.rowfeeItemTypes[ applytypeIndex ].label; tempDetail.subjecttype = this.rowfeeItemTypes[ applytypeIndex ].subjecttype; tempDetail.subjecttypename = this.rowfeeItemTypes[ applytypeIndex ].subjecttypename; } this.fundDetails[i] = tempDetail; this.rbDetails[i] = tempDetail; /* //计算个税 //if (isNaN(parseFloat(tempDetail.taxedamount))) @@ -1137,7 +1563,7 @@ if (res.code == 200) { tempDetail.taxamount = res.data; tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount; this.fundDetails[k] = tempDetail; this.rbDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); @@ -1153,7 +1579,7 @@ if (res.code == 200) { tempDetail.taxamount = res.data.nowTax; tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney); this.fundDetails[k] = tempDetail; this.rbDetails[k] = tempDetail; this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); this.totalAmount += parseFloat(tempDetail.amount); @@ -1169,21 +1595,22 @@ //保存数据 this.loading = true; this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; this.form.servicerbDetails = 0; this.rbDetails.map(item => { this.form.servicerbDetails += item.amount; }); this.form.serviceFunddetails = this.fundDetails; console.log(this.rbDetails); this.form.servicerbDetails = this.rbDetails; if (this.form.id != null) { // updateFund(this.form).then((response) => { // if (response.code === 200) { // this.loading = false; // for (let m = 0; m < this.fundDetails.length; m++) { // if (this.fundDetails[m].id > 0) { // updateFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("专家劳务费保存失败1:" + response.msg); } }); // for (let m = 0; m < this.rbDetails.length; m++) { // if (this.rbDetails[m].id > 0) { // updateFunddetail(this.rbDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("专家劳务费保存失败1:" + response.msg); } }); // } else { // addFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("专家劳务费保存失败2:" + response.msg); } }); // addFunddetail(this.rbDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("专家劳务费保存失败2:" + response.msg); } }); // } // } // this.$modal.msgSuccess("专家劳务费保存成功!"); @@ -1191,7 +1618,6 @@ // this.$modal.msgError("专家劳务费保存失败:" + response.msg); // } // }); } else { this.form.recordstatus = -1; @@ -1204,7 +1630,7 @@ // }); } addorupdateFund(this.form).then((response) => { addorupdateFund(this.form).then(response => { if (response.code === 200) { this.selectDonotor(this.curCase); this.$modal.msgSuccess("申请单保存成功!"); @@ -1218,23 +1644,26 @@ // this.getfundList(); // this.selectDonotor(this.curCase); this.$router.go(-1); } }); }, // 取消按钮 cancel() { // this.reset(); // this.reset(); this.$router.go(-1); }, //获取当前用户信息 getUserProfile() { getUserProfile().then((res) => { getUserProfile().then(res => { this.userprofile = res.data; this.standardlevel = res.data.standardlevel; if (this.userprofile.createBy == "admin" || this.userprofile.createBy == "001" || this.userprofile.createBy == "002") { if ( this.userprofile.createBy == "admin" || this.userprofile.createBy == "001" || this.userprofile.createBy == "002" ) { this.ismanager = true; } else { this.ismanager = false; @@ -1252,19 +1681,19 @@ //获取系统用户列表 getUserList() { listUser().then((res) => { listUser().then(res => { this.userlist = res.data; }); },//获取系统用户列表 }, //获取系统用户列表 getUserList() { listUser().then((res) => { listUser().then(res => { this.userlist = res.data; }); }, //获取所有专家/医疗机构/费用报销机构列表 getExternalList() { listExternalperson().then((res) => { listExternalperson().then(res => { this.personlist = res.rows; for (let j = 0; j < this.personlist.length; j++) { //获取费用报销机构列表 @@ -1275,14 +1704,14 @@ reportName: this.personlist[j].username, depositbank: this.personlist[j].depositbank, branchbankname: this.personlist[j].branchbankname, bankcardno: this.personlist[j].bankcardno, bankcardno: this.personlist[j].bankcardno }); } //专家人员列表 else if (res.rows[j].usertype == "expert") { this.expertlist.push({ expertNo: this.personlist[j].id, exportName: this.personlist[j].username, exportName: this.personlist[j].username }); } } @@ -1295,11 +1724,11 @@ let templist = []; for (let i = 0; i < types.length; i++) { templist = []; listReportname(types[i]).then((res) => { listReportname(types[i]).then(res => { for (let j = 0; j < res.data.length; j++) { templist.push({ reportName: res.data[j].reportName, reportNo: res.data[j].reportNo, reportNo: res.data[j].reportNo }); } this.expertlist = this.expertlist.concat(templist); @@ -1309,19 +1738,19 @@ //获取费用机构列表 getFeeUnitList() { listReportname("org").then((res) => { listReportname("org").then(res => { this.feeUnitList = res.data; }); }, //获取医疗机构列表 getUnitList() { listOrganization(3).then((response) => { listOrganization(3).then(response => { for (let i = 0; i < response.rows.length; i++) { this.unitList.push({ //organizationid: response.rows[i].organizationid, organizationid: response.rows[i].id, organizationname: response.rows[i].organizationname, organizationname: response.rows[i].organizationname }); } }); @@ -1329,7 +1758,7 @@ //获取费用类型 getFundType() { getFundTypeAll(this.businessType).then((res) => { getFundTypeAll(this.businessType).then(res => { let dataList = res.data; this.feeItemTypes = dataList; this.rowfeeItemTypes = []; @@ -1338,28 +1767,28 @@ value: dataList[m].itemType, label: dataList[m].itemTypeName, subjecttype: dataList[m].subjecttype, subjecttypename: dataList[m].subjecttypename, subjecttypename: dataList[m].subjecttypename }); } }); }, getitemlist(rowindex, row) { let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; this.$set(this.fundDetails, rowindex, row); this.$set(this.rbDetails, rowindex, row); //this.loading = true; // getItemNames(row.applytype).then((res) => { // this.loading = false; // row.itemlist = res.data; // this.$set(this.fundDetails, rowindex, row); // this.$set(this.rbDetails, rowindex, row); // }); }, //获取捐献案例列表 getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then((response) => { listDonatebaseinfo(this.queryParams).then(response => { this.donatebaseinfoList = response.rows; this.total = response.total; this.loading = false; @@ -1370,7 +1799,7 @@ this.loading = true; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then((response) => { listFund(this.fundQueryParam).then(response => { this.loading = false; this.donateconsolationfundList = response.rows; }); @@ -1391,9 +1820,9 @@ row.taxedamount = 0.0; } this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.form.serviceFunddetails += item.amount; this.form.servicerbDetails = 0; this.rbDetails.map(item => { this.form.servicerbDetails += item.amount; }); } }); @@ -1401,14 +1830,14 @@ //校验收费项目是否重复 verifyFeeItem(row) { row.itemlist.map((res) => { row.itemlist.map(res => { if (row.itemid === res.id) { row.remark = res.itemDescribe; row.itemcode = res.itemCode; } }); var repeatNum = 0; this.fundDetails.map((res) => { this.rbDetails.map(res => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } @@ -1418,15 +1847,15 @@ } //获取费用项目的详细信息 getdetailsByItemId(row.itemid).then((res) => { getdetailsByItemId(row.itemid).then(res => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { fundmsg.forEach(item => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, servicesscope: item.id }); }); @@ -1434,7 +1863,6 @@ row.servicesscope = null; row.servicesscopename = ""; }); }, //合计费用 @@ -1455,15 +1883,15 @@ //导入所有项目 addAllItems() { this.loading = true; this.fundDetails = this.fundDetails.filter( (r) => r.applytype != "" && r.applytype != null this.rbDetails = this.rbDetails.filter( r => r.applytype != "" && r.applytype != null ); let listAdd = []; //let listAdd = this.fundDetails; //let listAdd = this.rbDetails; for (let i = 0; i < this.feeItemTypes.length; i++) { for (let j = 0; j < this.feeItemTypes[i].itemDetails.length; j++) { let list = this.fundDetails.filter( (r) => let list = this.rbDetails.filter( r => r.applytype == this.feeItemTypes[i].itemType && r.itemid == this.feeItemTypes[i].itemDetails[j].id ); @@ -1485,15 +1913,15 @@ }; //获取收费项目的说明信息 getdetailsByItemId(rowData.itemid).then((res) => { getdetailsByItemId(rowData.itemid).then(res => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { fundmsg.forEach(item => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, servicesscope: item.id }); }); @@ -1506,9 +1934,9 @@ } } } this.fundDetails = listAdd; this.rbDetails = listAdd; this.loading = false; // let Outerarr = this.fundDetails; // let Outerarr = this.rbDetails; // Outerarr.map((res) => { // let onelist = this.rowfeeItemTypes; // onelist.map((item) => { @@ -1521,7 +1949,7 @@ }, addAll(row, i, arr) { row.itemlist.map((res) => { row.itemlist.map(res => { if (res.id !== row.itemid) { let a = arr.length; this.addRow(); @@ -1529,15 +1957,15 @@ arr[a].applytype = row.applytype; arr[a].itemid = res.id; getdetailsByItemId(arr[a].itemid).then((res) => { getdetailsByItemId(arr[a].itemid).then(res => { let fundmsg = res.data; let rowfeeblocks = []; fundmsg.forEach((item) => { fundmsg.forEach(item => { rowfeeblocks.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, servicesscope: item.id }); }); row.rowfeeblocks = rowfeeblocks; @@ -1590,21 +2018,21 @@ itemlist: [], servicesscope: null, rowfeeblocks: [], annexfiles: null, annexfiles: null }; if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { this.fundDetails.push(rowData); this.rbDetails.push(rowData); } else { this.fundDetails.splice(rowIndex + 1, 0, rowData); this.rbDetails.splice(rowIndex + 1, 0, rowData); } for (let i = 0; i < this.fundDetails.length; i++) { this.fundDetails[i].orderno = i + 1; 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); let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); row.itemlist = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); @@ -1619,7 +2047,7 @@ selectpersonmsg(row) { // if(row.beneficiaryname) this.personlist.map((res) => { this.personlist.map(res => { if (row.beneficiaryname == res.username) { row.beneficiaryno = res.userno; row.beneficiaryname = res.username; @@ -1652,9 +2080,9 @@ } scope.row.itemlist = result; } else { getItemNames(scope.row.applytype).then((res) => { getItemNames(scope.row.applytype).then(res => { scope.row.itemlist = res.data; //this.$set(this.fundDetails, rowindex, row); //this.$set(this.rbDetails, rowindex, row); }); } }, @@ -1663,28 +2091,28 @@ this.$confirm("删除数据后将不能恢复,确认要删除吗?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "success", type: "success" }) .then(() => { if (row.id !== null) { delFunddetail(row.id).then((res) => { delFunddetail(row.id).then(res => { if (res.code === 200) { this.$confirm("删除数据成功", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "success", type: "success" }).then(() => { this.$set(rows, rows.splice(index, 1)); getownFundDetail(this.form.id).then((res) => { this.$set(this.fundDetails, res.data); getownFundDetail(this.form.id).then(res => { this.$set(this.rbDetails, res.data); this.sumTotalFee(); // this.fundDetails = res.data // this.rbDetails = res.data }); }); } // getownFundDetail(this.form.id).then(res=>{ // this.$set(this.fundDetails,res.data) // this.fundDetails = res.data // this.$set(this.rbDetails,res.data) // this.rbDetails = res.data // }) }); } else { @@ -1697,49 +2125,47 @@ }); //全部删除后添加一条新行 if (this.fundDetails.length == 1) { if (this.rbDetails.length == 1) { this.addRow(0); } }, //计算个税 calculateTax() { }, calculateTax() {}, //计算总金额 sumTotalFee(row) { let allSum = 0; if (this.form.applytype != null) { for (let i = 0; i < this.fundDetails.length; i++) { for (let i = 0; i < this.rbDetails.length; i++) { let totalFee = 0; let taxFee = 0; if (this.form.applytype == 1 || this.form.applytype == 2) { //计算当前报销内容费用合计 if (!isNaN(parseFloat(this.fundDetails[i].amount))) { totalFee += parseFloat(this.fundDetails[i].amount); taxFee += parseFloat(this.fundDetails[i].amount); if (!isNaN(parseFloat(this.rbDetails[i].amount))) { totalFee += parseFloat(this.rbDetails[i].amount); taxFee += parseFloat(this.rbDetails[i].amount); } if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) { totalFee -= parseFloat(this.fundDetails[i].taxamount); taxFee -= parseFloat(this.fundDetails[i].taxamount); if (!isNaN(parseFloat(this.rbDetails[i].taxamount))) { totalFee -= parseFloat(this.rbDetails[i].taxamount); taxFee -= parseFloat(this.rbDetails[i].taxamount); } } else if (this.form.applytype == 3 || this.form.applytype == 4) { //单价*数量=税前金额 if ( !isNaN(parseFloat(this.fundDetails[i].price)) && !isNaN(parseFloat(this.fundDetails[i].quantity)) !isNaN(parseFloat(this.rbDetails[i].price)) && !isNaN(parseFloat(this.rbDetails[i].quantity)) ) { totalFee += parseFloat(this.fundDetails[i].price) * parseFloat(this.fundDetails[i].quantity); this.fundDetails[i].amount = totalFee; parseFloat(this.rbDetails[i].price) * parseFloat(this.rbDetails[i].quantity); this.rbDetails[i].amount = totalFee; } } //税前、税后需要独立录入 // if (!isNaN(parseFloat(taxFee))) { // this.fundDetails[i].taxedamount = taxFee.toFixed(2); // this.rbDetails[i].taxedamount = taxFee.toFixed(2); // } allSum += totalFee; @@ -1756,7 +2182,7 @@ //专家费劳务打印 dayin(id) { getdownloadLW(id).then((res) => { getdownloadLW(id).then(res => { if (res.downloadUrl) { var fileUrl = res; //获取当前网址 @@ -1770,7 +2196,7 @@ aEle.click(); this.$alert("下载成功", "提示", { confirmButtonText: "确定", type: "success", type: "success" }); } }); @@ -1779,7 +2205,7 @@ //汇总打印 totaldayin(e) { // const id =this.row.id getdownloadBX(e).then((res) => { getdownloadBX(e).then(res => { if (res.downloadUrl) { var fileUrl = res; //获取当前网址 @@ -1793,20 +2219,20 @@ aEle.click(); this.$alert("下载成功", "提示", { confirmButtonText: "确定", type: "success", type: "success" }); } }); }, //文件上传 handleUploadError() { }, handleUploadError() {}, /** 下载文件按钮操作 */ downFile(item) { const url = process.env.VUE_APP_BASE_API + item.url var a = document.createElement('a'); var event = new MouseEvent('click'); const url = process.env.VUE_APP_BASE_API + item.url; var a = document.createElement("a"); var event = new MouseEvent("click"); a.download = item.name; a.href = url; a.dispatchEvent(event); @@ -1855,7 +2281,7 @@ Filepopup(index, rows, row) { this.atpresent = index; this.pdfVisible = true; if (this.fundDetails[index].annexfilesList) { if (this.rbDetails[index].annexfilesList) { this.fileListto = this.rbDetails[index].annexfilesList; } else { this.fileListto = []; @@ -1910,12 +2336,12 @@ let tempIndex = this.funddetailForm.index; let tempName = this.funddetailForm.beneficiaryname; let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetails[tempIndex]; let singleDetail = this.rbDetails[tempIndex]; if (this.showDetailInfoType == "name") { if (this.expertfrom == "1") { //从专家列表获取信息 this.personlist.map((res) => { this.personlist.map(res => { if (tempName == res.username) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; @@ -1932,7 +2358,8 @@ } 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; @@ -1945,10 +2372,12 @@ this.expertform.unitno = this.funddetailForm.expertunitno; try { let unitIndex = this.unitList.findIndex( (item) => this.expertform.unitno == item.organizationid item => this.expertform.unitno == item.organizationid ); if (unitIndex > -1) { this.expertform.unitname = this.unitList[unitIndex].organizationname; this.expertform.unitname = this.unitList[ unitIndex ].organizationname; } else { this.expertform.unitname = this.expertform.unitno; } @@ -1964,14 +2393,14 @@ this.expertform.remark = null; this.expertform.del_flag = "0"; addExternalperson(this.expertform).then((response) => { addExternalperson(this.expertform).then(response => { if (response.code == 200) { this.$modal.msgSuccess("新增专家信息成功!"); listExternalperson().then((res) => { listExternalperson().then(res => { this.personlist = res.rows; //从专家列表获取信息 this.personlist.map((res) => { this.personlist.map(res => { if (res.username == this.funddetailForm.expertname) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; @@ -1989,13 +2418,12 @@ } }); } } else if (this.showDetailInfoType == "unit") { singleDetail.unitno = this.funddetailForm.unitno; if (this.businessType == 1 || this.businessType == 2) { try { let unitIndex = this.unitList.findIndex( (item) => singleDetail.unitno == item.organizationid item => singleDetail.unitno == item.organizationid ); if (unitIndex > -1) { singleDetail.unitname = this.unitList[unitIndex].organizationname; @@ -2008,12 +2436,14 @@ } else if (this.businessType == 3 || this.businessType == 4) { try { let unitIndex = this.feeUnitList.findIndex( (item) => singleDetail.unitno == item.reportNo item => singleDetail.unitno == item.reportNo ); if (unitIndex > -1) { singleDetail.unitname = this.feeUnitList[unitIndex].reportName; singleDetail.depositbank = this.feeUnitList[unitIndex].depositbank; singleDetail.depositbank = this.feeUnitList[ unitIndex ].depositbank; singleDetail.bankcardno = this.feeUnitList[unitIndex].bankcardno; } else { singleDetail.unitname = singleDetail.unitno; @@ -2024,16 +2454,12 @@ } } this.fundDetails[tempIndex] = singleDetail; this.rbDetails[tempIndex] = singleDetail; this.showDetailInfoDialog = false; }, }, } } }; </script> <style lang="scss" scoped> .Modifydetailscla { @@ -2076,7 +2502,7 @@ border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. } .pdftit { @@ -2102,8 +2528,6 @@ width: 60%; text-align: center; } } ::v-deep .el-input--medium .el-input__inner { @@ -2111,4 +2535,4 @@ line-height: 36px; text-align: center; } </style> </style> src/views/project/fund/medicalCostFundApply/index.vue
@@ -1,25 +1,52 @@ <!-- --> <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="70px"> <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="70px" > <el-row align="left"> <el-col :span="6"> <el-form-item label="姓名" prop="name"> <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="捐献进度" prop="recordstate"> <el-select v-model="queryParams.recordstate" placeholder="请选择记录状态" clearable size="small"> <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-select v-model="queryParams.recordstate" placeholder="请选择记录状态" clearable size="small" > <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> <el-col :span="6"> <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-col> </el-row> </el-form> @@ -33,18 +60,32 @@ </el-row> </el-col> </el-row> <el-table v-loading="loading" border highlight-current-row :data="donatebaseinfoList" @row-click="selectDonotor"> <el-table v-loading="loading" border highlight-current-row :data="donatebaseinfoList" @row-click="selectDonotor" > <!-- <el-table-column label="捐献编号" align="center" prop="donorno" /> --> <el-table-column label="捐献进度" align="center" prop="recordstate"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" /> <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" /> </template> </el-table-column> <el-table-column label="姓名" align="center" prop="name" /> </el-table> <pagination v-show="total > 0" :total="total" small :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" /> <pagination v-show="total > 0" :total="total" small :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" /> </el-card> </el-col> <el-col :span="18"> @@ -52,13 +93,23 @@ <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-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> <el-input v-model="curCase.donorno" :disabled="true" ></el-input> </el-form-item> </el-col> <el-col :span="9"> @@ -69,44 +120,122 @@ <el-col> </el-col> </el-row> <el-row> <el-table v-loading="loading" border :data="donateconsolationfundList"> <el-table-column label="申请日期" align="center" prop="createTime" width="150px"> <el-table v-loading="loading" border :data="donateconsolationfundList" > <el-table-column label="申请日期" align="center" prop="createTime" width="150px" > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span> </template> </el-table-column> <el-table-column label="申请人" align="center" prop="username" width="150px" /> <el-table-column label="审核状态" width="150" align="center" prop="recordstatus"> <el-table-column label="申请人" align="center" prop="username" width="150px" /> <el-table-column label="审核状态" width="150" align="center" prop="recordstatus" > <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="申请金额" align="center" prop="amountrequested" width="150px" /> <el-table-column label="所属组别" align="center" prop="deptmentname" width="150px" /> <el-table-column label="组长" align="center" prop="managername" width="220px" /> <el-table-column label="申请金额" align="center" prop="amountrequested" width="150px" /> <el-table-column label="所属组别" align="center" prop="deptmentname" width="150px" /> <el-table-column label="组长" align="center" prop="managername" width="220px" /> <!-- <el-table-column label="联系电话" align="center" prop="phone" width="150px" /> <el-table-column label="工作单位" align="center" prop="unitname" width="150px" /> --> <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" width="280px"> <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" width="280px" > <template slot-scope="scope"> <el-button v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1 " size="mini" type="text" icon="el-icon-edit" @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)" v-hasPermi="['project:medicalfund:edit']">修改</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-delete" @click="handleDelete(scope.row)" v-hasPermi="['project:medicalfund:delete']">删除</el-button> <el-button size="mini" type="text" icon="el-icon-download" @click="mixExport(scope.row.id)" v-hasPermi="['project:medicalfund:download']">下载</el-button> <el-button v-if=" scope.row.recordstatus == -1 || scope.row.recordstatus == 1 " size="mini" type="text" icon="el-icon-edit" @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)" v-hasPermi="['project:medicalfund:edit']" >修改</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-delete" @click="handleDelete(scope.row)" v-hasPermi="['project:medicalfund:delete']" >删除</el-button > <el-button size="mini" type="text" icon="el-icon-download" @click="mixExport(scope.row.id)" v-hasPermi="['project:medicalfund:download']" >下载</el-button > </template> </el-table-column> </el-table> @@ -116,40 +245,73 @@ </el-col> </el-row> <!-- 添加或修改费用申请单 --> <el-dialog :visible.sync="dialogOpen" :close-on-click-modal="false" width="1400px" :title="title" style="text-align: center" v-loading="loading"> <el-dialog :visible.sync="dialogOpen" :close-on-click-modal="false" width="1400px" :title="title" style="text-align: center" v-loading="loading" > <el-form ref="form" :model="form" label-width="120px" :rules="rules"> <el-row style="text-align: left"> <el-col :span="5"> <el-form-item label="申请日期" prop="createTime"> <el-date-picker clearable style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期"> <el-date-picker clearable 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" placeholder="申请人" clearable filterable allow-create style="width: 100%"> <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname"></el-option> <el-select v-model="form.username" placeholder="申请人" clearable filterable allow-create style="width: 100%" > <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" :value="dict.nickname" ></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="所属组别" prop="deptmentname"> <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable /> <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable /> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="组长" prop="managername"> <el-input v-model="form.managername" placeholder="请输入组长" clearable /> <el-input v-model="form.managername" placeholder="请输入组长" clearable /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <el-col :span="5"> <el-form-item label="申请类型"> <el-radio v-model="form.applytype" label='3'>医学成本申请</el-radio> <el-radio v-model="form.applytype" label="3" >医学成本申请</el-radio > </el-form-item> </el-col> <el-col :span="10"> @@ -159,16 +321,26 @@ </el-col> <el-col :span="5"> <el-form-item label="捐献者" prop="name"> <el-input :disabled="true" v-model="form.name" placeholder="请输入捐献者姓名" clearable /> <el-input :disabled="true" v-model="form.name" placeholder="请输入捐献者姓名" clearable /> </el-form-item> </el-col> </el-row> <el-row style="text-align: left"> <el-col :span="5"> <el-form-item label="申请金额" prop="amountrequested"> <el-input v-model="form.amountrequested" placeholder="申请金额" :disabled="true" /> <el-input v-model="form.amountrequested" placeholder="申请金额" :disabled="true" /> </el-form-item> </el-col> <!--<el-col :span="5"> </el-col> <!--<el-col :span="5"> <el-form-item label="税前金额" prop="pretaxcost"> <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> </el-form-item> @@ -201,40 +373,88 @@ </el-row> <el-row style="margin-bottom: 10px"> <el-col :span="4"> <el-button @click.native.prevent="addAlls" type="primary" size="small"> <el-button @click.native.prevent="addAlls" type="primary" size="small" > 导入服务项目 </el-button> </el-col> </el-row> <el-row style="margin-top: 5px; margin-bottom: 5px"> <el-table :data="fundDetails" border highlight-current-row> <el-table-column prop="orderno" align="center" label="排序" width="80"> <el-table-column prop="orderno" align="center" label="排序" width="80" > <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="排序" /> </template> </el-table-column> <el-table-column prop="itemtype" align="center" label="费用类型" width="220"> <el-table-column prop="itemtype" align="center" label="费用类型" width="220" > <template slot-scope="scope"> <el-select v-model="scope.row.applytype" placeholder="费用类型" @change="LoadItemTypeArr(scope.row)"> <el-option v-for="dict in fundtypeArr" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> <el-select v-model="scope.row.applytype" placeholder="费用类型" @change="LoadItemTypeArr(scope.row)" > <el-option v-for="dict in fundtypeArr" :key="dict.value" :label="dict.label" :value="dict.value" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="itemtype" align="center" label="服务项目" width="260"> <el-table-column prop="itemtype" align="center" label="服务项目" width="260" > <template slot-scope="scope"> <el-select v-model="scope.row.itemid" placeholder="服务项目" clearable filterable allow-create @change="select(scope.row)" :filter-method="(val) => SearchItem(val, scope)"> <el-option v-for="dict in scope.row.itemArr" :key="dict.id" :label="dict.itemName" :value="dict.id"></el-option> <el-select v-model="scope.row.itemid" placeholder="服务项目" clearable filterable allow-create @change="select(scope.row)" :filter-method="val => SearchItem(val, scope)" > <el-option v-for="dict in scope.row.itemArr" :key="dict.id" :label="dict.itemName" :value="dict.id" ></el-option> </el-select> </template> </el-table-column> <el-table-column prop="beneficiaryno" align="center" label="姓名" width="120" v-if="form.applytype != 3"> <el-table-column prop="beneficiaryno" align="center" label="姓名" width="120" v-if="form.applytype != 3" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname }}</el-button> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')" >{{ scope.row.beneficiaryname }}</el-button > </template> </el-table-column> <!-- <el-table-column @@ -261,12 +481,28 @@ </el-select> </template> </el-table-column> --> <el-table-column prop="amount" align="center" label="税前金额" width="120" v-if="form.applytype != 3"> <el-table-column prop="amount" align="center" label="税前金额" width="120" v-if="form.applytype != 3" > <template slot-scope="scope"> <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create @change="selectamount(scope.row)"> <el-option v-for="dict in fundblock" :key="dict.expensedescribe" :label="dict.expense" :value="dict.expense"></el-option> <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create @change="selectamount(scope.row)" > <el-option v-for="dict in fundblock" :key="dict.expensedescribe" :label="dict.expense" :value="dict.expense" ></el-option> </el-select> <!-- <el-input @@ -281,96 +517,226 @@ --> </template> </el-table-column> <el-table-column prop="taxamount" align="center" label="扣税" width="120" v-if="form.applytype != '3'"> <el-table-column prop="taxamount" align="center" label="扣税" width="120" v-if="form.applytype != '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.taxamount" placeholder="扣税" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.taxamount" placeholder="扣税" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="form.applytype != '3'"> <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="form.applytype != '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> <el-input v-model="scope.row.taxedamount" placeholder="税后金额" /> </template> </el-table-column> <el-table-column prop="price" align="center" label="价格" width="120" v-if="form.applytype == '3'"> <el-table-column prop="price" align="center" label="价格" width="120" v-if="form.applytype == '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.price" placeholder="价格" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.price" placeholder="价格" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="quantity" align="center" label="数量" width="80" v-if="form.applytype == '3'"> <el-table-column prop="quantity" align="center" label="数量" width="80" v-if="form.applytype == '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.quantity" placeholder="数量" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.quantity" placeholder="数量" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="amount" align="center" label="金额" width="120" v-if="form.applytype == '3'"> <el-table-column prop="amount" align="center" label="金额" width="120" v-if="form.applytype == '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.amount" placeholder="价格" @blur="(val) => { sumTotalFee(scope.row); } " /> <el-input v-model="scope.row.amount" placeholder="价格" @blur=" val => { sumTotalFee(scope.row); } " /> </template> </el-table-column> <el-table-column prop="unitno" align="center" label="费用单位名称" width="220"> <el-table-column prop="unitno" align="center" label="费用单位名称" width="220" > <template slot-scope="scope"> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')">{{ scope.row.unitname }}</el-button> <el-button type="primary" plain @click="ShowDetailDialog(scope, 'unit')" >{{ scope.row.unitname }}</el-button > </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="开户银行" width="200"> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" > <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="银行卡号" width="210"> <el-table-column prop="bankcardno" align="center" label="银行卡号" width="210" > <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="remark" align="center" label="备注" width="210" v-if="form.applytype == '3'"> <el-table-column prop="remark" align="center" label="备注" width="210" v-if="form.applytype == '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.remark" placeholder="备注" /> </template> </el-table-column> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype != '3'"> <el-table-column prop="title" align="center" label="职称" width="120" v-if="form.applytype != '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.title" placeholder="职称" /> </template> </el-table-column> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype != '3'"> <el-table-column prop="idcardno" align="center" label="身份证号" width="200" v-if="form.applytype != '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.idcardno" placeholder="身份证号" /> </template> </el-table-column> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '3'"> <el-table-column prop="depositbank" align="center" label="开户银行" width="200" v-if="form.applytype != '3'" > <template slot-scope="scope"> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> </template> </el-table-column> <el-table-column prop="bankcardno" align="center" label="银行卡号" width="210" v-if="form.applytype != '3'"> <el-table-column prop="bankcardno" align="center" label="银行卡号" width="210" v-if="form.applytype != '3'" > <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 fixed="right" align="center" label="操作" width="120" v-if="dialogType == 'edit'"> <el-table-column fixed="right" align="center" label="操作" width="120" v-if="dialogType == 'edit'" > <template slot-scope="scope"> <el-button type="text" size="mini" @click="addRow(scope.$index)">新增</el-button> <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, fundDetails) " type="text" size="small"> <el-button type="text" size="mini" @click="addRow(scope.$index)" >新增</el-button > <el-button @click.native.prevent=" deleteRows(scope.row, scope.$index, fundDetails) " type="text" size="small" > 删除 </el-button> <el-button @click.native.prevent=" Filepopup(scope.$index, fundDetails, scope.row) " type="text" size="small"> <el-button @click.native.prevent=" Filepopup(scope.$index, fundDetails, scope.row) " type="text" size="small" > 票据 </el-button> </template> @@ -428,55 +794,143 @@ </el-row> --> <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) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="handleremove" accept="image/*,.pdf"> <el-button :disabled='dialogType == "detail"' size="small" type="primary">上传</el-button> <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) => uploadSccess(response, file, fileList) " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="handleremove" 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 type="success" @click="print">打 印</el-button> --> <el-button @click="cancel">取 消</el-button> </div> </el-dialog> <el-dialog :visible.sync="detailInfoDialogShow" :close-on-click-modal="false" :title="'费用单位选择'" style="text-align: center" v-loading="loading" width="500px"> <el-dialog :visible.sync="detailInfoDialogShow" :close-on-click-modal="false" :title="'费用单位选择'" style="text-align: center" v-loading="loading" width="500px" > <el-form ref="funddetailForm" :model="funddetailForm" label-width="120px"> <el-row> <el-col :span="24" v-if="detailInfoDialogShowType == 'name'"> <el-form-item align="left" 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 arrr3" :key="item.reportNo" :label="item.reportName" :value="item.reportName"> <el-form-item align="left" 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 arrr3" :key="item.reportNo" :label="item.reportName" :value="item.reportName" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" v-if="detailInfoDialogShowType == 'unit'"> <el-form-item align="left" label="单位名称" prop="unitno" label-width="80px"> <el-select v-model="funddetailForm.unitno" placeholder="请选择单位" clearable filterable allow-create style="width: 100%"> <el-option v-for="(item, index) in bankaccountlist" :key="index" :label="item.reportName" :value="item.reportNo"></el-option> <el-form-item align="left" label="单位名称" prop="unitno" label-width="80px" > <el-select v-model="funddetailForm.unitno" placeholder="请选择单位" clearable filterable allow-create style="width: 100%" > <el-option v-for="(item, index) in bankaccountlist" :key="index" :label="item.reportName" :value="item.reportNo" ></el-option> </el-select> </el-form-item> </el-col> @@ -484,7 +938,9 @@ </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="detailInfoDialogShow = false">取 消</el-button> <el-button type="primary" @click="ConfirmDetailDialog()">确 定</el-button> <el-button type="primary" @click="ConfirmDetailDialog()" >确 定</el-button > </span> </el-dialog> @@ -492,12 +948,31 @@ <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="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> </div> <!-- <div @@ -536,7 +1011,7 @@ getdownloadYX, getdownloadBX, addorupdateFund, getdetailsByItemId, getdetailsByItemId } from "@/api/project/fund"; import { onelistFunds, @@ -551,13 +1026,13 @@ getItemNames, getFundType, getFundTypeAll, listcountItem, listcountItem } from "@/api/project/funddetail"; import { listOrganization, getOrganization, listReportname, listUser, listUser } from "@/api/project/organization"; import { listExternalperson, @@ -566,11 +1041,11 @@ delExternalperson, addExternalperson, updateExternalperson, exportExternalperson, exportExternalperson } from "@/api/project/externalperson"; import { listDonatebaseinfo, getDonatebaseinfo, getDonatebaseinfo } from "@/api/project/donatebaseinfo"; import Li_area_select from "@/components/Address"; import OrgSelecter from "@/views/project/components/orgselect"; @@ -582,7 +1057,7 @@ //import引入的组件需要注入到对象中才能使用 components: { Li_area_select, OrgSelecter, OrgSelecter }, name: "fundApply", dicts: [ @@ -596,7 +1071,7 @@ "sys_fund_type", "sys_finsubject", "sys_financeitemtype", "sys_expensetype", "sys_expensetype" ], data() { //这里存放数据 @@ -621,7 +1096,7 @@ treatmenthospitalname: null, donorno: null, reportername: null, reporttime: null, reporttime: null }, fundQueryParam: { @@ -629,21 +1104,21 @@ pageSize: 100, infoid: null, applytype: "3", createBy: null, createBy: null }, // 表单参数 form: {}, // 表单校验 rules: { username: [ { required: true, message: "请输入申请人", trigger: "blur" }, { required: true, message: "请输入申请人", trigger: "blur" } ], createTime: [ { required: true, message: "请输入申请日期", trigger: "blur" }, { required: true, message: "请输入申请日期", trigger: "blur" } ], deptmentname: [ { required: true, message: "请输入所属业务组", trigger: "blur" }, ], { required: true, message: "请输入所属业务组", trigger: "blur" } ] }, //捐献案例列表数据 @@ -679,7 +1154,6 @@ fundtypeArrAll: [], dialogType: "edit", detailInfoDialogShow: false, detailInfoDialogShowType: "", funddetailForm: { @@ -687,7 +1161,7 @@ beneficiaryno: null, unitno: null, unitname: null, index: null, index: null }, //附件列表 @@ -696,7 +1170,7 @@ //上传附件路径 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", headers: { Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken() }, //票据文件 pdftitle: "", @@ -704,7 +1178,7 @@ pdfVisible: false, previewpdf: false, hintitle: "选中左侧已上传文件预览查看", atpresent: "", atpresent: "" }; }, //监听属性 类似于data概念 @@ -726,13 +1200,13 @@ this.getUsermsg(); }, beforeCreate() { }, //生命周期 - 创建之前 beforeMount() { }, //生命周期 - 挂载之前 beforeUpdate() { }, //生命周期 - 更新之前 updated() { }, //生命周期 - 更新之后 beforeDestroy() { }, //生命周期 - 销毁之前 destroyed() { }, //生命周期 - 销毁完成 activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 beforeCreate() {}, //生命周期 - 创建之前 beforeMount() {}, //生命周期 - 挂载之前 beforeUpdate() {}, //生命周期 - 更新之前 updated() {}, //生命周期 - 更新之后 beforeDestroy() {}, //生命周期 - 销毁之前 destroyed() {}, //生命周期 - 销毁完成 activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发 //方法集合 methods: { @@ -754,12 +1228,13 @@ this.loading = true; this.queryParams.params = {}; if (null != this.daterangeReporttime && "" != this.daterangeReporttime) { this.queryParams.params["beginReporttime"] = this.daterangeReporttime[0]; this.queryParams.params[ "beginReporttime" ] = this.daterangeReporttime[0]; this.queryParams.params["endReporttime"] = this.daterangeReporttime[1]; } // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); listDonatebaseinfo(this.queryParams).then((response) => { listDonatebaseinfo(this.queryParams).then(response => { this.donatebaseinfoList = response.rows; this.total = response.total; this.loading = false; @@ -770,7 +1245,12 @@ handleAdd() { this.$router.push({ path: "/finance/fundcontext/", query: { id: 0, businessType: "3", operationType: "add", curCase: this.curCase } query: { id: 0, businessType: "3", operationType: "add", curCase: this.curCase } }); return; @@ -798,7 +1278,7 @@ } else { const h = this.$createElement; this.$message({ message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]), message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]) }); } }, @@ -806,7 +1286,13 @@ handleUpdate(row) { this.$router.push({ path: "/finance/fundcontext/", query: { id: row.id, businessType: "3", operationType: "update", curCase: this.curCase } query: { id: row.id, businessType: "3", pos: 2, operationType: "update", curCase: this.curCase } }); return; @@ -819,15 +1305,18 @@ this.dialogOpen = true; this.title = "修改费用申请"; const id = row.id || this.ids; getFund(id).then((response) => { getFund(id).then(response => { this.form = response.data; this.form.name = this.curCase.name; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] this.fileList = this.form.annexbankcard ? this.form.annexbankcard .split(",") .map(item => ({ url: item, name: item })) : []; getownFundDetail(id).then(async (res) => { getownFundDetail(id).then(async res => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemArr = []; @@ -841,7 +1330,12 @@ handleDetail(row) { this.$router.push({ path: "/finance/fundcontext/", query: { id: row.id, businessType: "3", operationType: "detail", curCase: this.curCase } query: { id: row.id, businessType: "3", operationType: "detail", curCase: this.curCase } }); return; @@ -855,20 +1349,24 @@ this.dialogType = "detail"; const id = row.id || this.ids; getFund(id).then((response) => { getFund(id).then(response => { this.form = response.data; this.form.name = this.curCase.name; let listFundflowparams = { fundid: row.id, fundtype: 2, fundtype: 2 }; //附件处理 this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] this.fileList = this.form.annexbankcard ? this.form.annexbankcard .split(",") .map(item => ({ url: item, name: item })) : []; listFundflow(listFundflowparams).then((res) => { listFundflow(listFundflowparams).then(res => { this.fundflowList = res.rows; }); getownFundDetail(id).then((res) => { getownFundDetail(id).then(res => { this.fundDetails = res.data; for (let m = 0; m < this.fundDetails.length; m++) { this.fundDetails[m].itemArr = []; @@ -878,7 +1376,7 @@ expense: this.fundDetails[m].expense, expensedescribe: this.fundDetails[m].servicesscopename, remark: this.fundDetails[m].servicesscope, servicesscope: this.fundDetails[m].servicesscope, servicesscope: this.fundDetails[m].servicesscope }); } }); @@ -890,11 +1388,11 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该记录?") .then(function () { .then(function() { return delFund(ids); }) .then(() => { getownFundDetail(ids).then((res) => { getownFundDetail(ids).then(res => { let listdetails = res.data; for (let i = 0; i < listdetails.length; i++) { delFunddetail(listdetails[i].id); @@ -904,7 +1402,7 @@ this.getfundList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 上报按钮操作 */ @@ -912,23 +1410,23 @@ this.$confirm("是否确认将登记记录上报?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", type: "warning" }) .then(() => { //查找是否存在登记完成记录 //判断是否存在上报记录 row.recordstatus = 0; updateFund(row).then((response) => { updateFund(row).then(response => { if (response.code == 200) { this.$message({ type: "success", message: "申请成功", message: "申请成功" }); } else { this.$message({ type: "error", message: "申请失败", message: "申请失败" }); } this.loading = false; @@ -937,7 +1435,7 @@ .catch(() => { this.$message({ type: "info", message: "已取消申请", message: "已取消申请" }); }); }, @@ -958,7 +1456,7 @@ let tempUnitname = this.funddetailForm.unitname; let singleDetail = this.fundDetails[tempIndex]; if (this.detailInfoDialogShowType == "name") { this.personlist.map((res) => { this.personlist.map(res => { if (tempName == res.username) { singleDetail.beneficiaryno = res.userno; singleDetail.beneficiaryname = res.username; @@ -979,13 +1477,17 @@ singleDetail.unitno = this.funddetailForm.unitno; try { let unitIndex = this.bankaccountlist.findIndex( (item) => singleDetail.unitno == item.reportNo item => singleDetail.unitno == item.reportNo ); if (unitIndex > -1) { singleDetail.unitname = this.bankaccountlist[unitIndex].reportName; singleDetail.depositbank = this.bankaccountlist[unitIndex].depositbank; singleDetail.bankcardno = this.bankaccountlist[unitIndex].bankcardno; singleDetail.depositbank = this.bankaccountlist[ unitIndex ].depositbank; singleDetail.bankcardno = this.bankaccountlist[ unitIndex ].bankcardno; } else { singleDetail.unitname = singleDetail.unitno; } @@ -993,7 +1495,7 @@ singleDetail.unitname = singleDetail.unitno; } } this.fundDetails[tempIndex] = singleDetail; this.detailInfoDialogShow = false; }, @@ -1004,7 +1506,7 @@ row.servivesscope = item.servivesscope; row.amount = item.expense; this.form.serviceFunddetails = 0; this.fundDetails.map((item) => { this.fundDetails.map(item => { this.form.serviceFunddetails += item.amount; }); } @@ -1012,14 +1514,14 @@ }, select(row) { row.itemArr.map((res) => { row.itemArr.map(res => { if (row.itemid === res.id) { row.remark = res.itemDescribe; row.itemcode = res.itemCode; } }); var repeatNum = 0; this.fundDetails.map((res) => { this.fundDetails.map(res => { if (res.applytype === row.applytype && res.itemid == row.itemid) { repeatNum++; } @@ -1028,15 +1530,15 @@ this.$modal.msgWarning("您已经提交过服务项目"); } getdetailsByItemId(row.itemid).then((res) => { getdetailsByItemId(row.itemid).then(res => { let fundmsg = res.data; let fundblock = []; fundmsg.forEach((item) => { fundmsg.forEach(item => { fundblock.push({ expense: item.expense, expensedescribe: item.expensedescribe, remark: item.expensedescribe, servicesscope: item.id, servicesscope: item.id }); }); row.fundblock = fundblock; @@ -1052,7 +1554,7 @@ }); }, getUsermsg() { getUserProfile().then((response) => { getUserProfile().then(response => { this.defaultperson = response.data; this.standardlevel = response.data.standardlevel; }); @@ -1060,13 +1562,12 @@ getBaseInfoList() { this.loading = true; listDonatebaseinfo(this.queryParams).then((response) => { listDonatebaseinfo(this.queryParams).then(response => { this.donatebaseinfoList = response.rows; this.total = response.total; this.loading = false; }); }, //点击捐献案例列表触发方法 selectDonotor(row, column, event) { @@ -1077,7 +1578,7 @@ this.loading = true; this.reset(); this.fundQueryParam.infoid = this.curCase.id; listFund(this.fundQueryParam).then((response) => { listFund(this.fundQueryParam).then(response => { this.loading = false; this.donateconsolationfundList = response.rows; }); @@ -1130,12 +1631,12 @@ servicetypename: null, servicesscopename: null, dialogType: "edit", fundflowList: [], fundflowList: [] }; this.resetForm("form"); //清空附件 this.fileList = [] this.fileList = []; }, //新增一行 @@ -1180,7 +1681,7 @@ uploadflag: null, uploadtime: null, itemArr: [], servivesscope: null, servivesscope: null }; if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { this.fundDetails.push(rowData); @@ -1194,7 +1695,7 @@ //加载服务项目 LoadItemTypeArr(row) { let list = this.fundtypeArrAll.filter((r) => r.itemType == row.applytype); let list = this.fundtypeArrAll.filter(r => r.itemType == row.applytype); row.itemArr = list[0].itemDetails; row.itemid = null; this.$forceUpdate(); @@ -1209,7 +1710,7 @@ /** 提交按钮 */ submitForm() { this.$refs["form"].validate((valid) => { this.$refs["form"].validate(valid => { if (valid) { let formData = this.form; for (let k = 0; k < this.fundDetails.length; k++) { @@ -1253,7 +1754,7 @@ ); if (this.form.id != null) { updateFund(this.form).then((response) => { updateFund(this.form).then(response => { this.getfundList(); this.dialogOpen = false; @@ -1267,16 +1768,16 @@ tempData.fundid = formData.id; //获取服务项目明细 let itemIndex = tempItemArr.findIndex( (item) => tempData.itemid == item.id 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) => { }); updateFunddetail(tempData).then(response2 => {}); } else { addFunddetail(tempData).then((response2) => { }); addFunddetail(tempData).then(response2 => {}); } } }); @@ -1288,7 +1789,7 @@ //获取服务项目明细 let itemIndex = tempUtemArr.findIndex( (item) => tempData.itemid == item.id item => tempData.itemid == item.id ); if (itemIndex > -1) { tempData.itemname = tempUtemArr[itemIndex].itemName; @@ -1296,7 +1797,7 @@ } //获取applytypename let applytypeIndex = this.fundtypeArr.findIndex( (item) => tempData.applytype == item.value item => tempData.applytype == item.value ); if (applytypeIndex > -1) { tempData.applytypename = this.fundtypeArr[applytypeIndex].label; @@ -1305,7 +1806,7 @@ } this.form.serviceFunddetails = this.fundDetails; addorupdateFund(this.form).then((response) => { addorupdateFund(this.form).then(response => { if (response.code === 200) { this.$modal.msgSuccess("新增成功"); this.loading = false; @@ -1328,36 +1829,34 @@ getBankAccount() { //获取银行账号列表,类型是机构 listReportname("org").then((res) => { listReportname("org").then(res => { this.bankaccountlist = res.data; }); }, getlistUser() { listUser().then((res) => { listUser().then(res => { this.userlist = res.data; }); }, deleteRows(row, index, rows) { this.$confirm("是否确认删除?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "success", type: "success" }) .then(() => { if (row.id !== null) { delFunddetail(row.id).then((res) => { delFunddetail(row.id).then(res => { if (res.code === 200) { this.$confirm("删除成功", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "success", type: "success" }).then(() => { this.$set(rows, rows.splice(index, 1)); getownFundDetail(this.form.id).then((res) => { getownFundDetail(this.form.id).then(res => { this.$set(this.fundDetails, res.data); this.sumTotalFee(row); // this.fundDetails = res.data @@ -1415,21 +1914,21 @@ //获取费用类型 getCurFundType() { getFundTypeAll(this.currentApplyType).then((res) => { getFundTypeAll(this.currentApplyType).then(res => { let dataList = res.data; this.fundtypeArrAll = dataList; this.fundtypeArr = []; for (let m = 0; m < dataList.length; m++) { this.fundtypeArr.push({ value: dataList[m].itemType, label: dataList[m].itemTypeName, label: dataList[m].itemTypeName }); } }); }, getItemArr(rowindex, row) { let list = this.fundtypeArrAll.filter((r) => r.itemType == row.applytype); let list = this.fundtypeArrAll.filter(r => r.itemType == row.applytype); row.itemArr = list[0].itemDetails; this.$set(this.fundDetails, rowindex, row); //this.loading = true; @@ -1443,14 +1942,14 @@ addAlls() { this.loading = true; this.fundDetails = this.fundDetails.filter( (r) => r.applytype != "" && r.applytype != null r => r.applytype != "" && r.applytype != null ); let listAdd = []; //let listAdd = this.fundDetails; for (let i = 0; i < this.fundtypeArrAll.length; i++) { for (let j = 0; j < this.fundtypeArrAll[i].itemDetails.length; j++) { let list = this.fundDetails.filter( (r) => r => r.applytype == this.fundtypeArrAll[i].itemType && r.itemid == this.fundtypeArrAll[i].itemDetails[j].id ); @@ -1464,7 +1963,7 @@ recordstatus: "-1", itemArr: this.fundtypeArrAll[i].itemDetails, beneficiaryname: "点击选择", unitname: "点击选择", unitname: "点击选择" }; listAdd.push(rowData); } @@ -1485,13 +1984,13 @@ }, getUnitList() { listOrganization(3).then((res) => { listOrganization(3).then(res => { for (let i = 0; i < res.rows.length; i++) { this.unitList.push({ organizationid: res.rows[i].organizationid, organizationname: res.rows[i].organizationname, bankname: res.rows[i].bankname, bankaccount: res.rows[i].bankaccount, bankaccount: res.rows[i].bankaccount }); } }); @@ -1499,7 +1998,7 @@ // 捐献者医学统计打印 dayin2(id) { getdownloadYX(id).then((res) => { getdownloadYX(id).then(res => { if (res.downloadUrl) { var fileUrl = res; //获取当前网址 @@ -1513,7 +2012,7 @@ aEle.click(); this.$alert("下载成功", "提示", { confirmButtonText: "确定", type: "success", type: "success" }); } }); @@ -1522,7 +2021,7 @@ //汇总打印 totaldayin(e) { // const id =this.row.id getdownloadBX(e).then((res) => { getdownloadBX(e).then(res => { if (res.downloadUrl) { var fileUrl = res; //获取当前网址 @@ -1536,7 +2035,7 @@ aEle.click(); this.$alert("下载成功", "提示", { confirmButtonText: "确定", type: "success", type: "success" }); } }); @@ -1561,7 +2060,7 @@ } scope.row.itemArr = result; } else { getItemNames(scope.row.applytype).then((res) => { getItemNames(scope.row.applytype).then(res => { scope.row.itemArr = res.data; //this.$set(this.fundDetails, rowindex, row); }); @@ -1569,10 +2068,10 @@ }, //文件上传 handleUploadError() { }, handleUploadError() {}, handleremove(file) { this.fileList.splice(this.fileList.indexOf(file), 1) this.fileList.splice(this.fileList.indexOf(file), 1); }, handleExceed() { @@ -1587,21 +2086,21 @@ this.$modal.msgSuccess(response.msg); this.fileList.push({ name: response.fileName, url: response.fileName }); } else { console.log(response.msg);; console.log(response.msg); } }, // 下载文件 downFile(item) { const url = process.env.VUE_APP_BASE_API + item.url var a = document.createElement('a'); var event = new MouseEvent('click'); const url = process.env.VUE_APP_BASE_API + item.url; var a = document.createElement("a"); var event = new MouseEvent("click"); a.download = item.name; a.href = url; a.dispatchEvent(event); }, remove(file) { this.fileList.splice(this.fileList.indexOf(file), 1) this.fileList.splice(this.fileList.indexOf(file), 1); }, // 点击文件 @@ -1636,8 +2135,8 @@ this.$modal.msgWarning("当前文件暂不支持预览"); this.previewpdf = false; } }, }, } } }; </script> <style scoped> src/views/project/travelexpenseslist/Modifydetails/index.vue
@@ -3,19 +3,36 @@ <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> @@ -40,8 +57,18 @@ </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> @@ -50,17 +77,36 @@ <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> @@ -166,117 +212,270 @@ <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> <!-- @@ -291,67 +490,155 @@ </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="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 > </template> </el-table-column> </el-table> @@ -360,60 +647,153 @@ <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-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> @@ -426,12 +806,26 @@ </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> @@ -441,16 +835,41 @@ <el-row v-if="dialogType == 'detail' || dialogType == 'check'"> <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-row style="margin-top: 25px; margin-bottom: 5px" v-if="dialogType == 'check'"> <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="dialogType == 'check'" > <el-col :span="7"> <el-form-item label="审核结果" align="left"> <el-radio-group v-model="checkObj.flowlevelone" align="left"> @@ -469,8 +888,18 @@ </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="dialogType == 'edit'" >保 存</el-button > <el-button type="primary" @click="checksubmit" v-if="dialogType == 'check'" >提 交</el-button > <!--<el-button @click="cancel">退 出</el-button>--> </div> </div> @@ -479,12 +908,31 @@ <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="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> </div> <!-- <div @@ -686,12 +1134,11 @@ checkObj: { flowlevelone: null, flowconclusion: null, fundid: null, fundid: null }, //保存按钮控制 idisabled: false, idisabled: false }; }, @@ -707,7 +1154,6 @@ this.defaultperson = response.data; this.standardlevel = response.data.standardlevel; console.log("this.defaultperson", this.defaultperson); }); //获取捐献者姓名 @@ -729,7 +1175,6 @@ //获取部门信息 //this.getTreeselect(); }, mounted() { @@ -741,17 +1186,15 @@ this.handleAdd(ids); } else if (pos == 2) { this.handleUpdate(ids); } else if (pos == 3) { } else if (pos == 3) { this.handleDetail(ids); } else if (pos == 4) { } else if (pos == 4) { this.handleCheck(ids); } }, methods: { handleUploadError() { }, handleUploadError() {}, remove(file, fileList) { const rbDetails = [...this.rbDetails]; @@ -911,7 +1354,7 @@ row.days = ( Math.floor( Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1000 * 3600 * 24) (1000 * 3600 * 24) ) + 1 ).toString(); } else { @@ -920,12 +1363,15 @@ //计算补助 this.getallowance(row); }, //计算补助 getallowance(row) { if (row.persontype == "专职人员" || row.persontype == "协调员" || row.persontype == "管理人员") { if ( row.persontype == "专职人员" || row.persontype == "协调员" || row.persontype == "管理人员" ) { //公杂费补助:杭州桐庐,建德,淳安60,杭州其他地区0,非杭州地区80 if (row.destination != "") { var tempStr = row.destination; @@ -1222,8 +1668,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 + ""; @@ -1231,6 +1677,7 @@ //获取报销明细信息 getReimbursementdetaillist(ids).then(res => { this.rbDetails = res.data; console.log(this.rbDetails); if (this.rbDetails.length == 0) { this.addDetailRow(0); } @@ -1275,8 +1722,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1336,8 +1783,8 @@ //票据 this.fileListto = this.form.annexfiles ? this.form.annexfiles .split(",") .map(item => ({ url: item, name: item })) .split(",") .map(item => ({ url: item, name: item })) : []; //审核状态 @@ -1355,6 +1802,7 @@ //报销明细 getReimbursementdetaillist(ids).then(res => { this.rbDetails = res.data; console.log(this.rbDetails); /* for (let i = 0; i < this.rbDetails.length; i++) { this.rbDetails[i].index = i; @@ -1389,7 +1837,7 @@ let checkfundobj = { flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion, fundid: this.checkObj.fundid, fundid: this.checkObj.fundid }; if ( @@ -1401,7 +1849,7 @@ return; } checkfund(checkfundobj).then((res) => { checkfund(checkfundobj).then(res => { this.reset(); this.open = false; this.getList(); @@ -1520,9 +1968,9 @@ this.$modal.msgSuccess("修改报销单保存成功!"); this.open = false; // 关闭窗口 this.$router.go(-1); // 关闭窗口 this.$router.go(-1); // this.getList(); // }) // .catch(err => { @@ -1548,17 +1996,14 @@ this.$modal.msgSuccess("新增报销单保存成功!"); this.open = false; // 关闭窗口 this.$router.go(-1); // 关闭窗口 this.$router.go(-1); }) .catch(err => { this.$modal.msgError("新增报销单保存失败!"); }); } } }); }, @@ -1568,7 +2013,7 @@ const ids = row.id || this.ids; this.$modal .confirm("是否确认删除该条记录?") .then(function () { .then(function() { // 删除details内的数据 return delReimbursement(ids); }) @@ -1577,7 +2022,7 @@ this.getList(); this.$modal.msgSuccess("删除成功"); }) .catch(() => { }); .catch(() => {}); }, /** 导出按钮操作 */ @@ -1593,7 +2038,7 @@ this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => { }); .catch(() => {}); }, //新增一行 @@ -1876,7 +2321,7 @@ this.form.amountrequested = allSum.toFixed(2); this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested); } catch { } } catch {} }, //金额数字转换成大写 @@ -1983,14 +2428,28 @@ getSummaries(param) { const { columns, data } = param; const sums = []; var columnnames = ["bankname", "bankcardno", "remark", "personname", "starttime", "endtime", "departure", "destination", "traffictype", "traffictype2", "departure"]; var columnnames = [ "bankname", "bankcardno", "remark", "personname", "starttime", "endtime", "departure", "destination", "traffictype", "traffictype2", "departure" ]; columns.forEach((column, index) => { if (index === 0) { sums[index] = '合计'; sums[index] = "合计"; return; } //去除部分字段计算 if (columnnames.indexOf(column.property) > -1) { return; } if (columnnames.indexOf(column.property) > -1) { return; } const values = data.map(item => Number(item[column.property])); if (!values.every(value => isNaN(value))) { @@ -2002,17 +2461,15 @@ return prev; } }, 0); sums[index] += ''; sums[index] += ""; } else { sums[index] = ''; sums[index] = ""; } }); return sums; }, } } }; </script> <style lang="scss" scoped> @@ -2056,7 +2513,7 @@ border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. } .pdftit { @@ -2082,8 +2539,6 @@ width: 60%; text-align: center; } } ::v-deep .el-input--medium .el-input__inner { vue.config.js
@@ -33,9 +33,9 @@ proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { target:`http://localhost:8080`, // target:`http://localhost:8080`, // target:`http://116.62.18.175:8080`, // target:`http://192.168.1.4:8086`, target:`http://192.168.1.4:8086`, // target: `https://slb.hospitalstar.com:9093`, changeOrigin: true, pathRewrite: {