|  |  |  | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="5"> | 
|---|
|  |  |  | <el-form-item label="申请日期" prop="applyTime"> | 
|---|
|  |  |  | <el-date-picker clearable style="width: 100%" v-model="form.applyTime" type="date" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" placeholder="申请日期" disabled="true"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | v-model="form.applyTime" | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | value-format="yyyy-MM-dd HH:mm:ss" | 
|---|
|  |  |  | placeholder="申请日期" | 
|---|
|  |  |  | :disabled="true" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </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%" | 
|---|
|  |  |  | @change="getUserAccount"> | 
|---|
|  |  |  | <el-option v-for="dict in userlist" :key="dict.index" :label="dict.nickname" | 
|---|
|  |  |  | :value="dict.nickname"></el-option> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="form.username" | 
|---|
|  |  |  | placeholder="申请人" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | allow-create | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | @change="getUserAccount" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="dict in userlist" | 
|---|
|  |  |  | :key="dict.index" | 
|---|
|  |  |  | :label="dict.nickname" | 
|---|
|  |  |  | :value="dict.nickname" | 
|---|
|  |  |  | ></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="5"> | 
|---|
|  |  |  | <el-form-item label="所属组别" prop="deptmentname"> | 
|---|
|  |  |  | <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="form.deptmentname" | 
|---|
|  |  |  | placeholder="请输入所属组别" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="5"> | 
|---|
|  |  |  | <el-form-item label="组长" prop="managername"> | 
|---|
|  |  |  | <el-input v-model="form.managername" placeholder="请输入组长" clearable /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="form.managername" | 
|---|
|  |  |  | placeholder="请输入组长" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="5"> | 
|---|
|  |  |  | <el-form-item label="申请金额" prop="pretaxcost"> | 
|---|
|  |  |  | <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="form.pretaxcost" | 
|---|
|  |  |  | placeholder="税前金额合计" | 
|---|
|  |  |  | :disabled="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="5"> | 
|---|
|  |  |  | <el-form-item label="申请材料状态" prop="infoid"> | 
|---|
|  |  |  | <el-select v-model="form.checkstatus" filterable placeholder="请选择申请材料状态"> | 
|---|
|  |  |  | <el-option v-for="item in baselisttages" :key="item.id" :label="item.name" :value="item.id"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="form.checkstatus" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择申请材料状态" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in baselisttages" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row style="margin-top: 5px; margin-bottom: 5px" /> | 
|---|
|  |  |  | <el-row v-if="jurisdiction"> | 
|---|
|  |  |  | <el-alert title="当前为查看状态,不支持修改存储。" type="warning" show-icon> | 
|---|
|  |  |  | <el-alert | 
|---|
|  |  |  | title="当前为查看状态,不支持修改存储。" | 
|---|
|  |  |  | type="warning" | 
|---|
|  |  |  | show-icon | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-alert> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="3"> | 
|---|
|  |  |  | <div style="margin-bottom: 15px;"> | 
|---|
|  |  |  | <el-button type="primary" icon="el-icon-download" size="small" @click="Batchentry">批量录入人员</el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | icon="el-icon-download" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | @click="Batchentry" | 
|---|
|  |  |  | >批量录入人员</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="3" v-if="userprofile.nickName == '陈慕华' && operationType == 'check'"> | 
|---|
|  |  |  | <el-col | 
|---|
|  |  |  | :span="3" | 
|---|
|  |  |  | v-if="userprofile.nickName == '陈慕华' && operationType == 'check'" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="margin-bottom: 15px;"> | 
|---|
|  |  |  | <el-button type="success" icon="el-icon-edit-outline" size="small" @click="Manualcalculationfn">计算个税</el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | icon="el-icon-edit-outline" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | @click="Manualcalculationfn" | 
|---|
|  |  |  | >计算个税</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-table :data="rbDetails" v-loading="loading" max-height="800" border highlight-current-row> | 
|---|
|  |  |  | <el-table-column prop="orderno" align="center" label="序号" width="88"> | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | :data="rbDetails" | 
|---|
|  |  |  | v-loading="loading" | 
|---|
|  |  |  | max-height="800" | 
|---|
|  |  |  | border | 
|---|
|  |  |  | highlight-current-row | 
|---|
|  |  |  | :summary-method="getSummaries" | 
|---|
|  |  |  | show-summary | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="orderno" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="序号" | 
|---|
|  |  |  | width="88" | 
|---|
|  |  |  | fixed | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.orderno" placeholder="序号" /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="applytype" align="center" label="服务类型" width="200"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="applytype" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="服务类型" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | fixed | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-select v-model="scope.row.applytype" placeholder="请选择服务类型" @change="verifyFeeItemType(scope.row)"> | 
|---|
|  |  |  | <el-option v-for="dict in rowfeeItemTypes" :key="dict.value" :label="dict.label" | 
|---|
|  |  |  | :value="dict.value"></el-option> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="scope.row.applytype" | 
|---|
|  |  |  | placeholder="请选择服务类型" | 
|---|
|  |  |  | @change="verifyFeeItemType(scope.row)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="dict in rowfeeItemTypes" | 
|---|
|  |  |  | :key="dict.value" | 
|---|
|  |  |  | :label="dict.label" | 
|---|
|  |  |  | :value="dict.value" | 
|---|
|  |  |  | ></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="itemid" align="center" label="服务项目" width="260"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="itemid" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="服务项目" | 
|---|
|  |  |  | width="260" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-select v-model="scope.row.itemid" placeholder="请选择服务项目" filterable @change="verifyFeeItem(scope.row)" | 
|---|
|  |  |  | :filter-method="val => searchItemType(val, scope)"> | 
|---|
|  |  |  | <el-option v-for="dict in scope.row.itemlist" :key="dict.id" :label="dict.itemName" | 
|---|
|  |  |  | :value="dict.id"></el-option> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="scope.row.itemid" | 
|---|
|  |  |  | placeholder="请选择服务项目" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | @change="verifyFeeItem(scope.row)" | 
|---|
|  |  |  | :filter-method="val => searchItemType(val, scope)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="dict in scope.row.itemlist" | 
|---|
|  |  |  | :key="dict.id" | 
|---|
|  |  |  | :label="dict.itemName" | 
|---|
|  |  |  | :value="dict.id" | 
|---|
|  |  |  | ></el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | <!-- <el-cascader | 
|---|
|  |  |  | v-model="scope.row.applytype" | 
|---|
|  |  |  | :options="aaoptions" | 
|---|
|  |  |  | :show-all-levels="false" | 
|---|
|  |  |  | ></el-cascader> --> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="amount" align="center" label="税前金额" width="120"> | 
|---|
|  |  |  | <!-- <el-table-column | 
|---|
|  |  |  | prop="jxrq" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="绩效日期" | 
|---|
|  |  |  | width="260" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.amount" placeholder="税前金额" @blur="val => { | 
|---|
|  |  |  | calculateTax(scope.row, 'A'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | " /> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="scope.row.jxrq" | 
|---|
|  |  |  | type="date" | 
|---|
|  |  |  | placeholder="选择日期" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="taxedamount" align="center" label="税后金额" width="120"> | 
|---|
|  |  |  | </el-table-column> --> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="amount" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="税前金额" | 
|---|
|  |  |  | width="120" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.taxedamount" placeholder="税后金额" @blur="val => { | 
|---|
|  |  |  | calculateTax(scope.row, 'B'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | " /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="scope.row.amount" | 
|---|
|  |  |  | placeholder="税前金额" | 
|---|
|  |  |  | @blur="chargeSum" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="beneficiaryname" align="center" label="绩效人员或单位" width="250"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="taxamount" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="扣税金额" | 
|---|
|  |  |  | width="120" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button type="primary" plain @click="ShowDetailDialog(scope, 'expert')">{{ | 
|---|
|  |  |  | scope.row.beneficiaryname | 
|---|
|  |  |  | ? scope.row.beneficiaryname | 
|---|
|  |  |  | : "点击选择" | 
|---|
|  |  |  | }}</el-button> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | @blur="chargeSum" | 
|---|
|  |  |  | v-model="scope.row.taxamount" | 
|---|
|  |  |  | placeholder="扣税金额" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="idcardno" align="center" label="身份证号" width="200"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="taxedamount" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="税后金额" | 
|---|
|  |  |  | width="120" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="scope.row.taxedamount" | 
|---|
|  |  |  | placeholder="税后金额" | 
|---|
|  |  |  | @blur="queenchargeSum" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="beneficiaryname" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="绩效人员或单位" | 
|---|
|  |  |  | width="250" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | plain | 
|---|
|  |  |  | @click="ShowDetailDialog(scope, 'expert')" | 
|---|
|  |  |  | >{{ | 
|---|
|  |  |  | scope.row.beneficiaryname | 
|---|
|  |  |  | ? scope.row.beneficiaryname | 
|---|
|  |  |  | : "点击选择" | 
|---|
|  |  |  | }}</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="idcardno" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="身份证号" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <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"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="depositbank" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="开户银行" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.depositbank" placeholder="开户银行" /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="scope.row.depositbank" | 
|---|
|  |  |  | placeholder="开户银行" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="bankcardno" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="银行帐号" | 
|---|
|  |  |  | width="210" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input v-model="scope.row.bankcardno" placeholder="银行帐号" /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="scope.row.bankcardno" | 
|---|
|  |  |  | placeholder="银行帐号" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="remark" align="center" width="330" label="备注"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="remark" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | width="330" | 
|---|
|  |  |  | label="备注" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input type="textarea" :rows="2" v-model="scope.row.remark" placeholder="备注" /> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="textarea" | 
|---|
|  |  |  | :rows="2" | 
|---|
|  |  |  | v-model="scope.row.remark" | 
|---|
|  |  |  | placeholder="备注" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column fixed="right" align="center" label="操作" width="180"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | fixed="right" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="操作" | 
|---|
|  |  |  | width="180" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button type="text" size="mini" @click="addRow(scope.$index)" v-if="operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | operationType == 'check' | 
|---|
|  |  |  | ">新增</el-button> | 
|---|
|  |  |  | <el-button @click.native.prevent=" | 
|---|
|  |  |  | deleteRows(scope.row, scope.$index, rbDetails) | 
|---|
|  |  |  | " type="text" size="small" v-if="operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | operationType == 'check' | 
|---|
|  |  |  | "> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | @click="addRow(scope.$index)" | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | operationType == 'check' | 
|---|
|  |  |  | " | 
|---|
|  |  |  | >新增</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | @click.native.prevent=" | 
|---|
|  |  |  | deleteRows(scope.row, scope.$index, rbDetails) | 
|---|
|  |  |  | " | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | operationType == 'check' | 
|---|
|  |  |  | " | 
|---|
|  |  |  | > | 
|---|
|  |  |  | 删除 | 
|---|
|  |  |  | </el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | @click.native.prevent=" | 
|---|
|  |  |  | Filepopup(scope.$index, rbDetails, scope.row) | 
|---|
|  |  |  | " | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | >票据</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row v-if="operationType == 'detail' || | 
|---|
|  |  |  | operationType == 'check' || | 
|---|
|  |  |  | operationType == 'update' | 
|---|
|  |  |  | "> | 
|---|
|  |  |  | <el-row | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | operationType == 'detail' || | 
|---|
|  |  |  | operationType == 'check' || | 
|---|
|  |  |  | operationType == 'update' | 
|---|
|  |  |  | " | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table :data="fundflowList" border> | 
|---|
|  |  |  | <el-table-column label="审核日期" align="center" width="160" prop="createTime" /> | 
|---|
|  |  |  | <el-table-column label="审核人" align="center" width="120" prop="checkusername" /> | 
|---|
|  |  |  | <el-table-column label="审核结果" align="center" width="200" prop="flowconclusion"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="审核日期" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | width="160" | 
|---|
|  |  |  | prop="createTime" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="审核人" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | width="120" | 
|---|
|  |  |  | prop="checkusername" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="审核结果" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | prop="flowconclusion" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <span v-if="scope.row.flowconclusion == 1">通过</span> | 
|---|
|  |  |  | <span v-if="scope.row.flowconclusion == 2">不通过</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column label="审核备注" align="center" prop="flowcontent" /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="审核备注" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | prop="flowcontent" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row style="margin-top: 25px; margin-bottom: 5px" v-if="operationType == 'check'"> | 
|---|
|  |  |  | <el-row | 
|---|
|  |  |  | style="margin-top: 25px; margin-bottom: 5px" | 
|---|
|  |  |  | v-if="operationType == 'check'" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-col :span="7"> | 
|---|
|  |  |  | <el-form-item label="审核结果" align="left"> | 
|---|
|  |  |  | <el-radio-group v-model="checkObj.flowlevelone" align="left"> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <div slot="footer" class="dialog-footer"> | 
|---|
|  |  |  | <el-button type="primary" @click="submitForm" v-if="operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | ismanager == true || | 
|---|
|  |  |  | beforehandType == '1' | 
|---|
|  |  |  | ">提交保存</el-button> | 
|---|
|  |  |  | <el-button type="success" @click="handleup" | 
|---|
|  |  |  | v-if="operationType == 'add' || operationType == 'update'">上报</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="checksubmit" | 
|---|
|  |  |  | v-if="operationType == 'check' && beforehandType != '1'">提交审核</el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | @click="submitForm" | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | operationType == 'add' || | 
|---|
|  |  |  | operationType == 'update' || | 
|---|
|  |  |  | ismanager == true || | 
|---|
|  |  |  | beforehandType == '1' | 
|---|
|  |  |  | " | 
|---|
|  |  |  | >提交保存</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | @click="handleup" | 
|---|
|  |  |  | v-if="operationType == 'add' || operationType == 'update'" | 
|---|
|  |  |  | >上报</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | @click="checksubmit" | 
|---|
|  |  |  | v-if="operationType == 'check' && beforehandType != '1'" | 
|---|
|  |  |  | >提交审核</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button @click="cancel">关 闭</el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-dialog :visible.sync="showSelectionDialog" :close-on-click-modal="false" :title="'绩效人员(含所在单位)账号选择'" width="500px" | 
|---|
|  |  |  | style="text-align: center" v-loading="loading"> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | :visible.sync="showSelectionDialog" | 
|---|
|  |  |  | :close-on-click-modal="false" | 
|---|
|  |  |  | :title="'绩效人员(含所在单位)账号选择'" | 
|---|
|  |  |  | width="500px" | 
|---|
|  |  |  | style="text-align: center" | 
|---|
|  |  |  | v-loading="loading" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form ref="funddetailForm" :model="funddetailForm"> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-form-item label="请输入选择:" prop="unitno" label-width="120px"> | 
|---|
|  |  |  | <el-select v-model="funddetailForm.userName" filterable remote reserve-keyword allow-create | 
|---|
|  |  |  | default-first-option placeholder="请输入姓名或单位名称" :remote-method="remoteMethod" :loading="loadingperformance" | 
|---|
|  |  |  | style="width: 100%"> | 
|---|
|  |  |  | <el-option v-for="item in optionsperformance" :key="item.value" :label="item.label" :value="item.value"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="funddetailForm.userName" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | remote | 
|---|
|  |  |  | reserve-keyword | 
|---|
|  |  |  | allow-create | 
|---|
|  |  |  | default-first-option | 
|---|
|  |  |  | placeholder="请输入姓名或单位名称" | 
|---|
|  |  |  | :remote-method="remoteMethod" | 
|---|
|  |  |  | :loading="loadingperformance" | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="item in optionsperformance" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <span slot="footer" class="dialog-footer"> | 
|---|
|  |  |  | <el-button @click="showSelectionDialog = false">取 消</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="ConfirmDetailDialog()">确 定</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="ConfirmDetailDialog()" | 
|---|
|  |  |  | >确 定</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | <el-dialog title="提示" :visible.sync="Savereminder" width="30%"> | 
|---|
|  |  |  | <el-alert :title="'您已添加' + | 
|---|
|  |  |  | totalquantity + | 
|---|
|  |  |  | '条数据,为防止数据丢失是否提交保存再继续添加。' | 
|---|
|  |  |  | " type="warning"> | 
|---|
|  |  |  | <el-alert | 
|---|
|  |  |  | :title=" | 
|---|
|  |  |  | '您已添加' + | 
|---|
|  |  |  | totalquantity + | 
|---|
|  |  |  | '条数据,为防止数据丢失是否提交保存再继续添加。' | 
|---|
|  |  |  | " | 
|---|
|  |  |  | type="warning" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-alert> | 
|---|
|  |  |  | <span slot="footer" class="dialog-footer"> | 
|---|
|  |  |  | <el-button @click="unsave">取 消</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="Savenow">确 定</el-button> | 
|---|
|  |  |  | </span> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  | <!-- 附件 --> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | v-dialogDrags | 
|---|
|  |  |  | :modal="false" | 
|---|
|  |  |  | :close-on-click-modal="false" | 
|---|
|  |  |  | :title="pdftitle" | 
|---|
|  |  |  | :visible.sync="pdfVisible" | 
|---|
|  |  |  | width="60%" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="margin-bottom: 10px;"> | 
|---|
|  |  |  | <el-table :data="tableDatatop" style="width: 100%"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="beneficiaryname" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="单位/个人" | 
|---|
|  |  |  | width="250" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="idcardno" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="身份证号" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | v-if="form.applytype == '1' || form.applytype == '2'" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="depositbank" align="center" label="开户银行"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="bankcardno" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="银行帐号" | 
|---|
|  |  |  | width="210" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </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"> | 
|---|
|  |  |  | <div class="pdfimg"> | 
|---|
|  |  |  | <div class="box-pdf"> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-upload | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | class="upload-demo" | 
|---|
|  |  |  | :action="uploadFileUrl" | 
|---|
|  |  |  | :file-list="fileListto" | 
|---|
|  |  |  | :show-file-list="false" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | drag | 
|---|
|  |  |  | :headers="headers" | 
|---|
|  |  |  | :on-success=" | 
|---|
|  |  |  | (response, file, fileList) => | 
|---|
|  |  |  | uploadSccess(response, file, fileList) | 
|---|
|  |  |  | " | 
|---|
|  |  |  | :on-preview="downFile" | 
|---|
|  |  |  | :disabled="operationType == 'detail'" | 
|---|
|  |  |  | :on-error="handleUploadError" | 
|---|
|  |  |  | :on-remove="remove" | 
|---|
|  |  |  | accept="image/*,.pdf" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <i class="el-icon-upload"></i> | 
|---|
|  |  |  | <div class="el-upload__text"> | 
|---|
|  |  |  | 将票据拖到此处,或 | 
|---|
|  |  |  | <em | 
|---|
|  |  |  | ><el-button | 
|---|
|  |  |  | :disabled="operationType == 'detail'" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | >点击上传</el-button | 
|---|
|  |  |  | ></em | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-upload> | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | :data="fileListto" | 
|---|
|  |  |  | @row-click="downFile" | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | height="400" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | label="名称" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <i style="color:#409EFF" class=" el-icon-s-order" /> | 
|---|
|  |  |  | <span>{{ scope.row.name }}</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | width="190" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | label="功能" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | @click.native.prevent.stop="deletedowfile(scope.row)" | 
|---|
|  |  |  | >删除</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | @click.native.prevent.stop="moveupdowfile(scope.row)" | 
|---|
|  |  |  | >上移</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | icon="el-icon-search" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | @click.native.prevent.stop="Downloadfile(scope.row)" | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-if="this.previewpdf && pdfimgsrcList.length" | 
|---|
|  |  |  | class="pdfimgmin" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <!-- <img :src="pdfimg" /> --> | 
|---|
|  |  |  | <el-image | 
|---|
|  |  |  | style="width: 95%; height: 90%" | 
|---|
|  |  |  | :src="pdfimg" | 
|---|
|  |  |  | :preview-src-list="pdfimgsrcList" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <!-- <div slot="error" class="image-slot"> | 
|---|
|  |  |  | <i class="el-icon-picture-outline"></i> | 
|---|
|  |  |  | </div> --> | 
|---|
|  |  |  | </el-image> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-else class="pdfimgmins">{{ hintitle }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-tab-pane> | 
|---|
|  |  |  | <el-tab-pane label="发票文件" :name="2"> | 
|---|
|  |  |  | <div class="pdfimg"> | 
|---|
|  |  |  | <div class="box-pdf"> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <el-upload | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | class="upload-demo" | 
|---|
|  |  |  | :action="uploadFileUrl" | 
|---|
|  |  |  | :file-list="invoicefileList" | 
|---|
|  |  |  | :show-file-list="false" | 
|---|
|  |  |  | multiple | 
|---|
|  |  |  | drag | 
|---|
|  |  |  | :headers="headers" | 
|---|
|  |  |  | :on-success=" | 
|---|
|  |  |  | (response, file, fileList) => | 
|---|
|  |  |  | uploadSccess(response, file, fileList) | 
|---|
|  |  |  | " | 
|---|
|  |  |  | :on-preview="downFile" | 
|---|
|  |  |  | :disabled="operationType == 'detail'" | 
|---|
|  |  |  | :on-error="handleUploadError" | 
|---|
|  |  |  | :on-remove="remove" | 
|---|
|  |  |  | accept="image/*,.pdf" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <i class="el-icon-upload"></i> | 
|---|
|  |  |  | <div class="el-upload__text"> | 
|---|
|  |  |  | 将发票文件拖到此处,或 | 
|---|
|  |  |  | <em | 
|---|
|  |  |  | ><el-button | 
|---|
|  |  |  | :disabled="operationType == 'detail'" | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | >点击上传</el-button | 
|---|
|  |  |  | ></em | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-upload> | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | :data="invoicefileListto" | 
|---|
|  |  |  | @row-click="downFile" | 
|---|
|  |  |  | style="width: 100%" | 
|---|
|  |  |  | height="400" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | label="名称" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <i style="color:#409EFF" class=" el-icon-s-order" /> | 
|---|
|  |  |  | <span>{{ scope.row.name }}</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | width="190" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | label="功能" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | @click.native.prevent.stop="deletedowfile(scope.row)" | 
|---|
|  |  |  | >删除</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="primary" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | @click.native.prevent.stop="moveupdowfile(scope.row)" | 
|---|
|  |  |  | >上移</el-button | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="success" | 
|---|
|  |  |  | size="mini" | 
|---|
|  |  |  | icon="el-icon-search" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | @click.native.prevent.stop="Downloadfile(scope.row)" | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-if="this.previewpdf && invoicepdfimgsrcList.length" | 
|---|
|  |  |  | class="pdfimgmin" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <!-- <img :src="pdfimg" /> --> | 
|---|
|  |  |  | <el-image | 
|---|
|  |  |  | style="width: 95%; height: 90%" | 
|---|
|  |  |  | :src="invoicepdfimg" | 
|---|
|  |  |  | :preview-src-list="invoicepdfimgsrcList" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <!-- <div slot="error" class="image-slot"> | 
|---|
|  |  |  | <i class="el-icon-picture-outline"></i> | 
|---|
|  |  |  | </div> --> | 
|---|
|  |  |  | </el-image> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-else class="pdfimgmins">{{ hintitle }}</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-tab-pane> | 
|---|
|  |  |  | </el-tabs> | 
|---|
|  |  |  | </el-dialog> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 批量选取 --> | 
|---|
|  |  |  | <el-dialog title="批量生成明细信息" :visible.sync="batchdialogVisible" width="40%"> | 
|---|
|  |  |  | <el-dialog | 
|---|
|  |  |  | title="批量生成明细信息" | 
|---|
|  |  |  | :visible.sync="batchdialogVisible" | 
|---|
|  |  |  | width="40%" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="margin-bottom: 15px; margin-left: 10px;"> | 
|---|
|  |  |  | <el-radio-group v-model="Performanceclass"> | 
|---|
|  |  |  | <el-radio-button :label="68">月度绩效</el-radio-button> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div style="max-height: 330px; overflow-y: auto"> | 
|---|
|  |  |  | <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> | 
|---|
|  |  |  | <el-checkbox | 
|---|
|  |  |  | :indeterminate="isIndeterminate" | 
|---|
|  |  |  | v-model="checkAll" | 
|---|
|  |  |  | @change="handleCheckAllChange" | 
|---|
|  |  |  | >全选</el-checkbox | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="margin: 15px 0;"></div> | 
|---|
|  |  |  | <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange"> | 
|---|
|  |  |  | <el-checkbox border v-for="city in cityOptions" :label="city" :key="city.userNo">{{ city.userName | 
|---|
|  |  |  | }}</el-checkbox> | 
|---|
|  |  |  | <el-checkbox-group | 
|---|
|  |  |  | v-model="checkedCities" | 
|---|
|  |  |  | @change="handleCheckedCitiesChange" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-checkbox | 
|---|
|  |  |  | border | 
|---|
|  |  |  | v-for="city in cityOptions" | 
|---|
|  |  |  | :label="city" | 
|---|
|  |  |  | :key="city.userNo" | 
|---|
|  |  |  | >{{ city.userName }}</el-checkbox | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-checkbox-group> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | unitforname: null, | 
|---|
|  |  |  | isIndeterminate: true, | 
|---|
|  |  |  | Performanceclass: 68, | 
|---|
|  |  |  | ICDtoken: getToken(), | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //是否是专家费的OPO审批人员 | 
|---|
|  |  |  | ismanager: false, | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //行记录的费用类型数组 | 
|---|
|  |  |  | rowfeeItemTypes: [{ label: "管理成本", value: "9" }], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | aaoptions: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "niandu", | 
|---|
|  |  |  | label: "年度" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "jidu", | 
|---|
|  |  |  | label: "季度", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "2024-03-31", | 
|---|
|  |  |  | label: "第一季度" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "2024-6-30", | 
|---|
|  |  |  | label: "第二季度" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "2024-9-30", | 
|---|
|  |  |  | label: "第三季度" | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "2024-12-31", | 
|---|
|  |  |  | label: "第四季度" | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | value: "yuedu", | 
|---|
|  |  |  | label: "月度", | 
|---|
|  |  |  | children: [ | 
|---|
|  |  |  | { label: "一月", value: new Date(2024, 0 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "二月", value: new Date(2024, 1 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "三月", value: new Date(2024, 2 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "四月", value: new Date(2024, 3 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "五月", value: new Date(2024, 4 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "六月", value: new Date(2024, 5 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "七月", value: new Date(2024, 6 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "八月", value: new Date(2024, 7 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "九月", value: new Date(2024, 8 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "十月", value: new Date(2024, 9 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "十一月", value: new Date(2024, 10 + 1, 0).getDate() }, | 
|---|
|  |  |  | { label: "十二月", value: new Date(2024, 11 + 1, 0).getDate() } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | //费用说明 | 
|---|
|  |  |  | feeBlocks: [], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | flowconclusion: null, | 
|---|
|  |  |  | fundid: null | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 网络请求头 | 
|---|
|  |  |  | Networkheader: null, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询参数 | 
|---|
|  |  |  | queryParams: { | 
|---|
|  |  |  | 
|---|
|  |  |  | usestate: null | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //附件列表 | 
|---|
|  |  |  | fileList: [], | 
|---|
|  |  |  | fileListto: [], | 
|---|
|  |  |  | invoicefileList: [], | 
|---|
|  |  |  | invoicefileListto: [], | 
|---|
|  |  |  | invoicepdfimg: "", | 
|---|
|  |  |  | invoicepdfimgsrcList: [], | 
|---|
|  |  |  | activeName: 1, //文件类型 | 
|---|
|  |  |  | //上传附件路径 | 
|---|
|  |  |  | uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", | 
|---|
|  |  |  | //文件上传token | 
|---|
|  |  |  | headers: { | 
|---|
|  |  |  | Authorization: "Bearer " + getToken() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //票据文件 | 
|---|
|  |  |  | pdftitle: "", | 
|---|
|  |  |  | pdfimg: "", | 
|---|
|  |  |  | 
|---|
|  |  |  | watch: {}, | 
|---|
|  |  |  | //方法集合 | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | bbaaccss(val) { }, | 
|---|
|  |  |  | bbaaccss(val) {}, | 
|---|
|  |  |  | // 浏览器页面关闭或刷新提示 | 
|---|
|  |  |  | beforeunloadHandler(e) { | 
|---|
|  |  |  | if ( | 
|---|
|  |  |  | (JSON.stringify(this.form) == sessionStorage.getItem("apiform") && | 
|---|
|  |  |  | JSON.stringify(this.rbDetails) == | 
|---|
|  |  |  | sessionStorage.getItem("apifunddetail")) || | 
|---|
|  |  |  | sessionStorage.getItem("apifunddetail")) || | 
|---|
|  |  |  | !sessionStorage.getItem("apifunddetail") | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | sessionStorage.removeItem("apifunddetail"); | 
|---|
|  |  |  | sessionStorage.setItem("apifunddetail", JSON.stringify(this.rbDetails)); | 
|---|
|  |  |  | sessionStorage.setItem( | 
|---|
|  |  |  | "apifunddetail", | 
|---|
|  |  |  | JSON.stringify(this.rbDetails) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.addRow(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | handleDelete() { | 
|---|
|  |  |  | this.$modal | 
|---|
|  |  |  | .confirm("是否确认删除该记录?") | 
|---|
|  |  |  | .then(function () { | 
|---|
|  |  |  | .then(function() { | 
|---|
|  |  |  | return delFund(this.curId); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | 
|---|
|  |  |  | this.getfundList(); | 
|---|
|  |  |  | this.$modal.msgSuccess("删除成功"); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(() => { }); | 
|---|
|  |  |  | .catch(() => {}); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** 上报按钮操作 */ | 
|---|
|  |  |  | 
|---|
|  |  |  | if ( | 
|---|
|  |  |  | (JSON.stringify(this.form) == sessionStorage.getItem("apiform") && | 
|---|
|  |  |  | JSON.stringify(this.rbDetails) == | 
|---|
|  |  |  | sessionStorage.getItem("apifunddetail")) || | 
|---|
|  |  |  | sessionStorage.getItem("apifunddetail")) || | 
|---|
|  |  |  | !sessionStorage.getItem("apifunddetail") | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | //判断是否存在上报记录 | 
|---|
|  |  |  | this.form.recordstatus = 0; | 
|---|
|  |  |  | var currenttime = new Date(); | 
|---|
|  |  |  | this.form.applyTime = currenttime.getFullYear() + "-" + (currenttime.getMonth() + 1) + "-" + currenttime.getDate() + " " + currenttime.getHours() + ":" + currenttime.getMinutes() + ":" + currenttime.getSeconds(); | 
|---|
|  |  |  | this.form.applyTime = | 
|---|
|  |  |  | currenttime.getFullYear() + | 
|---|
|  |  |  | "-" + | 
|---|
|  |  |  | (currenttime.getMonth() + 1) + | 
|---|
|  |  |  | "-" + | 
|---|
|  |  |  | currenttime.getDate() + | 
|---|
|  |  |  | " " + | 
|---|
|  |  |  | currenttime.getHours() + | 
|---|
|  |  |  | ":" + | 
|---|
|  |  |  | currenttime.getMinutes() + | 
|---|
|  |  |  | ":" + | 
|---|
|  |  |  | currenttime.getSeconds(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!this.form.id) { | 
|---|
|  |  |  | this.form.id = this.$route.query.id; | 
|---|
|  |  |  | 
|---|
|  |  |  | return randomString; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | /** 提交按钮 */ | 
|---|
|  |  |  | submitForm: debounce(function () { | 
|---|
|  |  |  | submitForm: debounce(function() { | 
|---|
|  |  |  | if (!this.randomnumber) { | 
|---|
|  |  |  | this.randomnumber = this.generateRandomString(9); | 
|---|
|  |  |  | this.form.randomnumber = this.randomnumber; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.itemid == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务项目未选择,请先选择服务项目后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务项目未选择,请先选择服务项目后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tempDetail.idcardno == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的身份证未完善,请先填写身份证后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的身份证未完善,请先填写身份证后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.servicesscope == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的费用说明未选择,请选择费用说明后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的费用说明未选择,请选择费用说明后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.beneficiaryno == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务人员姓名为选择,请选择人员后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务人员姓名为选择,请选择人员后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | flowconclusion: this.checkObj.flowlevelone, | 
|---|
|  |  |  | flowcontent: this.checkObj.flowconclusion | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | this.$modal.loading("正在提交审核,请稍候!"); | 
|---|
|  |  |  | checkfund(checkFundObj).then(res => { | 
|---|
|  |  |  | //关闭窗口 | 
|---|
|  |  |  | this.reset(); | 
|---|
|  |  |  | this.$modal.closeLoading(); | 
|---|
|  |  |  | this.$modal.msgSuccess("审核完成!"); | 
|---|
|  |  |  | this.$store.dispatch("tagsView/delView", this.$route); | 
|---|
|  |  |  | this.$router.go(-1); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //计算金额 | 
|---|
|  |  |  | calculateTax(row, type) { | 
|---|
|  |  |  | //税前扣税算税后 | 
|---|
|  |  |  | chargeSum(row, type) { | 
|---|
|  |  |  | let targetValue = 0; | 
|---|
|  |  |  | for (let i = 0; i < this.rbDetails.length; i++) { | 
|---|
|  |  |  | if (!this.rbDetails[i].amount) { | 
|---|
|  |  |  | this.rbDetails[i].amount = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!this.rbDetails[i].taxamount) { | 
|---|
|  |  |  | this.rbDetails[i].taxamount = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.rbDetails[i].taxedamount = ( | 
|---|
|  |  |  | parseFloat(this.rbDetails[i].amount) - | 
|---|
|  |  |  | parseFloat(this.rbDetails[i].taxamount) | 
|---|
|  |  |  | ).toFixed(2); | 
|---|
|  |  |  | targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下 | 
|---|
|  |  |  | console.log(this.rbDetails[i].taxedamount, "合计"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | console.log(targetValue, "合计"); | 
|---|
|  |  |  | this.form.pretaxcost = targetValue; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //税后扣税算税前 | 
|---|
|  |  |  | queenchargeSum(row, type) { | 
|---|
|  |  |  | for (let i = 0; i < this.rbDetails.length; i++) { | 
|---|
|  |  |  | if (!this.rbDetails[i].amount) { | 
|---|
|  |  |  | this.rbDetails[i].amount = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!this.rbDetails[i].taxamount) { | 
|---|
|  |  |  | this.rbDetails[i].taxamount = 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.rbDetails[i].amount = | 
|---|
|  |  |  | parseFloat(this.rbDetails[i].taxamount) + | 
|---|
|  |  |  | parseFloat(this.rbDetails[i].taxedamount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | unsave() { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.itemid == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务项目未选择,请先选择服务项目后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务项目未选择,请先选择服务项目后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.servicesscope == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的费用说明未选择,请选择费用说明后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的费用说明未选择,请选择费用说明后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (tempDetail.beneficiaryno == null) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务人员姓名为选择,请选择人员后再提交保存!" | 
|---|
|  |  |  | (k + 1).toString() + | 
|---|
|  |  |  | "行的服务人员姓名为选择,请选择人员后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | this.$modal.msgWarning( | 
|---|
|  |  |  | "服务项目表中,第" + | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | (j + 1).toString() + | 
|---|
|  |  |  | "行的金额未输入,请先输入金额后再提交保存!" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.optionsperformance = []; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleUploadError() {}, | 
|---|
|  |  |  | remove(file, fileList) { | 
|---|
|  |  |  | const rbDetails = [...this.rbDetails]; | 
|---|
|  |  |  | if (this.activeName == 1) { | 
|---|
|  |  |  | this.fileListto.splice(this.fileListto.indexOf(file), 1); | 
|---|
|  |  |  | rbDetails[this.atpresent].annexfilesList = this.fileListto; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1); | 
|---|
|  |  |  | rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 获取请求头 | 
|---|
|  |  |  | Getnetworkheader() { | 
|---|
|  |  |  | let string = window.location.href; | 
|---|
|  |  |  | if (string.includes("9091")) { | 
|---|
|  |  |  | const index = string.indexOf("9091"); | 
|---|
|  |  |  | this.Networkheader = string.slice(0, index + 4); // 截取9091及其前部字符 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const index = string.indexOf("8032"); | 
|---|
|  |  |  | this.Networkheader = string.slice(0, index + 4); // 截取8032及其前部字符 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadSccess(response, file, fileList) { | 
|---|
|  |  |  | this.rbDetails; | 
|---|
|  |  |  | const config = { | 
|---|
|  |  |  | headers: { Authorization: "Bearer " + this.ICDtoken } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | const pdfimg = this.Networkheader + "/prod-api" + response.fileName; | 
|---|
|  |  |  | //获取票据信息位置 | 
|---|
|  |  |  | if (this.activeName == 1) { | 
|---|
|  |  |  | if (response.code == 200) { | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.pdftitle = "共" + this.pdfimgsrcList.length + "项"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | console.log(response.msg); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (response.code == 200) { | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 点击票据 | 
|---|
|  |  |  | Filepopup(index, rows, row) { | 
|---|
|  |  |  | const config = { | 
|---|
|  |  |  | headers: { Authorization: "Bearer " + this.ICDtoken } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.tableDatatop = []; | 
|---|
|  |  |  | this.fileListto = []; | 
|---|
|  |  |  | this.invoicefileListto = []; | 
|---|
|  |  |  | this.pdfimg = ""; | 
|---|
|  |  |  | this.invoicepdfimg = []; | 
|---|
|  |  |  | this.pdfimgsrcList = []; | 
|---|
|  |  |  | this.invoicepdfimgsrcList = []; | 
|---|
|  |  |  | this.tableDatatop.push(row); | 
|---|
|  |  |  | this.atpresent = index; | 
|---|
|  |  |  | this.pdfVisible = true; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.rbDetails[index].annexfilesList) { | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.previewpdf = true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.invoicefileListto = []; | 
|---|
|  |  |  | this.invoicepdfimg = ""; | 
|---|
|  |  |  | this.pdftitle = ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | this.pdftitle = | 
|---|
|  |  |  | "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; | 
|---|
|  |  |  | let name = item.name.split("."); | 
|---|
|  |  |  | if (name[1] == "pdf") { | 
|---|
|  |  |  | this.$modal.msgWarning("当前文件暂不支持预览"); | 
|---|
|  |  |  | this.previewpdf = false; | 
|---|
|  |  |  | this.hintitle = "当前文件暂不支持预览"; | 
|---|
|  |  |  | } else if (name[1] == "jpg" || "png") { | 
|---|
|  |  |  | console.log(item, "展示"); | 
|---|
|  |  |  | this.previewpdf = true; | 
|---|
|  |  |  | if (item.url) { | 
|---|
|  |  |  | this.pdfimg = item.url; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.pdfimg = ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.hintitle = "当前文件暂不支持预览"; | 
|---|
|  |  |  | this.$modal.msgWarning("当前文件暂不支持预览"); | 
|---|
|  |  |  | this.previewpdf = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.pdftitle = | 
|---|
|  |  |  | "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name; | 
|---|
|  |  |  | let name = item.name.split("."); | 
|---|
|  |  |  | if (name[1] == "pdf") { | 
|---|
|  |  |  | this.$modal.msgWarning("当前文件暂不支持预览"); | 
|---|
|  |  |  | this.previewpdf = false; | 
|---|
|  |  |  | this.hintitle = "当前文件暂不支持预览"; | 
|---|
|  |  |  | } else if (name[1] == "jpg" || "png") { | 
|---|
|  |  |  | this.previewpdf = true; | 
|---|
|  |  |  | if (item.url) { | 
|---|
|  |  |  | this.invoicepdfimg = item.url; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.invoicepdfimg = ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.hintitle = "当前文件暂不支持预览"; | 
|---|
|  |  |  | this.$modal.msgWarning("当前文件暂不支持预览"); | 
|---|
|  |  |  | this.previewpdf = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getIndexInArray(arr, obj) { | 
|---|
|  |  |  | return arr.indexOf(obj); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 发票切换 | 
|---|
|  |  |  | handleClick(tab, event) { | 
|---|
|  |  |  | if (this.activeName == 1) { | 
|---|
|  |  |  | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 点击删除 | 
|---|
|  |  |  | deletedowfile(row) { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | let indexvalue = ""; | 
|---|
|  |  |  | if (this.activeName == 1) { | 
|---|
|  |  |  | 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.find( | 
|---|
|  |  |  | (item, index) => { | 
|---|
|  |  |  | return item.name == row.name; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | console.log(indexvalue, "删除索引"); | 
|---|
|  |  |  | this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const indexlist = this.getIndexInArray( | 
|---|
|  |  |  | this.invoicepdfimgsrcList, | 
|---|
|  |  |  | 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.find( | 
|---|
|  |  |  | (item, index) => { | 
|---|
|  |  |  | return 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); | 
|---|
|  |  |  | 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插入到索引位置的前一位 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | const index = this.getIndexInArray(this.invoicefileListto, row); | 
|---|
|  |  |  | 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插入到索引位置的前一位 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | Downloadfile(row) { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | window.location.href = this.Networkheader + "/prod-api" + row.url; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //表格合计 | 
|---|
|  |  |  | getSummaries(param) { | 
|---|
|  |  |  | const { columns, data } = param; | 
|---|
|  |  |  | const sums = []; | 
|---|
|  |  |  | var columnnames = [ | 
|---|
|  |  |  | "applytype", | 
|---|
|  |  |  | "itemid", | 
|---|
|  |  |  | // "jxrq", | 
|---|
|  |  |  | "beneficiaryname", | 
|---|
|  |  |  | "idcardno", | 
|---|
|  |  |  | "depositbank", | 
|---|
|  |  |  | "bankcardno", | 
|---|
|  |  |  | "remark" | 
|---|
|  |  |  | ]; | 
|---|
|  |  |  | columns.forEach((column, index) => { | 
|---|
|  |  |  | if (index === 0) { | 
|---|
|  |  |  | sums[index] = "合计"; | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //去除部分字段计算 | 
|---|
|  |  |  | if (columnnames.indexOf(column.property) > -1) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const values = data.map(item => Number(item[column.property])); | 
|---|
|  |  |  | if (!values.every(value => isNaN(value))) { | 
|---|
|  |  |  | sums[index] = values.reduce((prev, curr) => { | 
|---|
|  |  |  | const value = Number(curr); | 
|---|
|  |  |  | if (!isNaN(value)) { | 
|---|
|  |  |  | return prev + curr; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return prev; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, 0); | 
|---|
|  |  |  | sums[index] = sums[index].toFixed(2); // 保留2位小数,解决小数合计列; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | sums[index] = ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return sums; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | //获取路由参数 | 
|---|
|  |  |  | this.getroute(); | 
|---|
|  |  |  | this.Getnetworkheader(); | 
|---|
|  |  |  | this.getExternalList(); | 
|---|
|  |  |  | this.getFeeUnitList(); | 
|---|
|  |  |  | this.listperformance(); | 
|---|
|  |  |  | 
|---|
|  |  |  | destroyed() { | 
|---|
|  |  |  | window.removeEventListener("beforeunload", e => this.beforeunloadFn(e)); | 
|---|
|  |  |  | }, //生命周期 - 销毁完成 | 
|---|
|  |  |  | activated() { } //如果页面有keep-alive缓存功能,这个函数会触发 | 
|---|
|  |  |  | activated() {} //如果页面有keep-alive缓存功能,这个函数会触发 | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | line-height: 25px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ::v-deep .el-checkbox.is-bordered+.el-checkbox.is-bordered { | 
|---|
|  |  |  | ::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered { | 
|---|
|  |  |  | margin-left: 0 !important; | 
|---|
|  |  |  | margin-bottom: 10px; | 
|---|
|  |  |  | } | 
|---|