|
|
@ -26,6 +26,59 @@ |
|
|
<text class="lf-color-555 lf-font-28">年龄</text> |
|
|
<text class="lf-color-555 lf-font-28">年龄</text> |
|
|
<input type="number" v-model="age" disabled class="lf-color-999 lf-font-28 lf-text-left" style="position:absolute;right:180rpx" placeholder="请输入年龄"/> |
|
|
<input type="number" v-model="age" disabled class="lf-color-999 lf-font-28 lf-text-left" style="position:absolute;right:180rpx" placeholder="请输入年龄"/> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
<view class="padding-lr lf-m-b-40 lf-m-t-30"> |
|
|
|
|
|
<text class="lf-color-555 lf-font-28">是否携带小孩(单选)</text> |
|
|
|
|
|
<view class="lf-m-t-20"> |
|
|
|
|
|
<u-radio-group v-model="value" @change="radioGroupChange"> |
|
|
|
|
|
<u-radio |
|
|
|
|
|
@change="radioChange" |
|
|
|
|
|
v-for="(item, index) in radion_list" :key="index" |
|
|
|
|
|
:name="item.name" |
|
|
|
|
|
:disabled="item.disabled" |
|
|
|
|
|
> |
|
|
|
|
|
{{item.name}} |
|
|
|
|
|
</u-radio> |
|
|
|
|
|
</u-radio-group> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="padding-lr lf-m-b-40"> |
|
|
|
|
|
<text class="lf-color-555 lf-font-28">添加人选(多选)</text> |
|
|
|
|
|
<view class="lf-m-t-20"> |
|
|
|
|
|
<u-checkbox-group @change="checkboxGroupChange"> |
|
|
|
|
|
<u-checkbox |
|
|
|
|
|
@change="checkboxChange" |
|
|
|
|
|
v-model="item.checked" |
|
|
|
|
|
shape="circle" |
|
|
|
|
|
v-for="(item, index) in check_list" :key="index" |
|
|
|
|
|
:name="item.name" |
|
|
|
|
|
>{{item.name}}</u-checkbox> |
|
|
|
|
|
</u-checkbox-group> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="padding-lr lf-m-b-40"> |
|
|
|
|
|
<text class="lf-color-555 lf-font-28">多行文本(不超过300字)</text> |
|
|
|
|
|
<view class="lf-m-t-20"> |
|
|
|
|
|
<view class="cu-self menu" style="margin-top: 30rpx; position: relative;"> |
|
|
|
|
|
<textarea :cursor-spacing="120" maxlength="300" :adjust-position="true" type="text" v-model="applyInfo" style="background-color: #F8F8F8;border-radius: 20rpx;" class="text-left lf-font-28 area-self lf-w-100 lf-p-20" placeholder="请输入内容" /> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<view class="lf-flex-column lf-p-b-30 padding-lr"> |
|
|
|
|
|
<text class="lf-color-555 lf-font-28 lf-m-b-20">添加图片(最多三张)</text> |
|
|
|
|
|
<view class="grid col-3 grid-square flex-sub"> |
|
|
|
|
|
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="bg-img" v-for="(item,index) in img_list" :key="index" @tap="showImg(index)" :data-url="img_list[index]"> |
|
|
|
|
|
<image :src="img_list[index]" mode="aspectFill"></image> |
|
|
|
|
|
<view class="cu-tag bg-red" @tap.stop="DelImg(index)" :data-index="index"> |
|
|
|
|
|
<!-- <text class='cuIcon-close'></text> --> |
|
|
|
|
|
<text class="lf-iconfont lf-icon-cuowu lf-font-40 lf-color-price"></text> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="solids" @tap="ChooseImage" v-if="img_list.length<3"> |
|
|
|
|
|
<text class='cuIcon-cameraadd'></text> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<self-line/> |
|
|
<self-line/> |
|
|
<view class="lf-bg-white lf-p-t-30 lf-p-b-30 lf-p-l-32 lf-p-r-32"> |
|
|
<view class="lf-bg-white lf-p-t-30 lf-p-b-30 lf-p-l-32 lf-p-r-32"> |
|
|
@ -181,7 +234,43 @@ |
|
|
check_out_time: '', |
|
|
check_out_time: '', |
|
|
arrival_time: '', |
|
|
arrival_time: '', |
|
|
totalLive: '', |
|
|
totalLive: '', |
|
|
hotel_specid: [] |
|
|
|
|
|
|
|
|
hotel_specid: [], |
|
|
|
|
|
//单选框 |
|
|
|
|
|
radion_list: [ |
|
|
|
|
|
{ |
|
|
|
|
|
name: '是', |
|
|
|
|
|
disabled: false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: '否', |
|
|
|
|
|
disabled: false |
|
|
|
|
|
} |
|
|
|
|
|
], |
|
|
|
|
|
// u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中 |
|
|
|
|
|
value: 'orange', |
|
|
|
|
|
//多选框 |
|
|
|
|
|
check_list: [ |
|
|
|
|
|
{ |
|
|
|
|
|
name: 'apple', |
|
|
|
|
|
checked: false, |
|
|
|
|
|
disabled: false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: 'banner', |
|
|
|
|
|
checked: false, |
|
|
|
|
|
disabled: false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: 'orange', |
|
|
|
|
|
checked: false, |
|
|
|
|
|
disabled: false |
|
|
|
|
|
} |
|
|
|
|
|
], |
|
|
|
|
|
//多行文本 |
|
|
|
|
|
applyInfo: '', |
|
|
|
|
|
//图片上传 |
|
|
|
|
|
hostImg: '', |
|
|
|
|
|
img_list: [], // 反馈问题图片 |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
onLoad(e) { |
|
|
onLoad(e) { |
|
|
@ -230,6 +319,156 @@ |
|
|
uni.$off('payState'); |
|
|
uni.$off('payState'); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
checkImgInfo(tempFilePath, suc){ |
|
|
|
|
|
uni.getImageInfo({ |
|
|
|
|
|
src: tempFilePath, |
|
|
|
|
|
success (res) { |
|
|
|
|
|
let type = res.type; |
|
|
|
|
|
console.log('checkImgInfo...', type); |
|
|
|
|
|
if(type == 'png' || type == 'jpeg' || type == 'jpg'){ |
|
|
|
|
|
suc && suc(true); |
|
|
|
|
|
} else { |
|
|
|
|
|
suc && suc(false); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
fail(err) { |
|
|
|
|
|
suc && suc(false); |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 选择图片 |
|
|
|
|
|
ChooseImage(e) { |
|
|
|
|
|
let that = this; |
|
|
|
|
|
uni.chooseImage({ |
|
|
|
|
|
count: 1, |
|
|
|
|
|
sizeType: ['original'], // 可以指定是原图original还是压缩图compressed ,默认二者都有 |
|
|
|
|
|
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 |
|
|
|
|
|
success: res => { |
|
|
|
|
|
that.hostImg = res.tempFilePaths[0]; |
|
|
|
|
|
let tempFile = res.tempFiles.shift(); |
|
|
|
|
|
let tempFilePath = res.tempFilePaths.shift(); |
|
|
|
|
|
console.log('临时路径',res) |
|
|
|
|
|
that.checkImgInfo(tempFilePath, (res) => { |
|
|
|
|
|
// 过滤不是图片不是png、jpeg 格式 |
|
|
|
|
|
if(res){ |
|
|
|
|
|
if(tempFile.size > 10000000){ |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '', |
|
|
|
|
|
content: '您选择的图片过大:'+ (tempFile.size / 1024000).toFixed(2) +"M,请点击确定重新上传", |
|
|
|
|
|
success: res2 => { |
|
|
|
|
|
if(res2.confirm){ |
|
|
|
|
|
uni.chooseImage({ |
|
|
|
|
|
count: 1, |
|
|
|
|
|
sizeType: ['compressed'], |
|
|
|
|
|
sourceType: ['album', 'camera'], |
|
|
|
|
|
success: (res3) => { |
|
|
|
|
|
let tempFilePath = res3.tempFilePaths.shift(); |
|
|
|
|
|
that.is_wx_reduce = true; |
|
|
|
|
|
that.img_list.push(tempFilePath); |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} else{ |
|
|
|
|
|
that.img_list.push(tempFilePath); |
|
|
|
|
|
console.log('图片数组',that.img_list) |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '', |
|
|
|
|
|
content: '选择的图片须为jpg、jpeg或png格式', |
|
|
|
|
|
showCancel: false, |
|
|
|
|
|
confirmColor: '#1697EE' |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 上传图片到服务器 |
|
|
|
|
|
upload(url){ |
|
|
|
|
|
let that = this; |
|
|
|
|
|
let uploads = []; |
|
|
|
|
|
// 商品banner图上传 |
|
|
|
|
|
if (that.img_list.length > 0) { |
|
|
|
|
|
for (let i = 0; i < that.img_list.length; i++) { |
|
|
|
|
|
let upload_img = new Promise((resolve, reject) => { |
|
|
|
|
|
that.uploadFile(that.img_list[i], (res) => { |
|
|
|
|
|
resolve(res); |
|
|
|
|
|
}, (err) => { |
|
|
|
|
|
reject(err); |
|
|
|
|
|
}); |
|
|
|
|
|
}) |
|
|
|
|
|
uploads.push(upload_img); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(uploads.length == 0) { |
|
|
|
|
|
that.realSubmitInfo([]); |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
Promise.all(uploads).then((result) => { |
|
|
|
|
|
let img_url_list = []; |
|
|
|
|
|
if(result.length > 0){ |
|
|
|
|
|
img_url_list = result; |
|
|
|
|
|
} |
|
|
|
|
|
if(img_url_list) { |
|
|
|
|
|
that.realSubmitInfo(img_url_list); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
that.is_publish = false; // 恢复提交按钮 |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '', |
|
|
|
|
|
content: '图片上传失败,请重新提交', |
|
|
|
|
|
confirmColor: '#1697EE' |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 预览图片 |
|
|
|
|
|
showImg(index) { |
|
|
|
|
|
this.$u.throttle(() => { |
|
|
|
|
|
let goods_banner = this.img_list || []; |
|
|
|
|
|
let banners = goods_banner.map(item => item); |
|
|
|
|
|
uni.previewImage({ |
|
|
|
|
|
urls: banners, |
|
|
|
|
|
current: index |
|
|
|
|
|
}) |
|
|
|
|
|
}, 200); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 删除图片 |
|
|
|
|
|
DelImg(index) { |
|
|
|
|
|
uni.showModal({ |
|
|
|
|
|
title: '提示', |
|
|
|
|
|
content: '即将取消上传这张图片,请确认?', |
|
|
|
|
|
success: e => { |
|
|
|
|
|
if (!e.confirm) return; |
|
|
|
|
|
this.img_list.splice(index, 1); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
dynamicLength(){ |
|
|
|
|
|
return parseInt(this.applyInfo.length); |
|
|
|
|
|
}, |
|
|
|
|
|
//多选 |
|
|
|
|
|
checkboxGroupChange(e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
}, |
|
|
|
|
|
// 选中某个复选框时,由checkbox时触发 |
|
|
|
|
|
checkboxChange(e) { |
|
|
|
|
|
//console.log(e); |
|
|
|
|
|
}, |
|
|
|
|
|
//单选 |
|
|
|
|
|
radioChange(e) { |
|
|
|
|
|
// console.log(e); |
|
|
|
|
|
}, |
|
|
|
|
|
// 选中任一radio时,由radio-group触发 |
|
|
|
|
|
radioGroupChange(e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
}, |
|
|
computedAge() { |
|
|
computedAge() { |
|
|
this.$check(this.vertify_code,'card'); |
|
|
this.$check(this.vertify_code,'card'); |
|
|
let judge_sex = this.vertify_code[16]; |
|
|
let judge_sex = this.vertify_code[16]; |
|
|
@ -406,4 +645,11 @@ |
|
|
-webkit-line-clamp: 2; |
|
|
-webkit-line-clamp: 2; |
|
|
-webkit-box-orient: vertical; |
|
|
-webkit-box-orient: vertical; |
|
|
} |
|
|
} |
|
|
|
|
|
.font-change{ |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
right: 10rpx; |
|
|
|
|
|
bottom: 10rpx; |
|
|
|
|
|
width: max-content; |
|
|
|
|
|
color: #777777; |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |