Commit d30354f5 authored by youjie's avatar youjie

no message

parent 50c3e056
......@@ -64,13 +64,13 @@ module.exports = configure(function (ctx) {
publicPath: ctx.dev ? '/' : './',
env: ctx.dev
? {
BASE_APP_API: 'http://192.168.10.11:8083/api/common/post',
BASE_APP_API: 'http://192.168.10.9:8083/api/common/post',//http://192.168.10.9:8083/api/common/post http://192.168.10.206:8015/api/common/post
JAVA_URL_API: 'http://efficient.oytour.com',
VERSION:require('./package.json').version,
}
: {
BASE_APP_API: 'https://reborn.oytour.com/api/common/post',
BASE_APP_API: 'https://reborn.oytour.com/api/common/post',//https://reborn.oytour.com/api/common/post
JAVA_URL_API: 'http://efficient.oytour.com',
VERSION:require('./package.json').version
},
......
......@@ -77,7 +77,7 @@ const service = Axios.create({
timeout: 20000,
headers: {
'Content-Type': 'application/json',
'Referer-Viitto': currentRouter.path
'Referer-Viitto': window.history.state.current
}
})
......
......@@ -33,18 +33,18 @@ const request = (cmd:string,msg:any): Promise<HttpResponse>=>{
let timestamp = (new Date()).valueOf();
if (Store.state.user?.token) {
token = Store.state.user?.token?.access_token
key = Store.state.user?.secretKey
//key = Store.state.user?.secretKey
}
if (Store.state.user?.userDetail) {
groupId = Store.state.user?.userDetail?.groupId
}
var encodeMsg = encodeURIComponent(JSON.stringify(msg)).toLowerCase();
var md5Str = md5(`cmd=${cmd}&msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var md5Str = md5(`msg=${encodeMsg}&timestamp=${timestamp}&token=${token}&key=${key}`);
var postData = {
"groupId": groupId,
"msg": msg,
// "cmd": cmd,
// "timestamp": timestamp,
"timestamp": timestamp,
"token": token,
"sign": md5Str,
// "locale": language,
......
import { HttpResponse } from '../@types'
import request from './request'
import requestJava from './requestJava'
class scheduledTripService {
// 一日游订单列表
static async GetTravelOneDayOrderList(param:any):Promise<HttpResponse>{
return request('sellorder_post_GetTravelOneDayOrderList',param)
}
// 一日游订单提交
// 跟团订单列表
static async Getrecentorder(param:any):Promise<HttpResponse>{
return requestJava('/api/b2b/user/getrecentorder',param)
}
// 待处理跟团订单列表
static async GetWaitDealOrderPageList(param:any):Promise<HttpResponse>{
return request('b2b_get_GetWaitDealOrderPageList',param)
}
// 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)
}
......
<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>
<q-select v-if="$q.platform.is.desktop" class="q-mr-md" style="min-width: 150px" v-model="search.orderState" @update:model-value="setorderState" dense :options="status" emit-value option-label="StatusName" option-value="StatusId" map-options :label="$t('hotelorder.search.status')" standout />
<q-select class="q-mr-md" style="min-width: 150px" v-model="search.queryDays" @update:model-value="setorderDay" dense :options="Days" emit-value option-label="StatusName" option-value="StatusId" map-options label="时间范围" standout />
<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 v-model="search.orderState" class="text-cyan" dense>
<q-tab :name="x.StatusId" :label="x.StatusName" v-for="x in status" @click="setorderState(x.StatusId)" />
</q-tabs>
</div>
</template>
......@@ -69,7 +16,7 @@
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 { getTripOrderStatus, getTripOrderType, getHotelRoomType, getTicketOrderType } from '../../../utils/tools'
import { date, useQuasar } from 'quasar'
import svgIcon from '../../global/svg-icon.vue'
......@@ -81,90 +28,34 @@ export default defineComponent({
const $q = useQuasar()
const data = reactive({
Days:[] as Array<StandardStatus>,
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()
//跟团订单通用的訂單類型
let allStatus = getTripOrderStatus()
data.status = allStatus
data.Days = getTripOrderType(true)
},
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)
realSearch.queryDays = search.queryDays
realSearch.orderState = search.orderState
},
setOrderStatus(statusId: number) {
realSearch.OrderStatus = statusId
setorderState(statusId: number) {
realSearch.orderState = statusId
},
setorderDay(statusId: number) {
search.queryDays = 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
})
......
<template>
<div>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat v-for="x in orders">
<div class="row items-center desktop-only">
<div class="q-mr-md">
<q-btn :color="x.MailingState == 1 ? 'cyan' : x.MailingState == 2?'negative':'positive'" unelevated disable size="sm" :label="`${x.MailingState == 1 ? $t('v102.ticket.zq') : x.MailingState == 2 ?$t('v102.ticket.yj'):$t('v102.ticket.dzp')}`"></q-btn>
<div class="q-py-sm"></div>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat>
<!-- desktop-only -->
<div class="">
<div class="row wrap justify-between">
<span class="f12 text-grey-6">
<template v-if="$q.platform.is.desktop">{{ $t('hotelorder.search.orderNum') }}</template>
44089</span>
<span class="text-center f12 text-grey-6">
<template v-if="$q.platform.is.desktop">{{ $t('v102.ticket.sj') }}</template>
李建波(武) 18224442258</span>
<span class="f12 text-grey-6">
<template v-if="$q.platform.is.desktop">{{ $t('hotelorder.createTime') }}</template>
2023-03-06 14:20:56</span>
</div>
<div class="" :class="{'q-py-md row justify-between':$q.platform.is.desktop,'column q-py-sm':$q.platform.is.mobile}">
<div :class="{'row col':$q.platform.is.desktop}">
<div :style="{'width':$q.platform.is.desktop?'150px':'100%'}">
<q-img class="rounded-borders" :style="{'width':$q.platform.is.desktop?'150px':'100%'}" :ratio="16 / 9" src="http://imgfile.oytour.com/Upload/DMC/yEiRE8pRWE5ZF8cPNRnAiQST8WbyaGQc.jpg" spinner-color="grey" spinner-size="50px" fit="cover"/>
</div>
<div class="column" :class="{'q-pl-lg':$q.platform.is.desktop,'q-pt-sm':$q.platform.is.mobile}">
<span class="text-subtitle1 text-weight-bolder ellipsis cursor-pointer" >“绿野仙踪”斯里兰卡8天7日游(昆明)</span>
<span class="f12 text-grey-700 ellipsis q-py-sm">绿野仙踪系列</span>
<span class="f13 text-grey-700">团号:13313 ( <span class="text-red">3 </span>旅客 ) </span>
</div>
</div>
<div :class="{'row items-end':$q.platform.is.desktop}" style="flex-shrink: 0;">
<div class="column text-right">
<div :class="{'row justify-between q-pt-lg q-pb-xs':$q.platform.is.mobile}">
<span class="fz13">总金额:<span class="fz16">¥45200</span> </span>
<div class="fz13" :class="{'q-py-xs':$q.platform.is.desktop}"><span class="text-orange-7">已付总额:<span class="fz16">¥0.00</span> </span>
</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="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 v-if="x.MailingState">{{ $t('v102.ticket.sj') }}{{ x.Name }}({{ x.EName }})/{{ x.Mobile }}</span>
</div>
<div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateTime }}</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>
</div>
</div>
<div class="mobile-only">
<div class="row justify-between">
<div class="q-mr-md">
<q-btn :color="x.MailingState == 1 ? 'cyan' : 'negative'" unelevated disable size="sm" :label="`${x.MailingState == 1 ? $t('hotelorder.orderType.guest') : $t('hotelorder.orderType.tour')}`"></q-btn>
</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>
</div>
</div>
<div class="bg-grey-2 rounded-borders q-pa-sm q-mt-md">
<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="cyan" outline size="sm" :label="$t('hotelorder.copyed')" v-else></q-btn>
</div>
</div>
<div class="f12 text-grey-6">
<span v-if="x.MailingState">{{ $t('hotelorder.search.contactInfo') }}{{ x.Name }}({{ x.EName }})/{{ x.ContactPhone }}</span>
</div>
<div class="f12 text-grey-6">{{ $t('hotelorder.createTime') }}{{ x.CreateTime }}</div>
<span class="fz13 text-red">优惠金额:<span class="fz16">¥202855</span></span>
</div>
</div>
<!-- <div v-if="x.MailingState == 4">
<div class="f12">
{{ $t('v102.ticket.dzp') }}
<span class="text-negative">{{ x.UseDate }}</span>
{{ $t('hotelorder.pay.t21') }}
</div>
<div class="row items-center f12 q-mt-sm">
<div class="text-accent q-mr-md" v-if="x.TicketCodeFile">
{{ x.TicketCodeFile.split('/').at(-1) }}</div>
<q-btn dense unelevated color="primary" size="sm" class="q-mr-sm" v-if="x.TicketCodeFile">
<a class="text-white" style="text-decoration:none"
:href="x.TicketCodeFile">{{ $t('upload.down') }}</a>
</q-btn>
</div>
</div> -->
<div class="q-mt-md row">
<q-table separator="cell" :hide-bottom="!x.Remark" :pagination="{ rowsPerPage: 100 }" :rows="x.DetailList" bordered :columns="cols" class="sticky-rightrowspan-column-table light-border col no-shadow">
<template v-slot:body-cell-Date="props">
<q-td :props="props" :rowspan="x.DetailList.length" v-if="props.rowIndex == 0">
<div>
{{x.CouponsName
}}
</div>
<span class="text-grey-6 q-pt-xs">{{x.UseDate}}</span>
</q-td>
</template>
<template v-slot:body-cell-TicketName="props">
<q-td :props="props">
<div class="max-hotelname ellipsis">{{ props.value }}</div>
<q-tooltip>{{ props.value }}</q-tooltip>
</q-td>
</template>
<!-- <template v-slot:body-cell-MailingMoney="props">
<q-td :props="props">
<span>{{moneyFormat(x.MailingMoney)}}</span>
</q-td>
</template> -->
<template v-slot:body-cell-Money="props">
<q-td :props="props" >
{{props.row.Money}}
</q-td>
</template>
<template v-slot:bottom>
<div class="msl text-negative">{{ $t('v101.hotelRemark') }}{{ x.Remark }}</div>
</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="pay row text-grey rounded-borders" :class="{ 'bg-grey-2 q-mt-md': $q.platform.is.mobile, col: $q.platform.is.desktop }">
<div class="bg-orange-1 col-12 rounded-borders q-pa-md">
<div v-if="x.MailingState==2||x.MailingState==3">
<div class="text-subtitle2 text-dark text-weight-bolder row items-center">
<span class="col">{{ $t('v102.ticket.sjc.c5') }}:</span>
<span class="f12" :class="[x.SendType.Color]">{{ x.SendType.Name }}</span>
</div>
<div class="f12 text-dark q-mt-sm">{{ x.MailingAddress }}</div>
</div>
<div v-else>
<div class="text-subtitle2 text-dark text-weight-bolder">{{ x.MailingState==1?$t('v102.ticket.zqa'):$t('v102.ticket.dzp') }}:</div>
<div class="f12 text-dark q-mt-sm">
<template v-if="x.MailingState==1">
{{ x.SelffetchAddress?x.SelffetchAddress:$t('v102.ticket.nzqa') }}
</template>
<template v-else>
{{ x.TicketCodeFile?'':$t('v102.ticket.nzqa1') }}
<div class="row items-center f12 q-mt-sm">
<div class="text-accent q-mr-md" v-if="x.TicketCodeFile">
{{ x.TicketCodeFile.split('/').at(-1) }}</div>
<q-btn dense unelevated color="primary" size="sm" class="q-mr-sm" v-if="x.TicketCodeFile">
<a class="text-white" style="text-decoration:none"
:href="x.TicketCodeFile">{{ $t('upload.down') }}</a>
</q-btn>
</div>
</template>
</div>
</div>
</div>
</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>
<div class="dark q-ml-xl">
<span class="din text-subtitle1">{{ moneyFormat(x.Money) }}</span>
<span class="f12">{{ x.CurrencyCode }}</span>
</div>
</div>
<div class="row items-center justify-between q-mb-sm q-pb-sm" style="border-bottom: 1px dashed #ddd"
v-if="x.MailingMoney>0">
<div class="f12 text-grey">{{ $t('v102.ticket.sjc.c6') }}</div>
<div class="dark">
<span class="f12">{{ moneyFormat(x.MailingMoney) }}</span>
<span class="f12">{{ x.CurrencyCode }}</span>
</div>
</div>
<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 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)">
<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="modify(x)">
<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-section>
<q-item-label>{{ $t('v101.Listofquotation.baojiadan') }}</q-item-label>
</q-item-section>
</q-item>
<!-- <q-item class="text-dark" clickable v-close-popup>
<q-item-section>
<q-item-label>{{ $t('hotelorder.opera.view') }}</q-item-label>
</q-item-section>
</q-item> -->
</q-list>
<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 v-if="x.OrderStatus == 3">
<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 class="mobile-only">
</div>
</q-card>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" v-if="pages.pageCount > 0" flat>
......@@ -211,7 +71,7 @@ import { SendType, StandardStatus } from '../../../@types'
import { useI18n } from 'vue-i18n'
import svgIcon from '../../global/svg-icon.vue'
import { copyToClipboard, useQuasar } from 'quasar'
import { getHotelOrderStatus, getSendType, moneyFormat } from '../../../utils/tools'
import { getTripOrderStatus, getSendType, moneyFormat } from '../../../utils/tools'
import ModifyOrderAddress from './ModifyOrderAddress.vue'
import BankAccount from '../../BankAccount.vue'
export default defineComponent({
......@@ -260,10 +120,12 @@ export default defineComponent({
initOrders() {
data.loading = true
let param = Object.assign(data.pages, search)
scheduledTripService.GetTravelOneDayOrderList(param)
scheduledTripService.Getrecentorder(param)
.then(r => {
data.loading = false
if (r.data.resultCode == ApiResult.SUCCESS) {
console.log(r.data.data,'====')
return
r.data.data.pageData.forEach((x: any) => {
x.typeInfo = data.status.find(y => y.StatusId == x.OrderStatus) ?? data.status[1]
x.SendType = data.sends.find(y => y.Id == x.MailingState) ?? data.sends[0]
......@@ -283,6 +145,14 @@ export default defineComponent({
message.errorMsg(e.message)
data.loading = false
})
let param2 = Object.assign(data.pages, search)
scheduledTripService.GetWaitDealOrderPageList(param)
.then(r => {
if (r.data.resultCode == ApiResult.SUCCESS) {
console.log(r.data.data,'---')
}
}
)
},
cancelConfirmHandler(orderId: number) {
$q.dialog({
......@@ -294,10 +164,11 @@ export default defineComponent({
methods.cancelOrderHandler(orderId)
})
},
// 取消订单
cancelOrderHandler(orderId: number) {
if (data.loading) return
data.loading = true
scheduledTripService.GetTravelOneDayOrderList(orderId)
scheduledTripService.GetWaitDealOrderPageList(orderId)
.then(r => {
data.loading = false
if (r.data.resultCode == ApiResult.SUCCESS) {
......@@ -320,7 +191,7 @@ export default defineComponent({
methods.initOrders()
},
init() {
data.status = getHotelOrderStatus()
data.status = getTripOrderStatus()
data.sends = getSendType()
methods.initOrders()
},
......
......@@ -44,7 +44,7 @@ const userUserLoginModule = () => {
const param = {
account: userModel.username,
password: userModel.password,
platform: 0
platform: 3
}
let r = await dispatchAction<UserActionsType>('user', 'userLogin', param) as [boolean,string]
if(!r[0]){
......
......@@ -114,7 +114,7 @@ export default defineComponent({
if(!accountRefVal.value.hasError){
data.loading=true
//hasError
UserService.sendVerify({account:data.account,platform:0}).then(r=>{
UserService.sendVerify({account:data.account,platform:3}).then(r=>{
console.log(r)
data.loading=false
if(r.data.resultCode==ApiResult.SUCCESS){
......
......@@ -6,6 +6,7 @@
</template>
<script lang="ts">
import Store from '../../store'
import { defineComponent, inject, provide, reactive, toRefs, onMounted } from 'vue'
import { currentRouter } from 'src/router'
import useMetaModule from '../../module/meta/metaModule'
......@@ -22,24 +23,17 @@ export default defineComponent({
const pageTitle = inject(DirtionmaryHelper.PAGE_TITLE_KEY) as any
pageTitle.value = t('v102.to.pageTitle')
setTitle(pageTitle.value)
let CustomerId
if (Store.state && Store.state.user?.userDetail) {
CustomerId = Store.state.user?.userDetail?.customerId
}
const search = reactive({
OrderId: '',
OrderNo: '',
OrderStatus: 0,
StartTime: '',
EndTime: '',
// TicketName:'',//景区名称
CouponsName: '',//景区名称
ContactNumber: '',//电话
Name: '',//顾客名称
UseSTime: '',//门票开始时间
UseETime: '',//门票结束时间
MailingState: -1
orderType: 7,//7跟团订单
queryDays: 0,//10天内
orderState: -1,//订单状态
CustomerId: CustomerId,//用户id
})
search.OrderId = currentRouter.currentRoute.value.params.orderId
// search.OrderId = currentRouter.currentRoute.value.params.orderId
provide(DirtionmaryHelper.TICKET_ORDER_SEARCH, search)
const menu = inject(DirtionmaryHelper.MENU_KEYS) as any
......
......@@ -193,6 +193,43 @@ export function getHotelOrderStatus():Array<StandardStatus>{
return status
}
// 行程订单状态
export function getTripOrderStatus():Array<StandardStatus>{
let status=[] as Array<StandardStatus>
let text = ['全部','待付定金','待付尾款','待发团','交易完成','取消']
let color = ['','positive','dark','orange','negative','orange','negative']
let icons = ['','update','done','offline_bolt','cached','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 getTripOrderType():Array<StandardStatus>{
let status=[] as Array<StandardStatus>
let text = ['全部','10天内','30天内','60天内']
let days = [0,10,30,60]
let color = ['','positive','dark','orange']
let icons = ['','update','done','offline_bolt']
text.forEach((x,i:number)=>{
status.push({
StatusId: days[i],
StatusName:x,
Icon:icons[i],
Color:`text-${color[i]}`
})
})
return status
}
export function getStrokeStatus():Array<StandardStatus>{
let status=[] as Array<StandardStatus>
let text = [t('hotelorder.orderStatus.normal'),t('v102.vehicle.strokestatus.d1'),t('v102.vehicle.strokestatus.d2'),t('v102.vehicle.strokestatus.d3')]
......
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