【update】-打包管理-工作组项目、普通项目、资料网员项目可以修改发票信息

This commit is contained in:
fengchenchen
2023-05-19 11:54:05 +08:00
parent d13afb4a91
commit 3114cbc628
3 changed files with 265 additions and 3 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ export const ProjectTypeEnums = {
GENERAL_PRO: {name: '普通项目', value: 1},
GROUP_PRO: {name: '工作组项目', value: 2},
MEETING_PRO: {name: '会议项目', value: 3},
MEMBER_PRO: {name: '会员项目', value: 4},
MEMBER_PRO: {name: '资料网员', value: 4},
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
}
@@ -136,6 +136,8 @@
<a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0"
v-has="'packProject:invoicing'">开票</a>
<a v-has="'packProject:confirmPayment'" @click="confirmPayment(record)" :disabled="Number(record.receivableAmount) === 0">确认收入</a>
<!--工作组项目普通项目资料网员项目可以修改发票信息-->
<a v-has="'packProject:changeInvoiceInfo'" @click="changeInvoiceInfo(record)" :disabled="Number(record.projectType) !== ProjectTypeEnums.GENERAL_PRO.value && Number(record.projectType) !== ProjectTypeEnums.GROUP_PRO.value && Number(record.projectType) !== ProjectTypeEnums.MEMBER_PRO.value">开票类型</a>
</span>
</a-table>
</div>
@@ -189,6 +191,14 @@
:project-type="selectProjectType"
:project-name="selectProjectName"
@ok="modalFormOk"></confirm-stage-module>
<!--修改开票类型-->
<invoice-info-change-module
ref="changeInvoiceInfo"
:project-id="selectProjectId"
:project-type="selectProjectType"
@ok="modalFormOk"
>
</invoice-info-change-module>
<!-- 项目详情-->
<project-detail-modal ref="projectDetail"></project-detail-modal>
@@ -210,6 +220,8 @@ import { getPackCompanyById, batchRemovePackProject, removePackProject } from '.
import ProjectDetailModal from '../../components/ProjectDetailModal'
import ConfirmStageModule from '../financialManagement/arriveAndInvoicing/modules/ConfirmStageModule'
import {getPayConfirmList} from '@/api/incomePaymentsApi'
import InvoiceInfoChangeModule from './modules/InvoiceInfoChangeModule'
import { ProjectTypeEnums } from '../../enums/commonEnums'
export default {
name: 'PackProjectMaintenance',
@@ -223,11 +235,13 @@ export default {
ArriveStageModule,
InvoicingStageModule,
ProjectDetailModal,
ConfirmStageModule
ConfirmStageModule,
InvoiceInfoChangeModule
},
mixins: [JeroListMixin],
data() {
return {
ProjectTypeEnums,
IconImg,
// 企业信息名称字段对应
companyDataField: [
@@ -361,7 +375,7 @@ export default {
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: 280,
width: 330,
scopedSlots: { customRender: 'action' }
}
],
@@ -597,6 +611,19 @@ export default {
this.$refs.confirmStageModule.show(record)
},
/**
* 开票类型-修改开票类型,只有工作组项目、普通项目、资料网员项目可以修改
* @param record
*/
changeInvoiceInfo(record) {
this.selectProjectType = record.projectType
this.selectProjectId = record.id
record.companyId = this.companyDataById.companyId
// this.confirmStageVisible = true
this.$refs.changeInvoiceInfo.open(record)
}
}
}
</script>
@@ -0,0 +1,235 @@
<!--修改是否修改发票字段-->
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
cancelText="关闭">
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-row :gutter="24">
<a-col>
<a-form-item label="成员单位" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
<company-select
placeholder="请选择成员单位"
v-decorator="['chargeCompany']"
disabled
@change="companyChange"
:maxLength="50">
</company-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="邮寄联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-contacts
:selected-company="selectedCompany"
:init-contacts="selectedMailContact"
placeholder="请选择邮寄联系人"
v-decorator="['mailContactsId',validatorRules.mailContactsId]"
:maxLength="50"
ref="selectMailContacts"
@ok="addContactsOk"
>
</select-contacts>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="需要发票" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag
v-decorator="['needInvoice',validatorRules.needInvoice]"
:maxLength="50"
:triggerChange="true"
placeholder="请选择发票类型"
dictCode="invoice_type" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
<script>
import pick from 'lodash.pick'
import {httpAction} from '@api/manage'
import { ProjectTypeEnums } from '../../../enums/commonEnums'
import CompanySelect from '../../../components/company/CompanySelect'
import SelectContacts from '../../../components/company/SelectContacts'
export default {
name: 'InvoiceInfoChangeModule',
components: {
CompanySelect, SelectContacts
},
props: {
// 项目id
projectId: {
type: String,
required: false,
default: null
},
// 项目类型
projectType: {
type: [Number, String],
required: false,
default: null
}
},
data() {
return {
title: '修改开票信息',
width: 800,
visible: false,
confirmLoading: false,
form: this.$form.createForm(this),
model: {},
labelCol: {
xs: { span: 24 },
sm: { span: 8 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
remarksLabelCol: {
xs: { span: 24 },
sm: { span: 4 }
},
remarksWrapperCol: {
xs: { span: 24 },
sm: { span: 20 }
},
ProjectTypeEnums,
url: {
edit: '/paymentRecord/payPaymentRecord/editBillType'
},
validatorRules: {
contractNum: {
rules: [{ required: true, validator: this.checkContractNum }],
validateTrigger: 'blur'
},
mailContactsId: {
rules: [{ required: true, message: '请选择邮寄联系人' }],
validateTrigger: 'blur'
},
needInvoice: {
rules: [{ required: true, message: '请选择发票类型' }],
validateTrigger: 'change'
}
},
selectedCompany: null, // 当前选中的企业
selectedMailContact: null, // 编辑时的邮寄联系人
}
},
methods:{
open(record) {
console.log(record)
// 选中企业
record.chargeCompany = {
id: record.companyId,
companyName: record.chargeCompanyTemporaryName
}
// 回显选中的企业
this.selectedCompany = record.chargeCompany
// this.companyChange(this.selectedCompany)
console.log(record, 'addMeetingPerson')
this.form.resetFields()
this.model = Object.assign({}, record)
if(this.model.mailContactsTemporaryId) {
this.selectedMailContact = {
id: this.model.mailContactsTemporaryId,
name: this.model.mailContactsTemporaryName
}
} else {
this.selectedMailContact = {}
}
console.log('-----------this.selectedMailContact----------', this.selectedMailContact)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'chargeCompany', 'mailContactsId', 'needInvoice'))
})
},
close() {
this.visible = false
},
/**
* 选中企业变化,将联系人的值清空
* @param value
*/
companyChange(value) {
// 当前选中的企业和之前选中的企业一致,就不修改了
if (this.selectedCompany && value && this.selectedCompany.id === value.id) {
return
}
this.selectedCompany = value
// 处理邮寄联系人
this.model.mailContactsId = undefined
this.selectedMailContact = null
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'mailContactsId'))
})
},
handleOk() {
const that = this
if(this.confirmLoading) return
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let method = 'post'
let url = this.url.edit
const formData = Object.assign({}, values)
// 项目id
formData.projectId = this.projectId
// 项目类型
formData.projectType = this.projectType
// 如果是资料网员项目,邮寄联系人字段是 postContactId
// if(this.projectType === ProjectTypeEnums.MEMBER_PRO.value) {
// formData.postContactId = formData.mailContactsId
// delete formData.mailContactsId
// }
httpAction(url, formData, method).then(res => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.handleCancel()
that.confirmLoading = false
} else {
this.$message.warn(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
},
handleCancel() {
this.close()
},
/*
* 新增联系人后刷新下拉框数据
* */
addContactsOk() {
this.$refs.selectMailContacts.getContactsList()
}
}
}
</script>
<style scoped>
</style>