【bug】收入合同关联会议 会员修改

This commit is contained in:
fengachen
2021-09-27 15:23:22 +08:00
parent 22e145fc77
commit ca5e27c6e1
6 changed files with 122 additions and 93 deletions
@@ -14,7 +14,8 @@
<a-col :xl="24" :sm="24">
<a-form-item label="会议名称" :labelCol=" {xs: {span: 24},sm: {span: 3}}"
:wrapperCol="{ xs: {span: 24},sm: {span: 21}}">
<meeting-select @change="selectMeeting" placeholder="请选择会议" v-decorator="['meetingId',validatorRules.meetingId]"></meeting-select>
<meeting-select @change="selectMeeting" placeholder="请选择会议"
v-decorator="['meetingId',validatorRules.meetingId]"></meeting-select>
</a-form-item>
</a-col>
</a-row>
@@ -22,7 +23,8 @@
<a-col :xl="24" :sm="24">
<a-form-item label="参会单位" :labelCol=" {xs: {span: 24},sm: {span: 3}}"
:wrapperCol="{ xs: {span: 24},sm: {span: 21}}">
<company-select placeholder="请选择参会单位" disabled v-decorator="['companyId',validatorRules.companyId]"></company-select>
<company-select placeholder="请选择参会单位" disabled
v-decorator="['companyId',validatorRules.companyId]"></company-select>
</a-form-item>
</a-col>
</a-row>
@@ -41,14 +43,14 @@
v-decorator="['phone']"
disabled=""
:maxLength='11'
></a-input>
></a-input>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['identity',validatorRules.identity]" disabled >
<a-radio-group v-decorator="['identity',validatorRules.identity]" disabled>
<a-radio :value="1">嘉宾</a-radio>
<a-radio :value="2">参会人</a-radio>
<a-radio :value="3">内部企业</a-radio>
@@ -76,16 +78,16 @@
</a-row>
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邮编"
v-decorator="['postContacCode',validatorRules.postCode]"
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
></a-input>
</a-form-item>
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邮编"
v-decorator="['postContacCode',validatorRules.postCode]"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}" :maxLength="6"
></a-input>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['payMode',validatorRules.payMode]">
<a-radio-group v-decorator="['payMode',validatorRules.payMode]" @change="changePayMode">
<a-radio :value="1">汇款</a-radio>
<a-radio :value="2">线上缴费</a-radio>
<a-radio :value="3" disabled>打包</a-radio>
@@ -119,7 +121,8 @@
</a-row>
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="是否入住协议住店" :labelCol="{xs: {span: 24},sm: {span: 8} }" :wrapperCol="{xs: {span: 24},sm: {span: 16} }">
<a-form-item label="是否入住协议住店" :labelCol="{xs: {span: 24},sm: {span: 8} }"
:wrapperCol="{xs: {span: 24},sm: {span: 16} }">
<a-radio-group v-decorator="['checkInHotel']">
<a-radio :value="1"></a-radio>
<a-radio :value="0"></a-radio>
@@ -128,15 +131,18 @@
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="缴费凭证" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-image-upload :return-id="true" v-decorator="['paymentRecord',validatorRules.paymentRecord]"></j-image-upload>
<j-image-upload :return-id="true"
v-decorator="['paymentRecord',validatorRules.paymentRecord]"></j-image-upload>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<!-- 只有线上的才输入订单后四位-->
<a-row :gutter="24" v-if="onlinePayModeBool">
<a-col :xl="12" :sm="24">
<a-form-item label="订单号后四位" :labelCol="{xs: {span: 24},sm: {span: 8} }" :wrapperCol="{xs: {span: 24},sm: {span: 16} }">
<a-form-item label="订单号后四位" :labelCol="{xs: {span: 24},sm: {span: 8} }"
:wrapperCol="{xs: {span: 24},sm: {span: 16} }">
<a-input placeholder="请输入订单号后四位"
v-decorator="['housiwei',validatorRules.housiwei]"
v-decorator="['orderCode',validatorRules.orderCode]"
@change="event => event.target.value = event.target.value.trim()" :maxLength="4"
></a-input>
</a-form-item>
@@ -145,7 +151,7 @@
<a-row :gutter="24">
<a-col :xl="12" :sm="24">
<a-form-item label="金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span>{{meetingCosts}}</span>
<span>{{ meetingCosts }}</span>
</a-form-item>
</a-col>
</a-row>
@@ -169,6 +175,7 @@ import JImageUpload from '@comp/jero/JImageUpload'
import JDate from '@comp/tools/JDate'
import pick from 'lodash.pick'
import {getContactsById} from '@api/api'
import {postcode} from '@/utils/validate'
export default {
@@ -183,10 +190,10 @@ export default {
},
data() {
return {
title:'新增参会人',
width:800,
visible:false,
confirmLoading:false,
title: '新增参会人',
width: 800,
visible: false,
confirmLoading: false,
form: this.$form.createForm(this),
model: {},
labelCol: {
@@ -211,14 +218,14 @@ export default {
validateTrigger: 'change'
},
postCode: {
rules: [{required: true, message: '请输入邮寄地址'}],
rules: [{required: true, validator: this.validatePostCode}],
validateTrigger: 'blur'
},
paymentRecord: {
rules: [{required: true, message: '请上传缴费凭证'}],
validateTrigger: 'change'
},
housiwei: {
orderCode: {
rules: [{required: true, message: '请输入订单号后四位'}],
validateTrigger: 'blur'
},
@@ -226,65 +233,67 @@ export default {
rules: [{required: true, message: '请输入邮编'}],
validateTrigger: 'blur'
},
payMode:{
payMode: {
rules: [{required: true, message: '请选择来款方式'}],
validateTrigger: 'change'
},
companyId:{
companyId: {
rules: [{required: true, message: '请选择参会单位'}],
validateTrigger: 'change'
},
companyContactId:{
companyContactId: {
rules: [{required: true, message: '请选择参会人'}],
validateTrigger: 'change'
},
postContactId:{
postContactId: {
rules: [{required: true, message: '请选择邮寄联系人'}],
validateTrigger: 'change'
},
needInvoice:{
needInvoice: {
rules: [{required: true, message: '请选择发票类型'}],
validateTrigger: 'change'
},
identity:{
identity: {
rules: [{required: true, message: '请选择身份'}],
validateTrigger: 'change',
initialValue:2
initialValue: 2
},
phone:{
phone: {
rules: [{required: true, message: '请输入手机号'}],
validateTrigger: 'blur'
},
},
// 订单后四位显示
onlinePayModeBool: false,
url: {
add:'/meeting/payMeetingSituation/add'
add: '/meeting/payMeetingSituation/add'
},
// 合同信息
contractInfo:{},
contractInfo: {},
// 联系人回显
selectContact:null,
selectContact: null,
// 会议金额
meetingCosts:'',
meetingCosts: '',
}
},
methods:{
open(record){
console.log(record,'addMeetingPerson')
this.meetingCosts =''
methods: {
open(record) {
console.log(record, 'addMeetingPerson')
this.meetingCosts = ''
this.form.resetFields()
this.visible = true
this.contractInfo = Object.assign({},record)
this.contractInfo = Object.assign({}, record)
// 参会单位的默认显示
this.contractInfo.companyId = {
id:record.signedCompanyId,
companyName:record.signedCompanyTemporaryName
id: record.signedCompanyId,
companyName: record.signedCompanyTemporaryName
}
// 姓名的默认显示
this.contractInfo.companyContactId = record.signedContactsId
// 通过联系人id获取手机号
this.queryInfoById(record.signedContactsId).then( res => {
this.form.setFieldsValue({'phone':res.phone})
this.queryInfoById(record.signedContactsId).then(res => {
this.form.setFieldsValue({'phone': res.phone})
})
// 邮寄联系人显示
this.contractInfo.postContactId = record.signedContactsId
@@ -293,54 +302,56 @@ export default {
// 身份默认选择参会人
this.contractInfo.identify = 1
this.selectContact = {
id:record.signedContactsTemporaryId,
name:record.signedContactsTemporaryName
id: record.signedContactsTemporaryId,
name: record.signedContactsTemporaryName
}
this.$nextTick( () => {
this.form.setFieldsValue(pick(this.contractInfo,'companyId','companyContactId','identify','postContactId'))
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.contractInfo, 'companyId', 'companyContactId', 'identify', 'postContactId'))
})
},
close(){
close() {
this.visible = false
},
handleOk(){
const that = this
handleOk() {
const that = this
this.form.validateFields((err, values) => {
if(!err){
if (!err) {
that.confirmLoading = true
let method = 'post'
let url = this.url.add
const formData = Object.assign({},values)
const formData = Object.assign({}, values)
formData.companyId = values.companyId.id
formData.meetingId = values.meetingId.id
// 合同id
formData.contractId = this.contractInfo.id
// 在合同处新增的参会人需要添加参数 flag = 1 用于后端发送系统消息与邮件
formData.flag = 1
httpAction(url,formData,method).then(res => {
if(res.success){
httpAction(url, formData, method).then(res => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
that.handleCancel()
that.confirmLoading = false
}else {
} else {
this.$message.warn(res.message)
}
}).finally( () => {
}).finally(() => {
that.confirmLoading = false
})
}
})
},
handleCancel(){
handleCancel() {
this.close()
},
/*
* 选择会议
* */
selectMeeting(val){
selectMeeting(val) {
console.log(val)
if(val.meetingCosts){
if (val.meetingCosts) {
this.meetingCosts = val.meetingCosts
if(val.meetingCostsVip){
if (val.meetingCostsVip) {
this.meetingCosts = val.meetingCosts + val.meetingCostsVip
}
@@ -351,11 +362,11 @@ export default {
/*
* 通过id获取联系人信息
* */
queryInfoById(id){
queryInfoById(id) {
return new Promise(resolve => {
let result = {}
getContactsById({id}).then(res => {
if(res.success){
if (res.success) {
result = res.result
}
}).finally(() => {
@@ -366,10 +377,34 @@ export default {
/*
* 选择姓名 更新手机号
* */
changeSelectContract(val){
changeSelectContract(val) {
this.queryInfoById(val).then(res => {
this.form.setFieldsValue({'phone':res.phone})
this.form.setFieldsValue({'phone': res.phone})
})
},
/*
* 校验邮编
* */
validatePostCode(rule, value, callback) {
if (value === '' || value === undefined || value === null) {
callback('请输入邮编')
}
if (value && postcode(value)) {
callback()
} else {
callback('请输入正确格式的邮编')
}
},
/*
* 线上缴费才有订单后四位
* */
changePayMode(e) {
// 缴费方式为线上 要输入订单后四位
if (e.target.value === 2) {
this.onlinePayModeBool = true
} else {
this.onlinePayModeBool = false
}
}
}
@@ -266,6 +266,17 @@ export default {
this.queryParam = {}
this.visible = false
},
/*
* 新增成功 直接关联 关闭弹窗
* */
modalFormOk() {
// 新增/修改 成功时,重载列表
this.loadData()
this.$emit('ok')
this.handleCancel()
//清空列表选中
this.onClearSelected()
},
handleOk() {
if (this.selectedRowKeys.length <= 0) {
this.$message.warn('请选择项目后再提交关联')
@@ -375,6 +375,14 @@ export default {
this.loadData(1)
}
},
modalFormOk() {
// 新增/修改 成功时,重载列表
this.loadData()
this.$emit('ok')
this.handleCancel()
//清空列表选中
this.onClearSelected()
},
/*
* 打开新增
* */
@@ -54,7 +54,7 @@
<a-col :xxl="8" :xl="12" :sm="24" v-if="identifyType === 2 && !payModeBool ">
<a-form-item label="邮编" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邮编"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}" :maxLength="50"
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}" :maxLength="6"
v-decorator="[ 'postCode']"></a-input>
</a-form-item>
</a-col>
+1 -26
View File
@@ -117,8 +117,6 @@
@ok="addContactsOk"></select-contacts>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入手机号"
@@ -128,25 +126,6 @@
v-decorator="['phone',validatorRules.phone]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="职务" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入职务"
:maxLength='11'
disabled
v-decorator="[ 'post']"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="邮箱" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邮箱"
:maxLength='50'
disabled
v-decorator="[ 'email',
validatorRules.email]"></a-input>
</a-form-item>
</a-col>
<!--非国际研讨会-->
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType !== '3' ">
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -316,10 +295,6 @@ export default {
rules: [{required: true, message: '请输入手机号'}],
validateTrigger: 'blur'
},
email: {
rules: [{required: true, message: '请输入邮箱'}],
validateTrigger: 'blur'
},
identify: {
rules: [{required: true, message: '请选择身份'}],
validateTrigger: 'change'
@@ -542,7 +517,7 @@ export default {
const model = Object.assign({}, res.result)
// 设置手机 邮箱 职务
if (res.success) {
that.form.setFieldsValue(pick(model, 'phone', 'email', 'post'))
that.form.setFieldsValue(pick(model, 'phone'))
}
// 设置邮寄联系人和地址
if (this.$refs.formother !== undefined) {
+1 -1
View File
@@ -138,7 +138,7 @@
</a-form-item>
<a-form-item label="邮箱密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" placeholder="请输入邮箱密码" @change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'emailPassword', validatorRules.emailPassword]" :maxLength="50"/>
<a-input-password placeholder="请输入邮箱密码" @change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'emailPassword', validatorRules.emailPassword]" :maxLength="50"/>
</a-form-item>
<a-form-item label="手机号码" :labelCol="labelCol" :wrapperCol="wrapperCol">