[update] - 确认来款功能的添加

This commit is contained in:
fengchenchen
2022-06-08 18:30:41 +08:00
parent 0e07bf1338
commit 14a1ad4e25
3 changed files with 223 additions and 4 deletions
+14 -1
View File
@@ -116,6 +116,14 @@ const incomingUpdatePayment = (param) => postAction('/member/tbMemberProjectSubi
// 更新会员系统 证书缴费的发票信息
const incomingUpdateCertificate = (param) => postAction('/member/tbCertificatePayment/incomingUpdateCertificate', param)
// 确认来款- 查询当前项目是否有来款信息
const getPayConfirmList = (param) => getAction('/payConfirmPaymentRecord/list', param)
// 新增一个确认来款信息
const addPayConfirm = (param) => postAction('/payConfirmPaymentRecord/add', param)
// 编辑一个确认来款信息
const editPayConfirm = (param) => postAction('/payConfirmPaymentRecord/edit', param)
export {
getWorkingGroupById,
getChargeNotice,
@@ -174,5 +182,10 @@ export {
judgeInternalEnterprise,
incomingUpdatePayment,
incomingUpdateCertificate
incomingUpdateCertificate,
getPayConfirmList,
addPayConfirm,
editPayConfirm
}
@@ -143,6 +143,11 @@
:disabled="record.projectType === 3 && record.registerCheckResult === '0'">来款</a>
<a @click="invoicing(record)" :disabled="record.needInvoice === 0"
v-has="'incomePaymentAndInvoiving:invoicing'">开票</a>
<!-- 确认来款项目--- 普通项目工作组项目资料网员 项目 可以确认来款-->
<a
v-show="record.projectType === ProjectTypeEnums.GENERAL_PRO.value || record.projectType === ProjectTypeEnums.GROUP_PRO.value || record.projectType === ProjectTypeEnums.MEMBER_PRO.value"
@click="preComeMoney(record)"
>确认来款</a>
</span>
</a-table>
</div>
@@ -181,7 +186,8 @@
<audit-proof-module ref="auditProof" @ok="modalFormOk"></audit-proof-module>
<!-- 会议审核的弹窗 -->
<audit-modal ref="auditModal" :meeting-type="meetingType" :situation-id="situationId" @ok="modalFormOk"></audit-modal>
<!-- 确认来款 弹窗-->
<pre-come-module ref="preComeModule" @ok="modalFormOk"></pre-come-module>
</div>
</template>
@@ -200,6 +206,18 @@ import { isAllEqual } from '../../../utils/util'
import AuditProofModule from './modules/AuditProofModule'
// import AuditProofModule from "@views/financialManagement/arriveAndInvoicing/modules/AuditProofModule";
import AuditModal from '@views/incomePayments/meetManage/modules/AuditModal'
import PreComeModule from './modules/PreComeModule'
// 项目类型 数据字典 的定义 和数据库的保持一致
const ProjectTypeEnums = {
GENERAL_PRO: {name: '普通项目', value: 1},
GROUP_PRO: {name: '工作组项目', value: 2},
MEETING_PRO: {name: '会议项目', value: 3},
MEMBER_PRO: {name: '会员项目', value: 4},
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
}
export default {
name: 'ArriveAndInvoivingList',
@@ -213,12 +231,14 @@ export default {
ProjectDetailModal,
BatchInvoicingModule,
AuditProofModule,
AuditModal
AuditModal,
PreComeModule
},
mixins: [JeroListMixin],
data() {
return {
IconImg,
ProjectTypeEnums,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@@ -320,7 +340,7 @@ export default {
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: 160,
width: 200,
scopedSlots: { customRender: 'action' }
}
],
@@ -465,6 +485,17 @@ export default {
return
}
},
/**
* 确认来款 - 普通项目、工作组项目、资料网员 项目 可以确认来款(即记录跨年度提前来款)
* @param record
*/
preComeMoney(record) {
// 判断是否是 普通项目、工作组项目、资料网员 项目 不是 直接返回
let canOpe = record.projectType === ProjectTypeEnums.GENERAL_PRO.value || record.projectType === ProjectTypeEnums.GROUP_PRO.value || record.projectType === ProjectTypeEnums.MEMBER_PRO.value
if(!canOpe) return
this.$refs.preComeModule.show(record)
},
/**
* 搜索金额校验
* @param type 起始范围--start,终止范围--end
@@ -0,0 +1,175 @@
<!--提前来款页面 ---即确认来款 模态框 -->
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
okText="保存"
cancelText="关闭">
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item label="到账金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入到账金额"
v-decorator="['amountReceived',validatorRules.amountReceived]"
:maxLength='50'
@blur="addZero"
@change="e => e.target.value = (e.target.value.replace(/[^0-9-.]/g, '')).trim()"></a-input>
</a-form-item>
<a-form-item label="到账日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择到账日期"
style="width: 100%;"
v-decorator="['paymentDate',validatorRules.paymentDate]"
:trigger-change="true"
date-format="YYYY-MM-DD"/>
</a-form-item>
<a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-textarea
placeholder="请输入备注"
v-decorator="['remark']"
:auto-size="{ minRows: 3, maxRows: 6 }"
:maxLength='200'
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
</a-form-item>
</a-form>
</a-spin>
</j-modal>
</template>
<script>
import pick from 'lodash.pick'
import {money} from '../../../../utils/validate'
import JDate from '../../../../components/tools/JDate'
// import { addPaymentPhase, editAmountPhase } from '../../../../api/incomePaymentsApi'
import {addZero} from '../../../../utils/util'
import { getPayConfirmList, addPayConfirm, editPayConfirm } from '../../../../api/incomePaymentsApi'
export default {
name: 'PreComeModule',
components: {JDate},
data() {
return {
title: '到账信息',
width: 600,
visible: false,
confirmLoading: false,
form: this.$form.createForm(this),
model: {},
isEdit: false,
labelCol: {
xs: {span: 24},
sm: {span: 5}
},
wrapperCol: {
xs: {span: 24},
sm: {span: 18}
},
validatorRules: {
amountReceived: {
rules: [{required: true, validator: this.checkMoney}],
validateTrigger: 'blur'
},
paymentDate: {
rules: [{required: true, message: '请选择到账日期'}],
validateTrigger: 'change'
}
}
}
},
methods: {
addZero,
show(record) {
this.form.resetFields()
this.projectInfo = Object.assign({}, record)
// 通过record 的id 去获取当前项目的确认来款数据
this.getInfoById(record.id)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'amountReceived', 'paymentDate', 'remark'))
})
},
edit(record) {
this.model = Object.assign({}, record)
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'amountReceived', 'paymentDate', 'remark'))
})
},
getInfoById(id) {
getPayConfirmList({projectId: id}).then(res => {
if(res.success) {
this.isEdit = (res.result || []).length === 1
if(this.isEdit) {
this.edit(res.result[0])
} else {
this.edit({})
}
} else {
this.isEdit = false
}
})
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
values.projectId = this.projectInfo.id
values.projectType = this.projectInfo.projectType
const obj = Object.assign(this.model, values)
let okHttpMethod
if (this.isEdit) {
okHttpMethod = editPayConfirm(obj)
} else {
okHttpMethod = addPayConfirm(obj)
}
okHttpMethod.then(res => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.close()
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
handleCancel() {
this.close()
},
close() {
this.visible = false
},
/**
* 校验金额格式
* @param rules
* @param value
* @param callback
*/
checkMoney(rules, value, callback) {
if (value) {
if (money(value)) {
callback()
}
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
callback('请输入到账金额')
}
}
}
</script>
<style scoped>
</style>