| | |
| | | <!-- --> |
| | | <template> |
| | | <div class="app-container"> |
| | | <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-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> |
| | | </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-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-card shadow="never"> |
| | | <!-- 捐献案例列表 --> |
| | | <el-row> |
| | | <el-col :span="10"> |
| | | <el-row type="flex" :gutter="10" align="right" class="mb8"> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | <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" /> |
| | | </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" /> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="18"> |
| | | <el-col :span="24"> |
| | | <el-card shadow="naver"> |
| | | <el-form ref="infoform" label-width="100px"> |
| | | <el-row :gutter="4" align="right" class="mb8"> |
| | | <el-col :span="9"> |
| | | <el-form-item label="捐献编号"> |
| | | <el-input v-model="curCase.donorno" :disabled="true"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="姓名"> |
| | | <el-input v-model="curCase.name" :disabled="true"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col> </el-col> |
| | | </el-row> |
| | | <!-- 报销单筛选:捐献者、审批状态 --> |
| | | <el-form class="opo-query-form" :model="fundQueryParam" ref="fundQueryForm" :inline="true" |
| | | label-width="82px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="捐献者" prop="donorname"> |
| | | <el-input v-model="fundQueryParam.donorname" placeholder="请输入捐献者姓名" clearable size="small" |
| | | @keyup.enter.native="handleQueryFund" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="审批状态" prop="recordstatus"> |
| | | <el-select v-model="fundQueryParam.recordstatus" placeholder="请选择审批状态" clearable size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" |
| | | :value="Number(dict.value)" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQueryFund">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetFundQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" |
| | |
| | | </el-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" :row-class-name="rowClassName"> |
| | | <el-table-column label="申请日期" align="center" prop="applyTime" width="150px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | parseTime(scope.row.createTime, "{y}-{m}-{d}") |
| | | parseTime(scope.row.applyTime, "{y}-{m}-{d}") |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="申请人" align="center" prop="username" width="120px" /> |
| | | <el-table-column label="经办人" align="center" prop="username" width="120px" /> |
| | | <el-table-column label="申请金额" align="center" prop="pretaxcost" width="200px" /> |
| | | <el-table-column label="所属组别" align="center" prop="deptmentname" width="220px" /> |
| | | <el-table-column label="组长" align="center" prop="managername" width="200px" /> |
| | | <el-table-column label="审核状态" align="center" prop="recordstatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="材料预审状态" width="140" align="center" prop="checkstatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="捐献者" align="center" prop="donorname" show-overflow-tooltip /> |
| | | <el-table-column label="所属组别" align="center" prop="deptmentname"/> |
| | | <el-table-column label="组长" align="center" prop="managername" /> |
| | | <!-- |
| | | <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"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-if="scope.row.recordstatus == -1 || |
| | | <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 || |
| | | " 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-view" @click="handleDetail(scope.row)">查看</el-button> |
| | | <el-button v-if="scope.row.recordstatus == -1 || |
| | | " size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-view" |
| | | @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> |
| | | " size="mini" type="text" @click="handleDelete(scope.row)"><span class="button-delete"><i |
| | | class="el-icon-delete"></i>删除</span></el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-download" |
| | | @click="mixExport(scope.row.id)">下载</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- 2026-10-22:按要求隐藏「功能」列(线下报销),需要时取消注释即可恢复 --> |
| | | <!-- |
| | | <el-table-column |
| | | fixed="right" |
| | | align="center" |
| | | width="120" |
| | | label="功能" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" v-if="scope.row.uploadStates == 1" |
| | | >线下已报销</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | type="success" |
| | | v-else-if="scope.row.uploadStates == 0" |
| | | @click="Dooffline(scope.$index, scope.row)" |
| | | >线下报销</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | --> |
| | | </el-table> |
| | | <!-- 未选择案例时展示该登录人全部医学成本单据,超过一页可用分页翻看 --> |
| | | <pagination v-show="fundTotal > 0" :total="fundTotal" small :page.sync="fundQueryParam.pageNum" |
| | | :limit.sync="fundQueryParam.pageSize" @pagination="listFundData" /> |
| | | </el-row> |
| | | </el-form> |
| | | </el-card> |
| | | </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-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> |
| | | |
| | | <!-- 新增申请单前先选择捐献案例(原左侧案例列表移到这里) --> |
| | | <el-dialog title="选择捐献案例" :visible.sync="caseDialogVisible" width="760px" append-to-body> |
| | | <el-form class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" label-width="70px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </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> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="所属组别" prop="deptmentname"> |
| | | <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-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-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="申请说明" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="备注" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="捐献者" prop="name"> |
| | | <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-form-item> |
| | | </el-col> |
| | | <!--<el-col :span="5"> |
| | | <el-form-item label="税前金额" prop="pretaxcost"> |
| | | <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="税后金额" prop="pretaxcost"> |
| | | <el-input v-model="form.taxedcost" placeholder="税后金额合计" :disabled="true" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="审核状态" prop="recordstatus"> |
| | | <el-input v-if="0" 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" |
| | | <el-col :span="8"> |
| | | <el-form-item label="捐献进度" prop="recordstate"> |
| | | <el-select v-model="queryParams.recordstate" placeholder="请选择记录状态" clearable size="small" |
| | | style="width: 100%"> |
| | | <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="5"> |
| | | <el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入申请者的联系方式" clearable /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="工作单位" prop="unitno"> |
| | | <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> |
| | | </el-form-item> |
| | | </el-col>--> |
| | | </el-row> |
| | | <el-row style="margin-bottom: 10px"> |
| | | <el-col :span="4"> |
| | | <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"> |
| | | <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"> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | prop="servicesscopename" |
| | | align="center" |
| | | label="费用说明" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-select |
| | | v-model="scope.row.servicesscopename" |
| | | placeholder="费用说明" |
| | | clearable |
| | | allow-create |
| | | filterable |
| | | @change="selectremark(scope.row)" |
| | | > |
| | | <el-option |
| | | v-for="dict in fundblock" |
| | | :key="dict.expensedescribe" |
| | | :label="dict.expensedescribe" |
| | | :value="dict.expensedescribe" |
| | | ></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> --> |
| | | <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> |
| | | <!-- |
| | | <el-input |
| | | v-model="scope.row.amount" |
| | | placeholder="税前金额" |
| | | @change="selectamount(scope.row)" |
| | | @blur=" |
| | | (val) => { |
| | | sumTotalFee(scope.row); |
| | | } |
| | | " /> |
| | | --> |
| | | </template> |
| | | </el-table-column> |
| | | <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); |
| | | } |
| | | " /> |
| | | </template> |
| | | </el-table-column> |
| | | <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="税后金额" /> |
| | | </template> |
| | | </el-table-column> |
| | | <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); |
| | | } |
| | | " /> |
| | | </template> |
| | | </el-table-column> |
| | | <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); |
| | | } |
| | | " /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <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); |
| | | } |
| | | " /> |
| | | </template> |
| | | </el-table-column> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="depositbank" align="center" label="开户银行" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bankcardno" align="center" label="银行卡号" width="210"> |
| | | <template slot-scope="scope"> |
| | | <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'"> |
| | | <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'"> |
| | | <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'"> |
| | | <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'"> |
| | | <template slot-scope="scope"> |
| | | <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'"> |
| | | <template slot-scope="scope"> |
| | | <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'"> |
| | | <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> |
| | | <el-button @click.native.prevent=" |
| | | Filepopup(scope.$index, fundDetails, scope.row) |
| | | " type="text" size="small"> |
| | | 票据 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="4"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="addRow" |
| | | >新增成本费用</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-form-item label="预支金额" prop="prepaidamount"> |
| | | <el-input v-model="form.prepaidamount" placeholder="申请金额" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="OPO中心签字" prop="opochecker"> |
| | | <el-input v-model="form.opochecker" placeholder="opo中心签字" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="财务副院长" prop="finvicepresident"> |
| | | <el-input v-model="form.finvicepresident" placeholder="财务副院长" /> |
| | | <el-form-item label-width="10px"> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="业务副院长" prop="busvicepresident"> |
| | | <el-input v-model="form.busvicepresident" placeholder="业务副院长" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="办公室主任" prop="officedirector"> |
| | | <el-input v-model="form.officedirector" placeholder="请输入办公室主任" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="财务部负责人" prop="financedirector"> |
| | | <el-input v-model="form.financedirector" placeholder="请输入财务部负责人" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="财务审核" prop="financechecher"> |
| | | <el-input v-model="form.financechecher" placeholder="请输入财务审核" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="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-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> |
| | | <el-table-column label="审核备注" align="center" prop="flowcontent" /> |
| | | </el-table> |
| | | </el-row> |
| | | </el-form> |
| | | <el-table ref="caseTable" v-loading="loading" border height="380" highlight-current-row :data="donatebaseinfoList" |
| | | @row-click="selectDonotor"> |
| | | <el-table-column label="捐献进度" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <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-column label="操作" align="center" width="90"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="mini" @click="selectDonotor(scope.row)">选择</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" small :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" /> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <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-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-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-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="detailInfoDialogShow = false">取 消</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="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 |
| | | class="pdftit" |
| | | @click="pdffn(item)" |
| | | v-for="item in fileList" |
| | | :key="item.name" |
| | | > |
| | | {{ item.name }} |
| | | </div> --> |
| | | </div> |
| | | |
| | | <div v-if="this.previewpdf" class="pdfimgmin"> |
| | | <img :src="pdfimg" /> |
| | | </div> |
| | | <div v-else class="pdfimgmins">{{ hintitle }}</div> |
| | | <el-button @click="caseDialogVisible = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | import { getUserProfile } from "@/api/system/user"; |
| | | import { listFundflow } from "@/api/project/fundflow"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money"; |
| | | |
| | | export default { |
| | | //import引入的组件需要注入到对象中才能使用 |
| | |
| | | "sys_fund_type", |
| | | "sys_finsubject", |
| | | "sys_financeitemtype", |
| | | "sys_expensetype" |
| | | "sys_expensetype", |
| | | "sys_stage_type" |
| | | ], |
| | | data() { |
| | | //这里存放数据 |
| | |
| | | |
| | | fundQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | pageSize: 10, |
| | | infoid: null, |
| | | applytype: "3", |
| | | createBy: null |
| | | createBy: null, |
| | | // 报销单筛选条件 |
| | | donorname: null, |
| | | recordstatus: null |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | |
| | | username: [ |
| | | { required: true, message: "请输入申请人", trigger: "blur" } |
| | | ], |
| | | createTime: [ |
| | | applyTime: [ |
| | | { required: true, message: "请输入申请日期", trigger: "blur" } |
| | | ], |
| | | deptmentname: [ |
| | |
| | | donatebaseinfoList: [], |
| | | //当前选中捐献案例 |
| | | curCase: {}, |
| | | // 「选择捐献案例」对话框(新增申请单时使用) |
| | | caseDialogVisible: false, |
| | | casePickerMode: "", |
| | | //是否显示费用申请弹窗 |
| | | dialogOpen: false, |
| | | // title: "", |
| | |
| | | |
| | | // 捐献人道慰问金表格数据 |
| | | donateconsolationfundList: [], |
| | | // 右侧报销单总数(用于分页) |
| | | fundTotal: 0, |
| | | |
| | | //明细记录 |
| | | fundDetails: [], |
| | |
| | | watch: {}, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | | created() { |
| | | this.getList(); |
| | | this.getBaseInfoList(); |
| | | // 案例列表已移入「选择捐献案例」对话框,打开对话框时再查询 |
| | | this.getCurFundType(); |
| | | this.getlistUser(); |
| | | // this.getUnitList(); |
| | | // 首屏展示当前登录人的全部医学成本单据 |
| | | this.getAllfundList(); |
| | | }, |
| | | |
| | | //生命周期 - 挂载完成(可以访问DOM元素) |
| | |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | /** 重置按钮操作(案例选择对话框内的案例查询) */ |
| | | resetQuery() { |
| | | this.daterangeReporttime = []; |
| | | |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | Dooffline(a, value) { |
| | | value.uploadStates = 1; |
| | | value.notes = "线下已报销"; |
| | | addorupdateFund(value).then(res => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("记录成功"); |
| | | } else { |
| | | this.$modal.msgError(res.msg); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** 查询捐献人道慰问金列表 */ |
| | |
| | | }); |
| | | }, |
| | | |
| | | /** 新增按钮操作 */ |
| | | /** 新增按钮操作:先弹出「选择捐献案例」对话框 */ |
| | | handleAdd() { |
| | | if (this.curCase.id) { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "3", |
| | | operationType: "add", |
| | | curCase: this.curCase |
| | | } |
| | | }); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请在左边的捐献案例表选择需要操作的案例!")]), |
| | | }); |
| | | } |
| | | return; |
| | | this.casePickerMode = "add"; |
| | | this.caseDialogVisible = true; |
| | | this.getBaseInfoList(); |
| | | }, |
| | | |
| | | if (this.curCase.id) { |
| | | this.istrue += 2; |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.name = this.curCase.name; |
| | | this.form.infoid = this.curCase.id; |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.userno = this.defaultperson.userName; |
| | | this.form.deptmentname = this.defaultperson.dept.deptName; |
| | | this.form.deptmentno = this.defaultperson.dept.deptId; |
| | | this.form.managername = this.defaultperson.dept.leader; |
| | | |
| | | // this.form.createTime = nowdate; |
| | | //this.open = true; |
| | | //this.initFundApplyForm(); |
| | | this.fundDetails = []; |
| | | this.addRow(); |
| | | this.dialogOpen = true; |
| | | this.title = "添加费用申请"; |
| | | this.dialogType = "edit"; |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]) |
| | | }); |
| | | } |
| | | /** 携带已选案例跳转到申请单填写页 */ |
| | | goApplyAdd() { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "3", |
| | | operationType: "add", |
| | | curCase: this.curCase, |
| | | } |
| | | }); |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | |
| | | //查找是否存在登记完成记录 |
| | | //判断是否存在上报记录 |
| | | row.recordstatus = 0; |
| | | |
| | | var currenttime = new Date(); |
| | | row.applyTime = |
| | | currenttime.getFullYear() + |
| | | "-" + |
| | | (currenttime.getMonth() + 1) + |
| | | "-" + |
| | | currenttime.getDate() + |
| | | " " + |
| | | currenttime.getHours() + |
| | | ":" + |
| | | currenttime.getMinutes() + |
| | | ":" + |
| | | currenttime.getSeconds(); |
| | | updateFund(row).then(response => { |
| | | if (response.code == 200) { |
| | | this.$message({ |
| | |
| | | }); |
| | | }, |
| | | |
| | | //点击捐献案例列表触发方法 |
| | | //点击捐献案例列表触发方法(案例列表已移入「选择捐献案例」对话框) |
| | | selectDonotor(row, column, event) { |
| | | this.curCase = row; |
| | | this.getfundList(); |
| | | if (this.casePickerMode === "add") { |
| | | // 从「新增申请单」进入:选完案例直接跳到申请单填写页 |
| | | this.casePickerMode = ""; |
| | | this.caseDialogVisible = false; |
| | | this.goApplyAdd(); |
| | | } |
| | | }, |
| | | |
| | | getfundList() { |
| | | this.loading = true; |
| | | this.reset(); |
| | | // 选中案例后按案例展示,同时清掉列表筛选条件,避免两个条件叠加导致空列表 |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.infoid = this.curCase.id; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | /** |
| | | * 按当前 fundQueryParam 查询右侧报销单列表 |
| | | * infoid 为空 = 当前登录人的全部该类型单据;有值 = 指定案例 |
| | | */ |
| | | listFundData() { |
| | | this.loading = true; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | this.fundTotal = response.total; |
| | | }); |
| | | }, |
| | | |
| | | /** 报销单筛选:搜索 */ |
| | | handleQueryFund() { |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | /** 报销单筛选:重置(清空条件与已选案例,回到该登录人全部单据) */ |
| | | resetFundQuery() { |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.getAllfundList(); |
| | | }, |
| | | |
| | | /** |
| | | * 检索全部:取消左侧案例选择与筛选条件,查询当前登录人的全部医学成本单据 |
| | | */ |
| | | getAllfundList() { |
| | | this.curCase = {}; |
| | | // 同时清掉左侧案例列表的高亮选中态 |
| | | if (this.$refs.caseTable) { |
| | | this.$refs.caseTable.setCurrentRow(); |
| | | } |
| | | this.reset(); |
| | | this.fundQueryParam.infoid = null; |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | // 取消按钮 |
| | |
| | | }); |
| | | }, |
| | | |
| | | //计算总金额 |
| | | //计算总金额(金额一律走精确运算,禁止 parseFloat 累加) |
| | | sumTotalFee(row) { |
| | | let allSum = 0; |
| | | const detailsArr = []; |
| | | if (this.form.applytype != null) { |
| | | for (let i = 0; i < this.fundDetails.length; i++) { |
| | | const detail = this.fundDetails[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(detail.amount))) { |
| | | totalFee = moneyAdd(totalFee, detail.amount); |
| | | taxFee = moneyAdd(taxFee, detail.amount); |
| | | } |
| | | if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) { |
| | | totalFee -= parseFloat(this.fundDetails[i].taxamount); |
| | | taxFee -= parseFloat(this.fundDetails[i].taxamount); |
| | | if (!isNaN(parseFloat(detail.taxamount))) { |
| | | totalFee = moneySub(totalFee, detail.taxamount); |
| | | taxFee = moneySub(taxFee, detail.taxamount); |
| | | } |
| | | } else if (this.form.applytype == 3) { |
| | | if ( |
| | | !isNaN(parseFloat(this.fundDetails[i].price)) && |
| | | !isNaN(parseFloat(this.fundDetails[i].quantity)) |
| | | !isNaN(parseFloat(detail.price)) && |
| | | !isNaN(parseFloat(detail.quantity)) |
| | | ) { |
| | | totalFee += |
| | | parseFloat(this.fundDetails[i].price) * |
| | | parseFloat(this.fundDetails[i].quantity); |
| | | totalFee = moneyMul(detail.price, detail.quantity); |
| | | } |
| | | } |
| | | if (!isNaN(parseFloat(taxFee))) { |
| | | this.fundDetails[i].taxedamount = taxFee.toFixed(2); |
| | | this.fundDetails[i].taxedamount = moneyRound(taxFee).toFixed(2); |
| | | } |
| | | allSum += totalFee; |
| | | detailsArr.push(totalFee); |
| | | } |
| | | } |
| | | //this.form.amountrequested = allSum.toFixed(2); |
| | | this.$set(this.form, "amountrequested", allSum.toFixed(2)); |
| | | this.$set(this.form, "amountrequested", moneyRound(moneySum(detailsArr)).toFixed(2)); |
| | | //this.$forceUpdate(); |
| | | }, |
| | | |
| | |
| | | // 捐献者医学统计打印 |
| | | dayin2(id) { |
| | | getdownloadYX(id).then(res => { |
| | | if (res.downloadUrl) { |
| | | var fileUrl = res; |
| | | //获取当前网址 |
| | | var urlBase = process.env.VUE_APP_BASE_API; |
| | | var curWWWPath = window.document.location.href; |
| | | var pos = curWWWPath.indexOf(window.document.location.pathname); |
| | | // 创建a标签 |
| | | var aEle = document.createElement("a"); |
| | | aEle.href = |
| | | curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; |
| | | aEle.click(); |
| | | this.$alert("下载成功", "提示", { |
| | | confirmButtonText: "确定", |
| | | type: "success" |
| | | var fileUrl = res; |
| | | //获取当前网址 |
| | | var urlBase = process.env.VUE_APP_BASE_API; |
| | | var curWWWPath = window.document.location.href; |
| | | var pos = curWWWPath.indexOf(window.document.location.pathname); |
| | | // 创建a标签 |
| | | var aEle = document.createElement("a"); |
| | | aEle.href = |
| | | curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; |
| | | console.log(aEle.href); |
| | | // 添加Authorization头部 |
| | | fetch(aEle.href, { |
| | | headers: this.headers |
| | | }) |
| | | .then(response => { |
| | | // 将文件下载链接作为blob对象进行下载 |
| | | return response.blob(); |
| | | }) |
| | | .then(blob => { |
| | | const url = window.URL.createObjectURL(new Blob([blob])); |
| | | console.log(url); |
| | | const link = document.createElement("a"); |
| | | link.href = url; |
| | | const name = fileUrl["downloadName"]; |
| | | link.setAttribute("download", name); // 替换file.pdf为实际的文件名 |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | link.parentNode.removeChild(link); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | |
| | | this.$modal.msgWarning("当前文件暂不支持预览"); |
| | | this.previewpdf = false; |
| | | } |
| | | }, |
| | | rowClassName({ row, column, rowIndex, columnIndex }) { |
| | | if (row.recordstatus == -1 && row.backflowlevel != null) { |
| | | return "error-row"; |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | <style lang="scss" scoped> |
| | | /* @import url(); 引入公共css类 */ |
| | | .button-delete { |
| | | color: rgb(236, 69, 69); |
| | | } |
| | | |
| | | ::v-deep.el-table .error-row { |
| | | background: #fcebeb; |
| | | } |
| | | </style> |