Commit 37ea3e5c authored by youjie's avatar youjie

no message

parent af08ccc9
...@@ -2,6 +2,10 @@ import { HttpResponse } from '../@types' ...@@ -2,6 +2,10 @@ import { HttpResponse } from '../@types'
import request from './request' import request from './request'
class HotelService { class HotelService {
// 提交訂單
static async SetCustomerOrder(param:any):Promise<HttpResponse>{
return request('dict_post_SetCustomerOrder',param)
}
/** /**
* 查詢城市信息 * 查詢城市信息
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<q-icon class="cursor-pointer" name="close" size="18px" color="grey-5" @click="$emit('close')"></q-icon> <q-icon class="cursor-pointer" name="close" size="18px" color="grey-5" @click="$emit('close')"></q-icon>
</div> </div>
<q-separator color="grey-3" class="q-my-sm" /> <q-separator color="grey-3" class="q-my-sm" />
<div style="height: 800px;"> <div style="height: 700px;">
<q-scroll-area v-if="HotelCarList.length>0" :thumb-style="scrollStyle.thumbStyle" :bar-style="scrollStyle.barStyle" class="full-height"> <q-scroll-area v-if="HotelCarList.length>0" :thumb-style="scrollStyle.thumbStyle" :bar-style="scrollStyle.barStyle" class="full-height">
<q-list> <q-list>
<q-item class="rounded-borders"> <q-item class="rounded-borders">
...@@ -47,12 +47,6 @@ ...@@ -47,12 +47,6 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="row items-center q-pr-md" style="flex-shrink: 0;">
<div>
<span class="fz16 text-red">{{room.Number}}</span>
<span class="fz12 q-pl-xs">{{$t('hotel.car.between')}}</span>
</div>
</div>
<div class="row items-center justify-between"> <div class="row items-center justify-between">
<div> <div>
<q-btn rounded dense color="white" text-color="black" size="xs" icon="remove" @click='addGoods(item,index,x,i,room,s,0)'/> <q-btn rounded dense color="white" text-color="black" size="xs" icon="remove" @click='addGoods(item,index,x,i,room,s,0)'/>
...@@ -78,11 +72,30 @@ ...@@ -78,11 +72,30 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- <q-separator color="grey-3" class="q-my-sm" dark vertical/> --> <!-- <q-separator color="grey-3" class="q-my-sm" dark vertical/> -->
</div> </div>
<div class="row justify-end">
<div v-if="item.TaxesPrice>0">
<span class="text-red q-pr-sm f12">
{{$t('hotel.car.tax')}}
</span>
<span>
{{item.TaxesPrice}}
</span>
</div>
<div v-if="item.PriceInTangTax>0" class="q-pl-sm">
<span class="text-red q-pr-sm f12">
{{$t('hotel.car.soup')}}
</span>
<span>
{{item.PriceInTangTax}}
</span>
</div>
</div>
</div> </div>
</q-card> </q-card>
</q-item-section> </q-item-section>
...@@ -93,6 +106,41 @@ ...@@ -93,6 +106,41 @@
{{$t('noneData')}} {{$t('noneData')}}
</div> </div>
</div> </div>
<div class="column q-px-md">
<div class="row wrap justify-between col q-pb-lg">
<div class="col-6 q-pb-sm">
<n-select filterable @update:value="changeOrderType" style="max-width: 200px;"
v-model:value="parameters.OrderType" :placeholder="$t('hotel.car.OrderType')" :options="cacheHotels"
max-tag-count="responsive" size="large" value-field="ID" label-field="Name" />
</div>
<div v-if="parameters.OrderType==2" class="col-6">
<q-input v-model="parameters.TCNum" style="max-width: 200px;" mask="#.##" reverse-fill-mask dense
type="text" standout :label="$t('hotel.car.TCNum')" />
</div>
<template v-if="parameters.OrderType==1">
<q-input v-model="parameters.TCNum" style="max-width: 200px;" class="col-6 q-mr-md" mask="#.##" reverse-fill-mask dense
type="text" standout :label="$t('hotel.car.ContactName')" />
<q-input v-model="parameters.TCNum" style="max-width: 200px;" class="col-6 q-mr-md" mask="#.##" reverse-fill-mask dense
type="text" standout :label="$t('hotel.car.ContactNumber')" />
</template>
</div>
<div class="row justify-between">
<div>
<span class="fz14">¥</span>
{{parameters.Money}}
</div>
<q-btn color="red" style="width: 150px" :loading="loading" @click="submit">
<div class="ellipsis">
{{$t('hotel.car.submit')}}
</div>
</q-btn>
</div>
</div>
</q-card> </q-card>
</template> </template>
...@@ -111,27 +159,101 @@ ...@@ -111,27 +159,101 @@
}, },
setup(props) { setup(props) {
inject(DirtionmaryHelper.HOTEL_CAR_LIST) // inject(DirtionmaryHelper.HOTEL_CAR_LIST)
const HotelCarList = inject(DirtionmaryHelper.HOTEL_CAR_LIST) as any const HotelCarList = inject(DirtionmaryHelper.HOTEL_CAR_LIST) as any
const {locale,t } = useI18n(); const {locale,t } = useI18n();
const data=reactive({ const data=reactive({
scrollStyle: {} as any, scrollStyle: {} as any,
addNum: 1, addNum: 1,
DataList: [] as Array<any>, parameters: {
Money: 0,
DetailList: [],
Remark: '',
OrderType: 1,//订单类型 1散客 2团队
TCNum: '',//=团队时 传递 组团号
ContactName: '',//=散客时 传递 联系人
ContactNumber: '',//=散客时 传递 联系人电话
OrderId: 0,
},
currentIndex: 0, currentIndex: 0,
currentI: 0, currentI: 0,
currentS: 0, currentS: 0,
RemainingInventory: 0, RemainingInventory: 0,
HotelLength: 0 HotelLength: 0,
loading: false,
cacheHotels: [
{Name:'散客',ID:1},
{Name:'团队',ID:2},
],
}) })
data.scrollStyle = useScrollModule().scrollStyle data.scrollStyle = useScrollModule().scrollStyle
// 今天购买数量 // 今天购买数量
watch(data.DataList, (n, o) => { watch(HotelCarList._value, (n, o) => {
methods.calculateNum() methods.calculateNum()
methods.getMoney()
}) })
const methods = { const methods = {
changeOrderType() {
setTimeout(() => {
console.log(data.parameters.OrderType)
}, 1000)
},
getMoney(){
data.parameters.Money = 0
HotelCarList._value.forEach(item=>{
item.timeList.forEach(t=>{
t.rooms.forEach(room=>{
let m = (room.PeopleNumber*room.Unit_Price)+(room.Number*room.TaxesPrice)+(room.Number*room.PriceInTangTax)
data.parameters.Money+=m
})
})
})
},
submit() {
data.parameters.DetailList = [] as Array<any>
HotelCarList._value.forEach(item=>{
item.timeList.forEach(t=>{
let datas = {
HotelId: item.HotelId,
Date: t.Date,
Destription:'',
RoomList:[],
}
t.rooms.forEach(room=>{
let msg = {
RoomType: room.RoomType,
Unit_Price: room.Unit_Price,
Number: room.Number,
PeopleNumber: room.PeopleNumber,
Destription: room.Destription?room.Destription:''
}
datas.RoomList.push(msg)
})
data.parameters.DetailList.push(datas)
})
})
console.log(data.parameters,'-----')
return
data.loading = true
HotelService.SetCustomerOrder(param)
.then(r => {
if (r.data.resultCode == ApiResult.SUCCESS) {
} else {
message.errorMsg(r.data.message)
}
data.loading = false
})
.catch(e => {
message.errorMsg(e.message)
data.loading = false
})
},
getLength(){ getLength(){
console.log(HotelCarList._value,'---')
data.HotelLength = 0 data.HotelLength = 0
if(HotelCarList._value.length>0){ if(HotelCarList._value.length>0){
HotelCarList._value.forEach(item=>{ HotelCarList._value.forEach(item=>{
...@@ -142,47 +264,53 @@ ...@@ -142,47 +264,53 @@
}) })
}) })
} }
}, },
// 计算房间数量 // 计算房间数量
calculateNum(){ calculateNum(){
if(data.DataList[data.currentIndex].timeList[data.currentI].total){ let list = HotelCarList._value
data.DataList[data.currentIndex].timeList[data.currentI].total = 0 if(list&&list[data.currentIndex]){
let DataList = data.DataList[data.currentIndex].timeList[data.currentI].rooms.length>0&&data.DataList[data.currentIndex].timeList[data.currentI].rooms // HotelCarList._value[data.currentIndex].timeList[data.currentI].total = 0
DataList&&DataList.forEach((item,index)=> { HotelCarList._value&&HotelCarList._value.forEach((item,index)=> {
if(DataList[data.currentIndex].timeList[data.currentI].total<DataList[data.currentIndex].timeList[data.currentI].RemainingInventory){ item.timeList.forEach(t=>{
DataList[data.currentIndex].timeList[data.currentI].total+=item.Number t.total = 0
} t.rooms.forEach(room=>{
t.total+=room.Number
})
})
}) })
} }
}, },
// 人数
addPeople(item: Object,index: any,x: Object,i: any,room: Object,s: any,type: any){ addPeople(item: Object,index: any,x: Object,i: any,room: Object,s: any,type: any){
data.currentIndex = index data.currentIndex = index
data.currentI = i data.currentI = i
data.currentS = s data.currentS = s
if(type==1&&x.Number<item.RemainingInventory){ if(type==1&&room.Number<x.RemainingInventory){
s.PeopleNumber++ room.PeopleNumber++
}else if(type==0&&x.Number>1){ }else if(type==0&&room.PeopleNumber>1){
s.PeopleNumber-- room.PeopleNumber--
} }
// methods.getMoney()
}, },
// 房间数
addGoods(item: Object,index: any,x: Object,i: any,room: Object,s: any,type: any){ addGoods(item: Object,index: any,x: Object,i: any,room: Object,s: any,type: any){
data.currentIndex = index data.currentIndex = index
data.currentI = i data.currentI = i
data.currentS = s data.currentS = s
console.log(x.RemainingInventory)
if(type==1&&room.Number<x.RemainingInventory){ if(type==1&&room.Number<x.RemainingInventory){
if(x.total<x.RemainingInventory){ if(x.total<x.RemainingInventory){
room.Number++ room.Number++
} }
}else if(type==0&&room.Number>0){ }else if(type==0&&room.Number>0){
if(room.Number==1){ if(room.Number==1){
if(DataList[index].timeList[i].rooms.length==1){ if(HotelCarList._value[index].timeList[i].rooms.length==1&&HotelCarList._value[index].timeList.length>1){
DataList[index].timeList.splice(i, 1) HotelCarList._value[index].timeList.splice(i, 1)
}else if(HotelCarList._value[index].timeList.length==1&&
HotelCarList._value[index].timeList[i].rooms.length==1){
HotelCarList._value.splice(index, 1)
return return
}else{ }else{
DataList[index].timeList[i].splice(s, 1) HotelCarList._value[index].timeList[i].rooms.splice(s, 1)
} }
methods.getLength() methods.getLength()
} }
...@@ -193,6 +321,7 @@ ...@@ -193,6 +321,7 @@
} }
onMounted(()=>{ onMounted(()=>{
methods.getLength() methods.getLength()
methods.getMoney()
}) })
return {...toRefs(data),HotelCarList,...methods} return {...toRefs(data),HotelCarList,...methods}
} }
......
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
import { UserActionsType } from '../../../store/modules/user/actions'; import { UserActionsType } from '../../../store/modules/user/actions';
import { DirtionmaryHelper } from '../../../config/dictionary' import { DirtionmaryHelper } from '../../../config/dictionary'
import message from '../../../utils/message' import message from '../../../utils/message'
import HotelService from '../../../api/hotel'
export default defineComponent({ export default defineComponent({
props: { props: {
HotelRow:{ HotelRow:{
...@@ -91,7 +92,6 @@ ...@@ -91,7 +92,6 @@
}, },
setup(props, context) { setup(props, context) {
const {locale,t } = useI18n(); const {locale,t } = useI18n();
inject(DirtionmaryHelper.HOTEL_CAR_LIST)
const HotelCarList = inject(DirtionmaryHelper.HOTEL_CAR_LIST) const HotelCarList = inject(DirtionmaryHelper.HOTEL_CAR_LIST)
const data=reactive({ const data=reactive({
HotelRow: props.HotelRow, HotelRow: props.HotelRow,
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
addPeople(item: String,type:any){ addPeople(item: String,type:any){
if(type==1&&item.Number<data.hotelInfor.RemainingInventory){ if(type==1&&item.Number<data.hotelInfor.RemainingInventory){
item.PeopleNumber++ item.PeopleNumber++
}else if(type==0&&item.Number>1){ }else if(type==0&&item.PeopleNumber>1){
item.PeopleNumber-- item.PeopleNumber--
} }
}, },
...@@ -158,6 +158,8 @@ ...@@ -158,6 +158,8 @@
rooms: [] as Array<any> rooms: [] as Array<any>
} }
data.parameters.DetailList.forEach((x,index)=>{ data.parameters.DetailList.forEach((x,index)=>{
msgData.TaxesPrice = x.TaxesPrice
msgData.PriceInTangTax = x.PriceInTangTax
if(x.Number>0){ if(x.Number>0){
let ArrData = { let ArrData = {
HotelId: x.HotelId, HotelId: x.HotelId,
...@@ -176,39 +178,25 @@ ...@@ -176,39 +178,25 @@
msgData.timeList.push(msg) msgData.timeList.push(msg)
if(data.total>0){ if(data.total>0){
let list = HotelCarList._value let list = HotelCarList._value
let fault = true
if(list.length>0){ if(list.length>0){
let fault = true
list.forEach((item,index)=>{ list.forEach((item,index)=>{
if(item.HotelId==parameters.HotelId){ if(item.HotelId==parameters.HotelId){
item.timeList.forEach((x,i)=>{ item.timeList.forEach((x,i)=>{
if(fault&&x.Date==parameters.Date){ if(fault&&x.Date==parameters.Date){
HotelCarList._value[index].timeList.splice(i,1) HotelCarList._value[index].timeList.splice(i,1)
HotelCarList._value[index].timeList.push(msg) HotelCarList._value[index].timeList.push(msg)
console.log('000--')
fault = false fault = false
}else if(fault&&x.Date!=parameters.Date){ }else if(fault&&x.Date!=parameters.Date){
HotelCarList._value[index].timeList.push(msg) HotelCarList._value[index].timeList.push(msg)
console.log('11111--')
fault = false fault = false
}else{
// console.log(fault,x.Date,parameters.Date)
} }
}) })
}else if(fault&&item.HotelId!=parameters.HotelId){
item.timeList.forEach((x,i)=>{
if(fault&&x.Date==parameters.Date){
HotelCarList._value[index].timeList.splice(i,1)
HotelCarList._value[index].timeList.push(msg)
fault = false
}else if(fault&&x.Date!=parameters.Date){
HotelCarList._value[index].timeList.push(msg)
fault = false
console.log('3333')
}
})
} }
}) })
fault = true if(fault) HotelCarList._value.push(msgData)
}else{ }else{
HotelCarList._value.push(msgData) HotelCarList._value.push(msgData)
} }
......
import { OrderType } from './../../@types/index';
// This is just an example, // This is just an example,
// so you can safely delete all default props below // so you can safely delete all default props below
...@@ -122,7 +123,14 @@ export default { ...@@ -122,7 +123,14 @@ export default {
addShopping: '加入購物車', addShopping: '加入購物車',
orderTitle: '訂單', orderTitle: '訂單',
people: '人', people: '人',
between: '间' between: '间',
submit: '提交',
tax: '税',
soup: '入汤',
OrderType: '訂單類型',
TCNum: '组团号',
ContactName: '联系人名稱',
ContactNumber: '联系人电话'
}, },
shopping:{ shopping:{
labelNum: '房數', labelNum: '房數',
......
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