Commit d5d69925 authored by 罗超's avatar 罗超

修改

parent 99eb9318
......@@ -64,13 +64,13 @@ module.exports = configure(function (ctx) {
publicPath: ctx.dev ? '/' : './',
env: ctx.dev
? {
BASE_APP_API: 'http://192.168.5.46:/api/common/post',
BASE_APP_API: 'https://reborn.oytour.com/api/common/post',
JAVA_URL_API: 'http://efficient.oytour.com',
VERSION:require('./package.json').version,
}
: {
BASE_APP_API:"http://reborn.oytour.com/api/common/post",//和平使用
BASE_APP_API:"https://reborn.oytour.com/api/common/post",//和平使用
JAVA_URL_API: 'http://efficient.oytour.com',
VERSION:require('./package.json').version
},
......
......@@ -256,7 +256,7 @@ export default defineComponent({
name: "LowerPrice",
label: t("hotel.col.four"),
field: (row: any) =>
`¥${row.LowerPrice.toFixed(2)}${$t("unit.jp")} ${t("hotel.col.low")}`,
`Rp${row.LowerPrice.toFixed(2)}${$t("unit.jp")} ${t("hotel.col.low")}`,
},
],
showPriceList: false,
......
......@@ -23,7 +23,7 @@
<div class="text-white" style="opacity: .5;">{{$t('v104.passbook.available')}}</div>
<div class="row items-end text-white" style="position: relative;">
<div :class="[$q.platform.is.desktop?'fz22':'fz32']">
¥
Rp
</div>
<div class="fz40 q-pl-md ">
<span style="position: relative;z-index: 2;" :style="{'top':$q.platform.is.desktop?'11px':'4px'}">{{Client_Balance.toFixed(2)}}</span>
......
......@@ -39,7 +39,7 @@
<div>{{item.teamSeries}}</div>
<div>{{item.peopleNum}}</div>
<div><span :class="{'text-red':item.money>0}"><template v-if="item.type==1">+</template>
<template v-else-if="item.type==2">-</template>¥{{item.money}}</span></div>
<template v-else-if="item.type==2">-</template>Rp{{item.money}}</span></div>
</div>
</div>
<div class="text-center q-pb-lg"
......
......@@ -16,7 +16,7 @@
<div class="row items-end" :class="[$q.platform.is.desktop ? 'q-pt-sm q-pb-lg' : 'justify-center']">
<span class="fz12"></span>
<div class="fz32 q-pl-sm">
<span style="position: relative; top: 9px">{{ datainfo.Amount }}</span>
<span style="position: relative; top: 9px">{{ datainfo.GuestNum?datainfo.GuestNum:datainfo.Amount }}</span>
</div>
</div>
</div>
......@@ -24,7 +24,7 @@
<div :class="[$q.platform.is.desktop ? 'q-pb-sm' : 'col-6 text-center']">
<div class="fz14 text-grey-7" :class="[$q.platform.is.desktop ? 'q-pb-xs q-pt-lg' : '']">{{ $t('v104.passbook.titles.text10') }}</div>
<div class="row items-end" :class="[$q.platform.is.desktop ? 'q-pt-sm q-pb-lg' : 'justify-center']">
<span class="fz12">¥</span>
<span class="fz12">Rp</span>
<div class="fz32 q-pl-sm">
<span style="position: relative; top: 9px">{{ datainfo.TotalMoney }}</span>
</div>
......@@ -35,20 +35,20 @@
<q-separator v-if="$q.platform.is.mobile" color="grey-3" />
</div>
<div :class="[$q.platform.is.desktop ? 'q-pb-lg q-px-lg' : 'q-py-md q-px-md']">
<span>{{ $t('v104.passbook.titles.text11') }}</span><span class="q-pl-lg"></span><span class="fz32 q-pl-sm">{{ datainfo.Amount.toFixed(0) }}</span>
<span>{{ $t('v104.passbook.titles.text11') }}</span><span class="q-pl-lg"></span><span class="fz32 q-pl-sm">{{ datainfo.CurGuestNum?datainfo.CurGuestNum:datainfo.Amount.toFixed(0) }}</span>
</div>
<div class="q-pt-sm" :class="[$q.platform.is.desktop ? 'q-px-lg' : 'q-px-md']">
<div class="q-pb-lg" v-for="(item, index) in datainfo.RatioList" :key="index" :class="[$q.platform.is.desktop ? 'row items-center no-wrap' : 'column']">
<div class="col">
<template v-if="$q.platform.is.desktop">
<q-linear-progress style="border-radius: 15px" v-if="item.percent > 1" stripe rounded size="20px" :value="item.width / 1000" color="orange-9" />
<q-linear-progress style="border-radius: 15px" v-else-if="item.percent < 1" stripe rounded size="20px" :value="item.width / 1000" color="red-5" />
<q-linear-progress style="border-radius: 15px" v-if="item.percent > 1" stripe rounded size="20px" :value="item.width / 100" color="orange-9" />
<q-linear-progress style="border-radius: 15px" v-else-if="item.percent < 1" stripe rounded size="20px" :value="item.width / 100" color="red-5" />
<q-linear-progress style="border-radius: 15px" v-else stripe rounded size="20px" :value="item.width / 1000" color="cyan-4" />
</template>
<template v-else>
<q-linear-progress style="border-radius: 15px" v-if="item.percent > 1" stripe rounded size="10px" :value="item.width / 1000" color="orange-9" />
<q-linear-progress style="border-radius: 15px" v-else-if="item.percent < 1" stripe rounded size="10px" :value="item.width / 1000" color="red-5" />
<q-linear-progress style="border-radius: 15px" v-else stripe rounded size="10px" :value="item.width / 1000" color="cyan-4" />
<q-linear-progress style="border-radius: 15px" v-if="item.percent > 1" stripe rounded size="10px" :value="item.width / 100" color="orange-9" />
<q-linear-progress style="border-radius: 15px" v-else-if="item.percent < 1" stripe rounded size="10px" :value="item.width / 100" color="red-5" />
<q-linear-progress style="border-radius: 15px" v-else stripe rounded size="10px" :value="item.width / 100" color="cyan-4" />
</template>
</div>
<div class="row items-center no-wrap" :class="[$q.platform.is.desktop ? 'col-4 q-ml-lg' : 'col']">
......@@ -71,9 +71,9 @@
<template v-if="item.percent < 1">
{{ $t('v104.passbook.titles.text13') }}
{{ item.Money - datainfo.GuestNum }}/{{ $t('travel.people') }},
{{ item.Money - datainfo.CurGuestNum }}/{{ $t('travel.people') }},
{{ $t('v104.passbook.titles.text14') }}
¥{{ item.Ratio }} / {{ $t('travel.people') }}
Rp{{ item.Ratio.toLocaleString() }} / {{ $t('travel.people') }}
</template>
</span>
......@@ -87,7 +87,7 @@
{{ $t('v104.passbook.titles.text17') }}
</span>
{{ $t('v104.passbook.titles.text16') }}
{{ item.Ratio }}/{{ $t('travel.people') }}
{{ item.Ratio.toLocaleString() }}/{{ $t('travel.people') }}
</span>
</div>
</div>
......@@ -96,10 +96,9 @@
</div>
</template>
<script lang="ts">
import { ref, toRefs, onMounted, onBeforeUnmount } from 'vue'
import { ref, toRefs, onMounted, onBeforeUnmount,defineComponent,reactive } from 'vue'
import { useRouter } from 'vue-router'
import { useQuasar } from 'quasar'
import { defineComponent, ref, reactive, toRefs } from 'vue'
import { useI18n } from 'vue-i18n'
import * as echarts from 'echarts'
import rebatehead from '../../components/passbook/rebate/rebatehead.vue'
......
......@@ -56,7 +56,7 @@
<div>{{item.description}}</div>
<div><span :class="{'text-red':item.money>0}"><template v-if="item.type==1">+</template>
<template v-else-if="item.type==2">-</template>
¥{{item.money}}</span></div>
Rp{{item.money}}</span></div>
</div>
</template>
<template v-else>
......
......@@ -284,7 +284,7 @@ export default defineComponent({
name: "LowerPrice",
label: t("hotel.col.four"),
field: (row: any) =>
`¥${row.LowerPrice.toFixed(2)}${t("unit.jp")} {t('hotel.col.low')}`,
`Rp${row.LowerPrice.toFixed(2)}${t("unit.jp")} {t('hotel.col.low')}`,
},
],
showPriceList: false,
......
......@@ -290,7 +290,7 @@ export default defineComponent({
name: "LowerPrice",
label: t("hotel.col.four"),
field: (row: any) =>
`¥${row.LowerPrice.toFixed(2)}${t("unit.jp")} {t('hotel.col.low')}`,
`Rp${row.LowerPrice.toFixed(2)}${t("unit.jp")} {t('hotel.col.low')}`,
},
],
showPriceList: false,
......
export default {
lanuage: 'Language',
failed: 'Execution failed',
success: 'Execution successful',
failed: 'Operation failed',
success: 'Operation successful',
appsuffix: 'PIC Interbank Booking System',
siteName: 'Interbank Booking System',
language: 'Language',
......@@ -359,7 +359,7 @@ export default {
three: 'Remittance instructions'
},
travel: {
first: 'Consortium',
first: 'Group Information',
second: 'Group Detail',
three: 'Booking list',
four: 'Settlement',
......@@ -390,8 +390,15 @@ export default {
}
},
travel: {
startCityList:{
all:'All',
ss:'Surabaya',
ml:'Medan',
yjd:'Jakarta',
bld:'Bali'
},
type:'Type',
b2cPirce:'Normal Pprice',
b2cPirce:'Selling Price',
b2bPirce:'Member Price',
MiddlePrice:'Consortium',
priceDetail:'Price Details',
......@@ -462,7 +469,7 @@ export default {
CSeat: 'Business Class',
FSeat: 'First Class',
priceInfo: 'Price information',
midPrice: 'Consortium Price',
midPrice: 'Consortium',
BabyChargePrice: "Children's Surcharge",
OldManChargePrice: 'Elderly Surcharge',
VisaPrice: 'Visa',
......@@ -1527,7 +1534,7 @@ export default {
text9: 'Number of people this year',
text10: 'Accumulated revenue',
text11: 'Month Number',
text12: 'Activated, expected revenue',
text12: 'Activated',
text13: 'Still lacking',
text14: 'Estimated Revenue',
text15: 'Monthly transaction amount has been reached',
......
......@@ -388,6 +388,13 @@ export default {
}
},
travel: {
startCityList:{
all:'すべて',
ss:'泗水',
ml:'棉蘭',
yjd:'雅加達',
bld:'巴厘島'
},
type:'タイプ',
b2cPirce:'B2C価格',
b2bPirce:'B2B価格',
......@@ -1525,7 +1532,7 @@ export default {
text9: '本年の累計人数',
text10: '累積収益',
text11: '現在の人数',
text12: '活性化しています,収益見込み',
text12: '活性化しています',
text13: 'まだまだ',
text14: '収益予想',
text15: '月の取引額はすでに達しました',
......
......@@ -389,6 +389,13 @@ export default {
},
travel: {
startCityList:{
all:'全部',
ss:'泗水',
ml:'棉蘭',
yjd:'雅加達',
bld:'巴厘島'
},
type:'类型',
b2cPirce:'直客价格',
b2bPirce:'代理价格',
......@@ -1528,10 +1535,10 @@ export default {
text9: '本年累计人数',
text10: '累计收益',
text11: '当前人数',
text12: '已激活,预计收益',
text12: '已激活',
text13: '还差',
text14: '预计收益',
text15: '月交易额已达',
text15: '月交客数已达',
text16: '返',
text17: '以上',
},
......
......@@ -389,6 +389,13 @@ export default {
}
},
travel: {
startCityList:{
all:'全部',
ss:'泗水',
ml:'棉蘭',
yjd:'雅加達',
bld:'巴厘島'
},
b2cPirce:'直客價格',
b2bPirce:'代理價格',
MiddlePrice:'中心價',
......@@ -1530,10 +1537,10 @@ export default {
text9: '本年累計人數',
text10: '累計收益',
text11: '當前人數',
text12: '已激活,預計收益',
text12: '已激活',
text13: '還差',
text14: '預計收益',
text15: '月交易額已達',
text15: '月交客數已達',
text16: '返',
text17: '以上',
},
......
......@@ -74,7 +74,7 @@
<div class="text-center" style="font-size: 12px; font-weight: 400;">
<span class="text-grey-500">{{ $t('notice.column.releaseDate') }} {{ noticeDialogData.notice_date }}</span>
</div>
<div style="overflow-y: auto;" class="text-body2 q-mt-md full-width col q-pa-md" v-html="noticeDialogData.content"></div>
<div style="overflow-y: auto;" class="text-body2 q-mt-md full-width col q-pa-md notice-content" v-html="noticeDialogData.content"></div>
<div class="q-mt-md row items-center" v-if="noticeDialogData.fileList.length > 0">
<span class="text-grey-500">{{ $t('notice.detail.file') }}</span>
<q-btn v-for="(x,i) in noticeDialogData.fileList" class="q-mr-md" dense :key="i" color="primary" flat unelevated :label="x.name" @click="downloadFile(x)" />
......@@ -121,22 +121,20 @@ export default {
})
const { t } = useI18n()
const downloadFile = async (file: any) => {
const url = 'http://imgfile.oytour.com/'+file.url
try {
const response = await fetch(url)
const blob = await response.blob()
const filename = url.split('/').pop() || 'download'
const link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = filename
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(link.href)
} catch (error) {
//message.errorMsg(t('downloadFailed'))
}
const url = `http://${window.location.host}/webfile/${file.url}`
try {
const filename = url.split('/').pop() || 'download'
const link = document.createElement('a')
link.href = url
link.download = filename
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
} catch (error) {
message.errorMsg(t('downloadFailed'))
}
}
// 根据域名渲染logo
data.isDomainName_PIC = inject(DirtionmaryHelper.DOMAIN_NAME)
......@@ -274,4 +272,42 @@ export default {
position: absolute;
margin-top: -40px;
}
.notice-content h1{
font-size: unset !important;
line-height: unset !important;
font-weight: bold !important;
}
.notice-content h2{
font-size: unset !important;
line-height: unset !important;
font-weight: bold !important;
}
.notice-content h3{
font-size: unset !important;
line-height: unset !important;
font-weight: bold !important;
}
.notice-content h4{
font-size: unset !important;
line-height: unset !important;
font-weight: bold !important;
}
.notice-content h5{
font-size: unset !important;
line-height: unset !important;
font-weight: bold !important;
}
.notice-content p{
font-size: unset !important;
line-height: unset !important;
}
.notice-content ul{
font-size: unset !important;
line-height: unset !important;
}
.notice-content ol{
font-size: unset !important;
line-height: unset !important;
}
</style>
......@@ -132,7 +132,8 @@ export default defineComponent({
width: 450px;
}
.right-bg{
background-image: url(../../assets/images/login-right-bg.png);
background-image: url(../../assets/img/login-bg.jpg);
/* url(../../assets/images/login-right-bg.png); */
background-position-x: left;
background-position-y: center;
background-repeat: no-repeat;
......
......@@ -3,7 +3,7 @@
<div class="q-mt-sm q-mb-lg" :class="[$q.platform.is.desktop ? 'passbook-form' : '']" :style="{ width: $q.platform.is.mobile ? '100%' : '' }">
<transition-group v-if="!isUseDetails" appear enter-active-class="animated fadeInRight" leave-active-class="animated fadeInLeft">
<template v-if="MonthObj && datainfo">
<passbookHead :dataNum="datainfo ? datainfo.Client_Balance : 0" />
<!-- <passbookHead :dataNum="datainfo ? datainfo.Client_Balance : 0" /> -->
<!-- <rebate/> -->
<redEnvelope :Obj="MonthObj" :info="datainfo" />
</template>
......@@ -94,11 +94,14 @@ export default defineComponent({
}
})
data.datainfo.RatioList = ratioListBase.value
data.datainfo.GuestNum = data.datainfo.GuestNum ? data.datainfo.GuestNum : 0
data.datainfo.RatioList.forEach(item => {
item.percent = data.datainfo.GuestNum / item.Money
//data.datainfo.GuestNum = data.datainfo.GuestNum ? data.datainfo.GuestNum : 0
data.datainfo.RatioList.forEach((item,index) => {
const maxNum = item.Money
item.percent = parseFloat((data.datainfo.CurGuestNum / maxNum).toFixed(2))
item.width = item.percent * 100
})
console.log(data.datainfo.RatioList)
data.yMoney1 = data.yMoney1.concat(['-'])
data.MonthObj = {
......
......@@ -105,11 +105,11 @@ export default defineComponent({
{ name: 'ContactName', label: t('travel.ContactNamePay'), align: 'left', field: 'ContactName' },
{ name: 'EntGuestNum', label: t('travel.EntGuestNum'), align: 'left', field: 'EntGuestNum' },
{ name: 'GuestNum', label: t('travel.GuestNum'), align: 'left', field: 'GuestNum' },
{ name: 'PreferPrice', label: t('travel.PreferPricePay'), align: 'left', field: 'PreferPrice' },
{ name: 'Refund', label: t('travel.Refund'), align: 'left', field: 'Refund' },
{ name: 'Income', label: t('travel.Income'), align: 'left', field: 'Income' },
{ name: 'DiscountMoney', label: t('travel.DiscountMoney'), align: 'left', field: 'DiscountMoney' },
{ name: 'CommissionRate', label: t('travel.CommissionRate'), align: 'left', field: 'CommissionRate' },
{ name: 'PreferPrice', label: t('travel.PreferPricePay'), align: 'left', field: 'PreferPrice', format: (val: any) => val.toLocaleString() },
{ name: 'Refund', label: t('travel.Refund'), align: 'left', field: 'Refund', format: (val: any) => val.toLocaleString() },
{ name: 'Income', label: t('travel.Income'), align: 'left', field: 'Income', format: (val: any) => val.toLocaleString() },
{ name: 'DiscountMoney', label: t('travel.DiscountMoney'), align: 'left', field: 'DiscountMoney', format: (val: any) => val.toLocaleString() },
{ name: 'CommissionRate', label: t('travel.CommissionRate'), align: 'left', field: 'CommissionRate', format: (val: any) => val.toLocaleString() },
])
const {query, params} = useRoute()
const search = {
......
......@@ -289,12 +289,14 @@ export default defineComponent({
field: "tC_Price",
label: t("travel.tC_Price"),
align: "left",
format: (val: any) => val.toLocaleString(),
},
{
name: "unit_Price",
field: "unit_Price",
label: t("travel.unit_Price"),
align: "left",
format: (val: any) => val.toLocaleString(),
},
{
name: "tradeWay",
......
......@@ -216,7 +216,7 @@
></q-input>
</div>
</div>
<div class="row">
<!-- <div class="row">
<div class="col">
<div class="title">{{ $t("travel.FSeatNum") }}</div>
<q-input
......@@ -243,7 +243,7 @@
@update:model-value="getNumber()"
></q-input>
</div>
</div>
</div> -->
<!-- <div class="row">
<div class="col">
<div class="title">{{ $t('travel.ContactName') }}</div>
......@@ -285,7 +285,7 @@
<div class="row justify-between items-center">
<div class="title">{{ $t("travel.PreferPrice") }}</div>
<div class="text-subtitle2 text-weight-bolder text-primary">
{{ addMsg.PreferPrice }}
{{ addMsg.PreferPrice.toLocaleString() }}
</div>
</div>
<div class="row justify-end">
......@@ -312,10 +312,12 @@ import travelService from "../../../api/travel";
import { ApiResult } from "../../../@types/enumHelper";
import message from "../../../utils/message";
import { getStoreGetter } from "../../../store/utils";
import { useI18n } from 'vue-i18n'
export default defineComponent({
props: ["info"],
components: {},
setup(props, context) {
const { t } = useI18n()
const addMsg = reactive({
OrderSource: 2,
price: 0,
......@@ -760,7 +762,7 @@ export default defineComponent({
.then((r) => {
data.loading = false;
if (r.data.resultCode == ApiResult.SUCCESS) {
message.successMsg(r.data.message);
message.successMsg(t('success'));
context.emit("close");
} else {
message.errorMsg(r.data.message);
......
......@@ -10,7 +10,8 @@
</q-popup-proxy>
</q-field>
<q-input class="q-mr-md q-ml-md" v-model="search.TCID" dense standout :label="$t('travel.id')" />
<q-input class="q-mr-md q-ml-md" v-model="search.StartAddress" dense standout :label="$t('travel.startCity')" />
<!-- <q-input class="q-mr-md q-ml-md" v-model="search.StartAddress" dense standout :label="$t('travel.startCity')" /> -->
<q-select class="q-mr-md q-ml-md" style="min-width: 190px" v-model="defaultStartCity" dense standout @update:model-value="startCityHandler" :label="$t('travel.startCity')" :options="startCityOptions" />
</template>
<div class="col"></div>
<q-btn unelevated class="bg-grey-3 hover q-mr-md" :title="$t('morequery')" v-if="$q.platform.is.mobile">
......@@ -37,8 +38,7 @@
<q-input class="q-mr-md q-ml-md" v-model="search.TCID" dense standout :label="$t('travel.id')" />
</div>
<div class="q-my-md">
<q-input class="q-mr-md q-ml-md" v-model="search.StartAddress" dense standout
:label="$t('travel.startCity')" />
<q-select class="q-mr-md q-ml-md" style="min-width: 190px" v-model="defaultStartCity" dense standout @update:model-value="startCityHandler" :label="$t('travel.startCity')" :options="startCityOptions" />
</div>
</q-card>
</q-popup-proxy>
......@@ -52,10 +52,11 @@ import { DirtionmaryHelper } from '../../../config/dictionary'
import { computed, defineComponent, inject, reactive, ref } from 'vue'
import { date } from 'quasar'
import svgIcon from 'src/components/global/svg-icon.vue'
import { useI18n } from 'vue-i18n'
export default defineComponent({
components: { svgIcon },
setup(props) {
const { t } = useI18n()
const qDateProxy = ref(null) as any
const realSearch = inject(DirtionmaryHelper.TRAVEL_ORDER_OBJ) as any
const search = reactive(JSON.parse(JSON.stringify(realSearch)))
......@@ -68,6 +69,14 @@ export default defineComponent({
if (search.SelectEndDate != '') cnt++
return cnt
})
const startCityOptions = ref([
{ label: t('travel.startCityList.all'), value: '' },
{ label: t('travel.startCityList.ss'), value: 'Surabaya' },
{ label: t('travel.startCityList.ml'), value: 'Medan' },
{ label: t('travel.startCityList.yjd'), value: 'Jakarta' },
{ label: t('travel.startCityList.bld'), value: 'Bali' },
])
const defaultStartCity = ref(startCityOptions.value[0])
// dateRange.to = date.formatDate(date.addToDate(new Date(), { days: 50 }), 'YYYY/MM/DD')
// dateRange.from = date.formatDate(date.addToDate(new Date(), { days: 20 }), 'YYYY/MM/DD')
const dateRangeFormat = ref(`${dateRange.from} - ${dateRange.to}`)
......@@ -96,6 +105,10 @@ export default defineComponent({
optionsFn(cd: any) {
return cd >= date.formatDate(date.adjustDate(new Date(), { year: 2000, month: 1, days: 1 }), 'YYYY/MM/DD')
},
startCityHandler(e: any) {
console.log(e)
search.StartAddress = e.value
}
}
return {
...methods,
......@@ -103,7 +116,9 @@ export default defineComponent({
dateRange,
dateRangeFormat,
searchCnt,
canHide
canHide,
startCityOptions,
defaultStartCity
}
}
})
......
<template>
<div>
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat :class="$q.platform.is.desktop ? 'row' : ''" v-for="(x, index) in orders">
<q-card class="light-shadow q-pa-md bg-white rounded-borders q-mb-md" flat
:class="$q.platform.is.desktop ? 'row' : ''" v-for="(x, index) in orders">
<div class="col-2 ">
<div class="mb-title">
<i class="iconfont icon-biaoti1"></i><span>{{ $t('travel.airInfo') }}</span>
......@@ -16,7 +17,8 @@
{{ $t('travel.groupInfo') }}<span>{{ x.TCNUM }}({{ x.TCID }})</span>
</div>
<div>
<span v-if="x.StartAddress" class="q-mt-md text-weight-bold text-negative">{{ x.StartAddress }} {{ $t('travel.start') }}</span>
<span v-if="x.StartAddress" class="q-mt-md text-weight-bold text-negative">{{ x.StartAddress }} {{
$t('travel.start') }}</span>
</div>
</div>
<div class="col-4" :class="$q.platform.is.desktop ? 'q-pl-md' : ''">
......@@ -27,9 +29,8 @@
<div v-for="(subItem, subIndex) in x.SelfFlightList" :key="subIndex" class="TCL-flighInfoList">
<span class="travelnowrap">
<span class="TCL-FlightNumber">{{ subItem.Flight_number }}</span>
<span
><template v-if="subItem.DIATA">({{ subItem.DIATA }})</template> <template v-else>({{ subItem.dName }})</template></span
>
<span><template v-if="subItem.DIATA">({{ subItem.DIATA }})</template> <template v-else>({{ subItem.dName
}})</template></span>
{{ subItem.DepartureName }}
<!-- {{ subItem.StopoverName == '' ? '' : '-(' + subItem.StopoverIATA + ')' + subItem.StopoverName }} -->
<template v-if="subItem.ArrivalCityName">
......@@ -53,33 +54,44 @@
<i class="iconfont icon-jiage"></i><span>{{ $t('travel.airSeatInfo') }}</span>
</div>
<div class="mb bold">
<span class="item-title">{{ $t('travel.totalSeat') }}:</span
><span
>{{ x.YSeat }} <span class="item-title q-ml-md">{{ $t('travel.unUseNum') }}:</span>{{ x.SurplusYSeatNum }}</span
>
<span class="item-title">{{ $t('travel.totalSeat') }}:</span>
<span>
{{ x.YSeat }}
</span>
</div>
<div class="mb bold">
<span class="item-title ">{{ $t('travel.unUseNum') }}:</span>
<span>{{ x.SurplusYSeatNum }}</span>
</div>
<div class="mb bold">
<span class="item-title">{{ $t('travel.status.waiting') }}:</span
><span
>0 </span>
<span class="item-title">{{ $t('travel.status.waiting') }}:</span><span>{{ x.WatingNum }} </span>
</div>
<div class="q-mt-sm" v-if="isMember">
<span class="item-title">{{ $t('travel.returnMoney') }}:</span><span class="text-negative">{{ x.RakeBackRatio }} / pax</span>
<span class="item-title">{{ $t('travel.returnMoney') }}:</span><span class="text-negative">{{
x.RakeBackRatio.toLocaleString() }} /
pax</span>
</div>
<div class="q-mt-sm" v-if="isMember">
<span class="item-title text-primary cursor-pointer">{{ $t('travel.queryDetail') }}</span>
<q-popup-proxy :offset="[0, 10]">
<q-card class="" flat>
<div class="" >
<div class="">
<div class="row items-center bg-grey-2">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.peopleRequired') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.ratio') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
$t('travel.peopleRequired')
}}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.ratio') }}
</div>
</div>
<div class="row items-center" v-for="(item, index) in x.RakeBackList" :key="index" :class="{'bg-green-2': x.RakeBackRatio == item.Ratio}">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ item.MinGuest }}-{{ item.MaxGuest }}
<div class="row items-center" v-for="(item, index) in x.RakeBackList" :key="index"
:class="{ 'bg-green-2': x.RakeBackRatio == item.Ratio }">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ item.MinGuest }}-{{
item.MaxGuest }}
pax
</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ item.Ratio }}/pax</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ item.Ratio.toLocaleString() }}/pax
</div>
<!-- <div class="q-pa-sm text-center col">
<div class="bg-green" style="width:10px;height:10px;border-radius:50%; display: inline-block;" v-if="x.RakeBackRatio == item.Ratio"></div>
</div> -->
......@@ -112,49 +124,62 @@
<i class="iconfont icon-jiage"></i><span>{{ $t('travel.priceInfo') }}</span>
</div>
<div class="bold" v-if="isMember">
<span class="item-title">{{ $t('travel.MiddlePrice') }}: </span>{{ x.B2BMemberPrice }}
<span class="item-title">{{ $t('travel.midPrice') }}: </span>{{ x.MiddlePrice.toLocaleString() }}
</div>
<div class="q-mt-sm bold">
<span class="item-title">{{ $t('travel.b2bPirce') }}: </span>{{ x.B2BShowPrice }}
<span class="item-title">{{ $t('travel.b2bPirce') }}: </span>{{ x.B2BShowPrice.toLocaleString() }}
</div>
<div class="q-mt-sm bold">
<span class="item-title">{{ $t('travel.b2cPirce') }}: </span>{{ x.B2CShowPrice }}
<span class="item-title">{{ $t('travel.b2cPirce') }}: </span>{{ x.B2CShowPrice.toLocaleString() }}
</div>
<div class="q-mt-sm">
<q-btn color="primary" flat dense >{{ $t('travel.priceDetail') }}</q-btn>
<q-btn color="primary" flat dense>{{ $t('travel.priceDetail') }}</q-btn>
<q-popup-proxy :offset="[0, 10]">
<q-card style="min-width: 375px; width: 40vw;" class="q-pa-none" flat>
<div class="row items-center bg-grey-2">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.type') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;" v-if="isMember">{{ $t('travel.MiddlePrice') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.b2bPirce') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;" v-if="isMember">{{
$t('travel.MiddlePrice') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.b2bPirce') }}
</div>
<div class="q-pa-sm text-center col">{{ $t('travel.b2cPirce') }}</div>
</div>
<div class="row items-center" style="border-top: 1px solid #eee;">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.man') }}</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{ x.MiddlePrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ x.B2BShowPrice }}</div>
<div class="q-pa-sm text-center col">{{ x.B2CShowPrice }}</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{
x.MiddlePrice.toLocaleString() }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
x.B2BShowPrice.toLocaleString()
}}</div>
<div class="q-pa-sm text-center col">{{ x.B2CShowPrice.toLocaleString() }}</div>
</div>
<div class="row items-center" style="border-top: 1px solid #eee;">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.childNeedBed') }}</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{ x.MiddlePrice+x.ChildNeedPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ x.B2BShowPrice+x.ChildNeedPrice }}</div>
<div class="q-pa-sm text-center col">{{ x.B2CShowPrice+x.ChildNeedPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.childNeedBed')
}}
</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{
(x.MiddlePrice + x.ChildNeedPrice).toLocaleString() }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
(x.B2BShowPrice + x.ChildNeedPrice).toLocaleString() }}</div>
<div class="q-pa-sm text-center col">{{ (x.B2CShowPrice + x.ChildNeedPrice).toLocaleString() }}</div>
</div>
<div class="row items-center" style="border-top: 1px solid #eee;">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.NoNeedBed') }}</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{ x.MiddlePrice+x.ChildNoNeedPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ x.B2BShowPrice+x.ChildNoNeedPrice }}</div>
<div class="q-pa-sm text-center col">{{ x.B2CShowPrice+x.ChildNoNeedPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.NoNeedBed') }}
</div>
<div class="q-pa-sm text-center col" v-if="isMember" style="border-right: 1px solid #eee;">{{
(x.MiddlePrice + x.ChildNoNeedPrice).toLocaleString() }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
(x.B2BShowPrice + x.ChildNoNeedPrice).toLocaleString() }}</div>
<div class="q-pa-sm text-center col">{{ (x.B2CShowPrice + x.ChildNoNeedPrice).toLocaleString() }}</div>
</div>
<div class="row items-center" style="border-top: 1px solid #eee;">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.Baby') }}</div>
<div class="q-pa-sm text-center col">{{ x.BabyPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;"> {{ $t('travel.Baby') }}
</div>
<div class="q-pa-sm text-center col">{{ x.BabyPrice.toLocaleString() }}</div>
<div class="q-pa-sm text-center col">&nbsp;</div>
<div class="q-pa-sm text-center col" v-if="isMember">&nbsp;</div>
</div>
......@@ -162,15 +187,21 @@
{{ $t('travel.OtherPrice') }}
</div>
<div class="row items-center bg-grey-2">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.VisaPrice') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.SingleRoomPrice') }}</div>
<div class="q-pa-sm text-center col">{{ $t('travel.OtherPrice') }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ $t('travel.VisaPrice') }}
</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
$t('travel.SingleRoomPrice') }}
</div>
<div class="q-pa-sm text-center col">{{ $t('travel.OtherPrice') }}</div>
</div>
<div class="row items-center" style="border-top: 1px solid #eee;">
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ x.VisaPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{ x.SingleRoomPrice }}</div>
<div class="q-pa-sm text-center col">{{ x.OtherPrice }}</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
x.VisaPrice.toLocaleString() }}
</div>
<div class="q-pa-sm text-center col" style="border-right: 1px solid #eee;">{{
x.SingleRoomPrice.toLocaleString() }}</div>
<div class="q-pa-sm text-center col">{{ x.OtherPrice.toLocaleString() }}</div>
</div>
</q-card>
</q-popup-proxy>
......@@ -197,8 +228,13 @@
</div> -->
</div>
<div class="col-1">
<q-btn color="primary" flat dense @click="ViewPayment(x)">{{ $t('travel.buy') }}</q-btn>
<q-btn v-if="isMember" flat dense :class="$q.platform.is.desktop ? 'q-mt-md' : 'q-ml-md'" color="primary" @click="gotoUrl(x)">{{ $t('travel.payOrder') }}</q-btn>
<q-btn color="primary" :style="$q.platform.is.desktop ? 'width: 100%' : ''" flat dense
@click="ViewPayment(x)">{{
$t('travel.buy') }}</q-btn>
<q-btn v-if="isMember" flat dense :style="$q.platform.is.desktop ? 'width: 100%' : ''"
:class="$q.platform.is.desktop ? 'q-mt-md' : 'q-ml-md'" color="primary" @click="gotoUrl(x)">{{
$t('travel.payOrder')
}}</q-btn>
</div>
<q-dialog width="900" v-model="showItem" trigger="click">
<div class="TC_tripDetails" style="width: 900px; background-color: #fff">
......@@ -213,8 +249,11 @@
<tr v-for="(fItem, fIndex) in dialogObj.SelfFlightList" :key="fIndex" style="text-align: center">
<td class="_d_name _color_666">
<span v-if="fIndex == 0">{{ $t('Airticket.Air_go') }}</span>
<span v-else-if="fIndex == dialogObj.SelfFlightList.length - 1">{{ $t('Airticket.Air_returnTrip') }}</span>
<span v-else-if="fIndex > 0 && fIndex != dialogObj.SelfFlightList.length - 1">{{ $t('Airticket.Air_transit') }}</span>
<span v-else-if="fIndex == dialogObj.SelfFlightList.length - 1">{{ $t('Airticket.Air_returnTrip')
}}</span>
<span v-else-if="fIndex > 0 && fIndex != dialogObj.SelfFlightList.length - 1">{{
$t('Airticket.Air_transit')
}}</span>
</td>
<td>
<div>{{ fItem.Flight_number }}</div>
......@@ -229,7 +268,8 @@
</td>
<td>
<div>{{ fItem.FlightArrivalTime }} {{ fItem.Arrival_time }}
<span v-if="fItem.aDay && fItem.aDay != '' && fItem.aDay != '0'" class="text-negative q-ml-sm f12">+{{ fItem.aDay }}</span>
<span v-if="fItem.aDay && fItem.aDay != '' && fItem.aDay != '0'" class="text-negative q-ml-sm f12">+{{
fItem.aDay }}</span>
</div>
<div style="margin-top: 5px">
<span v-if="fItem.AIATA">({{ fItem.AIATA }})</span>
......@@ -245,7 +285,8 @@
</q-dialog>
</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" />
<q-pagination class="full-width justify-end" v-model="pages.pageIndex" color="primary" :max="pages.pageCount"
:input="true" @update:model-value="changePageHandler" />
</q-card>
<q-inner-loading :showing="loading" :label="$t('loading')" label-class="text-grey-6 f12" />
</div>
......@@ -289,7 +330,7 @@ export default defineComponent({
const { t } = useI18n()
const $q = useQuasar()
const userInfo = getStoreGetter<UserGetter>('user', 'getUser')
const isMember = userInfo.isMember==1
const isMember = userInfo.isMember == 1
console.log(userInfo)
watch(search, (n, o) => {
if (data.loading) return
......@@ -324,21 +365,21 @@ export default defineComponent({
data.showItem = true
data.dialogObj = item
},
async download(url: string) {
download(url: string) {
url = url.replace('http://imgfile.oytour.com/', `http://${window.location.host}/webfile/`)
url = url.replace('https://imgfile.oytour.com/', `https://${window.location.host}/webfile/`)
try {
const response = await fetch(url)
const blob = await response.blob()
const filename = url.split('/').pop() || 'download'
const link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.href = url
link.download = filename
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(link.href)
} catch (error) {
message.errorMsg(t('downloadFailed'))
}
},
closeAdd() {
data.showAddOrder = false
......@@ -466,35 +507,43 @@ export default defineComponent({
border-color: #eee !important;
white-space: wrap;
}
.light-border .room-item {
height: 28px;
line-height: 28px;
border-bottom: 1px solid #eee;
}
.light-border .room-item:last-child {
border-bottom: none;
}
.light-border .max-hotelname {
width: 140px;
height: 28px;
line-height: 28px;
}
.orderListDialog-title {
position: relative;
}
.orderListDialog-title span {
font-size: 20px;
}
.orderListDialog-close {
position: absolute;
right: 0;
top: -10px;
font-size: 26px;
}
.orderListDialog-bg {
background: #5098ff;
border-radius: 10px;
}
.orderListDialog-img {
background: url('../../../assets/images/wallet.png') no-repeat right #5098ff;
background-size: 97px 100%;
......@@ -507,9 +556,11 @@ export default defineComponent({
max-height: 400px;
overflow-y: auto;
}
.TC_tripDetails .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.TC_tripDetails table {
padding: 10px 0 0 20px;
background-color: #ededed;
......@@ -517,35 +568,44 @@ export default defineComponent({
border: 1px solid #d2d2d2;
font-size: 12px;
}
.TC_tripDetails table th {
background-color: #ededed;
padding: 5px;
}
.TC_tripDetails table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.TC_tripDetails table td._d_name {
background-color: #ededed;
}
.TC_tripDetails table ._color_666 {
color: #666666;
}
.TC_tripDetails table tr._color_666 th {
padding: 9px 15px;
}
.mb-title {
font-weight: bold;
margin-bottom: 10px;
}
.mb {
margin-bottom: 10px;
}
.bold {
font-weight: bold;
}
.item-title {
font-size: 12px;
color: #666;
......
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