Commit 3d00fcbb authored by 吴春's avatar 吴春

提交代码

parent 1c6043d4
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<form
autocorrect="off"
autocapitalize="off"
autocomplete="off"
spellcheck="false"
>
<div class="row justify-between q-my-md">
<div
v-for="(x, i) in cols"
:key="i"
class="override-verfity-ipt col"
:class="{ 'q-ml-sm': i > 0 }"
>
<q-input
standout
v-model="cols[i]"
@focus="codeFocus($event)"
ref="codes"
@keyup="changFocus($event, i)"
maxlength="1"
mask="#"
dense
/>
</div>
</div>
<div class="q-mt-sm text-negative f12" v-if="hasError">{{ errorMsg }}</div>
</form>
</template>
<script>
export default {
props: {
/**
* @description 请传入能够被12整除的整数
*/
digit: Number,
/**
* @description 提示语
*/
hint: String,
/**
* @description 绑定值
*/
value: [String, Number],
},
data() {
return {
cols: [],
hasError: false,
errorMsg: "",
colStyle: "",
};
},
created() {
this.initColHandler();
},
methods: {
initColHandler() {
for (let i = 0; i < this.digit; i++) {
this.cols.push("");
}
this.colStyle = `col-${12 / this.digit}`;
},
changFocus(event, index) {
if (event.key == "Backspace") {
if (index != 0) {
this.$refs.codes[index - 1].focus();
}
} else if (index < this.digit-1) {
if (this.cols[index] != "") {
this.$refs.codes[index + 1].focus();
}
}
this.updateValue();
},
updateValue() {
let tempValue = "";
this.cols.forEach((x) => {
tempValue += x;
});
this.$emit("input", tempValue);
},
codeFocus(e) {
e.target.select();
},
validate() {
if (this.value.length != this.cols.length) {
this.errorMsg = "请输入正确的验证码";
this.hasError = true;
} else {
this.errorMsg = "";
this.hasError = false;
}
return !this.hasError
},
},
};
</script>
<style>
.override-verfity-ipt .q-field--dense .q-field__control,
.override-verfity-ipt .q-field--dense .q-field__marginal {
height: 60px !important;
text-align: center;
font-family: din;
font-size: 32px;
}
.override-verfity-ipt .q-field--dense .q-field__control input,
.override-verfity-ipt .q-field--dense .q-field__marginal input {
text-align: center;
}
</style>
<template> <template>
<!--背景圖 - 文中--> <!--背景圖 - 文中-->
<div class="q-mt-lg"> <div>
<section class="about3" :style="{backgroundImage:`url('${plugData.ImageUrl}')`}"> <section class="about3" :style="{backgroundImage:`url('${plugData.ImageUrl}')`}">
<div class="section-block"> <div class="section-block">
<div class="about-main"> <div class="about-main">
......
...@@ -185,6 +185,7 @@ ...@@ -185,6 +185,7 @@
<q-menu <q-menu
ref="address" ref="address"
@mouseenter="addressMenuEnter" @mouseenter="addressMenuEnter"
@mouseleave="addressMenuLeave"
class="light-shadow" class="light-shadow"
> >
<div class="address-box flex"> <div class="address-box flex">
...@@ -493,6 +494,7 @@ export default { ...@@ -493,6 +494,7 @@ export default {
this.$refs.address.show(); this.$refs.address.show();
}, },
mouseeleaveAddress() { mouseeleaveAddress() {
this.addressFocus = 0;
setTimeout(() => { setTimeout(() => {
if (!this.addressFocus) { if (!this.addressFocus) {
this.$refs.address.hide(); this.$refs.address.hide();
......
...@@ -373,15 +373,15 @@ cursor: pointer; ...@@ -373,15 +373,15 @@ cursor: pointer;
</div> </div>
<div :class="$q.platform.is.desktop ? 'row': 'q-mt-lg'"> <div :class="$q.platform.is.desktop ? 'row': 'q-mt-lg'">
<div v-for="(item,i) in dataList.FooterList" :key="item.Id" :class="{'q-ml-xl':i>0 && $q.platform.is.desktop}"> <div v-for="(item,i) in dataList.FooterList" :key="item.Id" :class="{'q-ml-xl':i>0 && $q.platform.is.desktop}">
<div class=" text-weight-bold text-white" :class="$q.platform.is.desktop ? 'text-subtitle1': 'f14'">{{ item.NavTitle }}</div> <div class=" text-weight-bold text-white" :class="$q.platform.is.desktop ? 'text-subtitle1': 'f16'">{{ item.NavTitle }}</div>
<div :class="$q.platform.is.desktop ? 'q-mt-xl': 'q-mt-md'" v-if="item.SubList"> <div :class="$q.platform.is.desktop ? 'q-mt-xl': 'q-mt-md row'" v-if="item.SubList">
<div :class="$q.platform.is.desktop ? 'text-subtitle2 text-regular': 'f12'" class="q-mb-lg text-grey-8 cursor-pointer" v-for="item2 in item.SubList" :key="item2.Id" @click="navigateTo(item2)">{{item2.NavTitle}}</div> <div :class="$q.platform.is.desktop ? 'text-subtitle2 text-regular': 'f14'" class="q-mb-lg q-mr-md text-grey-8 cursor-pointer" v-for="item2 in item.SubList" :key="item2.Id" @click="navigateTo(item2)">{{item2.NavTitle}}</div>
</div> </div>
</div> </div>
</div> </div>
<div v-for="item in dataList.BottomList" :key="item.Id"> <div v-for="item in dataList.BottomList" :key="item.Id">
<div class="text-subtitle1 text-weight-bold text-white">{{ item.NavTitle }}</div> <div class="text-weight-bold text-white" :class="$q.platform.is.desktop ? 'text-subtitle1': 'f16'">{{ item.NavTitle }}</div>
<div class="q-mt-xl row" style="width:210px"> <div class="row" :class="$q.platform.is.desktop ? 'q-mt-xl' : 'q-mt-md'" :style="$q.platform.is.desktop ? 'width:210px': 'width:100%'" >
<div class="bg-white rounded-borders q-pa-xs overflow-hidden q-mb-md q-mr-md" @click="navigateTo(item2)" v-for="item2 in item.SubList" :key="item2.Id" style="width:40px;height:34px;"> <div class="bg-white rounded-borders q-pa-xs overflow-hidden q-mb-md q-mr-md" @click="navigateTo(item2)" v-for="item2 in item.SubList" :key="item2.Id" style="width:40px;height:34px;">
<img style="width:100%" :src="item2.Icon" :title="item2.NavTitle" /> <img style="width:100%" :src="item2.Icon" :title="item2.NavTitle" />
</div> </div>
......
...@@ -117,9 +117,18 @@ ...@@ -117,9 +117,18 @@
.f36 { .f36 {
font-size: 36px; font-size: 36px;
} }
.f40 {
font-size: 40px;
}
.f42 { .f42 {
font-size: 42px; font-size: 42px;
} }
.lh200 {
line-height: 200%;
}
.lh150 {
line-height: 150%;
}
.text-center { .text-center {
text-align: center; text-align: center;
} }
......
This diff is collapsed.
...@@ -516,6 +516,16 @@ ...@@ -516,6 +516,16 @@
<div class="col">{{CarObj.CarName}} x {{ chosenObj.Count }}</div> <div class="col">{{CarObj.CarName}} x {{ chosenObj.Count }}</div>
<div>{{details.CurrencyCode}} {{ moneyFormat(OrderDate.originalB2CPrice,2) }}</div> <div>{{details.CurrencyCode}} {{ moneyFormat(OrderDate.originalB2CPrice,2) }}</div>
</div> </div>
<hr
style="border: none; border-top: 1px dashed #eee !important"
class="bg-transparent q-mb-sm"
/>
<div class="row q-mb-sm items-center">
<div class="col">總金額</div>
<div class="text-subtitle2 text-weight-bolder text-primary">
CNY {{ moneyFormat(sumPrice, 2) }}
</div>
</div>
<hr style="border:none;border-top:1px dashed #EEE !important;" class="bg-transparent q-mb-sm" /> <hr style="border:none;border-top:1px dashed #EEE !important;" class="bg-transparent q-mb-sm" />
<div class="row q-mb-sm items-center"> <div class="row q-mb-sm items-center">
<div class="col">優惠金額</div> <div class="col">優惠金額</div>
......
...@@ -282,6 +282,16 @@ ...@@ -282,6 +282,16 @@
</template> </template>
</div> </div>
</template> </template>
<hr
style="border: none; border-top: 1px dashed #eee !important"
class="bg-transparent q-mb-sm"
/>
<div class="row q-mb-sm items-center">
<div class="col">總金額</div>
<div class="text-subtitle2 text-weight-bolder text-primary">
CNY {{ moneyFormat(sumPrice, 2) }}
</div>
</div>
<hr style="border:none;border-top:1px dashed #EEE !important;" class="bg-transparent q-mb-sm" /> <hr style="border:none;border-top:1px dashed #EEE !important;" class="bg-transparent q-mb-sm" />
<div class="row q-mb-sm items-center" v-if="parameters.MailingState==2&&parameters.MailingMoney>0"> <div class="row q-mb-sm items-center" v-if="parameters.MailingState==2&&parameters.MailingMoney>0">
<div class="col">邮寄费</div> <div class="col">邮寄费</div>
......
This diff is collapsed.
...@@ -594,16 +594,16 @@ export default { ...@@ -594,16 +594,16 @@ export default {
TCID: 0, TCID: 0,
OrderId: 0, OrderId: 0,
VisaPlanId: 0, VisaPlanId: 0,
SurName: "", SurName: "",
Name: "", Name: "",
PassportNo: "D56465465", PassportNo: "",
ESurName: "LUO", ESurName: "",
EName: "CHAO", EName: "",
GuestType: 0, GuestType: 0,
EnableSignRoom: false, EnableSignRoom: false,
PassportExpiry: "2035-12-31", PassportExpiry: "",
FormatTypeName: "", FormatTypeName: "",
MobilePhone: "17308037817", MobilePhone: "",
RoomType: 0, RoomType: 0,
IsSignRoom: false, IsSignRoom: false,
Sex: 1, Sex: 1,
...@@ -619,7 +619,7 @@ export default { ...@@ -619,7 +619,7 @@ export default {
IsDepartureRecord: 2, IsDepartureRecord: 2,
IsHightSchool: 2, IsHightSchool: 2,
IsB2B: 1, IsB2B: 1,
Birthday: "1990-12-26", Birthday: "",
}, },
guests: [], guests: [],
disableSign: false, disableSign: false,
......
This diff is collapsed.
<style> <style>
.login { .login {
background: url('../assets/img/login-bg.png');background-size: cover; background: url("../assets/img/login-bg.png");
background-size: cover;
width: 100%; width: 100%;
height: 100%; height: 100%;
position: fixed; position: fixed;
...@@ -9,7 +10,7 @@ ...@@ -9,7 +10,7 @@
left: 0; left: 0;
right: 0; right: 0;
} }
.login-box { .login-box-pc {
width: 436px; width: 436px;
padding: 30px 40px; padding: 30px 40px;
margin: 100px auto; margin: 100px auto;
...@@ -19,6 +20,12 @@ ...@@ -19,6 +20,12 @@
background: #ffffff; background: #ffffff;
border-radius: 18px; border-radius: 18px;
} }
.login-box {
max-width: 436px;
padding: 30px 40px;
background-clip: padding-box;
background: #ffffff;
}
.login-box .tw_logo { .login-box .tw_logo {
margin: 0 auto 20px; margin: 0 auto 20px;
...@@ -82,8 +89,8 @@ ...@@ -82,8 +89,8 @@
} }
</style> </style>
<template> <template>
<div class="login"> <div :class="$q.platform.is.desktop ? 'login': 'full-width'">
<div class="login-box"> <div class="login-box" :class="$q.platform.is.desktop ? 'login-box-pc': ''">
<div class="f34 bold">重置密码</div> <div class="f34 bold">重置密码</div>
<div class="login_row"> <div class="login_row">
<div class="form-group"> <div class="form-group">
......
<template>
<div class="content-page order-preview">
<q-card class="rounded-borders q-pa-md q-mt-md" flat>
<div class="text-subtitle1 text-weight-bolder">訂單狀態</div>
<div class="q-mt-lg row">
<div class="col">
<div class="row items-center">
<q-icon name="iconfont icontishi" size="32px" color="warning" />
<div class="q-ml-md text-h6 text-orange text-weight-bold">待支付</div>
</div>
<div class="q-mt-md f12 text-grey-6">請在您下單成功後30分鐘內完成支付,否則訂單會被系統自動取消</div>
</div>
<div class="">
<div class="f12 text-grey-6">訂單編號:#D2022325159852</div>
<div class="f12 text-grey-6 q-mt-md">下單日期:2023年3月14日 19:02</div>
</div>
</div>
<q-separator color="grey-2" class="q-my-md" />
<div class="row">
<div class="text-subtitle1 col">
<span>應付金額:</span>
<span class="text-subtitle2">CNY</span>
<span class="q-ml-sm text-weight-bolder">{{ moneyFormat('3580.00',2) }}</span>
</div>
<div class="">
<q-btn color="primary" outline dense label="取消訂單" class="q-mr-md q-px-md"/>
<q-btn color="primary" unelevated dense label="前往付款" class="q-px-md"/>
</div>
</div>
</q-card>
<q-card class="rounded-borders q-pa-md q-mt-md" flat>
<div class="text-subtitle1 text-weight-bolder">商品訊息</div>
<div class="row q-mt-md">
<q-img
src="http://imgfile.oytour.com/Upload/DMC/202302280651141800000000003.jpg"
class="rounded-borders q-mr-md"
spinner-color="grey-2"
style="width: 150px"
/>
<div class="col">
<div class="text-body1 ellipsis">忠清北道私人包車一日遊|玉笋峰悬索桥 & 单轨列车登飞凤山(滑翔伞) & 朴达岭 & 国弓体验</div>
<div class="q-mt-sm text-grey-6">2023-03-15從成都出發 成人x2; </div>
<div class="q-mt-sm text-dark">
出行日期:2023年3月30日(本地时间)
</div>
<div class="q-mt-sm text-grey-6">
商品類型:包車
</div>
</div>
</div>
</q-card>
<q-card class="rounded-borders q-pa-md q-mt-md" flat>
<div class="text-subtitle1 text-weight-bolder">訂購人訊息</div>
<div class="f12 q-mt-sm text-grey-6">如你的预订有任何变动,我们将及时通知你</div>
<div class="row q-col-gutter-md q-mt-md">
<div class="col-6">
<div class="f12 text-grey-6">姓氏</div>
<div class="q-mt-sm text-body1"></div>
</div>
<div class="col-6">
<div class="f12 text-grey-6">名字</div>
<div class="q-mt-sm text-body1"></div>
</div>
<div class="col-6">
<div class="f12 text-grey-6">手機號碼</div>
<div class="q-mt-sm text-body1">86-17308037817</div>
</div>
<div class="col-6">
<div class="f12 text-grey-6">邮箱 (用于接收订单确认邮件)</div>
<div class="q-mt-sm text-body1">alex9012@vip.qq.com</div>
</div>
</div>
<div>
<q-separator color="grey-2" class="q-my-md" />
<div class="text-subtitle1 text-weight-bolder">用戶備註</div>
<div class="rounded-borders bg-orange-1 col q-mt-md q-pa-md text-orange">
凍死了防控就是大陸飛科技阿斯蒂芬盧卡斯經費達拉斯
</div>
</div>
</q-card>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
\ No newline at end of file
const routes = [{
path: '/',
component: () =>
import ('layouts/HomeLayout.vue'),
children: [{
path: '',
meta: { title: '首页' },
component: () =>
import ('pages/index.vue')
},
{
path: '/index',
meta: { title: '首页' },
component: () =>
import ('pages/index.vue')
},
{
path: '/about', //关于我们
meta: { title: '关于我们' },
component: () =>
import ('pages/about.vue')
}, {
path: '/contract', //契约管理
meta: { title: '契约管理' },
component: () =>
import ('pages/contract.vue')
}, {
path: '/tour_visa', //签证护照管理
meta: { title: '签证护照管理' },
component: () =>
import ('pages/tour_visa.vue')
}, { //行程
path: '/details/:id/:tcid',
meta: { title: '行程' },
component: () =>
import ('pages/details.vue')
}, { // 包车,接机
meta: { title: '包车,接机' },
path: '/detailCar/:id',
component: () =>
import ('pages/detailsCar.vue')
}, { // 包车,接机下单
path: '/PickuporderForm/:id',
meta: { title: '包车,接机下单' },
component: () =>
import ('pages/Pickuporder/orderForm.vue')
}, { // 景区门票详情
path: '/detailsScenicSpotTicket/:id',
meta: { title: '景区门票详情' },
component: () =>
import ('pages/ScenicSpotTicket/details.vue')
}, { // 景区门票下单
path: '/ScenicSpotTicketOrderForm/:id',
meta: { title: '景区门票下单' },
component: () =>
import ('pages/ScenicSpotTicket/orderForm.vue')
}, { // 酒店
path: '/detailHotal/:id/:b2CPrice',
meta: { title: '酒店' },
component: () =>
import ('pages/detailsHotal.vue')
}, { // 旅程
path: '/detail/:id/:tcid/:newConfigId',
meta: { title: '旅程' },
component: () =>
import ('pages/detailsNew.vue')
}, {
path: '/search', //出行检索
meta: { title: '出行检索' },
component: () =>
import ('pages/Search.vue')
},
{
path: '/account', //用户信息
meta: { isUserCenter: true, needLogin: true, title: '用户信息' },
component: () =>
import ('pages/usercenter/account.vue')
},
{
path: '/demandlist', //需求单列表
meta: { isUserCenter: true, needLogin: true, title: '需求单列表' },
component: () =>
import ('pages/usercenter/demandlist.vue')
},
{
path: '/demandinfo/:id', //需求单详情
meta: { isUserCenter: true, needLogin: true, title: '需求单详情' },
component: () =>
import ('pages/usercenter/demandinfo.vue')
},
{
path: '/orderlist', //订单列表
meta: { isUserCenter: true, needLogin: true, title: '订单列表' },
component: () =>
import ('pages/usercenter/orderlist.vue')
},
{
path: '/orderinfo/:id', //订单详情
meta: { isUserCenter: true, needLogin: true, title: '订单详情' },
component: () =>
import ('pages/usercenter/orderinfo.vue')
},
{
path: '/passengerList/:id', //旅客名单
meta: { isUserCenter: true, needLogin: true, title: '旅客名单' },
component: () =>
import ('pages/usercenter/passengerList.vue')
},
{
path: '/register', //用户注册
meta: { isUserCenter: true, needLogin: true, title: '用户注册' },
component: () =>
import ('pages/usercenter/register.vue')
},
{
path: '/loginInfo', //账户设置
meta: { isUserCenter: true, needLogin: true, title: '账户设置' },
component: () =>
import ('pages/usercenter/loginInfo.vue')
},
{
path: '/setAddress', //地址管理
meta: { isUserCenter: true, needLogin: true, title: '地址管理' },
component: () =>
import ('pages/usercenter/setAddress.vue')
},
{
path: '/setInfo', //账户设置
meta: { isUserCenter: true, needLogin: true, title: '账户设置' },
component: () =>
import ('pages/usercenter/setInfo.vue')
},
{
path: '/setUserInfo', //用户信息
meta: { isUserCenter: true, needLogin: true, title: '用户信息' },
component: () =>
import ('pages/usercenter/setUserInfo.vue')
},
{
path: '/coupon', //优惠券
meta: { isUserCenter: true, needLogin: true, title: '优惠券' },
component: () =>
import ('pages/usercenter/coupon.vue')
},
{
path: '/order', //用户订单
meta: { isUserCenter: true, needLogin: true, title: '用户订单' },
component: () =>
import ('pages/usercenter/order.vue')
},
{
path: '/setUsersList', //出行人管理
meta: { isUserCenter: true, needLogin: true, title: '出行人管理' },
component: () =>
import ('pages/usercenter/setUsersList.vue')
},
{
path: '/payInfo', //支付管理
meta: { isUserCenter: true, needLogin: true, title: '支付管理' },
component: () =>
import ('pages/usercenter/payInfo.vue')
},
{
path: '/customer/:id', //顾客管理
meta: { title: '顾客管理' },
component: () =>
import ('pages/customer.vue')
},
{
path: '/city/:id', //城市详情
meta: { title: '城市详情' },
component: () =>
import ('pages/city/cityDetail.vue')
},
{
path: '/lineOrderPriview/:id?', //订单确认
meta: { title: '订单确认' },
component: () =>
import ('pages/line/orderPreview.vue')
},
{
path: '/pay/:id?', //自定义页面
meta: { title: '订单支付' },
component: () =>
import ('pages/pay/pay.vue')
},
{
path: '/paysuccess/:id?', //支付结果
meta: { title: '支付结果' },
component: () =>
import ('pages/pay/paysuccess.vue')
},
]
},
{
path: '/userCenter', //移动端个人中心
meta: { isUserCenter: true, needLogin: true,title: '个人中心' },
component: () =>
import ('pages/usercenter/mobileUserCenter.vue')
},
{
path: '/login',
meta: { title: '登录' },
component: () =>
import ('pages/login.vue'),
children: [{
path: '/login',
meta: { title: '登录' },
component: () =>
import ('pages/login.vue')
}]
},
{
path: '/resetPassword',
meta: { title: '重置密码' },
component: () =>
import ('pages/resetPassword.vue'),
children: [{
path: '/resetPassword',
meta: { title: '重置密码' },
component: () =>
import ('pages/resetPassword.vue')
}]
},
{
path: '/newTrip',
meta: { title: '旅程' },
component: () =>
import ('pages/newTrip.vue')
},
{
path: '/tripMobile',
meta: { title: '旅程' },
component: () =>
import ('pages/tripMobile.vue')
}
]
// Always leave this as last one
if (process.env.MODE !== 'ssr') {
routes.push({
path: '*',
component: () =>
import ('pages/Error404.vue')
})
}
export default routes
\ No newline at end of file
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