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>
<!--背景圖 - 文中-->
<div class="q-mt-lg">
<div>
<section class="about3" :style="{backgroundImage:`url('${plugData.ImageUrl}')`}">
<div class="section-block">
<div class="about-main">
......
......@@ -185,6 +185,7 @@
<q-menu
ref="address"
@mouseenter="addressMenuEnter"
@mouseleave="addressMenuLeave"
class="light-shadow"
>
<div class="address-box flex">
......@@ -493,6 +494,7 @@ export default {
this.$refs.address.show();
},
mouseeleaveAddress() {
this.addressFocus = 0;
setTimeout(() => {
if (!this.addressFocus) {
this.$refs.address.hide();
......
......@@ -373,15 +373,15 @@ cursor: pointer;
</div>
<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 class=" text-weight-bold text-white" :class="$q.platform.is.desktop ? 'text-subtitle1': 'f14'">{{ 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 ? '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=" 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 row'" v-if="item.SubList">
<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 v-for="item in dataList.BottomList" :key="item.Id">
<div class="text-subtitle1 text-weight-bold text-white">{{ item.NavTitle }}</div>
<div class="q-mt-xl row" style="width:210px">
<div class="text-weight-bold text-white" :class="$q.platform.is.desktop ? 'text-subtitle1': 'f16'">{{ item.NavTitle }}</div>
<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;">
<img style="width:100%" :src="item2.Icon" :title="item2.NavTitle" />
</div>
......
......@@ -117,9 +117,18 @@
.f36 {
font-size: 36px;
}
.f40 {
font-size: 40px;
}
.f42 {
font-size: 42px;
}
.lh200 {
line-height: 200%;
}
.lh150 {
line-height: 150%;
}
.text-center {
text-align: center;
}
......
This diff is collapsed.
......@@ -516,6 +516,16 @@
<div class="col">{{CarObj.CarName}} x {{ chosenObj.Count }}</div>
<div>{{details.CurrencyCode}} {{ moneyFormat(OrderDate.originalB2CPrice,2) }}</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" />
<div class="row q-mb-sm items-center">
<div class="col">優惠金額</div>
......
......@@ -282,6 +282,16 @@
</template>
</div>
</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" />
<div class="row q-mb-sm items-center" v-if="parameters.MailingState==2&&parameters.MailingMoney>0">
<div class="col">邮寄费</div>
......
This diff is collapsed.
......@@ -594,16 +594,16 @@ export default {
TCID: 0,
OrderId: 0,
VisaPlanId: 0,
SurName: "",
Name: "",
PassportNo: "D56465465",
ESurName: "LUO",
EName: "CHAO",
SurName: "",
Name: "",
PassportNo: "",
ESurName: "",
EName: "",
GuestType: 0,
EnableSignRoom: false,
PassportExpiry: "2035-12-31",
PassportExpiry: "",
FormatTypeName: "",
MobilePhone: "17308037817",
MobilePhone: "",
RoomType: 0,
IsSignRoom: false,
Sex: 1,
......@@ -619,7 +619,7 @@ export default {
IsDepartureRecord: 2,
IsHightSchool: 2,
IsB2B: 1,
Birthday: "1990-12-26",
Birthday: "",
},
guests: [],
disableSign: false,
......
This diff is collapsed.
<style>
.login {
background: url('../assets/img/login-bg.png');background-size: cover;
background: url("../assets/img/login-bg.png");
background-size: cover;
width: 100%;
height: 100%;
position: fixed;
......@@ -9,7 +10,7 @@
left: 0;
right: 0;
}
.login-box {
.login-box-pc {
width: 436px;
padding: 30px 40px;
margin: 100px auto;
......@@ -19,6 +20,12 @@
background: #ffffff;
border-radius: 18px;
}
.login-box {
max-width: 436px;
padding: 30px 40px;
background-clip: padding-box;
background: #ffffff;
}
.login-box .tw_logo {
margin: 0 auto 20px;
......@@ -82,8 +89,8 @@
}
</style>
<template>
<div class="login">
<div class="login-box">
<div :class="$q.platform.is.desktop ? 'login': 'full-width'">
<div class="login-box" :class="$q.platform.is.desktop ? 'login-box-pc': ''">
<div class="f34 bold">重置密码</div>
<div class="login_row">
<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