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