| | |
| | | <!-- --> |
| | | <template> |
| | | <div class="app-container"> |
| | | <!-- 添加或修改费用申请单 --> |
| | | <el-form style="height: 550px; overflow-y: auto; overflow-x: hidden" 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-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="7"> |
| | | <el-form-item label="工作单位" prop="unitno"> |
| | | <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | --> |
| | | <el-col :span="5"> |
| | | <el-form-item label="费用类型"> |
| | | <el-radio v-model="form.applytype" label="true">杂项费用申请</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="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入联系电话" /> |
| | | </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="taxcost"> |
| | | <el-input v-model="form.taxcost" 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="name"> |
| | | <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> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 5px; margin-bottom: 5px"> |
| | | <el-row style="margin-bottom: 10px"> |
| | | <el-col :span="4"> |
| | | <el-button @click.native.prevent="addAllItems" type="primary" size="small"> |
| | | 导入服务项目 |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="fundDetails" 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"> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <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> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip="" v-if="false"> |
| | | </el-table-column> |
| | | <el-table-column prop="servicesscope" align="center" label="费用说明" 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> |
| | | </template> |
| | | </el-table-column> |
| | | <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 |
| | | @change="selectamount(scope.row)"> |
| | | <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.expensedescribe" :label="dict.expense" |
| | | :value="dict.expense"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="this.ismanager == true"> |
| | | <!-- 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="beneficiaryname" align="center" label="姓名" width="100" v-if="form.applytype != 3"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="primary" plain @click="ShowDetailDialog(scope, 'name')">{{ scope.row.beneficiaryname |
| | | }}</el-button> |
| | | <!-- <el-select |
| | | filterable |
| | | allow-create |
| | | ref="getReportname" |
| | | default-first-option |
| | | @change="selectpersonmsg(scope.row)" |
| | | v-model="scope.row.beneficiaryname" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in expertlist" |
| | | :key="item.reportNo" |
| | | :label="item.reportName" |
| | | :value="item.reportName" |
| | | > |
| | | </el-option> |
| | | </el-select> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column 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-select |
| | | v-model="scope.row.unitno" |
| | | placeholder="单位" |
| | | clearable |
| | | filterable |
| | | allow-create |
| | | > |
| | | <el-option |
| | | v-for="(spec, index) in unitList" |
| | | :key="index" |
| | | :label="spec.organizationname" |
| | | :value="spec.organizationid" |
| | | ></el-option> |
| | | </el-select> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="form.applytype == '4'"> |
| | | <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="price" align="center" label="价格" width="120" v-if="form.applytype == '4'"> |
| | | <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="remark" align="center" label="备注" width="210" 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 != '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="180" v-if="operationtype == '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> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <!-- |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-form-item label="预支金额" prop="prepaidamount"> |
| | | <el-input v-model="form.prepaidamount" placeholder="申请金额" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="7"> |
| | | <el-form-item label="OPO中心签字" prop="opochecker"> |
| | | <el-input v-model="form.opochecker" placeholder="opo中心签字" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="财务副院长" prop="finvicepresident"> |
| | | <el-input v-model="form.finvicepresident" placeholder="财务副院长" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="业务副院长" prop="busvicepresident"> |
| | | <el-input v-model="form.busvicepresident" placeholder="业务副院长" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="办公室主任" prop="officedirector"> |
| | | <el-input v-model="form.officedirector" placeholder="请输入办公室主任" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="财务部负责人" prop="financedirector"> |
| | | <el-input v-model="form.financedirector" placeholder="请输入财务部负责人" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <el-form-item label="财务审核" prop="financechecher"> |
| | | <el-input v-model="form.financechecher" placeholder="请输入财务审核" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item 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='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'"> |
| | | <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 :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="专家姓名" prop="beneficiaryname"> |
| | | <el-input v-model="queryParams.beneficiaryname" placeholder="请输入专家姓名" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="工作单位" prop="uintname"> |
| | | <el-input v-model="queryParams.uintname" placeholder="请输入工作单位" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="费用类别" prop="applytype"> |
| | | <el-select v-model="queryParams.applytype" placeholder="请选择费用类别" clearable size="small"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="项目名称" prop="itemname"> |
| | | <el-input v-model="queryParams.itemname" placeholder="请输入项目名称" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="项目类别" prop="itemtype"> |
| | | <el-select v-model="queryParams.itemtype" placeholder="请选择项目类别" clearable size="small"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="记录状态" prop="recordstatus"> |
| | | <el-select v-model="queryParams.recordstatus" placeholder="请选择记录状态" clearable size="small"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="经办人" prop="createBy"> |
| | | <el-input v-model="queryParams.createBy" placeholder="请输入创建人" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="申请日期" prop="createTime"> |
| | | <el-date-picker clearable size="small" v-model="queryParams.createTime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="选择创建日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm" v-if="operationtype == 'edit'">保 存</el-button> |
| | | <!-- <el-button type="success" @click="print">打 印</el-button> --> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | |
| | | <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="showDetailInfoDialogType == 'name'"> |
| | | <el-form-item label="请选择专家信息:" prop="expertfrom"> |
| | | <el-radio-group v-model="expertfrom" style="margin-bottom: 0"> |
| | | <el-radio label="1">专家库</el-radio> |
| | | <el-radio label="2">新增专家</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24" v-if="showDetailInfoDialogType == '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="showDetailInfoDialogType == 'unit'"> |
| | | <el-form-item label="单位名称" prop="unitno" label-width="80px"> |
| | | <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-col> |
| | | </el-row> |
| | | <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-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-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> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- |
| | | <el-row> |
| | | <el-col :span="12" v-if="expertfrom == '2'"> |
| | | <el-form-item label="人员类别" prop="usertype" label-width="80px"> |
| | | <el-select v-model="funddetailForm.usertype" placeholder="必填项"> |
| | | <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['project:funddetail:add']">新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['project:funddetail:edit']">修改</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" |
| | | v-hasPermi="['project:funddetail:remove']">删除</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" |
| | | v-hasPermi="['project:funddetail:export']">导出</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="funddetailList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="专家姓名" width="120" align="center" prop="beneficiaryname" /> |
| | | <el-table-column label="费用类别" align="center" prop="applytype" /> |
| | | <el-table-column label="项目类别" align="center" prop="itemtype" /> |
| | | <el-table-column label="费用项目名称" align="left" prop="itemname" /> |
| | | <el-table-column label="费用金额" align="center" prop="amount" /> |
| | | <el-table-column label="扣税金额" align="center" prop="taxamount" /> |
| | | <el-table-column label="税后金额" align="center" prop="taxedamount" /> |
| | | <!-- |
| | | <el-table-column label="专家单位" align="center" prop="uintname" /> |
| | | <el-table-column label="证件号码" align="center" prop="idcardno" /> |
| | | <el-table-column label="专家电话" align="center" prop="phone" /> |
| | | <el-table-column label="状态" align="center" prop="recordstatus" /> |
| | | <el-table-column label="经办人" align="center" prop="createby" /> |
| | | <el-table-column label="申请日期" align="center" prop="createtime" /> |
| | | --> |
| | | <el-table-column label="备注" align="left" prop="remark" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['project:funddetail:edit']">修改</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" |
| | | v-hasPermi="['project:funddetail:remove']">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> |
| | | |
| | | <!-- 添加或修改费用申请明细对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="120px"> |
| | | <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-col :span="5"><el-form-item label="费用申请主表ID" prop="fundid"> |
| | | <el-input v-model="form.fundid" placeholder="请输入费用申请主表ID" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="收益人姓名 家属或专家" prop="beneficiaryname"> |
| | | <el-input v-model="form.beneficiaryname" placeholder="请输入收益人姓名 家属或专家" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="收益人编号" prop="beneficiaryno"> |
| | | <el-input v-model="form.beneficiaryno" placeholder="请输入收益人编号" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="工作单位" prop="uintname"> |
| | | <el-input v-model="form.uintname" placeholder="请输入工作单位" /> |
| | | </el-form-item></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"><el-form-item label="工作单位编号" prop="uintno"> |
| | | <el-input v-model="form.uintno" placeholder="请输入工作单位编号" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="工作单位用户编号" prop="uintuserno"> |
| | | <el-input v-model="form.uintuserno" placeholder="请输入工作单位用户编号" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="证件类型 根据字典sys_IDType" prop="idcardtype"> |
| | | <el-select v-model="form.idcardtype" placeholder="请选择证件类型 根据字典sys_IDType"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="证件号码" prop="idcardno"> |
| | | <el-input v-model="form.idcardno" placeholder="请输入证件号码" /> |
| | | </el-form-item></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"><el-form-item label="性别 根据字典sys_user_sex" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别 根据字典sys_user_sex"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="与捐赠者关系 根据字典sys_FamilyRelation" prop="familyrelations"> |
| | | <el-input v-model="form.familyrelations" placeholder="请输入与捐赠者关系 根据字典sys_FamilyRelation" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入联系电话" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="开户银行" prop="depositbank"> |
| | | <el-input v-model="form.depositbank" placeholder="请输入开户银行" /> |
| | | </el-form-item></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"> <el-form-item label="卡号" prop="bankcardno"> |
| | | <el-input v-model="form.bankcardno" placeholder="请输入卡号" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="支行名称" prop="branchbankname"> |
| | | <el-input v-model="form.branchbankname" placeholder="请输入支行名称" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="银行卡照片路径 多个用;分开" prop="annexbankcard"> |
| | | <el-input v-model="form.annexbankcard" placeholder="请输入银行卡照片路径 多个用;分开" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="登记表照片路径 多个用;分开" prop="annexregistform"> |
| | | <el-input v-model="form.annexregistform" placeholder="请输入登记表照片路径 多个用;分开" /> |
| | | </el-form-item></el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <el-row> |
| | | <el-col :span="5"><el-form-item label="费用类别 见字典sys_SubjectType" prop="applytype"> |
| | | <el-select v-model="form.applytype" placeholder="请选择费用类别 见字典sys_SubjectType"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </el-select> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="项目ID" prop="itemid"> |
| | | <el-input v-model="form.itemid" placeholder="请输入项目ID" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"> <el-form-item label="项目名称" prop="itemname"> |
| | | <el-input v-model="form.itemname" placeholder="请输入项目名称" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="项目类别" prop="itemtype"> |
| | | <el-select v-model="form.itemtype" placeholder="请选择项目类别"> |
| | | <el-option label="请选择字典生成" value="" /> |
| | | </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> |
| | | </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> |
| | | </el-col> |
| | | <el-col :span="5"><el-form-item label="申请金额" prop="amount"> |
| | | <el-input v-model="form.amount" placeholder="请输入申请金额" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="预支金额" prop="prepaidamount"> |
| | | <el-input v-model="form.prepaidamount" placeholder="请输入预支金额" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="发票张数" prop="invoicecount"> |
| | | <el-input v-model="form.invoicecount" placeholder="请输入发票张数" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="附件张数" prop="attachcount"> |
| | | <el-input v-model="form.attachcount" placeholder="请输入附件张数" /> |
| | | </el-form-item></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"><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="记录状态"> |
| | | <el-radio-group v-model="form.recordstatus"> |
| | | <el-radio label="1">请选择字典生成</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"> <el-form-item label="上传标志" prop="uploadflag"> |
| | | <el-input v-model="form.uploadflag" placeholder="请输入上传标志" /> |
| | | </el-form-item></el-col> |
| | | <el-col :span="5"><el-form-item label="上传时间" prop="uploadtime"> |
| | | <el-date-picker clearable size="small" v-model="form.uploadtime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="选择上传时间"> |
| | | </el-date-picker> |
| | | </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> |
| | | </span> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) |
| | | //例如:import 《组件名称》 from '《组件路径》'; |
| | | import { |
| | | listDonatebaseinfo, |
| | | getDonatebaseinfo |
| | | } from "@/api/project/donatebaseinfo"; |
| | | |
| | | import { |
| | | onelistFund, |
| | | listFund, |
| | | getFund, |
| | | delFund, |
| | | addFund, |
| | | updateFund, |
| | | exportFund, |
| | | getdownloadLW, |
| | | getdownloadSH, |
| | | getdownloadSS, |
| | | getdownloadYX, |
| | | getdownloadBX, |
| | | addorupdateFund, |
| | | getdetailsByItemId |
| | | } from "@/api/project/fund"; |
| | | |
| | | import { |
| | | onelistFunds, |
| | | listFunddetails, |
| | | listFunddetail, |
| | | getFunddetail, |
| | | delFunddetail, |
| | | addFunddetail, |
| | | getownFundDetail, |
| | | updateFunddetail, |
| | | exportFunddetail, |
| | | getItemNames, |
| | | getFundType, |
| | | getFundTypeAll, |
| | | listcountItem, |
| | | getDataBybeneficiaryNo, |
| | | getTaxByBeneFiciaryNo, |
| | | getTaxBeforeByBeneFiciaryNo, |
| | | getTaxationByBeneFiciaryNo, |
| | | getTaxBeforeByAfterMoney |
| | | } from "@/api/project/funddetail"; |
| | | |
| | | import { listFundflow } from "@/api/project/fundflow"; |
| | | |
| | | import { |
| | | listOrganization, |
| | | getOrganization, |
| | | listReportname, |
| | | listUser |
| | | } from "@/api/project/organization"; |
| | | |
| | | import { |
| | | listExternalperson, |
| | | getExternalperson, |
| | | getInfoBytheUserNo, |
| | | delExternalperson, |
| | | addExternalperson, |
| | | updateExternalperson, |
| | | exportExternalperson |
| | | } from "@/api/project/externalperson"; |
| | | |
| | | import { getUserProfile } from "@/api/system/user"; |
| | | import Li_area_select from "@/components/Address"; |
| | | import OrgSelecter from "@/views/project/components/orgselect"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { listFunddetail, getFunddetail, delFunddetail, addFunddetail, updateFunddetail, exportFunddetail } from "@/api/project/funddetail"; |
| | | |
| | | export default { |
| | | //import引入的组件需要注入到对象中才能使用 |
| | | components: { |
| | | Li_area_select, |
| | | OrgSelecter, |
| | | }, |
| | | |
| | | name: "fundApply", |
| | | |
| | | dicts: [ |
| | | //"sys_consolationfundlevel", |
| | | //"sys_OrganizationType", |
| | | "sys_DonationStatus", |
| | | //"sys_depositbank", |
| | | //"sys_FamilyRelation", |
| | | //"sys_IDType", |
| | | //"sys_ConsolationType", |
| | | //"sys_fund_type", |
| | | //"sys_finsubject", |
| | | //"sys_financeitemtype", |
| | | //"sys_expensetype", |
| | | "sys_recordstatus", |
| | | "sys_professionaltitle" |
| | | ], |
| | | |
| | | name: "Funddetail", |
| | | data() { |
| | | //这里存放数据 |
| | | return { |
| | | // 遮罩层 |
| | | loading: false, |
| | | loading: true, |
| | | // 导出遮罩层 |
| | | exportLoading: false, |
| | | |
| | | //查询参数 |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 费用申请明细表格数据 |
| | | funddetailList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | organizationname: null, |
| | | organizationtype: null, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | name: null, |
| | | idcardno: null, |
| | | residenceprovince: null, |
| | | residencecity: null, |
| | | residencetown: null, |
| | | recordstate: null, |
| | | treatmenthospitalname: null, |
| | | donorno: null, |
| | | reportername: null, |
| | | reporttime: null, |
| | | }, |
| | | |
| | | fundQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | infoid: null, |
| | | applytype: "4", |
| | | beneficiaryname: null, |
| | | uintname: null, |
| | | applytype: null, |
| | | itemname: null, |
| | | itemtype: null, |
| | | amount: null, |
| | | recordstatus: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | uploadflag: null, |
| | | uploadtime: null |
| | | }, |
| | | |
| | | expertQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 10000, |
| | | userno: null, |
| | | username: null, |
| | | usertype: null, |
| | | }, |
| | | |
| | | //计算个税参数 |
| | | taxParam: { |
| | | beneficiaryNo: '', |
| | | money: '0', |
| | | startTime: '', |
| | | }, |
| | | |
| | | // 表单参数 |
| | | form: {}, |
| | | |
| | | total: 0, |
| | | |
| | | //申请单类型 |
| | | businesstype: null, |
| | | //操作类型 |
| | | operationtype: "edit", |
| | | //所有人员表 |
| | | personlist: [], |
| | | // |
| | | amount: 0.00, |
| | | //专家列表 |
| | | expertlist: [], |
| | | //专家费选择:1是专家库,2是新增 |
| | | expertfrom: "1", |
| | | // 表单校验 |
| | | rules: { |
| | | username: [ |
| | | { required: true, message: "请输入申请人", trigger: "blur" }, |
| | | ], |
| | | createTime: [ |
| | | { required: true, message: "请输入申请日期", trigger: "blur" }, |
| | | ], |
| | | deptmentname: [ |
| | | { required: true, message: "请输入所属业务组", trigger: "blur" }, |
| | | ], |
| | | // amountrequested: [ |
| | | // { required: true, message: "请输入申请金额", trigger: "blur" }, |
| | | // ], |
| | | }, |
| | | |
| | | //捐献案例列表数据 |
| | | donatebaseinfoList: [], |
| | | //当前选中捐献案例 |
| | | curCase: {}, |
| | | |
| | | // 捐献人道慰问金表格数据 |
| | | donateconsolationfundList: [], |
| | | //费用明细列表 |
| | | fundDetails: [], |
| | | formData: {}, |
| | | totalPreTaxAmount: 0.0, |
| | | totalAfterTaxAmount: 0.0, |
| | | totalAmount: 0.0, |
| | | |
| | | //费用申请表单title |
| | | title: "", |
| | | userlist: [], |
| | | itemlist: [], |
| | | reporters: [], |
| | | |
| | | //行记录的费用类型数组 |
| | | rowfeeItemTypes: [], |
| | | //费用类型数组 |
| | | feeItemTypes: [], |
| | | //费用说明 |
| | | rowfeeblocks: [], |
| | | userprofile: {}, |
| | | |
| | | //是否是专家费的OPO审批人员 |
| | | ismanager: false, |
| | | unitList: [], |
| | | fundflowList: [], |
| | | |
| | | showDetailInfoDialog: false, |
| | | showDetailInfoDialogType: "", |
| | | funddetailForm: { |
| | | index: null, |
| | | beneficiaryname: null, |
| | | beneficiaryno: null, |
| | | unitno: null, |
| | | unitname: null, |
| | | expertname: null, |
| | | expertidcardno: null, |
| | | expertunitno: null, |
| | | expertunitname: null, |
| | | experttitle: null, |
| | | expertdepositbank: null, |
| | | expertbankcardno: null, |
| | | }, |
| | | expertform: { |
| | | id: null, |
| | | address: null, |
| | | bankcardno: null, |
| | | branchbankname: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | del_flag: null, |
| | | depositbank: null, |
| | | idcardno: null, |
| | | personnelunitno: null, |
| | | pym: null, |
| | | remark: null, |
| | | searchValue: null, |
| | | sex: null, |
| | | telephone: null, |
| | | title: null, |
| | | unitname: null, |
| | | unitno: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | username: null, |
| | | userno: null, |
| | | userstatus: 1, |
| | | usertype: null, |
| | | wbm: null, |
| | | }, |
| | | |
| | | //附件列表 |
| | | fileList: [], |
| | | //上传附件路径 |
| | | uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | //文件上传token |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | |
| | | } |
| | | }; |
| | | }, |
| | | //监听属性 类似于data概念 |
| | | computed: {}, |
| | | //监控data中的数据变化 |
| | | watch: {}, |
| | | //生命周期 - 创建完成(可以访问当前this实例) |
| | | created() { |
| | | //获取单据类型和操作要求 |
| | | this.getCurFundType(); |
| | | this.getroute(); |
| | | this.getUserProfile(); |
| | | this.getList(); |
| | | }, |
| | | |
| | | //生命周期 - 挂载完成(可以访问DOM元素) |
| | | mounted() { |
| | | this.getUserList(); |
| | | this.getUnitList(); |
| | | this.selectReporters(); |
| | | this.getExternalpersonList(); |
| | | this.getBaseInfoList(); |
| | | }, |
| | | |
| | | beforeCreate() { |
| | | }, //生命周期 - 创建之前 |
| | | beforeMount() { }, //生命周期 - 挂载之前 |
| | | beforeUpdate() { }, //生命周期 - 更新之前 |
| | | updated() { }, //生命周期 - 更新之后 |
| | | beforeDestroy() { }, //生命周期 - 销毁之前 |
| | | destroyed() { }, //生命周期 - 销毁完成 |
| | | activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发 |
| | | |
| | | //方法集合 |
| | | methods: { |
| | | /** 通过参数获取业务类型 */ |
| | | getroute() { |
| | | //选择业务类型:1、新增;2、修改;3、查看 |
| | | let ids = this.$route.query.id; |
| | | let tempbusinesstype = this.$route.query.businesstype; |
| | | let tempoperationtype = this.$route.query.operationtype; |
| | | // this.userprofile = this.$route.query.routerparam; |
| | | |
| | | this.businesstype = tempbusinesstype; |
| | | if (tempbusinesstype == "1") { |
| | | this.title = '专家劳务费申请单'; |
| | | } else if (tempbusinesstype == "2") { |
| | | this.title = '伦理专家劳务费申请单'; |
| | | } |
| | | else if (tempbusinesstype == "3") { |
| | | this.title = '医学成本报销单'; |
| | | } |
| | | else if (tempbusinesstype == "4") { |
| | | this.title = '杂项费用报销单'; |
| | | } |
| | | |
| | | this.operationtype = tempoperationtype; |
| | | if (tempoperationtype == 'add') { |
| | | this.title += '新建' |
| | | this.handleAdd(); |
| | | } else if (tempoperationtype == 'update') { |
| | | this.title += '修改' |
| | | this.handleUpdate(ids); |
| | | } |
| | | else if (tempoperationtype == 'detail') { |
| | | this.title += '查看' |
| | | this.handleDetail(ids); |
| | | } else if (tempoperationtype == 'check') { |
| | | this.title += '审核' |
| | | this.handleCheck(ids); |
| | | } |
| | | }, |
| | | |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | |
| | | /** businesstype:1:专家费;2:伦理专家费 */ |
| | | if (this.businesstype == "1" && this.businesstype == "2") { |
| | | if (this.curCase.id) { |
| | | this.istrue += 2; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.name = this.curCase.name; |
| | | this.form.infoid = this.curCase.id; |
| | | |
| | | // this.form.createTime = nowdate; |
| | | //this.open = true; |
| | | //this.initFundApplyForm(); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请先选择左方捐献案例 ")]), |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | //初始化 |
| | | // this.form.applytype = this.businesstype; |
| | | this.form.createTime = new Date(); |
| | | this.fundDetails = []; |
| | | this.addRow(); |
| | | |
| | | }, |
| | | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.isopen = 0; |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.infoid = this.curCase.id; |
| | | this.title = "修改费用申请"; |
| | | this.operationtype = "edit"; |
| | | |
| | | const id = row.id || this.ids; |
| | | getFund(id).then((response) => { |
| | | this.form = response.data; |
| | | // this.form.recordstate =-1; |
| | | // this.form.recordstatus = response.data.recordstatus + ""; |
| | | this.form.name = this.curCase.name; |
| | | //附件处理 |
| | | this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] |
| | | getownFundDetail(id).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({ |
| | | servicesscope: this.fundDetails[m].servicesscope, |
| | | expensedescribe: this.fundDetails[m].servicesscopename, |
| | | expense: this.fundDetails[m].expense, |
| | | remark: this.fundDetails[m].servicesscopename, |
| | | }); |
| | | // getdetailsByItemId(this.fundDetails[m].itemid).then((res) => { |
| | | // let fundmsg = res.data; |
| | | // fundmsg.forEach((item) => { |
| | | // this.fundDetails[m].rowfeeblocks.push({ |
| | | // servicesscope: item.id, |
| | | // expensedescribe: item.expensedescribe, |
| | | // expense: item.expense, |
| | | // remark: item.expensedescribe, |
| | | // }); |
| | | // }); |
| | | // }); |
| | | } |
| | | |
| | | if (this.fundDetails.length == 0) { |
| | | this.addRow(); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** 查看按钮操作 */ |
| | | handleDetail(row) { |
| | | this.isopen = 0; |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.infoid = this.curCase.id; |
| | | this.title = "查看费用申请"; |
| | | this.operationtype = "detail"; |
| | | const id = row.id || this.ids; |
| | | |
| | | getFund(id).then((response) => { |
| | | this.form = response.data; |
| | | this.form.name = this.curCase.name; |
| | | let listFundflowparams = { |
| | | fundid: row.id, |
| | | fundtype: 2, |
| | | }; |
| | | //附件处理 |
| | | this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : [] |
| | | |
| | | listFundflow(listFundflowparams).then((res) => { |
| | | this.fundflowList = res.rows; |
| | | }); |
| | | getownFundDetail(id).then((res) => { |
| | | this.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, |
| | | }); |
| | | } |
| | | |
| | | if (this.fundDetails.length == 0) { |
| | | this.addRow(); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal |
| | | .confirm("是否确认删除该记录?") |
| | | .then(function () { |
| | | return delFund(ids); |
| | | }) |
| | | .then(() => { |
| | | getownFundDetail(ids).then((res) => { |
| | | let listdetails = res.data; |
| | | for (let i = 0; i < listdetails.length; i++) { |
| | | delFunddetail(listdetails[i].id); |
| | | } |
| | | }); |
| | | this.getfundList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | |
| | | /** 上报按钮操作 */ |
| | | handleUp(row) { |
| | | this.$confirm("是否确认将登记记录上报?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //查找是否存在登记完成记录 |
| | | //判断是否存在上报记录 |
| | | row.recordstatus = 0; |
| | | |
| | | updateFund(row).then((response) => { |
| | | if (response.code == 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "申请成功", |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "申请失败", |
| | | }); |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已取消申请", |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | this.formData = this.form; |
| | | // let totalPreTaxAmount = 0.0; |
| | | // let totalAfterTaxAmount = 0.0; |
| | | // let totalAmount = 0.0; |
| | | |
| | | //保存前校验数据 |
| | | for (let k = 0; k < this.fundDetails.length; k++) { |
| | | let tempDetail = this.fundDetails[k]; |
| | | if (tempDetail.itemid == null) { |
| | | this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的服务项目未选择,请先选择服务项目后再提交保存!"); |
| | | return; |
| | | } |
| | | |
| | | if (tempDetail.servicesscope == null) { |
| | | this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的费用说明未选择,请选择费用说明后再提交保存!"); |
| | | return; |
| | | } |
| | | |
| | | if (tempDetail.beneficiaryno == null) { |
| | | this.$modal.msgWarning("服务项目表中,第" + (k + 1).toString() + "行的服务人员姓名为选择,请选择人员后再提交保存!"); |
| | | return; |
| | | } |
| | | |
| | | // //判断单位 unitSel |
| | | // try { |
| | | // let unitIndex = this.unitList.findIndex( |
| | | // (item) => tempDetail.unitno == item.organizationid |
| | | // ); |
| | | // if (unitIndex > -1) { |
| | | // tempDetail.unitname = this.unitList[unitIndex].organizationname; |
| | | // } else { |
| | | // tempDetail.unitname = tempDetail.unitno; |
| | | // } |
| | | // } catch { |
| | | // tempDetail.unitname = tempDetail.unitno; |
| | | // } |
| | | } |
| | | |
| | | //附件处理 |
| | | let list = this.fileList; |
| | | 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]; |
| | | //获取服务项目明细 |
| | | let tempitemlist = tempDetail.itemlist; |
| | | let itemIndex = tempitemlist.findIndex( |
| | | (item) => tempDetail.itemid == item.id |
| | | ); |
| | | if (itemIndex > -1) { |
| | | tempDetail.itemname = tempitemlist[itemIndex].itemName; |
| | | tempDetail.itemid = tempitemlist[itemIndex].id; |
| | | } |
| | | |
| | | //获取applytypename、服务费用大类 |
| | | let applytypeIndex = this.rowfeeItemTypes.findIndex( |
| | | (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; |
| | | } |
| | | this.fundDetails[i] = tempDetail; |
| | | /* |
| | | //计算个税 |
| | | //if (isNaN(parseFloat(tempDetail.taxedamount))) |
| | | //获取参数 |
| | | this.taxParam.beneficiaryNo = tempDetail.beneficiaryno; |
| | | this.taxParam.startTime = this.form.createTime.substring(0, 10); |
| | | // 计算税后金额 |
| | | if (tempDetail.taxedamount == undefined || tempDetail.taxedamount == null || tempDetail.taxedamount == 0 || tempDetail.taxedamount == '') { |
| | | //获取参数 |
| | | this.taxParam.money = tempDetail.amount.toString(); |
| | | getTaxByBeneFiciaryNo(this.taxParam).then((res) => { |
| | | if (res.code == 200) { |
| | | tempDetail.taxamount = res.data; |
| | | tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount; |
| | | this.fundDetails[k] = tempDetail; |
| | | |
| | | this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); |
| | | this.totalAmount += parseFloat(tempDetail.amount); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 计算税前金额 |
| | | if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') { |
| | | //获取参数 |
| | | this.taxParam.money = tempDetail.taxedamount.toString(); |
| | | getTaxBeforeByAfterMoney(this.taxParam).then((res) => { |
| | | if (res.code == 200) { |
| | | tempDetail.taxamount = res.data.nowTax; |
| | | tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney); |
| | | this.fundDetails[k] = tempDetail; |
| | | |
| | | this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount); |
| | | this.totalAmount += parseFloat(tempDetail.amount); |
| | | console.log("1", this.amount); |
| | | } |
| | | }); |
| | | } |
| | | */ |
| | | } |
| | | //费用合计 |
| | | // this.form.pretaxcost = parseFloat(this.totalPreTaxAmount).toFixed(2); |
| | | // this.form.taxedcost = parseFloat(this.totalAfterTaxAmount).toFixed(2); |
| | | // this.form.amountrequested = this.totalAmount.toFixed(2); |
| | | |
| | | //保存数据 |
| | | this.loading = true; |
| | | this.form.serviceFunddetails = 0; |
| | | this.fundDetails.map((item) => { |
| | | this.form.serviceFunddetails += item.amount; |
| | | }); |
| | | this.form.serviceFunddetails = this.fundDetails; |
| | | |
| | | if (this.form.id != null) { |
| | | //捐献者 |
| | | this.form.donorname = this.curCase.name; |
| | | |
| | | // 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); } }); |
| | | // } else { |
| | | // addFunddetail(this.fundDetails[m]).then((response2) => { if (response.code != 200) { this.$modal.msgError("专家劳务费保存失败2:" + response.msg); } }); |
| | | // } |
| | | // } |
| | | // this.$modal.msgSuccess("专家劳务费保存成功!"); |
| | | // } else { |
| | | // this.$modal.msgError("专家劳务费保存失败:" + response.msg); |
| | | // } |
| | | // }); |
| | | |
| | | } else { |
| | | this.form.recordstatus = -1; |
| | | |
| | | // addorupdateFund(this.form).then((response) => { |
| | | // if (response.code === 200) { |
| | | // this.selectDonotor(this.curCase); |
| | | // } else { |
| | | // this.$modal.msgError("专家劳务费保存失败:" + response.msg); |
| | | // } |
| | | // }); |
| | | } |
| | | |
| | | addorupdateFund(this.form).then((response) => { |
| | | if (response.code === 200) { |
| | | this.selectDonotor(this.curCase); |
| | | this.$modal.msgSuccess("专家劳务费保存成功!"); |
| | | } else { |
| | | this.$modal.msgError("专家劳务费保存失败:" + response.msg); |
| | | } |
| | | }); |
| | | |
| | | //关闭窗口 |
| | | this.loading = false; |
| | | // this.getfundList(); |
| | | this.selectDonotor(this.curCase); |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.reset(); |
| | | }, |
| | | |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | recordstate: -1, |
| | | userno: null, |
| | | username: null, |
| | | id: null, |
| | | infoid: null, |
| | | donorno: null, |
| | | delFlag: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | familyrelations: null, |
| | | name: null, |
| | | remark: null, |
| | | doname: null, |
| | | unitname: null, |
| | | unitno: null, |
| | | sex: null, |
| | | idcardtype: null, |
| | | idcardno: null, |
| | | phone: null, |
| | | donorname: null, |
| | | depositbank: null, |
| | | bankprovince: null, |
| | | bankprovincename: null, |
| | | bankcity: null, |
| | | bankcityname: null, |
| | | banktown: null, |
| | | banktownname: null, |
| | | branchbankname: null, |
| | | bankcardno: null, |
| | | annexbankcard: null, |
| | | annexregistform: null, |
| | | consolationmoney: null, |
| | | applytype: "4", |
| | | servicetypename: null, |
| | | servicesscope: null, |
| | | servicesscopename: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | //清空附件 |
| | | this.fileList = [] |
| | | }, |
| | | |
| | | ShowDetailDialog(spoce, showType) { |
| | | this.expertfrom = "1"; |
| | | this.funddetailForm.index = spoce.$index; |
| | | this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; |
| | | this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; |
| | | this.funddetailForm.unitno = spoce.row.unitno; |
| | | this.funddetailForm.unitname = spoce.row.unitname; |
| | | this.funddetailForm.expertname = ""; |
| | | this.funddetailForm.expertidcardno = ""; |
| | | this.funddetailForm.expertunitno = ""; |
| | | this.funddetailForm.expertunitname = ""; |
| | | this.funddetailForm.experttitle = ""; |
| | | this.funddetailForm.expertdepositbank = ""; |
| | | this.funddetailForm.expertbankcardno = ""; |
| | | |
| | | this.showDetailInfoDialog = true; |
| | | this.showDetailInfoDialogType = showType; |
| | | }, |
| | | |
| | | ConfirmDetailDialog() { |
| | | let tempIndex = this.funddetailForm.index; |
| | | let tempName = this.funddetailForm.beneficiaryname; |
| | | let tempUnitname = this.funddetailForm.unitname; |
| | | let singleDetail = this.fundDetails[tempIndex]; |
| | | |
| | | if (this.showDetailInfoDialogType == "name") { |
| | | |
| | | if (this.expertfrom == "1") { |
| | | //从专家列表获取信息 |
| | | this.personlist.map((res) => { |
| | | if (tempName == res.username) { |
| | | console.log("选择专家", res); |
| | | singleDetail.beneficiaryno = res.userno; |
| | | singleDetail.beneficiaryname = res.username; |
| | | singleDetail.bankcardno = res.bankcardno; |
| | | singleDetail.branchbankname = res.branchbankname; |
| | | singleDetail.depositbank = res.depositbank; |
| | | singleDetail.idcardno = res.idcardno; |
| | | singleDetail.phone = res.telephone; |
| | | singleDetail.title = res.title; |
| | | singleDetail.unitname = res.unitname; |
| | | singleDetail.unitno = parseInt(res.unitno); |
| | | } |
| | | }); |
| | | } else { |
| | | //保存新增专家 |
| | | this.expertform.id = null; |
| | | 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; |
| | | this.expertform.sex = null; |
| | | this.expertform.telephone = null; |
| | | this.expertform.address = null; |
| | | this.expertform.wbm = null; |
| | | this.expertform.pym = null; |
| | | |
| | | this.expertform.unitno = this.funddetailForm.expertunitno; |
| | | try { |
| | | let unitIndex = this.unitList.findIndex( |
| | | (item) => this.expertform.unitno == item.organizationid |
| | | ); |
| | | if (unitIndex > -1) { |
| | | this.expertform.unitname = this.unitList[unitIndex].organizationname; |
| | | } else { |
| | | this.expertform.unitname = this.expertform.unitno; |
| | | } |
| | | } catch { |
| | | this.expertform.unitname = this.expertform.unitno; |
| | | } |
| | | this.expertform.title = this.funddetailForm.experttitle; |
| | | this.expertform.personnelunitno = null; |
| | | |
| | | this.expertform.depositbank = this.funddetailForm.expertdepositbank; |
| | | this.expertform.bankcardno = this.funddetailForm.expertbankcardno; |
| | | this.expertform.branchbankname = null; |
| | | this.expertform.remark = null; |
| | | this.expertform.del_flag = "0"; |
| | | |
| | | addExternalperson(this.expertform).then((response) => { |
| | | if (response.code == 200) { |
| | | this.$modal.msgSuccess("新增专家信息成功!"); |
| | | |
| | | listExternalperson().then((res) => { |
| | | this.personlist = res.rows; |
| | | console.log("new personlist", this.personlist); |
| | | //从专家列表获取信息 |
| | | this.personlist.map((res) => { |
| | | if (res.username == this.funddetailForm.expertname) { |
| | | console.log("新增专家", res); |
| | | singleDetail.beneficiaryno = res.userno; |
| | | singleDetail.beneficiaryname = res.username; |
| | | singleDetail.bankcardno = res.bankcardno; |
| | | singleDetail.branchbankname = res.branchbankname; |
| | | singleDetail.depositbank = res.depositbank; |
| | | singleDetail.idcardno = res.idcardno; |
| | | singleDetail.phone = res.telephone; |
| | | singleDetail.title = res.title; |
| | | singleDetail.unitname = res.unitname; |
| | | singleDetail.unitno = parseInt(res.unitno); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } else if (this.showDetailInfoDialogType == "unit") { |
| | | singleDetail.unitno = this.funddetailForm.unitno; |
| | | try { |
| | | let unitIndex = this.unitList.findIndex( |
| | | (item) => singleDetail.unitno == item.organizationid |
| | | ); |
| | | if (unitIndex > -1) { |
| | | singleDetail.unitname = this.unitList[unitIndex].organizationname; |
| | | } else { |
| | | singleDetail.unitname = singleDetail.unitno; |
| | | } |
| | | } catch { |
| | | singleDetail.unitname = singleDetail.unitno; |
| | | } |
| | | } |
| | | |
| | | this.fundDetails[tempIndex] = singleDetail; |
| | | this.showDetailInfoDialog = false; |
| | | }, |
| | | |
| | | //获取当前用户信息,并初始化经办人信息 |
| | | getUserProfile() { |
| | | 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") { |
| | | this.ismanager = true; |
| | | } else { |
| | | this.ismanager = false; |
| | | } |
| | | |
| | | if (this.operationtype = "add") { |
| | | this.form.username = this.userprofile.nickName; |
| | | this.form.userno = this.userprofile.userName; |
| | | this.form.phone = this.userprofile.phonenumber; |
| | | this.form.deptmentname = this.userprofile.dept.deptName; |
| | | this.form.deptmentno = this.userprofile.dept.deptId; |
| | | this.form.managername = this.userprofile.dept.leader; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //获取费用项目的备注信息 |
| | | selectedRemark(row) { |
| | | row.rowfeeblocks.forEach((item, i) => { |
| | | if (item.servicesscope === row.servicesscope) { |
| | | row.servicesscopename = item.expensedescribe; |
| | | if (row.servicesscopename.includes("税后")) { |
| | | row.amount = 0.0; |
| | | row.taxamount = 0.0; |
| | | row.taxedamount = item.expense; |
| | | } else { |
| | | row.amount = item.expense; |
| | | row.taxamount = 0.0; |
| | | row.taxedamount = 0.0; |
| | | } |
| | | |
| | | this.form.serviceFunddetails = 0; |
| | | this.fundDetails.map((item) => { |
| | | this.form.serviceFunddetails += item.amount; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //校验收费项目是否重复 |
| | | verifyFeeItem(row) { |
| | | row.itemlist.map((res) => { |
| | | if (row.itemid === res.id) { |
| | | row.remark = res.itemDescribe; |
| | | row.itemcode = res.itemCode; |
| | | } |
| | | }); |
| | | var repeatNum = 0; |
| | | this.fundDetails.map((res) => { |
| | | if (res.applytype === row.applytype && res.itemid == row.itemid) { |
| | | repeatNum++; |
| | | } |
| | | }); |
| | | if (repeatNum > 1) { |
| | | this.$modal.msgWarning("您已经提交过该服务项目了"); |
| | | } |
| | | |
| | | //获取费用项目的详细信息 |
| | | getdetailsByItemId(row.itemid).then((res) => { |
| | | let fundmsg = res.data; |
| | | let rowfeeblocks = []; |
| | | fundmsg.forEach((item) => { |
| | | rowfeeblocks.push({ |
| | | expense: item.expense, |
| | | expensedescribe: item.expensedescribe, |
| | | remark: item.expensedescribe, |
| | | servicesscope: item.id, |
| | | }); |
| | | }); |
| | | |
| | | row.rowfeeblocks = rowfeeblocks; |
| | | row.servicesscope = null; |
| | | row.servicesscopename = ""; |
| | | }); |
| | | |
| | | }, |
| | | |
| | | // |
| | | selectamount(row) { |
| | | this.rowfeeblocks.forEach((item, i) => { |
| | | if (item.expense === row.amount) { |
| | | row.remark = item.expensedescribe; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getUnitList() { |
| | | 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, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getBaseInfoList() { |
| | | /** 查询费用申请明细列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listDonatebaseinfo(this.queryParams).then((response) => { |
| | | this.donatebaseinfoList = response.rows; |
| | | listFunddetail(this.queryParams).then(response => { |
| | | this.funddetailList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | //点击捐献案例列表触发方法 |
| | | selectDonotor(row, column, event) { |
| | | this.curCase = row; |
| | | this.getfundList(); |
| | | }, |
| | | |
| | | getfundList() { |
| | | this.loading = true; |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | this.fundQueryParam.infoid = this.curCase.id; |
| | | listFund(this.fundQueryParam).then((response) => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | }); |
| | | }, |
| | | |
| | | //导入所有项目 |
| | | addAllItems() { |
| | | this.loading = true; |
| | | this.fundDetails = this.fundDetails.filter( |
| | | (r) => r.applytype != "" && r.applytype != null |
| | | ); |
| | | let listAdd = []; |
| | | //let listAdd = this.fundDetails; |
| | | 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) => |
| | | r.applytype == this.feeItemTypes[i].itemType && |
| | | r.itemid == this.feeItemTypes[i].itemDetails[j].id |
| | | ); |
| | | |
| | | if (list.length == 0) { |
| | | let rowData = { |
| | | id: null, |
| | | orderno: listAdd.length + 1, |
| | | applytype: this.feeItemTypes[i].itemType, |
| | | itemid: this.feeItemTypes[i].itemDetails[j].id, |
| | | itemcode: this.feeItemTypes[i].itemDetails[j].itemCode, |
| | | recordstatus: "-1", |
| | | beneficiaryname: "点击选择", |
| | | unitname: "点击选择", |
| | | itemlist: this.feeItemTypes[i].itemDetails, |
| | | rowfeeblocks: null, |
| | | servicesscope: null, |
| | | servicesscopename: "" |
| | | }; |
| | | |
| | | //获取收费项目的说明信息 |
| | | getdetailsByItemId(rowData.itemid).then((res) => { |
| | | let fundmsg = res.data; |
| | | let rowfeeblocks = []; |
| | | fundmsg.forEach((item) => { |
| | | rowfeeblocks.push({ |
| | | expense: item.expense, |
| | | expensedescribe: item.expensedescribe, |
| | | remark: item.expensedescribe, |
| | | servicesscope: item.id, |
| | | }); |
| | | }); |
| | | |
| | | rowData.rowfeeblocks = rowfeeblocks; |
| | | rowData.servicesscope = null; |
| | | rowData.servicesscopename = ""; |
| | | }); |
| | | |
| | | listAdd.push(rowData); |
| | | } |
| | | } |
| | | } |
| | | this.fundDetails = listAdd; |
| | | this.loading = false; |
| | | // let Outerarr = this.fundDetails; |
| | | // Outerarr.map((res) => { |
| | | // let onelist = this.rowfeeItemTypes; |
| | | // onelist.map((item) => { |
| | | // //第一层不相等时; |
| | | // if (res.applytype !== item.itemType) { |
| | | // this.addRow(); |
| | | // } |
| | | // }); |
| | | // }); |
| | | }, |
| | | |
| | | addAll(row, i, arr) { |
| | | row.itemlist.map((res) => { |
| | | if (res.id !== row.itemid) { |
| | | let a = arr.length; |
| | | this.addRow(); |
| | | arr[a].itemlist = row.itemlist; |
| | | arr[a].applytype = row.applytype; |
| | | arr[a].itemid = res.id; |
| | | |
| | | getdetailsByItemId(arr[a].itemid).then((res) => { |
| | | let fundmsg = res.data; |
| | | let rowfeeblocks = []; |
| | | fundmsg.forEach((item) => { |
| | | rowfeeblocks.push({ |
| | | expense: item.expense, |
| | | expensedescribe: item.expensedescribe, |
| | | remark: item.expensedescribe, |
| | | servicesscope: item.id, |
| | | }); |
| | | }); |
| | | row.rowfeeblocks = rowfeeblocks; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //新增一行 |
| | | addRow(rowIndex) { |
| | | let rowData = { |
| | | orderno: null, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | id: null, |
| | | fundid: null, |
| | | beneficiaryname: "点击选择", |
| | | beneficiaryname: null, |
| | | beneficiaryno: null, |
| | | unitname: "点击选择", |
| | | unitno: null, |
| | | uintname: null, |
| | | uintno: null, |
| | | uintuserno: null, |
| | | title: null, |
| | | idcardtype: null, |
| | | idcardno: null, |
| | | sex: null, |
| | |
| | | itemtype: null, |
| | | amount: null, |
| | | prepaidamount: null, |
| | | taxamount: null, |
| | | invoicecount: null, |
| | | taxedamount: null, |
| | | attachcount: null, |
| | | remark: null, |
| | | recordstatus: "-1", |
| | | recordstatus: "0", |
| | | delFlag: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | uploadflag: null, |
| | | uploadtime: null, |
| | | itemlist: [], |
| | | servicesscope: null, |
| | | rowfeeblocks: [], |
| | | uploadtime: null |
| | | }; |
| | | if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { |
| | | this.fundDetails.push(rowData); |
| | | } else { |
| | | this.fundDetails.splice(rowIndex + 1, 0, rowData); |
| | | } |
| | | for (let i = 0; i < this.fundDetails.length; i++) { |
| | | this.fundDetails[i].orderno = i + 1; |
| | | } |
| | | this.resetForm("form"); |
| | | }, |
| | | |
| | | //加载服务项目 |
| | | loadItemType(row) { |
| | | let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); |
| | | row.itemlist = list[0].itemDetails; |
| | | row.itemid = null; |
| | | this.$forceUpdate(); |
| | | //this.loading = true; |
| | | // getItemNames(row.applytype).then((res) => { |
| | | // this.loading = false; |
| | | // row.itemid = null; |
| | | // row.itemlist = res.data; |
| | | // this.$forceUpdate(); |
| | | // }); |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | |
| | | //获取专家列表 |
| | | getExternalpersonList() { |
| | | listExternalperson().then((res) => { |
| | | this.personlist = res.rows; |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "添加费用申请明细"; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getFunddetail(id).then(response => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改费用申请明细"; |
| | | }); |
| | | }, |
| | | |
| | | //专家人员列表 |
| | | selectReporters() { |
| | | let types = ["expert"]; |
| | | let templist = []; |
| | | for (let i = 0; i < types.length; i++) { |
| | | templist = []; |
| | | 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, |
| | | }); |
| | | } |
| | | this.expertlist = this.expertlist.concat(templist); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | selectpersonmsg(row) { |
| | | // if(row.beneficiaryname) |
| | | this.personlist.map((res) => { |
| | | if (row.beneficiaryname == res.username) { |
| | | row.beneficiaryno = res.userno; |
| | | row.beneficiaryname = res.username; |
| | | row.bankcardno = res.bankcardno; |
| | | row.branchbankname = res.branchbankname; |
| | | row.depositbank = res.depositbank; |
| | | row.idcardno = res.idcardno; |
| | | row.phone = res.phonenumber; |
| | | row.title = res.title; |
| | | row.unitname = res.unitname; |
| | | row.unitno = res.unitno; |
| | | } else { |
| | | row.beneficiaryno = row.beneficiaryname; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getUserList() { |
| | | listUser().then((res) => { |
| | | console.log("listUser", res); |
| | | this.userlist = res.data; |
| | | }); |
| | | }, |
| | | |
| | | //筛查出对应的费用项目 |
| | | searchItemType(val, scope) { |
| | | let result = []; |
| | | if (val != "") { |
| | | let tempitemlist = scope.row.itemlist; |
| | | for (let i = 0; i < tempitemlist.length; i++) { |
| | | let pym = tempitemlist[i].itempinyin; |
| | | if (pym != null && pym != undefined && pym != "") { |
| | | if (pym.indexOf(val) != -1) { |
| | | result.push(tempitemlist[i]); |
| | | } |
| | | } |
| | | } |
| | | scope.row.itemlist = result; |
| | | } else { |
| | | getItemNames(scope.row.applytype).then((res) => { |
| | | scope.row.itemlist = res.data; |
| | | //this.$set(this.fundDetails, rowindex, row); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | deleteRows(row, index, rows) { |
| | | this.$confirm("是否确认删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "success", |
| | | }) |
| | | .then(() => { |
| | | if (row.id !== null) { |
| | | delFunddetail(row.id).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$confirm("删除成功", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "success", |
| | | }).then(() => { |
| | | this.$set(rows, rows.splice(index, 1)); |
| | | getownFundDetail(this.form.id).then((res) => { |
| | | this.$set(this.fundDetails, res.data); |
| | | this.sumTotalFee(); |
| | | // this.fundDetails = res.data |
| | | }); |
| | | }); |
| | | } |
| | | // getownFundDetail(this.form.id).then(res=>{ |
| | | // this.$set(this.fundDetails,res.data) |
| | | // this.fundDetails = res.data |
| | | // }) |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateFunddetail(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | rows.splice(index, 1); |
| | | this.sumTotalFee(); |
| | | addFunddetail(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | //几点取消的提示 |
| | | }); |
| | | }, |
| | | |
| | | //计算个税 |
| | | calculateTax() { }, |
| | | |
| | | //计算总金额 |
| | | sumTotalFee(row) { |
| | | let allSum = 0; |
| | | if (this.form.applytype != null) { |
| | | for (let i = 0; i < this.fundDetails.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.fundDetails[i].taxamount))) { |
| | | totalFee -= parseFloat(this.fundDetails[i].taxamount); |
| | | taxFee -= parseFloat(this.fundDetails[i].taxamount); |
| | | } |
| | | } else if (this.form.applytype == 3) { |
| | | if ( |
| | | !isNaN(parseFloat(this.fundDetails[i].price)) && |
| | | !isNaN(parseFloat(this.fundDetails[i].quantity)) |
| | | ) { |
| | | totalFee += |
| | | parseFloat(this.fundDetails[i].price) * |
| | | parseFloat(this.fundDetails[i].quantity); |
| | | } |
| | | } |
| | | |
| | | //税前、税后需要独立录入 |
| | | // if (!isNaN(parseFloat(taxFee))) { |
| | | // this.fundDetails[i].taxedamount = taxFee.toFixed(2); |
| | | // } |
| | | |
| | | allSum += totalFee; |
| | | } |
| | | } |
| | | // this.form.amountrequested = allSum.toFixed(2); |
| | | // this.$forceUpdate(); |
| | | }, |
| | | |
| | | //获取费用类型 |
| | | getCurFundType() { |
| | | getFundTypeAll(this.businesstype).then((res) => { |
| | | let dataList = res.data; |
| | | this.feeItemTypes = dataList; |
| | | this.rowfeeItemTypes = []; |
| | | for (let m = 0; m < dataList.length; m++) { |
| | | this.rowfeeItemTypes.push({ |
| | | value: dataList[m].itemType, |
| | | label: dataList[m].itemTypeName, |
| | | subjecttype: dataList[m].subjecttype, |
| | | subjecttypename: dataList[m].subjecttypename, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getitemlist(rowindex, row) { |
| | | let list = this.feeItemTypes.filter((r) => r.itemType == row.applytype); |
| | | row.itemlist = list[0].itemDetails; |
| | | this.$set(this.fundDetails, rowindex, row); |
| | | //this.loading = true; |
| | | // getItemNames(row.applytype).then((res) => { |
| | | // this.loading = false; |
| | | // row.itemlist = res.data; |
| | | // this.$set(this.fundDetails, rowindex, row); |
| | | // }); |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除费用申请明细编号为"' + ids + '"的数据项?').then(function () { |
| | | return delFunddetail(ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => { }); |
| | | }, |
| | | |
| | | mixExport(scope) { |
| | | this.dayin(scope.row.id); |
| | | //this.totaldayin(id); |
| | | }, |
| | | |
| | | //专家费劳务打印 |
| | | dayin(id) { |
| | | getdownloadLW(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", |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //汇总打印 |
| | | totaldayin(e) { |
| | | // const id =this.row.id |
| | | getdownloadBX(e).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", |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | |
| | | //文件上传 |
| | | handleUploadError() { }, |
| | | |
| | | /** 下载文件按钮操作 */ |
| | | downFile(item) { |
| | | 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) |
| | | }, |
| | | |
| | | handleExceed() { |
| | | this.$message.error(`上传文件数量不能超过 ${5} 个!`); |
| | | }, |
| | | |
| | | //文件上传成功回调 |
| | | uploadSccess(response, file, fileList) { |
| | | //获取附件信息位置 |
| | | if (response.code == 200) { |
| | | this.form.filename = file.raw.name; |
| | | this.$modal.msgSuccess(response.msg); |
| | | this.fileList.push({ name: response.fileName, url: response.fileName }); |
| | | } else { |
| | | console.log(response.msg);; |
| | | } |
| | | }, |
| | | |
| | | }, |
| | | |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | const queryParams = this.queryParams; |
| | | this.$modal.confirm('是否确认导出所有费用申请明细数据项?').then(() => { |
| | | this.exportLoading = true; |
| | | return exportFunddetail(queryParams); |
| | | }).then(response => { |
| | | this.$download.name(response.msg); |
| | | this.exportLoading = false; |
| | | }).catch(() => { }); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | <style scoped> |
| | | /* @import url(); 引入公共css类 */ |
| | | </style> |