Commit c151a6b0 authored by youjie's avatar youjie

no message

parent 15f18db0
......@@ -966,6 +966,13 @@ export default {
tabtitle1:'ご註文を受けます',
tabtitle2:'お届けします',
tabtitle3:'車をチャーターします',
tuanduixinxi: 'チームメッセージです',
dindanxinxi: '註文情報で',
di: '第',
tian: '日',
ms: '註文明細です',
ds: '総受注日数です',
nt: '註文情報がありません'
},
CharteredBus: {
pageTitle: '車両検索します',
......
......@@ -966,6 +966,13 @@ export default {
tabtitle1:"주문받기",
tabtitle2:"기계배달주문",
tabtitle3:"전세차 주문서",
tuanduixinxi:"팀 정보",
dindanxinxi:'주문정보',
di: '제',
tian: '일',
ms: '주문서 명세',
ds:"총 주문일수",
nt:"주문 정보가 없습니다"
},
CharteredBus:{
pagetitle:'자동차 검색',
......
......@@ -966,6 +966,13 @@ export default {
tabtitle1: '接機訂單',
tabtitle2: '送機訂單',
tabtitle3: '包車訂單',
tuanduixinxi: '團隊信息',
dindanxinxi: '訂單信息',
di: '第',
tian: '天',
ms: '訂單明細',
ds: '訂單總天數',
nt: '沒有訂單信息'
},
CharteredBus:{
pageTitle: '車輛檢索',
......
......@@ -129,7 +129,7 @@
<div class="col">{{ detailsObj.CarType==1?$t('v102.CharteredBus.sjc.c12'):$t('v102.CharteredBus.sjc.c13') }}</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="msg.AirportTerminal" class="col q-mt-md col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.CharteredBus.sjcp.c7')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestAirportTerminal"/>
<q-input dense standout v-model="msg.AirportTerminal" class="col q-mt-md" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.CharteredBus.sjcp.c7')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestAirportTerminal"/>
<q-input dense standout v-model="msg.AirLine" class="col q-mt-md" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.CharteredBus.sjcp.c8')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestAirLine"/>
<q-input dense standout v-model="msg.FlightNumber" class="col q-mt-md" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.CharteredBus.sjcp.c9')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestFlightNumber"/>
<div class="col">
......
<template>
<div class="fix-height-subpage row justify-center q-pa-md no-wrap">
<q-card flat class="" style="width: 60vw;">
<q-card-section>
<div class="flex2">
<q-input style="width: 172px;" v-if="$q.platform.is.desktop" class="q-mr-md"
v-model="search.UseCompName" dense standout :label="$t('v102.vehicle.title1')" />
<div class="flex2">
<q-input class="q-mr-md" v-model="search.UseName" dense standout
:label="$t('v102.vehicle.title2')" />
</div>
<div class="flex2" style="">
<q-input class="q-mr-md" v-model="search.PickUpInfo" dense standout
:label="$t('v102.vehicle.title3')" />
</div>
<div class="flex2">
<q-input class="q-mr-md" style='' v-model="search.GoFlightInfo" dense standout
:label="$t('v102.vehicle.title4')" />
</div>
<div class="flex2">
<q-input class="q-mr-md" style='' v-model="search.BackFlightInfo" dense standout
:label="$t('v102.vehicle.title5')" />
</div>
<div class="flex2">
<q-input v-model="search.PeopleNum" style="width: 172px" class="q-mr-md" dense mask="#.##"
reverse-fill-mask ftype="text" standout :label="$t('v102.vehicle.title6')" />
</div>
<div class="q-my-md" style="margin-right: 16px;">
<q-field stack-label :label="$t('v102.vehicle.title7')" standout class="col-2"
style="min-width: 177px" dense>
<div class="self-center full-width no-outline" tabindex="0">{{ search.StartDate }}</div>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="search.StartDate" :options="optionsFn" mask="YYYY-MM-DD"
@update:model-value="dateRangeHandler">
</q-date>
</q-popup-proxy>
</q-field>
</div>
<q-input @blur="checkInteger()" v-model="search.UseDayNum" class="q-mr-md" dense mask="#.##"
reverse-fill-mask ftype="text" standout :label="$t('v102.vehicle.title8')" />
<q-input class="q-mr-md" style='' v-model="search.GuideInfo" dense standout
:label="$t('v102.vehicle.title10')" />
<q-input class="q-mr-md" style='' v-model="search.TeamName" dense standout
:label="$t('v102.vehicle.title11')" />
<div class="q-my-md" style="margin-top: 0px;">
<q-select style="width: 170px;" v-model="search.BusType" dense :options="vehicletop" emit-value
option-label="Name" option-value="Id" map-options clearable
:label="$t('v102.vehicle.title13')" standout />
</div>
<div class="fix-height-subpage column no-wrap">
<div class="row q-pa-md" style="min-width: 375px; margin: 0 auto" :style="{ width: $q.screen.lt.xl ? '100%' : '1320px' }" :class="{'row':$q.screen.width>=1200 && $q.platform.is.desktop,'column':$q.screen.width<1200 || $q.platform.is.mobile}">
<div class="col">
<q-card class="q-pa-md" flat>
<div class="text-h6 q-mb-md">{{$t('v102.vehicle.tuanduixinxi')}}</div>
<div class="row q-pb-md q-mb-md" style="border-bottom: 1px solid #f1f1f1">
<div class="col">
<div class="fz14 text-grey-600">
{{ $t('v102.CharteredBus.ordertip') }}
</div>
</div>
<!-- 表格 -->
<div style="max-height:600px;overflow: auto;" v-if="search.details && search.details.length > 0">
<table width="100%" height='100%' border="1" style="text-align:left;border-collapse:collapse;table-layout:fixed;word-break:break-all;border: 1px solid rgba(0, 0, 0, 0.12);
margin: auto;">
<tr>
<th width="15%" align="center" class="td-title">{{ $t('v102.vehicle.tatle.th1') }}</th>
<th width="10%" align="center" class="td-title">{{ $t('v102.vehicle.tatle.th2') }}</th>
<th width="30%" align="center" class="td-title">{{ $t('v102.vehicle.tatle.th3') }}</th>
<th width="45%" align="center" class="td-title">{{ $t('v102.vehicle.tatle.th4') }}</th>
</tr>
<template v-for="(item, i) in search.details" :key="i">
<tr>
<td>
{{ item.UseDate }}
</td>
<td>
DAY{{ item.DayNum }}
</td>
<td>
<div class="q-my-md">
<q-select style="width: 180px;" v-model="item.UseType" dense
:options="listvehicle" emit-value option-label="Name" option-value="Id"
map-options clearable :label="$t('v102.vehicle.tatle.th3')" standout />
</div>
<!-- 用车时间 -->
<div v-if="item.UseType == 3 || item.UseType == 4">
<q-input dense standout v-model="item.UseTime" mask="time"
:label="$t('v102.vehicle.title14')" style="width:180px;">
<template v-slot:append>
<q-icon name="access_time" class="cursor-pointer">
<q-popup-proxy transition-show="scale" transition-hide="scale">
<q-time v-model="item.UseTime">
<div class="row items-center justify-end">
<q-btn v-close-popup :label="$t('v102.vehicle.add5')"
color="primary" flat />
</div>
</q-time>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
</td>
<td>
<div>
<q-input class="q-mr-md" style='' v-model="item.TripInfo" dense standout
:label="$t('v102.vehicle.tatle.th4')" />
</div>
</td>
</tr>
</template>
</table>
</div>
<div>
<div :class="{'row items-center':$q.platform.is.desktop,'column':$q.platform.is.mobile}">
<q-input dense standout v-model="search.UseCompName" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title1')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestUseCompName"/>
<q-input dense standout v-model="search.UseName" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title2')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestUseName"/>
<q-input dense standout v-model="search.PickUpInfo" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title3')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestPickUpInfo"/>
<q-input dense standout v-model="search.GoFlightInfo" class="col" :placeholder="$t('v102.vehicle.title4')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestGoFlightInfo"/>
</div>
<div :class="{'row items-center':$q.platform.is.desktop,'column':$q.platform.is.mobile}">
<q-input dense standout v-model="search.BackFlightInfo" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title5')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestBackFlightInfo"/>
<q-input type="number" dense standout v-model="search.PeopleNum" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title6')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestPeopleNum"/>
<q-field :class="{'q-mr-md':$q.platform.is.desktop}" standout :model-value="search.StartDate" class="col height text-dark cursor-pointer q-pb-md" ref="guestStartDate">
<template v-slot:control>
<div class="self-center full-width no-outline" tabindex="0">
<template v-if="search.StartDate">{{search.StartDate}}</template>
<span v-else class="text-grey-6">{{$t('v102.vehicle.title7') }}</span>
</div>
</template>
<q-popup-proxy :offset="[0, 10]" ref="qDateProxy">
<q-date v-model="search.StartDate" :options="optionsFn" mask="YYYY-MM-DD"
@update:model-value="dateRangeHandler">
</q-date>
</q-popup-proxy>
</q-field>
<q-input type="number" dense standout v-model="search.UseDayNum" class="col" :placeholder="$t('v102.vehicle.title8')" :rules="[ val => val && val.length > 0 || ' ']" @update:model-value="checkInteger" ref="guestUseDayNum"/>
</div>
<div :class="{'row items-center':$q.platform.is.desktop,'column':$q.platform.is.mobile}">
<q-input dense standout v-model="search.GuideInfo" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title1')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestGuideInfo"/>
<q-input dense standout v-model="search.TeamName" class="col" :class="{'q-mr-md':$q.platform.is.desktop}" :placeholder="$t('v102.vehicle.title2')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestTeamName"/>
<q-select class="col q-pb-md" :class="{'q-mr-md':$q.platform.is.desktop}" unelevated v-model="search.BusType" dense :options="vehicletop" emit-value option-label="Name" option-value="Id" map-options :label="$t('v102.vehicle.title13')" standout ref="guestUseBusType">
</q-select>
<div class="col"></div>
</div>
</div>
</q-card>
<q-card class="q-pa-md q-mt-lg" flat>
<div>
<div class="text-h6 q-mb-md">{{ $t('v102.vehicle.dindanxinxi') }}</div>
<template v-if="search.details.length>0">
<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.vehicle.tatle.th1') }}</div>
<div class="col q-mr-md">{{ $t('v102.vehicle.tatle.th2') }}</div>
<div class="col q-mr-md">{{ $t('v102.vehicle.tatle.th3') }}</div>
<div class="col">{{ $t('v102.vehicle.tatle.th4') }}</div>
</div>
<div v-for="(x,index) in search.details" style="border-top: 1px dashed #eee" :class="{'row items-center':$q.platform.is.desktop,'column':$q.platform.is.mobile}">
<div class="col col" :class="{'q-mr-md':$q.platform.is.desktop}">
{{x.UseDate}}
</div>
<div class="col col" :class="{'q-mr-md':$q.platform.is.desktop}">
{{x.DayNum}}
</div>
<q-select class="col" :class="{'q-mr-md':$q.platform.is.desktop}" unelevated v-model="x.UseType" dense :options="listvehicle" emit-value option-label="Name" option-value="Id" map-options :label="$t('v102.vehicle.title9')" standout ref="guestUseType">
</q-select>
<q-input dense standout v-model="x.TripInfo" class="col q-mt-md" :placeholder="$t('v102.CharteredBus.sjcp.c9')" :rules="[ val => val && val.length > 0 || ' ']" ref="guestTripInfo"/>
</div>
</template>
<div v-else class="col row justify-center items-center q-pa-md">
<span class="text-center text-grey-600 q-py-lg">{{ $t('v102.vehicle.nt') }}</span>
</div>
<!-- 表格 -->
</q-card-section>
<q-card-actions align="right" class="bg-white">
<q-btn flat dense color="dark" :label="$t('v102.vehicle.close')" class="q-mr-sm" @click="down"
v-close-popup />
<q-btn unelevated dense color="accent q-pa-lg" :label="$t('v102.to.m.s')" @click="join" />
</q-card-actions>
</q-card>
</div>
<!-- <div class="q-mt-md">
<q-input v-model="search.Remark" standout autogrow :label="$t('v102.ticket.or') " />
</div> -->
</div>
</q-card>
</div>
<div class="" :class="{'q-ml-lg':!($q.screen.width<1200 || $q.platform.is.mobile),'q-mt-lg':($q.screen.width<1200 || $q.platform.is.mobile)}">
<div class="rounded-borders bg-white q-pa-md" style="width: 300px" :style="{'width':($q.screen.width<1200 || $q.platform.is.mobile)?'100%':'300px'}">
<div class="text-h6 text-grey-900">{{ $t('v102.vehicle.ms') }}</div>
<div class="q-pt-md q-mb-lg" style="border-top: 1px dashed #eee">
<div v-if="isCheck">
<template v-for="x in search.details">
<div class="row items-center q-mt-md">
<q-badge color="grey-3" style="padding: 5px 8px" text-color="info" :label="`${x.UseDate}${x.UseType&&listvehicle.length>0&&listvehicle.filter(y => y.Id==x.UseType)[0].Name}`" />
<div class="col f12 text-right">
{{ $t('v102.vehicle.di') }}{{x.DayNum}}{{ $t('v102.vehicle.tian') }}
</div>
</div>
</template>
</div>
<div v-else class="text-center text-grey-600 q-py-lg">{{ $t('v102.vehicle.nt') }}</div>
</div>
<div class="q-pt-md q-mb-lg text-right" style="border-top: 1px dashed #eee">
<span class="f12 text-dark q-mr-md">
{{ $t('v102.vehicle.ds') }}:
</span>
<span class="text-h6 text-negative">
{{ search.details.length }}
</span>
</div>
<div class="text-right">
<q-btn color="primary" unelevated class="q-px-lg" :disable="!isCheck" :label="`${!search.Id?$t('v102.ticket.sb'):$t('v102.CharteredBus.bianji')}`" @click="submit"/>
</div>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import useMetaModule from '../../module/meta/metaModule'
......@@ -135,13 +136,31 @@ export default defineComponent({
setup(props, context) {
const $router = useRouter()
const qDateProxy = ref(null) as any
const guestUseCompName = ref(null) as any
const guestUseName = ref(null) as any
const guestPickUpInfo = ref(null) as any
const guestGoFlightInfo = ref(null) as any
const guestBackFlightInfo = ref(null) as any
const guestPeopleNum = ref(null) as any
const guestStartDate = ref(null) as any
const guestUseDayNum = ref(null) as any
const guestGuideInfo = ref(null) as any
const guestTeamName = ref(null) as any
const guestUseBusType = ref(null) as any
const guestUseType = ref(null) as any
const guestTripInfo = ref(null) as any
const { t } = useI18n()
let { setTitle } = useMetaModule()
const pageTitle = inject(DirtionmaryHelper.PAGE_TITLE_KEY) as any
pageTitle.value = t('v102.vehicle.pageTitle2')
setTitle(pageTitle.value)
const data = reactive({
isCheck: false,
timeData: null,
loading: false,
carTypes: [] as any,
search: {
Id: 0,
UseCompName: "",//订车单位
......@@ -149,8 +168,8 @@ export default defineComponent({
PickUpInfo: "",//接机信息
GoFlightInfo: "",//去程航班
BackFlightInfo: "",//回程航班
PeopleNum: '',//用车人数
UseDayNum: null,//行程天数
PeopleNum: null as Number,//用车人数
UseDayNum: null as Number,//行程天数
StartDate: "",//开始日期
BusType: null,//用车类型(接口返下拉列表)
GuideInfo: "",//导游信息
......@@ -196,13 +215,15 @@ export default defineComponent({
data.search.PickUpInfo = r.data.data.PickUpInfo
data.search.GoFlightInfo = r.data.data.GoFlightInfo
data.search.BackFlightInfo = r.data.data.BackFlightInfo
data.search.PeopleNum = r.data.data.PeopleNum
data.search.UseDayNum = r.data.data.UseDayNum
data.search.PeopleNum = String(r.data.data.PeopleNum)
data.search.UseDayNum = String(r.data.data.UseDayNum)
data.search.StartDate = r.data.data.StartDate.slice(0, 10)
data.search.BusType = r.data.data.BusType
data.search.GuideInfo = r.data.data.GuideInfo
data.search.TeamName = r.data.data.TeamName
data.search.details = r.data.data.details
data.isCheck = true
}else{
message.errorMsg(r.data.message)
}
})
......@@ -285,10 +306,8 @@ export default defineComponent({
},
// 点击时间选项
dateRangeHandler(e: any) {
if (qDateProxy.value) {
qDateProxy.value.hide()
methods.checkInteger()
}
if (qDateProxy.value) qDateProxy.value.hide()
methods.checkInteger()
},
// 测试
// 天数失去焦点时间
......@@ -304,8 +323,8 @@ export default defineComponent({
details2.push({
DayNum: i + 1,
UseDate: item,//日期
UseType: null as any,//用车类型(接口返下拉列表)
UseTime: '',//接送机时间
UseType: '' as any,//用车类型(接口返下拉列表)
// UseTime: '',//接送机时间
TripInfo: "",//行程信息
})
})
......@@ -313,6 +332,9 @@ export default defineComponent({
}
}
}
if(data.search.details.length>0){
data.isCheck = true
}
// console.log('时间差2', details2)
},
// 关闭
......@@ -320,7 +342,10 @@ export default defineComponent({
$router.push({ path: `/vehicle/order/0` })
},
// 确定
join() {
submit() {
let flag = false
flag = !guestUseCompName.value.hasError && !guestUseName.value.hasError && !guestPickUpInfo.value.hasError && !guestGoFlightInfo.value.hasError && !guestBackFlightInfo.value.hasError && !guestPeopleNum.value.hasError && !guestStartDate.value.hasError && !guestUseDayNum.value.hasError && !guestGuideInfo.value.hasError && !guestTeamName.value.hasError && !guestUseBusType.value.hasError && !guestUseType.value.hasError && !guestTripInfo.value.hasError
if(!flag) return
HotelService.vehicletripbus(data.search)
.then(r => {
if (r.data.resultCode == ApiResult.SUCCESS) {
......@@ -331,15 +356,30 @@ export default defineComponent({
}
})
.catch(e => {
message.errorMsg(e.message)
// message.errorMsg(e.message)
})
},
optionsFn(cd: any) {
return cd >= date.formatDate(date.addToDate(new Date(), { days: 0 }), 'YYYY/MM/DD')
return cd >= date.formatDate(date.addToDate(new Date(), { days: 1 }), 'YYYY/MM/DD')
},
}
return { ...toRefs(data), ...methods, qDateProxy }
return { ...toRefs(data), ...methods,
qDateProxy,
guestUseCompName,
guestUseName,
guestPickUpInfo,
guestGoFlightInfo,
guestBackFlightInfo,
guestPeopleNum,
guestStartDate,
guestUseDayNum,
guestGuideInfo,
guestTeamName,
guestUseBusType,
guestUseType,
guestTripInfo,
}
}
})
......@@ -357,4 +397,10 @@ export default defineComponent({
font-weight: 400;
color: #a8a8b3;
}
:deep(.height.q-field--auto-height .q-field__control){
min-height: 40px !important;
}
:deep(.height.q-field--auto-height .q-field__native){
min-height: 40px !important;
}
</style>
\ No newline at end of file
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