Commit c3a41c55 authored by youjie's avatar youjie

no message

parent 47b97258
...@@ -85,6 +85,8 @@ export default { ...@@ -85,6 +85,8 @@ export default {
data.searchClone.StartTime = data.dateRange.from data.searchClone.StartTime = data.dateRange.from
data.searchClone.EndTime = data.dateRange.to data.searchClone.EndTime = data.dateRange.to
search.msg.StartTime = data.dateRange.from
search.msg.EndTime = data.dateRange.to
const methods = { const methods = {
goUrl(){ goUrl(){
$router.push({ path:`/vehicle/addEditVehicle`}) $router.push({ path:`/vehicle/addEditVehicle`})
......
<template> <template>
<div> <div>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat v-for="(x,index) in orders"> <q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat v-for="(x,index) in orders">
<!-- <div class="row items-center desktop-only"> <div class="row items-center desktop-only">
<div class="q-mr-md"> <div class="q-mr-md">
<q-btn :color="search.OrderType == 1 ?'cyan' : (search.OrderType == 2 ?'negative':'positive')" unelevated disable size="sm"> <q-btn :color="search.OrderType == 4 ?'cyan' : (search.OrderType == 2 ?'negative':'positive')" unelevated disable size="sm">
<template v-if="search.OrderType == 1">{{$t('v102.CharteredBus.baochetype1')}}</template> {{$t('v102.vehicle.travelvehicle')}}
<template v-if="search.OrderType == 2">{{$t('v102.CharteredBus.baochetype2')}}</template>
<template v-if="search.OrderType == 3">{{$t('v102.CharteredBus.baochetype3')}}</template>
</q-btn> </q-btn>
</div> </div>
<div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div> <div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div>
<div class="q-ml-md"> <div class="q-ml-md">
<q-btn color="dark" flat size="sm" :label="$t('hotelorder.copy')" v-if="copyId != x.OrderId" @click="setCopyHandler(x)" /> <q-btn color="dark" flat size="sm" :label="$t('hotelorder.copy')" v-if="copyId != x.Id" @click="setCopyHandler(x)" />
<q-btn color="cyan" icon="check" outline size="sm" :label="$t('hotelorder.copyed')" v-else></q-btn> <q-btn color="cyan" icon="check" outline size="sm" :label="$t('hotelorder.copyed')" v-else></q-btn>
</div> </div>
<div class="col text-center f12 text-grey-6"> <div class="col text-center f12 text-grey-6">
<span>{{ $t('v102.ticket.sj') }}:{{ x.SurName }}{{ x.Name }}/{{ x.Mobile }}</span> <span>{{ $t('v102.ticket.sj') }}{{ x.CustomerName }}/{{
x.ContactNumber
}}</span>
</div> </div>
<div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}:{{ x.CreateTime }}</div> <div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateDate }}</div>
<div class="q-ml-md f12" :class="[x.typeInfo.Color]"> <div class="q-ml-md f12" :class="[x.typeInfo.Color]">
<q-icon :name="x.typeInfo.Icon" /> <q-icon :name="x.typeInfo.Icon" />
<span class="q-ml-sm">{{ x.typeInfo.StatusName }}</span> <span class="q-ml-sm">{{ x.typeInfo.StatusName }}</span>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<div class="row items-center justify-between"> <div class="row items-center justify-between">
<div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div> <div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div>
<div class="q-ml-md"> <div class="q-ml-md">
<q-btn color="dark" flat size="sm" :label="$t('hotelorder.copy')" v-if="copyId != x.OrderId" @click="setCopyHandler(x)" /> <q-btn color="dark" flat size="sm" :label="$t('hotelorder.copy')" v-if="copyId != x.Id" @click="setCopyHandler(x)" />
<q-btn color="cyan" outline size="sm" :label="$t('hotelorder.copyed')" v-else></q-btn> <q-btn color="cyan" outline size="sm" :label="$t('hotelorder.copyed')" v-else></q-btn>
</div> </div>
</div> </div>
...@@ -46,96 +46,82 @@ ...@@ -46,96 +46,82 @@
</div> </div>
<div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateTime }}</div> <div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateTime }}</div>
</div> </div>
</div> --> </div>
<div class="q-mt-md row"> <div class="q-mt-md row">
<q-table separator="cell" :hide-bottom="!x.Remark" :pagination="{ rowsPerPage: 100 }" :rows="[x]" bordered :columns="cols" class="sticky-rightrowspan-column-table light-border col no-shadow"> <q-table separator="cell" :hide-bottom="!x.Remark" :pagination="{ rowsPerPage: 100 }" :rows="[x]" bordered :columns="cols" class="sticky-rightrowspan-column-table light-border col no-shadow">
<template v-slot:body-cell-Id="props"> <template v-slot:body-cell-UseCompName="props">
<!--未提交报价,可以修改--> <q-th :props="props">
<q-td :prop="props"> <div>
<div :class="{'column':$q.platform.is.mobile}"> <div class="ellipsis fz13">{{ props.row.UseCompName }}</div>
<span @click="mask(props.row.Id)" v-if="props.row.Status == 0 && props.row.OfferState == 1"> <div class="fz12 text-grey-6">{{ props.row.UseName }}</div>
<q-btn class="col q-mr-md fz12" color="primary" unelevated <q-tooltip>{{ props.row.UseCompName + props.row.UseName }}</q-tooltip>
:label="$t('v102.vehicle.list.s5')" /> </div>
</span> </q-th>
<span @click="cancel(props.row.Id)" :class="{'q-mt-sm':$q.platform.is.mobile}"> </template>
<q-btn class="col q-mr-md fz12" color="grey-6" unelevated <template v-slot:body-cell-PickUpInfo="props">
:label="$t('v102.vehicle.add3')" /> <q-th :props="props">
</span> <div class="fz13 text-grey-6">
<!--申请报价--> <div>{{$t('v102.vehicle.title4')}}: <span class="text-dark q-pl-sm">{{ props.row.GoFlightInfo }}</span> </div>
<span v-if="props.row.OfferState == 1 && props.row.Status == 0" <div class="q-py-xs">{{$t('v102.vehicle.title5')}}: <span class="text-dark q-pl-sm">{{ props.row.BackFlightInfo }}</span> </div>
@click="ApplyTripBus(props.row)" :class="{'q-mt-sm':$q.platform.is.mobile}"> <div>{{$t('v102.vehicle.title3')}}: <span class="text-dark q-pl-sm">{{ props.row.PickUpInfo }}</span></div>
<q-btn class="col q-mr-md fz12" unelevated color="primary"
:label="$t('v102.vehicle.list.s8')" />
</span>
<!--弹窗显示详细信息-->
<span @click="details(props.row.Id)" v-if="props.row.OfferState == 3" :class="{'q-mt-sm':$q.platform.is.mobile}">
<q-btn class="col q-mr-md fz12" color="primary" unelevated
:label="$t('v102.vehicle.list.s9')" />
</span>
<!--确认报价-->
<span v-if="props.row.OfferState == 3 && props.row.Status == 0"
@click="sureBusPrice(props.row)" :class="{'q-mt-sm':$q.platform.is.mobile}">
<q-btn class="col q-mr-md fz12" color="primary" unelevated
:label="$t('v102.vehicle.list.s10')" />
</span>
</div> </div>
</q-th>
</q-td>
</template> </template>
</q-table> </q-table>
</div> </div>
<!-- <div class="q-mt-md" v-if="x.OrderStatus != 3" :class="{ row: $q.platform.is.desktop, 'column reverse': $q.platform.is.mobile }"> <div class="q-mt-md" v-if="x.OfferState == 2||x.OfferState == 3" :class="{ row: $q.platform.is.desktop, 'column reverse': $q.platform.is.mobile }">
<div class="pay row text-grey rounded-borders" :class="{ 'bg-grey-2 q-mt-md': $q.platform.is.mobile, col: $q.platform.is.desktop }"> <div class="pay row text-grey rounded-borders" :class="{ 'bg-grey-2 q-mt-md': $q.platform.is.mobile, col: $q.platform.is.desktop }">
</div> </div>
<div class="col desktop-only"></div> <div class="col desktop-only"></div>
<div class="rounded-borders bg-grey-2 q-pa-md" :class="{ 'q-mx-md': $q.platform.is.desktop, 'q-mt-md': $q.platform.is.mobile }"> <div class="rounded-borders bg-grey-2 q-pa-md" :class="{ 'q-mx-md': $q.platform.is.desktop, 'q-mt-md': $q.platform.is.mobile }">
<div class="row items-center justify-between q-mb-sm q-pb-sm" style="border-bottom: 1px dashed #ddd"> <!-- style="border-bottom: 1px dashed #ddd" -->
<div class="f12 text-grey">{{ $t('hotelorder.orderMoney') }}</div> <div class="row items-center justify-between q-mb-sm q-pb-sm" >
<div class="f12 text-grey">{{ $t('v102.vehicle.title8') }}</div>
<div class="dark q-ml-xl"> <div class="dark q-ml-xl">
<span class="din text-subtitle1">{{ moneyFormat(x.Money) }}</span> <span class="din text-subtitle1">{{ x.UseDayNum }}</span>
<span class="f12">{{ x.CurrencyCode }}</span> <span class="f12">{{ x.CurrencyCode }}</span>
</div> </div>
</div> </div>
<div class="text-right"> <!-- <div class="text-right">
<q-btn dense outline color="accent" size="sm" class="q-mt-sm" :label="$t('hotelorder.payinfo')" @click="ViewPayment"></q-btn> <q-btn dense outline color="accent" size="sm" class="q-mt-sm" :label="$t('hotelorder.payinfo')" @click="ViewPayment"></q-btn>
</div> </div> -->
</div> </div>
<div class="rounded-borders q-pa-sm justify-between" :class="{ column: $q.platform.is.desktop, 'row items-center': $q.platform.is.mobile, 'bg-green-1': x.OrderStatus != 1, 'bg-grey-2': x.OrderStatus == 1 }"> <div class="rounded-borders q-pa-sm justify-between" :class="{ column: $q.platform.is.desktop, 'row items-center': $q.platform.is.mobile, 'bg-green-1': x.OfferState != 1, 'bg-grey-2': x.OfferState == 1 }">
<q-list dense v-if="x.OrderStatus == 1" :class="{ 'row items-center justify-between full-width': $q.platform.is.mobile }"> <q-list dense v-if="x.OfferState == 1" :class="{ 'row items-center justify-between full-width': $q.platform.is.mobile }">
<q-item class="text-negative" clickable v-close-popup @click="cancelConfirmHandler(x.OrderId)"> <q-item v-if="x.OfferState == 2" class="text-negative" clickable v-close-popup @click="cancel(x.Id)">
<q-item-section> <q-item-section>
<q-item-label>{{ $t('hotelorder.opera.cancel') }}</q-item-label> <q-item-label>{{ $t('hotelorder.opera.cancel') }}</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item class="text-primary" clickable v-close-popup @click="editOrder(x)"> <q-item v-if="x.OfferState == 2" class="text-primary" clickable v-close-popup @click="mask(x.Id)">
<q-item-section> <q-item-section>
<q-item-label>{{ $t('hotelorder.opera.edit') }}</q-item-label> <q-item-label>{{ $t('hotelorder.opera.edit') }}</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item class="text-positive" clickable v-close-popup> <q-item v-if="x.OfferState == 3" class="text-positive" clickable v-close-popup @click="details(x.Id)">
<q-item-section> <q-item-section>
<q-item-label>{{ $t('v101.Listofquotation.baojiadan') }}</q-item-label> <q-item-label>{{ $t('v101.Listofquotation.baojiadan') }}</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
<div v-else> <!-- <div v-else>
<div class="f12 text-green-4">{{ $t('hotelorder.payed') }}</div> <div class="f12 text-green-4">{{ $t('hotelorder.payed') }}</div>
<div class="text-subtitle1 din text-green-14"> <div class="text-subtitle1 din text-green-14">
{{ x.Money.toFixed(2) }} {{ x.Money.toFixed(2) }}
<span class="text-green-4 f12">{{ $t('unit.jp') }}</span> <span class="text-green-4 f12">{{ $t('unit.jp') }}</span>
</div> </div>
</div> </div> -->
</div> </div>
</div> </div>
<div v-if="x.OrderStatus == 3"> <div v-if="x.OfferState == 5">
<div class="q-mt-md q-pa-sm row items-center rounded-borders bg-orange-1" style="border-width: 0 5px; border-style: solid; border-color: #ffb74d"> <div class="q-mt-md q-pa-sm row items-center rounded-borders bg-orange-1" style="border-width: 0 5px; border-style: solid; border-color: #ffb74d">
<div class="text-subtitle2 text-weight-bolder text-grey-900">{{ $t('v101.cancelRemark') }}:</div> <div class="text-subtitle2 text-weight-bolder text-grey-900">{{ $t('v101.cancelRemark') }}:</div>
<div class="f12 text-grey-600 q-ml-sm col">{{ x.CancelRemark ? x.CancelRemark : $t('v101.selfCancle') }}</div> <div class="f12 text-grey-600 q-ml-sm col">{{ x.CancelRemark ? x.CancelRemark : $t('v101.selfCancle') }}</div>
<div class="f12 text-grey-900">{{ x.CancelEmpName }} {{ x.CancelTime }}</div> <div class="f12 text-grey-900">{{ x.CancelEmpName }} {{ x.CancelTime }}</div>
</div> </div>
</div> --> </div>
</q-card> </q-card>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" v-if="pages.pageCount > 0" flat> <q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" v-if="pages.pageCount > 0" flat>
<q-pagination class="full-width justify-end" v-model="pages.pageIndex" color="primary" :max="pages.pageCount" :input="true" @update:model-value="changePageHandler" /> <q-pagination class="full-width justify-end" v-model="pages.pageIndex" color="primary" :max="pages.pageCount" :input="true" @update:model-value="changePageHandler" />
...@@ -173,7 +159,7 @@ ...@@ -173,7 +159,7 @@
<script lang="ts"> <script lang="ts">
import vehiclePopover from '..//vehiclePopover.vue' import vehiclePopover from '..//vehiclePopover.vue'
import vehicleDetails from '../vehicleDetails.vue'//详情 import vehicleDetails from '../vehicleDetails.vue'//详情
import { date } from 'quasar' import { copyToClipboard,useQuasar,date } from 'quasar'
import { ApiResult } from '../../../@types/enumHelper' import { ApiResult } from '../../../@types/enumHelper'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import HotelService from '../../../api/vehicle' import HotelService from '../../../api/vehicle'
...@@ -182,6 +168,7 @@ import { DirtionmaryHelper } from 'src/config/dictionary' ...@@ -182,6 +168,7 @@ import { DirtionmaryHelper } from 'src/config/dictionary'
import { defineComponent, inject, reactive, toRefs, watch } from 'vue' import { defineComponent, inject, reactive, toRefs, watch } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { getStrokeStatus,getSendType,moneyFormat } from '../../../utils/tools'
export default defineComponent({ export default defineComponent({
components: { vehicleDetails }, components: { vehicleDetails },
...@@ -190,6 +177,7 @@ export default defineComponent({ ...@@ -190,6 +177,7 @@ export default defineComponent({
const $q = useQuasar() const $q = useQuasar()
const $router = useRouter() const $router = useRouter()
const data = reactive({ const data = reactive({
copyId: 0,
showdetails: false, showdetails: false,
cancelshow: false, cancelshow: false,
CancelRemark: '', CancelRemark: '',
...@@ -198,28 +186,22 @@ export default defineComponent({ ...@@ -198,28 +186,22 @@ export default defineComponent({
loading: false, loading: false,
pages: { pages: {
pageIndex: 1, pageIndex: 1,
pageSize: 12, pageSize: 5,
pageCount: 0, pageCount: 0,
}, },
orders: [] as any[], orders: [] as any[],
status: [] as Array<StandardStatus>,
sends: [] as Array<SendType>,
ProductId: {} as any, ProductId: {} as any,
showDetails: false, showDetails: false,
cols: [ cols: [
{ name: 'UseCompName', label: t('v102.vehicle.title1'), field: (row: any) => row.UseCompName, align: 'left' }, { name: 'UseCompName', label: t('v102.vehicle.title1'), field: (row: any) => row, align: 'left' },
{ name: 'UseName', label: t('v102.vehicle.title2'), field: (row: any) => row.UseName, align: 'left' }, { name: 'PickUpInfo', label: t('v102.vehicle.title3'), field: (row: any) => row, align: 'left' },
{ name: 'PickUpInfo', label: t('v102.vehicle.title3'), field: (row: any) => row.PickUpInfo, align: 'left' },
{ name: 'GoFlightInfo', label: t('v102.vehicle.title4'), field: (row: any) => row.GoFlightInfo, align: 'left' },
{ name: 'BackFlightInfo', label: t('v102.vehicle.title5'), field: (row: any) => row.BackFlightInfo, align: 'left' },
{ name: 'PeopleNum', label: t('v102.vehicle.title6'), field: (row: any) => row.PeopleNum, align: 'left' }, { name: 'PeopleNum', label: t('v102.vehicle.title6'), field: (row: any) => row.PeopleNum, align: 'left' },
{ name: 'StartDate', label: t('v102.vehicle.title7'), field: (row: any) => row.StartDate, align: 'left' }, { name: 'StartDate', label: t('v102.vehicle.title7'), field: (row: any) => row.StartDate, align: 'left' },
{ name: 'UseDayNum', label: t('v102.vehicle.title8'), field: (row: any) => row.UseDayNum, align: 'left' }, { name: 'BusTypeName', label: t('v102.vehicle.title9'), field: (row: any) => row.BusTypeName, align: 'left' },
{ name: 'BusTypeName', label: t('v102.vehicle.title9'), field: (row: any) => row.GuideInfo, align: 'left' },
{ name: 'UseName', label: t('v102.vehicle.title10'), field: (row: any) => row.GuideInfo, align: 'left' }, { name: 'UseName', label: t('v102.vehicle.title10'), field: (row: any) => row.GuideInfo, align: 'left' },
{ name: 'TeamName', label: t('v102.vehicle.title11'), field: (row: any) => row.TeamName, align: 'left' }, { name: 'TeamName', label: t('v102.vehicle.title11'), field: (row: any) => row.TeamName, align: 'left' },
{ name: 'CreateDate', label: t('v102.vehicle.title12'), field: (row: any) => row.CreateDate, align: 'left' },
{ name: 'OfferStateName', label: t('v102.vehicle.list.s6'), field: (row: any) => row.OfferStateName, align: 'left' },
{ name: 'IsSure', label: t('v102.vehicle.list.s10'), field: (row: any) => row.IsSure, align: 'left' },
{ name: 'Id', label: t('hotel.addRoomBtn'), field: (row: any) => row.Id, align: 'left' },
] as any, ] as any,
}) })
...@@ -241,6 +223,11 @@ export default defineComponent({ ...@@ -241,6 +223,11 @@ export default defineComponent({
}) })
const methods = { const methods = {
init() {
data.status = getStrokeStatus()
data.sends = getSendType()
methods.getList()
},
// 详情 // 详情
details(val: any) { details(val: any) {
data.Id = val data.Id = val
...@@ -296,10 +283,14 @@ export default defineComponent({ ...@@ -296,10 +283,14 @@ export default defineComponent({
$router.push({ path: `/vehicle/addEditVehicle${data.Id ? '/' + data.Id : ''}` }) $router.push({ path: `/vehicle/addEditVehicle${data.Id ? '/' + data.Id : ''}` })
}, },
getList() { getList() {
console.log(search.msg,'===---')
let param = Object.assign(data.pages, search.msg) let param = Object.assign(data.pages, search.msg)
HotelService.vehicleList(param) HotelService.vehicleList(param)
.then(r => { .then(r => {
if (r.data.resultCode == ApiResult.SUCCESS) { if (r.data.resultCode == ApiResult.SUCCESS) {
r.data.data.pageData.forEach((x: any) => {
x.typeInfo = data.status.find(y => y.StatusId == x.OfferState) ?? data.status[1]
})
data.orders = r.data.data.pageData data.orders = r.data.data.pageData
data.pages.pageCount = r.data.data.pageCount data.pages.pageCount = r.data.data.pageCount
} else { } else {
...@@ -317,11 +308,25 @@ export default defineComponent({ ...@@ -317,11 +308,25 @@ export default defineComponent({
data.pages.pageIndex = n data.pages.pageIndex = n
methods.getList() methods.getList()
}, },
setCopyHandler(order: any, ctx?: string) {
if (ctx) {
data.copyId = -1
copyToClipboard(ctx)
} else {
data.copyId = order.Id
copyToClipboard(order.OrderNo)
}
setTimeout(() => {
data.copyId = 0
}, 2000)
}
} }
methods.getList() methods.init()
return { return {
...toRefs(data), ...toRefs(data),
...methods, ...methods,
moneyFormat,
search search
} }
} }
......
...@@ -911,13 +911,21 @@ export default { ...@@ -911,13 +911,21 @@ export default {
title13: "車型選擇", title13: "車型選擇",
title14: "接送機時間", title14: "接送機時間",
close: "取消", close: "取消",
travelvehicle: '行程用車',
strokestatus:{
d1: '未報價',
d2: '待確認',
d3: '已確認',
d4: '確認報價',
d5: '已取消',
},
tatle: { tatle: {
th1: '日期', th1: '日期',
th2: '第幾天', th2: '第幾天',
th3: '用車類型', th3: '用車類型',
th4: '行程信息', th4: '行程信息',
th5: '操作', th5: '操作',
th6: '除', th6: '除',
}, },
add: '添加', add: '添加',
add2: '修改', add2: '修改',
......
...@@ -193,6 +193,24 @@ export function getHotelOrderStatus():Array<StandardStatus>{ ...@@ -193,6 +193,24 @@ export function getHotelOrderStatus():Array<StandardStatus>{
return status return status
} }
export function getStrokeStatus():Array<StandardStatus>{
let status=[] as Array<StandardStatus>
let text = [t('v102.vehicle.strokestatus.d1'),t('v102.vehicle.strokestatus.d2'),t('v102.vehicle.strokestatus.d3'),t('v102.vehicle.strokestatus.d4'),t('v102.vehicle.strokestatus.d5')]
let color = ['','positive','dark','orange','negative']
let icons = ['','update','done','offline_bolt','cached']
text.forEach((x,i:number)=>{
status.push({
StatusId:i+1,
StatusName:x,
Icon:icons[i],
Color:`text-${color[i]}`
})
})
return status
}
export function getScatteredHotelOrderStatus():Array<StandardStatus>{ export function getScatteredHotelOrderStatus():Array<StandardStatus>{
let status=[] as Array<StandardStatus> let status=[] as Array<StandardStatus>
let text = [t('hotelorder.orderStatus.normal'),t('v101.scatteredOrderList.state1'),t('v101.scatteredOrderList.state2'),t('v101.scatteredOrderList.state3')] let text = [t('hotelorder.orderStatus.normal'),t('v101.scatteredOrderList.state1'),t('v101.scatteredOrderList.state2'),t('v101.scatteredOrderList.state3')]
......
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