Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigwood
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
bigwood
Commits
597da35f
Commit
597da35f
authored
Jun 28, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据域名渲染菜单
parent
59741d29
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1594 additions
and
135 deletions
+1594
-135
App.vue
src/App.vue
+6
-1
home-hp.png
src/assets/images/home-hp.png
+0
-0
i18n.ts
src/boot/i18n.ts
+8
-3
CompositionComponent.vue
src/components/CompositionComponent.vue
+12
-3
Notifications.vue
src/components/layout/Notifications.vue
+9
-2
navs.vue
src/components/layout/navs.vue
+8
-2
dictionary.ts
src/config/dictionary.ts
+5
-1
index.ts
src/i18n/zh-SW/index.ts
+1490
-99
MainLayout.vue
src/layouts/MainLayout.vue
+13
-8
login.vue
src/pages/auth/login.vue
+11
-3
tools.ts
src/utils/tools.ts
+10
-3
validate.ts
src/utils/validate.ts
+22
-10
No files found.
src/App.vue
View file @
597da35f
...
...
@@ -3,11 +3,12 @@
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
onBeforeUnmount
}
from
'vue'
;
import
{
defineComponent
,
onBeforeUnmount
,
provide
}
from
'vue'
;
import
{
useQuasar
,
QSpinnerFacebook
}
from
'quasar'
import
{
useI18n
}
from
'vue-i18n'
import
axios
from
'axios'
;
import
{
DirtionmaryHelper
}
from
'./config/dictionary'
;
import
{
getDomainName
}
from
'./utils/validate'
export
default
defineComponent
({
name
:
'App'
,
setup
(
props
,
context
)
{
...
...
@@ -17,6 +18,10 @@ export default defineComponent({
if
(
localStorage
.
vuex
)
{
localStorage
.
clear
()
}
// 存储当前域名
provide
(
DirtionmaryHelper
.
DOMAIN_NAME
,
getDomainName
())
onBeforeUnmount
(()
=>
{
if
(
timer
!==
void
0
)
{
clearTimeout
(
timer
)
...
...
src/assets/images/home-hp.png
0 → 100644
View file @
597da35f
74.4 KB
src/boot/i18n.ts
View file @
597da35f
import
{
boot
}
from
'quasar/wrappers'
import
{
createI18n
}
from
'vue-i18n'
import
{
getDomainName
}
from
'../utils/validate'
import
messages
from
'src/i18n'
export
type
MessageLanguages
=
keyof
typeof
messages
;
...
...
@@ -20,9 +20,14 @@ declare module 'vue-i18n' {
// define the number format schema
export
interface
DefineNumberFormat
{}
}
let
Language
if
(
getDomainName
()){
Language
=
localStorage
.
getItem
(
'lanuage'
)
??
'zhTW'
}
else
{
Language
=
localStorage
.
getItem
(
'lanuage'
)
??
'zhSW'
}
const
i18n
=
createI18n
({
locale
:
localStorage
.
getItem
(
'lanuage'
)
??
'zhTW'
,
locale
:
Language
,
legacy
:
false
,
warnHtmlInMessage
:
false
,
warnHtmlMessage
:
false
,
...
...
src/components/CompositionComponent.vue
View file @
597da35f
<
template
>
<div
class=
"text-center"
>
<!--
<img
src=
"../assets/images/lg-logo.png"
style=
"height:200px;"
/>
-->
<img
src=
"../assets/images/home.png"
style=
"width: 50%;"
/>
<img
v-if=
"isDomainName_PIC"
src=
"../assets/images/home.png"
style=
"width: 50%;"
/>
<img
v-else
src=
"../assets/images/home-hp.png"
style=
"width: 50%;"
/>
<!--
<div
class=
"q-mt-lg text-h3 text-grey-4 text-center"
>
歡迎使用PIC同業預定系統
</div>
-->
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
PropType
,
computed
,
re
f
,
toRef
,
Ref
}
from
'vue'
import
{
defineComponent
,
PropType
,
computed
,
re
active
,
toRefs
,
ref
,
toRef
,
Ref
,
inject
}
from
'vue'
import
{
Todo
,
Meta
}
from
'./models'
import
{
DirtionmaryHelper
}
from
'../config/dictionary'
function
useClickCount
()
{
const
clickCount
=
ref
(
0
)
...
...
@@ -45,7 +47,14 @@ export default defineComponent({
}
},
setup
(
props
)
{
return
{
...
useClickCount
(),
...
useDisplayTodo
(
toRef
(
props
,
'todos'
))
}
const
data
=
reactive
({
isDomainName_PIC
:
true
})
// 根据域名渲染logo
data
.
isDomainName_PIC
=
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)
return
{
...
useClickCount
(),
...
useDisplayTodo
(
toRef
(
props
,
'todos'
)),...
toRefs
(
data
),
}
}
})
</
script
>
src/components/layout/Notifications.vue
View file @
597da35f
...
...
@@ -37,7 +37,7 @@
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
reactive
,
toRefs
,
provide
,
onMounted
}
from
'vue'
import
{
defineComponent
,
ref
,
reactive
,
toRefs
,
provide
,
onMounted
,
inject
}
from
'vue'
import
{
useMenus
,
Menu
}
from
'../../utils/menus'
import
{
getLangs
}
from
"../../utils/tools"
;
import
{
SitLang
}
from
'../../@types'
;
...
...
@@ -46,6 +46,7 @@
import
{
UserActionsType
}
from
'../../store/modules/user/actions'
;
import
useScrollModule
from
'../../module/scrollbar/scrollModule'
import
svgIcon
from
'../global/svg-icon.vue'
import
{
DirtionmaryHelper
}
from
'../../config/dictionary'
;
export
default
defineComponent
({
components
:
{
svgIcon
},
name
:
'user-info'
,
...
...
@@ -64,7 +65,13 @@
scrollStyle
:
{}
as
any
,
})
data
.
scrollStyle
=
useScrollModule
().
scrollStyle
data
.
menus
=
useMenus
.
getMenus
()
// 根据域名渲染菜单
const
menList
=
useMenus
.
getMenus
().
filter
(
x
=>
{
return
x
.
id
==
16
})
data
.
menus
=
!
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)?
menList
:
useMenus
.
getMenus
()
data
.
langs
=
getLangs
()
if
(
data
.
langs
&&
data
.
langs
.
length
>
0
){
data
.
currentLang
=
data
.
langs
.
find
(
x
=>
x
.
langLocale
==
locale
.
value
)
??
{};
...
...
src/components/layout/navs.vue
View file @
597da35f
...
...
@@ -5,9 +5,10 @@
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
reactive
,
toRefs
}
from
'vue'
import
{
defineComponent
,
ref
,
reactive
,
toRefs
,
inject
}
from
'vue'
import
navItem
from
'./nav-item.vue'
import
{
useMenus
,
Menu
}
from
'../../utils/menus'
import
{
DirtionmaryHelper
}
from
'../../config/dictionary'
;
export
default
defineComponent
({
components
:
{
navItem
},
name
:
'navs'
,
...
...
@@ -15,7 +16,12 @@ export default defineComponent({
const
data
=
reactive
({
menus
:
[]
as
Menu
[]
})
data
.
menus
=
useMenus
.
getMenus
()
// 根据域名渲染菜单
const
menList
=
useMenus
.
getMenus
().
filter
(
x
=>
{
return
x
.
id
==
16
})
data
.
menus
=
!
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)?
menList
:
useMenus
.
getMenus
()
return
{...
toRefs
(
data
)}
}
...
...
src/config/dictionary.ts
View file @
597da35f
...
...
@@ -100,6 +100,10 @@ class DirtionmaryHelper {
/**
* 幸福存折详情
*/
static
readonly
PASSBOOK_DETAILS
=
"passbookDetails"
static
readonly
PASSBOOK_DETAILS
=
"passbookDetails"
/**
* 域名
*/
static
readonly
DOMAIN_NAME
=
"domainName"
}
export
{
userDictionmary
,
DirtionmaryHelper
}
src/i18n/zh-SW/index.ts
View file @
597da35f
// This is just an example,
// so you can safely delete all default props below
export
default
{
failed
:
'执行失败'
,
success
:
'执行成功'
,
appsuffix
:
"PIC同业预定系统"
,
siteName
:
"同业预定系统"
,
lanuage
:
"系统语言"
,
loginout
:
'登录信息失效,请重新登录'
,
timeout
:
'当前网络环境异常,请求超时'
,
syslog
:
'系统升級告示'
,
sysmsg
:
'系统通知'
,
daterange
:
'请选择检索日期'
,
morequery
:
'更多筛选项'
,
query
:
'检索'
,
Notifications
:
{
title
:
'通知'
,
subtitle
:
'条新消息'
,
more
:
'更多'
,
time
:
'h'
},
hotel
:
{
pageTitle
:
"酒店检索"
,
area
:
"检索区域"
,
searchName
:
'酒店名称'
},
userMenu
:
{
mypro
:
'个人档案'
,
myfinace
:
'请求书'
,
fapiao
:
'索取发票'
,
lang
:
'系统语言'
,
signOut
:
'登出'
},
menu
:
{
hotel
:
{
first
:
'酒店预定'
,
second
:
'酒店检索'
,
three
:
'酒店订单'
},
car
:
{
first
:
'车辆预定'
,
second
:
'车辆预定'
,
three
:
'用车订单'
},
ticket
:
{
first
:
'门票预定'
,
second
:
'门票检索'
,
three
:
'门票订单'
},
finance
:
{
first
:
'账单'
,
second
:
'月度请求书'
,
three
:
'汇款说明'
}
},
login
:
{
notaccess
:
"沒有同业会员账户?"
,
registlink
:
"申请注册"
,
title
:
"登入"
,
subTitle
:
"欢迎您的到来,开放急速采购"
,
account
:
"账户(EMail)"
,
password
:
"密码"
,
forgot
:
"忘记密码?"
,
signin
:
"登入"
,
pageTitle
:
"登入"
,
ruleTipsAccount
:
"请填写正确的邮箱账号"
,
ruleTipsPwd
:
"请填写密码"
,
formTips
:
"请填写登录信息"
,
success
:
"登陆成功"
},
forget
:
{
pageTitle
:
"忘记密码"
,
title
:
"忘记密码"
,
subtitle
:
"输入您的邮箱,以重置密码"
,
notaccess
:
"已经是会员了?"
,
registlink
:
"登录"
,
account
:
"账户(EMail)"
,
submit
:
"提交"
,
cancel
:
"取消"
,
goback
:
"返回"
,
mailResult
:
"邮件件已发送到您的邮箱,请根据邮件提示修改密码"
,
resultBtn
:
"我已知晓"
},
newpwd
:
{
pageTitle
:
"设置新密码"
,
title
:
"设置新密码"
,
subtitle
:
"为了您的账户安全,建议您定期修改密码"
,
notaccess
:
"你已经重置密码了吗?"
,
registlink
:
"登入"
,
pass
:
"新密码"
,
passTips
:
"使用8个或8个以上的字母、数字和符号的組合"
,
passvalidate
:
"请按照提示要求设置密码"
,
repeatPassvalidate
:
"两次输入密码不一致"
,
repeatPass
:
"再次输入密码"
,
notEmptyPass
:
'新密码最少为8位'
,
maxLengthPass
:
'密码长度应为8-16位'
,
updateResult
:
'新密码已经设置成功,可以立即登入'
,
resultBtn
:
"立即登入"
}
//#region ending v1.0.0
failed
:
'执行失败'
,
success
:
'执行成功'
,
appsuffix
:
'PIC同业预定系统'
,
siteName
:
'同业预定系统'
,
lanuage
:
'系统语言'
,
loginout
:
'登录信息失效,请重新登录'
,
timeout
:
'当前网络环境异常,请求超时'
,
syslog
:
'系统升级告示'
,
sysmsg
:
'系统通知'
,
daterange
:
'请选择检索日期'
,
morequery
:
'更多筛选项'
,
query
:
'检索'
,
noneData
:
'没有找到相关的数据'
,
loading
:
'正在加载数据'
,
loading2
:
'加载中,请稍后~'
,
verified
:
'已认证'
,
noneFax
:
'无传真信息'
,
noneNotify
:
'暂无通知消息'
,
none
:
'无'
,
have
:
'有'
,
free
:
'免费'
,
before
:
'提前'
,
dinner
:
{
a
:
'早餐'
,
b
:
'午餐'
,
c
:
'晚餐'
},
hotelType
:
{
a
:
'商务酒店'
,
b
:
'豪华酒店'
,
c
:
'温泉酒店'
,
d
:
'海滨度假酒店'
},
personal
:
{
pageTitle
:
'个人档案'
,
trading
:
'累积交易额'
,
order
:
'订单数量'
,
cancel
:
'取消率'
,
ProfileDetails
:
'资料详情'
,
TravelAgency
:
'旅行社名称'
,
numbering
:
'统一编号(统编)'
,
LINEID
:
'LINE ID'
,
Phone
:
'联络电话'
,
addreess
:
'办公地址'
,
Name
:
'姓名'
,
Email
:
'电邮'
,
post
:
'负责人'
,
profile
:
'概述'
,
security
:
'帐户安全'
,
accountUpdate
:
'帐户信息修改提示'
,
accountUpdateTips
:
'如果您需要修改以上预留的帐户资料,请联繫您与PIC对接业务人员进行修改'
,
resetPw
:
'修改密码'
,
cpw
:
'当前密码'
,
npw
:
'新密码'
,
rpw
:
'确认新密码'
,
subBtn
:
'确认修改'
,
cpwTips
:
'请输入当前密码'
,
updateSuccess
:
'密码修改成功,请重新登入'
,
photoSuccess
:
'头像设置成功'
},
upload
:
{
success
:
'上传成功'
,
failed
:
'上传失败'
,
down
:
'下载'
,
reload
:
'重新上传'
},
hd
:
{
item
:
{
a
:
'入汤税'
,
b
:
'城市税'
,
c
:
'停车场'
,
d
:
'预约截止天数'
,
e
:
'是否含餐'
,
f
:
'酒店类型'
,
g
:
'设施服务'
,
h
:
'温馨提醒'
}
},
dialog
:
{
titles
:
{
hotel
:
'移除酒店警示'
,
horder
:
'取消订单警示'
},
contents
:
{
hotel
:
{
t1
:
'你确定要移除'
,
t2
:
'的酒店'
},
horder
:
'你确定需要取消此订单吗?'
}
},
close
:
'关闭'
,
unit
:
{
jian
:
'间'
,
ren
:
'人'
,
jp
:
'日圆'
,
jpc
:
'円'
,
night
:
'晚'
,
jf
:
'间房'
,
day
:
'天'
},
expends
:
{
on
:
'展开'
,
off
:
'收起'
},
hotelm
:
{
pageTitle
:
'酒店订单变更'
,
otherRoom
:
'使用其他房型'
,
noneOther
:
'无其他可用房型'
,
save
:
'保存订单'
,
cancel
:
'取消订单'
},
hotelorder
:
{
dialog
:
{
title
:
'您的专属付款账户如下'
,
AccountName
:
'户名'
,
account
:
'账号'
,
prompt
:
'我们将会在您付款后的1-2个工作日内完成确认,确认后自动更新订单入款'
,
copy
:
'複制'
},
pay
:
{
t1
:
'出发前收款酒店,请您于 '
,
t11
:
'前支付订金,并且于 '
,
t12
:
' 日前支付尾款'
,
t2
:
'到店自付酒店,需要您于 '
,
t21
:
' 前上传旅客名单'
},
hands
:
'手配费'
,
payinfo
:
'查看支付方式'
,
sendpay
:
'提缴付款凭证'
,
uploadGuest
:
'上传旅客名单'
,
pageTitle
:
'酒店订单'
,
recovery
:
'订单回收站'
,
copy
:
'複制'
,
copyed
:
'已複制'
,
createTime
:
'下订时间'
,
priceTips
:
'按照入住人数*房型单价=房型总价小计(不含税)'
,
people
:
'人数'
,
unitPrice
:
'单价'
,
xj
:
'小计'
,
orderMoney
:
'订单总金额'
,
payed
:
'已支付'
,
warn
:
'查看预定的注意事项'
,
taxed
:
'含税'
,
handFee
:
'手配费'
,
check
:
{
un
:
'未确认'
,
ok
:
'确认'
},
opera
:
{
normal
:
'订单操作'
,
cancel
:
'取消订单'
,
edit
:
'订单变更'
,
view
:
'查看详情'
},
payType
:
{
t1
:
'到店自付'
,
t2
:
'出发前付款'
},
col
:
{
hn
:
'酒店名称'
,
d
:
'入住日期'
,
r
:
'入住信息'
,
n
:
'订房号'
,
t
:
'城市税'
,
t2
:
'入汤税'
,
m
:
'小计'
,
noRoomNo
:
'订房号'
,
noneTax
:
'税入'
,
pt
:
'付款方式'
},
search
:
{
status
:
'订单状态'
,
orderNum
:
'订单编号'
,
daterange
:
'下单时间'
,
roomType
:
'酒店房型'
,
orderId
:
'订单流水号'
,
orderType
:
'订单类型'
,
tcNum
:
'组团号'
,
contactInfo
:
'联繫信息'
,
contactInfoHolder
:
'请输入联繫人/联繫电话'
},
orderType
:
{
default
:
'所有类型'
,
tour
:
'团队订房'
,
guest
:
'散拼订房'
},
orderStatus
:
{
normal
:
'全部订单'
,
apply
:
'待确认'
,
check
:
'已确认'
,
cancel
:
'已取消'
,
sun
:
'收损订单'
}
},
dayOfWeek
:
{
mon
:
'一'
,
tues
:
'二'
,
wed
:
'三'
,
thur
:
'四'
,
fri
:
'五'
,
sat
:
'六'
,
sun
:
'日'
},
Notifications
:
{
title
:
'通知'
,
subtitle
:
'条新消息'
,
more
:
'更多'
,
time
:
'h'
},
hotel
:
{
newDateOrder
:
'新日期预定'
,
newDateTips
:
'请先选择需要预订的日期'
,
newHotelBtn
:
'选择酒店'
,
addRoomBtn
:
'操作'
,
addRoom
:
'选择'
,
groupPrice
:
'合计'
,
pageTitle
:
'酒店检索'
,
area
:
'检索区域'
,
searchName
:
'酒店名称'
,
hotelRate
:
'酒店星级'
,
minPrice
:
'最低价格'
,
maxPrice
:
'最高价格'
,
waringTips
:
'注意以下计费与报价均是按照人数进行计费'
,
inHouseDate
:
'入住日期'
,
inhouseDays
:
'共计'
,
bigTips
:
'本房型不同的酒店入住人数限制不同,系统默认该房型只能入住一人'
,
yg
:
'预计 '
,
outbind
:
'超出现有的库存预定,我们会即时与酒店协商,请保证收讯通畅'
,
details
:
{
zuoji
:
'座机'
,
chuanzhen
:
'传真'
,
guanwang
:
'官网'
,
xiangqing
:
'酒店详情'
},
car
:
{
shoppingTitle
:
'购物车'
,
addShopping
:
'暂存购物车'
,
orderTitle
:
'订单'
,
people
:
'人'
,
between
:
'间'
,
submit
:
'确认下单'
,
tax
:
'税'
,
soup
:
'入汤'
,
OrderType
:
'订单类型'
,
TCNum
:
'组团号'
,
ContactName
:
'联系人名称'
,
ContactNumber
:
'联系人电话'
,
inputText
:
'请输入'
,
Remark
:
'备注'
,
scattered
:
'散客'
,
group
:
'团'
,
title
:
'本次行程'
,
title1
:
'天,入住'
,
title2
:
'个酒店'
,
subtitle
:
'酒店採购单'
,
sumPrice
:
'订单总金额'
},
shopping
:
{
labelNum
:
'房数'
,
peopleNum
:
'人数'
,
small
:
'数量不能小于'
,
big
:
'大于剩馀数嘚'
,
StandardRooms
:
'标间'
,
maxRooms
:
'大床间'
,
naturalRooms
:
'自然间'
,
ThreeRooms
:
'三人间'
,
driverRoom
:
'司机间'
,
only
:
'仅剩'
,
between
:
'间'
,
TheSelected
:
'已选'
},
pricetips
:
'酒店报价表'
,
buy
:
'预定'
,
table
:
{
price
:
'价格(标准间)'
,
ins
:
'总/用/剩'
,
confirm
:
'确认/预定'
,
limit
:
'超定'
},
rooms
:
{
default
:
'全部房型'
,
normal
:
'标准间'
,
big
:
'大床房'
,
sing
:
'自然单间'
,
three
:
'三人间'
,
driver
:
'司导间'
},
col
:
{
first
:
'酒店名称'
,
second
:
'价格&库存'
,
three
:
'总库存'
,
four
:
'价格'
,
five
:
'标准间价格'
,
low
:
'起'
,
ins
:
'库存'
,
sins
:
'剩馀库存'
,
uins
:
'已预订'
,
more
:
'更多房型报价'
,
noMore
:
'没有其他房型报价'
,
zhi
:
'至'
},
datetype
:
{
red
:
'红日'
,
pink
:
'旺季'
,
avg
:
'平日'
,
dan
:
'淡日'
,
spe
:
'特别日'
,
xing
:
'行前日'
},
rates
:
{
normal
:
'所有等级'
,
low
:
'三星或商务'
,
middle
:
'四星'
,
hight
:
'五星'
}
},
userMenu
:
{
mypro
:
'个人档案'
,
myfinace
:
'请求书'
,
fapiao
:
'索取发票'
,
lang
:
'系统语言'
,
signOut
:
'登出'
},
menu
:
{
hotel
:
{
first
:
'酒店预订'
,
second
:
'酒店检索'
,
three
:
'酒店订单'
},
scattered
:
{
first
:
'散客预定'
,
second
:
'酒店检索'
,
three
:
'酒店订单'
},
car
:
{
first
:
'车辆预定'
,
second
:
'车辆预定'
,
three
:
'用车订单'
},
ticket
:
{
first
:
'门票预订'
,
second
:
'门票检索'
,
three
:
'门票订单'
},
stroke
:
{
first
:
'预订行程'
,
second
:
'行程检索'
,
three
:
'行程预订'
},
finance
:
{
first
:
'帐单'
,
second
:
'月度请求书'
,
three
:
'汇款说明'
},
travel
:
{
first
:
'包机'
,
second
:
'包机服务'
,
three
:
'包机订单'
,
four
:
'包机结算'
,
}
},
travel
:
{
man
:
'成人数量'
,
addTitle
:
'新增/修改订单'
,
oldPeople
:
'老人数量'
,
childNeedBed
:
'儿童佔床'
,
children
:
'儿童人数'
,
ChirdNoNeedBedNum
:
'儿童不佔床'
,
NoNeedBed
:
'不佔床'
,
Baby
:
'婴儿'
,
BabyNum
:
'婴儿人数'
,
SingleRoomNum
:
'单房数量'
,
VisaNum
:
'签证数量'
,
OneSex
:
'单身男女'
,
male
:
'男'
,
woman
:
'女'
,
PredictRoomNum
:
'预计用房'
,
YSeatNum
:
'经济舱'
,
FSeatNum
:
'头等舱'
,
ESeatNum
:
'商务舱'
,
ContactName
:
'联繫人'
,
ContactMobile
:
'联繫人电话'
,
Remarks
:
'备注'
,
PreferPrice
:
'订单价格'
,
cancel
:
'取消'
,
submit
:
'确认'
,
pays
:
'已收金额'
,
startDate
:
'发团日期'
,
guestNum
:
'顾客数量'
,
unit_Price
:
'成交单价'
,
tC_Price
:
'本团单价'
,
tradeWay
:
'支付方式'
,
online
:
'线上'
,
notLine
:
'线下'
,
all
:
'不限'
,
notPay
:
'待收定金'
,
payed
:
'待收尾款'
,
orderStatus
:
'订单状态'
,
createDate
:
'创建日期'
,
payStatus
:
'支付状态'
,
id
:
'团号'
,
planInfo
:
'包机资讯'
,
groupInfo
:
'团队资讯'
,
airInfo
:
'航班资讯'
,
tmp
:
'暂定'
,
airSeatInfo
:
'团位资讯'
,
YSeat
:
'经济舱'
,
unUseNum
:
'剩馀'
,
CSeat
:
'商务舱'
,
FSeat
:
'头等舱'
,
priceInfo
:
'价格资讯'
,
midPrice
:
'中心价'
,
BabyChargePrice
:
'儿童附加费'
,
OldManChargePrice
:
'老人附加费'
,
VisaPrice
:
'签证'
,
SingleRoomPrice
:
'单房差'
,
OtherPrice
:
'杂费'
,
buy
:
'下单'
,
payOrder
:
'包机结算'
,
noData
:
'暂无数据'
,
ContactNamePay
:
'合作伙伴'
,
EntGuestNum
:
'已入名单人数'
,
GuestNum
:
'报名总人数'
,
PreferPricePay
:
'应收总金额'
,
Refund
:
'退款金额'
,
PlatformTax
:
'平台税金'
,
Income
:
'实收'
,
ZaiTuMoney
:
'在途金额'
,
DiscountMoney
:
'折扣金额'
,
RedEnvelopeMoney
:
'大红包抵扣金额'
,
DueInMoney
:
'代收总金额'
,
CommissionRate
:
'利润'
,
},
login
:
{
notaccess
:
'没有同业会员帐户?'
,
registlink
:
'申请注册'
,
title
:
'登入'
,
subTitle
:
'欢迎您的到来,开启急速採购'
,
account
:
'帐户(EMail/统编)'
,
password
:
'密码'
,
forgot
:
'忘记密码?'
,
signin
:
'登入'
,
pageTitle
:
'登入'
,
ruleTipsAccount
:
'请填写正确的帐号'
,
ruleTipsPwd
:
'请填写密码'
,
formTips
:
'请填写登陆信息'
,
success
:
'登陆成功'
},
forget
:
{
pageTitle
:
'忘记密码'
,
title
:
'忘记密码'
,
subtitle
:
'输入您的邮箱,以重置密码'
,
notaccess
:
'已经是会员了?'
,
registlink
:
'登入'
,
account
:
'帐户(EMail)'
,
submit
:
'提交'
,
cancel
:
'取消'
,
goback
:
'返回'
,
mailResult
:
'邮件已发送到您的邮箱,请根据邮件提示修改密码'
,
resultBtn
:
'我已知晓'
},
newpwd
:
{
pageTitle
:
'设置新密码'
,
title
:
'设置新密码'
,
subtitle
:
'为了您的帐户安全,建议您定期修改密码'
,
notaccess
:
'你已经重置密码了吗?'
,
registlink
:
'登入'
,
pass
:
'新密码'
,
passTips
:
'使用8个或8个以上的字母、数字和符号的组合'
,
passvalidate
:
'请按照提示要求设置密码'
,
repeatPassvalidate
:
'两次输入密码不一致'
,
repeatPass
:
'再次输入密码'
,
notEmptyPass
:
'新密码最少为8位'
,
maxLengthPass
:
'密码长度应为8-16位'
,
updateResult
:
'新密码已经设置成功,可以立即登入'
,
resultBtn
:
'立即登入'
},
//#endregion
//eg:
//#region v1.0.1
v101
:
{
downloadHands
:
'下载手佩书'
,
noneHands
:
'手佩书未生成'
,
hotelTips
:
'酒店温馨提醒'
,
iknow
:
'我已知晓'
,
versionUpgrade
:
'版本更新纪录'
,
comingsoon
:
'我们即将推出'
,
comingsoonDesc
:
'我们正在努力推进此功能的开发,预期将在1个月左右的週期内完成上线。感谢您的支持'
,
hotelRemark
:
'备注'
,
cancelRemark
:
'取消备注'
,
selfCancle
:
'客户自己取消了订单'
,
versonDetails
:
{
date
:
'2022/11/29'
,
content
:
''
},
Listofquotation
:
{
pageTitle
:
'报价单'
,
baojiadan
:
'报价单'
,
dindanbaojia
:
'酒店订单报价'
,
zhutuanhao
:
'组团号'
,
lianxiren
:
'联繫人'
,
dindanhao
:
'订单号'
,
riqi
:
'日期'
,
HotelDate
:
'入驻时间'
,
HotelName
:
'酒店名称'
,
HotelInfor
:
'入驻信息'
,
xiaoji
:
'小计'
,
riben
:
'日本汇款账户(海外送金也可)'
,
heji
:
'合计'
,
col
:
{
t1
:
'行名'
,
t2
:
'支店名'
,
t3
:
'口座重别'
,
t4
:
'口座番号'
,
t5
:
'账户名'
,
t6
:
'银行住所'
,
t7
:
'银行邮变'
,
t8
:
'重新番号'
,
t9
:
'汇款日本账户后请及时告知信息,方便日本旅行社查询谢谢体谅'
,
},
btn
:
{
dayin
:
'打印'
,
xiaza
:
'下载'
,
cjfaipiao
:
'创建发票'
,
bjd
:
'报价单'
}
},
scattered
:
{
kefang
:
'客房'
,
chengren
:
'成人'
,
ertong
:
'儿童'
,
pingfen
:
'评分'
,
minpingfen
:
'最低评分'
,
maxpingfen
:
'最高评分'
,
zhusutype
:
'住宿类型'
,
jiudian
:
'酒店'
,
rishilg
:
'日式旅馆'
,
chuzubs
:
'出租别墅'
,
jiudiansw
:
'酒店/商务酒店'
,
jianyilgms
:
'简易旅馆/名宿/山间小屋'
,
HotelArea1
:
'东京都'
,
HotelArea2
:
'大坂府'
,
HotelArea3
:
'京都府'
,
HotelArea4
:
'爱知县'
,
HotelArea5
:
'秋田县'
,
HotelArea6
:
'青森县'
,
HotelArea7
:
'千叶县'
,
HotelArea8
:
'爱媛县'
,
HotelArea9
:
'福井县'
,
HotelArea10
:
'福冈县'
,
HotelArea11
:
'福岛县'
,
HotelArea12
:
'岐阜县'
,
HotelArea13
:
'群马县'
,
HotelArea14
:
'广岛县'
,
HotelArea15
:
'北海道'
,
HotelArea16
:
'兵库县'
,
HotelArea17
:
'茨城县'
,
HotelArea18
:
'石川县'
,
HotelArea19
:
'岩手县'
,
HotelArea20
:
'香川县'
,
HotelArea21
:
'鹿儿岛县'
,
HotelArea22
:
'神奈川县'
,
HotelArea23
:
'高知县'
,
HotelArea24
:
'熊本县'
,
HotelArea25
:
'三重县'
,
HotelArea26
:
'宫城县'
,
HotelArea27
:
'宫崎县'
,
HotelArea28
:
'长野县'
,
HotelArea29
:
'长崎县'
,
HotelArea30
:
'奈良县'
,
HotelArea31
:
'新泻县'
,
HotelArea32
:
'大分县'
,
HotelArea33
:
'冈山县'
,
HotelArea34
:
'冲绳县'
,
HotelArea35
:
'佐贺县'
,
HotelArea36
:
'崎玉县'
,
HotelArea37
:
'滋贺县'
,
HotelArea38
:
'岛根县'
,
HotelArea39
:
'静冈县'
,
HotelArea40
:
'枥木县'
,
HotelArea41
:
'德岛县'
,
HotelArea42
:
'鸟取县'
,
HotelArea43
:
'富山县'
,
HotelArea44
:
'和歌山县'
,
HotelArea45
:
'山形县'
,
HotelArea46
:
'山口县'
,
HotelArea47
:
'山梨县'
,
fangxingtype
:
'房型'
,
HotelRoom1
:
'单人床'
,
HotelRoom2
:
'双人间'
,
HotelRoom3
:
'大床房'
,
HotelRoom4
:
'三人间'
,
HotelRoom5
:
'四人间'
,
HotelRoom6
:
'日式房'
,
HotelRoom7
:
'日式+西式混合'
,
canxingtype
:
'餐饮'
,
HotelMeal1
:
'无餐'
,
HotelMeal2
:
'含早餐'
,
HotelMeal3
:
'含晚餐'
,
HotelMeal4
:
'包含早餐.晚餐'
,
liniantype
:
'理念'
,
HotelConcept1
:
'至外汇兑换处步行5分钟以内'
,
HotelConcept2
:
'车站步行5分钟以内'
,
HotelConcept3
:
'温泉'
,
HotelConcept4
:
'前台可兑换'
,
HotelConcept5
:
'到观光信息中心5分钟'
,
HotelConcept6
:
'露天浴池'
,
HotelConcept7
:
'自然式温泉'
,
HotelConcept8
:
'浊汤温泉'
,
HotelConcept9
:
'室外游泳池'
,
HotelConcept10
:
'去海滩步行5分钟的路程'
,
HotelConcept11
:
'停车场免费'
,
HotelConcept12
:
'室内浴池/大型浴池'
,
HotelConcept13
:
'包租浴池/包租露天浴池'
,
HotelConcept14
:
'11点之后退房'
,
HotelConcept15
:
'美容沙龙护理设备'
,
HotelConcept16
:
'有乒乓球台'
,
HotelConcept17
:
'瞭望式浴池'
,
HotelConcept18
:
'桑拿浴'
,
HotelConcept19
:
'喷流式气泡浴缸'
,
HotelConcept20
:
'按摩'
,
HotelConcept21
:
'出租滑雪用具'
,
HotelConcept22
:
'租赁滑板'
,
HotelConcept23
:
'有车接送'
,
jiudianName
:
'酒店名称'
,
anrenqi
:
'按人气排序'
,
anjiage
:
'按价格排序'
,
titleHeard1
:
'酒店名称'
,
titleHeard2
:
'酒店评分'
,
titleHeard3
:
'价格'
,
titleHeard4
:
'商标'
,
titleHeard5
:
'主题'
,
titleHeard6
:
'酒店地址'
,
titleHeard7
:
'操作'
,
qi
:
'起'
,
ziying
:
'自营'
,
jalan
:
'jalan'
,
zhutifea1
:
'从车站步行5分钟'
,
zhutifea2
:
'有温泉'
,
zhutifea3
:
'离海滩5分钟'
,
zhutifea4
:
'退房11点以后'
,
xiangqing
:
'查看详情'
},
scatteredDetails
:
{
xiangqing
:
'酒店详情'
,
jiudianxinxi
:
'酒店信息'
,
miaoshu
:
'描述'
,
titlexinxi1
:
'接送服务'
,
titlexinxi2
:
'完善设施服务'
,
titlexinxi3
:
'房间类型和数量'
,
titlexinxi4
:
'客房网络连接'
,
titlexinxi5
:
'水疗'
,
titlexinxi6
:
'设施与服务'
,
InterTitle1
:
'客房网络连接'
,
InterTitle2
:
'拨号连线'
,
InterTitle3
:
'可连接LAN'
,
InterTitle4
:
'无线局域网'
,
InterTitle5
:
'PC贷款'
,
InterTitle6
:
'免费接入网络'
,
shiwai
:
'室外'
,
wunei
:
'屋内'
,
zhengqiyu
:
'蒸汽浴'
,
nan
:
'男'
,
nv
:
'女'
,
hunyu
:
'混浴'
,
SpringText1
:
'露天温泉(也有男女(包括时间交替)·可借贷)'
,
SpringText2
:
'露天温泉(有男女也有(包括时间交替)·不能借贷)'
,
SpringText3
:
'露天温泉(男女中只有1个(包括混浴)、可以包租)'
,
SpringText4
:
'露天温泉(男女中只有一个(包括混浴),不能包租)'
,
SpringText5
:
'有包租浴室'
,
SpringText6
:
'阿米尼蒂:脸·手巾'
,
SpringText7
:
'阿米尼蒂:牙刷、牙膏'
,
SpringText8
:
'阿米蒂奇:浴巾'
,
SpringText9
:
'水芹菜:洗发水'
,
SpringText10
:
'阿姆尼蒂:林斯'
,
SpringText11
:
'阿米尼蒂:沐浴露'
,
SpringText12
:
'水黾:肥皂'
,
SpringText13
:
'亚健康:浴衣'
,
SpringText14
:
'艾尼蒂:睡衣'
,
SpringText15
:
'阿姆尼蒂:浴衣'
,
SpringText16
:
'足球运动员:吹风机'
,
SpringText17
:
'艾尼蒂:羽毛被褥'
,
SpringText18
:
'艾尼蒂:刮胡子'
,
SpringText19
:
'水黾:淋浴帽'
,
SpringText20
:
'阿米尼蒂:棉签'
,
SpringText21
:
'水黾:冲澡'
,
SpringText22
:
'石梳:梳子刷'
,
SpringText23
:
'他温泉浴:展望浴'
,
SpringText24
:
'其他:桑拿浴'
,
SpringText25
:
'其他:jazza'
,
SpringStatesTJ0
:
'没有条件'
,
SpringStatesTJ1
:
'有条件'
,
SpringStatesMF0
:
'免费'
,
SpringStatesMF1
:
'收费'
,
SpringStatesY1
:
'有'
,
ServicesText1
:
'浴室和厕所'
,
ServicesText2
:
'公共汽车厕所CD(有全室巴士)'
,
ServicesText3
:
'公共汽车厕所CD(有一部分巴士)'
,
ServicesText4
:
'公共汽车厕所CD(有全室厕所)'
,
ServicesText5
:
'公共汽车厕所CD(有一部分厕所)'
,
ServicesText6
:
'公共汽车厕所CD(所有厕所都没有)'
,
ServicesText7
:
'淋浴-免费(全室)'
,
ServicesText8
:
'淋浴-收费(全室)'
,
ServicesText9
:
'淋浴-免费(部分)'
,
ServicesText10
:
'淋浴-收费(部分)'
,
ServicesText11
:
'冷暖气-免费(全室)'
,
ServicesText12
:
'冷暖气-收费(全室)'
,
ServicesText13
:
'冷暖气-免费(部分)'
,
ServicesText14
:
'冷暖气-收费(部分)'
,
ServicesText15
:
'全室有空调(收费)'
,
ServicesText16
:
'部分客房有空调(免费)'
,
ServicesText17
:
'部分客房有空调(收费)'
,
ServicesText18
:
'没有空调'
,
ServicesText19
:
'全房间有暖气设备(免费)'
,
ServicesText20
:
'全部房间都有暖气(收费)'
,
ServicesText21
:
'部分客房供暖(免费)'
,
ServicesText22
:
'部分客房供暖(收费)'
,
ServicesText23
:
'没有暖气设备'
,
ServicesText24
:
'电视(免费)'
,
ServicesText25
:
'电视(收费)'
,
ServicesText26
:
'录像机(免费)'
,
ServicesText27
:
'录像机(收费)'
,
ServicesText28
:
'卫星广播(免费)'
,
ServicesText29
:
'卫星广播(收费)'
,
ServicesText30
:
'冰箱-有(带饮料的)'
,
ServicesText31
:
'空冰箱'
,
ServicesText32
:
'迷你酒吧'
,
ServicesText33
:
'祖邦煎锅(免费)'
,
ServicesText34
:
'祖邦煎锅(收费)'
,
fuheTJroom
:
'符合条件的房型'
,
ruzhuTime
:
'入住时间'
,
tuifangTime
:
'退房时间'
,
timeTis
:
'退房时间必须大于当前时间'
,
prompt
:
'超过13岁视为成人处理'
,
HotelMeal1
:
'无餐'
,
HotelMeal2
:
'含早餐'
,
HotelMeal3
:
'含晚餐'
,
HotelMeal4
:
'包含早餐.晚餐'
,
RoomType1
:
'标准'
,
RoomType2
:
'普通'
,
RoomType3
:
'经济'
,
RoomType4
:
'精品'
,
RoomType5
:
'豪华'
,
RoomType6
:
'套房'
,
HotelRoom1
:
'单人间'
,
HotelRoom2
:
'双人间'
,
HotelRoom3
:
'大床房'
,
HotelRoom4
:
'三人间'
,
HotelRoom5
:
'四人间'
,
HotelRoom6
:
'日式房'
,
HotelRoom7
:
'日式+西式混合'
,
HotelRoom8
:
'大床房(小型)'
,
HotelRoom9
:
'未知房型'
,
jinyan
:
'禁烟'
,
kexiyan
:
'可吸烟'
,
wuyushi
:
'无浴室'
,
youyushi
:
'有浴室'
,
iscan1
:
'无餐'
,
iscan2
:
'含早晚餐'
,
iscan3
:
'含早餐'
,
iscan4
:
'含晚餐'
,
Time1
:
'入住时间'
,
Time2
:
'最迟入住时间'
,
Time3
:
'最迟退房时间'
,
renju
:
'人均'
,
yuyue
:
'预约'
,
},
scatteredOrder
:
{
prompt1
:
'超过13岁视为成人处理'
,
prompt2
:
'预定成功后房间将为您整晚保留'
,
fangxing
:
'房型'
,
xiyan
:
'吸烟'
,
xiyan0
:
'禁烟'
,
xiyan1
:
'可吸烟'
,
cesuo
:
'厕所'
,
you
:
'有'
,
wu
:
'无'
,
lutiankefang
:
'露天客房'
,
orderamount
:
'订单总额'
,
renmingbi
:
'人民币'
,
youhui
:
'优惠'
,
shifu
:
'实付'
,
yudinxinx
:
'预定信息'
,
fangxingxinxi
:
'房型信息'
,
ruzhurenshu
:
'入住人数'
,
chengren
:
'成人'
,
ertong
:
'儿童'
,
noertong
:
'不能报儿童'
,
ren
:
'人'
,
ruzhuriqi
:
'入住日期'
,
ruzhushijian
:
'入住时间'
,
week1
:
'周一'
,
week2
:
'周二'
,
week3
:
'周三'
,
week4
:
'周四'
,
week5
:
'周五'
,
week6
:
'周六'
,
week7
:
'周日'
,
zhiqian
:
'之前'
,
zhihou
:
'之后'
,
fangjianshuliang
:
'房间数量'
,
jinsheng
:
'仅剩'
,
jian
:
'间'
,
fangfeiqingkuang
:
'房费情况'
,
wan
:
'晚'
,
ruzhuxinxi
:
'入住信息'
,
ruzhuxinxi1
:
'所填姓名需和入住时所持证件一致'
,
ruzhushijian1
:
'入住时间'
,
yudinren
:
'预定人'
,
xin
:
'姓'
,
ming
:
'名'
,
yingwen
:
'英文'
,
qingshuru
:
'请输入'
,
zhengque
:
'正确的'
,
dangqiandizhi
:
'当前地址'
,
Email
:
'Email'
,
dianhua
:
'电话'
,
kehuxuqiu
:
'客户需求'
,
kehubeizhu
:
'客户备注'
,
fangjian
:
'房间'
,
chengrennan
:
'成人男'
,
chengrennv
:
'成人女'
,
ertongshu
:
'儿童数'
,
quxiao1
:
'没有通知取消'
,
quxiao2
:
'入住当日取消'
,
shouxufei
:
'手续费'
,
youhuixingxi
:
'优惠信息'
,
duihuan
:
'兑换'
,
youhuiquanduihuan
:
'优惠券兑换'
,
youhuiquanshiyong
:
'优惠券使用'
,
nokeyongyouhuiquan
:
'暂无可用优惠券'
,
xiadan
:
'下单'
,
Errorruzhushu
:
'入住人数与总入住数不匹配'
,
duihuanSuccess
:
'兑换成功'
,
xiadanSuccess
:
'下单成功'
,
jinxing1
:
'您还未进行'
,
jinxing2
:
'实名认证'
,
jinxing3
:
',认证后可使用优惠券哦~如果已提认证申请,申请审核通过后即可使用优惠券!'
,
kediejia
:
'可叠加'
,
nodiejia
:
'不可叠加'
,
zhe
:
'折'
,
man
:
'满'
,
shiyong
:
'使用'
,
youxiaoqi
:
'有效期'
,
notiaojian
:
'该优惠券不满足使用条件!'
,
dindanhao
:
'订单号'
,
},
scatteredOrderList
:
{
state1
:
'待付款'
,
state2
:
'交易成功'
,
state3
:
'已取消'
,
first
:
'酒店名称'
,
table1
:
'酒店名称'
,
table2
:
'订单编号'
,
table3
:
'房间数'
,
table4
:
'总金额'
,
table5
:
'实付'
,
table6
:
'订单状态'
,
table7
:
'下单日期'
,
table8
:
'操作'
,
quxiaodindan
:
'取消订单'
,
youhui
:
'优惠'
,
xiangqing
:
'详情'
,
shankedinfang
:
'散客订房'
}
},
//#endregion
//#region v1.0.2
v102
:
{
ticket
:
{
nobj
:
'暂无报价,不能下单'
,
d
:
'日期'
,
jq
:
'景区名称'
,
hn
:
'票券名称'
,
sl
:
'数量'
,
starttime
:
'门票时间'
,
pageTitle
:
"票券检索"
,
name
:
'请输入景点名称'
,
toggleListType1
:
"列表模式"
,
toggleListType2
:
"卡片模式"
,
Japan
:
'日本'
,
stoppage
:
'停止如场'
,
recommendTime
:
'推荐游玩'
,
hour
:
'小时'
,
minutes
:
'分钟'
,
load
:
'图片加载失败'
,
showtt
:
{
t1
:
'共'
,
t2
:
'种票型'
,
load
:
'图加载失败'
,
showtt
:
{
t1
:
'共'
,
t2
:
'种票型'
},
},
buy
:
'立即订票'
,
shortBuy
:
'预订'
,
addr
:
'地址'
,
map
:
'地图'
,
jing
:
'景点'
,
detail
:
'景区详情'
,
d1
:
'开放时间'
,
d2
:
'景区特色'
,
d3
:
'交通说明'
,
d4
:
'温馨提醒'
,
d5
:
'预订须知'
,
preview
:
{
pageTitle
:
'订单预览'
},
ordertip
:
'请在游玩前一天的23:00前完成预订'
,
pt
:
'游玩日期'
,
tt
:
'选择票型'
,
ti
:
'票券信息'
,
bc
:
'购买张数'
,
gi
:
'取票方式'
,
zq
:
'自行取票'
,
yj
:
'邮寄票券'
,
dzp
:
'电子券'
,
zqs
:
'自行取票说明'
,
zqd
:
'自行前往指定位置取票,当您完成付款后我们将通过邮件通知您取票的门票讯息'
,
zqd1
:
'自取地址'
,
sj
:
'客人讯息'
,
youji
:
'邮寄讯息'
,
unit
:
'张'
,
sex
:
{
man
:
'男'
,
women
:
'女'
},
sjc
:
{
c1
:
'中文姓名'
,
c2
:
'英文姓名'
,
c3
:
'性别'
,
c4
:
'联络电话'
,
c5
:
'收件地址'
,
c6
:
'邮寄费'
},
sjcp
:
{
c1
:
'请输入中文姓名'
,
c2
:
'请输入英文姓名'
,
c4
:
'请输入联络电话'
,
c5
:
'请输入收件地址'
,
c6
:
'请输入邮寄费'
},
st
:
'结算帐单'
,
rtt
:
'退票限制'
,
rtc
:
'未消费随时可退,多张票订单不支持部分退款'
,
ms
:
'订票明细'
,
nt
:
'没有选择票券'
,
ds
:
'订单总额'
,
sb
:
'提交订单'
,
or
:
'订单备注'
,
zqa
:
'自取地址'
,
nzqa
:
'等待客服确认后,才能看到自取地址,我们将会第一时间通过邮件告知您'
,
nzqa1
:
'等待客服确认后,才能看到电子券,我们将会第一时间通过邮件告知您'
},
to
:
{
pageTitle
:
'票券订单列表'
,
ticketName
:
'景点名称'
,
Name
:
'客人名称'
,
qj
:
'取券方式'
,
qjc
:
'取件人姓名(中/英)'
,
qjp
:
'取件人电话'
,
ps
:
{
p1
:
'等待配送'
,
p2
:
'已配送'
},
m
:
{
t
:
'修改取件方式'
,
c
:
'取消修改'
,
s
:
'保存修改'
},
},
vehicle
:
{
pageTitle
:
'用车订单'
,
pageTitle2
:
'新增/编辑用车订单'
,
title
:
'客户订车确认单(小车)'
,
title1
:
"订车单位"
,
title2
:
"订车人"
,
title3
:
"接机信息"
,
title4
:
"去程航班"
,
title5
:
"回程航班"
,
title6
:
"用车人数"
,
title7
:
"开始日期"
,
title8
:
"行程天数"
,
title9
:
"用车类型"
,
title91
:
"用车信息"
,
title10
:
"导游信息"
,
title11
:
"团队信息"
,
title12
:
"创建时间"
,
title13
:
"车型选择"
,
title14
:
"接送机时间"
,
close
:
"取消"
,
travelvehicle
:
'行程用车'
,
strokestatus
:{
d1
:
'待确认'
,
d2
:
'已确认'
,
d3
:
'已取消'
,
},
tatle
:
{
th1
:
'日期'
,
th2
:
'第几天'
,
th3
:
'用车类型'
,
th4
:
'行程信息'
,
th5
:
'操作'
,
th6
:
'删除'
,
},
add
:
'添加'
,
add2
:
'修改'
,
add3
:
'取消用车'
,
add4
:
'原因'
,
add5
:
'确定'
,
list
:
{
s1
:
'用车公司'
,
s2
:
'用车人'
,
s3
:
'团队名称'
,
s4
:
'请选择预定日期'
,
s5
:
'编辑'
,
s6
:
'状态'
,
s7
:
'是否确认'
,
s8
:
'申请报价'
,
s9
:
'报价详情'
,
s10
:
'确认报价'
,
},
list2
:
{
s1
:
'下单人'
,
s2
:
'下单时间'
,
s3
:
'订车公司'
,
s4
:
'订车人'
,
s5
:
'团体名称'
,
s6
:
'人数'
,
s7
:
'日期'
,
s8
:
'天数'
,
s9
:
'去程航班'
,
s10
:
'回程航班'
,
s11
:
'用车类型'
,
s12
:
'导游信息'
,
s13
:
'确认状态'
,
s14
:
'接机信息'
,
s15
:
'确认状态'
,
s16
:
'确认'
,
s17
:
'已确认'
,
s18
:
'确认人'
,
s19
:
'确认时间'
,
s20
:
'行程信息'
,
s21
:
'价格'
,
s22
:
'停车费'
,
s23
:
'司机住宿费'
,
s24
:
'小计'
,
s25
:
'合计'
,
s26
:
'备注'
,
s27
:
'注意事项'
,
s28
:
'状态'
,
s29
:
'手配费'
,
s30
:
'司机'
,
s31
:
'车牌号'
,
},
tabtitle0
:
'团队订单'
,
tabtitle1
:
'接机订单'
,
tabtitle2
:
'送机订单'
,
tabtitle3
:
'包车订单'
,
tuanduixinxi
:
'团队信息'
,
dindanxinxi
:
'订单信息'
,
di
:
'第'
,
tian
:
'天'
,
ms
:
'订单明细'
,
ds
:
'订单总天数'
,
nt
:
'没有订单信息'
,
zuo
:
'座'
,
nomoney
:
'暂未报价'
,
},
CharteredBus
:{
jiesongdianfw
:
'接送点范围'
,
d
:
'点'
,
fw
:
'范围'
,
pageTitle
:
'车辆检索'
,
pageTitle2
:
'包车订单'
,
baochetype
:
'包车类型'
,
baochetype0
:
'不限'
,
baochetype1
:
'接机'
,
baochetype2
:
'送机'
,
baochetype3
:
'包车'
,
jiansuojichang
:
'检索机场'
,
qishirenshu
:
'起始人数'
,
jiezhirenshu
:
'截止人数'
,
jiageshenxu
:
'价格升序'
,
jiagejianxu
:
'价格降序'
,
baoche
:
'包车'
,
xiaoshi
:
'小时'
,
mianfeiquxiao
:
'天前可免费取消'
,
zuizaokeyudin
:
' 最早可预定'
,
detail
:
'产品详情'
,
d1
:
'产品介绍'
,
d2
:
'如何使用'
,
d3
:
'取消政策'
,
d4
:
'预订须知'
,
d5
:
'费用包含'
,
d6
:
'费用不包含'
,
d7
:
'行程时长'
,
baochexinxi
:
'信息'
,
ordertip
:
'请在出发前一天的23:00前完成预订'
,
pt
:
'日期'
,
tt
:
'选择车型'
,
jc
:
'选择机场'
,
bc
:
'购买辆数'
,
unit
:
'辆'
,
scfw
:
'上车范围'
,
gi
:
'订单信息'
,
lianluo
:
'联络'
,
chengke
:
'乘客'
,
hangban
:
'航班'
,
dida
:
'抵达'
,
chufa
:
'出发'
,
xunxi
:
'讯息'
,
nt
:
'没有选择车型'
,
rtt
:
'取消限制'
,
td
:
'团订'
,
bianji
:
'确定编辑'
,
sjc
:{
c1
:
'姓名'
,
c1x
:
'姓'
,
c1m
:
'名'
,
c2
:
'电话'
,
c3
:
'性别'
,
c4
:
'联络方式'
,
c5
:
'上车地点'
,
c6
:
'下车地点'
,
c7
:
'选择预定时间'
,
c8
:
'预定时间'
,
c9
:
'航厦'
,
c10
:
'航空公司名称'
,
c11
:
'航班号'
,
c12
:
'航班抵达时间'
,
c13
:
'航班出发时间'
,
c14
:
'成人数'
,
c15
:
'儿童数'
,
c16
:
'婴儿数'
,
c17
:
'手提行李数'
,
c18
:
'托运行李数'
,
c19
:
'产品名称'
,
c20
:
'机场'
,
c21
:
'成人'
,
c22
:
'儿童'
,
c23
:
'婴儿'
,
c24
:
'上下车地点'
,
c25
:
'上车'
,
c26
:
'下车'
,
c27
:
'手提行李'
,
c28
:
'托运行李'
,
c29
:
'人员'
,
c30
:
'人'
,
c31
:
'行李'
,
},
sjcp
:{
c1
:
'请输入姓'
,
c1m
:
'请输入名'
,
c2
:
'电话'
,
c3
:
'性别'
,
c4
:
'联络方式(Line号,WeChat号)'
,
c5
:
'请输入上车地点'
,
c6
:
'请输入下车地点'
,
c7
:
'请输入航厦'
,
c8
:
'请输入航空公司名称'
,
c9
:
'请输入航班号'
,
c10
:
'航班时间'
,
c11
:
'请输入成人数'
,
c12
:
'输入儿童数'
,
c13
:
'输入婴儿数'
,
c14
:
'输入手提行李数'
,
c15
:
'输入托运行李数'
,
}
},
},
//#endregion
//#region ending v1.0.3
v103
:
{
scheduledTrip
:{
pageTitle
:
'行程检索'
,
screeningtitle
:
'筛选关键词'
,
searchinput
:
'搜寻关键词'
,
allcommoditytype
:
'所有商品类别'
,
screeningdate
:
'筛选出发日期'
,
screeningprice
:
'价钱筛选'
,
journeytime
:
'旅程时间'
,
experiencetrip
:
'项体验行程'
,
sort
:
'排序'
,
quickconfirmation
:
'急速确认'
,
residualvacancy
:
'剩馀空位'
,
daysoftravel
:
'行程天数'
,
day
:
'天'
,
above
:
'天以上'
,
recommend
:
'强力推荐'
,
ascendingorder
:
'团期'
,
descendingorder
:
'价格'
,
salesvolume
:
'销量'
,
commentcount
:
'评论数'
,
sightseeingitinerary
:
'观光行程'
,
daytrip
:
'半/一日游'
,
multiday
:
'多日游'
,
interval
:
'价格区间的最低价格不能低于最大价格'
,
since
:
'元起'
,
startdate
:
'出发日期'
,
closestartdate
:
'选择出发日期'
,
companylocation
:
'公司所在地'
,
line
:
'线路'
,
commlineteam
:
'商品系列'
,
lineteam
:
'系列'
,
closelineteam
:
'选择商品系列'
,
departurecity
:
'出发城市'
,
closedeparturecity
:
'选择出发城市'
,
orderStatus
:
{
normal
:
'全部订单'
,
apply1
:
'待付定金'
,
apply2
:
'待付尾款'
,
apply3
:
'待发团'
,
check
:
'交易完成'
,
cancel
:
'已取消'
,
},
orderStatusDay
:
{
normal
:
'全部'
,
day1
:
'10天内'
,
day2
:
'30天内'
,
day3
:
'60天内'
,
},
setout
:
'集合出发城市'
,
address
:
'集合详细地址'
,
time
:
'集合时间'
,
arrive
:
'返回抵达城市'
,
surplus
:
'剩余席位'
,
nosupport
:
'暂不支持候补'
,
passenger
:
'旅客资料'
,
month
:
'月'
},
scheduledTripDetails
:{
pageTitle
:
'行程详情'
,
since
:
'起'
,
selectionscheme
:
'选择方案'
,
headerlabel
:{
d1
:
'直营产品'
,
d2
:
'行程时间'
,
d21
:
'天'
,
d3
:
'日本语/中文 导览'
,
d4
:
'15天前可免费取消'
,
},
nooffer
:
'暂无报价'
,
selectdate
:
'选择日期、选项'
,
travelplan
:
'行程标准出行方案'
,
deselect
:
'取消选择'
,
choose
:
'选择'
,
earliest
:
'最早可预订日期'
,
thisscheme
:
'关于此方案'
,
confirmationtime
:
'6个工作日内(不含例休假)确认'
,
righttitle
:{
d1
:
'行程特色'
,
d2
:
'行程介绍'
,
d3
:
'费用说明'
,
d31
:
'费用包含'
,
d32
:
'费用不含'
,
d4
:
'购买须知'
,
d5
:
'温馨提示'
,
d6
:
'取消政策'
,
d7
:
'所选日期 15 天(含)之前取消,收取手续费 0%'
,
d8
:
'所选日期 8 ~ 14 天之间取消,收取手续费 30%'
,
d9
:
'所选日期 4 ~ 7 天之间取消,收取手续费 50%'
,
d10
:
'所选日期 1 ~ 3 天之间取消,收取手续费 80%'
,
d11
:
'所选日期 0 ~ 0 天之间取消,收取手续费 100%'
,
d12
:
'注意由于站内商品来自全球各地,订单取消时间将依该供应商所在时区判定。供应商需 2-5 个工作天进行取消流程,依照您购买的商品取消政策收取手续费,并于取消流程完成后14 个工作天内退款。'
,
},
warnbuytext
:{
d1
:
'未满 2 岁幼儿不占位可免费参加(不含座位,餐点,门票,床位),请先于下订时在“备注栏”告知。'
,
d2
:
'如需要单人房,请购买单房'
,
d3
:
'不占床2-11(包含)岁幼童可购买儿童价,如需占床请购买成人价'
,
d4
:
'12岁以上皆视同成人售价'
,
},
daily
:
'每日行程'
,
graphicmode
:
'图文模式'
,
calendarmode
:
'日曆模式'
,
calendarhtml
:{
d1
:
'第'
,
d11
:
'天'
,
d2
:
'早餐'
,
d3
:
'午餐'
,
d4
:
'晚餐'
,
d5
:
'保证入住'
,
d6
:
'或同级别酒店'
,
},
calendartitle
:{
d1
:
'行程'
,
d2
:
'用餐'
,
d3
:
'景点/场馆&活动'
,
d4
:
'酒店'
,
},
day
:{
d1
:
'不含餐'
,
d2
:
'自理'
,
d3
:
'请选择'
,
d4
:
'自由活动'
,
d5
:
'含早餐'
,
d6
:
'含晚餐'
,
d7
:
'保证入住'
,
d8
:
'或同级别酒店'
},
traffice
:{
d1
:
'从'
,
d2
:
';再'
,
d3
:
'搭乘航班'
,
d4
:
'乘坐豪华巴士'
,
d5
:
'乘坐豪华邮轮'
,
d6
:
'乘坐高铁'
,
d7
:
'到达'
,
},
list
:{
d1
:
'景点/场馆'
,
d2
:
'游玩'
,
d3
:
'推荐游玩'
,
d4
:
'小时'
,
d5
:
'分钟'
,
d6
:
'放鬆休息,细细品味身边的风景'
,
d7
:
'住宿'
,
d8
:
'入住'
,
d9
:
'我们会儘量保证入住行程所示酒店,不排除突发的意外情况造成无法入住,我们将会为您安排同级别的酒店,请您放心选购'
,
d10
:
'温馨提示'
,
d11
:
'感谢您的耐心阅读,'
,
},
style
:{
nodata
:
'图片加载失败'
,
d1
:
'约'
,
d2
:
'小时'
,
d3
:
'分钟'
,
d4
:
'温馨提示'
,
d5
:
'本日无酒店安排'
,
d6
:
'或同级'
,
d7
:
'温馨的家'
,
d8
:
'机场附近酒店'
,
d9
:
'【保证入住】'
,
d10
:
'或同级'
,
},
dateoption
:
'选择日期、选项'
,
pleasedateoption
:
'请选择出发日期'
,
month
:
{
month1
:
'一月'
,
month2
:
'二月'
,
month3
:
'三月'
,
month4
:
'四月'
,
month5
:
'五月'
,
month6
:
'六月'
,
month7
:
'七月'
,
month8
:
'八月'
,
month9
:
'九月'
,
month10
:
'十月'
,
month11
:
'十一月'
,
month12
:
'十二月'
,
},
reselect
:
'全部重选'
,
selectionquantity
:
'选择数量'
,
age
:
'岁'
,
each
:
'每人'
,
noroom
:
'不占床'
,
room
:
'占床'
,
cr
:
'成人'
,
et
:
'儿童'
,
ye
:
'婴儿'
,
yixia
:
'以下'
,
prompt
:
'本团只支持成人出游'
,
service
:
'单房服务'
,
singleroom
:
'独立单间住宿'
,
singleroom1
:
'单房间'
,
insurance
:
'保险服务费'
,
insurance1
:
'保险费'
,
total
:
'总金额'
,
book
:
'立即预定'
,
selectdatetop
:
'请选择上面的出行日期'
,
selectdateleft
:
'请选择左侧的出行日期'
,
people
:
'人'
,
visafee
:
'签证费'
,
miscellaneous
:
'杂费'
,
surcharge
:
'儿童附加费'
,
pricedifference
:
'单房差价'
,
itineraryDetails
:{
gaiyao
:
'产品概要'
,
jiaotong
:
'往返交通'
,
zhusu
:
'酒店住宿'
,
gouwu
:
'购物'
,
gowushu
:
'个购物点'
,
nogouwu
:
'无购物行程'
,
tuanduirenshu
:
'团队人数'
,
jindian
:
'景点'
,
jindianshu
:
'个景点或场馆'
,
zifei
:
'自费项目'
,
zifeishu
:
'个自费项目'
,
nozifei
:
'无自费项目'
,
huodong
:
'自由活动'
,
huodongshu
:
'次自由活动'
,
canshi
:
'餐食'
},
starrating
:{
d1
:
'一星酒店'
,
d2
:
'二星酒店'
,
d3
:
'三星酒店'
,
d4
:
'四星酒店'
,
d5
:
'五星酒店'
,
d6
:
'六星酒店'
,
d7
:
'七星酒店'
,
d8
:
'民宿'
,
d9
:
'温泉酒店'
,
},
smaple
:{
d1
:
'人团队散拼'
,
d2
:
'一单一团'
,
d3
:
'自理'
,
d4
:
'请选择'
,
d5
:
'次'
,
d6
:
'无餐食供应'
,
d7
:
'飞机往返'
,
d8
:
'巴士往返'
,
d9
:
'邮轮往返'
,
d10
:
'高铁往返'
,
d11
:
'晚'
,
}
},
scheduledTripOrder
:{
setorderday
:
'时间范围'
,
number
:
'团号'
,
passenger
:
'旅客'
,
total
:
'总金额'
,
hui
:
'优惠金额'
,
paid
:
'已付总额'
}
},
Airticket
:
{
Air_go
:
'去程'
,
Air_segment
:
'航段'
,
Air_returnTrip
:
'回程'
,
Air_transit
:
'中转'
,
},
system
:
{
query_flightNum
:
'航班号'
,
query_arrivalTime
:
'到达时间'
,
query_stopCity
:
'经停都市'
,
ph_flightTime
:
'起飞时间'
,
},
//#endregion
//#region ending v1.0.4
v104
:
{
passbook
:{
pageTitle
:
'幸福存折'
,
available
:
'可用余额'
,
rules
:
'使用规则'
,
details
:
'使用明细'
,
return
:
'返回'
,
viewdetails
:
'查看明细'
,
titles
:{
text1
:
'人头返佣'
,
text2
:
'线路数据占比'
,
text3
:
'线路占比'
,
text4
:
'订单来源'
,
text5
:
'大红包'
,
text6
:
'近半年收益'
,
text7
:
'时间选择'
,
text8
:
'选择月份'
,
text9
:
'本年累计交易总额'
,
text10
:
'累计收益'
,
text11
:
'当前交易额'
,
text12
:
'已激活,预计收益'
,
text13
:
'还差'
,
text14
:
'预计收益'
,
text15
:
'月交易额已达'
,
text16
:
'返'
,
},
col
:{
title1
:
'订单'
,
title01
:
'信息'
,
title2
:
'系列'
,
title3
:
'人数'
,
title4
:
'返佣'
,
title5
:
'时间'
,
title6
:
'描述'
,
title7
:
'支出'
,
title8
:
'收入'
,
}
}
},
//#endregion
}
src/layouts/MainLayout.vue
View file @
597da35f
<
template
>
<q-layout
view=
"lHh lpr lFf"
style=
"background: #f5f8fa"
>
<q-header
reveal
class=
"bg-white text-white q-px-md q-py-sm"
>
<q-toolbar>
...
...
@@ -37,7 +37,8 @@
<q-drawer
show-if-above
v-model=
"leftDrawerOpen"
style=
"background: #1e1e2d; width: 265px"
side=
"left"
class=
"column"
>
<div
style=
"box-sizing: border-box; height: 66px; border-bottom: 1px dashed #444"
class=
"row items-center q-px-md desktop-only"
>
<img
src=
"../assets/images/pic-log.png"
alt=
""
style=
"height: 30px"
/>
<img
v-if=
"isDomainName_PIC"
src=
"../assets/images/pic-log.png"
alt=
""
style=
"height: 30px"
/>
<img
v-else
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1679454107000_656.png"
alt=
""
style=
"height: 30px"
/>
<!--
<div
class=
"text-white text-weight-bold text-subtitle1 q-ml-md"
>
{{
$t
(
'siteName'
)
}}
</div>
-->
</div>
<q-scroll-area
:thumb-style=
"scrollStyle.thumbStyle"
:bar-style=
"scrollStyle.barStyle"
class=
"col nav-list q-pl-lg"
>
...
...
@@ -81,8 +82,8 @@ export default {
components
:
{
svgIcon
,
Navs
,
userInfo
,
Notifications
},
setup
()
{
const
leftDrawerOpen
=
ref
(
false
)
const
data
=
reactive
({
userInfo
:
{}
as
any
,
leftDrawerOpen
:
false
,
...
...
@@ -90,8 +91,12 @@ export default {
timer
:
0
,
isDadge
:
true
,
version
:
''
,
isDomainName_PIC
:
true
})
// 根据域名渲染logo
data
.
isDomainName_PIC
=
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)
const
childPageTitle
=
ref
(
''
)
provide
(
DirtionmaryHelper
.
PAGE_TITLE_KEY
,
childPageTitle
)
const
activeMenu
=
ref
(
0
)
...
...
@@ -101,9 +106,9 @@ export default {
// //console.log(getStoreGetter
<
UserGetter
>
(
'user'
,
'getUser'
),
'....'
)
// return getStoreGetter
<
UserGetter
>
(
'user'
,
'getUser'
)
// })
data
.
scrollStyle
=
useScrollModule
().
scrollStyle
const
scrollAreaRef
=
ref
()
const
scrollArea
=
reactive
({
pagesTop
:
0
...
...
@@ -114,7 +119,7 @@ export default {
scrollAreaRef
.
value
.
setScrollPosition
(
'vertical'
,
n
,
100
)
}
)
const
methods
=
{
toggleLeftDrawer
()
{
data
.
leftDrawerOpen
=
!
data
.
leftDrawerOpen
...
...
src/pages/auth/login.vue
View file @
597da35f
...
...
@@ -4,7 +4,8 @@
<div
style=
"width:450px;"
class=
"column justify-between content-between"
>
<div
:class=
"
{'row':$q.platform.is.desktop,'column':$q.platform.is.mobile}">
<div
class=
"col"
:class=
"
{'text-center q-mb-md':$q.platform.is.mobile}">
<img
src=
"../../assets/images/jvs-log.png"
style=
"width:80%;"
/>
<img
v-if=
"isDomainName_PIC"
src=
"../../assets/images/jvs-log.png"
style=
"width:80%;"
/>
<img
v-else
src=
"http://imgfile.oytour.com/Upload/WebSite/202303170746500900000000054.png"
style=
"width:80%;"
/>
</div>
</div>
<div
class=
"q-py-xxl full-width"
>
...
...
@@ -65,16 +66,18 @@
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
,
reactive
,
ref
}
from
'vue'
import
{
defineComponent
,
reactive
,
ref
,
inject
}
from
'vue'
import
useLgoinModule
from
'../../module/user/loginModule'
import
useMetaModule
from
'../../module/meta/metaModule'
import
{
useI18n
}
from
'vue-i18n'
import
{
getLangs
}
from
"../../utils/tools"
;
import
{
SitLang
}
from
'../../@types'
;
import
{
useQuasar
}
from
'quasar'
;
import
{
DirtionmaryHelper
}
from
'../../config/dictionary'
export
default
defineComponent
({
setup
()
{
//TODO: 缺陷,验证与提交应该使用Form表单来完成,不应该进行单个验证
let
{
userModel
,
usernameRef
,
passwordRef
,
userValidateRule
,
loginSubmit
,
stateManager
}
=
useLgoinModule
()
let
{
setTitle
}
=
useMetaModule
()
...
...
@@ -83,8 +86,13 @@ export default defineComponent({
setTitle
(
t
(
"login.pageTitle"
))
const
data
=
reactive
({
currentLang
:
{}
as
SitLang
,
langs
:[]
as
SitLang
[]
langs
:[]
as
SitLang
[],
isDomainName_PIC
:
true
})
// 根据域名渲染logo
data
.
isDomainName_PIC
=
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)
data
.
langs
=
getLangs
()
if
(
data
.
langs
&&
data
.
langs
.
length
>
0
){
data
.
currentLang
=
data
.
langs
.
find
(
x
=>
x
.
langLocale
==
locale
.
value
)
??
{};
...
...
src/utils/tools.ts
View file @
597da35f
import
{
SitLang
,
StandardStatus
,
RoomType
,
OrderType
,
DinnerType
,
HotelType
,
SendType
}
from
'./../@types/index'
;
import
{
i18n
}
from
'../boot/i18n'
import
{
getDomainName
}
from
'../utils/validate'
const
{
t
}
=
i18n
.
global
/**
* @description 按照需要写入 必要可以注入全局
...
...
@@ -356,7 +357,7 @@ export function moneyFormat (num:any, decimal = 2, split = ','):any {
var
res
=
''
var
dotIndex
=
String
(
num
).
indexOf
(
'.'
)
if
(
dotIndex
===
-
1
)
{
// 整数
res
=
thousandFormat
(
String
(
num
))
+
'.'
+
'0'
.
repeat
(
decimal
)
res
=
thousandFormat
(
String
(
num
))
+
'.'
+
'0'
.
repeat
(
decimal
)
}
else
{
const
numStr
=
String
((
Math
.
round
(
num
*
Math
.
pow
(
10
,
decimal
))
/
Math
.
pow
(
10
,
decimal
)).
toFixed
(
decimal
))
// 四舍五入,然后固定保留2位小数
const
decimals
=
numStr
.
slice
(
dotIndex
,
dotIndex
+
decimal
+
1
)
// 截取小数位
...
...
@@ -469,7 +470,13 @@ export function getLangs() {
quasarLang
:
'zh-TW'
}
let
langs
:
SitLang
[]
=
[]
// zhSw,enUs
langs
.
push
(
zhTw
,
koHG
,
jaRB
)
// 根据域名渲染简体
if
(
!
getDomainName
()){
langs
.
push
(
zhSw
)
}
else
{
langs
.
push
(
zhTw
,
koHG
,
jaRB
)
}
return
langs
}
src/utils/validate.ts
View file @
597da35f
...
...
@@ -33,19 +33,19 @@ export function validatAlphabetsName(str: string) {
return
reg
.
test
(
str
)
}
export
function
isEmail
(
account
:
string
):
boolean
{
let
serchfind
:
boolean
;
let
regexp
=
new
RegExp
(
/^
(([^
<>()
\[\]\\
.,;:
\[
email protected
]
"]+
(\.[^
<>()
\[\]\\
.,;:
\[
email protected
]
"]+
)
*
)
|
(
".+"
))
@
((\[[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}
]
)
|
(([
a-zA-Z
\-
0-9
]
+
\.)
+
[
a-zA-Z
]{2,}))
$/
);
serchfind
=
regexp
.
test
(
account
);
return
serchfind
export
function
isEmail
(
account
:
string
):
boolean
{
let
serchfind
:
boolean
;
let
regexp
=
new
RegExp
(
/^
(([^
<>()
\[\]\\
.,;:
\[
email protected
]
"]+
(\.[^
<>()
\[\]\\
.,;:
\[
email protected
]
"]+
)
*
)
|
(
".+"
))
@
((\[[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}\.[
0-9
]{1,3}
]
)
|
(([
a-zA-Z
\-
0-9
]
+
\.)
+
[
a-zA-Z
]{2,}))
$/
);
serchfind
=
regexp
.
test
(
account
);
return
serchfind
}
export
function
isPhone
(
account
:
string
):
boolean
{
let
serchfind
:
boolean
;
export
function
isPhone
(
account
:
string
):
boolean
{
let
serchfind
:
boolean
;
let
regexp
=
new
RegExp
(
/^
((
13|14|15|16|17|18|19
)[
0-9
]{1}\d{8})
$/
);
serchfind
=
regexp
.
test
(
account
);
return
serchfind
}
serchfind
=
regexp
.
test
(
account
);
return
serchfind
}
/** 比对数组是否相同 */
export
function
compareArray
(
arrA
:
any
[],
arrB
:
any
[])
{
...
...
@@ -62,3 +62,15 @@ export function compareArray(arrA: any[], arrB: any[]) {
}
return
isSame
}
/** 获取当前域名 localhost、pic.oytour.com、sell.oytour.com*/
export
function
getDomainName
()
{
let
domainNameUrl
=
window
.
location
.
hostname
;
if
(
domainNameUrl
==
'localhost'
){
return
true
}
else
if
(
domainNameUrl
==
'pic.oytour.com'
){
return
true
}
else
if
(
domainNameUrl
==
'sell.oytour.com'
){
return
false
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment