diff --git a/assets/js/http/signUp.js b/assets/js/http/signUp.js index f5801c5..c126bb2 100644 --- a/assets/js/http/signUp.js +++ b/assets/js/http/signUp.js @@ -19,6 +19,8 @@ const signUpApi = { addPersonNoLimit: (params) => http.post(`${URL_CONFIG}company/payContactsManagement/addMeeting`, params), // 会议报名接口 signUpMeeting:(params) => http.post(`${URL_CONFIG}meeting/payMeetingSituation/signUp`, params), + // 上传汇款凭证 + uploadPayRecord:(params) =>http.post(`${URL_CONFIG}meeting/payMeetingSituation/editTerminal`, params), } export default signUpApi \ No newline at end of file diff --git a/pages/meeting/meeting.js b/pages/meeting/meeting.js index fee4b02..6fb4a60 100644 --- a/pages/meeting/meeting.js +++ b/pages/meeting/meeting.js @@ -97,6 +97,10 @@ Page({ wx.navigateTo({ url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名) }) + }else{ + wx.navigateTo({ + url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名) + }) } }, diff --git a/pages/meetingDetailSigned/meetingDetailSigned.js b/pages/meetingDetailSigned/meetingDetailSigned.js index 6cd2d05..f64ded7 100644 --- a/pages/meetingDetailSigned/meetingDetailSigned.js +++ b/pages/meetingDetailSigned/meetingDetailSigned.js @@ -1,7 +1,10 @@ // pages/meeting/meeting.js -import {previewFile} from '../../assets/js/preview' +import { + previewFile +} from '../../assets/js/preview' import MeetingApi from '../../assets/js/http/meetingApi' +import signUpApi from '../../assets/js/http/signUp' Page({ /** @@ -10,44 +13,64 @@ Page({ data: { payProveImage: '', // 会议详情 - meetingInfo:{}, + meetingInfo: {}, // 参会人信息 - singInPersonInfo:{}, + singInPersonInfo: {}, // 会议通知文件资料数组 - meetingFilesList:[], + meetingFilesList: [], // 会议资料文件数组 - meetingDataList:[] - + meetingDataList: [], + // 缴费凭证id + imageIds:[], + // 订单后四位 + ordeCode:'' }, - // 上传缴费凭证 - uploadImage(){ - const that = this - wx.chooseImage({ - count: 1, - sizeType: ['original', 'compressed'], - sourceType: ['album', 'camera'], - success (res) { - // tempFilePath可以作为img标签的src属性显示图片 - that.setData({ - payProveImage: res.tempFilePaths - }) - console.log(that.data.payProveImage) + // 获取图片的id + getImagesId(e) { + this.setData({ + imageIds: e.detail.join(',') + }) + }, + // 订单后四位 + setOrdeCode(e){ + this.setData({ + ordeCode:e.detail.value + }) + }, + // 上传汇款凭证 + editPayRecord(){ + + const param = { + id:this.data.meetingInfo.situationId, + orderCode:this.data.ordeCode, + paymentRecord:this.data.imageIds + } + signUpApi.uploadPayRecord(param).then(res => { + console.log(res); + if(res.success){ + wx.showToast({ + title:res.message, + icon: "success", + duration: 800, + }); + }else{ + wx.showToast({ + title:res.message, + icon: "error", + duration: 800, + }); } }) }, - // 删除缴费凭证 - delete(){ - this.setData({ - payProveImage: '' - }) - }, //参会人信息 - queryPeronInfo(id){ - MeetingApi.queryPersongInfoById({id:id}).then(res => { - if(res.success){ + queryPeronInfo(id) { + MeetingApi.queryPersongInfoById({ + id: id + }).then(res => { + if (res.success) { this.setData({ - singInPersonInfo:res.result + singInPersonInfo: res.result }) } }) @@ -56,7 +79,9 @@ Page({ getFileInfo(id) { return new Promise(resolve => { let result = {} - MeetingApi.queryFileInfoById({ id: id }).then(res => { + MeetingApi.queryFileInfoById({ + id: id + }).then(res => { if (res.success) { result = res.result } @@ -66,14 +91,17 @@ Page({ }) }, // 获取文件信息 - async initFileList(fileIds) { + async initFileList(fileIds) { if (fileIds) { const fileList = [] let arr = fileIds.split(',') for (let i = 0; i < arr.length; i++) { let fileObj = {} fileObj = await this.getFileInfo(arr[i]) - fileList.push({ id: fileObj.id, name: fileObj.fileName }) + fileList.push({ + id: fileObj.id, + name: fileObj.fileName + }) } return fileList } @@ -81,7 +109,7 @@ Page({ // 预览 previewFile(e) { const fileObj = e.currentTarget.dataset.file - previewFile(fileObj.id,fileObj.name) + previewFile(fileObj.id, fileObj.name) }, /** * 生命周期函数--监听页面加载 @@ -92,26 +120,29 @@ Page({ console.log(meetingInfo); const that = this this.setData({ - meetingInfo:meetingInfo + meetingInfo: meetingInfo }) // - let {meetingFiles,meetingData} = meetingInfo + let { + meetingFiles, + meetingData + } = meetingInfo // 获取参会人信息 - this.queryPeronInfo(meetingInfo.id) + this.queryPeronInfo(meetingInfo.situationId) // this.queryFileInfo(meetingFiles) // 获取会议资料文件 this.initFileList(meetingData).then(res => { - that.setData({ - meetingDataList:res - }) + that.setData({ + meetingDataList: res + }) }) // 会议通知文件 this.initFileList(meetingFiles).then(res => { that.setData({ - meetingFilesList:res + meetingFilesList: res }) - }) + }) }, @@ -163,4 +194,4 @@ Page({ onShareAppMessage: function () { } -}) +}) \ No newline at end of file diff --git a/pages/meetingDetailSigned/meetingDetailSigned.json b/pages/meetingDetailSigned/meetingDetailSigned.json index 28c7f23..345645b 100644 --- a/pages/meetingDetailSigned/meetingDetailSigned.json +++ b/pages/meetingDetailSigned/meetingDetailSigned.json @@ -1,4 +1,6 @@ { "navigationBarTitleText": "会议详情", - "usingComponents": {} + "usingComponents": { + "image-upload":"../../components/imageUpload/imageUpload" + } } \ No newline at end of file diff --git a/pages/meetingDetailSigned/meetingDetailSigned.wxml b/pages/meetingDetailSigned/meetingDetailSigned.wxml index fd92bc3..1f03272 100644 --- a/pages/meetingDetailSigned/meetingDetailSigned.wxml +++ b/pages/meetingDetailSigned/meetingDetailSigned.wxml @@ -12,13 +12,13 @@ 负责人 {{meetingInfo.directorName}} - + 召开时间 - {{meetingInfo.startTime + '至' + meetingInfo.endTime}} + - + 报名截止时间 @@ -33,13 +33,13 @@ {{meetingInfo.particularYear}} - + 会议费用(VIP) {{meetingInfo.meetingCostsVip}} - + 会议通知 @@ -48,7 +48,7 @@ {{item.name}} - 查看 + 查看 @@ -58,14 +58,14 @@ 单个账号会议文件只可发送五次 - + {{item.name}} - 查看 + 查看 - 暂无 + 暂无 @@ -87,45 +87,50 @@ 抵达时间 - {{singInPersonInfo.arrivalTime}} + {{singInPersonInfo.arrivalTime === null ? '' : singInPersonInfo.arrivalTime}} 离开时间 - {{singInPersonInfo.departureTime}} + {{singInPersonInfo.departureTime === null ? '' : singInPersonInfo.departureTime}} 邮寄联系人 - {{singInPersonInfo.postContactName}} + {{singInPersonInfo.postContactName === null ? '' :singInPersonInfo.postContactName}} 缴费方式 - {{singInPersonInfo.payMode_dictText}} + {{singInPersonInfo.payMode_dictText === null ? '':singInPersonInfo.payMode_dictText }} 是否需要发票 - {{singInPersonInfo.needInvoice_dictText}} + {{singInPersonInfo.needInvoice_dictText === null ? '': singInPersonInfo.needInvoice_dictText}} - + 邮寄地址 - {{singInPersonInfo.postContactAddress}} + 邮编 - {{singInPersonInfo.postCode}} - - - 缴费凭证 - - - - × - - - - - + {{singInPersonInfo.postCode === null ? '' :singInPersonInfo.postCode}} + + + + 缴费凭证 + + + + + + + + 缴费订单号后四位数 + + + 请在会议期间内上传缴费凭证和缴费订单号后四位 + + @@ -138,16 +143,18 @@ + - - - - - - + + + + + + + - 确定 + 确定 - + \ No newline at end of file diff --git a/pages/meetingDetailSigned/meetingDetailSigned.wxss b/pages/meetingDetailSigned/meetingDetailSigned.wxss index 1b59a72..5bd420e 100644 --- a/pages/meetingDetailSigned/meetingDetailSigned.wxss +++ b/pages/meetingDetailSigned/meetingDetailSigned.wxss @@ -92,7 +92,7 @@ page{ justify-content: flex-start; align-items: center; padding: 0; - height: 80px; + height: 200px; } .pay-prove-box .pay-prove-content .pay-prove{ width: 80px; @@ -106,10 +106,10 @@ page{ justify-content: center; align-items: center; } -.pay-prove-box .pay-prove-content .pay-prove image{ +/* .pay-prove-box .pay-prove-content .pay-prove image{ width: 80px; height: 80px; -} +} */ .pay-prove-box .pay-prove-content .pay-prove .delete-image{ width: 12px; height: 12px; @@ -159,3 +159,43 @@ page{ bottom: 0; margin: auto; } + +.basic-info view.sign-in { + display: flex!important; + flex-direction: column!important; + align-items: start; + justify-content: start; + height: auto!important; +} +.sign-in-text { +margin-top: 15px; +} + +.payment-record { + background: #fff; + margin-top: 20rpx; +} +.p-20 { + padding: 10px 20px; + box-sizing: border-box; +} + +.payment-text { + margin-top: 10px; +} +.input { + margin: 10px 0; + border: 1px solid #eee; + padding-left: 10rpx; + height: 30px; + line-height: 30px; +} +.line { + border-top: 1px solid #eee; +} +.tip { + padding-left: 20px; + padding-bottom: 10px; + color: #333; + font-size: 14px; +} \ No newline at end of file diff --git a/pages/signUpEntrance/signUpEntrance.js b/pages/signUpEntrance/signUpEntrance.js new file mode 100644 index 0000000..ac363bd --- /dev/null +++ b/pages/signUpEntrance/signUpEntrance.js @@ -0,0 +1,155 @@ +// pages/signUpEntrance/signUpEntrance.js +import MeetingApi from '../../assets/js/http/meetingApi' +import { + initFileList, + previewFile, + getFileInfo +} from '../../assets/js/preview' +import { + baseUrl, + URL_CONFIG +} from '../../assets/js/http/api' + +Page({ + + /** + * 页面的初始数据 + */ + data: { + // 会议详情信息 + meetingDetailIngfo: {}, + // 会议类型 + meetingType: '', + // 标协会议类型 1标准宣贯 2学习培训 + tbMeetingType:'', + // 会议通知文件资料数组 + meetingFilesList: [], + // 缴费二维码的图片路径 + payOrCode: '', + // 标协会议酒店信息 + hotelContactsList:[] + }, + // 获取会议详情 + queryMeetingDetail(id) { + const that = this + MeetingApi.meetingDetail({ + id + }).then(res => { + if (res.success) { + that.setData({ + meetingDetailIngfo: res.result, + meetingType: that.generateMeetingType(res.result.meetingType), + payOrCode: baseUrl + URL_CONFIG + 'sys/common/download/' + res.result.paymentQrCode, + tbMeetingType:that.generateTbMeetingType(res.result.tbMeetingType), + hotelContactsList:res.result.hotelContactsList + }) + console.log(that.data.hotelContactsList); + initFileList(res.result.meetingFiles).then(res => { + that.setData({ + meetingFilesList: res, + }) + }) + } + }) + }, + // 报名 + signUp() { + // 不同的会议通跳转不同的会议页面 + let meetingType = this.data.meetingDetailIngfo.meetingType + + if (meetingType !== '3') { + wx.navigateTo({ + url: '../signUpPage/signUpPage', + }) + } else { + wx.navigateTo({ + url: '../signUpPageGuoji/signUpPageGuoji', + }) + } + }, + // 会议类型 + generateMeetingType(meetingType) { + switch (meetingType) { + case "1": + return "工作组会议" + case "2": + return "标协会议" + case "3": + return "国际研讨会议" + case "4": + return "其他会议" + case "5": + return "分标委会议" + } + }, + // 标协会议类型 + generateTbMeetingType(type) { + switch (type) { + case "1": + return "标准宣贯" + case "2": + return "学习培训" + } + }, + // 预览文件 + preview(e) { + console.log(e); + const fileObj = e.currentTarget.dataset.file; + previewFile(fileObj.id, fileObj.name) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.queryMeetingDetail('1448568227696041986') + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/signUpEntrance/signUpEntrance.json b/pages/signUpEntrance/signUpEntrance.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/signUpEntrance/signUpEntrance.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/signUpEntrance/signUpEntrance.wxml b/pages/signUpEntrance/signUpEntrance.wxml new file mode 100644 index 0000000..2d82415 --- /dev/null +++ b/pages/signUpEntrance/signUpEntrance.wxml @@ -0,0 +1,124 @@ + + + + + 会议名称 + {{meetingDetailIngfo.meetingName}} + + + 会议类型 + {{meetingType}} + + + + 标协会议类型 + {{tbMeetingType}} + + + + 负责人 + {{meetingDetailIngfo.directorName}} + + + 所属工作组 + {{meetingDetailIngfo.workingGroupName}} + + + + 所属分标委 + {{meetingDetailIngfo.caseCommitteeName}} + + + + + + 年份 + {{meetingDetailIngfo.particularYear}} + + + 报名截止时间 + {{meetingDetailIngfo.registerDeadline}} + + + 会议费用 + {{meetingDetailIngfo.meetingCosts}} + + + + 会议费用(VIP) + {{meetingDetailIngfo.meetingCostsVip}} + + + + + + + 会议通知 + + + + {{item.name}} + + 查看 + + + + + 会议通知 + + + + {{item.name}} + + 暂无 + + + + + 缴费二维码 + + + + + + + + + + + 酒店名称 + {{meetingDetailIngfo.hotelName}} + + + 酒店联系人 + {{item.hotelContacts}} - {{item.hotelContactsPhone}} + + + + 酒店地址 + {{meetingDetailIngfo.hotelAddress}} + + + + + + + + + + \ No newline at end of file diff --git a/pages/signUpEntrance/signUpEntrance.wxss b/pages/signUpEntrance/signUpEntrance.wxss new file mode 100644 index 0000000..f5990b9 --- /dev/null +++ b/pages/signUpEntrance/signUpEntrance.wxss @@ -0,0 +1,186 @@ +/* pages/signUpEntrance/signUpEntrance.wxss */ +page{ + box-sizing: border-box; + background-color: #F5F5F5; +} +.basic-info .title{ + height: 40px; +} +.basic-info .title text{ + display: block; + border-left: 3px solid #069F99; + height: 14px; + padding-left: 10px; + border-radius: 2px; + display: flex; + justify-content: center; + align-items: center; + color: #333; + font-size: 15px; + font-weight: 500; +} +.basic-info view{ + background-color: #FFF; + padding: 15px; + height: 40px; + display: flex; + justify-content: space-between; + align-items: center; + color: #333; + font-size: 14px; + border-bottom: 0.5px solid #f5f5f5; + position: relative; +} +.basic-info view:last-child{ + border-bottom: 0; +} +.meeting-name{ + margin-bottom: 10px; +} +.meeting-files{ + margin-top: 10px; + flex-direction: column; + align-items: flex-start !important; + height: auto !important; +} +.basic-info .meeting-files .file-name{ + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + box-sizing: border-box; + padding: 0; + height: 40px; + margin-top: 10px; +} +.file-name view{ + padding: 0; + height: 30px; + line-height: 30px; + border-bottom: 0; +} +.file-name view image{ + width: 30px; + height: 30px; + margin-right: 10px; +} +.basic-info .meeting-files .file-name .look-file{ + color: #069F99; +} +.warning-text{ + position: absolute !important; + top: 5px; + left: 75px; + color: #FF5E60 !important; + font-size: 10px !important; + padding: 0 !important; +} +.warning-text image{ + width: 10px; + height: 10px; +} +.pay-prove-box{ + display: flex !important; + flex-direction: column !important; + justify-content: flex-start !important; + align-items: flex-start !important; + padding: 0; + height: 120px !important; +} +.pay-prove-box .pay-prove-content{ + margin-top: 20px; + display: flex; + justify-content: flex-start; + align-items: center; + padding: 0; + height: 80px; +} +.pay-prove-box .pay-prove-content .pay-prove{ + width: 80px; + height: 80px; + margin-right: 10px; + position: relative !important; + background-color: #D1D1D1; + padding: 0; + border-radius: 5px; + display: flex; + justify-content: center; + align-items: center; +} +.pay-prove-box .pay-prove-content .pay-prove image{ + width: 80px; + height: 80px; +} +.pay-prove-box .pay-prove-content .pay-prove .delete-image{ + width: 12px; + height: 12px; + color: #fff; + background-color: #FF5E60; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + font-size: 7px; + position: absolute; + top: -3px; + right: -3px; +} +.sign-up-empty{ + height: 60px; + width: 100%; + display: block; + margin-top: 10px; +} +.sign-up{ + width: 100%; + padding: 10px 15px; + box-sizing: border-box; + background-color: #fff; + position: fixed; + bottom: 0; +} +.sign-up text{ + background-color: #069F99; + height: 40px; + border-radius: 10px; + color: #fff; + font-size: 16px; + font-weight: 600; + display: block; + text-align: center; + line-height: 40px; +} +.form-payQrCode { + height: 140px!important; + padding: 5rpx!important; +} +.payQrCode { + width: 120px; + height: 120px; + padding: 2px; + box-sizing: border-box; + border-radius: 4px; +} + +.sign-up-btn { + background-color: #069F99; + font-weight: 500; + color:#fff +} + +.basic-info view.sign-in { + display: flex!important; + flex-direction: column!important; + align-items: start; + justify-content: start; + height: auto!important; +} +.sign-in-text { +margin-top: 15px; +} +.hotel { + width: 100%; +} +.hotel .hotel-text { + text-align: right; +} \ No newline at end of file