【update】-打包管理-工作组项目、普通项目、资料网员项目可以修改发票信息
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user