【update】-打包管理-工作组项目、普通项目、资料网员项目可以修改发票信息
This commit is contained in:
@@ -4,7 +4,7 @@ export const ProjectTypeEnums = {
|
|||||||
GENERAL_PRO: {name: '普通项目', value: 1},
|
GENERAL_PRO: {name: '普通项目', value: 1},
|
||||||
GROUP_PRO: {name: '工作组项目', value: 2},
|
GROUP_PRO: {name: '工作组项目', value: 2},
|
||||||
MEETING_PRO: {name: '会议项目', value: 3},
|
MEETING_PRO: {name: '会议项目', value: 3},
|
||||||
MEMBER_PRO: {name: '会员项目', value: 4},
|
MEMBER_PRO: {name: '资料网员', value: 4},
|
||||||
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
|
STANDARD_MEMBER_PRO: {name: '标协会员项目', value: 5},
|
||||||
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
|
STANDARD_CERTIFICATE_PRO: {name: '标协证书项目', value: 6},
|
||||||
}
|
}
|
||||||
@@ -136,6 +136,8 @@
|
|||||||
<a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0"
|
<a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0"
|
||||||
v-has="'packProject:invoicing'">开票</a>
|
v-has="'packProject:invoicing'">开票</a>
|
||||||
<a v-has="'packProject:confirmPayment'" @click="confirmPayment(record)" :disabled="Number(record.receivableAmount) === 0">确认收入</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>
|
</span>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
@@ -189,6 +191,14 @@
|
|||||||
:project-type="selectProjectType"
|
:project-type="selectProjectType"
|
||||||
:project-name="selectProjectName"
|
:project-name="selectProjectName"
|
||||||
@ok="modalFormOk"></confirm-stage-module>
|
@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>
|
<project-detail-modal ref="projectDetail"></project-detail-modal>
|
||||||
@@ -210,6 +220,8 @@ import { getPackCompanyById, batchRemovePackProject, removePackProject } from '.
|
|||||||
import ProjectDetailModal from '../../components/ProjectDetailModal'
|
import ProjectDetailModal from '../../components/ProjectDetailModal'
|
||||||
import ConfirmStageModule from '../financialManagement/arriveAndInvoicing/modules/ConfirmStageModule'
|
import ConfirmStageModule from '../financialManagement/arriveAndInvoicing/modules/ConfirmStageModule'
|
||||||
import {getPayConfirmList} from '@/api/incomePaymentsApi'
|
import {getPayConfirmList} from '@/api/incomePaymentsApi'
|
||||||
|
import InvoiceInfoChangeModule from './modules/InvoiceInfoChangeModule'
|
||||||
|
import { ProjectTypeEnums } from '../../enums/commonEnums'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PackProjectMaintenance',
|
name: 'PackProjectMaintenance',
|
||||||
@@ -223,11 +235,13 @@ export default {
|
|||||||
ArriveStageModule,
|
ArriveStageModule,
|
||||||
InvoicingStageModule,
|
InvoicingStageModule,
|
||||||
ProjectDetailModal,
|
ProjectDetailModal,
|
||||||
ConfirmStageModule
|
ConfirmStageModule,
|
||||||
|
InvoiceInfoChangeModule
|
||||||
},
|
},
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
ProjectTypeEnums,
|
||||||
IconImg,
|
IconImg,
|
||||||
// 企业信息名称字段对应
|
// 企业信息名称字段对应
|
||||||
companyDataField: [
|
companyDataField: [
|
||||||
@@ -361,7 +375,7 @@ export default {
|
|||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
width: 280,
|
width: 330,
|
||||||
scopedSlots: { customRender: 'action' }
|
scopedSlots: { customRender: 'action' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -597,6 +611,19 @@ export default {
|
|||||||
this.$refs.confirmStageModule.show(record)
|
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>
|
</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>
|
||||||
Reference in New Issue
Block a user