|
|
|
@ -1,44 +1,41 @@ |
|
|
|
|
<template> |
|
|
|
|
<view class="v-page"> |
|
|
|
|
<uni-forms ref="form" :rules="rules" :model="formData" label-position="top" :label-width=150> |
|
|
|
|
<template v-for="(item,index) in formData.itemData"> |
|
|
|
|
|
|
|
|
|
<template v-for="(item,index) in dynamicLists"> |
|
|
|
|
<uni-forms ref="form" :modelValue="dynamicLists[index]" label-position="top" :label-width='150' |
|
|
|
|
:rules="rules"> |
|
|
|
|
<view class="an_box_2 rcd_box box_1"> |
|
|
|
|
<view class="title_t_1"> |
|
|
|
|
<text v-if="index==0" class="fill-full">预约人</text><text class="fill-full" |
|
|
|
|
v-else>同行人{{index}}</text><button class="title-btn" v-if="index!=0" |
|
|
|
|
@tap="delReserve(index)">删除</button> |
|
|
|
|
</view> |
|
|
|
|
<uni-forms-item label="姓名" required :name="'domains[' + item.id + ']'"> |
|
|
|
|
<uni-easyinput type="text" v-model="formData.itemData[index].name" placeholder="请输入姓名" /> |
|
|
|
|
|
|
|
|
|
<uni-forms-item label="姓名" required name="name"> |
|
|
|
|
<uni-easyinput type="text" placeholder="请输入姓名" v-model="item.name" /> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
|
|
|
|
|
<uni-forms-item v-if="index==0" label="手机号" required :name="['itemData',index,'phone']"> |
|
|
|
|
<uni-easyinput type="text" v-model="formData.itemData[index].phone" placeholder="请输入手机号" /> |
|
|
|
|
<uni-forms-item v-if="index==0" label="手机号" required name="phone"> |
|
|
|
|
<uni-easyinput type="text" v-model="item.phone" placeholder="请输入手机号" /> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
<uni-forms-item v-else label="手机号" :rules="[{'required': false}]" |
|
|
|
|
:name="['itemData',index,'phone']"> |
|
|
|
|
<uni-easyinput type="text" v-model="formData.itemData[index].phone" placeholder="请输入手机号" /> |
|
|
|
|
<uni-forms-item v-else label="手机号" name="phone"> |
|
|
|
|
<uni-easyinput type="text" v-model="item.phone" placeholder="请输入手机号" /> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
|
|
|
|
|
<uni-forms-item label="个人证件类型" name="documentsType" required> |
|
|
|
|
<uni-data-checkbox mode="button" v-model="item.documentsType" :localdata="idcardList" |
|
|
|
|
></uni-data-checkbox> |
|
|
|
|
<uni-forms-item label="个人证件类型" name="documentsType"> |
|
|
|
|
<uni-data-checkbox mode="button" v-model="item.documentsType" |
|
|
|
|
:localdata="idcardList"></uni-data-checkbox> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
|
|
|
|
|
<uni-forms-item label="证件号码" required :name="['itemData',index,'idCardNumber']" |
|
|
|
|
v-if="item.documentsType=='5501'"> |
|
|
|
|
<uni-easyinput type="text" v-model="formData.itemData[index].idCardNumber" |
|
|
|
|
placeholder="请输入证件111号码" /> |
|
|
|
|
<uni-forms-item v-if="item.documentsType=='5501'" label="证件号码" required name="idCardNumber"> |
|
|
|
|
<uni-easyinput type="text" v-model="item.idCardNumber" placeholder="请输入身份证号码号码" /> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
<uni-forms-item label="证件号码" required :name="['itemData',index,'passportNumber']" |
|
|
|
|
v-if="item.documentsType=='5502'"> |
|
|
|
|
<uni-easyinput type="text" v-model="formData.itemData[index].passportNumber" |
|
|
|
|
placeholder="请输入护照证件号码" /> |
|
|
|
|
<uni-forms-item v-if="item.documentsType=='5502'" label="证件号码" required name="passportNumber"> |
|
|
|
|
<uni-easyinput type="text" v-model="item.passportNumber" placeholder="请输入护照码号码" /> |
|
|
|
|
</uni-forms-item> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
|
</uni-forms> |
|
|
|
|
</uni-forms> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<view class="an_box_2"> |
|
|
|
|
<button form-type="submit" class="add_btn" :class="isAdd?'active':''" @tap="addReserve"> |
|
|
|
@ -46,6 +43,7 @@ |
|
|
|
|
</button> |
|
|
|
|
<view class="add_tip">每个预约单最多可预约5人!</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<view class="yuyue-btn"> |
|
|
|
|
<view class="an_box_2"> |
|
|
|
|
<view class="amt_60"> |
|
|
|
@ -55,6 +53,7 @@ |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
@ -64,198 +63,64 @@ |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
formData: { |
|
|
|
|
itemData: [] |
|
|
|
|
name: {}, |
|
|
|
|
phone: {}, |
|
|
|
|
documentsType: {}, |
|
|
|
|
idCardNumber: {}, |
|
|
|
|
passportNumber: {}, |
|
|
|
|
}, |
|
|
|
|
// 规则 |
|
|
|
|
dynamicLists: [], |
|
|
|
|
rules: { |
|
|
|
|
'_formdata_#itemData#0#name': { |
|
|
|
|
name: { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写姓名', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
errorMessage: '姓名不能为空' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#0#phone': { |
|
|
|
|
phone: { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写手机号', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
let reg = /^[1][3,4,5,7,8,9][0-9]{9}$/ |
|
|
|
|
if (!reg.test(value)) { |
|
|
|
|
callback('请填写正确的手机号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '电话号码不能为空' |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#0#idCardNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写身份证件号码', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
|
|
|
|
|
let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
{ |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
let reg = /^[1][3,4,5,7,8,9][0-9]{9}$/ |
|
|
|
|
if (!reg.test(value)) { |
|
|
|
|
callback('请填写正确的手机号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#0#passportNumber': { |
|
|
|
|
idCardNumber: { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写护照号码', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'_formdata_#itemData#1#name': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写姓名', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#1#idCardNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写身份证件号码', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '身份证号码不能为空' |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#1#passportNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写护照号码', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'_formdata_#itemData#2#name': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写姓名', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#2#idCardNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写身份证件号码', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
|
|
|
|
|
let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
{ |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
if(data.documentsType=='5502'){ |
|
|
|
|
return true |
|
|
|
|
}else{let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
}} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#2#passportNumber': { |
|
|
|
|
passportNumber: { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写护照号码', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'_formdata_#itemData#3#name': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写姓名', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#3#idCardNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写身份证件号码', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
|
|
|
|
|
let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#3#passportNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写护照号码', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'_formdata_#itemData#4#name': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写姓名', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#4#idCardNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写身份证件号码', |
|
|
|
|
}, { |
|
|
|
|
validateFunction: function(rule, value, data, callback) { |
|
|
|
|
|
|
|
|
|
let idreg = |
|
|
|
|
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; |
|
|
|
|
if (!idreg.test(value)) { |
|
|
|
|
callback('请填写正确的身份证件号码') |
|
|
|
|
} else { |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
'_formdata_#itemData#4#passportNumber': { |
|
|
|
|
rules: [{ |
|
|
|
|
required: true, |
|
|
|
|
errorMessage: '请填写护照号码', |
|
|
|
|
trigger: 'blur' |
|
|
|
|
}] |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
errorMessage: '护照号码不能为空' |
|
|
|
|
}, ] |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
isPass: false, |
|
|
|
|
idcardList: [{ |
|
|
|
|
"value": '5501', |
|
|
|
|
"text": "身份证" |
|
|
|
@ -264,17 +129,17 @@ |
|
|
|
|
"text": "护照" |
|
|
|
|
}], |
|
|
|
|
isAdd: true, |
|
|
|
|
errList: [] |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
onLoad(options) { |
|
|
|
|
this.propData = JSON.parse(options.data) |
|
|
|
|
console.log(this.propData) |
|
|
|
|
}, |
|
|
|
|
mounted() { |
|
|
|
|
created() { |
|
|
|
|
this.addReserve() |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
//添加预约人 |
|
|
|
|
//创建预约人 |
|
|
|
|
addReserve: function() { |
|
|
|
|
if (this.isAdd) { |
|
|
|
|
let newData = { |
|
|
|
@ -284,33 +149,41 @@ |
|
|
|
|
idCardNumber: "", |
|
|
|
|
passportNumber: "", |
|
|
|
|
} |
|
|
|
|
this.formData.itemData.push(newData); |
|
|
|
|
if (this.formData.itemData.length > 4) { |
|
|
|
|
//判断最多预约人数 |
|
|
|
|
this.dynamicLists.push(newData); |
|
|
|
|
if (this.dynamicLists.length > 4) { |
|
|
|
|
this.isAdd = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
//删除预约人 |
|
|
|
|
delReserve: function(index) { |
|
|
|
|
this.formData.itemData.splice(index, 1); |
|
|
|
|
if (this.formData.itemData.length <= 4) { |
|
|
|
|
this.dynamicLists.splice(index, 1); |
|
|
|
|
|
|
|
|
|
if (this.dynamicLists.length <= 4) { |
|
|
|
|
this.isAdd = true |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
//预约按钮 |
|
|
|
|
saveReserve: function() { |
|
|
|
|
this.$refs.form.validate().then(res => { |
|
|
|
|
this.postReserve() |
|
|
|
|
}).catch(err => { |
|
|
|
|
console.log('表单错误信息:', err); |
|
|
|
|
let errList = [] |
|
|
|
|
const promises = this.dynamicLists.map((item, index) => { |
|
|
|
|
return new Promise(resolve => { |
|
|
|
|
this.$refs.form[index].validate(err => { |
|
|
|
|
errList = err |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
|
|
if (errList == null) { |
|
|
|
|
this.postReserve() |
|
|
|
|
} |
|
|
|
|
}, 500) |
|
|
|
|
}, |
|
|
|
|
//传输数据 |
|
|
|
|
postReserve: function() { |
|
|
|
|
const that = this |
|
|
|
|
let newList = that.formData.itemData.map((item, index) => { |
|
|
|
|
let newList = that.dynamicLists.map((item, index) => { |
|
|
|
|
let numberDate |
|
|
|
|
if (item.idCardNumber) { |
|
|
|
|
numberDate = item.idCardNumber |
|
|
|
@ -338,26 +211,26 @@ |
|
|
|
|
startTime: that.propData.startTime, |
|
|
|
|
endTime: that.propData.endTime, |
|
|
|
|
scenicId: that.propData.scenicId, |
|
|
|
|
externalId: that.propData.externalId, |
|
|
|
|
unionId: "unionIdewrqrfb", |
|
|
|
|
appointmentPersonList: newList |
|
|
|
|
} |
|
|
|
|
console.log('data',data) |
|
|
|
|
|
|
|
|
|
uni.request({ |
|
|
|
|
url: that.$config.reservationNow, |
|
|
|
|
data: data, |
|
|
|
|
method: "POST", |
|
|
|
|
header: { |
|
|
|
|
"content-type": 'application/json', |
|
|
|
|
// 'Cookie':'ybsj-session=88942A641DDF00DD2E1676F4C2403CC1' |
|
|
|
|
}, |
|
|
|
|
xhrFields: { |
|
|
|
|
withCredentials: true // 这里设置了withCredentials |
|
|
|
|
withCredentials: true |
|
|
|
|
}, |
|
|
|
|
success: function(result) { |
|
|
|
|
if (result.data.status == 200) { |
|
|
|
|
if (result.data.status == 200) { |
|
|
|
|
uni.showModal({ |
|
|
|
|
title: "提示", |
|
|
|
|
content: result.data.msg, |
|
|
|
|
content: '预约成功', |
|
|
|
|
showCancel: false, |
|
|
|
|
success() { |
|
|
|
|
uni.navigateTo({ |
|
|
|
@ -368,7 +241,7 @@ |
|
|
|
|
}) |
|
|
|
|
} else if (result.data.status == 500) { |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: result.data.msg, |
|
|
|
|
title: result.data.data, |
|
|
|
|
icon: "none" |
|
|
|
|
}) |
|
|
|
|
return false; |
|
|
|
@ -389,7 +262,11 @@ |
|
|
|
|
padding-bottom: 120rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.checklist-box { |
|
|
|
|
.uni-data-checklist .checklist-group .checklist-box.is--button { |
|
|
|
|
width: 50% !important; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.uni-forms-item__label { |
|
|
|
|
padding: 0 !important; |
|
|
|
|
} |
|
|
|
|
</style> |