588 lines
14 KiB
JavaScript
588 lines
14 KiB
JavaScript
// pages/guestEditSignUpinfo/guestEditSignUpInfo.js
|
|
import MeetingApi from '../../assets/js/http/meetingApi'
|
|
import {
|
|
compareDate
|
|
} from '../../utils/validate'
|
|
import {
|
|
baseUrl,
|
|
URL_CONFIG
|
|
} from '../../assets/js/project.config.js'
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
info: {}, // 参会人的信息
|
|
guestType_dictText: '', // 嘉宾类型
|
|
// 抵达时间
|
|
arrivalTime: '请选择抵达时间',
|
|
// 入住酒店时间
|
|
inHotelTime: '请选择入住酒店时间',
|
|
// 离店时间
|
|
outHotelTime: '请选择离店时间',
|
|
// 离开时间
|
|
departureTime: '请选择离开时间',
|
|
// 是否选择发票的选中的索引
|
|
index: -1,
|
|
// 是否需要用餐
|
|
haveMeal: '',
|
|
// 是否住酒店
|
|
needHotel: '',
|
|
// 是否接站
|
|
needPick: '',
|
|
// 是否送站
|
|
needSend: '',
|
|
// 上传图片的id
|
|
imageIds: '',
|
|
// 记录临时的文件名 用于回显 小程序上传后后端的名会乱码
|
|
tempFiles: '点击上传',
|
|
// ppt Id
|
|
speechPpt: '',
|
|
|
|
// 是否
|
|
need: [{
|
|
value: 1,
|
|
name: '是'
|
|
},
|
|
{
|
|
value: 0,
|
|
name: '否'
|
|
},
|
|
],
|
|
},
|
|
// 初始化嘉宾类型
|
|
initGuestType(type) {
|
|
switch (type) {
|
|
case 1:
|
|
this.setData({
|
|
'guestType_dictText': 'VIP'
|
|
});
|
|
break
|
|
case 2:
|
|
this.setData({
|
|
'guestType_dictText': '演讲嘉宾'
|
|
});
|
|
break
|
|
case 3:
|
|
this.setData({
|
|
'guestType_dictText': '特邀嘉宾'
|
|
});
|
|
break
|
|
case 4:
|
|
this.setData({
|
|
'guestType_dictText': '合作伙伴'
|
|
});
|
|
break
|
|
case 5:
|
|
this.setData({
|
|
'guestType_dictText': '参展商'
|
|
});
|
|
break
|
|
}
|
|
},
|
|
// 表单的显示隐藏
|
|
initForm(record) {
|
|
if(record.guestType === 1 && record.speechPpt){
|
|
this.setData({
|
|
'info.speechPpt':record.speechPpt
|
|
})
|
|
}
|
|
// 不是合作伙伴和参展商
|
|
let isCoopOrExint = record.guestType !== 4 && record.guestType !== 5
|
|
// 是否用餐
|
|
if (isCoopOrExint && record.haveMeals !== null) {
|
|
this.setData({
|
|
haveMeal: record.haveMeals
|
|
})
|
|
}
|
|
// 是否住酒店
|
|
if (isCoopOrExint && record.checkInHotel !== null) {
|
|
this.setData({
|
|
needHotel: record.checkInHotel
|
|
})
|
|
if(record.checkInHotel === 1 && record.inHotelTime){
|
|
this.setData({
|
|
'inHotelTime':record.inHotelTime
|
|
})
|
|
}
|
|
if(record.checkInHotel === 1 && record.outHotelTime){
|
|
this.setData({
|
|
'outHotelTime':record.outHotelTime
|
|
})
|
|
}
|
|
|
|
}
|
|
// 是否接站
|
|
if (isCoopOrExint && record.pickUp !== null) {
|
|
this.setData({
|
|
needPick: record.pickUp
|
|
})
|
|
if(record.pickUp === 1 && record.arrivalTime){
|
|
this.setData({
|
|
'arrivalTime':record.arrivalTime
|
|
})
|
|
}
|
|
}
|
|
// 是否送站
|
|
if (isCoopOrExint && record.deliveryStation !== null) {
|
|
this.setData({
|
|
needSend: record.deliveryStation
|
|
})
|
|
|
|
if(record.deliveryStation === 1 && record.departureTime){
|
|
this.setData({
|
|
'departureTime':record.departureTime
|
|
})
|
|
}
|
|
|
|
}
|
|
},
|
|
formSubmit(e) {
|
|
const formData = JSON.parse(JSON.stringify(e.detail.value))
|
|
formData.guestType = this.data.info.guestType
|
|
formData.inHotelTime = this.data.info.inHotelTime
|
|
formData.outHotelTime = this.data.info.outHotelTime
|
|
formData.arrivalTime = this.data.info.arrivalTime
|
|
formData.departureTime = this.data.info.departureTime
|
|
formData.id = this.data.info.id
|
|
if(this.data.info.guestType === 1 || this.data.info.guestType === 2){
|
|
formData.photo = this.data.info.photo
|
|
formData.speechPpt = this.data.info.speechPpt
|
|
}
|
|
console.log(formData)
|
|
if(this.data.info.guestType !== 4 && this.data.info.guestType !== 5){
|
|
// 不是合作伙伴的需要校验
|
|
if(!formData.haveMeals){
|
|
wx.showToast({
|
|
title: '请选择是否用餐',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.haveMeals === "1" && !formData.huiPeople){
|
|
wx.showToast({
|
|
title: '请选择是否回民',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
if(formData.checkInHotel && formData.checkInHotel === "1" ){
|
|
if(!formData.inHotelTime){
|
|
wx.showToast({
|
|
title: '请选择入住酒店时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
if(!formData.outHotelTime){
|
|
wx.showToast({
|
|
title: '请选择离店时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
if(formData.inHotelTime && formData.outHotelTime){
|
|
let flag = compareDate(formData.inHotelTime,formData.outHotelTime)
|
|
if(flag){
|
|
wx.showToast({
|
|
title: '入住酒店时间不能大于离店时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
}
|
|
|
|
if(!formData.roomLayout){
|
|
wx.showToast({
|
|
title: '请输入房型',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
}
|
|
|
|
if(!formData.pickUp){
|
|
wx.showToast({
|
|
title: '请选择是否接站',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.pickUp === "1" && !formData.arrivalTime){
|
|
wx.showToast({
|
|
title: '请选择抵达时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.pickUp === "1" && !formData.destination){
|
|
wx.showToast({
|
|
title: '请选择抵达站',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.pickUp === "1" && !formData.arrivalShift){
|
|
wx.showToast({
|
|
title: '请输入到达班次',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(!formData.deliveryStation){
|
|
wx.showToast({
|
|
title: '请选择是否送站',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.deliveryStation === "1" && !formData.departureTime){
|
|
wx.showToast({
|
|
title: '请选择离开时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.arrivalTime && formData.departureTime){
|
|
let flag = compareDate(formData.arrivalTime,formData.departureTime)
|
|
if(flag){
|
|
wx.showToast({
|
|
title: '抵达时间不能大于离开时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
}
|
|
|
|
if(formData.deliveryStation === "1" && !formData.departureStation){
|
|
wx.showToast({
|
|
title: '请输入离开站',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
if(formData.deliveryStation === "1" && !formData.departureShift){
|
|
wx.showToast({
|
|
title: '请输入离开班次',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
|
|
MeetingApi.editSignUpInfo(formData).then(res => {
|
|
if(res.success){
|
|
wx.showToast({
|
|
title: '编辑成功',
|
|
icon: 'none',
|
|
duration: 1000
|
|
})
|
|
let pages = getCurrentPages()
|
|
let prevPage = pages[pages.length - 2];
|
|
prevPage.queryPeronInfo(this.data.info.id)
|
|
wx.navigateBack({
|
|
delta: 1,
|
|
})
|
|
}else{
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none',
|
|
duration: 1000
|
|
})
|
|
}
|
|
})
|
|
|
|
}else{
|
|
if(this.data.info.arrivalTime && this.data.info.departureTime){
|
|
let flag = compareDate(this.data.info.arrivalTime,this.data.info.departureTime)
|
|
if(flag){
|
|
wx.showToast({
|
|
title: '抵达时间不能大于离开时间',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
}
|
|
const param = {
|
|
arriveTime:this.data.info.arrivalTime,
|
|
departureTime:this.data.info.departureTime,
|
|
id:this.data.info.id,
|
|
guestType: 4
|
|
}
|
|
// 合作伙伴不需要校验
|
|
MeetingApi.editSignUpInfo(param).then(res => {
|
|
if(res.success){
|
|
wx.showToast({
|
|
title: '编辑成功',
|
|
icon: 'none',
|
|
duration: 1000
|
|
})
|
|
let pages = getCurrentPages()
|
|
let prevPage = pages[pages.length - 2];
|
|
prevPage.queryPeronInfo(this.data.info.id)
|
|
wx.navigateBack({
|
|
delta: 1,
|
|
})
|
|
}else{
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none',
|
|
duration: 1000
|
|
})
|
|
}
|
|
})
|
|
|
|
}
|
|
},
|
|
// 抵达时间选择
|
|
bindDateChangeArriveTime(e) {
|
|
this.setData({
|
|
arrivalTime: e.detail.value,
|
|
'info.arrivalTime':e.detail.value
|
|
})
|
|
},
|
|
// 离开时间选择
|
|
bindDateChangeLeaveTime(e) {
|
|
this.setData({
|
|
departureTime: e.detail.value,
|
|
'info.departureTime':e.detail.value
|
|
})
|
|
},
|
|
// 入住酒店时间
|
|
bindDateChangeInHotelTime(e) {
|
|
this.setData({
|
|
inHotelTime: e.detail.value,
|
|
'info.inHotelTime':e.detail.value
|
|
})
|
|
},
|
|
// 离店时间选择
|
|
bindDateChangeOutHotelTime(e) {
|
|
this.setData({
|
|
outHotelTime: e.detail.value,
|
|
'info.outHotelTime':e.detail.value
|
|
})
|
|
},
|
|
// 是否用餐
|
|
needHaveMeal(e) {
|
|
let value = Number(e.detail.value)
|
|
this.setData({
|
|
haveMeal: value
|
|
})
|
|
},
|
|
// 是否住酒店
|
|
needHotel(e) {
|
|
let value = Number(e.detail.value)
|
|
this.setData({
|
|
needHotel: value,
|
|
inHotelTime: '请选择入住酒店时间',
|
|
outHotelTime: '请选择离店时间'
|
|
})
|
|
console.log(this.data.needHotel)
|
|
|
|
},
|
|
// 是否接站
|
|
needPick(e) {
|
|
let value = Number(e.detail.value)
|
|
this.setData({
|
|
needPick: value,
|
|
arrivalTime: '请选择抵达时间'
|
|
})
|
|
},
|
|
// 是否送站
|
|
needSend(e) {
|
|
let value = Number(e.detail.value)
|
|
this.setData({
|
|
needSend: value,
|
|
departureTime: '请选择离开时间'
|
|
})
|
|
},
|
|
//参会人信息
|
|
queryPeronInfo(id) {
|
|
MeetingApi.queryPersongInfoById({
|
|
id: id
|
|
}).then(res => {
|
|
if (res.success) {
|
|
this.initGuestType(res.result.guestType)
|
|
this.setData({
|
|
info: res.result,
|
|
})
|
|
this.initForm(this.data.info)
|
|
// 演讲ppt、
|
|
if (res.result.speechPpt) {
|
|
this.initFileList(res.result.speechPpt).then(res => {
|
|
this.setData({
|
|
speechPptList: res
|
|
})
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
// 获取图片的id
|
|
getImagesId(e) {
|
|
this.setData({
|
|
'info.photo': e.detail.join(',')
|
|
})
|
|
},
|
|
// ppt的上传
|
|
uploadPPT() {
|
|
const that = this
|
|
wx.chooseMessageFile({
|
|
count: 1, //能选择文件的数量
|
|
type: 'file', //能选择文件的类型,我这里只允许上传文件.还有视频,图片,或者都可以
|
|
success(res) {
|
|
console.log(res);
|
|
var size = res.tempFiles[0].size;
|
|
var name = res.tempFiles[0].name;
|
|
var temporaryPdfArr = [];
|
|
temporaryPdfArr.push(res.tempFiles[0]);
|
|
var filePath = res.tempFiles[0].path;
|
|
if (size > 10485760) { //限制了文件的大小和具体文件类型
|
|
wx.showToast({
|
|
title: '文件大小不能超过10MB',
|
|
icon: "none",
|
|
duration: 2000,
|
|
mask: true
|
|
})
|
|
} else {
|
|
wx.showLoading({
|
|
title: '上传中...',
|
|
mask: true,
|
|
});
|
|
// 如果多个文件 要循环上传
|
|
wx.uploadFile({
|
|
url: baseUrl + URL_CONFIG + 'sys/common/upload', //上传的路径
|
|
filePath: filePath, //刚刚在data保存的文件路径
|
|
name: 'file', //后台获取的凭据
|
|
success(res) {
|
|
var fileBackDa = JSON.parse(res.data);
|
|
console.log(fileBackDa);
|
|
var backPdfArr = [];
|
|
backPdfArr.push(fileBackDa)
|
|
wx.hideLoading(); //隐藏提示框
|
|
//上传成功,
|
|
const fileList = [{name:name,id:'fileBackDa.result.id'}]
|
|
that.setData({
|
|
tempFiles: name,
|
|
'info.speechPpt': fileBackDa.result.id,
|
|
speechPptList:fileList
|
|
});
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
// 通过文件id获取文件的相关信息
|
|
getFileInfo(id) {
|
|
return new Promise(resolve => {
|
|
let result = {}
|
|
MeetingApi.queryFileInfoById({
|
|
id: id
|
|
}).then(res => {
|
|
if (res.success) {
|
|
result = res.result
|
|
}
|
|
}).finally(() => {
|
|
resolve(result)
|
|
})
|
|
})
|
|
},
|
|
// 获取文件信息
|
|
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
|
|
})
|
|
}
|
|
return fileList
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.queryPeronInfo(options.situationId)
|
|
// this.queryPeronInfo('1526466713801809921')
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
}
|
|
}) |