Commit c3a41c55 authored by youjie's avatar youjie

no message

parent 47b97258
......@@ -85,6 +85,8 @@ export default {
data.searchClone.StartTime = data.dateRange.from
data.searchClone.EndTime = data.dateRange.to
search.msg.StartTime = data.dateRange.from
search.msg.EndTime = data.dateRange.to
const methods = {
goUrl(){
$router.push({ path:`/vehicle/addEditVehicle`})
......
<template>
<div>
<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">
<q-btn :color="search.OrderType == 1 ?'cyan' : (search.OrderType == 2 ?'negative':'positive')" unelevated disable size="sm">
<template v-if="search.OrderType == 1">{{$t('v102.CharteredBus.baochetype1')}}</template>
<template v-if="search.OrderType == 2">{{$t('v102.CharteredBus.baochetype2')}}</template>
<template v-if="search.OrderType == 3">{{$t('v102.CharteredBus.baochetype3')}}</template>
<q-btn :color="search.OrderType == 4 ?'cyan' : (search.OrderType == 2 ?'negative':'positive')" unelevated disable size="sm">
{{$t('v102.vehicle.travelvehicle')}}
</q-btn>
</div>
<div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div>
<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>
</div>
<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 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]">
<q-icon :name="x.typeInfo.Icon" />
<span class="q-ml-sm">{{ x.typeInfo.StatusName }}</span>
......@@ -37,7 +37,7 @@
<div class="row items-center justify-between">
<div class="f12 text-grey-6">{{ $t('hotelorder.search.orderNum') }}{{ x.OrderNo }}</div>
<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>
</div>
</div>
......@@ -46,96 +46,82 @@
</div>
<div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateTime }}</div>
</div>
</div> -->
</div>
<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">
<template v-slot:body-cell-Id="props">
<!--未提交报价,可以修改-->
<q-td :prop="props">
<div :class="{'column':$q.platform.is.mobile}">
<span @click="mask(props.row.Id)" v-if="props.row.Status == 0 && props.row.OfferState == 1">
<q-btn class="col q-mr-md fz12" color="primary" unelevated
:label="$t('v102.vehicle.list.s5')" />
</span>
<span @click="cancel(props.row.Id)" :class="{'q-mt-sm':$q.platform.is.mobile}">
<q-btn class="col q-mr-md fz12" color="grey-6" unelevated
:label="$t('v102.vehicle.add3')" />
</span>
<!--申请报价-->
<span v-if="props.row.OfferState == 1 && props.row.Status == 0"
@click="ApplyTripBus(props.row)" :class="{'q-mt-sm':$q.platform.is.mobile}">
<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>
<template v-slot:body-cell-UseCompName="props">
<q-th :props="props">
<div>
<div class="ellipsis fz13">{{ props.row.UseCompName }}</div>
<div class="fz12 text-grey-6">{{ props.row.UseName }}</div>
<q-tooltip>{{ props.row.UseCompName + props.row.UseName }}</q-tooltip>
</div>
</q-th>
</template>
<template v-slot:body-cell-PickUpInfo="props">
<q-th :props="props">
<div class="fz13 text-grey-6">
<div>{{$t('v102.vehicle.title4')}}: <span class="text-dark q-pl-sm">{{ props.row.GoFlightInfo }}</span> </div>
<div class="q-py-xs">{{$t('v102.vehicle.title5')}}: <span class="text-dark q-pl-sm">{{ props.row.BackFlightInfo }}</span> </div>
<div>{{$t('v102.vehicle.title3')}}: <span class="text-dark q-pl-sm">{{ props.row.PickUpInfo }}</span></div>
</div>
</q-td>
</q-th>
</template>
</q-table>
</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>
<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="row items-center justify-between q-mb-sm q-pb-sm" style="border-bottom: 1px dashed #ddd">
<div class="f12 text-grey">{{ $t('hotelorder.orderMoney') }}</div>
<!-- style="border-bottom: 1px dashed #ddd" -->
<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">
<span class="din text-subtitle1">{{ moneyFormat(x.Money) }}</span>
<span class="din text-subtitle1">{{ x.UseDayNum }}</span>
<span class="f12">{{ x.CurrencyCode }}</span>
</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>
</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 }">
<q-list dense v-if="x.OrderStatus == 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)">
<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.OfferState == 1" :class="{ 'row items-center justify-between full-width': $q.platform.is.mobile }">
<q-item v-if="x.OfferState == 2" class="text-negative" clickable v-close-popup @click="cancel(x.Id)">
<q-item-section>
<q-item-label>{{ $t('hotelorder.opera.cancel') }}</q-item-label>
</q-item-section>
</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-label>{{ $t('hotelorder.opera.edit') }}</q-item-label>
</q-item-section>
</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-label>{{ $t('v101.Listofquotation.baojiadan') }}</q-item-label>
</q-item-section>
</q-item>
</q-list>
<div v-else>
<!-- <div v-else>
<div class="f12 text-green-4">{{ $t('hotelorder.payed') }}</div>
<div class="text-subtitle1 din text-green-14">
{{ x.Money.toFixed(2) }}
<span class="text-green-4 f12">{{ $t('unit.jp') }}</span>
</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="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-900">{{ x.CancelEmpName }} {{ x.CancelTime }}</div>
</div>
</div> -->
</div>
</q-card>
<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" />
......@@ -173,7 +159,7 @@
<script lang="ts">
import vehiclePopover from '..//vehiclePopover.vue'
import vehicleDetails from '../vehicleDetails.vue'//详情
import { date } from 'quasar'
import { copyToClipboard,useQuasar,date } from 'quasar'
import { ApiResult } from '../../../@types/enumHelper'
import { useQuasar } from 'quasar'
import HotelService from '../../../api/vehicle'
......@@ -182,6 +168,7 @@ import { DirtionmaryHelper } from 'src/config/dictionary'
import { defineComponent, inject, reactive, toRefs, watch } from 'vue'
import { useRouter } from 'vue-router'
import { useI18n } from 'vue-i18n'
import { getStrokeStatus,getSendType,moneyFormat } from '../../../utils/tools'
export default defineComponent({
components: { vehicleDetails },
......@@ -190,6 +177,7 @@ export default defineComponent({
const $q = useQuasar()
const $router = useRouter()
const data = reactive({
copyId: 0,
showdetails: false,
cancelshow: false,
CancelRemark: '',
......@@ -198,28 +186,22 @@ export default defineComponent({
loading: false,
pages: {
pageIndex: 1,
pageSize: 12,
pageSize: 5,
pageCount: 0,
},
orders: [] as any[],
status: [] as Array<StandardStatus>,
sends: [] as Array<SendType>,
ProductId: {} as any,
showDetails: false,
cols: [
{ name: 'UseCompName', label: t('v102.vehicle.title1'), field: (row: any) => row.UseCompName, 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.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: 'UseCompName', label: t('v102.vehicle.title1'), field: (row: any) => row, align: 'left' },
{ name: 'PickUpInfo', label: t('v102.vehicle.title3'), field: (row: any) => row, 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: 'UseDayNum', label: t('v102.vehicle.title8'), field: (row: any) => row.UseDayNum, align: 'left' },
{ name: 'BusTypeName', label: t('v102.vehicle.title9'), field: (row: any) => row.GuideInfo, align: 'left' },
{ name: 'BusTypeName', label: t('v102.vehicle.title9'), field: (row: any) => row.BusTypeName, 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: '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,
})
......@@ -241,6 +223,11 @@ export default defineComponent({
})
const methods = {
init() {
data.status = getStrokeStatus()
data.sends = getSendType()
methods.getList()
},
// 详情
details(val: any) {
data.Id = val
......@@ -296,10 +283,14 @@ export default defineComponent({
$router.push({ path: `/vehicle/addEditVehicle${data.Id ? '/' + data.Id : ''}` })
},
getList() {
console.log(search.msg,'===---')
let param = Object.assign(data.pages, search.msg)
HotelService.vehicleList(param)
.then(r => {
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.pages.pageCount = r.data.data.pageCount
} else {
......@@ -317,11 +308,25 @@ export default defineComponent({
data.pages.pageIndex = n
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 {
...toRefs(data),
...methods,
moneyFormat,
search
}
}
......
......@@ -911,13 +911,21 @@ export default {
title13: "車型選擇",
title14: "接送機時間",
close: "取消",
travelvehicle: '行程用車',
strokestatus:{
d1: '未報價',
d2: '待確認',
d3: '已確認',
d4: '確認報價',
d5: '已取消',
},
tatle: {
th1: '日期',
th2: '第幾天',
th3: '用車類型',
th4: '行程信息',
th5: '操作',
th6: '除',
th6: '除',
},
add: '添加',
add2: '修改',
......
......@@ -193,6 +193,24 @@ export function getHotelOrderStatus():Array<StandardStatus>{
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>{
let status=[] as Array<StandardStatus>
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