Commit ce47469e authored by 罗超's avatar 罗超

提繳

parent 3f01643f
...@@ -17,6 +17,17 @@ class HotelService { ...@@ -17,6 +17,17 @@ class HotelService {
return request('dict_post_Destination_GetChildList', params) return request('dict_post_Destination_GetChildList', params)
} }
/**
* 上次旅客名單
* @param OrderId 訂單ID
* @param GuestFile 文件路徑
* @returns
*/
static async SetGuestFile(OrderId:number,GuestFile:string): Promise<HttpResponse> {
let GuestFileList = [GuestFile]
return request('dict_post_SetOrderGuestFile', {OrderId,GuestFileList})
}
/** /**
* 取消酒店订单 * 取消酒店订单
* @param OrderId 订单编号 * @param OrderId 订单编号
......
...@@ -78,8 +78,8 @@ ...@@ -78,8 +78,8 @@
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-HandFittingFee="props"> <template v-slot:body-cell-HandFittingFee="props">
<q-td :props="props" :rowspan="x.DetailList.length" v-if="props.rowIndex==0"> <q-td :props="props" :rowspan="x.DetailList.length" v-if="props.rowIndex == 0">
{{moneyFormat(x.HandFittingFee)}} {{ moneyFormat(x.HandFittingFee) }}
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-HotelName="props"> <template v-slot:body-cell-HotelName="props">
...@@ -101,7 +101,15 @@ ...@@ -101,7 +101,15 @@
</div> </div>
<div v-if="x.CustomerPayType == 1 || x.CustomerPayType == 3"> <div v-if="x.CustomerPayType == 1 || x.CustomerPayType == 3">
<div class="f12" v-html="$t('hotelorder.pay.t2', { e: x.UploadGuestDate })"></div> <div class="f12" v-html="$t('hotelorder.pay.t2', { e: x.UploadGuestDate })"></div>
<q-btn dense outline color="primary" size="sm" class="q-mt-sm" :label="$t('hotelorder.uploadGuest')"></q-btn> <div class="row items-center f12 q-mt-sm">
<div class="text-accent q-mr-md" v-if="x.GuestFileList.length>0">{{x.GuestFileList[0].split('/').at(-1)}}</div>
<q-btn dense unelevated color="primary" size="sm" class="q-mr-sm" v-if="x.GuestFileList.length>0">
<a class="text-white" style="text-decoration:none" :href="x.GuestFileList[0]">{{$t('upload.down')}}</a>
</q-btn>
<n-upload class="col" :action="importFileUrl" @finish="handleFinish" @change="uploadHandleChange(x.OrderId)" file-list-style="display:none">
<q-btn dense outline color="primary" size="sm" :label="x.GuestFileList.length==0?$t('hotelorder.uploadGuest'):$t('upload.reload')"></q-btn>
</n-upload>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -125,7 +133,7 @@ ...@@ -125,7 +133,7 @@
<div class="row items-center justify-between q-mb-sm q-pb-sm" style="border-bottom: 1px dashed #ddd" v-if="x.CustomerPayType == 1 || x.CustomerPayType == 3"> <div class="row items-center justify-between q-mb-sm q-pb-sm" style="border-bottom: 1px dashed #ddd" v-if="x.CustomerPayType == 1 || x.CustomerPayType == 3">
<div class="f12 text-grey">{{ $t('hotelorder.payType.t1') }}</div> <div class="f12 text-grey">{{ $t('hotelorder.payType.t1') }}</div>
<div class="dark"> <div class="dark">
<span class="f12">{{ moneyFormat(x.SelfPayMoney ) }}</span> <span class="f12">{{ moneyFormat(x.SelfPayMoney) }}</span>
<span class="f12">{{ $t('unit.jp') }}</span> <span class="f12">{{ $t('unit.jp') }}</span>
</div> </div>
</div> </div>
...@@ -137,7 +145,7 @@ ...@@ -137,7 +145,7 @@
</div> </div>
</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.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-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 class="text-negative" clickable v-close-popup @click="cancelConfirmHandler(x.OrderId)">
<q-item-section> <q-item-section>
...@@ -216,6 +224,8 @@ import { useI18n } from 'vue-i18n' ...@@ -216,6 +224,8 @@ import { useI18n } from 'vue-i18n'
import svgIcon from '../../../global/svg-icon.vue' import svgIcon from '../../../global/svg-icon.vue'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { currentRouter } from '../../../../router' import { currentRouter } from '../../../../router'
import { UploadFileInfo } from 'naive-ui'
import { slice } from 'lodash'
export default defineComponent({ export default defineComponent({
components: { svgIcon }, components: { svgIcon },
...@@ -237,6 +247,7 @@ export default defineComponent({ ...@@ -237,6 +247,7 @@ export default defineComponent({
orders: [] as Array<any>, orders: [] as Array<any>,
status: [] as Array<StandardStatus>, status: [] as Array<StandardStatus>,
rooms: [] as Array<RoomType>, rooms: [] as Array<RoomType>,
uploadOrderId: 0,
pages: { pages: {
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
...@@ -255,7 +266,8 @@ export default defineComponent({ ...@@ -255,7 +266,8 @@ export default defineComponent({
{ name: 'Money', label: t('hotelorder.col.m'), field: (row: any) => (row.HotelMoeny + row.TaxesPrice).toFixed(2), align: 'left' }, { name: 'Money', label: t('hotelorder.col.m'), field: (row: any) => (row.HotelMoeny + row.TaxesPrice).toFixed(2), align: 'left' },
{ name: 'PayType', label: t('hotelorder.col.pt'), field: (row: any) => (row.PayType == 1 ? t('hotelorder.payType.t1') : t('hotelorder.payType.t2')), align: 'left' }, { name: 'PayType', label: t('hotelorder.col.pt'), field: (row: any) => (row.PayType == 1 ? t('hotelorder.payType.t1') : t('hotelorder.payType.t2')), align: 'left' },
{ name: 'HandFittingFee', label: t('hotelorder.hands'), align: 'left' } { name: 'HandFittingFee', label: t('hotelorder.hands'), align: 'left' }
] as any ] as any,
importFileUrl: 'https://mallApi.oytour.com/api/File/UploadTencent?MallBaseId=1'
}) })
const methods = { const methods = {
...@@ -292,7 +304,7 @@ export default defineComponent({ ...@@ -292,7 +304,7 @@ export default defineComponent({
data.loading = false data.loading = false
}) })
}, },
cancelConfirmHandler(orderId: number){ cancelConfirmHandler(orderId: number) {
$q.dialog({ $q.dialog({
title: t('dialog.titles.horder'), title: t('dialog.titles.horder'),
message: t('dialog.contents.horder'), message: t('dialog.contents.horder'),
...@@ -332,14 +344,50 @@ export default defineComponent({ ...@@ -332,14 +344,50 @@ export default defineComponent({
data.pages.pageIndex = n data.pages.pageIndex = n
methods.initOrders() methods.initOrders()
}, },
uploadHandleChange(orderId:number) {
data.uploadOrderId = orderId
data.loading = true
},
init() { init() {
data.status = getHotelOrderStatus() data.status = getHotelOrderStatus()
data.rooms = getHotelRoomType() data.rooms = getHotelRoomType()
methods.initOrders() methods.initOrders()
}, },
modify(id:number){ modify(id: number) {
//location.href = //location.href =
currentRouter.push('/hotel/modify/'+id) currentRouter.push('/hotel/modify/' + id)
},
handleFinish(options: { file: UploadFileInfo; event?: ProgressEvent }) {
data.loading = false
let r = (options.event?.target as XMLHttpRequest).response
if(r){
let res=JSON.parse(r)
if(res.resultCode == ApiResult.SUCCESS && res.data){
methods.setGuestListHandler(res.data)
}else{
message.errorMsg(t('upload.failed'))
data.loading=false
}
}else{
message.errorMsg(t('upload.failed'))
data.loading=false
}
},
setGuestListHandler(url:string){
HotelService.SetGuestFile(data.uploadOrderId,url).then(r=>{
if(r.data.resultCode == ApiResult.SUCCESS){
message.successMsg(t('upload.success'))
let order = data.orders.find(x=>x.OrderId==data.uploadOrderId)
order.GuestFileList=[url]
}else{
message.errorMsg(t('upload.failed'))
}
data.loading=false
}).catch(r=>{
data.loading=false
message.errorMsg(r.message)
})
} }
} }
......
...@@ -13,6 +13,12 @@ export default { ...@@ -13,6 +13,12 @@ export default {
query: '檢索', query: '檢索',
noneData: '沒有找到相關的數據', noneData: '沒有找到相關的數據',
loading: '正在加載數據', loading: '正在加載數據',
upload:{
'success':'上傳成功',
'failed':'上傳失敗',
'down':'下載',
'reload':'重新上傳'
},
dialog:{ dialog:{
titles:{ titles:{
hotel:'移除酒店警示', hotel:'移除酒店警示',
......
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