Commit fa516890 authored by youjie's avatar youjie

酒店

parent 556e6e34
......@@ -4,7 +4,7 @@
style="background-color: #F3F1EF">
<view class="hotelAddress row justify-center">
<text>目的地</text>
<icon @click="sure" class="hotelClear" type="clear" size="20"/>
<icon @click="close" class="hotelClear" type="clear" size="20"/>
</view>
<!-- <view class="internationalBox row-sb-n">
<view class="internationalName"
......@@ -142,6 +142,9 @@ export default {
created() {
},
methods: {
close(){
this.$emit('close')
},
sure(){
this.$emit('sure',this.parameters)
},
......
......@@ -306,8 +306,17 @@
return mealtypeName;
},
goUrl(subItem){
let HotelInfo = {
hotelid: this.HotelInfo.hotelid,
name: this.HotelInfo.name,
location: this.HotelInfo.location,
address: this.HotelInfo.address,
destination: this.HotelInfo.destination,
country: this.HotelInfo.country,
images: this.HotelInfo.images,
}
uni.navigateTo({
url: `/pages/hotel/order?searchObj=${JSON.stringify(this.searchObj)}&dayObj=${JSON.stringify(this.dayObj)}&HotelInfo=${JSON.stringify(this.HotelInfo)}&RoomInfo=${JSON.stringify(subItem)}`,
url: `/pages/hotel/order?searchObj=${JSON.stringify(this.searchObj)}&dayObj=${JSON.stringify(this.dayObj)}&HotelInfo=${JSON.stringify(HotelInfo)}&RoomInfo=${JSON.stringify(subItem)}`,
});
},
openPicture(item) {
......
<template>
<view class="hotel-list-search">
<view class="row items-center" style="padding: 12rpx 0;">
<view class="row items-center" style="padding: 12rpx 0 0 0;">
<view class="search-box" style="width: 1px;flex: 1;">
<view class="hotel-city" @click="showCity">
<!-- <u-icon name="location" :size="24" color="#000000" style="margin-right: 8rpx"></u-icon> -->
......@@ -35,6 +35,7 @@
active-color="#B99846"
inactive-color="#080A09"
title-size="28"
@open="open" @close="close"
>
<u-dropdown-item
v-model="parameters.QOrderBy"
......@@ -229,6 +230,7 @@
<destination :msg="parameters"
@sure="sureAddress"
@searchCity="clickSearchCity"
@close="closeAddress"
:PopularCities="PopularCities"></destination>
</u-popup>
......@@ -344,7 +346,30 @@
msg: {
handler (val, oldval) {
if(val){
this.parameters.KeyWords = val.KeyWords
// this.parameters.KeyWords = val.KeyWords
this.parameters = {
...val
}
if(val.QOrderBy){
let list = this.options1.filter(x=>{
return x.value==val.QOrderBy
})
this.optionsTitle[0] = list[0].label
}
if(val.CityName_CN){
this.optionsTitle[1] = val.CityName_CN
}
if(val.QStarRating.length>0){
let num = 0
if(val.QStarRating.length>0) num++
if(val.priceId) num++
this.optionsTitle[2] = `价格/星级 ${num}`;
}
if(val.CityName){
this.city = val.CityName
this.parameters.CityCode = val.CityCode
this.parameters.CityCode2 = val.CityCode2
}
}
},
deep: true,
......@@ -357,38 +382,46 @@
uni.setNavigationBarTitle({
title: "酒店",
});
let d1 = new Date();
let d = new Date();
let d2 = new Date(d.setDate(d.getDate() + 1));
let startWeek = "周" + "日一二三四五六".charAt(new Date().getDay());
let endWeek = "周" + "日一二三四五六".charAt(new Date().getDay() + 1);
let month1 = d1.getMonth() + 1;
let day1 = d1.getDate();
let Month1 = month1>9?month1:'0'+month1;
let Day1 = day1>9?day1:'0'+day1;
let month2 = d2.getMonth() + 1;
let day2 = d2.getDate();
let Month2 = month2>9?month2:'0'+month2;
let Day2 = day2>9?day2:'0'+day2;
var obj = {
start: `${d1.getFullYear()}-${Month1}-${Day1}`,
end: `${d2.getFullYear()}-${Month2}-${Day2}`,
startDay: `${Month1}-${Day1}`,
endDay: `${Month2}-${Day2}`,
day: 1,
startWeek: startWeek,
endWeek: endWeek,
};
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.dayObj = obj
if(!this.day){
let d1 = new Date();
let d = new Date();
let d2 = new Date(d.setDate(d.getDate() + 1));
let startWeek = "周" + "日一二三四五六".charAt(new Date().getDay());
let endWeek = "周" + "日一二三四五六".charAt(new Date().getDay() + 1);
let month1 = d1.getMonth() + 1;
let day1 = d1.getDate();
let Month1 = month1>9?month1:'0'+month1;
let Day1 = day1>9?day1:'0'+day1;
let month2 = d2.getMonth() + 1;
let day2 = d2.getDate();
let Month2 = month2>9?month2:'0'+month2;
let Day2 = day2>9?day2:'0'+day2;
var obj = {
start: `${d1.getFullYear()}-${Month1}-${Day1}`,
end: `${d2.getFullYear()}-${Month2}-${Day2}`,
startDay: `${Month1}-${Day1}`,
endDay: `${Month2}-${Day2}`,
day: 1,
startWeek: startWeek,
endWeek: endWeek,
};
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.dayObj = obj
}
this.getCity()
this.getSearchCondition()
// this.getLocation()
},
methods: {
open(index) {
this.$refs.uDropdown.highlight();
},
close(index) {
this.$refs.uDropdown.highlight(index);
},
FilterArea(){
if(this.regionKeyWords!=''){
this.regionList = this.regionListAll.filter((item)=>{
......@@ -451,6 +484,9 @@
}
});
},
closeAddress(){
this.showCityList = false
},
sureAddress(msg){
this.showCityList = false;
if(this.parameters.CityCode2!=msg.CityCode2){
......@@ -516,6 +552,7 @@
obj.progressBarWidth = obj._getMaxLength();
obj.minBlockLeft = 0;
obj.maxBlockLeft = obj._getMaxLength();
this.parameters.priceId = 0
this.tempRateAndPrice.priceId = 0
this.tempRateAndPrice = {
price: {
......@@ -541,6 +578,7 @@
changePrice(item) {
this.parameters.StartPrice = item.minPrice?item.minPrice:100;
this.parameters.EndPrice = item.maxPrice;
this.parameters.priceId = item.priceId
this.tempRateAndPrice.priceText = item.Name;
this.tempRateAndPrice.price = [item.minPrice?item.minPrice:100,item.maxPrice]
this.tempRateAndPrice.priceId = item.priceId
......@@ -626,18 +664,22 @@
this.apipost('dmc_post_B2BAndB2CGetHotCity',{},
(res) => {
if (res.resultCode == 1) {
this.PopularCities = res.data
this.parameters.GName = this.PopularCities[0].GName
this.cityList = this.PopularCities[0].CityList
this.parameters.GName = this.PopularCities[0].GName
this.parameters.CityCode = this.PopularCities[0].CityList[0].CityCode
this.parameters.CityCode2 = this.PopularCities[0].CityList[0].CityCode
this.city = this.parameters.CityName = this.PopularCities[0].CityList[0].CityName
this.getRegion()
if(res.data.length>0){
this.PopularCities = res.data
this.cityList = this.PopularCities[0].CityList
if(!this.parameters.CityCode2){
this.parameters.GName = this.PopularCities[0].GName
this.parameters.CityCode = this.PopularCities[0].CityList[0].CityCode
this.parameters.CityCode2 = this.PopularCities[0].CityList[0].CityCode
this.city = this.parameters.CityName = this.PopularCities[0].CityList[0].CityName
}
this.getRegion()
}
this.research()
}
},
(err) => {}
(err) => {
}
);
},
// 区域
......@@ -658,7 +700,7 @@
goMapHotel(){
this.closeDropdown()
uni.navigateTo({
url: "/pages/hotel/mapList"
url: `/pages/hotel/mapList?msg=${encodeURIComponent(JSON.stringify(this.parameters))}?dayObj=${JSON.stringify(this.dayObj)}`
});
}
},
......
......@@ -241,7 +241,7 @@
:qRoomType="qRoomTypeList"
:qMealType="qMealTypeList"></hotelRoom>
</view>
<u-empty v-show="getQueryData.length==0" text="暂无相关房间" mode="data" padding-top="5"></u-empty>
<u-empty v-show="getQueryData.length==0" text="暂无房间" mode="data" padding-top="5"></u-empty>
</view>
<view style="border-radius: 15rpx 15rpx 0 0;background: #fff;overflow: hidden;">
<view class="hotelFacilitiesBox">
......@@ -529,13 +529,9 @@ export default {
},
methods: {
open(index) {
// 展开某个下来菜单时,先关闭原来的其他菜单的高亮
// 同时内部会自动给当前展开项进行高亮
this.$refs.uDropdown.highlight();
},
close(index) {
// 关闭的时候,给当前项加上高亮
// 当然,您也可以通过监听dropdown-item的@change事件进行处理
this.$refs.uDropdown.highlight(index);
},
changeType(item,type){
......@@ -1620,11 +1616,11 @@ export default {
padding: 0 30rpx;
}
.hotelComprehensiv{
height: 78rpx;
line-height: 70rpx;
min-height: 50rpx;
font-size: 28rpx;
color: #080A09;
color: #080A09;
justify-content: space-between;
padding-bottom: 20rpx;
}
.hotelComprehensiv.active{
color: #B99846;
......
......@@ -2,7 +2,9 @@
<view class="hotel-list column" style="background: #F3F1EF;">
<view class="hotel-listHeader">
<hotelHeaders :title="pageTitle"></hotelHeaders>
<hotelSearch @change="change"
<hotelSearch
:msg="searchObj"
@change="change"
@getItem="getItem"></hotelSearch>
</view>
<view style="height: 1px;flex: 1;overflow: hidden;position: relative;">
......@@ -11,6 +13,8 @@
:longitude="center.longitude"
:latitude="center.latitude"
:markers="markers"
:include-points="includePoints"
:padding="padding"
@callouttap="handleCalloutClick"
>
</map>
......@@ -59,16 +63,7 @@
searchObj: {
pageIndex: 1,
pageSize: 15,
Name: "", //关键字
// StartPrice: 0,
// EndPrice: 1000,
QStartDate: "",
QEndDate: "",
// OrderByType: "1", //排序类型
// QStars: "", //星级
TagList: [], //查询标签
// City: 262, //市
// District: 0, //区
KeyWords: "", //关键字
},
day: 0,
startDay: "",
......@@ -90,30 +85,29 @@
dayObj: {},
mc: '',
center: { longitude: 116.397428, latitude: 39.90923 },
markers: [
{
id: 1,
latitude: 39.909,
longitude: 116.39742,
iconPath: '',
title: '',
alpha: 0,
callout:{
content:'¥ 99999起',
bgColor: '#FF3166',
borderWidth: 1,
borderColor: '#E2D5D2',
color: '#fff',
fontSize: '12px',
fontWeight: 'bold',
anchorX: 0,
anchorY: 0,
borderRadius: 7,
padding: 5,
display: 'ALWAYS',
},
},
],
markers: [],
markersObj:{
id: 1,
latitude: 39.909,
longitude: 116.39742,
iconPath: '',
title: '',
alpha: 0,
callout:{
content:'¥ 99999起',
bgColor: '#FF3166',
borderWidth: 1,
borderColor: '#E2D5D2',
color: '#fff',
fontSize: '12px',
fontWeight: 'bold',
anchorX: 0,
anchorY: 0,
borderRadius: 7,
padding: 5,
display: 'ALWAYS',
},
},
bubble:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638761641584224459.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638761646347047352.png',
......@@ -152,6 +146,7 @@
prevCurrent: null,
current: 0,
nextCurrent: null,
padding: [20, 50, 20, 50],
};
},
components: {
......@@ -167,6 +162,20 @@
if (options && options.Name) {
this.searchObj.Name = options.Name;
}
if (options && options.msg) {
this.searchObj = {
...this.searchObj,
...JSON.parse(decodeURIComponent(options.msg))
};
console.log(JSON.parse(decodeURIComponent(options.msg)),'--------')
this.pageTitle = this.searchObj.CityName
}
if(options && options.dayObj){
this.dayObj = JSON.parse(options.dayObj)
this.startDay = this.dayObj.startDay;
this.endDay = this.dayObj.endDay;
this.day = this.dayObj.day;
}
},
created() {
uni.setNavigationBarTitle({
......@@ -194,6 +203,8 @@
day: 1,
startWeek: startWeek,
endWeek: endWeek,
startTime: `${d1.getFullYear()}-${Month1}-${Day1}`,
endTime: `${d1.getFullYear()}-${Month2}-${Day2}`
};
this.dayObj = obj;
uni.setStorage({
......@@ -205,11 +216,13 @@
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.getList();
// this.getLocation()
},
methods: {
getItem(obj) {
getItem(parameters,obj) {
this.searchObj = {
...this.searchObj,
...parameters
}
this.dayObj = {
...obj,
startTime: `${obj.year}-${obj.startDay}`,
......@@ -218,19 +231,45 @@
},
handleCalloutClick(marker) {
console.log('点击了标记:', marker.detail);
// 可自定义弹窗逻辑或跳转页面
this.current = marker.detail.markerId-1
console.log(this.current,'----')
this.setNewMarkers()
},
setNewMarkers(){
for (let i = 0; i < this.markers.length; i++) {
if(i==this.current){
this.center = {
longitude: this.markers[i].longitude,
latitude: this.markers[i].latitude,
}
this.markers[this.current] ={
...this.markers[i],
callout:{
...this.markers[i].callout,
...this.editCallout1,
}
}
}else{
this.markers[i] ={
...this.markers[i],
callout:{
...this.markers[i].callout,
...this.editCallout2,
}
}
}
}
this.$forceUpdate()
},
getLocation() {
wx.getLocation({
type: 'wgs84', // 精度模式
success: (res) => {
this.longitude = res.longitude;
this.latitude = res.latitude;
// 更新地图中心点
this.$refs.map.moveToLocation({
longitude: res.longitude,
latitude: res.latitude
});
if(this.$refs.map)this.$refs.map.moveToLocation({
longitude: res.longitude,
latitude: res.latitude
});
},
fail: (err) => {
console.error('定位失败', err);
......@@ -244,6 +283,8 @@
changeCurrent(e) {
this.prevCurrent = this.current
this.current = e.detail.current;
this.setNewMarkers()
let length = this.HotelList.length
if((length-1)==this.current){
this.nextCurrent = 0
......@@ -268,25 +309,31 @@
...this.searchObj,
...item,
}
if(item.CityName) this.pageTitle = item.CityName
this.research();
},
//获取列表数据
getList(type) {
if(this.showLoading) return
this.showLoading = true
uni.showLoading({ title: "加载中" , mask: true});
this.searchObj.QStars = this.tempRateAndPrice.rate.toString();
if (type == 1) {
this.HotelList = [];
}
this.request2({
url: "/api/Hotel/AppGetHotelPage",
data: this.searchObj,
},
this.markers = []
this.includePoints = []
this.apipost( "dmc_post_B2BAndB2CGetDidaHotelPage", this.searchObj,
(res) => {
if (res.resultCode == 1) {
this.showLoading = false
uni.hideLoading()
if (this.searchObj.pageIndex === 1) {
this.HotelList = res.data.pageData;
} else {
this.HotelList = this.HotelList.concat(res.data.pageData);
}
this.setMarkers()
let length = this.HotelList.length
this.prevCurrent = length-1
if((length-1)==this.current){
......@@ -294,9 +341,57 @@
}else this.nextCurrent = this.current+1
this.page_count = res.data.pageCount;
}
},
(err) => {
this.showLoading = false
uni.hideLoading()
}
);
},
includePoints(){
let list = []
for (let i = 0; i < pageData.length; i++) {
list.push({
latitude: pageData[i].latitude,
longitude: pageData[i].longitude,
})
}
return list
},
setMarkers(){
let pageData = this.HotelList
if(pageData.length==0)return
for (let i = 0; i < pageData.length; i++) {
this.includePoints.push({
latitude: pageData[i].latitude,
longitude: pageData[i].longitude,
})
let obj = JSON.parse(JSON.stringify(this.markersObj))
obj = {
...obj,
id: i+1,
latitude: pageData[i].latitude,
longitude: pageData[i].longitude,
callout:{
...obj.callout,
content: `CNY ${pageData[i].unitprice}起`,
...this.editCallout2
}
}
if(i==0){
obj.callout = {
...obj.callout,
...this.editCallout1
}
this.center = {
longitude: pageData[0].longitude,
latitude: pageData[0].latitude,
}
}
this.markers.push(obj)
}
this.$forceUpdate()
}
},
};
</script>
......
......@@ -42,10 +42,10 @@
<view class="row col" style="width:1px;flex: 1;">
<view class="visaProduct_rColor visaProductTextL">*</view>
<view class="visaProductTitle">订房信息</view>
<view v-if="tipsText" class="row visaProduct_rColor visaProductTextR items-center">
<!-- <view v-if="tipsText" class="row visaProduct_rColor visaProductTextR items-center">
<view>{{tipsText}}</view>
<img style="width: 19rpx;height: 19rpx;margin-left: 5rpx;" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638751271514841634.png"/>
</view>
</view> -->
</view>
<view class="row-sbas-n items-center">
<view class="addPnum addPnumL" @click="orderMsg.RoomCount>1?editNum(1):''">
......@@ -106,20 +106,20 @@
<view class="val">
<input type="text" v-model="orderMsg.guestPhoneNumber" placeholder="输入电话号码" />
</view>
</view>
<!--<view class="form-items">
<view class="label">预计到店</view>
<view class="val flex form-itemsTime" @click="showtime=true">
<view style="flex: 1;" class="f14">{{orderMsg.ArrivalTime}} 房间整晚保留</view>
<u-icon name="arrow" color="#D9D9D9" size="20" />
</view>
</view>-->
</view>
<view class="form-items">
<view class="label">E-mail</view>
<view class="val">
<input type="text" v-model="orderMsg.guestEmail" placeholder="用于接收信息" />
</view>
</view>
<view class="form-items">
<view class="label">预计到店</view>
<view class="val flex form-itemsTime" @click="showtime=true">
<view style="flex: 1;" class="f14">{{orderMsg.ArrivalTime}} 房间整晚保留</view>
<u-icon name="arrow" color="#D9D9D9" size="20" />
</view>
</view>
</view>
</view>
<view class="CouponBox">
......@@ -232,7 +232,7 @@
<text>{{ (getPrice(orderMsg.TotalPrice)*orderMsg.RoomCount)-currentCoupon.discountMoney }}</text>
</view>
<view class="sum-detail">共计 {{orderMsg.RoomCount}}间房</view>
<u-button :ripple="true" :hair-line="false" :custom-style="btnStyle" @click="buyRoom" :loading="submit">立即购买</u-button>
<u-button :ripple="true" :hair-line="false" :custom-style="submit?btnStyle2:btnStyle" @click="buyRoom" :loading="submit">立即购买</u-button>
</view>
</view>
<u-picker v-model="showtime" mode="time" @confirm='confirm' :params="paramsTime" :default-time='orderMsg.ArrivalTime'></u-picker>
......@@ -240,9 +240,9 @@
<u-picker mode="selector" v-model="showCountry" :default-selector="[0]"
:range="countrys" @confirm='(e)=>{changeDown(e,CountryType)}'
range-key="label" @input="showCountry=false"></u-picker>
<coupon v-if="couponList.length > 0 && showCoupon" :price="price"
<coupon v-if="couponList.length > 0 && showCoupon" :price="getPrice(orderMsg.TotalPrice)"
:list="couponList" :current="useCouponIds" @close="closeCouponHandler"
:current-price="realCurrentPriceInfo" :order="orderMsg"
:order="orderMsg"
:numberPeople="searchObj.peoples"></coupon>
</view>
</template>
......@@ -255,10 +255,6 @@ import coupon from '@/components/coupon/index';
},
data() {
return {
order: {
roomCount:1,
userName:''
},
btnStyle:{
height:"80rpx",
lineHeight:"80rpx",
......@@ -269,6 +265,16 @@ import coupon from '@/components/coupon/index';
fontWeight:"600",
width:'193rpx',
},
btnStyle2:{
height:"80rpx",
lineHeight:"80rpx",
borderRadius:"16rpx",
background:"#eee",
color:"#000",
fontSize:"28rpx",
fontWeight:"600",
width:'193rpx',
},
RoomInfo:{},
dayObj:{},
HotelInfo:{},
......@@ -281,7 +287,7 @@ import coupon from '@/components/coupon/index';
// Final_Price:'',
// Consignee:'', //联系人
// ConsigneeMobile:'', //;联系电话
// ArrivalTime:'14:00', //预计到达时间
ArrivalTime:'14:00', //预计到达时间
EmployeeIdStr: "",//销售id
CheckInDate: "",//到店时间
......@@ -321,9 +327,7 @@ import coupon from '@/components/coupon/index';
countrys:[],
couponList: [],
showCoupon: false,
price: 0,
useCouponIds: [],
realCurrentPriceInfo: {},
currentCoupon: {
discountMoney: 0
},
......@@ -368,6 +372,7 @@ import coupon from '@/components/coupon/index';
this.HotelInfo = JSON.parse(options.HotelInfo)
console.log(this.HotelInfo,'-----------HotelInfo')
this.orderMsg.hotelId = this.HotelInfo.hotelid;
this.orderMsg.HotelName = this.HotelInfo.name
}
if(options.RoomInfo){
this.RoomInfo = JSON.parse(options.RoomInfo)
......@@ -384,7 +389,7 @@ import coupon from '@/components/coupon/index';
console.log(this.RoomInfo,'-----------RoomInfo')
this.orderMsg.RatePlanID = this.RoomInfo.RatePlanID
this.orderMsg.TotalPrice = this.getPrice(this.RoomInfo.TotalPrice);
// this.orderMsg.TotalPrice = this.getPrice(this.RoomInfo.TotalPrice);
this.orderMsg.CheckInDate = this.dayObj.start;
this.orderMsg.CheckOutDate = this.dayObj.end;
......@@ -411,7 +416,6 @@ import coupon from '@/components/coupon/index';
};
this.orderMsg.GuestList.push(obj);
});
console.log(this.orderMsg.GuestList)
this.params = {
sort: 1,
displayFrom: 1,
......@@ -426,11 +430,100 @@ import coupon from '@/components/coupon/index';
OccupancyDetails: [],
hotelId: this.orderMsg.hotelId
}
this.getUserCouponList()
this.CalTotalPrice();
this.GetCountryInfo()
this.initHotel()
},
methods:{
submitB2COrderHandler(OrderId) {
let userInfo = uni.getStorageSync("mall_UserInfo");
let guestInfo = `成人x${this.searchObj.adultsNumber}; `;
if (this.orderMsg.ChirdNeedBedNum > 0) {
guestInfo += `儿童${this.searchObj.childrenNumberZC}; `;
}
let msg = {
SurName: this.customer.SurName,
Name: this.customer.name,
ContactNumber: this.orderMsg.guestPhoneNumber,
Mailbox: this.orderMsg.guestEmail,
GoodsId: this.orderMsg.RatePlanID,
GoodsName: this.HotelInfo.name,
GoodsPic: this.HotelInfo.images[0].Path,
GoodsType: 9,
OrderMake: `${this.orderMsg.CheckInDate}入住;${this.orderMsg.CheckOutDate}离店 ${guestInfo}`,
TotalPrice: this.getPrice(this.orderMsg.TotalPrice),
PreferentialPrice: this.currentCoupon.discountMoney,
ErpOrderId: OrderId,
Country: 0,
PlatformTax: 0,
Income: 0,
Refund: 0,
MallBaseId: userInfo.MallBaseId,
CreateBy:0
};
// #ifdef MP-DI
if(this.customer.salesBaseInfo&&this.customer.salesBaseInfo.employeeId){
msg.CreateBy = this.customer.salesBaseInfo.employeeId
}
// #endif
this.apipost("AddOrderInfo_post", msg, (res) => {
if (res.resultCode == 1) {
this.orderInfo =JSON.parse(res.data.sPayInfo)
uni.showToast({
icon: 'none',
title: '订单创建成功'
})
this.goPayHandler(res.data.OrderNo);
} else {
uni.showToast({
title:res.message,
icon:'none',
duration:3000
})
this.submit = false;
}
});
},
goPayHandler(OrderNo) {
let that = this;
uni.requestPayment({
provider: "wxpay",
timeStamp: this.orderInfo.timeStamp,
nonceStr: this.orderInfo.nonceStr,
package: this.orderInfo.package,
signType: this.orderInfo.signType,
paySign: this.orderInfo.sign,
success: function(res) {
console.log("success", res);
that.submit = false;
uni.showToast({
title: "支付成功",
});
setTimeout(() => {
uni.redirectTo({
url: "/pages/jiuzhai/paysuccess?PreferPrice=" +
(that.getPrice(that.orderMsg.TotalPrice)-that.currentCoupon.discountMoney).toFixed(2) +
"&isFrom=5",
});
}, 100);
},
fail: function(err) {
console.log("fail:", err);
that.submit = true;
uni.showToast({
title: "支付失败",
icon: "none",
});
setTimeout(() => {
uni.redirectTo({
url: "/pages/hotel/orderdetails?OrderNo=" + OrderNo,
});
}, 100);
},
});
},
//日期格式化
getformatDateStr(value) {
var dt = new Date(value);
......@@ -456,9 +549,8 @@ import coupon from '@/components/coupon/index';
this.roomRateDetails = res.data.PriceDetails.HotelList[0];
this.orderMsg.BookingID = res.data.PriceDetails.ReferenceNo;
this.orderMsg.checkInTime = res.data.PriceDetails.CheckInDate;
this.orderMsg.HotelName = this.HotelInfo.HotelName
// this.orderMsg.TotalPrice = this.getPrice(this.roomRateDetails.TotalPrice);
this.orderMsg.TotalPrice = this.getPrice(this.roomRateDetails.TotalPrice);
if(this.roomRateDetails.RatePlanList&&this.roomRateDetails.RatePlanList.length>0){
this.orderMsg.roomType = this.roomRateDetails.RatePlanList[0].BedType
......@@ -474,6 +566,9 @@ import coupon from '@/components/coupon/index';
this.dataList.HotelList = arr;
}
}
},err=>{
uni.hideLoading();
this.submit = false;
});
},
getPrice(price) {
......@@ -540,9 +635,14 @@ import coupon from '@/components/coupon/index';
"lineId": '', //线路ID
"lineteamId": 0, //系列ID
"userId": this.customer.accountId,
"CouponsUseScope": 11, //特定使用平台(当地游=8 跟团游=2 小包团=10)
"CouponsUseScope": 9, //酒店
"isExpansion": 0, //是否启动膨胀金1-是
// #ifdef MP-DI
"CustomerType": 1, //客户类型 0-同行,1-直客
// #endif
// #ifdef MP-AG
"CustomerType": 0, //客户类型 0-同行,1-直客
// #endif
"TCID": '',
}
this.apipost(
......@@ -620,6 +720,7 @@ import coupon from '@/components/coupon/index';
]
})
}
this.searchObj.rooms = this.orderMsg.GuestList.length
this.CalTotalPrice();
},
getDate(date){
......@@ -721,94 +822,7 @@ import coupon from '@/components/coupon/index';
}
);
},
submitB2COrderHandler(OrderId) {
let userInfo = uni.getStorageSync("mall_UserInfo");
let guestInfo = `成人x${this.searchObj.adultsNumber}; `;
if (this.orderMsg.ChirdNeedBedNum > 0) {
guestInfo += `儿童${this.searchObj.childrenNumberZC}; `;
}
let msg = {
SurName: this.customer.SurName,
Name: this.customer.name,
ContactNumber: this.orderMsg.guestPhoneNumber,
Mailbox: this.orderMsg.guestEmail,
GoodsId: this.orderMsg.RatePlanID,
GoodsName: this.HotelInfo.name,
GoodsPic: this.HotelInfo.images[0].Path,
GoodsType: 9,
OrderMake: `${this.orderMsg.CheckInDate}入住;${this.orderMsg.CheckOutDate}离店 ${guestInfo}`,
TotalPrice: this.getPrice(this.orderMsg.TotalPrice),
PreferentialPrice: this.currentCoupon.discountMoney,
ErpOrderId: OrderId,
Country: 0,
PlatformTax: 0,
Income: 0,
Refund: 0,
MallBaseId: userInfo.MallBaseId,
CreateBy:0
};
// #ifdef MP-DI
if(this.customer.salesBaseInfo&&this.customer.salesBaseInfo.employeeId){
msg.CreateBy = this.customer.salesBaseInfo.employeeId
}
// #endif
this.apipost("AddOrderInfo_post", msg, (res) => {
if (res.resultCode == 1) {
this.orderInfo =JSON.parse(res.data.sPayInfo)
uni.showToast({
icon: 'none',
title: '订单创建成功'
})
this.goPayHandler(res.data.OrderNo);
} else {
uni.showToast({
title:res.message,
icon:'none',
duration:3000
})
this.submit = false;
}
});
},
goPayHandler(OrderNo) {
let that = this;
uni.requestPayment({
provider: "wxpay",
timeStamp: this.orderInfo.timeStamp,
nonceStr: this.orderInfo.nonceStr,
package: this.orderInfo.package,
signType: this.orderInfo.signType,
paySign: this.orderInfo.sign,
success: function(res) {
console.log("success", res);
that.submit = false;
uni.showToast({
title: "支付成功",
});
setTimeout(() => {
uni.redirectTo({
url: "/pages/jiuzhai/paysuccess?PreferPrice=" +
(that.getPrice(that.orderMsg.TotalPrice)-that.currentCoupon.discountMoney).toFixed(2) +
"&isFrom=5",
});
}, 100);
},
fail: function(err) {
console.log("fail:", err);
that.submit = false;
uni.showToast({
title: "支付失败",
icon: "none",
});
setTimeout(() => {
uni.redirectTo({
url: "/pages/jiuzhai/jz_SureOrder?OrderNo=" + OrderNo,
});
}, 100);
},
});
},
}
}
</script>
......@@ -984,7 +998,8 @@ import coupon from '@/components/coupon/index';
.hotel-order .o-head .room-remark{
font-weight: 500;
font-size: 28rpx;
color: #1D1D20
color: #1D1D20;
flex-shrink: 0;
}
.hotel-order .o-head .rule{
font-size: 22rpx;
......@@ -1041,6 +1056,7 @@ import coupon from '@/components/coupon/index';
font-weight: 500;
font-size: 28rpx;
color: #1D1D20;
flex-shrink: 0;
}
.visaProductTextBox{
padding: 29rpx 0 21rpx 0;
......
......@@ -213,9 +213,6 @@
active: 1,
islike: false,
nearbyType: 0,
searchObj: {
date: {},
},
roomMsg: {
HotelId: 0,
StartDate: "",
......
......@@ -44,7 +44,7 @@
style="width: 14rpx;height: 68rpx;"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638766174213789755.png"/>
</view>
<view class="orderIforRzTime column">
<view class="orderIforRzTime column col">
<view>入住:<text>2月25日 周二 14:00后</text></view>
<view style="margin-top: 28rpx;">离店:<text>2月28日 周五 12:00前</text></view>
</view>
......@@ -74,7 +74,7 @@
style="flex: 1; margin-left: 30rpx; text-align: left"
class="name-ali"
>
{{ dataList.HotelName }}
酒店名称
</view
>
</view>
......@@ -140,170 +140,24 @@
<u-button :ripple="true" :hair-line="false" :custom-style="btnStyle" @click="buyRoom">立即购买</u-button>
</view>
</view>
<u-popup
v-model="showTimePopup"
mode="bottom"
border-radius="20"
length="85%"
:safe-area-inset-bottom="true"
>
<view style="
width: 100%;
height: 100%;
display: flex;
flex-direction: column;">
<view style="flex: 1; width: 100%; height: 1rpx">
<canlendar @finish="chosenDateResult" title="日期和人数"></canlendar>
</view>
<view style="background: #ecf1f4; padding: 20rpx 0;margin-bottom: 80rpx;">
<view class="row line-flex" style="padding: 30rpx; background: #fff">
<text style="font-size: 28rpx; color: #111; font-weight: 500">房间</text>
<text style="
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"></text>
<u-number-box size="28" :min="1" :max="100000" v-model="searchObj.rooms"></u-number-box>
</view>
<view class="row line-flex" style="padding: 30rpx; background: #fff">
<text style="font-size: 28rpx; color: #111; font-weight: 500">成人</text>
<text style="
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
">18周岁以上</text>
<u-number-box size="28" :min="1"
:max="100000"
v-model="searchObj.adultsNumber"
@change="crChange"></u-number-box>
</view>
<view class="row line-flex" style="padding: 30rpx; background: #fff">
<text style="font-size: 28rpx; color: #111; font-weight: 500">儿童(占床)</text>
<text style="
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
">2-18周岁(不含)</text>
<u-number-box size="28" :min="0" :max="100000"
v-model="searchObj.childrenNumberZC"
@change="etChange"
></u-number-box>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
import roomGood from "./components/room-good.vue";
import nearGood from "./components/near-good.vue";
import recommedHotel from "./components/recommed-hotel.vue";
import canlendar from "./components/time/index.vue";
import hotelRoom from "./components/hotelRoom.vue";
import hotelInfor from "./components/hotelInfor.vue";
import hotelPolicy from "./components/hotelPolicy.vue";
import hotelFacilities from "./components/hotelFacilities.vue";
export default {
components: {
roomGood,
nearGood,
recommedHotel,
canlendar,
hotelInfor,
hotelPolicy,
hotelFacilities,
hotelRoom,
},
data() {
return {
imgsList: [],
id: 0,
typeList: [
{
Id: 0,
Name: "视频",
},
{
Id: 1,
Name: "图片",
},
],
boxOption: 0,
titleStyle: {
opacity: 0,
},
mainColor: "",
showTimePopup: false,
controls: false,
videoUrl: "https://video.c-ctrip.com/videos/230i1r000001hxb2mEEE4.mp4",
active: 1,
islike: false,
nearbyType: 0,
searchObj: {
date: {},
},
roomMsg: {
HotelId: 0,
StartDate: "",
EndDate: "",
},
day: 0,
threeLevelList: [
{
name: "单人床",
id: 1,
isCheck: 0,
},
{
name: "大床房",
id: 2,
isCheck: 0,
},
{
name: "双床房",
id: 3,
isCheck: 0,
},
{
name: "含早餐",
id: 4,
isCheck: 0,
},
{
name: "可取消",
id: 5,
isCheck: 0,
},
],
RoomList: [], //可过滤房间
dataList: {}, //数据
isShowAll: false, //显示全部
HotelArr: [], //推荐酒店
searchObj: {},
dayObj: {},
hotelData: {}, //传递到房间预订组件
startDay: "",
endDay: "",
Up: 0,
StarImgs: [
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel3stars.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel4stars.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel5stars.png',
],
openImg:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498946531.png',
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498917358.png'
],
optionsTitle: ["房型", "床型", "餐食"],
hotelFacilities: [
{Name: '酒店信息',ID:1,val:'hotelInfor',top:0,},
{Name: '酒店政策',ID:2,val:'hotelPolicy',top:0,},
{Name: '设施服务',ID:3,val:'hotelFacilities',top:0,},
],
current: 1,
scrollTop: 100,
old:{
......@@ -333,7 +187,6 @@
},
onLoad(options) {
this.id = options.id;
this.roomMsg.HotelId = options.id;
let that = this;
uni.getSystemInfo({
success(res) {
......@@ -345,97 +198,52 @@
},
});
this.mainColor = this.$uiConfig.mainColor;
if (options.dayObj) {
var tempDay = JSON.parse(options.dayObj);
this.roomMsg.StartDate = tempDay.start;
this.roomMsg.EndDate = tempDay.end;
this.startDay = tempDay.startDay;
this.endDay = tempDay.endDay;
this.day = tempDay.day;
this.dayObj = tempDay;
} else {
let d1 = new Date();
let d = new Date();
let d2 = new Date(d.setDate(d.getDate() + 1));
let startWeek = "周" + "日一二三四五六".charAt(new Date().getDay());
let endWeek = "周" + "日一二三四五六".charAt(new Date().getDay() + 1);
let month1 = d1.getMonth() + 1;
let day1 = d1.getDate();
let Month1 = month1>9?month1:'0'+month1;
let Day1 = day1>9?day1:'0'+day1;
let month2 = d2.getMonth() + 1;
let day2 = d2.getDate();
let Month2 = month2>9?month2:'0'+month2;
let Day2 = day2>9?day2:'0'+day2;
var obj = {
start: `${d1.getFullYear()}-${Month1}-${Day1}`,
end: `${d2.getFullYear()}-${Month2}-${Day2}`,
startDay: `${Month1}-${Day1}`,
endDay: `${Month2}-${Day2}`,
day: 1,
startWeek: startWeek,
endWeek: endWeek,
};
this.roomMsg.StartDate = obj.start;
this.roomMsg.EndDate = obj.end;
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.dayObj = obj;
}
if (this.id > 0) {
this.getHotelDetail(this.id);
}
if (options.searchObj) {
this.searchObj = JSON.parse(options.searchObj);
}
this.getRecomHotel();
if(this.id) this.getOrderDetail(this.id);
},
methods: {
//立即购买
buyRoom(){
let that = this;
if (that.orderMsg.Consignee == '') {
this.$refs.uToast.show({
title: '请输入住客姓名!',
type: 'warning'
});
return;
}
if (that.orderMsg.ConsigneeMobile == '') {
this.$refs.uToast.show({
title: '请输入联系电话!',
type: 'warning'
});
return;
}
var tempObj = uni.getStorageSync('basedata').mall.wechatmessage;
var tmplIds = [];
if(tempObj&&tempObj.length>0){
tempObj.forEach(x=>{
if(x.Name=='下单成功提醒'||x.Name=='订单取消提醒'||x.Name=='订单确认通知'){
tmplIds.push(x.MessageId)
}
})
}
uni.requestSubscribeMessage({
tmplIds: tmplIds,
complete(res) {
that.request2({
url: '/api/Hotel/SetAppletHotelOrder',
data: that.orderMsg
},
res => {
if (res.resultCode == 1) {
that.queren(res.data)
}
}
);
}
})
},
formatStatus(status, loss, isCancel) {
//立即购买
buyRoom(){
let that = this;
if (that.orderMsg.Consignee == '') {
this.$refs.uToast.show({
title: '请输入住客姓名!',
type: 'warning'
});
return;
}
if (that.orderMsg.ConsigneeMobile == '') {
this.$refs.uToast.show({
title: '请输入联系电话!',
type: 'warning'
});
return;
}
var tempObj = uni.getStorageSync('basedata').mall.wechatmessage;
var tmplIds = [];
if(tempObj&&tempObj.length>0){
tempObj.forEach(x=>{
if(x.Name=='下单成功提醒'||x.Name=='订单取消提醒'||x.Name=='订单确认通知'){
tmplIds.push(x.MessageId)
}
})
}
uni.requestSubscribeMessage({
tmplIds: tmplIds,
complete(res) {
that.request2({
url: '/api/Hotel/SetAppletHotelOrder',
data: that.orderMsg
},
res => {
if (res.resultCode == 1) {
that.queren(res.data)
}
}
);
}
})
},
formatStatus(status, loss, isCancel) {
loss = loss ? loss : -1;
//1、已申请;!=1未申请
if (loss == 1 || status == 4) {
......@@ -459,196 +267,6 @@
this.orderStatus.text = "正常";
this.showPayBtn = false;
}
},
goFacil(item){
this.current = item.ID;
this.scrollTop = this.old.scrollTop
this.$nextTick(function() {
this.scrollTop = item.top
});
},
openTime() {
this.showTimePopup = true;
},
etChange(e){
this.searchObj.childrenNumberZC = e.value;
this.peopleChange()
},
crChange(e){
this.searchObj.adultsNumber = e.value;
this.peopleChange()
},
peopleChange(){
this.searchObj.peoples = this.searchObj.adultsNumber + this.searchObj.childrenNumberZC
console.log(this.searchObj.peoples,'人数')
},
//获取推荐酒店
getRecomHotel() {
this.searchObj.HotelId = this.id;
this.request2(
{
url: "/api/Hotel/AppGetHotelPage",
data: this.searchObj,
},
(res) => {
if (res.resultCode == 1) {
// console.log(res, '推荐酒店');
this.HotelArr = [];
let tempHotel = res.data.pageData;
tempHotel.forEach((x) => {
if (this.HotelArr.length < 2) {
this.HotelArr.push(x);
}
});
}
}
);
},
goMap(name, lon, lat) {
let newLon = parseFloat(lon);
let newLat = parseFloat(lat);
uni.openLocation({
latitude: newLat,
longitude: newLon,
scale: 18,
name: name,
address: name,
success: (res) => {},
fail: (err) => {},
});
},
openPicture() {
let imgObj = JSON.stringify(this.dataList.HotelImg);
uni.navigateTo({
url: "/pages/hotel/picture?imgObj=" + imgObj,
});
},
openDescription() {
let hotelObj = JSON.stringify({
id: this.id,
start: this.dayObj.start,
end: this.dayObj.end,
});
uni.navigateTo({
url:
"/pages/hotel/description?hotelObj=" + encodeURIComponent(hotelObj),
});
},
chosenDateResult(obj) {
this.roomMsg.StartDate = obj.start;
this.roomMsg.EndDate = obj.end;
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.getRoomType();
this.dayObj = obj;
this.showTimePopup = false;
},
//切换日期获取房型
getRoomType() {
this.request2(
{
url: "/api/Hotel/GetHotelRoom",
data: this.roomMsg,
},
(res) => {
if (res.resultCode == 1) {
this.RoomList = res.data.RoomList;
}
}
);
},
formatMonthDay(str) {
let temp = str.split("-");
// temp[0] = temp[0] > 9 ? temp[0] : "0" + temp[0];
// temp[1] = temp[1] > 9 ? temp[1] : "0" + temp[1];
return `${temp[0]}${temp[1]}日`;
},
getMonth(date) {
let m = date.getMonth() + 1;
return m > 9 ? m : "0" + m;
},
getDay(date) {
let d = date.getDate();
return d > 9 ? d : "0" + d;
},
getWeek(date) {
var weekArray = new Array("日", "一", "二", "三", "四", "五", "六");
var week = weekArray[new Date(date).getDay()]; //注意此处必须是先new一个Date
return "周" + week;
},
changeNearbyType(t) {
this.nearbyType = t;
},
//显示全部
getAllRoom() {
this.isShowAll = !this.isShowAll;
if (this.isShowAll) {
this.threeLevelList.forEach((x) => {
x.isCheck = 1;
});
this.RoomList = this.dataList.RoomList;
} else {
this.threeLevelList.forEach((x) => {
x.isCheck = 0;
});
}
},
//点击过滤房间
changeRoomType(obj) {
if (obj.isCheck == 0) {
obj.isCheck = 1;
} else {
obj.isCheck = 0;
}
this.RoomList = [];
let num = 0;
this.threeLevelList.forEach((x) => {
if (x.isCheck == 1) {
num++;
this.dataList.RoomList.forEach((y) => {
if (x.id == 1 && y.BedType == 1) {
this.RoomList.push(y);
}
if (x.id == 2 && y.BedType == 2) {
this.RoomList.push(y);
}
if (x.id == 3 && y.BedType == 3) {
this.RoomList.push(y);
}
if (x.id == 4 && y.BreakfastType != 4) {
this.RoomList.push(y);
}
if (x.id == 5 && y.IsCancel == 2) {
this.RoomList.push(y);
}
});
}
});
if (num == this.threeLevelList.length) {
this.isShowAll = true;
} else {
this.isShowAll = false;
}
if (num == 0) {
this.RoomList = this.dataList.RoomList;
}
},
changeLike() {
this.islike = !this.islike;
},
previewImage(i) {
uni.previewImage({
urls: this.imgsList,
current: i,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function (data) {},
fail: function (err) {
// console.log(err.errMsg);
},
},
});
},
scroll(e) {
this.old.scrollTop = e.detail.scrollTop
......@@ -661,32 +279,13 @@
: Math.floor(e.detail.scrollTop - 100) / 100;
this.$forceUpdate();
},
enlarge(file) {
// 全屏
this.videoContext = uni.createVideoContext("myVideo");
this.videoContext.requestFullScreen({
direction: 0,
});
},
videoControl(e) {
if (e.detail.fullScreen == false) {
this.videoContext.stop();
this.controls = false;
} else {
this.videoContext.play();
this.controls = true;
}
},
goback() {
uni.navigateBack({
delta: 1,
});
},
changeHandler(i) {
this.active = i;
},
//获取酒店详情
getHotelDetail(id) {
getOrderDetail(id) {
let msg = {
HotelId: id,
StartDate: this.dayObj.start,
......@@ -699,103 +298,12 @@
},
(res) => {
if (res.resultCode == 1) {
// console.log(res, '详情数据');
this.dataList = res.data;
this.RoomList = this.dataList.RoomList;
this.hotelData.HotelId = this.dataList.HotelId;
this.hotelData.HotelName = this.dataList.HotelName;
this.hotelData.Booking = this.dataList.Booking;
setTimeout(() => {
this.hotelFacilities.forEach((x)=>{
const query = uni.createSelectorQuery().select(`#${x.val}`);
query.boundingClientRect((rect) => {
x.top = rect.top+250;
}).exec();
})
}, 1000);
console.log(res, '订单详情数据');
}
}
);
},
// #ifdef MP-WEIXIN
//分享朋友圈
onShareTimeline() {
let uid = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserId
: 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").SmallShopId
: 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserSmallShopId
: 0;
}
let title = this.dataList.HotelName ? this.dataList.HotelName : "帖子";
let imageUrl =
this.dataList.HotelImg && this.dataList.HotelImg.length > 0
? this.dataList.HotelImg[0]
: "";
let id = this.id;
return {
title: title,
query:
"id=" +
this.id +
"&user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
this.Up +
"&JumpType=18" +
"&dayObj=" +
JSON.stringify(this.dayObj) +
"&searchObj=" +
JSON.stringify(this.searchObj),
imageUrl: imageUrl,
};
},
//分享给朋友
onShareAppMessage(res) {
let u = uni.getStorageSync("mall_UserInfo");
let uid = u.UserId ? u.UserId : 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = u.SmallShopId ? u.SmallShopId : 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = u.UserSmallShopId ? u.UserSmallShopId : 0;
}
return {
title: this.dataList.HotelName ? this.dataList.HotelName : "帖子",
path:
"/pages/index/index?id=" +
this.id +
"&user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
this.Up +
"&JumpType=18" +
"&dayObj=" +
JSON.stringify(this.dayObj) +
"&searchObj=" +
JSON.stringify(this.searchObj),
imageUrl:
this.dataList.HotelImg && this.dataList.HotelImg.length > 0
? this.dataList.HotelImg[0]
: "",
};
},
// #endif
},
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment