| | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="申请日期" prop="createTime"> |
| | | <el-form-item label="报销单号" prop="bh"> |
| | | <el-input |
| | | v-model="form.bh" |
| | | :disabled="true" |
| | | placeholder="报销单号" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="申请日期" prop="applyTime"> |
| | | <el-date-picker |
| | | clearable |
| | | :disabled="true" |
| | | style="width: 100%" |
| | | v-model="form.createTime" |
| | | v-model="form.applyTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | 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> |
| | | <!-- |
| | | <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="businessType">{{ |
| | | businessName |
| | | }}</el-radio> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5" v-if="ismanager == true"> |
| | | <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="deptmentname"> |
| | | <el-input |
| | | v-model="form.deptmentname" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- |
| | | <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-row style="text-align: left"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="申请单类型"> |
| | | <el-radio v-model="form.applytype" :label="businessType">{{ |
| | | businessName |
| | | }}</el-radio> |
| | | </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="name"> |
| | | <el-form-item label="捐献案例" prop="name"> |
| | | <el-input |
| | | :disabled="true" |
| | | v-model="form.donorname" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5" v-if="ismanager == true"> |
| | | <el-form-item label="申请金额" prop="pretaxcost"> |
| | | <el-input |
| | | v-model="form.pretaxcost" |
| | | placeholder="税前金额合计" |
| | | :disabled="true" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left"> |
| | | <el-col :span="8"> |
| | | <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="recordstatus"> |
| | | <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable size="small" :disabled="true"> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="3" v-if="businessType == '1'"> |
| | | <el-button |
| | | @click.native.prevent="importFeeItems" |
| | | type="primary" |
| | | size="small" |
| | | > |
| | | 导入服务项目 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div style="margin-bottom: 15px;" v-if="businessType == 2"> |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-button |
| | | type="success" |
| | | type="primary" |
| | | icon="el-icon-download" |
| | | size="small" |
| | | @click.native.prevent="importFeeItems" |
| | | > |
| | | 批量导入服务项目 |
| | | </el-button> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3" v-if="businessType == 2"> |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-download" |
| | | size="small" |
| | | @click="Batchentry" |
| | | >批量录入</el-button |
| | | >批量录入专家</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <div |
| | | style="margin-bottom: 15px;" |
| | | v-if=" |
| | | userprofile.nickName == '陈慕华' && |
| | | (businessType == '1' || businessType == '2') |
| | | " |
| | | > |
| | | <!-- <el-col |
| | | :span="3" |
| | | v-if=" |
| | | userprofile.nickName == '陈慕华' && |
| | | (businessType == '1' || businessType == '2') |
| | | " |
| | | > |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-edit-outline" |
| | | size="small" |
| | | @click="Manualcalculationfn" |
| | | >计算个税</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <el-table |
| | |
| | | <el-input v-model="scope.row.orderno" placeholder="序号" /> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip="" |
| | | v-if="form.applytype == '1'"> |
| | | </el-table-column>--> |
| | | <el-table-column |
| | | prop="applytype" |
| | | align="center" |
| | |
| | | prop="servicesscope" |
| | | align="center" |
| | | label="服务说明" |
| | | v-if="form.applytype == '1'" |
| | | v-if="businessType == '1'" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-show=" |
| | | businessType == 2 || |
| | | businessType == 3 || |
| | | businessType == 4 || |
| | | ismanager == true |
| | | " |
| | | prop="amount" |
| | | align="center" |
| | | :label="amountLabel" |
| | | :label="amountlabel" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.amount" |
| | | placeholder="金额" |
| | | @blur=" |
| | | val => { |
| | | calculateTax(scope.row, 'A'); |
| | | } |
| | | " |
| | | /> |
| | | <el-input v-model="scope.row.amount" placeholder="金额" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | label="扣税金额" |
| | | width="120" |
| | | v-show=" |
| | | (this.ismanager == true) & |
| | | (form.applytype == '1' || form.applytype == '2') |
| | | v-if=" |
| | | ismanager == true && |
| | | (businessType == '1' || businessType == '2') |
| | | " |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | align="center" |
| | | label="税后金额" |
| | | width="120" |
| | | v-show=" |
| | | (this.ismanager == true) & |
| | | (form.applytype == '1' || form.applytype == '2') |
| | | v-if=" |
| | | ismanager == true && |
| | | (businessType == '1' || businessType == '2') |
| | | " |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | v-model="scope.row.taxedamount" |
| | | placeholder="税后金额" |
| | | @blur=" |
| | | val => { |
| | | calculateTax(scope.row, 'B'); |
| | | } |
| | | " |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | align="center" |
| | | label="专家所在单位" |
| | | width="250" |
| | | v-if="form.applytype == '1' && form.applytype == '2'" |
| | | v-if="businessType == '1' || businessType == '2'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | <el-table-column prop="unitname" align="center" label="单位(个人)名称" width="300" |
| | | v-if="form.applytype == '4' || form.applytype == '3'"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="primary" plain @click="showSelectionDialog(scope, 'account')">{{ |
| | | scope.row.unitname |
| | | ? 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="title" |
| | | align="center" |
| | | label="职称" |
| | | width="120" |
| | | v-if="form.applytype == '1' || form.applytype == '2'" |
| | | v-if="businessType == '1' || businessType == '2'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.title" placeholder="职称" /> |
| | |
| | | align="center" |
| | | label="身份证号" |
| | | width="200" |
| | | v-if="form.applytype == '1' || form.applytype == '2'" |
| | | v-if="businessType == '1' || businessType == '2'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-form-item :error="scope.row.error" label-width="0"> |
| | | <el-form-item label-width="0"> |
| | | <el-input |
| | | :disabled=" |
| | | userprofile.nickName != '陈慕华' && businessType == 1 |
| | | " |
| | | :disabled="userprofile.nickName != '陈慕华'" |
| | | v-model.number="scope.row.idcardno" |
| | | @input="tableParValueChange1(scope.row)" |
| | | placeholder="身份证号" |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | :disabled=" |
| | | userprofile.nickName != '陈慕华' && businessType == 1 |
| | | " |
| | | :disabled="userprofile.nickName != '陈慕华'" |
| | | v-model="scope.row.depositbank" |
| | | placeholder="开户银行" |
| | | /> |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | :disabled=" |
| | | userprofile.nickName != '陈慕华' && businessType == 1 |
| | | " |
| | | :disabled="userprofile.nickName != '陈慕华'" |
| | | v-model="scope.row.bankcardno" |
| | | placeholder="银行帐号" |
| | | /> |
| | |
| | | align="center" |
| | | width="330" |
| | | label="备注" |
| | | v-if=" |
| | | businessType == 2 || |
| | | businessType == 3 || |
| | | businessType == 4 || |
| | | ismanager == true |
| | | " |
| | | v-show="ismanager == true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | |
| | | type="text" |
| | | size="small" |
| | | v-if=" |
| | | businessType == 3 || businessType == 2 || businessType == 4 |
| | | businessType == 2 || |
| | | businessType == 3 || |
| | | businessType == 4 || |
| | | businessType == 1 |
| | | " |
| | | >票据</el-button |
| | | > |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="primary" |
| | | type="danger" |
| | | size="mini" |
| | | @click.native.prevent.stop="deletedowfile(scope.row)" |
| | | >删除</el-button |
| | |
| | | style="margin-top: 25px; margin-bottom: 5px" |
| | | v-if="operationType == 'check' && userprofile.nickName == '陈慕华'" |
| | | > |
| | | <el-col :span="20"> |
| | | <el-form-item label="申请材料状态" prop="infoid"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="预审材料" prop="infoid"> |
| | | <el-radio-group v-model="form.checkstatus" align="left"> |
| | | <el-radio :label="1">待申请材料</el-radio> |
| | | <el-radio :label="2">审核通过等待邮寄纸质材料</el-radio> |
| | | <el-radio :label="3">已收到报销材料</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" v-if="businessType == 1"> |
| | | <el-form-item label="算税状态" prop="infoid"> |
| | | <el-radio-group v-model="form.istax" align="left"> |
| | | <el-radio :label="-1">审核中</el-radio> |
| | | <el-radio :label="0">允许算税</el-radio> |
| | | <el-radio :label="1">已算税</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="24"> |
| | | <el-form-item |
| | | label="单位名称" |
| | | prop="expertunitno" |
| | | prop="expertunitname" |
| | | label-width="120px" |
| | | > |
| | | <el-select |
| | | v-model="accountselectform.expertunitno" |
| | | v-model="accountselectform.expertunitname" |
| | | placeholder="单位名称" |
| | | clearable |
| | | filterable |
| | |
| | | v-for="(spec, index) in unitList" |
| | | :key="index" |
| | | :label="spec.organizationname" |
| | | :value="spec.organizationid" |
| | | :value="spec.organizationname" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-radio-group v-model="accountfrom" style="margin-bottom: 0"> |
| | | <el-radio label="1">从账户库</el-radio> |
| | | <el-radio label="2" |
| | | >新增账户(新增后需要审核确认才能启用)</el-radio |
| | | >新增账户(新增专家账户后需要审核启用才能使用)</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | |
| | | <el-option |
| | | v-for="item in accountlist" |
| | | :key="item.id" |
| | | :label="item.username" |
| | | :value="item.username" |
| | | :label="item.userid" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="accountfrom == '2'"> |
| | | <el-col :span="16" |
| | | ><el-form-item label="新增类型" prop="usertype"> |
| | | <el-row v-if="selectionType == 'account' && accountfrom == '2'"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="新增类型" prop="usertype" class="left-align"> |
| | | <el-radio-group |
| | | v-model="accountselectform.usertype" |
| | | style="margin-bottom: 0" |
| | | @change="userTypeChange(accountselectform.usertype)" |
| | | > |
| | | <el-radio label="expert">新增专家账号</el-radio> |
| | | <el-radio label="org">新增单位账号</el-radio> |
| | | <el-radio label="expert">专家账户</el-radio> |
| | | <el-radio label="org">单位账户</el-radio> |
| | | <el-radio label="donor">捐献者亲属账户</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="accountfrom == '2'"> |
| | | <el-row v-if="selectionType == 'account' && accountfrom == '2'"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="账号名称" prop="username"> |
| | | <el-form-item label="账户名称" prop="username"> |
| | | <el-input |
| | | v-model="accountselectform.username" |
| | | placeholder="请输入单位名称或专家姓名" |
| | | placeholder="请输入单位名称,或专家姓名,或其他账号" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row |
| | | v-if="accountfrom == '2' && accountselectform.usertype != 'org'" |
| | | v-if=" |
| | | selectionType == 'account' && |
| | | accountfrom == '2' && |
| | | accountselectform.usertype != 'org' |
| | | " |
| | | > |
| | | <el-col :span="12"> |
| | | <el-form-item label="身份证号" prop="idcardno"> |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col :span="12" v-if="accountselectform.usertype == 'expert'"> |
| | | <el-form-item label="职称" prop="title"> |
| | | <el-select |
| | | v-model="accountselectform.title" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row |
| | | v-if="accountfrom == '2' && accountselectform.usertype != 'org'" |
| | | v-if=" |
| | | selectionType == 'account' && |
| | | accountfrom == '2' && |
| | | accountselectform.usertype == 'expert' |
| | | " |
| | | > |
| | | <el-col> |
| | | <el-form-item label="所在单位" prop="unitno"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="accountfrom == '2'"> |
| | | <el-row v-if="selectionType == 'account' && accountfrom == '2'"> |
| | | <el-col |
| | | ><el-form-item label="开户银行" prop="depositbank"> |
| | | <el-input |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="accountfrom == '2'"> |
| | | <el-row v-if="selectionType == 'account' && accountfrom == '2'"> |
| | | <el-col> |
| | | <el-form-item label="联系地址" prop="address"> |
| | | <el-input |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="accountfrom == '2'"> |
| | | <el-row v-if="selectionType == 'account' && accountfrom == '2'"> |
| | | <el-col> |
| | | <el-form-item label="联系电话" prop="telephone"> |
| | | <el-input |
| | |
| | | :visible.sync="pdfVisible" |
| | | width="60%" |
| | | > |
| | | <div> |
| | | <div style="margin-bottom: 10px;"> |
| | | <el-table :data="tableDatatop" style="width: 100%"> |
| | | <el-table-column |
| | | v-if="businessType == 4" |
| | |
| | | v-if="businessType == 4" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="amount" align="center" :label="amountLabel"> |
| | | <el-table-column prop="amount" align="center" :label="amountlabel"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="taxedamount" |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <el-alert |
| | | title="新上传文件需在提交保存后才可进行案例关联,否则视为放弃" |
| | | type="error" |
| | | show-icon |
| | | close-text="知道了" |
| | | > |
| | | </el-alert> |
| | | <el-tabs |
| | | style="margin-top: 20px;" |
| | | v-model="activeName" |
| | | type="border-card" |
| | | @tab-click="handleClick" |
| | | > |
| | | <el-tab-pane label="普通附件" :name="1"> |
| | | <el-tab-pane label="普通附件" name="common"> |
| | | <div class="pdfimg"> |
| | | <div class="box-pdf"> |
| | | <div> |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="primary" |
| | | type="danger" |
| | | size="mini" |
| | | @click.native.prevent.stop="deletedowfile(scope.row)" |
| | | >删除</el-button |
| | |
| | | <!-- <img :src="pdfimg" /> --> |
| | | <el-image |
| | | style="width: 95%; height: 90%" |
| | | @error="handleImageError" |
| | | @load="handleImageLoad" |
| | | :src="pdfimg" |
| | | :preview-src-list="pdfimgsrcList" |
| | | > |
| | |
| | | <div v-else class="pdfimgmins">{{ hintitle }}</div> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="发票文件" :name="2"> |
| | | <el-tab-pane label="发票文件" name="invoice"> |
| | | <div class="pdfimg"> |
| | | <div class="box-pdf"> |
| | | <div> |
| | |
| | | <!-- <img :src="pdfimg" /> --> |
| | | <el-image |
| | | style="width: 95%; height: 90%" |
| | | @error="handleImageError" |
| | | @load="handleImageLoad" |
| | | :src="invoicepdfimg" |
| | | :preview-src-list="invoicepdfimgsrcList" |
| | | > |
| | |
| | | delExternalperson, |
| | | addExternalperson, |
| | | updateExternalperson, |
| | | exportExternalperson |
| | | exportExternalperson, |
| | | getOnlyCode |
| | | } from "@/api/project/externalperson"; |
| | | |
| | | import { listItemexpense } from "@/api/project/itemexpense"; |
| | |
| | | businessName: "", |
| | | //操作类型 |
| | | operationType: "", |
| | | |
| | | Loadornot: false, |
| | | //当前单据id |
| | | curId: 0, |
| | | //当前选中捐献案例 |
| | |
| | | selectionScope: "", |
| | | //选择类型:专家(单位)账户、工作单位(account/workunit) |
| | | selectionType: "", |
| | | //受益人标签:专家费-专家(单位)名称,医学成本-办公-单位(个人)名称 |
| | | beneficiarylabel: "", |
| | | //账户选择:1是账户库,2是新增 |
| | | accountfrom: "1", |
| | | //受益人标签:专家费-专家(单位)名称,医学成本-办公-单位(个人)名称 |
| | | beneficiarylabel: "", |
| | | //税前金额标题:专家费-税前金额;医学成本、办公费用-金额 |
| | | amountLabel: "税前金额", |
| | | amountlabel: "税前金额", |
| | | |
| | | // 表单校验 |
| | | rules: { |
| | | // createTime: [ |
| | | // { required: true, message: "请输入填报日期", trigger: "blur" } |
| | | // ], |
| | | reason: [ |
| | | { required: true, message: "请输入出差事由", trigger: "blur" } |
| | | ], |
| | |
| | | { required: true, message: "请输入所属业务组", trigger: "blur" } |
| | | ] |
| | | }, |
| | | |
| | | dialogrules: { |
| | | // expertidcardno: [{ validator: validatePass, trigger: "blur" }], |
| | | usertype: [ |
| | | { required: true, message: "请输入账户类型", trigger: "blur" } |
| | | ], |
| | | username: [ |
| | | { required: true, message: "请输入账户名称", trigger: "blur" } |
| | | ], |
| | | idcardno: [ |
| | | { required: true, message: "请输入身份账号", trigger: "blur" } |
| | | ], |
| | | //idcardno: [{ validator: validatePass, trigger: "blur" }], |
| | | depositbank: [ |
| | | { required: true, message: "请输入开户银行", trigger: "change" } |
| | | ], |
| | | bankcardno: [ |
| | | { required: true, message: "请输入银行卡号", trigger: "change" } |
| | | ], |
| | | unitno: [ |
| | | { required: true, message: "请选择单位名称", trigger: "change" } |
| | | ] |
| | | }, |
| | | |
| | |
| | | unitno: null, |
| | | personnelunitno: null, |
| | | address: null, |
| | | telephone: null |
| | | telephone: null, |
| | | username: null, |
| | | userno: null |
| | | }, |
| | | |
| | | accountform: { |
| | | searchValue: null, |
| | | id: null, |
| | | userstatus: 1, |
| | | userstatus: 0, |
| | | usertype: null, |
| | | |
| | | pym: null, |
| | |
| | | username: null, |
| | | usertype: null |
| | | }, |
| | | // 查询最新序号参数 |
| | | seqnoParams: { |
| | | businessType: "externalperson", |
| | | datequery: false |
| | | }, |
| | | |
| | | //计算个税参数 |
| | | taxParam: { |
| | |
| | | invoicepdfimg: "", |
| | | invoicepdfimgsrcList: [], |
| | | invoDatatop: [], |
| | | activeName: 1, //文件类型 |
| | | activeName: "common", //文件类型 |
| | | //上传附件路径 |
| | | uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | ICDtoken: getToken(), |
| | | //文件上传token |
| | | headers: { |
| | | Authorization: "Bearer " + getToken() |
| | |
| | | // if (!this.businessType && !this.operationType) { |
| | | if (this.businessType == "1") { |
| | | this.businessName = "专家劳务费申请单"; |
| | | this.amountLabel = "税前金额"; |
| | | this.amountlabel = "税前金额"; |
| | | this.beneficiarylabel = "专家或单位名称"; |
| | | this.getUnitList(); |
| | | } else if (this.businessType == "2") { |
| | | this.businessName = "伦理专家劳务费申请单"; |
| | | this.amountLabel = "税前金额"; |
| | | this.amountlabel = "税前金额"; |
| | | this.beneficiarylabel = "专家或单位名称"; |
| | | this.getUnitList(); |
| | | } else if (this.businessType == "3") { |
| | | this.businessName = "医学成本报销单"; |
| | | this.amountLabel = "金额"; |
| | | this.amountlabel = "金额"; |
| | | this.beneficiarylabel = "单位名称或个人"; |
| | | this.getUnitList(); |
| | | } else if (this.businessType == "4") { |
| | | this.businessName = "办公费用报销单"; |
| | | this.amountLabel = "金额"; |
| | | this.amountlabel = "金额"; |
| | | this.beneficiarylabel = "单位名称或个人"; |
| | | this.getUnitList(); |
| | | |
| | |
| | | this.reset(); |
| | | |
| | | getFund(this.curId).then(response => { |
| | | console.log(response.data, "初始"); |
| | | |
| | | this.form = response.data; |
| | | sessionStorage.removeItem("apiform"); |
| | | |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | | |
| | | // this.form.recordstate =-1; |
| | |
| | | this.reset(); |
| | | |
| | | getFund(this.curId).then(response => { |
| | | console.log(response.data, "初始"); |
| | | |
| | | this.form = response.data; |
| | | sessionStorage.removeItem("apiform"); |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | |
| | | //业务明细 |
| | | getownFundDetail(this.curId).then(res => { |
| | | this.rbDetails = res.data; |
| | | console.log("this.feeBlocks", this.feeBlocks); |
| | | |
| | | for (let m = 0; m < this.rbDetails.length; m++) { |
| | | this.rbDetails[m].itemlist = []; |
| | | this.getRowFeeItems(m, this.rbDetails[m]); |
| | |
| | | //获取费用项目的详细信息 |
| | | this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( |
| | | r => r.itemid == this.rbDetails[m].itemid |
| | | ); |
| | | console.log( |
| | | "this.rbDetails[m].rowfeeblocks", |
| | | this.rbDetails[m].rowfeeblocks |
| | | ); |
| | | } |
| | | |
| | |
| | | this.reset(); |
| | | |
| | | getFund(this.curId).then(response => { |
| | | console.log(response.data, "初始"); |
| | | this.form = response.data; |
| | | sessionStorage.removeItem("apiform"); |
| | | |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | | |
| | | //附件处理 |
| | |
| | | //判断是否存在上报记录 |
| | | this.form.recordstatus = 0; |
| | | var currenttime = new Date(); |
| | | this.form.createTime = |
| | | this.form.applyTime = |
| | | currenttime.getFullYear() + |
| | | "-" + |
| | | (currenttime.getMonth() + 1) + |
| | |
| | | ); |
| | | return; |
| | | } |
| | | |
| | | /* |
| | | if ( |
| | | tempDetail.idcardno == null && |
| | | this.businessType != "3" && |
| | | this.businessType != "4" |
| | | ) { |
| | | console.log(1122); |
| | | this.$modal.msgWarning( |
| | | "服务项目表中,第" + |
| | | (k + 1).toString() + |
| | | "行的身份证未完善,请先填写身份证后再提交保存!" |
| | | ); |
| | | return; |
| | | } |
| | | */ |
| | | |
| | | if (this.businessType == "1") { |
| | | if (tempDetail.servicesscope == null) { |
| | |
| | | // }); |
| | | } else { |
| | | this.form.recordstatus = -1; |
| | | var currenttime = new Date(); |
| | | this.form.applyTime = |
| | | currenttime.getFullYear() + |
| | | "-" + |
| | | (currenttime.getMonth() + 1) + |
| | | "-" + |
| | | currenttime.getDate() + |
| | | " " + |
| | | currenttime.getHours() + |
| | | ":" + |
| | | currenttime.getMinutes() + |
| | | ":" + |
| | | currenttime.getSeconds(); |
| | | |
| | | // addorupdateFund(this.form).then((response) => { |
| | | // if (response.code === 200) { |
| | |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | | addorupdateFund(this.form) |
| | | .then(response => { |
| | | console.log(this.form); |
| | | console.log(response, "保存返参"); |
| | | if (response.code === 200) { |
| | | if (response.code == 200) { |
| | | if (this.form.id) { |
| | | this.$modal.msgSuccess("申请单修改成功!"); |
| | | this.$router.go(-1); |
| | |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: response.data, |
| | | businessType: "2", |
| | | businessType: this.businessType, |
| | | operationType: "update", |
| | | curCase: this.curCase |
| | | } |
| | |
| | | }); |
| | | }, 500), |
| | | |
| | | //审批提交 |
| | | // checksubmit() { |
| | | // console.log(this.checkObj.flowlevelone); |
| | | // if ( |
| | | // this.form.checkstatus != 3 && |
| | | // this.userprofile.nickName == "陈慕华" && |
| | | // this.checkObj.flowlevelone == 1 |
| | | // ) { |
| | | // this.$modal.msgError("请选确认材料状态已收到!"); |
| | | // return; |
| | | // } |
| | | // this.Savenow(); |
| | | // console.log("保存并审批"); |
| | | // }, |
| | | checksubmit() { |
| | | console.log(this.checkObj.flowlevelone); |
| | | if (this.userprofile.nickName == "陈慕华") { |
| | | //检查是否收到纸质材料 |
| | | if (this.form.checkstatus != 3 && this.checkObj.flowlevelone == 1) { |
| | | this.$modal.msgError("请确认报销的纸质材料已经收到!"); |
| | | //检查是否收到纸质材料 |
| | | if (this.checkObj.flowlevelone == 2) { |
| | | if (!this.checkObj.flowconclusion) { |
| | | this.$modal.msgError( |
| | | "请输入审核不通过的说明信息,方便经办人修改申请单!" |
| | | ); |
| | | return; |
| | | } |
| | | } else if (this.checkObj.flowlevelone == 1) { |
| | | if (this.userprofile.nickName == "陈慕华") { |
| | | //检查是否收到纸质材料 |
| | | if (this.form.checkstatus != 3) { |
| | | this.$modal.msgError("请先确认报销的纸质材料是否已经收到!"); |
| | | return; |
| | | } |
| | | |
| | | //检查个税计算 |
| | | // if ( (this.form.applytype == "1" || this.form.applytype == "2") && this.form.fundtaxtime == null ) { |
| | | // this.$modal.msgError( |
| | | // "提交专家费用申请单、伦理专家申请费用申请单审核,需要先完成个税计算!" |
| | | // ); |
| | | // return; |
| | | // } |
| | | if (this.form.applytype == "1" && this.form.fundtaxtime == null) { |
| | | this.$modal.msgError("提交专家费用申请单审核,需要先完成个税计算!"); |
| | | return; |
| | | //检查个税计算 |
| | | if (this.form.applytype == "1" && this.form.fundtaxtime == null) { |
| | | this.$modal.msgError( |
| | | "请先完成专家费用的个税计算后,再提交审核通过!" |
| | | ); |
| | | return; |
| | | } |
| | | } |
| | | } else { |
| | | this.$modal.msgError("请先选择审批结果再提交!"); |
| | | return; |
| | | } |
| | | |
| | | this.Savenow(); |
| | |
| | | getUserProfile() { |
| | | getUserProfile().then(res => { |
| | | this.userprofile = res.data; |
| | | console.log(this.userprofile); |
| | | this.standardlevel = res.data.standardlevel; |
| | | if ( |
| | | this.userprofile.userName == "admin" || |
| | |
| | | this.form.managername = this.userprofile.dept.leader; |
| | | this.form.phone = this.userprofile.phonenumber; |
| | | // this.form.applytype = this.businessType; |
| | | // this.form.createTime = new Date(); |
| | | |
| | | if (this.businessType == "4") { |
| | | this.getUserAccount(); |
| | |
| | | //获取专家、单位机构的账户列表 |
| | | getAccountList() { |
| | | listExternalperson().then(res => { |
| | | this.accountlist = res.rows; |
| | | /** |
| | | for (let j = 0; j < this.accountlist.length; j++) { |
| | | // this.accountlist = res.rows; |
| | | //获取启用的账户列表 |
| | | for (let j = 0; j < res.rows.length; j++) { |
| | | //单位账号列表 |
| | | if (this.accountlist[j].usertype == "org") { |
| | | this.feeAccountList.push({ |
| | | id: this.accountlist[j].id, |
| | | reportNo: this.accountlist[j].userno, |
| | | reportName: this.accountlist[j].username, |
| | | depositbank: this.accountlist[j].depositbank, |
| | | branchbankname: this.accountlist[j].branchbankname, |
| | | bankcardno: this.accountlist[j].bankcardno |
| | | }); |
| | | } |
| | | //专家账号列表 |
| | | else if (res.rows[j].usertype == "expert") { |
| | | this.expertAccountList.push({ |
| | | expertNo: this.accountlist[j].id, |
| | | exportName: this.accountlist[j].username+"("+this.accountlist[j].id+")" |
| | | }); |
| | | if (res.rows[j].userstatus == "1") { |
| | | if (res.rows[j].usertype == "org") { |
| | | this.accountlist.push({ |
| | | id: res.rows[j].id, |
| | | userno: res.rows[j].userno, |
| | | username: res.rows[j].username, |
| | | idcardno: res.rows[j].idcardno, |
| | | title: res.rows[j].title, |
| | | depositbank: res.rows[j].depositbank, |
| | | bankcardno: res.rows[j].bankcardno, |
| | | unitno: res.rows[j].unitno, |
| | | unitname: res.rows[j].unitname, |
| | | userid: |
| | | res.rows[j].username + "(" + res.rows[j].bankcardno + ")" |
| | | }); |
| | | } else { |
| | | this.accountlist.push({ |
| | | id: res.rows[j].id, |
| | | userno: res.rows[j].userno, |
| | | username: res.rows[j].username, |
| | | idcardno: res.rows[j].idcardno, |
| | | title: res.rows[j].title, |
| | | depositbank: res.rows[j].depositbank, |
| | | bankcardno: res.rows[j].bankcardno, |
| | | unitno: res.rows[j].unitno, |
| | | unitname: res.rows[j].unitname, |
| | | userid: |
| | | res.rows[j].username + "(" + res.rows[j].idcardno + ")" |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | */ |
| | | }); |
| | | }, |
| | | |
| | |
| | | getUserAccount() { |
| | | this.accountlist.map(res => { |
| | | if (res.username == this.form.username) { |
| | | this.form.bankname = res.depositbank; //res.branchbankname、res.depositbank; |
| | | this.form.bankname = res.depositbank; |
| | | this.form.bankcardno = res.bankcardno; |
| | | this.form.phone = res.telephone; |
| | | } |
| | |
| | | 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 |
| | | }); |
| | |
| | | //获取服务项目 |
| | | getRowFeeItems(rowindex, row) { |
| | | let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); |
| | | console.log(list[0]); |
| | | row.itemlist = list[0].itemDetails; |
| | | this.$set(this.rbDetails, rowindex, row); |
| | | }, |
| | |
| | | row.amount = 0.0; |
| | | row.taxamount = 0.0; |
| | | row.taxedamount = item.expense; |
| | | |
| | | //计算税前金额 |
| | | // this.calculateTax(row, "B"); |
| | | } else { |
| | | row.amount = item.expense; |
| | | row.taxamount = 0.0; |
| | | row.taxedamount = 0.0; |
| | | |
| | | //计算税后金额 |
| | | // this.calculateTax(row, "A"); |
| | | } |
| | | |
| | | // this.form.serviceFunddetails = 0; |
| | | // this.rbDetails.map(item => { |
| | | // this.form.serviceFunddetails += item.amount; |
| | | // }); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | } |
| | | targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下 |
| | | } |
| | | console.log(targetValue, "合计"); |
| | | this.form.pretaxcost = targetValue; |
| | | }, |
| | | |
| | |
| | | this.$modal.msgWarning( |
| | | "服务项目表中,第" + |
| | | (k + 1).toString() + |
| | | "行的服务人员姓名为选择,请选择人员后再提交保存!" |
| | | "行的人员姓名为空,请选择人员后再提交保存!" |
| | | ); |
| | | return; |
| | | } |
| | | if (tempDetail.unitname == null) { |
| | | this.$modal.msgWarning( |
| | | "服务项目表中,第" + |
| | | (k + 1).toString() + |
| | | "行的专家单位为空,请选择单位后再提交保存!" |
| | | ); |
| | | return; |
| | | } |
| | |
| | | flowconclusion: this.checkObj.flowlevelone, |
| | | flowcontent: this.checkObj.flowconclusion |
| | | }; |
| | | this.$modal.loading("正在提交审核,请稍候!"); |
| | | checkfund(checkFundObj).then(res => { |
| | | //关闭窗口 |
| | | this.$modal.msgSuccess("审核完成!"); |
| | | this.$store.dispatch("tagsView/delView", this.$route); |
| | | this.$router.go(-1); |
| | | if (res.code == 200) { |
| | | //关闭窗口 |
| | | this.$modal.closeLoading(); |
| | | this.$modal.msgSuccess("审核完成!"); |
| | | this.$store.dispatch("tagsView/delView", this.$route); |
| | | this.$router.go(-1); |
| | | } else { |
| | | if (res.msg) { |
| | | this.$modal.msgError("操作失误"); |
| | | } else { |
| | | this.$modal.msgError(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | this.Getnetworkheader(); |
| | |
| | | // 手动计算 |
| | | Manualcalculationfn() { |
| | | ManualCalculation(this.rbDetails).then(res => { |
| | | console.log(res); |
| | | if (res.code == 200) { |
| | | sessionStorage.removeItem("apiform"); |
| | | sessionStorage.removeItem("apifunddetail"); |
| | |
| | | rowfeeblocks: [], |
| | | annexfiles: null |
| | | }; |
| | | // if (this.Reminderquantity >= 5) { |
| | | // this.Savereminder = true; |
| | | // return; |
| | | // } |
| | | if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { |
| | | this.rbDetails.push(rowData); |
| | | } else { |
| | |
| | | .catch(() => { |
| | | //几点取消的提示 |
| | | }); |
| | | |
| | | //全部删除后添加一条新行 |
| | | }, |
| | | |
| | | //计算总金额 |
| | | sumTotalFee(row) { |
| | | let allSum = 0; |
| | |
| | | totalprint(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" |
| | | 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); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //文件上传 |
| | | handleImageError(e) { |
| | | // 加载失败 |
| | | }, |
| | | handleImageLoad(e) { |
| | | // 图片加载成功时执行的操作 |
| | | console.log("Image loaded successfully"); |
| | | }, |
| | | handleUploadError() {}, |
| | | remove(file, fileList) { |
| | | const rbDetails = [...this.rbDetails]; |
| | | if (this.activeName == 1) { |
| | | if (this.activeName == "common") { |
| | | this.fileListto.splice(this.fileListto.indexOf(file), 1); |
| | | rbDetails[this.atpresent].annexfilesList = this.fileListto; |
| | | } else { |
| | |
| | | |
| | | uploadSccess(response, file, fileList) { |
| | | this.rbDetails; |
| | | const config = { |
| | | headers: { Authorization: "Bearer " + this.ICDtoken } |
| | | }; |
| | | const pdfimg = this.Networkheader + "/prod-api" + response.fileName; |
| | | //获取票据信息位置 |
| | | console.log(response); |
| | | console.log(file); |
| | | if (this.activeName == 1) { |
| | | if (this.activeName == "common") { |
| | | if (response.code == 200) { |
| | | // this.form.filename = file.raw.name; |
| | | this.previewpdf = true; |
| | | |
| | | fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | // 将获取的数据流转换为URL |
| | | this.pdfimg = URL.createObjectURL(blob); |
| | | this.pdfimgsrcList.push(URL.createObjectURL(blob)); |
| | | this.fileListto.push({ |
| | | name: file.name, |
| | | url: URL.createObjectURL(blob) |
| | | }); |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return; |
| | | }); |
| | | |
| | | this.$modal.msgSuccess(response.msg); |
| | | this.fileListto.push({ |
| | | |
| | | console.log(this.fileListto, "新增后"); |
| | | if (!this.rbDetails[this.atpresent].annexfilesList) { |
| | | this.rbDetails[this.atpresent].annexfilesList = []; |
| | | } |
| | | this.rbDetails[this.atpresent].annexfilesList.push({ |
| | | name: file.name, |
| | | url: response.fileName |
| | | }); |
| | | this.pdfimgsrcList.push( |
| | | this.Networkheader + "/prod-api" + response.fileName |
| | | ); |
| | | console.log(this.pdfimgsrcList); |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; |
| | | this.rbDetails[this.atpresent].annexfilesList = this.fileListto; |
| | | } else { |
| | | console.log(response.msg); |
| | | } |
| | | } else { |
| | | if (response.code == 200) { |
| | | // this.form.filename = file.raw.name; |
| | | this.previewpdf = true; |
| | | fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | // 将获取的数据流转换为URL |
| | | this.invoicepdfimg = URL.createObjectURL(blob); |
| | | this.invoicepdfimgsrcList.push(URL.createObjectURL(blob)); |
| | | this.invoicefileListto.push({ |
| | | name: file.name, |
| | | url: URL.createObjectURL(blob) |
| | | }); |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return; |
| | | }); |
| | | |
| | | this.$modal.msgSuccess(response.msg); |
| | | this.invoicefileListto.push({ |
| | | |
| | | console.log(this.invoicefileListto, "新增后"); |
| | | if (!this.rbDetails[this.atpresent].invoicefilesList) { |
| | | this.rbDetails[this.atpresent].invoicefilesList = []; |
| | | } |
| | | this.rbDetails[this.atpresent].invoicefilesList.push({ |
| | | name: file.name, |
| | | url: response.fileName |
| | | }); |
| | | this.invoicepdfimgsrcList.push( |
| | | this.Networkheader + "/prod-api" + response.fileName |
| | | ); |
| | | console.log(this.invoicepdfimgsrcList); |
| | | this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; |
| | | this.pdfimg = this.Networkheader + "/prod-api" + response.fileName; |
| | | this.rbDetails[ |
| | | this.atpresent |
| | | ].invoicefilesList = this.invoicefileListto; |
| | | console.log(this.rbDetails[this.atpresent]); |
| | | } else { |
| | | console.log(response.msg); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 点击票据 |
| | | Filepopup(index, rows, row) { |
| | | const config = { |
| | | headers: { Authorization: "Bearer " + this.ICDtoken } |
| | | }; |
| | | |
| | | this.tableDatatop = []; |
| | | this.fileListto = []; |
| | | this.invoicefileListto = []; |
| | | this.pdfimg = ""; |
| | | this.invoicepdfimg = []; |
| | | this.pdfimgsrcList = []; |
| | | this.invoDatatop = []; |
| | | this.invoicepdfimgsrcList = []; |
| | | this.invoDatatop.push(row); |
| | | this.tableDatatop.push(row); |
| | | this.atpresent = index; |
| | | this.pdfVisible = true; |
| | | console.log(this.rbDetails[index]); |
| | | |
| | | if (this.rbDetails[index].annexfilesList) { |
| | | this.previewpdf = true; |
| | | this.fileListto = this.rbDetails[index].annexfilesList; |
| | | console.log(this.fileListto); |
| | | this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url; |
| | | this.fileListto.forEach(item => { |
| | | this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url); |
| | | // this.rbDetails[index].annexfilesList.forEach((value, indexson) => { |
| | | // const pdfimg = this.Networkheader + "/prod-api" + value.url; |
| | | // fetch(pdfimg, config) |
| | | // .then(response => response.blob()) |
| | | // .then(blob => { |
| | | // // 将获取的数据流转换为URL |
| | | // this.fileListto.push({ |
| | | // name: value.name, |
| | | // url: URL.createObjectURL(blob) |
| | | // }); |
| | | // if (this.fileListto.length == 1) { |
| | | // this.pdfimg = URL.createObjectURL(blob); |
| | | // } |
| | | // this.pdfimgsrcList.push(URL.createObjectURL(blob)); |
| | | // }) |
| | | // .catch(error => { |
| | | // console.error("Error loading image", error); |
| | | // return; |
| | | // }); |
| | | // }); |
| | | |
| | | const fetchPromises = this.rbDetails[index].annexfilesList.map( |
| | | (value, indexson) => { |
| | | const pdfimg = this.Networkheader + "/prod-api" + value.url; |
| | | return fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | return { |
| | | name: value.name, |
| | | url: URL.createObjectURL(blob) |
| | | }; |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return null; |
| | | }); |
| | | } |
| | | ); |
| | | |
| | | Promise.all(fetchPromises).then(fileListto => { |
| | | this.fileListto = fileListto.filter(item => item !== null); |
| | | this.pdfimg = this.fileListto[0].url; |
| | | console.log(this.pdfimg, "pdfimg"); |
| | | this.pdfimgsrcList = this.fileListto.map(item => item.url); |
| | | }); |
| | | |
| | | this.previewpdf = true; |
| | | } else { |
| | | this.fileListto = []; |
| | | this.pdfimg = ""; |
| | | this.pdftitle = ""; |
| | | } |
| | | // -发票文件 |
| | | //发票 |
| | | if (this.rbDetails[index].invoicefilesList) { |
| | | this.previewpdf = true; |
| | | this.invoicefileListto = this.rbDetails[index].invoicefilesList; |
| | | console.log(this.invoicefileListto); |
| | | this.invoicepdfimg = |
| | | this.Networkheader + "/prod-api" + this.invoicefileListto[0].url; |
| | | this.invoicefileListto.forEach(item => { |
| | | this.invoicepdfimgsrcList.push( |
| | | this.Networkheader + "/prod-api" + item.url |
| | | const fetchPromises = this.rbDetails[index].invoicefilesList.map( |
| | | (value, indexson) => { |
| | | const pdfimg = this.Networkheader + "/prod-api" + value.url; |
| | | return fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | return { |
| | | name: value.name, |
| | | url: URL.createObjectURL(blob) |
| | | }; |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return null; |
| | | }); |
| | | } |
| | | ); |
| | | |
| | | Promise.all(fetchPromises).then(invoicefileListto => { |
| | | this.invoicefileListto = invoicefileListto.filter( |
| | | item => item !== null |
| | | ); |
| | | this.invoicepdfimg = this.invoicefileListto[0].url; |
| | | console.log(this.invoicepdfimg, "invoicepdfimg"); |
| | | this.invoicepdfimgsrcList = this.invoicefileListto.map( |
| | | item => item.url |
| | | ); |
| | | }); |
| | | console.log(this.invoicepdfimgsrcList); |
| | | console.log(this.invoicepdfimg); |
| | | |
| | | this.previewpdf = true; |
| | | } else { |
| | | this.invoicefileListto = []; |
| | | this.invoicepdfimg = ""; |
| | | this.pdftitle = ""; |
| | | } |
| | | |
| | | if (this.activeName == 1) { |
| | | if (this.activeName == "common") { |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | } else { |
| | | this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; |
| | | } |
| | | console.log(this.fileListto, "this.fileListto"); |
| | | console.log(this.rbDetails[index].annexfilesList, "annexfilesList"); |
| | | }, |
| | | |
| | | // 点击已上传文件 |
| | | downFile(item) { |
| | | if (this.activeName == 1) { |
| | | console.log(item, "点击文件拿item"); |
| | | if (this.activeName == "common") { |
| | | this.pdftitle = |
| | | "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; |
| | | let name = item.name.split("."); |
| | |
| | | this.previewpdf = false; |
| | | this.hintitle = "当前文件暂不支持预览"; |
| | | } else if (name[1] == "jpg" || "png") { |
| | | console.log(item, "展示"); |
| | | this.previewpdf = true; |
| | | if (item.url) { |
| | | this.pdfimg = this.Networkheader + "/prod-api" + item.url; |
| | | this.pdfimg = item.url; |
| | | } else { |
| | | this.pdfimg = this.Networkheader + "/prod-api" + item.response.url; |
| | | this.pdfimg = ""; |
| | | } |
| | | } else { |
| | | this.hintitle = "当前文件暂不支持预览"; |
| | |
| | | this.previewpdf = false; |
| | | } |
| | | } else { |
| | | console.log(item, "点击文件拿item"); |
| | | this.pdftitle = |
| | | "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name; |
| | | let name = item.name.split("."); |
| | |
| | | } else if (name[1] == "jpg" || "png") { |
| | | this.previewpdf = true; |
| | | if (item.url) { |
| | | this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url; |
| | | console.log(this.invoicepdfimg, "pdfimg"); |
| | | console.log(this.invoicepdfimgsrcList, "imglist"); |
| | | this.invoicepdfimg = item.url; |
| | | } else { |
| | | this.invoicepdfimg = |
| | | this.Networkheader + "/prod-api" + item.response.url; |
| | | this.invoicepdfimg = ""; |
| | | } |
| | | } else { |
| | | this.hintitle = "当前文件暂不支持预览"; |
| | |
| | | }, |
| | | // 发票切换 |
| | | handleClick(tab, event) { |
| | | if (this.activeName == 1) { |
| | | if (this.activeName == "common") { |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | } else { |
| | | this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; |
| | |
| | | }, |
| | | // 点击删除 |
| | | deletedowfile(row) { |
| | | if (this.activeName == 1) { |
| | | const indexlist = this.getIndexInArray( |
| | | this.pdfimgsrcList, |
| | | this.Networkheader + "/prod-api" + row.url |
| | | ); |
| | | console.log(row); |
| | | let indexvalue = ""; |
| | | if (this.activeName == "common") { |
| | | const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url); |
| | | this.pdfimgsrcList.splice(indexlist, 1); |
| | | const index = this.getIndexInArray(this.fileListto, row); |
| | | this.fileListto.splice(index, 1); |
| | | console.log(this.rbDetails[this.atpresent].annexfilesList); |
| | | indexvalue = this.rbDetails[this.atpresent].annexfilesList.findIndex( |
| | | item => item.name == row.name |
| | | ); |
| | | console.log(indexvalue, "删除索引"); |
| | | this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1); |
| | | } else { |
| | | const indexlist = this.getIndexInArray( |
| | | this.invoicepdfimgsrcList, |
| | | this.Networkheader + "/prod-api" + row.url |
| | | row.url |
| | | ); |
| | | this.invoicepdfimgsrcList.splice(indexlist, 1); |
| | | const index = this.getIndexInArray(this.invoicefileListto, row); |
| | | this.invoicefileListto.splice(index, 1); |
| | | console.log(this.rbDetails[this.atpresent].invoicefilesList); |
| | | indexvalue = this.rbDetails[this.atpresent].invoicefilesList.findIndex( |
| | | item => item.name == row.name |
| | | ); |
| | | console.log(indexvalue, "删除索引"); |
| | | this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1); |
| | | } |
| | | }, |
| | | // 点击上移 |
| | | moveupdowfile(row) { |
| | | if (this.activeName == 1) { |
| | | const index = this.getIndexInArray(this.fileListto, row); |
| | | if (this.activeName == "common") { |
| | | const index = this.fileListto.findIndex(item => item.name == row.name); |
| | | const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 |
| | | |
| | | const indexann = this.rbDetails[ |
| | | this.atpresent |
| | | ].annexfilesList.findIndex(item => item.name == row.name); |
| | | const itemann = this.rbDetails[this.atpresent].annexfilesList.splice( |
| | | indexann, |
| | | 1 |
| | | )[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.rbDetails[this.atpresent].annexfilesList.splice( |
| | | indexann - 1, |
| | | 0, |
| | | itemann |
| | | ); // 将itemann插入到索引位置的前一位 |
| | | console.log(indexann, "indexann"); |
| | | console.log(index, "index"); |
| | | } else { |
| | | const index = this.getIndexInArray(this.invoicefileListto, row); |
| | | const index = this.invoicefileListto.findIndex( |
| | | item => item.name == row.name |
| | | ); |
| | | |
| | | const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 |
| | | |
| | | const indexinvo = this.rbDetails[ |
| | | this.atpresent |
| | | ].invoicefilesList.findIndex(item => item.name == row.name); |
| | | const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice( |
| | | indexinvo, |
| | | 1 |
| | | )[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.rbDetails[this.atpresent].invoicefilesList.splice( |
| | | indexinvo - 1, |
| | | 0, |
| | | iteminvo |
| | | ); // 将iteminvo插入到索引位置的前一位 |
| | | } |
| | | console.log( |
| | | this.rbDetails[this.atpresent].annexfilesList, |
| | | "annexfilesList" |
| | | ); |
| | | console.log(this.fileListto, "fileListto"); |
| | | // console.log(this.rbDetails[this.atpresent].invoicefilesList,'invoicefilesList'); |
| | | }, |
| | | Downloadfile(row) { |
| | | console.log(row); |
| | | window.location.href = this.Networkheader + "/prod-api" + row.url; |
| | | window.location.href = row.url; |
| | | }, |
| | | |
| | | //专家/医疗机构/费用报销机构选择 |
| | | showSelectionDialog(scope, selectiontype) { |
| | | this.selectionScope = scope; |
| | |
| | | if (this.selectionType == "account") { |
| | | //默认从账户库选择:1,账户库;2,新建账户 |
| | | this.accountfrom = "1"; |
| | | |
| | | if (scope.row.idcardno) { |
| | | this.accountselectform.accountname = |
| | | scope.row.beneficiaryname + "(" + scope.row.idcardno + ")"; |
| | | } else { |
| | | this.accountselectform.accountname = |
| | | scope.row.beneficiaryname + "(" + scope.row.bankcardno + ")"; |
| | | } |
| | | this.accountselectform.accountno = scope.row.beneficiaryno; |
| | | this.accountselectform.accountname = scope.row.beneficiaryname; |
| | | this.accountselectform.expertunitname = ""; |
| | | this.accountselectform.expertunitno = ""; |
| | | this.accountselectform.unitno = ""; |
| | | this.accountselectform.unitname = ""; |
| | | this.accountselectform.telephone = ""; |
| | | |
| | | this.accountselectform.username = ""; |
| | | this.accountselectform.userno = ""; |
| | | this.accountselectform.idcardno = ""; |
| | | this.accountselectform.telephone = ""; |
| | | this.accountselectform.title = ""; |
| | | this.accountselectform.unitno = ""; |
| | | this.accountselectform.unitname = ""; |
| | |
| | | this.accountselectform.expertunitname = scope.row.unitname; |
| | | this.accountselectform.expertunitno = scope.row.unitno; |
| | | } |
| | | |
| | | this.showselectiondialog = true; |
| | | }, |
| | | |
| | |
| | | if (this.selectionType == "account") { |
| | | if (this.accountfrom == "1") { |
| | | //赋值信息 |
| | | this.accountlist.map(res => { |
| | | if (res.username == this.accountselectform.accountname) { |
| | | console.log(res); |
| | | this.rbDetails[tempIndex].beneficiaryno = res.userno; |
| | | this.rbDetails[tempIndex].beneficiaryname = res.username; |
| | | this.rbDetails[tempIndex].depositbank = res.depositbank; |
| | | this.rbDetails[tempIndex].branchbankname = res.branchbankname; |
| | | this.rbDetails[tempIndex].bankcardno = res.bankcardno; |
| | | this.rbDetails[tempIndex].phone = res.telephone; |
| | | if ( |
| | | this.rbDetails[tempIndex].userno != this.accountselectform.userno |
| | | ) { |
| | | this.accountlist.map(res => { |
| | | if (res.id == this.accountselectform.accountname) { |
| | | console.log(res, "res"); |
| | | const hasIdOne = this.rbDetails.some( |
| | | obj => obj.beneficiaryname == res.username |
| | | ); |
| | | if (hasIdOne) { |
| | | this.$modal.msgWarning( |
| | | "服务项目表中,人员名称:" + |
| | | res.username + |
| | | "重复,请注意核对信息!" |
| | | ); |
| | | } |
| | | this.rbDetails[tempIndex].beneficiaryno = res.userno; |
| | | this.rbDetails[tempIndex].beneficiaryname = res.username; |
| | | this.rbDetails[tempIndex].depositbank = res.depositbank; |
| | | this.rbDetails[tempIndex].branchbankname = res.branchbankname; |
| | | this.rbDetails[tempIndex].bankcardno = res.bankcardno; |
| | | this.rbDetails[tempIndex].phone = res.telephone; |
| | | |
| | | if (res.usertype == "org") { |
| | | this.rbDetails[tempIndex].idcardno = ""; |
| | | this.rbDetails[tempIndex].title = ""; |
| | | this.rbDetails[tempIndex].unitno = ""; |
| | | this.rbDetails[tempIndex].unitname = ""; |
| | | } else { |
| | | this.rbDetails[tempIndex].idcardno = res.idcardno; |
| | | this.rbDetails[tempIndex].title = res.title; |
| | | this.rbDetails[tempIndex].unitno = parseInt(res.unitno); |
| | | this.rbDetails[tempIndex].unitname = res.unitname; |
| | | } |
| | | } |
| | | }); |
| | | } else if (this.accountfrom == "2") { |
| | | //保存新增账号 |
| | | this.accountform.id = null; |
| | | this.accountform.userno = |
| | | this.accountlist[this.accountlist.length - 1].id + 1; |
| | | this.accountform.usertype = this.accountselectform.usertype; |
| | | this.accountform.username = this.accountselectform.username; |
| | | this.accountform.idcardno = this.accountselectform.idcardno; |
| | | this.accountform.sex = null; |
| | | this.accountform.title = this.accountselectform.title; |
| | | this.accountform.telephone = this.accountselectform.telephone; |
| | | this.accountform.address = this.accountselectform.address; |
| | | this.accountform.wbm = null; |
| | | this.accountform.pym = null; |
| | | |
| | | this.accountform.depositbank = this.accountselectform.depositbank; |
| | | this.accountform.bankcardno = this.accountselectform.bankcardno; |
| | | this.accountform.branchbankname = null; |
| | | this.accountform.remark = null; |
| | | this.accountform.del_flag = "0"; |
| | | this.accountform.personnelunitno = null; |
| | | |
| | | if (this.accountselectform.usertype != "org") { |
| | | this.accountform.unitno = this.accountselectform.unitno; |
| | | this.unitList.map(res => { |
| | | if (res.organizationid == this.accountform.unitno) { |
| | | this.accountform.unitname = res.organizationname; |
| | | if (res.usertype == "org") { |
| | | this.rbDetails[tempIndex].idcardno = ""; |
| | | this.rbDetails[tempIndex].title = ""; |
| | | this.rbDetails[tempIndex].unitno = ""; |
| | | this.rbDetails[tempIndex].unitname = ""; |
| | | } else { |
| | | this.rbDetails[tempIndex].idcardno = res.idcardno; |
| | | this.rbDetails[tempIndex].title = res.title; |
| | | this.rbDetails[tempIndex].unitno = parseInt(res.unitno); |
| | | this.rbDetails[tempIndex].unitname = res.unitname; |
| | | } |
| | | } |
| | | }); |
| | | // try { |
| | | // let unitIndex = this.unitList.findIndex( |
| | | // item => this.accountform.unitno == item.organizationid |
| | | // ); |
| | | // if (unitIndex > -1) { |
| | | // this.accountform.unitname = this.unitList[unitIndex].organizationname; |
| | | // } else { |
| | | // this.accountform.unitname = this.accountform.unitno; |
| | | // } |
| | | // } catch { |
| | | // this.accountform.unitname = this.accountform.unitno; |
| | | // } |
| | | } |
| | | addExternalperson(this.accountform).then(response => { |
| | | if (response.code == 200) { |
| | | //this.$modal.msgSuccess("新的专家或单位账户信息已添加成功!"); |
| | | this.accountselectform.accountno = this.accountselectform.userno; |
| | | this.accountselectform.accountname = this.accountselectform.username; |
| | | } else if (this.accountfrom == "2") { |
| | | //保存新增账号 |
| | | //获取用户编号 |
| | | getOnlyCode(this.seqnoParams).then(res => { |
| | | this.accountform.userno = res.data.currentvalue; |
| | | |
| | | //重新获取账户列表 |
| | | listExternalperson().then(res => { |
| | | this.accountlist = res.rows; |
| | | this.accountform.id = null; |
| | | this.accountform.usertype = this.accountselectform.usertype; |
| | | this.accountform.username = this.accountselectform.username; |
| | | this.accountform.idcardno = this.accountselectform.idcardno; |
| | | this.accountform.sex = null; |
| | | this.accountform.title = this.accountselectform.title; |
| | | this.accountform.telephone = this.accountselectform.telephone; |
| | | this.accountform.address = this.accountselectform.address; |
| | | this.accountform.wbm = null; |
| | | this.accountform.pym = null; |
| | | |
| | | this.accountform.depositbank = this.accountselectform.depositbank; |
| | | this.accountform.bankcardno = this.accountselectform.bankcardno; |
| | | this.accountform.branchbankname = null; |
| | | this.accountform.remark = null; |
| | | this.accountform.del_flag = "0"; |
| | | this.accountform.personnelunitno = null; |
| | | |
| | | if (this.accountselectform.usertype == "expert") { |
| | | this.accountform.unitno = this.accountselectform.unitno; |
| | | this.unitList.map(res => { |
| | | if (res.organizationid == this.accountform.unitno) { |
| | | this.accountform.unitname = res.organizationname; |
| | | } |
| | | }); |
| | | } else { |
| | | this.accountform.userstatus = 1; |
| | | } |
| | | |
| | | addExternalperson(this.accountform).then(response => { |
| | | if (response.code == 200) { |
| | | // //重新获取账户列表 |
| | | // listExternalperson().then(res => { |
| | | // this.accountlist = res.rows; |
| | | // }); |
| | | |
| | | console.log("addExternalperson", response.data.id); |
| | | if (this.accountselectform.usertype == "org") { |
| | | this.accountlist.push({ |
| | | id: response.data.id, |
| | | userno: this.accountform.userno, |
| | | username: this.accountform.username, |
| | | idcardno: this.accountform.idcardno, |
| | | title: this.accountform.title, |
| | | depositbank: this.accountform.depositbank, |
| | | bankcardno: this.accountform.bankcardno, |
| | | unitno: this.accountform.unitno, |
| | | unitname: this.accountform.unitname, |
| | | userid: |
| | | this.accountform.username + |
| | | "(" + |
| | | this.accountform.bankcardno + |
| | | ")" |
| | | }); |
| | | this.$modal.msgSuccess("您已添加成功新账户信息!"); |
| | | } else { |
| | | this.accountlist.push({ |
| | | id: response.data.id, |
| | | userno: this.accountform.userno, |
| | | username: this.accountform.username, |
| | | idcardno: this.accountform.idcardno, |
| | | title: this.accountform.title, |
| | | depositbank: this.accountform.depositbank, |
| | | bankcardno: this.accountform.bankcardno, |
| | | unitno: this.accountform.unitno, |
| | | unitname: this.accountform.unitname, |
| | | userid: |
| | | this.accountform.username + |
| | | "(" + |
| | | this.accountform.idcardno + |
| | | ")" |
| | | }); |
| | | this.$modal.msgSuccess( |
| | | "您已添加成功新账户信息,需要在账号状态启用后才能被使用!" |
| | | ); |
| | | return; |
| | | } |
| | | this.accountselectform.accountno = this.accountform.userno; |
| | | this.accountselectform.accountname = this.accountselectform.username; |
| | | |
| | | //赋值信息 |
| | | this.accountlist.map(res => { |
| | | if (res.username == this.accountselectform.accountname) { |
| | | if (res.userno == this.accountselectform.accountno) { |
| | | this.rbDetails[tempIndex].beneficiaryno = res.userno; |
| | | this.rbDetails[tempIndex].beneficiaryname = res.username; |
| | | this.rbDetails[tempIndex].depositbank = res.depositbank; |
| | |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } else if (this.selectionType == "workunit") { |
| | | console.log(tempIndex); |
| | | |
| | | this.rbDetails[ |
| | | tempIndex |
| | | ].unitno = this.accountselectform.expertunitno; |
| | | this.unitList.map(res => { |
| | | if (res.organizationid == this.accountform.unitno) { |
| | | this.rbDetails[tempIndex].unitno.unitname = res.organizationname; |
| | | } |
| | | }); |
| | | if ( |
| | | this.rbDetails[tempIndex].unitname != |
| | | this.accountselectform.expertunitname |
| | | ) { |
| | | this.rbDetails[ |
| | | tempIndex |
| | | ].unitname = this.accountselectform.expertunitname; |
| | | this.unitList.map(res => { |
| | | if ( |
| | | res.organizationname == this.accountselectform.expertunitname |
| | | ) { |
| | | this.rbDetails[tempIndex].unitno = res.organizationid; |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | //关闭窗口 |
| | | this.showselectiondialog = false; |
| | | }); |
| | | }, |
| | | |
| | | tableParValueChange(row, tto) { |
| | | const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/; |
| | | if (tto) { |
| | |
| | | } |
| | | return; |
| | | } |
| | | console.log(11); |
| | | |
| | | if (regex.test(row.idcardno)) { |
| | | row.error = ""; |
| | | } else { |
| | | row.error = "身份证号码格式错误"; |
| | | } |
| | | }, |
| | | |
| | | //账户类型选择变化 |
| | | userTypeChange(type) { |
| | | if (type == "org") { |
| | | this.accountselectform.idcardno = ""; |
| | | this.accountselectform.unitno = ""; |
| | | this.accountselectform.unitname = ""; |
| | | this.accountselectform.personnelunitno = ""; |
| | | } |
| | | // this.$modal.msgWarning(type); |
| | | } |
| | | }, |
| | | |