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
dbdfde7e
Commit
dbdfde7e
authored
Dec 17, 2019
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
3b58c278
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
669 additions
and
227 deletions
+669
-227
TravelContractConfirm.vue
src/components/TravelContractConfirm.vue
+105
-110
ContractManage.vue
src/components/administrative/ContractManage.vue
+1
-1
ElectronicAudit.vue
src/components/administrative/ElectronicAudit.vue
+563
-116
No files found.
src/components/TravelContractConfirm.vue
View file @
dbdfde7e
<
style
>
/* body{
-webkit-text-size-adjust : 100% ;
-moz-text-size-adjust : 100% ;
-ms-text-size-adjust : 100% ;
text-size-adjust : 100%;
} */
*
{
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
:
0
auto
;
background-color
:
#fff
;
height
:
100%
;}
.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
;}
*
{
margin
:
0
;
padding
:
0
;
}
.TCdiv_content
{
-webkit-text-size-adjust
:
100%
;
-moz-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
text-size-adjust
:
100%
;
}
.TCdiv_content
{
width
:
100%
;
margin
:
0
auto
;
background-color
:
#fff
;
height
:
100%
;}
.TCdiv_content
.contractLeft
{
width
:
150px
;
display
:
block
;
border
:
0
;
float
:
left
;
position
:
fixed
;}
.TCdiv_content
.contractRight
{
width
:
100%
;
height
:
100%
;
display
:
block
;
background-color
:
#fff
;
z-index
:
99
;}
.TCdiv_contenttable
th
{
padding
:
8px
0
;}
.TCdiv_contenttable
td
{
padding
:
8px
0
;}
.TCdiv_content
h1
,
.TCdiv_content
h2
,
.TCdiv_content
p
{
margin
:
0
auto
;
padding
:
0
10px
;}
.TCdiv_content
.decoration
{
text-decoration
:
underline
;}
.TCdiv_content
.leftP
{
text-align
:
left
;
display
:
inline-block
;}
.TCdiv_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
;
display
:
inline-block
;
padding
:
0
10px
;
font-size
:
1.5
rem
}
.
dic
_content
.content_table
font
{
min-width
:
0
;}
.
TCdiv
_content
.item_content
{
width
:
100%
;
height
:
auto
;}
.
TCdiv
_content
.item_content
.title
{
width
:
100%
;
text-align
:
center
;
margin-top
:
20px
;}
.
TCdiv
_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
;}
.
TCdiv
_content
.item_content
>
span
{
font-size
:
1.5rem
;
line-height
:
26px
;
margin-left
:
10px
;}
.
TCdiv
_content
.item_content
.content_table
{
border
:
1px
solid
#d1d1d1
;
margin-top
:
10px
;
width
:
100%
;
text-align
:
center
;
font-size
:
1.8rem
}
.
TCdiv
_content
.item_content
.content_table
th
{
background-color
:
#F2F2F2
;}
.
TCdiv_content
.item_content
.content_table
th
,
.TCdiv
_content
.item_content
.content_table
td
{
border
:
1px
solid
#808080
;
text-align
:
center
;
padding
:
10px
;}
.
TCdiv_content
.item_content
font
{
color
:
blue
;
display
:
inline-block
;
padding
:
0
10px
;
font-size
:
1.8
rem
}
.
TCdiv
_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
;}
.
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
{
.
TCdiv
_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
;}
.
TCdiv
_content
.leftSign
{
float
:
left
;
width
:
50%
;
margin
:
70px
0
;
height
:
auto
;
line-height
:
45px
;}
.
TCdiv
_content
.rightSign
{
float
:
right
;
width
:
49%
;
height
:
auto
;
margin
:
70px
0
;
line-height
:
45px
;}
.
TCdiv
_content
.leftSign
span
{
display
:
inline-block
;
width
:
170px
;
text-align
:
right
;}
.
TCdiv
_content
.rightSign
span
{
display
:
inline-block
;
width
:
170px
;
text-align
:
right
;}
.
TCdiv
_content
.addressCommon
{
display
:
inline-block
;
width
:
300px
;
display
:
inline-block
;
vertical-align
:
top
;
text-align
:
left
;}
.
TCdiv
_content
.shouquanNum
{
font-weight
:
bold
;}
.
TCdiv_content
.TC_ZhangTitle
{
height
:
90px
;
font-size
:
20rem
;
font-weight
:
bold
;
line-height
:
90px
!important
;}
.
TCdiv
_content
.toTopDistance
{
margin-top
:
15px
;}
.
TCdiv
_content
.travelDan
td
{
border
:
none
!important
;
text-align
:
left
;
text-indent
:
20px
;
padding
:
10px
0
;}
.
TCdiv
_content
.travelDan
{
padding
:
50px
0
;}
.
TCdiv
_content
.zhangOne
{
position
:
absolute
;
width
:
200px
;
top
:
-83px
;
left
:
160px
;}
.
TCdiv
_content
.zhangTwo
{
position
:
absolute
;
width
:
200px
;
top
:
-60px
;
left
:
80px
;}
.
TCdiv
_content
.comonTb
td
{
padding
:
15px
0
;}
.
TCdiv
_content
.remindInfo
{
position
:
absolute
;
top
:
42%
;
left
:
35%
;
font-size
:
60px
;
color
:
#FF7F7F
;
letter-spacing
:
20px
;}
.
TCdiv
_content
.signName
{
position
:
relative
;
top
:
10px
;
width
:
140px
;}
.
TCdiv
_content
.LRTB
td
:nth-child
(
odd
)
{
text-align
:
right
;
padding
:
10px
;
height
:
50px
;
border
:
1px
solid
#d1d1d1
;}
.
TCdiv
_content
.LRTB
td
:nth-child
(
even
)
{
text-align
:
left
;
padding
:
10px
;
height
:
50px
;
border
:
1px
solid
#d1d1d1
;}
.
TCdiv
_content
.shouquanNum
{
margin
:
30px
0
!important
;
font-weight
:
bold
;
}
#canvas
{
width
:
100%
;
height
:
100%
;
/* position: relative; */
}
#canvas
canvas
{
display
:
block
;
...
...
@@ -71,7 +63,6 @@
border
:
1px
solid
#d1d1d1
;
width
:
100%
;
background-color
:
#fff
;
/* height:500px; */
z-index
:
999
;
margin
:
auto
;
display
:
block
;
...
...
@@ -109,7 +100,7 @@
.ClientTravelTable
td
{
border
:
1px
solid
#d1d1d1
;
}
.
dic
_content
.TipsDiv
{
.
TCdiv
_content
.TipsDiv
{
background
:
#fff
;
width
:
75%
;
margin
:
0
auto
;
...
...
@@ -117,7 +108,7 @@
padding
:
2rem
0
;
margin-top
:
20rem
;
}
.
dic
_content
.TipsDiv
.readSpan
{
.
TCdiv
_content
.TipsDiv
.readSpan
{
display
:
inline-block
;
background-color
:
#24ade5
;
border-radius
:
5px
;
...
...
@@ -129,10 +120,10 @@
margin-top
:
1rem
;
}
.
dic
_content
.TipsDiv
li
{
.
TCdiv
_content
.TipsDiv
li
{
list-style
:
none
;
}
.
dic
_content
.TipTc
{
.
TCdiv
_content
.TipTc
{
width
:
100%
;
height
:
100%
;
position
:
fixed
;
...
...
@@ -141,7 +132,7 @@
left
:
0
;
z-index
:
1000
;
}
.
dic
_content
.signSpan
{
.
TCdiv
_content
.signSpan
{
position
:
fixed
;
bottom
:
0
;
width
:
100%
;
...
...
@@ -150,7 +141,7 @@
border-top
:
1px
solid
#ccc
;
z-index
:
1000
;
}
.
dic
_content
.signSpan
.sign
{
.
TCdiv
_content
.signSpan
.sign
{
width
:
75%
;
margin
:
0
auto
;
...
...
@@ -159,7 +150,7 @@
cursor
:
pointer
;
}
.
dic
_content
.signSpan
.sign
.sp1
{
.
TCdiv
_content
.signSpan
.sign
.sp1
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
...
...
@@ -168,22 +159,22 @@
background-position
:
52px
29px
;
}
.
dic
_content
li
{
.
TCdiv
_content
li
{
list-style
:
none
;
}
.
dic
_content
.navHidden
{
.
TCdiv
_content
.navHidden
{
width
:
100%
;
overflow
:
hidden
;
height
:
5rem
;
}
.
dic
_content
.navHidden
.wrap
{
.
TCdiv
_content
.navHidden
.wrap
{
width
:
100%
;
height
:
6rem
;
overflow-x
:
scroll
;
overflow-y
:
hidden
;
}
.
dic
_content
.navHidden
.Navul
{
.
TCdiv
_content
.navHidden
.Navul
{
width
:
113rem
;
padding
:
0
;
display
:
flex
;
...
...
@@ -192,7 +183,7 @@
margin
:
0
;
border-bottom
:
1px
solid
#ccc
;
}
.
dic
_content
.navHidden
.Navul
li
{
.
TCdiv
_content
.navHidden
.Navul
li
{
display
:
inline-block
;
margin-left
:
1rem
;
box-sizing
:
border-box
;
...
...
@@ -200,13 +191,13 @@
font-size
:
2rem
;
cursor
:
pointer
;
}
.
dic
_content
.SignbgDiv
{
.
TCdiv
_content
.SignbgDiv
{
position
:
relative
;
width
:
100%
;
padding-bottom
:
10rem
;
padding-top
:
10rem
;
}
.
dic
_content
.SignbgDiv
.signContent
{
.
TCdiv
_content
.SignbgDiv
.signContent
{
overflow
:
hidden
;
position
:
relative
;
height
:
100%
;
...
...
@@ -214,56 +205,56 @@
.navHidden
.ActiveLi
{
border-bottom
:
2px
solid
#24ade5
;
}
.
dic
_content
.guestUl
li
{
.
TCdiv
_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
)
{
.
TCdiv
_content
.guestUl
li
:nth-child
(
even
)
{
background
:
#f5f5f5
;
}
.
dic
_content
.NavFixed
{
.
TCdiv
_content
.NavFixed
{
position
:
fixed
;
top
:
0
;
width
:
100%
;
z-index
:
200
;
background
:
#fff
;
}
.
dic
_content
.gzqzUl
li
{
.
TCdiv
_content
.gzqzUl
li
{
border-bottom
:
1px
solid
#ddd
;
padding
:
14px
;
position
:
relative
;
box-sizing
:
border-box
;
}
.
dic
_content
.gzqzUl
li
.signImg
{
.
TCdiv
_content
.gzqzUl
li
.signImg
{
position
:
absolute
;
left
:
45%
;
z-index
:
200
;
}
.
dic
_content
.gzqzUl
li
.el-col
:nth-child
(
2
)
{
.
TCdiv
_content
.gzqzUl
li
.el-col
:nth-child
(
2
)
{
text-align
:
right
;
}
.
dic
_content
.gzqzUl
.bgli
{
.
TCdiv
_content
.gzqzUl
.bgli
{
background
:
#eee
;
width
:
100%
;
padding
:
0
!important
;
height
:
20px
;
}
.
dic
_content
.SignbgDiv
p
{
.
TCdiv
_content
.SignbgDiv
p
{
font-size
:
1.8rem
;
}
.
dic
_content
.gzqzUl
li
{
.
TCdiv
_content
.gzqzUl
li
{
font-size
:
1.8rem
;
}
.
dic
_content
.TcTravel_Table
{
.
TCdiv
_content
.TcTravel_Table
{
width
:
100%
;
border
:
none
;
border-collapse
:
collapse
;
border-spacing
:
0
;
font-size
:
1.8rem
;
}
.
dic
_content
.TcTravel_Table
td
{
.
TCdiv
_content
.TcTravel_Table
td
{
border
:
1px
solid
rgb
(
0
,
0
,
0
);
word-break
:
break-all
;
padding
:
5px
;
...
...
@@ -329,12 +320,15 @@
top
:
50%
;
font-size
:
2rem
;
}
.TouristTable
td
{
text-align
:
center
;
}
</
style
>
<
template
>
<div>
<template
v-if=
"CtObj.CType==1"
>
<div
class=
"
dic
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<div
class=
"
TCdiv
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<!-- 签字 -->
<div
class=
"signSpan"
>
<div
@
click=
"dialogVisible=true"
:class=
"dialogVisible?'CisHideen':''"
class=
"sign"
>
...
...
@@ -715,7 +709,7 @@
</div>
</template>
<
template
v-if=
"CtObj.CType==2"
>
<div
class=
"
dic
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<div
class=
"
TCdiv
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<!-- 签字 -->
<div
class=
"signSpan"
>
<div
@
click=
"dialogVisible=true"
:class=
"dialogVisible?'CisHideen':''"
class=
"sign"
>
...
...
@@ -779,7 +773,7 @@
</p>
<p>
旅行社:
<font>
{{
dataList
.
company
}}
</font></p>
<p>
旅行社业务经营许可证编号:
<font>
{{
dataList
.
businessCertificate
}}
</font></p>
<h3><p
class=
"
z
hangTitle"
>
第一章
术语和定义
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第一章
术语和定义
</p></h3>
<h3><p>
第一条
本合同术语和定义
</p></h3>
<p>
1、团队境内旅游服务,指旅行社依据《中华人民共和国旅游法》、《旅行社条例》等法律、法规,组织旅游者在中华 人民共和国境内(不含香港、澳门、台湾地区)旅游,代订公共交通客票,提供餐饮、住宿、游览等两项以上服务活动。
</p>
<p>
2、旅游费用,指旅游者支付给旅行社,用于购买本合同约定的旅游服务的费用。
</p>
...
...
@@ -809,7 +803,7 @@
<p>
14、已尽合理注意义务仍不能避免的事件,指因当事人故意或者过失以外的客观因素引发的事件,包括但不限于重大 礼宾活动导致的交通堵塞,飞机、火车、班轮、城际客运班车等公共客运交通工具延误或者取消,景点临时不开放。
</p>
<p>
15、必要的费用,指旅行社履行合同已经发生的费用以及向地接社或者履行辅助人支付且不可退还的费用,包括乘坐 飞机(车、船)等交通工具的费用(含预订金)、饭店住宿费用(含预订金)、旅游观光汽车的人均车租等。
</p>
<p>
16、公共交通经营者,指航空、铁路、航运客轮、城市公交、地铁等公共交通工具经营者。
</p>
<h3><p
class=
"
z
hangTitle"
>
第二章
合同的订立
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第二章
合同的订立
</p></h3>
<h3><p>
第二条
旅游行程单
</p></h3>
<p>
旅行社应当提供带团号的《旅游行程单》(以下简称《行程单》),经双方签字或者盖章确认后作为本合同的组成部 分。《行程单》应当对如下内容作出明确的说明:
</p>
<p>
(1)旅游行程的出发地、途经地、目的地、结束地,线路行程时间和具体安排(按自然日计算,含乘飞机、车、船等 在途时间,不足24小时以一日计);
</p>
...
...
@@ -826,7 +820,7 @@
<p>
由旅游者的代理人订立合同的,代理人需要出具被代理的旅游者的授权委托书。
</p>
<h3><p
class=
"toTopDistance"
>
第四条
旅游广告及宣传品
</p></h3>
<p>
旅行社的旅游广告及宣传品应当遵循诚实信用的原则,其内容符合《中华人民共和国合同法》要约规定的,视为本合 同的组成部分,对旅行社和旅游者双方具有约束力。
</p>
<h3><p
class=
"
z
hangTitle"
>
第三章
合同双方的权利义务
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第三章
合同双方的权利义务
</p></h3>
<h3><p>
第五条
旅行社的权利
</p></h3>
<p>
1、根据旅游者的身体健康状况及相关条件决定是否接纳旅游者报名参团;
</p>
<p>
2、核实旅游者提供的相关信息资料;
</p>
...
...
@@ -867,7 +861,7 @@
<p>
6、妥善保管自己的行李物品,随身携带现金、有价证券、贵重物品,不在行李中夹带;
</p>
<p>
7、在旅游活动中或者在解决纠纷时,应采取措施防止损失扩大,不损害当地居民的合法权益;不干扰他人的旅游活 动;不损害旅游经营者和旅游从业人员的合法权益,不采取拒绝上、下机(车、船)、拖延行程或者脱团等不当行为;
</p>
<p>
8、自行安排活动期间,应当在自己能够控制风险的范围内选择活动项目,遵守旅游活动中的安全警示规定,并对自己 的安全负责。
</p>
<h3><p
class=
"
z
hangTitle"
>
第四章
合同的变更与转让
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第四章
合同的变更与转让
</p></h3>
<h3><p>
第九条
合同的变更
</p></h3>
<p>
1、旅行社与旅游者双方协商一致,可以变更本合同约定的内容,但应当以书面形式由双方签字确认。由此增加的旅游 费用及给对方造成的损失,由变更提出方承担;由此减少的旅游费用,旅行社应当退还旅游者。
</p>
<p>
2、行程开始前遇到不可抗力或者旅行社、履行辅助人已尽合理注意义务仍不能避免的事件的,双方经协商可以取消行 程或者延期出行。取消行程的,按照本合同第十四条处理;延期出行的,增加的费用由旅游者承担,减少的费用退还旅游 者。
</p>
...
...
@@ -882,7 +876,7 @@
<p>
当旅行社组团未达到约定的成团人数不能成团时,旅游者可以与旅行社就如下安排在本合同第二十三条中做出约定。
</p>
<p>
1、转团:旅行社可以在保证所承诺的服务内容和标准不降低的前提下,经事先征得旅游者书面同意,委托其他旅行社 履行合同,并就受委托出团的旅行社违反本合同约定的行为先行承担责任,再行追偿。旅游者和受委托出团的旅行社另行 签订合同的,本合同的权利义务终止。
</p>
<p>
2、延期出团和改变线路出团:旅行社经征得旅游者书面同意,可以延期出团或者改变其他线路出团,因此增加的费用 由旅游者承担,减少的费用旅行社予以退还。需要时可以重新签订旅游合同。
</p>
<h3><p
class=
"
z
hangTitle"
>
第五章
合同的解除
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第五章
合同的解除
</p></h3>
<h3><p>
第十二条
旅行社解除合同
</p></h3>
<p>
1、未达到约定的成团人数不能成团时,旅行社解除合同的,应当采取书面等有效形式。旅行社在行程开始前7日(按 照出发日减去解除合同通知到达日的自然日之差计算,下同)以上(含第7日,下同)提出解除合同的,不承担违约责任, 旅行社向旅游者退还已收取的全部旅游费用;旅行社在行程开始前7日以内(不含第7日,下同)提出解除合同的,除向旅 游者退还已收取的全部旅游费用外,还应当按本合同第十七条第1款的约定,承担相应的违约责任。
</p>
<p>
2、旅游者有下列情形之一的,旅行社可以解除合同:
</p>
...
...
@@ -910,7 +904,7 @@
<p>
解除合同的,旅行社扣除必要的费用后,应当在解除合同通知到达日起5个工作日内为旅游者办结退款手续。
</p>
<h3><p
class=
"toTopDistance"
>
第十六条
旅行社协助旅游者返程及费用承担
</p></h3>
<p>
旅游行程中解除合同的,旅行社应协助旅游者返回出发地或者旅游者指定的合理地点。因旅行社或者履行辅助人的原 因导致合同解除的,返程费用由旅行社承担;行程中按照本合同第十二条第2款,第十三条第2款约定解除合同的,返程费 用由旅游者承担;按照本合同第十四条约定解除合同的,返程费用由双方分担。
</p>
<h3><p
class=
"
z
hangTitle"
>
第六章
违约责任
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第六章
违约责任
</p></h3>
<h3><p>
第十七条
旅行社的违约责任
</p></h3>
<p>
1、旅行社在行程开始前7日以内提出解除合同的,或者旅游者在行程开始前7日以内收到旅行社不能成团通知,不同意 转团、延期出行和改签线路解除合同的,旅行社向旅游者退还已收取的全部旅游费用,并按下列标准向旅游者支付违约 金:
</p>
<p>
行程开始前6日至4日,支付旅游费用总额10% 的违约金;
</p>
...
...
@@ -936,7 +930,7 @@
<p>
2、旅游者在自行安排活动期间人身、财产权益受到损害的,旅行社在事前已尽到必要警示说明义务且事后已尽到必要 救助义务的,旅行社不承担赔偿责任。
</p>
<p>
3、由于第三方侵害等不可归责于旅行社的原因导致旅游者人身、财产权益受到损害的,旅行社不承担赔偿责任。但因 旅行社不履行协助义务致使旅游者人身、财产权益损失扩大的,旅行社应当就扩大的损失承担赔偿责任。
</p>
<p>
4、由于公共交通经营者的原因造成旅游者人身损害、财产损失依法应承担责任的,旅行社应当协助旅游者向公共交通 经营者索赔。
</p>
<h3><p
class=
"
z
hangTitle"
>
第七章
协议条款
</p></h3>
<h3><p
class=
"
TC_Z
hangTitle"
>
第七章
协议条款
</p></h3>
<h3><p>
第二十条
线路行程时间
</p></h3>
<p>
出发时间
<font>
{{
getDate
(
CtObj
.
C_StartDate
)
}}
</font>
...
...
@@ -1294,7 +1288,7 @@
</div>
</
template
>
<
template
v-if=
"CtObj.CType==3"
>
<div
class=
"
dic
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<div
class=
"
TCdiv
_content"
:class=
"dialogVisible?'CisHideen':''"
>
<!-- 签字 -->
<div
class=
"signSpan"
>
<div
@
click=
"dialogVisible=true"
:class=
"dialogVisible?'CisHideen':''"
class=
"sign"
>
...
...
@@ -1616,14 +1610,14 @@
</div>
<!--游客名单-->
<div
v-show=
"ActiveTab==5"
class=
"item_content"
>
<h3>
游客名单
</h3>
<table
class=
"ZTable"
>
<h3
style=
"font-size:2rem;margin:1rem;"
>
游客名单
</h3>
<table
class=
"ZTable
TouristTable"
style=
"width:100%;font-size:1.8rem;
"
>
<tbody>
<tr>
<td
width=
"
10
%"
>
序号
</td>
<td
width=
"1
5
%"
>
姓名
</td>
<td
width=
"
8
%"
>
序号
</td>
<td
width=
"1
0
%"
>
姓名
</td>
<td
width=
"10%"
>
性别
</td>
<td
width=
"1
0
%"
>
证件类型
</td>
<td
width=
"1
2
%"
>
证件类型
</td>
<td
width=
"20%"
>
证件号码
</td>
<td
width=
"20%"
>
联系方式
</td>
<td
width=
"15%"
>
身体状况
</td>
...
...
@@ -1654,16 +1648,16 @@
</div>
<!-- 团队行程 -->
<div
v-show=
"ActiveTab==6"
class=
"item_content"
>
<h3>
团队行程
</h3>
<table
class=
"ZTable"
>
<h3
style=
"font-size:2rem;margin:1rem;"
>
团队行程
</h3>
<table
class=
"ZTable"
style=
"width:100%;font-size:1.8rem;"
>
<tbody>
<tr>
<td
width=
"1
0
%"
>
团号
</td>
<td
width=
"
36
%"
><span>
{{CtObj.C_TCNUM}}
</span></td>
<td
width=
"1
5
%"
>
团号
</td>
<td
width=
"
25
%"
><span>
{{CtObj.C_TCNUM}}
</span></td>
<td
width=
"12%"
>
出团日期
</td>
<td
width=
"1
5%"
><span>
{{CtObj.C_StartDate
}}
</span></td>
<td
width=
"1
8%"
><span>
{{getDate(CtObj.C_StartDate)
}}
</span></td>
<td
width=
"12%"
>
返回日期
</td>
<td
width=
"15%"
><span>
{{
CtObj.C_EndDate
}}
</span></td>
<td
width=
"15%"
><span>
{{
getDate(CtObj.C_EndDate)
}}
</span></td>
</tr>
<tr>
<td>
线路名称
</td>
...
...
@@ -1705,7 +1699,7 @@
<td>
{{item.TouristsSignAgree}}
</td>
</tr>
</table>
<div
style=
"font-size:1.
5rem
;"
>
<div
style=
"font-size:1.
8rem;margin:1rem 0
;"
>
旅行社经办人签名:
<font>
{{CtObj.Tourists_Name}}
</font>
</div>
</div>
...
...
@@ -1754,7 +1748,7 @@
<p>
旅行社业务经营许可证编号:
<font>
{{dataList.businessCertificate}}
</font>
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第一章
术语和定义
</p>
<p
class=
"
TC_Z
hangTitle"
>
第一章
术语和定义
</p>
</h3>
<h3>
<p>
第一条
本合同术语和定义
</p>
...
...
@@ -1804,7 +1798,7 @@
包括乘坐飞机(车、船)等交通工具的费用(含预订金)、旅游签证/签注费用、饭店住宿费用(含预订金)、旅游观光汽车的人均车租等。
</p>
<p>
16.公共交通经营者,指航空、铁路、航运客轮、城市公交、地铁等公共交通工具经营者。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第二章
合同的订立
</p>
<p
class=
"
TC_Z
hangTitle"
>
第二章
合同的订立
</p>
</h3>
<h3>
<p>
第二条
旅游行程单
</p>
...
...
@@ -1831,7 +1825,7 @@
</h3>
<p>
出境社的旅游广告及宣传品应当遵循诚实信用的原则,其内容符合《中华人民共和国合同法》要约规定的,视为本合同的组成部分,对出境社和旅游者双方具有约束力。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第三章
合同双方的权利义务
</p>
<p
class=
"
TC_Z
hangTitle"
>
第三章
合同双方的权利义务
</p>
</h3>
<h3>
<p>
第五条
出境社的权利
</p>
...
...
@@ -1893,7 +1887,7 @@
</p>
<p>
10.在自行安排活动期间,应当在自己能够控制风险的范围内选择活动项目,遵守旅游活动中的安全警示规定,对自己的安全负责。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第四章
合同的变更与转让
</p>
<p
class=
"
TC_Z
hangTitle"
>
第四章
合同的变更与转让
</p>
</h3>
<h3>
<p>
第九条
合同的变更
</p>
...
...
@@ -1920,7 +1914,7 @@
</p>
<p>
2.延期出团或者改签线路出团:出境社经征得旅游者书面同意,可以延期出团或者改签其他线路出团,因此增加的费用由旅游者承担,减少的费用出境社予以退还。需要时可以重新签订旅游合同。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第五章
合同的解除
</p>
<p
class=
"
TC_Z
hangTitle"
>
第五章
合同的解除
</p>
</h3>
<h3>
<p>
第十二条
出境社解除合同
</p>
...
...
@@ -1972,7 +1966,7 @@
旅游行程中解除合同的,出境社应协助旅游者返回出发地或者旅游者指定的合理地点。因旅行社或者履行辅助人的原因导致合同解除的,返程费用由出境社承担;行程中按照本合同第十二条第2款,第十三条第2款约定解除合同的,返程费用由旅游者承担;按照本合同第十四条约定解除合同的,返程费用由双方分担。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第六章
违约责任
</p>
<p
class=
"
TC_Z
hangTitle"
>
第六章
违约责任
</p>
</h3>
<h3>
<p>
第十七条
出境社的违约责任
</p>
...
...
@@ -2018,7 +2012,7 @@
<p>
4.由于第三方侵害等不可归责于出境社的原因导致旅游者人身、财产权益受到损害的,出境社不承担赔偿责任。但因出境社不履行协助义务致使旅游者人身、财产权益损失扩大的,应当就扩大的损失承担赔偿责任。
</p>
<p>
5.由于公共交通经营者的原因造成旅游者人身损害、财产损失依法应承担责任的,出境社应当协助旅游者向公共交通经营者索赔。
</p>
<h3>
<p
class=
"
z
hangTitle"
>
第七章
协议条款
</p>
<p
class=
"
TC_Z
hangTitle"
>
第七章
协议条款
</p>
</h3>
<h3>
<p>
第二十条
线路行程时间
</p>
...
...
@@ -3279,6 +3273,7 @@
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dialogVisible
=
false
;
this
.
getList
();
this
.
handelClearEl
();
}
},
err
=>
{}
...
...
src/components/administrative/ContractManage.vue
View file @
dbdfde7e
...
...
@@ -193,7 +193,7 @@
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"
el-icon-close"
circle
@
click=
"ViewContract(item)
"
></el-button>
<el-button
type=
"danger"
icon=
"
iconfont icon-chakan"
circle
@
click=
"ViewContract(item)"
style=
"padding:4px;
"
></el-button>
</el-tooltip>
</td>
</tr>
...
...
src/components/administrative/ElectronicAudit.vue
View file @
dbdfde7e
...
...
@@ -2,115 +2,329 @@
.ElectronicAudit
.icon-shenhebohui
{
color
:
#fff
;
}
.ContractManage
.query-box
.el-button--primary
{
background-color
:
#fff
!important
;
color
:
#e95252
!important
;
border-color
:
#e95252
!important
;
}
.ContractManage
.query-box
.el-button--primary
:focus
,
.query-box
.el-button--primary
:hover
{
background-color
:
#fff
!important
;
color
:
#e95252
!important
;
border-color
:
#e95252
!important
;
}
.ContractManage
.query-box
.el-button
{
border-radius
:
16px
;
height
:
30px
;
position
:
relative
;
top
:
5px
;
}
.ContractManage
.query-box
.el-button
i
{
color
:
#e95252
;
}
.ContractManage
.query-box
.el-button
span
{
position
:
relative
;
top
:
-3px
;
}
.ContractManage
.el-button
+
.el-button
{
margin-left
:
0
!important
;
}
.newContract
.el-tabs--card
>
.el-tabs__header
.el-tabs__item.is-active
{
border-bottom-color
:
#f5f5f5
;
}
</
style
>
<
template
>
<div
class=
"flexOne ElectronicAudit"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
合同编号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.contractNum"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
产品名称
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.productName"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
订单号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.orderID"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
团号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.tcid"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
状态
</em>
<el-select
v-model=
'msg.auditContract'
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
'不限'
value=
''
></el-option>
<el-option
label=
'驳回'
:value=
'3'
></el-option>
<el-option
label=
'待审核'
:value=
'1'
></el-option>
<el-option
label=
'审核通过'
:value=
'2'
></el-option>
</el-select>
</span>
</li>
<li
style=
"display:none;"
>
<span>
<em>
日期
</em>
<el-date-picker
v-model=
'msg.startDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateBefore"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.returnDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateAfter"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"getList()"
/>
</li>
</ul>
</div>
<div
class=
"commonContent"
v-loading=
"loading"
>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
合同编号
</th>
<th>
订单号
</th>
<th>
团号
</th>
<th>
产品名称
</th>
<th>
出发日期
</th>
<th>
返回日期
</th>
<th>
状态
</th>
<th
width=
"200"
>
操作
</th>
</tr>
<tr
v-for=
"item in dataList"
>
<td>
{{
item
.
contractNum
}}
</td>
<td>
{{
item
.
orderId
}}
</td>
<td>
{{
item
.
tcid
}}
</td>
<td>
{{
item
.
productName
}}
</td>
<td>
<template
v-if=
"item.startDate!=null"
>
{{
getDate
(
item
.
startDate
)
}}
</
template
>
</td>
<td>
<
template
v-if=
"item.returnDate!=null"
>
{{
getDate
(
item
.
returnDate
)
}}
</
template
>
</td>
<td>
<span
v-if=
"item.auditContract==3"
style=
"color:red;"
>
已驳回
</span>
<span
v-if=
"item.auditContract==1"
style=
"color:blue;"
>
待审核
</span>
<span
v-if=
"item.auditContract==2"
style=
"color:green;"
>
审核通过
</span>
</td>
<td>
<el-row>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"审核通过"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"iconfont icon-shenpi"
@
click=
"AuditElec(item,2)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"驳回"
placement=
"top-start"
>
<el-button
type=
"danger"
v-if=
"item.auditContract!=3"
icon=
"iconfont icon-shenhebohui"
@
click=
"AuditElec(item,3)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"iconfont icon-chakan"
@
click=
"goToDetail(item)"
circle
></el-button>
</el-tooltip>
</el-row>
</td>
</tr>
</table>
<div
class=
"noData"
v-show=
"dataList.length<1"
>
<i
class=
"iconfont icon-kong"
style=
"font-size:100px;"
></i>
<p>
{{$t("active.ld_noData")}}
</p>
</div>
</div>
</div>
<div
class=
"flexOne newContract"
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"getSwitch"
>
<el-tab-pane
label=
"出境游合同"
name=
"1"
></el-tab-pane>
<el-tab-pane
label=
"其他合同"
name=
"2"
></el-tab-pane>
</el-tabs>
<template
v-if=
"activeName==1"
>
<div
class=
"ElectronicAudit"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
合同编号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.contractNum"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
产品名称
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.productName"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
订单号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.orderID"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
团号
</em>
<el-input
:placeholder=
"$t('system.ph_in')"
v-model=
"msg.tcid"
@
keyup
.
native
.
enter=
"getList"
class=
"w210"
></el-input>
</span>
</li>
<li>
<span>
<em>
状态
</em>
<el-select
v-model=
'msg.auditContract'
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
'不限'
value=
''
></el-option>
<el-option
label=
'驳回'
:value=
'3'
></el-option>
<el-option
label=
'待审核'
:value=
'1'
></el-option>
<el-option
label=
'审核通过'
:value=
'2'
></el-option>
</el-select>
</span>
</li>
<li
style=
"display:none;"
>
<span>
<em>
日期
</em>
<el-date-picker
v-model=
'msg.startDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateBefore"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.returnDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateAfter"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"getList()"
/>
</li>
</ul>
</div>
<div
class=
"commonContent"
v-loading=
"loadingOut"
>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
合同编号
</th>
<th>
订单号
</th>
<th>
团号
</th>
<th>
产品名称
</th>
<th>
出发日期
</th>
<th>
返回日期
</th>
<th>
状态
</th>
<th
width=
"200"
>
操作
</th>
</tr>
<tr
v-for=
"item in dataListOut"
>
<td>
{{
item
.
contractNum
}}
</td>
<td>
{{
item
.
orderId
}}
</td>
<td>
{{
item
.
tcid
}}
</td>
<td>
{{
item
.
productName
}}
</td>
<td>
<template
v-if=
"item.startDate!=null"
>
{{
getDate
(
item
.
startDate
)
}}
</
template
>
</td>
<td>
<
template
v-if=
"item.returnDate!=null"
>
{{
getDate
(
item
.
returnDate
)
}}
</
template
>
</td>
<td>
<span
v-if=
"item.auditContract==3"
style=
"color:red;"
>
已驳回
</span>
<span
v-if=
"item.auditContract==1"
style=
"color:blue;"
>
待审核
</span>
<span
v-if=
"item.auditContract==2"
style=
"color:green;"
>
审核通过
</span>
</td>
<td>
<el-row>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"审核通过"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"iconfont icon-shenpi"
@
click=
"AuditElec(item,2)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"驳回"
placement=
"top-start"
>
<el-button
type=
"danger"
v-if=
"item.auditContract!=3"
icon=
"iconfont icon-shenhebohui"
@
click=
"AuditElec(item,3)"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"iconfont icon-chakan"
@
click=
"goToDetail(item)"
circle
></el-button>
</el-tooltip>
</el-row>
</td>
</tr>
</table>
<div
class=
"noData"
v-show=
"dataListOut.length<1"
>
<i
class=
"iconfont icon-kong"
style=
"font-size:100px;"
></i>
<p>
{{$t("active.ld_noData")}}
</p>
</div>
</div>
</div>
</template>
<
template
v-else
>
<div
class=
"ContractManage"
>
<div
class=
"query-box"
>
<ul>
<li>
<span><em>
合同编号
</em>
<el-input
class=
"w210"
v-model=
"msg.T_ContractNum"
placeholder=
"请输入合同编号"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
合同类型
</em>
<el-select
v-model=
"msg.CType"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"请选择"
:value=
"0"
:key=
"0"
>
</el-option>
<el-option
label=
"单向委托合同"
:value=
"1"
:key=
"1"
>
</el-option>
<el-option
label=
"境内旅游合同"
:value=
"2"
:key=
"2"
>
</el-option>
<el-option
label=
"一日游合同"
:value=
"3"
:key=
"3"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>
甲方名称
</em>
<el-input
class=
"w210"
v-model=
"msg.Tourists_Name"
placeholder=
"请输入客户名称"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
客户电话
</em>
<el-input
class=
"w210"
v-model=
"msg.Tourists_Tel"
placeholder=
"请输入客户电话"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
团号
</em>
<el-input
class=
"w210"
v-model=
"msg.C_TCNUM"
placeholder=
"请输入团号"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
线路名称
</em>
<el-input
class=
"w210"
v-model=
"msg.C_ProductName"
placeholder=
"请输入线路名称"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
经办人
</em>
<el-input
class=
"w210"
v-model=
"msg.TravelAgency_DealMan"
placeholder=
"请输入经办人"
@
keyup
.
enter
.
native=
"getList"
>
</el-input>
</span>
</li>
<li>
<span><em>
合同状态
</em>
<el-select
v-model=
"msg.Status"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"请选择"
:value=
"-1"
:key=
"-1"
>
</el-option>
<el-option
label=
"草稿"
:value=
"0"
:key=
"0"
>
</el-option>
<el-option
label=
"提交审核"
:value=
"1"
:key=
"1"
>
</el-option>
<el-option
label=
"审核通过"
:value=
"2"
:key=
"2"
>
</el-option>
<el-option
label=
"驳回"
:value=
"3"
:key=
"3"
>
</el-option>
<el-option
label=
"取消"
:value=
"4"
:key=
"4"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>
{{
$t
(
"sm.Date"
)
}}
</em>
<el-date-picker
v-model=
"msg.StartDate"
class=
"w135"
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateBefore2"
></el-date-picker>
-
<el-date-picker
v-model=
"msg.EndDate"
class=
"w135"
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateAfter2"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"
getList();
resetPageIndex();
"
/>
<el-dropdown
@
command=
"getImport"
>
<el-button
type=
"primary"
@
click=
"goContract('onedayTripContract', 0, '一日游合同')"
>
一日游合同
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"1"
>
境内旅游合同
</el-dropdown-item>
<el-dropdown-item
command=
"2"
>
单项委托合同
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</li>
</ul>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th
width=
"50"
>
编号
</th>
<th
width=
"80"
>
合同类型
</th>
<th
width=
"100"
>
合同编号
</th>
<th
width=
"100"
>
甲方名称
</th>
<th
width=
"120"
>
乙方名称
</th>
<th
width=
"100"
>
经办人
</th>
<th
width=
"100"
>
团号
</th>
<th
width=
"150"
>
产品名称
</th>
<th
width=
"100"
>
合同状态
</th>
<th
width=
"100"
>
创建人
</th>
<th
width=
"120"
>
创建时间
</th>
<th
width=
"130"
>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in dataList"
:key=
"index"
>
<td>
{{
item
.
ID
}}
</td>
<td>
<template
v-if=
"item.CType == 2"
>
境内旅游合同
</
template
>
<
template
v-else-if=
"item.CType == 3"
>
一日游合同
</
template
>
<
template
v-else-if=
"item.CType == 1"
>
单向委托合同
</
template
>
</td>
<td>
{{ item.T_ContractNum }}
</td>
<td>
{{ item.Tourists_Name }}
</td>
<td>
{{ item.TravelAgency_Name }}
</td>
<td>
{{ item.TravelAgency_DealMan }}
</td>
<td>
{{ item.C_TCNUM }}
</td>
<td>
{{ item.C_ProductName }}
</td>
<td>
{{ item.StatusStr }}
</td>
<td>
{{ item.CreateByName }}
</td>
<td>
{{ item.CreateTimeStr }}
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
v-if=
"item.Status==0||item.Status==3"
>
<
template
v-if=
"item.CType == 3"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"goContract('onedayTripContract', item.ID, '一日游合同')"
></el-button>
</
template
>
<
template
v-else-if=
"item.CType == 2"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"
goContract('DomesticTravelcontract', item.ID, '境内旅游合同')
"
></el-button>
</
template
>
<
template
v-else
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"goContract('SingleContract', item.ID, '单项委托合同')"
></el-button>
</
template
>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"复制"
placement=
"top-start"
>
<el-button
type=
"warning"
icon=
"iconfont icon-copy"
circle
@
click=
"CopyContract(item)"
style=
"padding:4px;"
>
</el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下载"
placement=
"top-start"
v-if=
"item.Status==2"
>
<el-button
type=
"success"
icon=
"el-icon-download"
circle
@
click=
"DownLoadContract(item)"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"提交审核"
placement=
"top-start"
v-if=
"item.Status==0"
>
<el-button
type=
"info"
icon=
"el-icon-upload2"
circle
@
click=
"SubmitContract(item)"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
v-if=
"item.Status==2"
effect=
"dark"
content=
"复制链接发送给客户"
>
<el-button
type=
"info"
icon=
"iconfont icon-copy-l"
circle
@
click=
"CopyUrl(item)"
style=
"padding:4px;background-color:#9266f9;border-color:#9266f9;"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"取消"
placement=
"top-start"
v-if=
"item.Status==0"
>
<el-button
type=
"danger"
icon=
"el-icon-close"
circle
@
click=
"DeleteContract(item)"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"iconfont icon-chakan"
circle
@
click=
"ViewContract(item)"
style=
"padding:4px;"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
>
</el-pagination>
</div>
</template>
</div>
</template>
<
script
>
...
...
@@ -118,7 +332,7 @@ import moment from 'moment'
export
default
{
data
()
{
return
{
msg
:
{
msg
Out
:
{
contractNum
:
''
,
productName
:
''
,
orderID
:
''
,
...
...
@@ -127,8 +341,8 @@ export default {
returnDate
:
''
,
auditContract
:
''
},
dataList
:[],
loading
:
false
,
dataList
Out
:[],
loading
Out
:
false
,
pickerBeginDateBefore
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
returnDate
==
null
)
{
...
...
@@ -144,10 +358,57 @@ export default {
let
startTime
=
new
Date
(
this
.
msg
.
startDate
)
return
startTime
.
getTime
()
>=
time
.
getTime
()
}
},
//切换出境游合同
activeName
:
'1'
,
//ContractMange参数
total
:
0
,
currentPage
:
1
,
dataList
:
[],
loading
:
false
,
//页面加载
msg
:
{
T_ContractNum
:
""
,
//合同编号
CType
:
0
,
//合同类型
Tourists_Name
:
""
,
//客户名称
Tourists_Tel
:
""
,
//客户电话
StartDate
:
""
,
//开始日期
EndDate
:
""
,
//结束日期
Status
:
-
1
,
//合同状态
pageIndex
:
1
,
pageSize
:
15
,
TravelAgency_DealMan
:
""
,
//经办人
C_TCNUM
:
""
,
//团号
C_ProductName
:
""
,
//线路名称
},
pickerBeginDateBefore2
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
EndDate
==
null
)
{
return
false
;
}
else
{
let
endTime
=
new
Date
(
this
.
msg
.
EndDate
);
return
endTime
.
getTime
()
<
time
.
getTime
();
}
}
},
pickerBeginDateAfter2
:
{
disabledDate
:
time
=>
{
let
startTime
=
new
Date
(
this
.
msg
.
StartDate
);
return
startTime
.
getTime
()
>=
time
.
getTime
();
}
}
};
},
methods
:
{
//切换
getSwitch
(){
if
(
this
.
active
==
1
){
this
.
getListOutTract
();
}
else
{
this
.
getList
();
}
},
dateChange
(
val
){
if
(
val
){
this
.
msg
.
startDate
=
val
[
0
];
...
...
@@ -166,12 +427,12 @@ export default {
}
});
},
getList
()
{
this
.
loading
=
true
;
this
.
apiJavaPost
(
"/api/contract/auditContract"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
getList
OutTract
()
{
this
.
loading
Out
=
true
;
this
.
apiJavaPost
(
"/api/contract/auditContract"
,
this
.
msg
Out
,
res
=>
{
this
.
loading
Out
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
dataList
=
res
.
data
.
data
;
this
.
dataList
Out
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
...
...
@@ -191,10 +452,196 @@ export default {
},
getDate
(
date
)
{
return
moment
(
date
).
format
(
"YYYY-MM-DD"
);
}
},
//copy过来的页面方法
//提交并盖章
SubmitContract
(
item
)
{
var
that
=
this
;
this
.
Confirm
(
"是否提交并盖章此合同?"
,
function
()
{
that
.
apipost
(
"travelcontract_post_UpdateTravelContractStatusService"
,
{
ID
:
item
.
ID
,
Status
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
});
},
//复制合同
CopyContract
(
item
)
{
//获取列表数据
var
that
=
this
;
this
.
Confirm
(
"是否复制此合同?"
,
function
()
{
that
.
apipost
(
"travelcontract_post_CopyTravelContractService"
,
{
ID
:
item
.
ID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
});
},
//复制URL
CopyUrl
(
item
){
var
oInput
=
document
.
createElement
(
'input'
);
oInput
.
value
=
item
.
Url
;
document
.
body
.
appendChild
(
oInput
);
oInput
.
select
();
// 选择对象
document
.
execCommand
(
"Copy"
);
// 执行浏览器复制命令
oInput
.
className
=
'oInput'
;
oInput
.
style
.
display
=
'none'
;
this
.
Info
(
"复制成功!"
);
},
//跳转
getImport
(
command
)
{
if
(
command
==
1
){
this
.
goContract
(
'DomesticTravelcontract'
,
0
,
'境内旅游合同'
);
}
else
if
(
command
==
2
){
this
.
goContract
(
'SingleContract'
,
0
,
'单项委托合同'
);
}
},
//下载合同
DownLoadContract
(
item
)
{
let
msg
=
{
ID
:
item
.
ID
,
CType
:
item
.
CType
};
let
urlObj
=
this
.
domainManager
();
this
.
loading
=
true
;
this
.
$http
({
headers
:
{
'Content-Type'
:
'application/json'
},
method
:
'post'
,
url
:
urlObj
.
DomainUrl
+
'/api/file/GetDownLoadTripContract'
,
data
:
{
"msg"
:
msg
}
}).
then
(
res
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
let
sign
=
item
.
T_ContractNum
;
const
a
=
document
.
createElement
(
'a'
);
a
.
setAttribute
(
'download'
,
''
);
a
.
setAttribute
(
'href'
,
urlObj
.
DomainUrl
+
'/api/file/DownloadFileForPdf?fileName='
+
sign
+
'.pdf&&fPath='
+
res
.
data
.
data
);
a
.
click
();
}
else
{
this
.
Error
(
'PDF获取失败'
);
}
}).
catch
(
err
=>
{
});
},
//删除合同
DeleteContract
(
item
)
{
var
that
=
this
;
this
.
Confirm
(
"是否取消此合同?"
,
function
()
{
var
msg
=
{
ID
:
item
.
ID
,
Status
:
4
};
that
.
apipost
(
"travelcontract_post_UpdateTravelContractStatusService"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
"取消成功!"
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
null
);
});
},
getList
()
{
this
.
loading
=
true
;
//获取列表数据
this
.
apipost
(
"travelcontract_get_GetPageListService"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
dataList
.
forEach
(
x
=>
{
let
Url
=
""
;
if
(
this
.
isOnline
()){
Url
=
window
.
location
.
hostname
+
'/#/TravelContractConfirm?ContractId='
+
x
.
ID
;
}
else
{
Url
=
window
.
location
.
hostname
+
":8080/"
+
'#/TravelContractConfirm?ContractId='
+
x
.
ID
;
}
x
.
Url
=
Url
;
})
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
ViewContract
(
item
)
{
this
.
$router
.
push
({
name
:
"TravelContractView"
,
query
:
{
id
:
item
.
ID
,
blank
:
"y"
,
tab
:
'预览合同'
}
});
},
goContract
(
path
,
Id
,
title
)
{
var
nId
=
0
;
if
(
Id
&&
Id
>
0
)
{
nId
=
Id
;
}
this
.
$router
.
push
({
name
:
path
,
query
:
{
id
:
nId
,
blank
:
"y"
,
tab
:
title
}
});
}
},
mounted
()
{
this
.
getList
();
this
.
getList
OutTract
();
}
};
</
script
>
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