Commit 37fd9618 authored by youjie's avatar youjie

no message

parent 23086fb6
...@@ -2,6 +2,22 @@ import { HttpResponse } from '../@types' ...@@ -2,6 +2,22 @@ import { HttpResponse } from '../@types'
import request from './request' import request from './request'
class scheduledTripService { class scheduledTripService {
// 一日游订单列表
static async GetTravelOneDayOrderList(param:any):Promise<HttpResponse>{
return request('sellorder_post_GetTravelOneDayOrderList',param)
}
// 一日游订单提交
static async SetOrderInfoForB2B(param:any):Promise<HttpResponse>{
return request('sellorder_post_SetOrderInfoForB2B',param)
}
// 获取销售信息
static async GetB2BSellByCustomerId(param:any):Promise<HttpResponse>{
return request('app_customer_GetB2BSellByCustomerId',param)
}
// 获取客户信息
static async GetCustomerSummary(param:any):Promise<HttpResponse>{
return request('b2b_get_GetCustomerSummary',param)
}
// 行程详情 // 行程详情
static async GetB2BTravelInfoV1(param:any):Promise<HttpResponse>{ static async GetB2BTravelInfoV1(param:any):Promise<HttpResponse>{
return request('b2b_get_GetB2BTravelInfoV1',param) return request('b2b_get_GetB2BTravelInfoV1',param)
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</template> </template>
</div> </div>
</div> </div>
<div class="q-ml-md"> <div class="q-ml-md" v-if="$q.platform.is.desktop">
<q-btn style="width: 60px;" color="primary" unelevated size="sm" :label="$t('query')" @click="setSearchHandler"/> <q-btn style="width: 60px;" color="primary" unelevated size="sm" :label="$t('query')" @click="setSearchHandler"/>
</div> </div>
</div> </div>
...@@ -269,6 +269,7 @@ ...@@ -269,6 +269,7 @@
data.chosenAddress = JSON.parse(JSON.stringify(n.chosenAddress)) data.chosenAddress = JSON.parse(JSON.stringify(n.chosenAddress))
data.qMsg = JSON.parse(JSON.stringify(n.msg)) data.qMsg = JSON.parse(JSON.stringify(n.msg))
data.msg = JSON.parse(JSON.stringify(n.msg)) data.msg = JSON.parse(JSON.stringify(n.msg))
if(n.RetrievalState) methods.setSearchHandler()
},{deep:true}) },{deep:true})
const methods = { const methods = {
changeOrderType(i){ changeOrderType(i){
...@@ -388,6 +389,7 @@ ...@@ -388,6 +389,7 @@
setSearchHandler(){ setSearchHandler(){
data.msg.pageIndex = 1 data.msg.pageIndex = 1
methods.goSearchHandler() methods.goSearchHandler()
search.RetrievalState=false
}, },
GotoDetails(item) { GotoDetails(item) {
$router.push({ $router.push({
......
...@@ -12,37 +12,20 @@ ...@@ -12,37 +12,20 @@
<q-card class="q-pa-md rounded-borders" style="width: 300px"> <q-card class="q-pa-md rounded-borders" style="width: 300px">
<div class="q-mb-md text-subtitle2">{{ $t('morequery') }}</div> <div class="q-mb-md text-subtitle2">{{ $t('morequery') }}</div>
<div class="rounded-borders q-my-md q-px-xs q-py-xs bg-grey-3"> <div class="rounded-borders q-my-md q-px-xs q-py-xs bg-grey-3">
<div v-if="chosenAddress.length==0" class="q-px-sm q-py-xs">{{$t('v103.scheduledTrip.screeningtitle')}}</div> <div class="q-px-sm q-py-xs row justify-between">
<template v-else> <span>公司所在地</span>
<q-chip <span class="text-primary" v-if="chosenAddress.length>0">{{chosenAddress[0].Name}}</span>
v-for="(x, i) in chosenAddress" </div>
size="12px"
:key="i"
removable
outline
color="grey"
:label="x.Name"
@remove="removeChosen(x,i,1)"
/>
</template>
<q-popup-proxy :offset="[0, 10]"> <q-popup-proxy :offset="[0, 10]">
<div class="bg-white q-pb-lg" style="width: 300px;"> <div class="bg-white q-pb-lg" style="width: 300px;">
<div class="q-px-lg q-py-md fz18">{{$t('v103.scheduledTrip.screeningtitle')}}</div> <div class="q-px-lg q-py-md fz18">公司所在地</div>
<div v-for="(x, i) in areaList" :key="i"> <div v-for="(x, i) in sites" :key="i">
<div class="addr"> <div class="addr">
<div <!-- <div
class="addr-list q-px-md q-py-sm cursor-pointer row items-center" class="addr-list q-px-md q-py-sm cursor-pointer row items-center"
v-if="x.isShow" v-if="x.isShow"
> >
<q-checkbox <span class="col" @click="changeExplesdHandler(x)">公司所在地</span>
indeterminate-value="half"
@update:model-value="changeCheckHandler(x)"
v-model="x.checked"
size="xs"
/>
<span class="col" @click="changeExplesdHandler(x)">{{
x.Name
}}</span>
<q-icon <q-icon
@click="changeExplesdHandler(x)" @click="changeExplesdHandler(x)"
v-if=" v-if="
...@@ -52,28 +35,19 @@ ...@@ -52,28 +35,19 @@
:name="!x.explsed ? 'keyboard_arrow_down' : 'keyboard_arrow_up'" :name="!x.explsed ? 'keyboard_arrow_down' : 'keyboard_arrow_up'"
size="20px" size="20px"
/> />
</div> </div> -->
<div <!-- v-if="
class="q-mx-md"
v-if="
x.explsed || x.explsed ||
(x.SubList && x.isShowChild && searchClone.searchKey.length > 0) (x.SubList && x.isShowChild && searchClone.searchKey.length > 0)
" " -->
<div
class="q-mx-md"
> >
<template v-for="(y, yi) in x.SubList"> <template v-for="(y, yi) in x.SubList">
<div <q-radio
class="addr-list q-px-md q-py-sm row items-center" class="addr-list q-px-md q-py-sm row items-center"
:key="yi" :key="yi"
v-if="y.isShow" v-if="y.isShow" v-model="searchClone.cityId" checked-icon="task_alt" unchecked-icon="panorama_fish_eye" :val="y.cityId" :label="y.siteName" size="sm" @update:model-value="changeCheckHandler(y, x,0)"/>
>
<q-checkbox
@update:model-value="changeCheckHandler(y, x)"
v-model="y.checked"
size="xs"
/>
<span class="col">{{ y.Name }}</span>
</div>
</template> </template>
</div> </div>
</div> </div>
...@@ -199,21 +173,20 @@ ...@@ -199,21 +173,20 @@
</q-card> </q-card>
</q-popup-proxy> </q-popup-proxy>
</q-btn> </q-btn>
<q-btn color="primary" unelevated :label="$t('query')" /> <q-btn color="primary" unelevated :label="$t('query')" @click="search.RetrievalState=true"/>
</div> </div>
<template v-if="$q.platform.is.desktop"> <template v-if="$q.platform.is.desktop">
<q-card flat class="rounded-borders q-py-md"> <q-card flat class="rounded-borders q-py-md">
<div class="row justify-between q-mx-md"> <div class="row justify-between q-mx-md">
<span class="text-subtitle1 text-weight-bold ">{{$t('v103.scheduledTrip.screeningtitle')}}</span> <span class="text-subtitle1 text-weight-bold ">{{$t('v103.scheduledTrip.screeningtitle')}}</span>
</div> </div>
<!-- @update:model-value="changeAddrSearchHandler" -->
<q-input <q-input
v-model="searchClone.searchKey" v-model="searchClone.searchKey"
type="text" type="text"
standout standout
:placeholder="$t('v103.scheduledTrip.searchinput')" :placeholder="$t('v103.scheduledTrip.searchinput')"
class="q-ma-md" class="q-ma-md"
@update:model-value="changeAddrSearchHandler"
/> />
<div v-for="(x, i) in sites" :key="i"> <div v-for="(x, i) in sites" :key="i">
<div class="addr"> <div class="addr">
...@@ -940,20 +913,9 @@ ...@@ -940,20 +913,9 @@
], ],
}); });
}, },
// 搜寻目的地 // 搜寻关键词
changeAddrSearchHandler(v) { changeAddrSearchHandler(v) {
search.chosenAddress = [] search.RetrievalState = true
data.areaList.forEach((x) => {
x.isShow = x.Name.indexOf(v) != -1;
x.isShowChild = false;
x.SubList.forEach((y) => {
y.isShow = y.Name.indexOf(v) != -1;
if (y.isShow) {
x.isShow = true;
x.isShowChild = true;
}
});
});
}, },
} }
watch(data.searchClone, (n, o) => { watch(data.searchClone, (n, o) => {
...@@ -1000,6 +962,7 @@ ...@@ -1000,6 +962,7 @@
return { return {
...toRefs(data), ...toRefs(data),
...methods, ...methods,
search,
searchCnt, searchCnt,
qDateProxy, qDateProxy,
qNameProxy, qNameProxy,
......
<template>
<q-card class="bg-white q-pa-md" style="max-width: 500px; min-width: 375px; ">
<div class="text-h6 q-mb-lg">
{{ $t('v102.to.m.t') }}
</div>
<div class="row items-center">
<span class="f12 text-grey-900 text-subtitle2 text-weight-bold" :class="{ 'col-2': $q.platform.is.desktop, 'col-3': $q.platform.is.mobile }">{{ $t('v102.ticket.gi') }}</span>
<span class="col f12">
<q-radio v-model="m.MailingState" checked-icon="task_alt" unchecked-icon="panorama_fish_eye" :val="1" :label="$t('v102.ticket.zq')" />
<q-radio v-model="m.MailingState" checked-icon="task_alt" unchecked-icon="panorama_fish_eye" :val="2" :label="$t('v102.ticket.yj')" />
</span>
</div>
<div v-if="m.MailingState == 1" class="bg-light-blue-1 q-pa-md fz14 rounded-borders q-mt-md">
<div class="text-weight-bold">{{ $t('v102.ticket.zqs') }}</div>
<div class="text-grey-900 q-mt-sm f12">{{ $t('v102.ticket.zqd') }}</div>
</div>
<div>
<div class="q-mt-md">
<span class="f12 text-grey-900 text-subtitle2 text-weight-bold">{{ $t('v102.ticket.sj') }}</span>
</div>
<div class="row items-center q-mt-md text-grey-600 q-mb-md" v-if="$q.platform.is.desktop">
<div class="col q-mr-md">{{ $t('v102.ticket.sjc.c1') }}</div>
<div class="col q-mr-md">{{ $t('v102.ticket.sjc.c2') }}</div>
<div class="col-2 q-mr-md">{{ $t('v102.ticket.sjc.c3') }}</div>
<div class="col q-mr-md">{{ $t('v102.ticket.sjc.c4') }}</div>
<div class="col-4" v-if="m.MailingState == 2">{{ $t('v102.ticket.sjc.c5') }}</div>
</div>
<div style="border-top: 1px dashed #eee" :class="{ 'row items-center': $q.platform.is.desktop, column: $q.platform.is.mobile }">
<q-input dense standout v-model="m.Name" class="col q-mt-md" :class="{ 'q-mr-md': $q.platform.is.desktop }" :placeholder="$t('v102.ticket.sjcp.c1')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestName"/>
<q-input dense standout v-model="m.EName" class="col q-mt-md" :class="{ 'q-mr-md': $q.platform.is.desktop }" :placeholder="$t('v102.ticket.sjcp.c2')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestEName"/>
<div class="col q-mt-md" :class="{ 'q-mr-md': $q.platform.is.desktop }">
<q-radio v-model="m.Sex" checked-icon="task_alt" unchecked-icon="panorama_fish_eye" :val="Number(1)" :label="$t('v102.ticket.sex.man')" />
<q-radio v-model="m.Sex" checked-icon="task_alt" unchecked-icon="panorama_fish_eye" :val="Number(2)" :label="$t('v102.ticket.sex.women')" />
</div>
<q-input dense standout v-model="m.Mobile" class="col q-mt-md" :class="{ 'q-mr-md': $q.platform.is.desktop }" :placeholder="$t('v102.ticket.sjcp.c4')" :rules="[ val => val && val.length == 11 || ' ']" ref="guestMobile"/>
<q-input v-if="m.MailingState == 2" dense standout v-model="m.MailingAddress" class="col-4 q-mt-md" :placeholder="$t('v102.ticket.sjcp.c5')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestAddress"/>
</div>
</div>
<div class="q-mt-md">
<q-input v-model="m.Remark" standout autogrow :label="$t('v102.ticket.or')" />
</div>
<div class="q-mt-lg text-right">
<!-- v-close-popup flat dense -->
<q-btn color="negative" class="q-px-lg" :label="$t('v102.to.m.c')" v-close-popup flat dense @click="close" />
<q-btn color="primary" class="q-ml-md q-px-lg" :label="$t('v102.to.m.s')" flat dense @click="submit"/>
</div>
</q-card>
</template>
<script lang="ts">
import { ref, defineComponent, reactive, toRefs, watch} from 'vue'
import { ApiResult } from 'src/@types/enumHelper'
import TicketService from '../../../api/ticket'
import message from '../../../utils/message'
import { useI18n } from 'vue-i18n'
export default defineComponent({
props: ['order'],
setup(props, context) {
watch(
() => props.order,
(n, o) => {
// data.m = JSON.parse(JSON.stringify(n))
}
)
const { t } = useI18n()
const guestName = ref(null) as any
const guestEName = ref(null) as any
const guestMobile = ref(null) as any
const guestAddress = ref(null) as any
const data = reactive({
m: {} as any,
loading: false
})
data.m=JSON.parse(JSON.stringify(props.order))
const methods = {
close(){
context.emit('close')
},
submit(){
if(data.loading) return
data.loading = true
let flag = false
guestName.value.validate()
guestEName.value.validate()
guestMobile.value.validate()
if(data.m.MailingState=='2'){
guestAddress.value.validate()
flag = !guestName.value.hasError && !guestEName.value.hasError && !guestMobile.value.hasError && !guestAddress.value.hasError
}else{
flag = !guestName.value.hasError && !guestEName.value.hasError && !guestMobile.value.hasError
data.m.MailingAddress = ''
}
if(!flag) return
let m = {
IsUpdateMailing: 1,
OrderId: data.m.OrderId,
CouponsId: data.m.CouponsId,
Money: data.m.Money,
UseDate: data.m.UseDate,
Birthday: data.m.Birthday,
DetailList: data.m.DetailList,
MailingState: data.m.MailingState,//邮寄状态 1自取 2邮寄
MailingAddress: data.m.MailingAddress,//MailingState =2 填写邮寄
Name: data.m.Name,
EName: data.m.EName,
Sex: data.m.Sex,//1男2女
Mobile: data.m.Mobile,
Remark: data.m.Remark,
}
let param = Object.assign(m)
TicketService.setTicketOrder(param)
.then(r => {
if (r.data.resultCode == ApiResult.SUCCESS) {
context.emit('success')
message.successMsg(`${t('success')}`)
} else {
message.errorMsg(r.data.message)
}
data.loading = false
}).catch(e => {
data.loading = false
message.errorMsg(e.message)
})
}
}
return {
...toRefs(data),
...methods,
guestName,
guestEName,
guestMobile,
guestAddress
}
}
})
</script>
<style></style>
<template>
<div class="rounded-borders bg-white row items-center q-pa-md">
<q-select v-if="$q.platform.is.desktop" class="q-mr-md" style="min-width: 150px" v-model="search.OrderStatus" @update:model-value="setOrderStatus" dense :options="status" emit-value option-label="StatusName" option-value="StatusId" map-options :label="$t('hotelorder.search.status')" standout />
<q-input v-if="$q.platform.is.desktop" class="q-mr-md" v-model="search.OrderNo" dense standout :label="$t('hotelorder.search.orderNum')" />
<q-field v-if="$q.platform.is.desktop" clearable v-model="dateRangeFormat" :label="$t('hotelorder.search.daterange')" standout class="col-2" style="min-width: 190px" dense @clear="getDateRange">
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormat }}</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="dateRange" :options="optionsFn" range mask="YYYY/MM/DD" landscape @range-end="dateRangeHandler"></q-date>
</q-popup-proxy>
</q-field>
<div class="col"></div>
<q-btn unelevated class="bg-grey-3 hover q-mr-md" :title="$t('morequery')">
<q-badge rounded class="din bg-red-2 text-red-14 text-weight-bold" floating :label="searchCnt" v-if="searchCnt > 0" />
<svg-icon color="dark" icon="Text/Filter.svg" :tips="$t('morequery')" :size="20"></svg-icon>
<q-tooltip>{{ $t('morequery') }}</q-tooltip>
<q-popup-proxy class="no-shadow" style="box-shadow: 0 0 50px #ddd !important" :offset="[0, 20]" :model-value="canHide">
<q-card class="q-pa-md rounded-borders" style="width: 300px">
<div class="q-mb-md text-subtitle2">{{ $t('morequery') }}</div>
<div class="q-mt-md row">
<q-input v-model="search.OrderNo" dense standout :label="$t('hotelorder.search.orderNum')" class="mobile-only col q-mr-md" />
<q-input v-model="search.OrderId" dense standout :label="$t('hotelorder.search.orderId')" class="col" />
</div>
<div class="mobile-only q-mt-md">
<q-field clearable v-model="dateRangeFormat" :label="$t('hotelorder.search.daterange')" standout style="min-width: 190px" dense @clear="getDateRange">
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormat }}</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="dateRange" :options="optionsFn" range mask="YYYY/MM/DD" @range-end="dateRangeHandler" ></q-date>
</q-popup-proxy>
</q-field>
</div>
<div class="q-mt-md">
<q-field clearable v-model="dateRangeFormatUse" :label="$t('v102.ticket.starttime')" standout style="min-width: 190px" dense @clear="getDateRangeUse">
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormatUse }}</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxyUse">
<q-date v-model="dateRangeUse" :options="optionsFnUse" range mask="YYYY/MM/DD" @range-end="dateRangeHandlerUse" ></q-date>
</q-popup-proxy>
</q-field>
</div>
<!-- <div class="q-mt-md">
<q-field clearable v-model="dateRangeFormatUse" :label="$t('v102.ticket.starttime')" standout class="col" style="min-width: 190px" dense @clear="getDateRangeUse">
<div class="self-center full-width no-outline" tabindex="0">{{ dateRangeFormatUse }}</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxyUse">
<q-date v-model="dateRangeUse" :options="optionsFnUse" range mask="YYYY/MM/DD" @range-end="dateRangeHandlerUse" ></q-date>
</q-popup-proxy>
</q-field>
</div> -->
<div class="q-mt-md">
<q-input v-model="search.Name" dense standout :label="$t('v102.to.qjc')" />
</div>
<q-select class="q-mt-md" v-model="search.MailingState" dense :options="orderTypes" emit-value option-label="TypeName" option-value="TypeId" map-options :label="$t('v102.to.qj')" standout />
<q-input v-model="search.CouponsName" dense standout :label="$t('v102.to.ticketName')" class="q-mt-md" />
<q-input v-model="search.ContactNumber" dense standout :label="$t('v102.to.qjp')" class="q-mt-md"/>
</q-card>
</q-popup-proxy>
</q-btn>
<q-btn unelevated class="bg-blue-1 text-primary hover q-mr-md" :label="$t('hotelorder.recovery')" />
<q-btn color="primary" unelevated :label="$t('query')" @click="setQueryHandler" />
</div>
<div class="rounded-borders bg-white q-pa-sm q-mt-md mobile-only">
<q-tabs v-model="search.OrderStatus" class="text-cyan" dense>
<q-tab :name="x.StatusId" :label="x.StatusName" v-for="x in status" @click="setOrderStatus(x.StatusId)" />
</q-tabs>
</div>
</template>
<script lang="ts">
import { DirtionmaryHelper } from '../../../config/dictionary'
import { computed, defineComponent, inject, reactive, ref, toRefs } from 'vue'
import { OrderType, RoomType, StandardStatus } from '../../../@types'
import { getHotelOrderStatus, getHotelOrderType, getHotelRoomType, getTicketOrderType } from '../../../utils/tools'
import { date, useQuasar } from 'quasar'
import svgIcon from '../../global/svg-icon.vue'
export default defineComponent({
components: { svgIcon },
setup(props) {
const qDateProxy = ref(null) as any
const qDateProxyUse = ref(null) as any
const $q = useQuasar()
const data = reactive({
status: [] as Array<StandardStatus>,
cancelStatus: {} as StandardStatus | undefined,
dateRangeFormat: '',
dateRangeFormatUse: '',
dateRange: {} as any,
dateRangeUse: {} as any,
orderTypes: [] as Array<OrderType>,
canHide: false
})
const realSearch = inject(DirtionmaryHelper.TICKET_ORDER_SEARCH) as any
const search = reactive(JSON.parse(JSON.stringify(realSearch))) as any
const methods = {
initStatus() {
//通用的訂單類型
let allStatus = getHotelOrderStatus()
data.status = allStatus.filter((x: StandardStatus) => {
return x.StatusId != 3
})
data.cancelStatus = allStatus.find((x: StandardStatus) => {
return x.StatusId == 3
})
data.orderTypes = getTicketOrderType(true)
},
optionsFnUse(cd: any) {
return true
},
optionsFn(cd: any) {
return cd < date.formatDate(date.addToDate(new Date(), { days: 1 }), 'YYYY/MM/DD')
},
getDateRangeUse(value){
search.UseSTime = ''
search.UseETime = ''
data.dateRangeFormatUse = ''
},
getDateRange(value){
search.StartTime = ''
search.EndTime = ''
data.dateRangeFormat = ''
},
dateRangeHandlerUse(e: any) {
search.UseSTime = `${e.from.year}/${e.from.month}/${e.from.day}`
search.UseETime = `${e.to.year}/${e.to.month}/${e.to.day} `
data.dateRangeFormatUse = `${search.UseSTime} - ${search.UseETime} `
if (qDateProxyUse.value) qDateProxyUse.value.hide()
},
dateRangeHandler(e: any) {
search.StartTime = `${e.from.year}/${e.from.month}/${e.from.day}`
search.EndTime = `${e.to.year}/${e.to.month}/${e.to.day} `
data.dateRangeFormat = `${search.StartTime} - ${search.EndTime} `
if (qDateProxy.value) qDateProxy.value.hide()
},
setQueryHandler() {
realSearch.OrderId = search.OrderId
realSearch.RoomType = search.RoomType
realSearch.StartTime = search.StartTime
realSearch.EndTime = search.EndTime
realSearch.UseSTime = search.UseSTime
realSearch.UseETime = search.UseETime
realSearch.OrderStatus = search.OrderStatus
realSearch.OrderNo = search.OrderNo
realSearch.MailingState = search.MailingState
realSearch.Name = search.Name
realSearch.CouponsName = search.CouponsName
realSearch.ContactNumber = search.ContactNumber
console.log(realSearch)
},
setOrderStatus(statusId: number) {
realSearch.OrderStatus = statusId
}
}
const searchCnt = computed(() => {
let setCnt = 0
if ($q.platform.is.mobile) {
if (search.OrderStatus > 0) setCnt++
if (search.StartTime.length > 0) setCnt++
if (search.OrderNo > 0) setCnt++
}
if (search.OrderId>0) setCnt++
if (search.UseSTime.length > 0) setCnt++
if (search.MailingState > 0) setCnt++
if (search.Name) setCnt++
if (search.CouponsName) setCnt++
if (search.ContactNumber) setCnt++
return setCnt
})
methods.initStatus()
return {
...toRefs(data),
...methods,
search,
searchCnt
}
}
})
</script>
<style></style>
This diff is collapsed.
This diff is collapsed.
...@@ -1131,7 +1131,7 @@ export default { ...@@ -1131,7 +1131,7 @@ export default {
since: '起', since: '起',
selectionscheme: '選擇方案', selectionscheme: '選擇方案',
headerlabel:{ headerlabel:{
d1: '印象自組團', d1: '直營產品',
d2: '行程時間', d2: '行程時間',
d21: '天', d21: '天',
d3: '日本語/中文 導覽', d3: '日本語/中文 導覽',
......
<template>
<div class="fix-height-subpage column no-wrap q-pa-md">
<trip-order-header></trip-order-header>
<trip-order-list></trip-order-list>
</div>
</template>
<script lang="ts">
import { defineComponent, inject, provide, reactive, toRefs, onMounted } from 'vue'
import { currentRouter } from 'src/router'
import useMetaModule from '../../module/meta/metaModule'
import { useI18n } from 'vue-i18n'
import TripOrderHeader from 'src/components/trip/order/TripOrderHeader.vue'
import { DirtionmaryHelper } from 'src/config/dictionary'
import TripOrderList from 'src/components/trip/order/TripOrderList.vue'
export default defineComponent({
components: {TripOrderHeader, TripOrderList},
setup(props) {
let { setTitle } = useMetaModule()
const { t } = useI18n()
const pageTitle = inject(DirtionmaryHelper.PAGE_TITLE_KEY) as any
pageTitle.value = t('v102.to.pageTitle')
setTitle(pageTitle.value)
const search = reactive({
OrderId: '',
OrderNo: '',
OrderStatus: 0,
StartTime: '',
EndTime: '',
// TicketName:'',//景区名称
CouponsName: '',//景区名称
ContactNumber: '',//电话
Name: '',//顾客名称
UseSTime: '',//门票开始时间
UseETime: '',//门票结束时间
MailingState: -1
})
search.OrderId = currentRouter.currentRoute.value.params.orderId
provide(DirtionmaryHelper.TICKET_ORDER_SEARCH, search)
const menu = inject(DirtionmaryHelper.MENU_KEYS) as any
menu.value = 18
const data = reactive({})
const methods = {}
onMounted(() => {})
return { ...toRefs(data), ...methods, search }
}
})
</script>
<style></style>
This diff is collapsed.
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
class="q-mr-sm" class="q-mr-sm"
/> />
<span <span
>日本 - >{{dataList.aimPlaceName}} -
<span v-for="(x, i) in citys" :key="i"> <span v-for="(x, i) in citys" :key="i">
<span class="cursor-pointer">{{ x }} </span> <span class="cursor-pointer">{{ x }} </span>
...@@ -83,14 +83,14 @@ ...@@ -83,14 +83,14 @@
class="transparent q-mr-xl no-padding" class="transparent q-mr-xl no-padding"
square square
icon="iconfont icontime" icon="iconfont icontime"
:label="` ${$t('v103.details.headerlabel.d2')} ${dataList.dayList.length} ${$t('v103.details.headerlabel.d21')}`" :label="` ${$t('v103.details.headerlabel.d2')} ${dataList.dayNum} ${$t('v103.details.headerlabel.d21')}`"
/> />
<q-chip <!-- <q-chip
class="transparent q-mr-xl no-padding" class="transparent q-mr-xl no-padding"
square square
icon="iconfont iconnetwork-fill" icon="iconfont iconnetwork-fill"
:label="$t('v103.details.headerlabel.d3')" :label="$t('v103.details.headerlabel.d3')"
/> /> -->
<q-chip <q-chip
class="transparent q-mr-xl no-padding" class="transparent q-mr-xl no-padding"
square square
...@@ -145,6 +145,7 @@ ...@@ -145,6 +145,7 @@
</q-field> </q-field>
<template v-if="currentPrice&&currentPrice.startDate"> <template v-if="currentPrice&&currentPrice.startDate">
<order-preview class="q-pa-md" <order-preview class="q-pa-md"
:msg="msg"
:price="currentPrice" :price="currentPrice"
@reset="resetHandler" @reset="resetHandler"
></order-preview> ></order-preview>
...@@ -185,7 +186,10 @@ ...@@ -185,7 +186,10 @@
<calendar :priceList="dataList.priceList" @change="changeChosenDateHandler" ref="calendarRef"></calendar> <calendar :priceList="dataList.priceList" @change="changeChosenDateHandler" ref="calendarRef"></calendar>
</div> </div>
<div class="col q-ml-xl"> <div class="col q-ml-xl">
<order-preview :price="currentPrice" @reset="resetHandler"></order-preview> <order-preview
:msg="msg"
:price="currentPrice"
@reset="resetHandler"></order-preview>
</div> </div>
</div> </div>
</div> </div>
...@@ -434,13 +438,7 @@ export default defineComponent({ ...@@ -434,13 +438,7 @@ export default defineComponent({
}) })
}, },
handleScroll(e) { handleScroll(e) {
// console.log(document.querySelector('#scrollId .q-scrollarea__container').scrollTop, '...............')
let temp = document.querySelector('#scrollId .q-scrollarea__container').scrollTop let temp = document.querySelector('#scrollId .q-scrollarea__container').scrollTop
// if(temp-data.currentHeight>0){
// data.scrollDirection='down'
// }else{
// data.scrollDirection='up'
// }
data.stickyHeight = document.querySelector('.q-header--hidden') ? 'translateY(0px)' : 'translateY(0px)' data.stickyHeight = document.querySelector('.q-header--hidden') ? 'translateY(0px)' : 'translateY(0px)'
data.currentHeight = temp data.currentHeight = temp
if (data.videoPosition > 0 && data.videoPosition < data.currentHeight && data.options.currentPage == 0 && !data.isPictureInPicture) { if (data.videoPosition > 0 && data.videoPosition < data.currentHeight && data.options.currentPage == 0 && !data.isPictureInPicture) {
......
...@@ -717,6 +717,7 @@ export default defineComponent({ ...@@ -717,6 +717,7 @@ export default defineComponent({
}) })
const search = reactive({ const search = reactive({
RetrievalState: false,
datesId: 0, datesId: 0,
DayId: 0, DayId: 0,
chosenAddress: [] as Array<any>,//右边目的地 chosenAddress: [] as Array<any>,//右边目的地
......
...@@ -34,6 +34,8 @@ const routes: RouteRecordRaw[] = [ ...@@ -34,6 +34,8 @@ const routes: RouteRecordRaw[] = [
{ path: '/scheduledTrip/index', component: () => import('pages/scheduledTrip/scheduledTripList.vue') },//预定行程 { path: '/scheduledTrip/index', component: () => import('pages/scheduledTrip/scheduledTripList.vue') },//预定行程
{ path: '/scheduledTrip/details/:id/:tcid', component: () => import('pages/scheduledTrip/detailsNew.vue') }, { path: '/scheduledTrip/details/:id/:tcid', component: () => import('pages/scheduledTrip/detailsNew.vue') },
{ path: '/scheduledTrip/preview/:tripId', component: () => import('pages/scheduledTrip/TripOrderPreview.vue') },
{ path: '/scheduledTrip/order/:orderId?', component: () => import('pages/scheduledTrip/TripOrder.vue') },
] ]
}, },
......
...@@ -108,6 +108,12 @@ const useMenus = { ...@@ -108,6 +108,12 @@ const useMenus = {
id: 17, id: 17,
parentId: 16, parentId: 16,
}, },
{
name: t('menu.stroke.three'),
url: '/scheduledTrip/order',
id: 18,
parentId: 16,
},
] ]
}) })
menus.push({ menus.push({
......
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