Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
罗超
SuperMan
Commits
5013d319
Commit
5013d319
authored
Nov 22, 2023
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
老人/孕妇免责承诺函
parent
114d71a1
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1223 additions
and
0 deletions
+1223
-0
App.vue
src/App.vue
+2
-0
groupTourOrder.vue
src/components/SalesModule/groupTourOrder.vue
+28
-0
groupTourOrderByTuan.vue
src/components/SalesModule/groupTourOrderByTuan.vue
+28
-0
SignName.vue
src/components/SignName.vue
+23
-0
clientDisclaimerProtocol.vue
src/components/clientDisclaimerProtocol.vue
+695
-0
disclaimerProtocol.vue
src/components/disclaimerProtocol.vue
+434
-0
config.js
src/router/config.js
+13
-0
No files found.
src/App.vue
View file @
5013d319
...
...
@@ -131,6 +131,7 @@
document
.
URL
.
indexOf
(
"SupplierLogin"
)
==
-
1
&&
document
.
URL
.
indexOf
(
"clientConfirm"
)
==
-
1
&&
document
.
URL
.
indexOf
(
"clientProtocol"
)
==
-
1
&&
document
.
URL
.
indexOf
(
"clientDisclaimerProtocol"
)
==
-
1
&&
document
.
URL
.
indexOf
(
"TravelContractConfirm"
)
==
-
1
&&
document
.
URL
.
indexOf
(
"ViittoContractConfirm"
)
==
-
1
)
{
...
...
@@ -141,6 +142,7 @@
if
(
document
.
URL
.
indexOf
(
"clientConfirm"
)
!=
-
1
||
document
.
URL
.
indexOf
(
"clientProtocol"
)
!=
-
1
||
document
.
URL
.
indexOf
(
"clientDisclaimerProtocol"
)
!=
-
1
||
document
.
URL
.
indexOf
(
"TravelContractConfirm"
)
!=
-
1
||
document
.
URL
.
indexOf
(
"ViittoContractConfirm"
)
!=
-
1
)
{
...
...
src/components/SalesModule/groupTourOrder.vue
View file @
5013d319
...
...
@@ -2144,6 +2144,7 @@
<span
style=
"color:#f56c6c"
>
{{childItem.ticketOutTypeStr}}
</span>
<span
v-if=
"childItem.isApplyPhoto == 1"
style=
"color: red"
>
({{ $t("salesModule.Zhao") }})
</span>
<span
style=
"cursor:pointer;"
@
click=
"goProtocol(item,childItem)"
>
{{childItem.protocolId>0?"查看保密协议":"签订保密协议"}}
</span>
<span
style=
"cursor:pointer;"
@
click=
"goDisclaimer(item,childItem)"
>
{{childItem.disclaimerId>0?"查看参团免责承诺函":"签订参团免责承诺函"}}
</span>
</span>
<span
v-if=
"item.photoNum > 0"
>
({{ $t("salesModule.NoPhoto") }} {{ item.photoNum
...
...
@@ -2979,6 +2980,33 @@
});
window
.
open
(
routeData
.
href
,
"_blank"
);
},
//跳转到老人/孕妇免责协议
goDisclaimer
(
item
,
sItem
)
{
let
ProtocolId
=
0
;
let
guestId
=
0
;
var
path
=
"disclaimerProtocol"
;
if
(
sItem
)
{
if
(
sItem
.
disclaimerId
)
{
ProtocolId
=
sItem
.
disclaimerId
;
}
if
(
sItem
.
guestId
)
{
guestId
=
sItem
.
guestId
;
}
}
var
pMsg
=
{
TCID
:
item
.
tcid
,
GuestId
:
guestId
,
OrderId
:
item
.
orderId
,
ProtocolId
:
ProtocolId
,
blank
:
"y"
,
}
let
routeData
=
this
.
$router
.
resolve
({
name
:
path
,
query
:
pMsg
,
});
window
.
open
(
routeData
.
href
,
"_blank"
);
},
//跳转至领取合同
goContract
(
item
,
sItem
)
{
let
cid
=
0
;
...
...
src/components/SalesModule/groupTourOrderByTuan.vue
View file @
5013d319
...
...
@@ -2342,6 +2342,7 @@
<span
style=
"color:#f56c6c"
>
{{childItem.ticketOutTypeStr}}
</span>
<span
style=
"cursor:pointer;"
@
click=
"goProtocol(item,childItem)"
>
{{childItem.protocolId>0?"查看保密协议":"签订保密协议"}}
</span>
<span
style=
"cursor:pointer;"
@
click=
"goDisclaimer(item,childItem)"
>
{{childItem.disclaimerId>0?"查看参团免责承诺函":"签订参团免责承诺函"}}
</span>
<span
v-if=
"childItem.isApplyPhoto == 1"
style=
"color: red"
>
(照)
</span>
</span>
<span
v-if=
"item.photoNum > 0"
>
(照片一人 {{ item.photoNum }}份)
</span>
</span>
...
...
@@ -3678,6 +3679,33 @@
});
window
.
open
(
routeData
.
href
,
"_blank"
);
},
//跳转到老人/孕妇免责协议
goDisclaimer
(
item
,
sItem
)
{
let
ProtocolId
=
0
;
let
guestId
=
0
;
var
path
=
"disclaimerProtocol"
;
if
(
sItem
)
{
if
(
sItem
.
disclaimerId
)
{
ProtocolId
=
sItem
.
disclaimerId
;
}
if
(
sItem
.
guestId
)
{
guestId
=
sItem
.
guestId
;
}
}
var
pMsg
=
{
TCID
:
item
.
tcid
,
GuestId
:
guestId
,
OrderId
:
item
.
orderId
,
ProtocolId
:
ProtocolId
,
blank
:
"y"
,
}
let
routeData
=
this
.
$router
.
resolve
({
name
:
path
,
query
:
pMsg
,
});
window
.
open
(
routeData
.
href
,
"_blank"
);
},
//关闭弹窗
closeDialog
()
{
this
.
isShowLayerRemarks
=
false
;
...
...
src/components/SignName.vue
View file @
5013d319
...
...
@@ -294,6 +294,29 @@
}
},
null
);
}
//老人/孕妇免责协议
else
if
(
this
.
msg
.
TypeStr
==
'clientDisclaimerProtocol'
)
{
var
clientDisclaimerProtocolMsg
=
{
ProtocolId
:
this
.
msg
.
ProtocolId
,
GuestSignature
:
this
.
SignInfo
}
this
.
apipost
(
"travelcontract_post_UpdateDisclaimerGuestSignature"
,
clientDisclaimerProtocolMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
$router
.
push
({
name
:
'clientDisclaimerProtocol'
,
query
:
{
TCID
:
this
.
msg
.
TCID
,
OrderId
:
this
.
msg
.
orderID
,
GuestId
:
this
.
msg
.
guestId
,
ProtocolId
:
this
.
msg
.
ProtocolId
,
}
})
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
}
},
}
}
...
...
src/components/clientDisclaimerProtocol.vue
0 → 100644
View file @
5013d319
<
style
>
*
{
margin
:
0
;
padding
:
0
;
}
.dic_content
{
-webkit-text-size-adjust
:
100%
;
-moz-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
text-size-adjust
:
100%
;
}
.dic_content
{
width
:
100%
;
margin
:
auto
;
background-color
:
#fff
;
}
.dic_content
.contractLeft
{
width
:
150px
;
display
:
block
;
border
:
0
;
float
:
left
;
position
:
fixed
;
}
.dic_content
.contractRight
{
width
:
100%
;
height
:
100%
;
display
:
block
;
background-color
:
#fff
;
z-index
:
99
;
}
.dic_contenttable
th
{
padding
:
8px
0
;
}
.dic_contenttable
td
{
padding
:
8px
0
;
}
.dic_content
h1
,
.dic_content
h2
,
.dic_content
p
{
margin
:
0
auto
;
padding
:
0
10px
;
}
.dic_content
.decoration
{
text-decoration
:
underline
;
}
.dic_content
.leftP
{
text-align
:
left
;
display
:
inline-block
;
}
.dic_content
.Contract_Depart
{
margin
:
30px
0
;
}
.dic_content
.item_content
{
width
:
100%
;
height
:
auto
;
}
.dic_content
.item_content
.title
{
width
:
100%
;
text-align
:
center
;
margin-top
:
20px
;
}
.dic_content
.item_content
>
label
{
width
:
100%
;
text-align
:
left
;
font-weight
:
bold
;
background-color
:
#F2F2F2
;
margin
:
30px
0
;
padding
:
8px
0
;
text-indent
:
20px
;
display
:
inline-block
;
font-size
:
16px
;
}
.dic_content
.item_content
>
span
{
font-size
:
1.5rem
;
line-height
:
26px
;
margin-left
:
10px
;
}
.dic_content
.item_content
.content_table
{
border
:
1px
solid
#d1d1d1
;
margin-top
:
10px
;
width
:
100%
;
text-align
:
center
;
font-size
:
1.8rem
}
.dic_content
.item_content
.content_table
th
{
background-color
:
#F2F2F2
;
}
.dic_content
.item_content
.content_table
th
,
.dic_content
.item_content
.content_table
td
{
border
:
1px
solid
#808080
;
text-align
:
center
;
padding
:
10px
;
}
.dic_content
.item_content
font
{
color
:
blue
;
padding
:
0
10px
;
font-size
:
1.5rem
}
.dic_content
.content_table
font
{
min-width
:
0
;
}
.dic_content
.float_div
{
position
:
fixed
;
bottom
:
0
;
line-height
:
50px
;
background-color
:
#F2F2F2
;
width
:
1190px
;
padding-left
:
10px
;
height
:
50px
;
display
:
block
;
vertical-align
:
middle
;
text-align
:
match-parent
;
}
.dic_content
.leftSign
{
float
:
left
;
width
:
50%
;
margin
:
70px
0
;
height
:
auto
;
line-height
:
45px
;
}
.dic_content
.rightSign
{
float
:
right
;
width
:
49%
;
height
:
auto
;
margin
:
70px
0
;
line-height
:
45px
;
}
.dic_content
.leftSign
span
{
display
:
inline-block
;
width
:
170px
;
text-align
:
right
;
}
.dic_content
.rightSign
span
{
display
:
inline-block
;
width
:
170px
;
text-align
:
right
;
}
.dic_content
.addressCommon
{
display
:
inline-block
;
width
:
300px
;
display
:
inline-block
;
vertical-align
:
top
;
text-align
:
left
;
}
.dic_content
.shouquanNum
{
font-weight
:
bold
;
}
.dic_content
.zhangTitle
{
height
:
90px
;
font-size
:
16px
;
font-weight
:
bold
;
line-height
:
90px
!important
;
text-align
:
center
;
}
.dic_content
.toTopDistance
{
margin-top
:
15px
;
}
.dic_content
.travelDan
td
{
border
:
none
!important
;
text-align
:
left
;
text-indent
:
20px
;
padding
:
10px
0
;
}
.dic_content
.travelDan
{
padding
:
50px
0
;
}
.dic_content
.zhangOne
{
position
:
absolute
;
width
:
200px
;
top
:
-83px
;
left
:
160px
;
}
.dic_content
.zhangTwo
{
position
:
absolute
;
width
:
200px
;
top
:
-60px
;
left
:
80px
;
}
.dic_content
.comonTb
td
{
padding
:
15px
0
;
}
.dic_content
.remindInfo
{
position
:
absolute
;
top
:
42%
;
left
:
35%
;
font-size
:
60px
;
color
:
#FF7F7F
;
letter-spacing
:
20px
;
}
.dic_content
.signName
{
position
:
relative
;
top
:
10px
;
width
:
140px
;
}
.dic_content
.LRTB
td
:nth-child
(
odd
)
{
text-align
:
right
;
padding
:
10px
;
height
:
50px
;
border
:
1px
solid
#d1d1d1
;
}
.dic_content
.LRTB
td
:nth-child
(
even
)
{
text-align
:
left
;
padding
:
10px
;
height
:
50px
;
border
:
1px
solid
#d1d1d1
;
}
.dic_content
.shouquanNum
{
margin
:
30px
0
!important
;
font-weight
:
bold
;
}
.TopFixed
{
z-index
:
100
;
}
.CV_Btn
{
color
:
#fff
;
padding
:
10px
30px
;
background
:
#E95252
;
font-size
:
30px
;
border
:
1px
solid
#E95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
.isShowSign
{
z-index
:
999
;
}
.CisHideen
{
overflow
:
hidden
;
}
.CliConfirmBtn
{
color
:
#fff
;
height
:
60px
;
width
:
150px
;
font-size
:
27px
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
border-radius
:
15px
;
}
.ClientTravelTable
td
{
border
:
1px
solid
#d1d1d1
;
}
.dic_content
.TipsDiv
{
background
:
#fff
;
width
:
75%
;
margin
:
0
auto
;
border-radius
:
0.7rem
;
padding
:
2rem
0
;
margin-top
:
20rem
;
}
.dic_content
.TipsDiv
.readSpan
{
display
:
inline-block
;
background-color
:
#24ade5
;
border-radius
:
5px
;
height
:
3.4rem
;
width
:
18rem
;
color
:
#fff
;
font-size
:
2rem
;
margin-top
:
1rem
;
}
.dic_content
.TipsDiv
li
{
list-style
:
none
;
}
.dic_content
.TipTc
{
width
:
100%
;
height
:
100%
;
position
:
fixed
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
top
:
0
;
left
:
0
;
z-index
:
1000
;
}
.dic_content
.signSpan
{
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
left
:
0
;
background
:
#fff
;
border-top
:
1px
solid
#ccc
;
z-index
:
1000
;
}
.dic_content
.signSpan
.sign
{
width
:
75%
;
margin
:
0
auto
;
padding
:
1rem
0
0
0
;
text-align
:
center
;
cursor
:
pointer
;
}
.dic_content
.signSpan
.sign
.sp1
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
background-image
:
url('../assets/img/dzht/bg1.png')
;
background-size
:
132px
;
background-position
:
52px
29px
;
}
.dic_content
li
{
list-style
:
none
;
}
.dic_content
.navHidden
{
width
:
100%
;
overflow
:
hidden
;
height
:
5rem
;
}
.dic_content
.navHidden
.wrap
{
width
:
100%
;
height
:
6rem
;
overflow-x
:
scroll
;
overflow-y
:
hidden
;
}
.dic_content
.navHidden
.Navul
{
width
:
113rem
;
padding
:
0
;
display
:
flex
;
height
:
5rem
;
line-height
:
5rem
;
margin
:
0
;
border-bottom
:
1px
solid
#ccc
;
}
.dic_content
.navHidden
.Navul
li
{
display
:
inline-block
;
margin-left
:
1rem
;
box-sizing
:
border-box
;
cursor
:
pointer
;
font-size
:
2rem
;
cursor
:
pointer
;
}
.dic_content
.SignbgDiv
{
position
:
relative
;
width
:
100%
;
padding-bottom
:
10rem
;
padding-top
:
10rem
;
}
.dic_content
.SignbgDiv
.signContent
{
overflow
:
hidden
;
position
:
relative
;
height
:
100%
;
}
.dic_content
.SignbgDiv
.signContent
.sysm
{}
.navHidden
.ActiveLi
{
border-bottom
:
2px
solid
#24ade5
;
}
.dic_content
.guestUl
li
{
padding
:
10px
6px
;
box-sizing
:
border-box
;
border-bottom
:
1px
solid
#ddd
;
font-size
:
1.8rem
;
}
.dic_content
.guestUl
li
:nth-child
(
even
)
{
background
:
#f5f5f5
;
}
.dic_content
.NavFixed
{
position
:
fixed
;
top
:
0
;
width
:
100%
;
z-index
:
200
;
background
:
#fff
;
}
.dic_content
.gzqzUl
li
{
border-bottom
:
1px
solid
#ddd
;
padding
:
14px
;
position
:
relative
;
box-sizing
:
border-box
;
}
.dic_content
.gzqzUl
li
.signImg
{
position
:
absolute
;
right
:
15%
;
z-index
:
200
;
}
.dic_content
.gzqzUl
li
.el-col
:nth-child
(
2
)
{
text-align
:
right
;
}
.dic_content
.gzqzUl
.bgli
{
background
:
#eee
;
width
:
100%
;
padding
:
0
!important
;
height
:
20px
;
}
.dic_content
.SignbgDiv
p
{
font-size
:
1.8rem
;
}
.dic_content
.gzqzUl
li
{
font-size
:
1.8rem
;
}
.dic_content
.TcTravel_Table
{
width
:
100%
;
border
:
none
;
border-collapse
:
collapse
;
border-spacing
:
0
;
font-size
:
1.8rem
;
}
.dic_content
.TcTravel_Table
td
{
border
:
1px
solid
rgb
(
0
,
0
,
0
);
word-break
:
break-all
;
padding
:
5px
;
line-height
:
1.5
;
}
.Travel_clientQuan
{
display
:
inline-block
;
width
:
2.5rem
;
height
:
2.5rem
;
border
:
1px
solid
#d1d1d1
;
border-radius
:
5px
;
text-align
:
center
;
line-height
:
1.5rem
;
}
.Travel_clientQuan
i
{
font-size
:
1rem
;
color
:
gray
;
}
</
style
>
<
template
>
<div
class=
"dic_content"
:class=
"dialogVisible?'CisHideen':''"
>
<!-- 签字 -->
<div
class=
"signSpan"
v-if=
"addMsg.GuestSignature==''"
>
<div
@
click=
"goUrl"
class=
"sign"
>
<p><span
style=
"font-size:3rem"
class=
"iconfont icon-qianming"
></span></p>
<span
style=
"font-size:2rem"
>
签字
</span>
</div>
</div>
<div
class=
"signSpan"
v-if=
"addMsg.GuestSignature!=''"
>
<div
@
click=
"goUrl"
class=
"sign"
>
<p><span
style=
"font-size:3rem"
class=
"iconfont icon-qianming"
></span></p>
<span
style=
"font-size:2rem"
>
重签
</span>
</div>
</div>
<!-- 头部 -->
<div
class=
"NavFixed"
>
<p
style=
"background:#24ade5;text-align:center;color:#fff;padding:6px 0;font-size:3rem"
>
查看
</p>
<div
class=
"navHidden"
>
<div
class=
"wrap"
>
<ul
class=
"Navul"
>
<li
:class=
"ActiveTab==1?'ActiveLi':''"
@
click=
"ChangeTab(1)"
>
免责承诺函
</li>
</ul>
</div>
</div>
</div>
<!-- 页面布局 -->
<div
style=
"position: relative;background:#fff;"
>
<div
class=
"SignbgDiv"
>
<div
class=
"signContent"
style=
"padding-top:10px;"
>
<!-- 合同信息 -->
<div
style=
"padding:0 14px;box-sizing: border-box;"
v-show=
"ActiveTab==1"
class=
"item_content"
>
<h3>
<p
class=
"zhangTitle"
>
老年人/孕妇参团免责
</p>
<p
class=
"zhangTitle"
>
承诺函
</p>
</h3>
<p
style=
"text-indent:2em;"
>
本人自愿报名参加了贵司组织的出境旅游团,对于行程中的注意事项贵社工作人员已如实详尽地向本
</p>
<p>
人告知,本人完全理解。鉴于本人已是
<span
style=
" color: black;font-weight: bolder;"
>
65岁以上
</span>
高龄人群或已经
<span
style=
" color: black;font-weight: bolder;"
>
怀孕妇女
</span>
,特向贵社郑重承诺如下:
</p>
<p
style=
"text-indent:2em;"
>
1、本人了解自已的身体状况,并且在此声明自己没有突发性疾病,适合参加此旅游团;本人能够完成
</p>
<p>
旅游团全部行程。
</p>
<p
style=
"text-indent:2em;"
>
2、在旅游过程中,相应景点或相应活动禁止高龄/怀孕人群参加的,本人放弃参加的权利;对高龄/
</p>
<p>
怀孕人群参加有限制的,本人遵守相关制度,若因本人坚持参加所产生的全部后果均由本人承担。
</p>
<p
style=
"text-indent:2em;"
>
3、在旅游过程中,如果本人由于身体不适或其他原因导致本人不能继续完成行程,或需要贵公司协助
</p>
<p>
提前返回的情况,本人承担全部责任以及发生的全部费用。
</p>
<p
style=
"text-indent:2em;"
>
4、如本人没有按贵司要求如实告知相关情况,本人承担因此而产生的全部责任以及发生的全部费用 ,
</p>
<p>
并承担给旅行社造成的损失赔偿责任。
</p>
<p
style=
"text-indent:2em;"
>
5、出境
<span
style=
" color: black;font-weight: bolder;"
>
65岁以上
</span>
高龄老人或
<span
style=
" color: black;font-weight: bolder;"
>
怀孕妇女
</span>
必须本人自行购买境外SOS急救保险。
</p>
<p
style=
"text-indent:2em;"
>
6、对本人有已查明疾病或慢性病,请明确告之旅行社。
</p>
<p
style=
"text-indent:2em;"
>
7、对以上疾病进行治疗后,现是否符合医学正常指标范围。
</p>
<p
style=
"text-indent:2em;"
>
8、本人承诺在出行期间,对前述疾病会随身携带足量常用药品及急救药品。
</p>
<p
style=
"text-indent:2em;"
>
9、本人已就此承诺告知了直系亲属并得到他们的同意。
</p>
<p
style=
"text-indent:2em;"
>
以上承诺内容是本人的真实意思表示。对于本承诺函的各项条款,贵司工作人员已充分告之本人相关
</p>
<p>
含义,本人已阅读并完全理解各项条款的意思。若发生纠纷,以本承诺函中本人的承诺为准。
</p>
<p
style=
"text-indent:2em;"
>
特此承诺!
</p>
</div>
<!-- 盖章签字 -->
<div
class=
"item_content"
>
<ul
class=
"gzqzUl"
>
<li>
<el-row>
<el-col
:span=
"12"
>
承诺人(盖章) :
{{
addMsg
.
GuestName
}}
</el-col>
<el-col
:span=
"12"
>
<template
v-if=
"addMsg.GuestIsSign==1"
>
<img
style=
"width:140px;height:auto;"
class=
"signImg"
:src=
"addMsg.GuestSignature"
v-if=
"addMsg.GuestSignature!=''"
alt=
""
/>
</
template
>
</el-col>
</el-row>
</li>
<li>
<el-row>
<el-col
:span=
"12"
>
签约日期:
</el-col>
<el-col
:span=
"12"
>
{{addMsg.GuestSignDate}}
</el-col>
</el-row>
</li>
<li>
<el-row>
<el-col
:span=
"12"
>
</el-col>
<el-col
:span=
"12"
>
</el-col>
</el-row>
</li>
<li>
<el-row>
<el-col
:span=
"12"
>
</el-col>
<el-col
:span=
"12"
>
</el-col>
</el-row>
</li>
<li>
<el-row>
<el-col
:span=
"12"
>
</el-col>
<el-col
:span=
"12"
>
</el-col>
</el-row>
</li>
<li>
<el-row>
<el-col
:span=
"12"
>
</el-col>
<el-col
:span=
"12"
>
</el-col>
</el-row>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
ActiveTab
:
1
,
//查询参数
msg
:
{
TCID
:
0
,
OrderId
:
0
,
GuestId
:
0
},
//数据源
addMsg
:
{
ProtocolId
:
0
,
//协议Id
TCID
:
0
,
//团期编号
OrderId
:
0
,
//订单编号
GuestId
:
0
,
//旅客编号
DiscountMoney
:
0
,
//优惠金额
GuestName
:
""
,
//旅客名称
GuestIsSign
:
0
,
//旅客是否签章
GuestSignature
:
""
,
//旅客签章图片
GuestSignDate
:
""
,
//旅客签字日期
CompanyIsSign
:
""
,
//公司是否盖章
CompanySignDate
:
""
,
//公司盖章日期
CompanyImage
:
""
,
//公司章图片
EnterName
:
""
,
//录入人员
},
TravelAgency_Name
:
"四川和平国际旅行社有限公司"
,
dialogVisible
:
false
,
};
},
created
()
{
},
methods
:
{
goUrl
()
{
this
.
$router
.
push
({
name
:
"SignName"
,
query
:
{
TCID
:
this
.
msg
.
TCID
,
orderID
:
this
.
msg
.
OrderId
,
guestId
:
this
.
msg
.
GuestId
,
ProtocolId
:
this
.
addMsg
.
ProtocolId
,
TypeStr
:
'clientDisclaimerProtocol'
}
})
},
ChangeTab
(
num
)
{
this
.
ActiveTab
=
num
;
},
//获取数据
getList
()
{
this
.
apipost
(
"travelcontract_post_GetDisclaimerProtocol"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
var
tempObj
=
res
.
data
.
data
;
if
(
tempObj
.
ProtocolId
>
0
)
{
this
.
addMsg
.
ProtocolId
=
tempObj
.
ProtocolId
;
this
.
addMsg
.
TCID
=
tempObj
.
TCID
;
this
.
addMsg
.
OrderId
=
tempObj
.
OrderId
;
this
.
addMsg
.
GuestId
=
tempObj
.
GuestId
;
this
.
addMsg
.
DiscountMoney
=
tempObj
.
DiscountMoney
;
this
.
addMsg
.
GuestName
=
tempObj
.
GuestName
;
this
.
addMsg
.
GuestIsSign
=
tempObj
.
GuestIsSign
;
this
.
addMsg
.
GuestSignature
=
tempObj
.
GuestSignature
;
this
.
addMsg
.
GuestSignDate
=
tempObj
.
GuestSignDate
;
this
.
addMsg
.
CompanyIsSign
=
tempObj
.
CompanyIsSign
;
this
.
addMsg
.
CompanySignDate
=
tempObj
.
CompanySignDate
;
this
.
addMsg
.
CompanyImage
=
tempObj
.
CompanyImage
;
this
.
addMsg
.
EnterName
=
tempObj
.
EnterName
;
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
},
mounted
()
{
this
.
msg
.
TCID
=
this
.
$route
.
query
.
TCID
;
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
this
.
msg
.
GuestId
=
this
.
$route
.
query
.
GuestId
;
this
.
msg
.
ProtocolId
=
this
.
$route
.
query
.
ProtocolId
;
this
.
getList
();
}
};
</
script
>
src/components/disclaimerProtocol.vue
0 → 100644
View file @
5013d319
<
style
>
.TravelContractView
{
min-height
:
650px
;
background
:
url(../assets/img/bodyBg.png)
;
padding-top
:
10px
;
font
:
normal
13px
'Microsoft Yahei'
;
color
:
#555
;
}
.TravelContractView
.container-fluid
{
padding
:
0
20px
;
}
.TravelContractView
.block
{
border
:
1px
solid
#cdcdcd
;
background
:
#f9f9f9
;
position
:
relative
;
margin-bottom
:
20px
;
}
.TravelContractView
.mtop15
{
margin-top
:
15px
;
}
.TravelContractView
.blockTitle
{
border-bottom
:
1px
solid
#cdcdcd
;
background-color
:
#efefef
;
}
.TravelContractView
.blockTitle
span
.icon
{
border-right
:
1px
solid
#CDCDCD
;
position
:
absolute
;
left
:
10px
;
height
:
40px
;
padding-right
:
10px
;
padding-top
:
8px
;
}
.TravelContractView
.blockTitle
h2
{
font-size
:
15px
;
min-height
:
40px
;
margin
:
0
;
font-family
:
'Microsoft Yahei'
;
color
:
#5b5b5b
;
padding-right
:
15px
;
padding-left
:
48px
;
line-height
:
40px
;
}
.TravelContractView
.blockTitle
h2
span
{
position
:
absolute
;
right
:
10px
;
top
:
0
;
}
.TravelContractView
.contract
{
background
:
#f9f9f9
;
margin-bottom
:
20px
;
margin-top
:
20px
;
}
.TravelContractView
.title
{
font-size
:
18px
;
margin-top
:
10px
;
color
:
#555
;
height
:
100px
;
position
:
relative
;
padding-left
:
30px
!important
;
padding-right
:
30px
!important
;
padding-bottom
:
40px
!important
;
}
.TravelContractView
.title
p
{
margin
:
0
;
font-size
:
12px
;
}
.TravelContractView
.contractNo
{
font-weight
:
bold
;
margin-right
:
5px
;
}
.TravelContractView
.title
h1
{
font-size
:
24px
;
text-align
:
left
;
}
.TravelContractView
.title
p
span
{
font-style
:
normal
;
font-size
:
14px
;
color
:
#0088cc
;
}
.TD-introduction
{
padding-top
:
20px
;
margin
:
20px
30px
30px
30px
;
font-size
:
13px
;
}
.TD-introduction
p
{
margin
:
5px
0
0
0
;
line-height
:
27px
;
/* text-align: center; */
}
.TD-introduction
p
span
{
color
:
black
;
font-weight
:
bolder
;
}
.TD-introduction
h2
{
font-size
:
16px
;
}
.TravelContractView
h1
,
.TravelContractView
h2
{
line-height
:
40px
!important
;
}
.TravelContractView
.signDiv
{
width
:
160px
;
height
:
120px
;
position
:
absolute
;
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
left
:
0
;
top
:
0px
;
margin
:
-3em
24em
;
z-Index
:
100
;
}
.TravelContractView
.guests
{
font-size
:
13px
;
margin
:
20px
30px
30px
30px
;
}
.TravelContractView
.ZTable
{
width
:
100%
;
border
:
none
;
table-layout
:
fixed
;
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.TravelContractView
.ZTable
>
tbody
>
tr
>
td
{
word-break
:
break-word
;
border
:
solid
#ddd
1px
;
padding
:
8px
;
line-height
:
25px
;
}
.TravelContractView
p
font
{
border-bottom
:
#cbcbcb
1px
solid
;
padding
:
0
5px
;
color
:
#0088cc
;
margin
:
0
5px
;
}
/*弹出层*/
.TravelContractView
.qrCodeDiv
{
width
:
236px
;
height
:
275px
;
background-color
:
#fff
;
text-align
:
center
;
border
:
1px
solid
#d1d1d1
;
position
:
fixed
;
left
:
50%
;
top
:
50%
;
margin-left
:
-100px
;
margin-top
:
-118px
;
z-index
:
999
;
border-radius
:
5px
;
}
.TravelContractView
.Ec_cha
{
position
:
absolute
;
cursor
:
pointer
;
right
:
-20px
;
top
:
-25px
;
width
:
30px
;
height
:
30px
;
background-color
:
#fff
;
text-align
:
center
;
border-radius
:
50%
;
line-height
:
30px
;
}
</
style
>
<
template
>
<div
class=
"TravelContractView"
>
<div
class=
"container-fluid"
>
<div
class=
"block mtop15"
>
<div
class=
"blockTitle"
>
<table
style=
"width:100%"
>
<tr>
<td>
<span
class=
"icon"
><i
class=
"iconfont icon-wenjian"
></i></span>
<h2>
协议详情
<template
v-if=
"addMsg.EnterName&&addMsg.EnterName!=''"
>
销售人员:
{{
addMsg
.
EnterName
}}
</
template
>
</h2>
</td>
<td
align=
"right"
>
<el-button
type=
"primary"
size=
"medium"
@
click=
"saveData()"
:loading=
"SaveLoading"
>
保存
</el-button>
<
template
v-if=
"addMsg.ProtocolId>0"
>
<el-button
type=
"primary"
size=
"medium"
@
click=
"isShowFade=true;createQrCode()"
>
生成二维码
</el-button>
</
template
>
</td>
</tr>
</table>
</div>
<div
v-loading=
"Loading"
>
<div
class=
"contract"
>
<div
class=
"title"
>
<h1>
老年人/孕妇参团免责
</h1>
<h1>
承诺函
</h1>
<p
class=
"contractNo"
style=
"padding:5px 0px 5px 0px;"
>
承诺函编号:
<span
v-if=
"addMsg.ProtocolId&&addMsg.ProtocolId>0"
>
{{addMsg.ProtocolId}}
</span></p>
</div>
</div>
<!-- 使用说明 -->
<div
class=
"TD-introduction"
>
<p
style=
"text-indent:2em;"
>
本人自愿报名参加了贵司组织的出境旅游团,对于行程中的注意事项贵社工作人员已如实详尽地向本
</p>
<p>
人告知,本人完全理解。鉴于本人已是
<span>
65岁以上
</span>
高龄人群或已经
<span>
怀孕妇女
</span>
,特向贵社郑重承诺如下:
</p>
<p
style=
"text-indent:2em;"
>
1、本人了解自已的身体状况,并且在此声明自己没有突发性疾病,适合参加此旅游团;本人能够完成
</p>
<p>
旅游团全部行程。
</p>
<p
style=
"text-indent:2em;"
>
2、在旅游过程中,相应景点或相应活动禁止高龄/怀孕人群参加的,本人放弃参加的权利;对高龄/
</p>
<p>
怀孕人群参加有限制的,本人遵守相关制度,若因本人坚持参加所产生的全部后果均由本人承担。
</p>
<p
style=
"text-indent:2em;"
>
3、在旅游过程中,如果本人由于身体不适或其他原因导致本人不能继续完成行程,或需要贵公司协助
</p>
<p>
提前返回的情况,本人承担全部责任以及发生的全部费用。
</p>
<p
style=
"text-indent:2em;"
>
4、如本人没有按贵司要求如实告知相关情况,本人承担因此而产生的全部责任以及发生的全部费用 ,
</p>
<p>
并承担给旅行社造成的损失赔偿责任。
</p>
<p
style=
"text-indent:2em;"
>
5、出境
<span>
65岁以上
</span>
高龄老人或
<span>
怀孕妇女
</span>
必须本人自行购买境外SOS急救保险。
</p>
<p
style=
"text-indent:2em;"
>
6、对本人有已查明疾病或慢性病,请明确告之旅行社。
</p>
<p
style=
"text-indent:2em;"
>
7、对以上疾病进行治疗后,现是否符合医学正常指标范围。
</p>
<p
style=
"text-indent:2em;"
>
8、本人承诺在出行期间,对前述疾病会随身携带足量常用药品及急救药品。
</p>
<p
style=
"text-indent:2em;"
>
9、本人已就此承诺告知了直系亲属并得到他们的同意。
</p>
<p
style=
"text-indent:2em;"
>
以上承诺内容是本人的真实意思表示。对于本承诺函的各项条款,贵司工作人员已充分告之本人相关
</p>
<p>
含义,本人已阅读并完全理解各项条款的意思。若发生纠纷,以本承诺函中本人的承诺为准。
</p>
<p
style=
"text-indent:2em;"
>
特此承诺!
</p>
<p
style=
"text-indent:22em;"
>
<span>
承诺人(本人亲笔签名确认):{{addMsg.GuestName}}
</span>
</p>
<p
style=
"text-indent:18em;position:relative;"
>
<
template
v-if=
"addMsg.GuestIsSign==1"
>
<div
class=
"signDiv"
:style=
"
{backgroundImage: 'url(' + (addMsg.GuestSignature) + ')'}">
</div>
</
template
></p>
<p
style=
"text-indent:38em;"
>
<span
v-if=
"addMsg.GuestIsSign==1"
>
{{addMsg.GuestSignDateStr}}
</span>
<span
v-else
>
年
月
日
</span>
</p>
</div>
</div>
</div>
</div>
<div
class=
"fade"
v-show=
"isShowFade"
></div>
<div
class=
"qrCodeDiv"
v-show=
"isShowFade"
>
<div
style=
"margin-top:15px;"
>
请扫码签字
</div>
<div
id=
"qrcode"
style=
"margin:25px;"
ref=
"qrcode"
>
<img
class=
"WeiXinShare"
:src=
"'data:image/png;base64,'+QRCodeStr"
/>
</div>
<i
class=
"iconfont icon-cha Ec_cha"
@
click=
"isShowFade=false"
></i>
</div>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
//查询参数
msg
:
{
ProtocolId
:
0
,
//协议Id
TCID
:
0
,
//团期编号
OrderId
:
0
,
//订单编号
GuestId
:
0
,
//旅客编号
},
addMsg
:
{
ProtocolId
:
0
,
//协议Id
TCID
:
0
,
//团期编号
OrderId
:
0
,
//订单编号
GuestId
:
0
,
//旅客编号
DiscountMoney
:
0
,
//优惠金额
GuestName
:
""
,
//旅客名称
GuestIsSign
:
0
,
//旅客是否签章
GuestSignature
:
""
,
//旅客签章图片
GuestSignDate
:
""
,
//旅客签字日期
CompanyIsSign
:
""
,
//公司是否盖章
CompanySignDate
:
""
,
//公司盖章日期
CompanyImage
:
""
,
//公司章图片
EnterName
:
""
,
//录入人员
GuestSignDateStr
:
""
,
},
TravelAgency_Name
:
"四川和平国际旅行社有限公司"
,
SaveLoading
:
false
,
isShowFade
:
false
,
//是否显示二维码弹窗
QRCodeStr
:
""
,
//二维码base64字符串
Loading
:
false
,
};
},
filters
:
{
},
methods
:
{
GetData
()
{
this
.
Loading
=
true
;
this
.
apipost
(
"travelcontract_post_GetDisclaimerProtocol"
,
this
.
msg
,
res
=>
{
this
.
Loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
var
tempObj
=
res
.
data
.
data
;
if
(
tempObj
.
ProtocolId
>
0
)
{
this
.
addMsg
.
ProtocolId
=
tempObj
.
ProtocolId
;
this
.
addMsg
.
TCID
=
tempObj
.
TCID
;
this
.
addMsg
.
OrderId
=
tempObj
.
OrderId
;
this
.
addMsg
.
GuestId
=
tempObj
.
GuestId
;
this
.
addMsg
.
DiscountMoney
=
tempObj
.
DiscountMoney
;
this
.
addMsg
.
GuestIsSign
=
tempObj
.
GuestIsSign
;
this
.
addMsg
.
GuestSignature
=
tempObj
.
GuestSignature
;
this
.
addMsg
.
GuestSignDate
=
tempObj
.
GuestSignDate
;
this
.
addMsg
.
CompanyIsSign
=
tempObj
.
CompanyIsSign
;
this
.
addMsg
.
CompanySignDate
=
tempObj
.
CompanySignDate
;
this
.
addMsg
.
CompanyImage
=
tempObj
.
CompanyImage
;
this
.
addMsg
.
EnterName
=
tempObj
.
EnterName
;
this
.
addMsg
.
GuestSignDateStr
=
tempObj
.
GuestSignDateStr
;
}
this
.
addMsg
.
GuestName
=
tempObj
.
GuestName
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//保存保密协议
saveData
()
{
this
.
SaveLoading
=
true
;
this
.
apipost
(
"travelcontract_post_SetDisclaimerProtocol"
,
this
.
addMsg
,
res
=>
{
this
.
SaveLoading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
addMsg
.
ProtocolId
=
res
.
data
.
data
;
this
.
msg
.
ProtocolId
=
res
.
data
.
data
;
this
.
GetData
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//公司盖章
saveCompanySign
()
{
var
postMsg
=
{
ProtocolId
:
this
.
addMsg
.
ProtocolId
,
CompanyIsSign
:
1
,
};
this
.
apipost
(
"traveldisProtocol_post_UpdateCompanySignature"
,
postMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
GetData
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//生成二维码
createQrCode
()
{
let
urlObj
=
this
.
domainManager
();
let
msg
=
{
TCID
:
this
.
$route
.
query
.
TCID
,
OrderId
:
this
.
$route
.
query
.
OrderId
,
GuestId
:
this
.
$route
.
query
.
GuestId
,
ProtocolId
:
this
.
$route
.
query
.
ProtocolId
,
pUrl
:
"clientDisclaimerProtocol"
,
};
this
.
$http
({
headers
:
{
'Content-Type'
:
'application/json'
},
method
:
'post'
,
url
:
urlObj
.
DomainUrl
+
'/api/file/GetQrCodeExtImage?'
,
data
:
{
"msg"
:
msg
}
}).
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
QRCodeStr
=
res
.
data
.
data
;
}
}).
catch
(
err
=>
{})
}
},
created
()
{
if
(
this
.
$route
.
query
)
{
if
(
this
.
$route
.
query
.
ProtocolId
)
{
this
.
msg
.
ProtocolId
=
this
.
$route
.
query
.
ProtocolId
;
this
.
addMsg
.
ProtocolId
=
this
.
$route
.
query
.
ProtocolId
;
}
if
(
this
.
$route
.
query
.
TCID
)
{
this
.
msg
.
TCID
=
this
.
$route
.
query
.
TCID
;
this
.
addMsg
.
TCID
=
this
.
$route
.
query
.
TCID
;
}
if
(
this
.
$route
.
query
.
OrderId
)
{
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
this
.
addMsg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
}
if
(
this
.
$route
.
query
.
GuestId
)
{
this
.
msg
.
GuestId
=
this
.
$route
.
query
.
GuestId
;
this
.
addMsg
.
GuestId
=
this
.
$route
.
query
.
GuestId
;
}
}
},
mounted
()
{
this
.
GetData
();
}
};
</
script
>
src/router/config.js
View file @
5013d319
...
...
@@ -4,6 +4,7 @@ import index from '../components/index'
import
clientConfirm
from
'../components/clientConfirm'
import
clientConfirmRB
from
'../components/clientConfirmRB'
import
clientProtocol
from
'../components/clientProtocol'
import
clientDisclaimerProtocol
from
'../components/clientDisclaimerProtocol'
import
SignName
from
'../components/SignName'
import
supplierLogin
from
'../components/SupplierLogin'
import
supplierIndex
from
'../components/SupplierIndex'
...
...
@@ -5882,6 +5883,11 @@ export default {
name
:
'clientProtocol'
,
component
:
clientProtocol
,
},
{
path
:
'/clientDisclaimerProtocol'
,
//老人/孕妇免责协议签订
name
:
'clientDisclaimerProtocol'
,
component
:
clientDisclaimerProtocol
,
},
{
path
:
'/SignName'
,
name
:
'SignName'
,
...
...
@@ -5918,6 +5924,13 @@ export default {
meta
:
{
title
:
'价格保密协议'
}
},{
path
:
'/disclaimerProtocol'
,
//老年人/孕妇参团免责
name
:
'disclaimerProtocol'
,
component
:
resolve
=>
require
([
'@/components/disclaimerProtocol'
],
resolve
),
meta
:
{
title
:
'老年人/孕妇参团免责'
}
},
{
path
:
'/SingleContract'
,
//单项合同
...
...
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