| | |
| | | <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="applyTime"> |
| | | <el-date-picker |
| | | clearable |
| | | style="width: 100%" |
| | | v-model="form.createTime" |
| | | v-model="form.applyTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="申请日期" |
| | | disabled="true" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="申请单类型"> |
| | | <el-select |
| | | v-model="form.performancetype" |
| | | filterable |
| | | placeholder="请选择申请单状态" |
| | | > |
| | | <el-option |
| | | v-for="item in PerformanceType" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </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-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="预审状态" prop="infoid"> |
| | | <el-form-item label="申请材料状态" prop="infoid"> |
| | | <el-select |
| | | v-model="form.checkstatus" |
| | | filterable |
| | | placeholder="请选择预审状态" |
| | | placeholder="请选择申请材料状态" |
| | | > |
| | | <el-option |
| | | v-for="item in baselisttages" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="text-align: left"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="申请说明" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="申请说明" /> |
| | |
| | | </el-alert> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="3" |
| | | ><div style="margin-bottom: 15px;"> |
| | | <el-col :span="3"> |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-button |
| | | type="success" |
| | | type="primary" |
| | | icon="el-icon-download" |
| | | size="small" |
| | | @click="Batchentry" |
| | | >批量录入</el-button |
| | | >批量录入人员</el-button |
| | | > |
| | | </div></el-col |
| | | </div> |
| | | </el-col> |
| | | <el-col |
| | | :span="3" |
| | | v-if="userprofile.nickName == '陈慕华' && operationType == 'check'" |
| | | > |
| | | </el-row> |
| | | <el-row v-if="operationType == 'check'"> |
| | | <el-col :span="3" |
| | | ><div style="margin-bottom: 15px;"> |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-edit-outline" |
| | | size="small" |
| | | @click="Manualcalculationfn" |
| | | >计算明细</el-button |
| | | >计算个税</el-button |
| | | > |
| | | </div></el-col |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-table |
| | |
| | | <el-table-column |
| | | prop="beneficiaryname" |
| | | align="center" |
| | | label="姓名" |
| | | label="绩效人员或单位" |
| | | width="250" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | : "点击选择" |
| | | }}</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-dialog |
| | | :visible.sync="showSelectionDialog" |
| | | :close-on-click-modal="false" |
| | | :title="'个人信息选择'" |
| | | :title="'绩效人员(含所在单位)账号选择'" |
| | | width="500px" |
| | | style="text-align: center" |
| | | v-loading="loading" |
| | | > |
| | | <el-form ref="funddetailForm" :model="funddetailForm"> |
| | | <el-row> |
| | | <el-select |
| | | v-model="funddetailForm.userName" |
| | | filterable |
| | | remote |
| | | reserve-keyword |
| | | placeholder="请输入关键词" |
| | | :remote-method="remoteMethod" |
| | | :loading="loadingperformance" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsperformance" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | <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> |
| | | </el-select> |
| | | <el-option |
| | | v-for="item in optionsperformance" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | :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-button :label="69">季度绩效</el-radio-button> |
| | | <el-radio-button :label="70">年度绩效</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div style="max-height: 330px; overflow-y: auto"> |
| | | <el-checkbox |
| | | :indeterminate="isIndeterminate" |
| | |
| | | spocewl: "", |
| | | //费用申请表单title |
| | | title: "", |
| | | |
| | | //申请单类型 |
| | | businessType: "0", |
| | | businessName: "", |
| | |
| | | Personnelforname: null, |
| | | unitforname: null, |
| | | isIndeterminate: true, |
| | | Performanceclass: 68, |
| | | |
| | | //是否是专家费的OPO审批人员 |
| | | ismanager: false, |
| | |
| | | baselisttages: [ |
| | | { |
| | | id: 1, |
| | | name: "待预审" |
| | | name: "待申请材料" |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: "预审通过等待材料" |
| | | name: "审核通过等待邮寄纸质材料" |
| | | }, |
| | | { |
| | | id: 3, |
| | |
| | | |
| | | // 表单校验 |
| | | rules: { |
| | | createTime: [ |
| | | { required: true, message: "请输入填报日期", trigger: "blur" } |
| | | ], |
| | | reason: [ |
| | | { required: true, message: "请输入出差事由", trigger: "blur" } |
| | | ], |
| | |
| | | /** 通过参数获取业务类型 */ |
| | | getroute() { |
| | | console.log(11); |
| | | //选择业务类型:1、新增;2、修改;3、查看 |
| | | //选择业务类型:1、新增;2、修改;3、复制;4、查看 |
| | | this.curId = this.$route.query.id; |
| | | this.businessType = this.$route.query.businessType; |
| | | this.operationType = this.$route.query.operationType; |
| | |
| | | this.handleAdd(); |
| | | } else if (this.operationType == "update") { |
| | | this.title = this.businessName + "修改"; |
| | | console.log(this.title); |
| | | this.handleUpdate(); |
| | | } else if (this.operationType == "copy") { |
| | | this.title = this.businessName + "复制"; |
| | | this.handleCopy(); |
| | | } else if (this.operationType == "detail") { |
| | | this.title = this.businessName + "查看"; |
| | | this.jurisdiction = true; |
| | |
| | | |
| | | getFund(this.curId).then(response => { |
| | | this.form = response.data; |
| | | |
| | | sessionStorage.removeItem("apiform"); |
| | | |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | |
| | | //明细处理 |
| | | getownFundDetail(this.curId).then(res => { |
| | | this.rbDetails = res.data; |
| | | |
| | | if (this.rbDetails.length > 0) { |
| | | for (let m = 0; m < this.rbDetails.length; m++) { |
| | | this.rbDetails[m].itemlist = []; |
| | |
| | | listFundflow(listFundflowparams).then(res => { |
| | | this.fundflowList = res.rows; |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | /** 复制按钮操作 */ |
| | | handleCopy() { |
| | | this.isopen = 0; |
| | | this.reset(); |
| | | |
| | | getFund(this.curId).then(response => { |
| | | this.form = response.data; |
| | | sessionStorage.removeItem("apiform"); |
| | | sessionStorage.setItem("apiform", JSON.stringify(this.form)); |
| | | |
| | | //明细处理 |
| | | getownFundDetail(this.curId).then(res => { |
| | | this.rbDetails = res.data; |
| | | if (this.rbDetails.length > 0) { |
| | | 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 |
| | | ); |
| | | |
| | | //初始化明细信息 |
| | | this.rbDetails[m].id = null; |
| | | this.rbDetails[m].fundid = null; |
| | | this.rbDetails[m].amount = 0; |
| | | this.rbDetails[m].taxamount = 0; |
| | | this.rbDetails[m].taxedamount = 0; |
| | | } |
| | | |
| | | sessionStorage.removeItem("apifunddetail"); |
| | | sessionStorage.setItem( |
| | | "apifunddetail", |
| | | JSON.stringify(this.rbDetails) |
| | | ); |
| | | } else { |
| | | this.addRow(0); |
| | | } |
| | | }); |
| | | |
| | | //初始化主信息 |
| | | this.curId = null; |
| | | this.form.id = null; |
| | | this.form.recordstatus = "-1"; |
| | | this.form.checkstatus = null; |
| | | this.form.pretaxcost = 0; |
| | | this.form.istax = null; |
| | | this.form.fundtaxtime = null; |
| | | this.form.createTime = null; |
| | | this.form.updateTime = null; |
| | | |
| | | this.form.flowlevel = null; |
| | | this.form.backflowlevel = null; |
| | | |
| | | this.form.financedirector = null; |
| | | this.form.financechecher = null; |
| | | this.form.president = null; |
| | | this.form.finvicepresident = null; |
| | | this.form.busvicepresident = null; |
| | | this.form.zffs = null; |
| | | this.form.riqi = null; |
| | | this.form.bh = null; |
| | | this.form.istax = 0; |
| | | this.form.fundtaxtime = null; |
| | | }); |
| | | }, |
| | | |
| | |
| | | //查找是否存在登记完成记录 |
| | | //判断是否存在上报记录 |
| | | this.form.recordstatus = 0; |
| | | var currenttime = new Date(); |
| | | 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; |
| | | } |
| | |
| | | "服务项目表中,第" + |
| | | (k + 1).toString() + |
| | | "行的服务项目未选择,请先选择服务项目后再提交保存!" |
| | | ); |
| | | return; |
| | | } |
| | | if (tempDetail.idcardno == null) { |
| | | this.$modal.msgWarning( |
| | | "服务项目表中,第" + |
| | | (k + 1).toString() + |
| | | "行的身份证未完善,请先填写身份证后再提交保存!" |
| | | ); |
| | | return; |
| | | } |
| | |
| | | if (this.form.id != 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(); |
| | | } |
| | | |
| | | sessionStorage.setItem( |
| | |
| | | addorupdateFund(this.form).then(response => { |
| | | console.log(response, "保存返参"); |
| | | if (response.code === 200) { |
| | | this.$modal.msgSuccess("申请单保存成功!"); |
| | | this.$store.dispatch("tagsView/delView", this.$route); |
| | | this.$router.push({ |
| | | path: "/finance/performancedetails/", |
| | | query: { |
| | | id: response.data, |
| | | businessType: "5", |
| | | operationType: "update" |
| | | } |
| | | }); |
| | | if (this.form.id) { |
| | | this.$modal.msgSuccess("申请单修改成功!"); |
| | | this.$router.go(-1); |
| | | } else { |
| | | this.$modal.msgSuccess("申请单保存成功!"); |
| | | this.$store.dispatch("tagsView/delView", this.$route); |
| | | this.$router.push({ |
| | | path: "/finance/performancedetails/", |
| | | query: { |
| | | id: response.data, |
| | | businessType: "5", |
| | | operationType: "update" |
| | | } |
| | | }); |
| | | } |
| | | this.Routinglevel++; |
| | | this.form.id = response.data; |
| | | this.curId = response.data; |
| | | this.handleUpdate(); |
| | | } else { |
| | | this.$modal.msgError("申请单保存失败:" + response.msg); |
| | | } |
| | |
| | | this.listperformancea = this.cityOptions.map(item => { |
| | | return { value: item.userName, label: item.userName }; |
| | | }); |
| | | console.log(this.cityOptions, "绩效批量"); |
| | | }); |
| | | }, |
| | | // 确认录入 |
| | | BatchentryFn() { |
| | | console.log(this.rbDetails[0]); |
| | | if (!this.rbDetails[0].applytype) { |
| | | this.rbDetails = []; |
| | | } |
| | | this.checkedCities.forEach(item => { |
| | | let rowData = { |
| | | orderno: null, |
| | |
| | | annexregistform: null, |
| | | applytype: "9", |
| | | applytypename: "管理成本", |
| | | itemid: 68, |
| | | itemid: this.Performanceclass, |
| | | itemcode: "68", |
| | | itemname: "绩效工资", |
| | | itemtype: null, |
| | |
| | | updateTime: null, |
| | | uploadflag: null, |
| | | uploadtime: null, |
| | | itemlist: [{ id: 68, itemName: "绩效工资" }], |
| | | itemlist: [ |
| | | { id: 68, itemName: "月度绩效" }, |
| | | { id: 69, itemName: "季度绩效" }, |
| | | { id: 70, itemName: "年度绩效" } |
| | | ], |
| | | servicesscope: null, |
| | | rowfeeblocks: [], |
| | | annexfiles: null |
| | |
| | | |
| | | this.rbDetails.push(rowData); |
| | | }); |
| | | for (let i = 0; i < this.checkedCities.length + 1; i++) { |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].orderno = i + 1; |
| | | } |
| | | this.calculateTax(); |
| | | this.batchdialogVisible = false; |
| | | this.checkedCities = []; |
| | | console.log(this.rowfeeItemTypes); |
| | | }, |
| | | //新增一行 |
| | |
| | | this.selectionType = showType; |
| | | this.selectionType = this.experthear; |
| | | this.expertfrom = "1"; |
| | | console.log(spoce); |
| | | this.funddetailForm.index = spoce.$index; |
| | | this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; |
| | | this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; |
| | |
| | | this.cityOptions.map(res => { |
| | | if (tempExpertName == res.userName) { |
| | | singleDetail.beneficiaryno = res.userno; |
| | | singleDetail.beneficiaryname = res.userName; |
| | | singleDetail.bankcardno = res.bankCardNo; |
| | | singleDetail.branchbankname = res.branchbankname; |
| | | singleDetail.depositbank = res.depositBank; |
| | | singleDetail.idcardno = res.bankCardNo; |
| | | singleDetail.idcardno = res.idcardNo; |
| | | singleDetail.phone = res.telephone; |
| | | singleDetail.title = res.title; |
| | | singleDetail.unitname = res.unitname; |
| | | singleDetail.unitno = parseInt(res.unitno); |
| | | } |
| | | }); |
| | | singleDetail.beneficiaryname = tempExpertName; |
| | | this.rbDetails[tempIndex] = singleDetail; |
| | | this.showSelectionDialog = false; |
| | | }, |