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
0f442408
Commit
0f442408
authored
Dec 10, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
ae091b78
c85db5ae
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
3119 additions
and
144 deletions
+3119
-144
DomesticTravelcontract.vue
src/components/DomesticTravelcontract.vue
+1270
-0
planeTicketInquiry.vue
src/components/SalesModule/planeTicketInquiry.vue
+5
-0
planeTourOrder.vue
src/components/SalesModule/planeTourOrder.vue
+6
-5
busHandBook.vue
src/components/busManagement/busHandBook.vue
+236
-131
groundOperation.vue
src/components/dmc/manager/groundOperation.vue
+2
-0
groundOperation2.vue
src/components/dmc/manager/groundOperation2.vue
+7
-8
onedayTripContract.vue
src/components/onedayTripContract.vue
+1577
-0
config.js
src/router/config.js
+16
-0
No files found.
src/components/DomesticTravelcontract.vue
0 → 100644
View file @
0f442408
<
style
>
*
{
margin
:
0
;
padding
:
0
;
}
.TC-MainContent
{
min-height
:
650px
;
background
:
url(../assets/img/bodyBg.png)
;
padding-top
:
10px
;
font
:
normal
13px
'Microsoft Yahei'
;
color
:
#555
;
height
:
auto
!important
;
}
.TC-MainContent
.fixedMenu
{
position
:
fixed
;
left
:
20px
;
top
:
75px
;
margin
:
0
;
padding-top
:
10px
;
}
.TC-MainContent
.fixedMenu
li
{
padding
:
5px
15px
;
position
:
relative
;
border-right
:
2px
solid
#e2e2e2
;
cursor
:
pointer
;
list-style
:
none
;
font-size
:
13px
;
}
.TC-MainContent
.fixedMenu
li
:after
{
content
:
''
;
display
:
block
;
width
:
0
;
height
:
0
;
border
:
5px
solid
transparent
;
border-left-color
:
#e2e2e2
;
position
:
absolute
;
right
:
-12px
;
top
:
11px
;
}
.TC-MainContent
.contractTit
{
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
z-index
:
1000
;
padding
:
15px
20px
12px
;
line-height
:
30px
;
box-sizing
:
border-box
;
background
:
url(../assets/img/bodyBg.png)
;
font-size
:
18px
;
color
:
#555
;
}
.TC-MainContent
.contractTit
span
{
font-size
:
21px
;
font-weight
:
bold
;
}
.TC-MainContent
.block
{
border
:
1px
solid
#cdcdcd
;
background
:
#f9f9f9
;
position
:
relative
;
margin-bottom
:
20px
;
}
.TC-MainContent
.container-fluid
{
padding-right
:
20px
;
padding-left
:
20px
;
*
zoom
:
1
;
}
.TC-MainContent
.mtop15
{
margin-top
:
15px
;
}
.TC-MainContent
.blockTitle
{
border-bottom
:
1px
solid
#cdcdcd
;
background-color
:
#efefef
;
}
.TC-MainContent
.blockTitle
span
.icon
{
border-right
:
1px
solid
#CDCDCD
;
position
:
absolute
;
left
:
10px
;
height
:
40px
;
padding-right
:
10px
;
padding-top
:
8px
;
}
.TC-MainContent
.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
;
}
.TC-MainContent
.blockTitle
h2
{
font-size
:
15px
;
min-height
:
40px
;
margin
:
0
;
font-family
:
'Microsoft Yahei'
;
color
:
#5b5b5b
;
padding-right
:
15px
;
padding-left
:
48px
;
}
.TC-MainContent
.block
em
{
font-style
:
normal
;
}
.TC-MainContent
.createTableTitle
{
padding
:
10px
0
;
margin
:
5px
30px
0
;
border-bottom
:
1px
dashed
#ccc
;
font
:
normal
15px
'microsoft yahei'
;
}
.TC-MainContent
.createTable
{
background-color
:
#f9f9f9
;
width
:
100%
;
}
.TC-MainContent
.el-form-item
{
margin-bottom
:
10px
;
}
.TC-MainContent
.w300
{
width
:
300px
!important
;
}
.TC-MainContent
.w150
{
width
:
150px
!important
;
}
.TC-MainContent
.w138
{
width
:
138px
!important
;
}
.TC-MainContent
.w600
{
width
:
600px
!important
;
}
.TC-MainContent
.singeRowTable
{
width
:
100%
;
border-collapse
:
collapse
;}
.TC-MainContent
.singeRowTable
tr
th
,
.v-table-title-cell
{
background
:
#E6E6E6
;
height
:
40px
;
font-size
:
14px
;
color
:
#333
;}
.TC-MainContent
.singeRowTable
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;}
.TC-MainContent
.singeRowTable
tr
:nth-child
(
2n
+
1
)
{
background
:
#fafafa
;
}
.TC-MainContent
.singeRowTable
tr
:hover
{
background
:
#f2f2f2
;}
.TC-MainContent
.singeRowTable
tr
td
{
font-size
:
12px
;
border
:
1px
solid
#E5E5E5
;}
.TC-MainContent
.TC_NewAddBtn
{
background-color
:
#006dcc
;
width
:
83px
;
height
:
26px
;
color
:
#fff
;
border
:
none
;
margin-right
:
5px
;
cursor
:
pointer
;
}
.TC-MainContent
.singeRowTable
.el-button.is-circle
{
padding
:
5px
;
}
.TC-MainContent
.TcNewTable
td
{
padding
:
5px
;
}
.TC-MainContent
.fixedMenu
li
.active
{
background
:
#90b7ec
;
color
:
#fff
;
border-right-color
:
#5882bb
;
}
.TC-MainContent
.fixedMenu
li
.active
:after
{
border-left-color
:
#5882bb
;
}
.TC-MainContent
.pull-right
{
float
:
right
;
}
.TC-MainContent
.TC_disabled
{
color
:
#57a3f3
;
cursor
:
not-allowed
!important
;
}
.TC-MainContent
.TCbtn-info
{
color
:
#ffffff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#49afcd
;
background-image
:
-moz-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#5bc0de
),
to
(
#2f96b4
));
background-image
:
-webkit-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
-o-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
linear-gradient
(
to
bottom
,
#5bc0de
,
#2f96b4
);
background-repeat
:
repeat-x
;
border-color
:
#2f96b4
#2f96b4
#1f6377
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5bc0de'
,
endColorstr
=
'#ff2f96b4'
,
GradientType
=
0
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
padding
:
10px
19px
;
border
:
none
;
outline
:
none
;
cursor
:
pointer
;
}
.TC-MainContent
.btn-warning
{
color
:
#ffffff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#faa732
;
*
background-color
:
#f89406
;
background-image
:
-moz-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#fbb450
),
to
(
#f89406
));
background-image
:
-webkit-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
-o-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
linear-gradient
(
to
bottom
,
#fbb450
,
#f89406
);
background-repeat
:
repeat-x
;
border-color
:
#f89406
#f89406
#ad6704
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fffbb450'
,
endColorstr
=
'#fff89406'
,
GradientType
=
0
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
padding
:
10px
19px
;
outline
:
none
;
border
:
none
;
cursor
:
pointer
;
}
.TCbtn-info
:hover
,
.btn-warning
:hover
{
color
:
#ffffff
;
opacity
:
0.8
;
}
.TcTravel_Table
{
width
:
100%
;
border
:
none
;
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.TcTravel_Table
td
{
border
:
1px
solid
rgb
(
0
,
0
,
0
);
word-break
:
break-all
;
padding
:
5px
;
line-height
:
2
;
}
.TC_LASTTD
div
{
margin-bottom
:
10px
;
}
.feeJisuan
.el-form-item__label
{
margin-top
:
5px
;
}
</
style
>
<
template
>
<div
class=
"TC-MainContent"
>
<!-- 内容开始 -->
<ul
class=
"fixedMenu"
id=
"fixedMenu"
>
<li
v-for=
"(item,index) in menuArr"
:class=
"
{'active':index==ckedIndex}" @click="ckedIndex=index,goAnchor('#anchor-'+index)">
{{
item
}}
</li>
</ul>
<div
class=
"contractTit"
>
<span>
大陆居民境内旅游合同
<span
style=
"color:blue;font-size:14px;"
></span>
</span>
<div
class=
"pull-right"
>
<input
type=
"button"
v-if=
"CtObj.auditContract!=2"
class=
"btn-warning"
@
click=
"submitForm('CtObj')"
value=
"保存"
/>
</div>
</div>
<el-form
label-width=
"180px"
:model=
"CtObj"
:rules=
"rules"
ref=
"CtObj"
>
<div
class=
"container-fluid"
style=
"padding-top: 60px; padding-left: 220px;"
>
<div
class=
"block mtop15"
id=
"anchor-0"
ref=
"anchor0"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-dingdanguanli-"
></i>
</span>
<h2>
<em>
合同基本信息
</em>
</h2>
</div>
<div
class=
"createTableTitle"
>
旅游者代表信息
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"姓名"
prop=
"clientName"
>
<el-input
type=
"text"
v-model=
"CtObj.clientName"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"证件号码"
>
<el-input
type=
"text"
v-model=
"CtObj.clientIdcardnum"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"住所"
>
<el-input
type=
"text"
v-model=
"CtObj.clientAddress"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"联系电话"
prop=
"clientCall"
>
<el-input
type=
"text"
v-model=
"CtObj.clientCall"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮箱"
>
<el-input
type=
"text"
v-model=
"CtObj.clientEmail"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"传真"
>
<el-input
type=
"text"
v-model=
"CtObj.clientFax"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮编"
>
<el-input
type=
"text"
v-model=
"CtObj.clientPostCode"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
出境社信息
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"公司名称"
>
<el-input
type=
"text"
v-model=
"CtObj.company"
:disabled=
"true"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"经营许可证编号"
>
<el-input
type=
"text"
class=
"w300"
:disabled=
"true"
v-model=
"CtObj.businessCertificate"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"经办人"
prop=
"agentName"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.agentName"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"营业地址"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"联系电话"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyCall"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"传真"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyFax"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮编"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyPostCode"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"电子邮箱"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyEmail"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"签约地点"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.contractPlace"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-1"
ref=
"anchor1"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-renwuguanli"
></i>
</span>
<h2>
<em>
合同协议条款
</em>
</h2>
</div>
<div
class=
"createTableTitle"
>
线路行程时间
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"团号"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.tCNum"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"旅游产品名称"
prop=
"productName"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.productName"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"出发日期"
prop=
"startDate"
>
<el-date-picker
class=
"w300"
v-model=
"CtObj.startDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"返回日期"
prop=
"returnDate"
>
<el-date-picker
class=
"w300"
v-model=
"CtObj.returnDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"共"
prop=
"dayNum"
>
<el-input
type=
"text"
class=
"w300"
></el-input>
天
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"酒店住宿"
prop=
"nightNum"
>
<el-input
type=
"text"
class=
"w300"
></el-input>
晚
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
旅游费用及支付
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"成人"
prop=
"adultPrice"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.adultPrice"
></el-input>
元/人
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"儿童(不满14岁的)"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.childPrice"
></el-input>
元/人
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"导游服务费"
prop=
"servicePrice"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.servicePrice"
></el-input>
元/人
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"合计"
prop=
"orderPrice"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.orderPrice"
></el-input>
元
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"旅游费用支付日期"
prop=
"payDate"
>
<el-date-picker
class=
"w300"
v-model=
"CtObj.payDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"支付方式"
prop=
"payType"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w300'
v-model=
"CtObj.payType"
>
<el-option
label=
"现金"
:value=
'1'
></el-option>
<el-option
label=
"转账"
:value=
'2'
></el-option>
<el-option
label=
"支票"
:value=
'3'
></el-option>
</el-select>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
人身意外伤害保险
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"旅游者"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w300'
v-model=
"CtObj.insuranceOpinion"
>
<el-option
label=
"委托出境社购买"
:value=
'1'
></el-option>
<el-option
label=
"自行购买"
:value=
'2'
></el-option>
<el-option
label=
"放弃购买"
:value=
'3'
></el-option>
</el-select>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"保险产品名称"
prop=
"insuranceProduct"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.insuranceProduct"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
成团人数与不成团的约定
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"最低成团人数"
prop=
"minNumber"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.minNumber"
></el-input>
人
</el-form-item>
</td>
</tr>
<tr>
<td
style=
"padding:10px 0 20px 86px;"
>
如不能成团,旅游者是否同意按下列方式解决:
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"1、"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w150'
v-model=
"CtObj.insteadOpinion"
>
<el-option
label=
"同意"
:value=
'1'
></el-option>
<el-option
label=
"不同意"
:value=
'2'
></el-option>
</el-select>
出境社委托
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.insteadCompany"
></el-input>
出境社履行合同;
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"2、"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w150'
v-model=
"CtObj.delayOpinion"
>
<el-option
label=
"同意"
:value=
'1'
></el-option>
<el-option
label=
"不同意"
:value=
'2'
></el-option>
</el-select>
延期出团;
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"3、"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w150'
v-model=
"CtObj.changeOpinion"
>
<el-option
label=
"同意"
:value=
'1'
></el-option>
<el-option
label=
"不同意"
:value=
'2'
></el-option>
</el-select>
改签其他线路出团;
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"4、"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w150'
v-model=
"CtObj.terminateOpinion"
>
<el-option
label=
"同意"
:value=
'1'
></el-option>
<el-option
label=
"不同意"
:value=
'2'
></el-option>
</el-select>
解除合同。
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
拼团约定
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"旅游者"
>
<el-select
placeholder=
"请选择"
filterable
class=
'w150'
v-model=
"CtObj.carpoolOpinion"
>
<el-option
label=
"同意"
:value=
'1'
></el-option>
<el-option
label=
"不同意"
:value=
'2'
></el-option>
</el-select>
采用拼团方式拼至
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.carpoolCompany"
></el-input>
旅行社成团。
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
争议的解决方式
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<div
style=
"margin:20px 0 10px 50px"
>
本合同履行过程中发生争议,由双方协商解决;亦可向合同签订地的旅游质监执法机构、消费者协会等有关部门或者机构申请调解解决。
</div>
<el-form-item
label-width=
"0"
prop=
"settleDisputeMode"
style=
"margin-left:50px;"
>
<span
style=
"color:red;"
>
*
</span>
争议解决方式选择:协商或调解不成,按下列第
<el-select
placeholder=
"请选择"
filterable
class=
'w210'
v-model=
"CtObj.settleDisputeMode"
>
<el-option
label=
"1"
:value=
'1'
></el-option>
<el-option
label=
"2"
:value=
'2'
></el-option>
</el-select>
种方式解决
</el-form-item>
<div
style=
"margin:0 0 20px 50px;"
>
2、依法向人民法院起诉。
</div>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
合同效力
</div>
<table
class=
"createTable feeJisuan"
>
<tbody>
<tr>
<td
width=
'450'
>
<el-form-item
label=
"本合同一式"
prop=
"totalNumber"
>
<el-select
placeholder=
"请选择"
filterable
v-model=
"CtObj.totalNumber"
class=
'w210'
>
<el-option
label=
"壹"
:value=
'1'
></el-option>
<el-option
label=
"贰"
:value=
'2'
></el-option>
<el-option
label=
"叁"
:value=
'3'
></el-option>
<el-option
label=
"肆"
:value=
'4'
></el-option>
<el-option
label=
"伍"
:value=
'5'
></el-option>
<el-option
label=
"陆"
:value=
'6'
></el-option>
<el-option
label=
"柒"
:value=
'7'
></el-option>
<el-option
label=
"捌"
:value=
'8'
></el-option>
<el-option
label=
"玖"
:value=
'9'
></el-option>
<el-option
label=
"拾"
:value=
'10'
></el-option>
</el-select>
份
</el-form-item>
</td>
<td>
<el-form-item
label=
"双方各持"
prop=
"eachNumber"
label-width=
"120"
>
<el-select
placeholder=
"请选择"
filterable
v-model=
"CtObj.eachNumber"
class=
'w210'
>
<el-option
label=
"壹"
:value=
'1'
></el-option>
<el-option
label=
"贰"
:value=
'2'
></el-option>
<el-option
label=
"叁"
:value=
'3'
></el-option>
<el-option
label=
"肆"
:value=
'4'
></el-option>
<el-option
label=
"伍"
:value=
'5'
></el-option>
<el-option
label=
"陆"
:value=
'6'
></el-option>
<el-option
label=
"柒"
:value=
'7'
></el-option>
<el-option
label=
"捌"
:value=
'8'
></el-option>
<el-option
label=
"玖"
:value=
'9'
></el-option>
<el-option
label=
"拾"
:value=
'10'
></el-option>
</el-select>
份,具有同等法律效力,自双方当事人签字或者盖章之日起生效。
</el-form-item>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-2"
ref=
"anchor2"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-copy"
></i>
</span>
<h2>
<em>
其他约定事项
</em>
</h2>
</div>
<div
style=
"padding:10px;"
>
未尽事宜,经旅游者和出境社双方协商一致,可以列入补充条款。(如合同空间不够,可以另附纸张,由双方签字或者盖章确认。)
</div>
<el-input
type=
"textarea"
resize=
"none"
v-model=
"CtObj.otherMatter"
rows=
"13"
></el-input>
</div>
<div
class=
"block mtop15"
id=
"anchor-3"
ref=
"anchor3"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-Shape2"
></i>
</span>
<h2>
<em>
投诉联系
</em>
</h2>
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"旅行社监督、投诉电话"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.regulatorComplainCall"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w138"
></el-input>
省
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w138"
></el-input>
市旅游质监执法机构
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"投诉电话"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.companyComplainCall"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"电子邮箱"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.regulatorWebsite"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"地址"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.regulatorAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮编"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.regulatorPostCode"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-4"
ref=
"anchor4"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-Shape1"
></i>
</span>
<h2>
<em>
行程信息
</em>
</h2>
</div>
<div
style=
"padding:10px;background:#f9f9f9;color:red;"
>
《行程单》应当对如下内容作出明确的说明:
(1)旅游行程的出发地、途经地、目的地、结束地,线路行程时间(按自然日计算,含乘飞机、车、船等在途时间,不足24小时以一日计);
(2)旅游目的地地接社的名称、地址、联系人和联系电话;
(3)交通服务安排及其标准(明确交通工具及档次等级、出发时间以及是否需中转等信息);
(4)住宿服务安排及其标准(明确住宿饭店的名称、地址、档次等级及是否有空调、热水等相关服务设施);
(5)用餐(早餐和正餐)服务安排及其标准(明确用餐次数、地点、标准);
(6)出境社统一安排的游览项目的具体内容及时间(明确旅游线路内容包括景区点及游览项目名称、景区点停留的最少时间);
(7)自由活动的时间;
(8)行程安排的娱乐活动(明确娱乐活动的时间、地点和项目内容);
《行程单》用语须准确清晰,在表明服务标准用语中不应当出现“准×星级”、“豪华”、“仅供参考”、“以××为准”、“与××同级”等不确定用语。
</div>
<div>
123
</div>
<!--
<el-input
type=
"textarea"
rows=
"26"
resize=
"none"
v-model=
"CtObj.travelContent"
></el-input>
-->
</div>
<div
class=
"block mtop15"
id=
"anchor-5"
ref=
"anchor5"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-people"
></i>
</span>
<h2>
<em>
游客信息
</em>
</h2>
</div>
<table
class=
"singeRowTable TcNewTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
序号
</th>
<th>
姓名
</th>
<th>
性别
</th>
<th>
证件类型
</th>
<th>
护照号码
</th>
<th>
联系电话(手机)
</th>
<th>
身体状况
</th>
<th>
操作
</th>
</tr>
<tr>
<td>
1
</td>
<td><el-input
type=
"text"
></el-input></td>
<td>
<el-select>
<el-option
label=
"男"
:value=
"1"
></el-option>
<el-option
label=
"女"
:value=
"2"
></el-option>
</el-select>
</td>
<td>
<el-select>
<el-option
label=
"护照"
:value=
"1"
></el-option>
<el-option
label=
"港澳通行证"
:value=
"2"
></el-option>
<el-option
label=
"赴台证"
:value=
"3"
></el-option>
<el-option
label=
"身份证"
:value=
"4"
></el-option>
<el-option
label=
"其他"
:value=
"5"
></el-option>
</el-select>
</td>
<td><el-input
type=
"text"
></el-input></td>
<td><el-input
type=
"text"
></el-input></td>
<td><el-input
type=
"text"
placeholder=
"健康"
></el-input></td>
<td>
<!--
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
></el-button>
</el-tooltip>
-->
<el-tooltip
class=
"item"
effect=
"dark"
content=
"保存"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"iconfont icon-baocun"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
></el-button>
</el-tooltip>
</td>
</tr>
<tr>
<td
colspan=
"9"
style=
"text-align:right;"
>
<input
type=
"button"
class=
"TC_NewAddBtn"
value=
"+添加游客"
/>
</td>
</tr>
</tr>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-6"
ref=
"anchor6"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-bianji"
></i>
</span>
<h2>
<em>
自愿购物活动补充协议
</em>
</h2>
</div>
<table
class=
"singeRowTable TcNewTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tbody>
<tr>
<th
width=
"60"
>
序号
</th>
<th
width=
"10%"
>
具体时间
</th>
<th
width=
"15%"
>
地点
</th>
<th
width=
"12%"
>
购物场所名称
</th>
<th
width=
"12%"
>
主要商品信息
</th>
<th
width=
"12%"
>
最长停留时间(分钟)
</th>
<th
width=
"12%"
>
其他说明
</th>
<th
width=
"12%"
>
旅游者签名同意
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tr
v-for=
"(item,index) in VoluntaryArr"
>
<td>
{{
index
+
1
}}
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
specificTime
}}
</span>
<el-date-picker
v-else
v-model=
"item.specificTime"
class=
"w150"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
''
></el-date-picker>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
Address
}}
</span>
<el-input
type=
"text"
v-model=
"item.Address"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
shoppName
}}
</span>
<el-input
type=
"text"
v-model=
"item.shoppName"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
CommodityInformation
}}
</span>
<el-input
type=
"text"
v-model=
"item.CommodityInformation"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
stayTime
}}
</span>
<el-input
type=
"text"
v-model=
"item.stayTime"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
other
}}
</span>
<el-input
type=
"text"
v-model=
"item.other"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
travelSign
}}
</span>
<el-input
type=
"text"
v-model=
"item.travelSign"
v-else
></el-input>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
v-if=
"item.IsShow==0"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"item.IsShow=1"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"保存"
placement=
"top-start"
v-if=
"item.IsShow==1"
>
<el-button
type=
"primary"
icon=
"iconfont icon-baocun"
circle
@
click=
"item.IsShow=0"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"item.IsShow==0"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
@
click=
"delVoluntray(index)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
<tr>
<td
colspan=
"9"
style=
"text-align:right;"
>
<input
type=
"button"
class=
"TC_NewAddBtn"
@
click=
"addRecord()"
value=
"+添加记录"
/>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-7"
ref=
"anchor7"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-bianji"
></i>
</span>
<h2>
<em>
自愿付费项目补充协议
</em>
</h2>
</div>
<table
class=
"singeRowTable TcNewTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tbody>
<tr>
<th
width=
"60"
>
序号
</th>
<th
width=
"10%"
>
具体时间
</th>
<th
width=
"15%"
>
地点
</th>
<th
width=
"12%"
>
项目名称和内容
</th>
<th
width=
"12%"
>
费用(元)
</th>
<th
width=
"12%"
>
项目时长(分钟)
</th>
<th
width=
"12%"
>
其他说明
</th>
<th
width=
"12%"
>
旅游者签名同意
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tr
v-for=
"(item,index) in WillingPayArr"
>
<td>
{{
index
+
1
}}
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
specificTime
}}
</span>
<el-date-picker
v-else
v-model=
"item.specificTime"
class=
"w150"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
''
></el-date-picker>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
Address
}}
</span>
<el-input
type=
"text"
v-model=
"item.Address"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
programName
}}
</span>
<el-input
type=
"text"
v-model=
"item.programName"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
money
}}
</span>
<el-input
type=
"text"
v-model=
"item.money"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
programTime
}}
</span>
<el-input
type=
"text"
v-model=
"item.programTime"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
other
}}
</span>
<el-input
type=
"text"
v-model=
"item.other"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow==0"
>
{{
item
.
travelSign
}}
</span>
<el-input
type=
"text"
v-model=
"item.travelSign"
v-else
></el-input>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
v-if=
"item.IsShow==0"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"item.IsShow=1"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"保存"
placement=
"top-start"
v-if=
"item.IsShow==1"
>
<el-button
type=
"primary"
icon=
"iconfont icon-baocun"
circle
@
click=
"item.IsShow=0"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"item.IsShow==0"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
@
click=
"delWilling(index)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
<tr>
<td
colspan=
"9"
style=
"text-align:right;"
>
<input
type=
"button"
class=
"TC_NewAddBtn"
@
click=
"addWilling()"
value=
"+添加记录"
/>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</el-form>
</div>
</
template
>
<
script
>
import
moment
from
'moment'
export
default
{
data
()
{
let
valiTotalNumber
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
CtObj
.
totalNumber
==
0
||
this
.
CtObj
.
totalNumber
==
''
)
{
return
callback
(
new
Error
(
'请选择'
));
}
else
{
callback
();
}
}
let
validateEach
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
CtObj
.
eachNumber
==
0
||
this
.
CtObj
.
eachNumber
==
''
)
{
return
callback
(
new
Error
(
'请选择'
));
}
else
{
callback
();
}
}
let
validatepayType
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
CtObj
.
payType
==
0
||
this
.
CtObj
.
payType
==
''
)
{
return
callback
(
new
Error
(
'请选择'
));
}
else
{
callback
();
}
}
let
validatesettleDisputeMode
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
CtObj
.
settleDisputeMode
==
0
||
this
.
CtObj
.
settleDisputeMode
==
''
)
{
return
callback
(
new
Error
(
'请选择'
));
}
else
{
callback
();
}
}
return
{
//选中切换
cked
:
1
,
//查询参数
msg
:{
TCID
:
0
,
orderID
:
0
,
guestId
:
0
},
addMsg
:
{
Country
:
0
,
Province
:
0
,
City
:
0
},
//参数
CtObj
:{
//基本信息
clientName
:
''
,
clientIdcardnum
:
''
,
clientCall
:
''
,
clientFax
:
''
,
clientEmail
:
''
,
clientPostCode
:
''
,
clientCountryid
:
0
,
clientProvinceid
:
0
,
clientCityid
:
0
,
clientAddress
:
''
,
company
:
''
,
businessCertificate
:
''
,
companyCall
:
''
,
companyFax
:
''
,
companyEmail
:
''
,
companyPostCode
:
''
,
companyCountryid
:
0
,
companyProvinceid
:
0
,
companyCityid
:
0
,
companyAddress
:
''
,
agentName
:
''
,
agentCall
:
''
,
contractPlace
:
''
,
//合同条款
totalNumber
:
2
,
eachNumber
:
1
,
productName
:
''
,
startDate
:
''
,
returnDate
:
''
,
dayNum
:
''
,
nightNum
:
''
,
adultPrice
:
''
,
childPrice
:
''
,
servicePrice
:
''
,
orderPrice
:
''
,
payDate
:
''
,
payType
:
''
,
//客户同意
insuranceOpinion
:
''
,
insuranceCompany
:
''
,
insuranceProduct
:
''
,
insuranceAmount
:
''
,
minNumber
:
0
,
insteadOpinion
:
''
,
insteadCompany
:
''
,
delayOpinion
:
''
,
changeOpinion
:
''
,
terminateOpinion
:
''
,
carpoolOpinion
:
''
,
carpoolCompany
:
''
,
settleDisputeMode
:
2
,
arbitrationCommission
:
''
,
court
:
''
,
otherMatter
:
''
,
//投诉信息
companyComplainCall
:
''
,
regulatorName
:
''
,
regulatorComplainCall
:
''
,
regulatorWebsite
:
''
,
regulatorPostCode
:
''
,
regulatorCountryid
:
0
,
regulatorProvinceid
:
0
,
regulatorCityid
:
0
,
regulatorAddress
:
''
,
//行程信息
travelContent
:
''
,
//旅客信息
togetherRemark
:
''
,
singleRemark
:
''
,
nobedRemark
:
''
,
aloneRemark
:
''
,
tcid
:
0
,
orderId
:
0
,
tCNum
:
''
,
payProtocol
:
''
,
shopProtocol
:
''
},
//旅客名单
guestList
:[],
tripList
:
[],
rules
:
{
clientName
:
[{
required
:
true
,
message
:
"请输入客户名称"
,
trigger
:
"blur"
}],
clientCall
:
[{
required
:
true
,
message
:
"请输入联系电话"
,
trigger
:
"blur"
}],
agentName
:
[{
required
:
true
,
message
:
"请输入经办人"
,
trigger
:
"blur"
}],
agentCall
:
[{
required
:
true
,
message
:
"请输入联系电话"
,
trigger
:
"blur"
}],
totalNumber
:
[{
validator
:
valiTotalNumber
,
trigger
:
'change'
,
required
:
true
,}],
eachNumber
:[{
validator
:
validateEach
,
trigger
:
"change"
,
required
:
true
,
}],
productName
:[{
required
:
true
,
message
:
"请填写产品名称"
,
trigger
:
"blur"
}],
startDate
:[{
required
:
true
,
message
:
"请选择出发日期"
,
trigger
:
"change"
}],
returnDate
:[{
required
:
true
,
message
:
"请选择返回日期"
,
trigger
:
"blur"
}],
dayNum
:[{
required
:
true
,
message
:
"请选择天数"
,
trigger
:
"change"
}],
nightNum
:[{
required
:
true
,
message
:
"请选择晚数"
,
trigger
:
"change"
}],
adultPrice
:[{
required
:
true
,
message
:
"请填写成人价"
,
trigger
:
"blur"
}],
orderPrice
:[{
required
:
true
,
message
:
"请填写费用合计"
,
trigger
:
"blur"
}],
payDate
:[{
required
:
true
,
message
:
"请选择支付日期"
,
trigger
:
"change"
}],
payType
:[{
validator
:
validatepayType
,
trigger
:
"change"
,
required
:
true
,
}],
servicePrice
:[{
required
:
true
,
message
:
"请输入导游服务费"
,
trigger
:
"blur"
}],
insuranceProduct
:[{
required
:
true
,
message
:
"请填写保险名称"
,
trigger
:
'blur'
}],
minNumber
:[{
required
:
true
,
message
:
"请填写最低成团人数"
,
trigger
:
"change"
}],
settleDisputeMode
:[{
required
:
true
,
validator
:
validatesettleDisputeMode
,
trigger
:
"change"
}],
},
//自愿购物活动补充协议
VoluntaryArr
:[],
//自愿付费项目补充协议
WillingPayArr
:[],
//菜单列表
menuArr
:[
'合同基本信息'
,
'合同协议条款'
,
'其他约定事项'
,
'投诉联系'
,
'行程信息'
,
'游客信息'
,
'自愿购物活动补充协议'
,
'自愿付费项目补充协议'
],
ckedIndex
:
0
,
};
},
methods
:
{
//跳转锚点
goAnchor
(
selector
)
{
var
anchor
=
this
.
$el
.
querySelector
(
selector
)
document
.
documentElement
.
scrollTop
=
anchor
.
offsetTop
-
70
},
getDate
(
date
){
return
moment
(
date
).
format
(
"YYYY-MM-DD"
);
},
//提交数据
SaveMsg
(){
this
.
CtObj
.
status
=
1
;
this
.
CtObj
.
contractStatus
=
2
;
let
VolArr
=
[];
let
WalArr
=
[];
if
(
this
.
VoluntaryArr
.
length
>
0
){
this
.
VoluntaryArr
.
forEach
(
x
=>
{
if
(
x
.
IsShow
==
0
){
VolArr
.
push
(
x
);
}
})
if
(
VolArr
.
length
>
0
){
this
.
CtObj
.
shopProtocol
=
JSON
.
stringify
(
VolArr
);
}
else
{
this
.
CtObj
.
shopProtocol
=
''
}
}
if
(
this
.
WillingPayArr
.
length
>
0
){
this
.
WillingPayArr
.
forEach
(
x
=>
{
if
(
x
.
IsShow
==
0
){
WalArr
.
push
(
x
);
}
})
if
(
WalArr
.
length
>
0
){
this
.
CtObj
.
payProtocol
=
JSON
.
stringify
(
WalArr
);
}
else
{
this
.
CtObj
.
payProtocol
=
''
}
}
this
.
CtObj
.
travelContent
=
this
.
$refs
.
TcTravel_Table
.
innerHTML
;
this
.
apiJavaPost
(
"/api/contract/dosaveOrUpdate"
,
this
.
CtObj
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
dialogVisible
=
false
;
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
//跳转至预览
goUrl
(){
this
.
$router
.
push
({
name
:
'TravelContractDetail'
,
query
:
{
TCID
:
this
.
$route
.
query
.
TCID
,
guestId
:
this
.
CtObj
.
guestId
,
orderID
:
this
.
$route
.
query
.
orderID
,
blank
:
"y"
,
}
});
},
//提交
submitForm
(
addMsg
)
{
//提交创建、修改表单
this
.
$refs
[
addMsg
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
SaveMsg
();
}
else
{
this
.
Error
(
'请完成必填项'
);
return
false
;
}
});
},
//添加补充协议
addRecord
(){
let
obj
=
{
specificTime
:
''
,
Address
:
''
,
shoppName
:
''
,
CommodityInformation
:
''
,
stayTime
:
''
,
other
:
''
,
travelSign
:
''
,
IsShow
:
1
}
this
.
VoluntaryArr
.
push
(
obj
);
},
//删除补充协议1
delVoluntray
(
index
){
this
.
VoluntaryArr
.
splice
(
index
,
1
);
},
//添加自愿付费协议
addWilling
(){
let
obj
=
{
specificTime
:
''
,
Address
:
''
,
programName
:
''
,
money
:
''
,
programTime
:
''
,
other
:
''
,
travelSign
:
''
,
IsShow
:
1
}
this
.
WillingPayArr
.
push
(
obj
);
},
//删除自愿付费协议
delWilling
(
index
){
this
.
WillingPayArr
.
splice
(
index
,
1
);
},
//滚动条滚动选中tab
menu
()
{
var
_self
=
this
;
_self
.
scroll
=
(
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
)
+
70
;
//滑动到指定位置相应菜单高亮
var
a_0
=
this
.
$refs
.
anchor0
.
offsetTop
;
var
a_1
=
this
.
$refs
.
anchor1
.
offsetTop
;
var
a_2
=
this
.
$refs
.
anchor2
.
offsetTop
;
var
a_3
=
this
.
$refs
.
anchor3
.
offsetTop
;
var
a_4
=
this
.
$refs
.
anchor4
.
offsetTop
;
var
a_5
=
this
.
$refs
.
anchor5
.
offsetTop
;
var
a_6
=
this
.
$refs
.
anchor6
.
offsetTop
;
var
a_7
=
this
.
$refs
.
anchor7
.
offsetTop
;
if
(
_self
.
scroll
<
a_0
)
{
this
.
ckedIndex
=
0
}
else
if
(
_self
.
scroll
>
a_0
&&
_self
.
scroll
<
a_1
)
{
this
.
ckedIndex
=
1
}
else
if
(
_self
.
scroll
>
a_2
&&
_self
.
scroll
<
a_3
)
{
this
.
ckedIndex
=
2
}
else
if
(
_self
.
scroll
>
a_3
&&
_self
.
scroll
<
a_4
)
{
this
.
ckedIndex
=
3
}
else
if
(
_self
.
scroll
>
a_4
&&
_self
.
scroll
<
a_5
)
{
this
.
ckedIndex
=
4
}
else
if
(
_self
.
scroll
>
a_5
&&
_self
.
scroll
<
a_6
)
{
this
.
ckedIndex
=
5
}
else
if
(
_self
.
scroll
>
a_6
&&
_self
.
scroll
<
a_7
)
{
this
.
ckedIndex
=
6
}
else
if
(
_self
.
scroll
>
a_7
)
{
this
.
ckedIndex
=
7
}
},
},
mounted
()
{
this
.
$nextTick
(
function
()
{
//滚动监听事件
window
.
addEventListener
(
'scroll'
,
this
.
menu
)
});
}
};
</
script
>
src/components/SalesModule/planeTicketInquiry.vue
View file @
0f442408
...
...
@@ -1183,6 +1183,11 @@
<el-input
v-model=
'addMsg.OldPeopleNum'
:disabled=
"addMsg.GroupType==='4'"
@
keyup
.
native=
"checkInteger(addMsg,'OldPeopleNum')"
@
input=
'getNumber();getHouseNo();getTotalPrice()'
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"签证数量"
prop=
"VisaNum"
>
<el-input
v-model=
'addMsg.VisaNum'
@
keyup
.
native=
"checkInteger(addMsg,'VisaNum')"
@
input=
'getTotalPrice();'
></el-input>
</el-form-item>
</el-col>
<!--
<el-col
:span=
"4"
>
<el-form-item
label=
"单地接数量"
prop=
"AirticketNum"
>
<el-input
v-model=
'addMsg.AirticketNum'
@
keyup
.
native=
"checkInteger(addMsg,'AirticketNum')"
@
input=
'getNumber();getTotalPrice();getHouseNo()'
></el-input>
...
...
src/components/SalesModule/planeTourOrder.vue
View file @
0f442408
...
...
@@ -647,6 +647,11 @@
<el-input
v-model=
'addMsg.OldPeopleNum'
@
keyup
.
native=
"checkInteger(addMsg,'OldPeopleNum')"
@
input=
'getNumber();getHouseNo();getTotalPrice()'
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"签证数量"
prop=
"VisaNum"
>
<el-input
v-model=
'addMsg.VisaNum'
@
keyup
.
native=
"checkInteger(addMsg,'VisaNum')"
@
input=
'getTotalPrice();'
></el-input>
</el-form-item>
</el-col>
<!--
<el-col
:span=
"4"
>
<el-form-item
label=
"单地接数量"
prop=
"AirticketNum"
>
<el-input
v-model=
'addMsg.AirticketNum'
@
keyup
.
native=
"checkInteger(addMsg,'AirticketNum')"
@
input=
'getNumber();getTotalPrice();getHouseNo()'
></el-input>
...
...
@@ -669,11 +674,7 @@
<el-input
v-model=
'addMsg.TripleRoomNum'
@
keyup
.
native=
"checkInteger(addMsg,'TripleRoomNum')"
@
input=
'yzBigBed1();getTotalPrice()'
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"签证数量"
prop=
"VisaNum"
>
<el-input
v-model=
'addMsg.VisaNum'
@
keyup
.
native=
"checkInteger(addMsg,'VisaNum')"
@
input=
'getTotalPrice();yzVisaNum()'
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"保险数量"
prop=
"SaleNum"
>
<el-input
v-model=
'addMsg.SafeNum'
@
keyup
.
native=
"checkInteger(addMsg,'SafeNum')"
@
input=
'getTotalPrice();yzSafeNum()'
></el-input>
...
...
src/components/busManagement/busHandBook.vue
View file @
0f442408
<
style
>
.busManagerTalbe
{
font-size
:
12px
;
border-collapse
:
collapse
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
.busManagerTalbe
{
font-size
:
12px
;
border-collapse
:
collapse
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
}
.busManagerTalbe
tr
{
text-align
:
center
;
height
:
40px
;
}
.busManagerTalbe
tr
td
{
padding
:
0
5px
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
}
.commonBackColor
{
background-color
:
#e6e6e6
!important
;
color
:
#333
;
}
}
.busManagerTalbe
tr
{
text-align
:
center
;
height
:
40px
;
}
.busManagerTalbe
tr
td
{
padding
:
0
5px
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
}
.commonBackColor
{
background-color
:
#E6E6E6
!important
;
color
:
#333
;
}
.comTextAlign
{
text-align
:
left
;
padding-left
:
20px
;
}
.comTextAlign
{
text-align
:
left
;
padding-left
:
20px
;
}
.addHandBook
{
margin-right
:
5px
;
color
:
seagreen
;
cursor
:
pointer
;
visibility
:
hidden
;
}
.addHandBookDIS
{
visibility
:
visible
!important
;
}
.disClick
{
background-color
:
#d1d1d1
;
color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
.addHandBook
{
margin-right
:
5px
;
color
:
seagreen
;
cursor
:
pointer
;
visibility
:
hidden
;
}
.addHandBookDIS
{
visibility
:
visible
!important
;
}
.disClick
{
background-color
:
#d1d1d1
;
color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
.disClick
:hover
{
background-color
:
#d1d1d1
!important
;
cursor
:
default
!important
;
box-shadow
:
none
!important
;
}
.disClick
:hover
{
background-color
:
#d1d1d1
!important
;
cursor
:
default
!important
;
box-shadow
:
none
!important
;
}
</
style
>
<
template
>
<div>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"busManagerTalbe"
style=
"width: 100%;"
v-loading=
'loading'
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"busManagerTalbe"
style=
"width: 100%;"
v-loading=
"loading"
>
<tr>
<td
colspan=
"6"
>
印象ジャパンバス手配依頼書
</td>
</tr>
...
...
@@ -92,10 +98,22 @@
<td
class=
"commonBackColor"
width=
"400"
>
ホテル
</td>
<td
class=
"commonBackColor"
width=
"300"
>
ホテルTEL
</td>
</tr>
<tr
v-for=
"(subItem,index) in DataObj.Details_Extends"
>
<tr
v-for=
"(subItem,
index) in DataObj.Details_Extends"
>
<td>
<i
class=
"iconfont icon-bumenguanli-tianjia addHandBook"
:class=
"
{'addHandBookDIS':index==0||index==DataObj.Details_Extends.length-1}" @click="addHand(index)">
</i>
<el-date-picker
v-model=
'subItem.UseDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
<i
class=
"iconfont icon-bumenguanli-tianjia addHandBook"
:class=
"
{
addHandBookDIS:
index == 0 || index == DataObj.Details_Extends.length - 1
}"
@click="addHand(index)"
>
</i>
<el-date-picker
v-model=
"subItem.UseDate"
class=
"w135"
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</td>
<td>
<el-input
type=
"text"
v-model=
"subItem.BusType"
/>
...
...
@@ -104,13 +122,28 @@
<el-input
type=
"text"
v-model=
"subItem.FlightNum"
/>
</td>
<td>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.BusContent"
/>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.BusContent"
/>
</td>
<td>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.HotelName"
/>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.HotelName"
/>
</td>
<td>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.HotelTel"
/>
<el-input
type=
"textarea"
resize=
"none"
style=
"padding:5px 0;"
v-model=
"subItem.HotelTel"
/>
</td>
</tr>
<tr>
...
...
@@ -120,17 +153,57 @@
</td>
</tr>
<tr>
<td
colspan=
"6"
class=
"comTextAlign"
>
*迎えや送りは必要・不要となることは、必ず標記してください。
</td>
<td
colspan=
"6"
class=
"comTextAlign"
>
*迎えや送りは必要・不要となることは、必ず標記してください。
</td>
</tr>
<tr>
<td
colspan=
"6"
class=
"comTextAlign"
>
*直接バス會社へ送付するので、必ず日本語でご記入ください。
</td>
<td
colspan=
"6"
class=
"comTextAlign"
>
*直接バス會社へ送付するので、必ず日本語でご記入ください。
</td>
</tr>
<tfoot>
<tr>
<td
colspan=
"6"
>
<input
type=
"button"
class=
"normalBtn"
:class=
"
{'disClick':isSave}" @click="SaveData()" value="保存" />
<input
type=
"button"
class=
"normalBtn"
:class=
"
{'disClick':isSave}" @click="DownLoadFile()"
value="下载" />
<input
type=
"button"
class=
"normalBtn"
:class=
"
{ disClick: isSave }"
@click="SaveData()"
value="保存"
/>
<input
type=
"button"
class=
"normalBtn"
:class=
"
{ disClick: isSave }"
@click="DownLoadFile()"
value="下载"
/>
<template
v-if=
"BusObj.BusId > 0"
>
<template
v-if=
"BusObj.OrderState == 0"
>
<span
style=
"color:red;"
>
未确认手配
</span>
<input
type=
"button"
class=
"normalBtn"
@
click=
"SureBus(1)"
value=
"确认手配"
/>
</
template
>
<
template
v-if=
"BusObj.OrderState == 1"
>
<span
style=
"color:green;"
>
已确认手配
</span>
<input
type=
"button"
class=
"normalBtn"
@
click=
"SureBus(0)"
value=
"暂定手配"
/>
</
template
>
</template>
</td>
</tr>
<tr>
<td
colspan=
"6"
style=
"height:25px;"
>
</td>
</tr>
</tfoot>
...
...
@@ -139,60 +212,91 @@
</template>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
DataObj
:
{
Id
:
0
,
TCIDS
:
""
,
TeamNum
:
""
,
GuideName
:
""
,
GuideTel
:
""
,
PeopleNum
:
""
,
BusType
:
""
,
DayNight
:
""
,
Remarks
:
""
,
Details_Extends
:
[]
export
default
{
data
()
{
return
{
loading
:
false
,
DataObj
:
{
Id
:
0
,
TCIDS
:
""
,
TeamNum
:
""
,
GuideName
:
""
,
GuideTel
:
""
,
PeopleNum
:
""
,
BusType
:
""
,
DayNight
:
""
,
Remarks
:
""
,
Details_Extends
:
[]
},
BusObj
:
{
BusId
:
0
,
OrderState
:
1
//0暂定,1-OK
},
isSave
:
false
,
TCIDS
:
""
};
},
methods
:
{
//确认手配
SureBus
(
type
)
{
this
.
loading
=
true
;
this
.
BusObj
.
OrderState
=
type
;
this
.
apipost
(
"bus_post_SetBusService"
,
this
.
BusObj
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
GetData
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
isSave
:
false
,
TCIDS
:
""
}
err
=>
{}
);
},
methods
:
{
DownLoadFile
(
item
)
{
if
(
!
this
.
isSave
)
{
this
.
isSave
=
true
;
let
msg
=
{
TCIDS
:
this
.
TCIDS
};
this
.
loading
=
true
;
var
fileName
=
"バス手配依頼書"
+
this
.
DataObj
.
TeamNum
+
".xls"
;
this
.
GetLocalFile
(
"bus_get_DownLoadBusConfig"
,
msg
,
fileName
,
res
=>
{
this
.
loading
=
false
;
this
.
isSave
=
false
;
});
}
},
GetData
()
{
DownLoadFile
(
item
)
{
if
(
!
this
.
isSave
)
{
this
.
isSave
=
true
;
let
msg
=
{
TCIDS
:
this
.
TCIDS
};
this
.
loading
=
true
;
this
.
apipost
(
'bus_Get_GetBusDownLoadData'
,
{
var
fileName
=
"バス手配依頼書"
+
this
.
DataObj
.
TeamNum
+
".xls"
;
this
.
GetLocalFile
(
"bus_get_DownLoadBusConfig"
,
msg
,
fileName
,
res
=>
{
this
.
loading
=
false
;
this
.
isSave
=
false
;
});
}
},
GetData
()
{
this
.
loading
=
true
;
this
.
apipost
(
"bus_Get_GetBusDownLoadData"
,
{
TCIDs
:
this
.
TCIDS
},
res
=>
{
},
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
DataObj
=
res
.
data
.
data
;
this
.
DataObj
=
res
.
data
.
data
.
model
;
this
.
BusObj
.
BusId
=
res
.
data
.
data
.
BusId
;
this
.
BusObj
.
OrderState
=
res
.
data
.
data
.
OrderState
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
SaveData
()
{
if
(
!
this
.
isSave
)
{
this
.
isSave
=
true
;
this
.
DataObj
.
TCIDS
=
this
.
TCIDS
;
this
.
apipost
(
'bus_Post_SaveBusDownLoadData'
,
this
.
DataObj
,
res
=>
{
},
err
=>
{}
);
},
SaveData
()
{
if
(
!
this
.
isSave
)
{
this
.
isSave
=
true
;
this
.
DataObj
.
TCIDS
=
this
.
TCIDS
;
this
.
apipost
(
"bus_Post_SaveBusDownLoadData"
,
this
.
DataObj
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
"操作成功"
);
this
.
GetData
();
...
...
@@ -200,38 +304,39 @@
this
.
Error
(
res
.
data
.
message
);
}
this
.
isSave
=
false
;
},
err
=>
{})
}
},
//添加
addHand
(
index
){
var
obj
=
{
BusContent
:
''
,
BusType
:
''
,
FlightNum
:
''
,
HotelName
:
''
,
HotelTel
:
''
,
Id
:
0
,
MainId
:
0
,
UseDate
:
''
}
var
date
=
new
Date
();
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
();
var
UseDate
=
year
+
'-'
+
month
+
"-"
+
day
;
obj
.
UseDate
=
UseDate
if
(
index
==
0
){
this
.
DataObj
.
Details_Extends
.
unshift
(
obj
)
}
else
{
this
.
DataObj
.
Details_Extends
.
push
(
obj
);
}
},
err
=>
{}
);
}
},
mounted
()
{
this
.
TCIDS
=
this
.
$route
.
query
.
TCID
;
this
.
GetData
();
},
//添加
addHand
(
index
)
{
var
obj
=
{
BusContent
:
""
,
BusType
:
""
,
FlightNum
:
""
,
HotelName
:
""
,
HotelTel
:
""
,
Id
:
0
,
MainId
:
0
,
UseDate
:
""
};
var
date
=
new
Date
();
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
();
var
UseDate
=
year
+
"-"
+
month
+
"-"
+
day
;
obj
.
UseDate
=
UseDate
;
if
(
index
==
0
)
{
this
.
DataObj
.
Details_Extends
.
unshift
(
obj
);
}
else
{
this
.
DataObj
.
Details_Extends
.
push
(
obj
);
}
}
},
mounted
()
{
this
.
TCIDS
=
this
.
$route
.
query
.
TCID
;
this
.
GetData
();
}
};
</
script
>
src/components/dmc/manager/groundOperation.vue
View file @
0f442408
...
...
@@ -201,6 +201,7 @@
<th>
{{ $t("ground.chepaihao") }}
</th>
<th>
{{ $t("ground.sijiName") }}
</th>
<th>
{{ $t("ground.sijiPhone") }}
</th>
<th>
司机住宿
</th>
<th>
{{ $t("pub.pubRemark") }}
</th>
</tr>
<tr
v-for=
"item in DMCStaticsCommon.BusList"
>
...
...
@@ -209,6 +210,7 @@
<td>
{{ item.BusNum }}
</td>
<td>
{{ item.DriverName }}
</td>
<td>
{{ item.DriverTel }}
</td>
<td>
{{ item.AccommodationTypeStr }}
</td>
<td
width=
"300"
>
{{ item.Remarks }}
</td>
</tr>
</table>
...
...
src/components/dmc/manager/groundOperation2.vue
View file @
0f442408
...
...
@@ -453,15 +453,14 @@ export default {
msg
,
res
=>
{
this
.
loading2
=
false
;
console
.
log
(
"res.data"
,
res
.
data
.
data
);
if
(
res
.
data
.
resultCode
==
1
)
{
//
this.BaseInfo = res.data.data.BaseInfo;
//
this.PrincipalList = res.data.data.PrincipalList;
//
this.JourneyTitle = res.data.data.JourneyTitle;
//
this.guestList = res.data.data.guestList;
//
this.DMCStaticsCommon = res.data.data.DMCStaticsCommon;
//
this.shopList = res.data.data.shopList;
//
this.PostConfig = res.data.data.DMCStaticsCommon.LeaderApply;
this
.
BaseInfo
=
res
.
data
.
data
.
BaseInfo
;
this
.
PrincipalList
=
res
.
data
.
data
.
PrincipalList
;
this
.
JourneyTitle
=
res
.
data
.
data
.
JourneyTitle
;
this
.
guestList
=
res
.
data
.
data
.
guestList
;
this
.
DMCStaticsCommon
=
res
.
data
.
data
.
DMCStaticsCommon
;
this
.
shopList
=
res
.
data
.
data
.
shopList
;
this
.
PostConfig
=
res
.
data
.
data
.
DMCStaticsCommon
.
LeaderApply
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
...
...
src/components/onedayTripContract.vue
0 → 100644
View file @
0f442408
<
style
>
*
{
margin
:
0
;
padding
:
0
;
}
.TC-MainContent
{
min-height
:
650px
;
background
:
url(../assets/img/bodyBg.png)
;
padding-top
:
10px
;
font
:
normal
13px
"Microsoft Yahei"
;
color
:
#555
;
height
:
auto
!important
;
}
.TC-MainContent
.fixedMenu
{
position
:
fixed
;
left
:
20px
;
top
:
75px
;
margin
:
0
;
padding-top
:
10px
;
}
.TC-MainContent
.fixedMenu
li
{
padding
:
5px
15px
;
position
:
relative
;
border-right
:
2px
solid
#e2e2e2
;
cursor
:
pointer
;
list-style
:
none
;
font-size
:
13px
;
}
.TC-MainContent
.fixedMenu
li
:after
{
content
:
""
;
display
:
block
;
width
:
0
;
height
:
0
;
border
:
5px
solid
transparent
;
border-left-color
:
#e2e2e2
;
position
:
absolute
;
right
:
-12px
;
top
:
11px
;
}
.TC-MainContent
.contractTit
{
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
z-index
:
1000
;
padding
:
15px
20px
12px
;
line-height
:
30px
;
box-sizing
:
border-box
;
background
:
url(../assets/img/bodyBg.png)
;
font-size
:
18px
;
color
:
#555
;
}
.TC-MainContent
.contractTit
span
{
font-size
:
21px
;
font-weight
:
bold
;
}
.TC-MainContent
.block
{
border
:
1px
solid
#cdcdcd
;
background
:
#f9f9f9
;
position
:
relative
;
margin-bottom
:
20px
;
}
.TC-MainContent
.container-fluid
{
padding-right
:
20px
;
padding-left
:
20px
;
*
zoom
:
1
;
}
.TC-MainContent
.mtop15
{
margin-top
:
15px
;
}
.TC-MainContent
.blockTitle
{
border-bottom
:
1px
solid
#cdcdcd
;
background-color
:
#efefef
;
}
.TC-MainContent
.blockTitle
span
.icon
{
border-right
:
1px
solid
#cdcdcd
;
position
:
absolute
;
left
:
10px
;
height
:
40px
;
padding-right
:
10px
;
padding-top
:
8px
;
}
.TC-MainContent
.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
;
}
.TC-MainContent
.blockTitle
h2
{
font-size
:
15px
;
min-height
:
40px
;
margin
:
0
;
font-family
:
"Microsoft Yahei"
;
color
:
#5b5b5b
;
padding-right
:
15px
;
padding-left
:
48px
;
}
.TC-MainContent
.block
em
{
font-style
:
normal
;
}
.TC-MainContent
.createTableTitle
{
padding
:
10px
0
;
margin
:
5px
30px
0
;
border-bottom
:
1px
dashed
#ccc
;
font
:
normal
15px
"microsoft yahei"
;
}
.TC-MainContent
.createTable
{
background-color
:
#f9f9f9
;
width
:
100%
;
}
.TC-MainContent
.el-form-item
{
margin-bottom
:
10px
;
}
.TC-MainContent
.w300
{
width
:
300px
!important
;
}
.TC-MainContent
.w150
{
width
:
150px
!important
;
}
.TC-MainContent
.w60
{
width
:
60px
!important
;
}
.TC-MainContent
.w180
{
width
:
180px
!important
;
}
.TC-MainContent
.w138
{
width
:
138px
!important
;
}
.TC-MainContent
.w600
{
width
:
600px
!important
;
}
.TC-MainContent
.singeRowTable
{
width
:
100%
;
border-collapse
:
collapse
;
}
.TC-MainContent
.singeRowTable
tr
th
,
.v-table-title-cell
{
background
:
#e6e6e6
;
height
:
40px
;
font-size
:
14px
;
color
:
#333
;
}
.TC-MainContent
.singeRowTable
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.TC-MainContent
.singeRowTable
tr
:nth-child
(
2n
+
1
)
{
background
:
#fafafa
;
}
.TC-MainContent
.singeRowTable
tr
:hover
{
background
:
#f2f2f2
;
}
.TC-MainContent
.singeRowTable
tr
td
{
font-size
:
12px
;
border
:
1px
solid
#e5e5e5
;
}
.TC-MainContent
.TC_NewAddBtn
{
background-color
:
#006dcc
;
width
:
83px
;
height
:
26px
;
color
:
#fff
;
border
:
none
;
margin-right
:
5px
;
cursor
:
pointer
;
}
.TC-MainContent
.singeRowTable
.el-button.is-circle
{
padding
:
5px
;
}
.TC-MainContent
.TcNewTable
td
{
padding
:
5px
;
}
.TC-MainContent
.fixedMenu
li
.active
{
background
:
#90b7ec
;
color
:
#fff
;
border-right-color
:
#5882bb
;
}
.TC-MainContent
.fixedMenu
li
.active
:after
{
border-left-color
:
#5882bb
;
}
.TC-MainContent
.pull-right
{
float
:
right
;
}
.TC-MainContent
.TC_disabled
{
color
:
#57a3f3
;
cursor
:
not-allowed
!important
;
}
.TC-MainContent
.TCbtn-info
{
color
:
#ffffff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#49afcd
;
background-image
:
-moz-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#5bc0de
),
to
(
#2f96b4
)
);
background-image
:
-webkit-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
-o-linear-gradient
(
top
,
#5bc0de
,
#2f96b4
);
background-image
:
linear-gradient
(
to
bottom
,
#5bc0de
,
#2f96b4
);
background-repeat
:
repeat-x
;
border-color
:
#2f96b4
#2f96b4
#1f6377
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ff5bc0de'
,
endColorstr
=
'#ff2f96b4'
,
GradientType
=
0
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
padding
:
10px
19px
;
border
:
none
;
outline
:
none
;
cursor
:
pointer
;
}
.TC-MainContent
.btn-warning
{
color
:
#ffffff
;
text-shadow
:
0
-1px
0
rgba
(
0
,
0
,
0
,
0.25
);
background-color
:
#faa732
;
*
background-color
:
#f89406
;
background-image
:
-moz-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#fbb450
),
to
(
#f89406
)
);
background-image
:
-webkit-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
-o-linear-gradient
(
top
,
#fbb450
,
#f89406
);
background-image
:
linear-gradient
(
to
bottom
,
#fbb450
,
#f89406
);
background-repeat
:
repeat-x
;
border-color
:
#f89406
#f89406
#ad6704
;
border-color
:
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.1
)
rgba
(
0
,
0
,
0
,
0.25
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fffbb450'
,
endColorstr
=
'#fff89406'
,
GradientType
=
0
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
enabled
=
false
);
padding
:
10px
19px
;
outline
:
none
;
border
:
none
;
cursor
:
pointer
;
}
.TCbtn-info
:hover
,
.btn-warning
:hover
{
color
:
#ffffff
;
opacity
:
0.8
;
}
.TcTravel_Table
{
width
:
100%
;
border
:
none
;
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.TcTravel_Table
td
{
border
:
1px
solid
rgb
(
0
,
0
,
0
);
word-break
:
break-all
;
padding
:
5px
;
line-height
:
2
;
}
.TC_LASTTD
div
{
margin-bottom
:
10px
;
}
.feeJisuan
.el-form-item__label
{
margin-top
:
5px
;
}
.onedayRed
{
color
:
red
;
}
.onedayAccount
.el-form-item__label
{
margin-top
:
5px
;
}
</
style
>
<
template
>
<div
class=
"TC-MainContent"
>
<!-- 内容开始 -->
<ul
class=
"fixedMenu"
id=
"fixedMenu"
>
<li
v-for=
"(item, index) in menuArr"
:key=
"index"
:class=
"
{ active: index == ckedIndex }"
@click="(ckedIndex = index), goAnchor('#anchor-' + index)"
>
{{
item
}}
</li>
</ul>
<div
class=
"contractTit"
>
<span>
全国版国内旅游一日游合同示范文本
<span
style=
"color:blue;font-size:14px;"
></span>
</span>
<div
class=
"pull-right"
>
<input
type=
"button"
v-if=
"CtObj.auditContract != 2"
class=
"btn-warning"
@
click=
"submitForm('CtObj')"
value=
"保存"
/>
</div>
</div>
<el-form
label-width=
"180px"
:model=
"CtObj"
:rules=
"rules"
ref=
"CtObj"
>
<div
class=
"container-fluid"
style=
"padding-top: 60px; padding-left: 220px;"
>
<div
class=
"block mtop15"
id=
"anchor-0"
ref=
"anchor0"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-dingdanguanli-"
></i>
</span>
<h2>
<em>
合同基本信息
</em>
</h2>
</div>
<div
class=
"createTableTitle"
>
甲方(旅游者)
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"姓名"
prop=
"Tourists_Name"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_Name"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"联系电话"
prop=
"Tourists_Tel"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_Tel"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"身份证件号码"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_IDNum"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮箱"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_Email"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"传真"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_Fax"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"住所"
>
<el-input
type=
"text"
v-model=
"CtObj.Tourists_Addres"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
乙方(旅行社)
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"名称"
>
<el-input
type=
"text"
v-model=
"CtObj.TravelAgency_Name"
:disabled=
"true"
class=
"w300"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"经营许可证编号"
>
<el-input
type=
"text"
class=
"w300"
:disabled=
"true"
v-model=
"CtObj.TravelAgency_LicenseNum"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<!-- 无 -->
<el-form-item
label=
"经营范围"
>
<el-input
type=
"text"
class=
"w300"
:disabled=
"true"
v-model=
"CtObj.TravelAgency_Scope"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"联系电话"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_Tel"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"传真"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_Fax"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"邮编"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_PostNum"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"经办人"
prop=
"TravelAgency_DealMan"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_DealMan"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"身份证件号码"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_IDNum"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"营业地址"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_Address"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"签约地点"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.TravelAgency_SignAddress"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
导游员
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"姓名"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.Guide_Name"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"导游证号"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.Guide_Num"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"手机"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.Guide_Tel"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-1"
ref=
"anchor1"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-renwuguanli"
></i>
</span>
<h2>
<em>
合同协议条款
</em>
</h2>
</div>
<div
class=
"createTableTitle"
>
线路行程时间
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"团号"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_TCNUM"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"出发时间"
prop=
"C_StartDate"
>
<el-date-picker
class=
"w300"
v-model=
"CtObj.C_StartDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"出发地点"
prop=
"C_StartAddress"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_StartAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"返回地点"
prop=
"C_ReturnAddress"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_ReturnAddress"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
交通安排
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<div
style=
"margin:20px 0 20px 108px;"
>
使用形式:
</div>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:0 0 20px 108px;"
>
<span
class=
"onedayRed"
>
*
</span>
(二选一)
<el-radio-group
v-model=
"CtObj.C_TrafficType"
>
<el-radio
:label=
"1"
>
合车游
</el-radio>
<el-radio
:label=
"2"
>
包车游
</el-radio>
</el-radio-group>
</div>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"车牌号码"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_BusCode"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"驾驶员姓名"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_DriverName"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:10px 0 20px 108px;"
>
标 准:
</div>
</td>
</tr>
<tr>
<td>
<div
style=
"margin-left:108px;display:inline-block;"
>
<span
class=
"onedayRed"
>
*
</span>
(二选一)
<el-radio-group
v-model=
"CtObj.C_IsHaveKongTiao"
>
<el-radio
:label=
"0"
>
空调
</el-radio>
<el-radio
:label=
"1"
>
无空调
</el-radio>
</el-radio-group>
</div>
<div
style=
"margin:0 0 20px 20px;display:inline-block;"
>
<span
class=
"onedayRed"
>
*
</span>
(三选一)
<el-radio-group
v-model=
"CtObj.C_BusType"
>
<el-radio
:label=
"1"
>
面包车
</el-radio>
<el-radio
:label=
"2"
>
中巴
</el-radio>
<el-radio
:label=
"3"
>
大巴
</el-radio>
</el-radio-group>
</div>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
餐饮安排
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<div
style=
"margin:20px 0 20px 108px;"
>
早餐:
</div>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"地点"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_BreakfastAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"标准"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_BreakfastBasic"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:20px 0 20px 108px;"
>
午餐:
</div>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"地点"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_LunchAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"标准"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_LunchBasic"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:20px 0 20px 108px;"
>
晚餐:
</div>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"地点"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_DinnerAddress"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"标准"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_DinnerBasic"
></el-input>
</el-form-item>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
旅游费用
</div>
<table
class=
"createTable"
>
<tbody>
<tr>
<td>
<el-form-item
label=
"成人"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_AdultNum"
></el-input
>
人×
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_AdultPrice"
></el-input
>
元/人
+
儿童
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_ChildrenNum"
></el-input
>
人×
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_ChildrenPrice"
></el-input
>
元/人 =
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_TotalPrice"
></el-input
>
元
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"含:景点第一道门票、"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
></el-input>
</el-form-item>
<el-form-item
label=
"午(晚)餐费、往返车费、导游服务费"
label-width=
"250px"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w150"
></el-input>
</el-form-item>
<el-form-item
label=
";不含"
style=
"display:inline-block;"
label-width=
"60px"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_NonIncludeRemark"
></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"支付时间"
>
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"CtObj.C_PayDate"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:0 10px 0 108px;display:inline-block;"
>
<span
class=
"onedayRed"
>
*
</span>
支付方式
<el-radio-group
v-model=
"CtObj.C_PayType"
>
<el-radio
:label=
"1"
>
现金
</el-radio>
<el-radio
:label=
"5"
>
转账
</el-radio>
</el-radio-group>
</div>
<div
style=
"margin:10px 0 0 10px;display:inline-block;"
class=
"onedayAccount"
>
<el-form-item
label=
"银行账号"
label-width=
"80px"
>
<el-input
type=
"text"
class=
"w150"
v-model=
"CtObj.C_PayTypeRemark"
></el-input>
</el-form-item>
</div>
</td>
</tr>
</tbody>
</table>
<div
class=
"createTableTitle"
>
争议的解决方式
</div>
<table
class=
"createTable feeJisuan"
>
<tbody>
<tr>
<td>
<div
style=
"margin-left:114px;"
>
<el-form-item
label=
"1.协商。旅行社客服电话"
>
<el-input
type=
"text"
class=
"w180"
v-model=
"CtObj.TravelAgency_ServiceTel"
></el-input>
</el-form-item>
</div>
</td>
</tr>
<tr>
<td>
<el-form-item
label=
"2.投诉"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w180"
v-model=
"CtObj.C_ComplaintProvince"
></el-input
>
省
</el-form-item>
<el-form-item
label-width=
"0"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w180"
v-model=
"CtObj.C_ComplaintCity"
></el-input>
</el-form-item>
<el-form-item
label=
"市旅游质监执法机构投诉电话"
label-width=
"200px"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w180"
v-model=
"CtObj.C_ZhiFaTel"
></el-input>
</el-form-item>
<el-form-item
label=
",消费者协会投诉电话"
style=
"display:inline-block;"
>
<el-input
type=
"text"
class=
"w180"
v-model=
"CtObj.C_XFZXHTSTel"
></el-input>
。
</el-form-item>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:0 0 20px 130px;"
>
<span
class=
"onedayRed"
>
*
</span>
协商或投诉调解不成的,按下列第
<el-select
class=
"w60"
placeholder=
""
v-model=
"CtObj.C_SolveType"
>
<el-option
label=
"1"
:value=
"1"
></el-option>
<el-option
label=
"2"
:value=
"2"
></el-option>
</el-select>
种方式解决:
</div>
</td>
</tr>
<tr>
<td>
<div
style=
"margin:0 0 20px 130px;"
>
2.依法向人民法院提起民事诉讼。
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-2"
ref=
"anchor2"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-copy"
></i>
</span>
<h2>
<em>
其他约定
</em>
</h2>
</div>
<div
style=
"padding:10px;"
>
未尽事宜,经旅游者和出境社双方协商一致,可以列入补充条款。(如合同空间不够,可以另附纸张,由双方签字或者盖章确认。)
</div>
<el-input
type=
"textarea"
resize=
"none"
v-model=
"CtObj.OtherConvention"
rows=
"13"
></el-input>
</div>
<div
class=
"block mtop15"
id=
"anchor-3"
ref=
"anchor3"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-Shape1"
></i>
</span>
<h2>
<em>
行程信息
</em>
</h2>
</div>
<div
style=
"padding:10px;background:#f9f9f9;color:red;"
>
《行程单》应当对如下内容作出明确的说明:
(1)旅游行程的出发地、途经地、目的地、结束地,线路行程时间(按自然日计算,含乘飞机、车、船等在途时间,不足24小时以一日计);
(2)旅游目的地地接社的名称、地址、联系人和联系电话;
(3)交通服务安排及其标准(明确交通工具及档次等级、出发时间以及是否需中转等信息);
(4)住宿服务安排及其标准(明确住宿饭店的名称、地址、档次等级及是否有空调、热水等相关服务设施);
(5)用餐(早餐和正餐)服务安排及其标准(明确用餐次数、地点、标准);
(6)出境社统一安排的游览项目的具体内容及时间(明确旅游线路内容包括景区点及游览项目名称、景区点停留的最少时间);
(7)自由活动的时间;
(8)行程安排的娱乐活动(明确娱乐活动的时间、地点和项目内容);
《行程单》用语须准确清晰,在表明服务标准用语中不应当出现“准×星级”、“豪华”、“仅供参考”、“以××为准”、“与××同级”等不确定用语。
</div>
<div>
123
</div>
<!--
<el-input
type=
"textarea"
rows=
"26"
resize=
"none"
v-model=
"CtObj.travelContent"
></el-input>
-->
</div>
<div
class=
"block mtop15"
id=
"anchor-4"
ref=
"anchor4"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-people"
></i>
</span>
<h2>
<em>
游客信息
</em>
</h2>
</div>
<table
class=
"singeRowTable TcNewTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th
width=
"80"
>
序号
</th>
<th><span
class=
"onedayRed"
>
*
</span>
姓名
</th>
<th><span
class=
"onedayRed"
>
*
</span>
性别
</th>
<th><span
class=
"onedayRed"
>
*
</span>
证件类型
</th>
<th><span
class=
"onedayRed"
>
*
</span>
证件号码
</th>
<th><span
class=
"onedayRed"
>
*
</span>
联系电话(手机)
</th>
<th>
身体状况
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in CtObj.ContractGuestList"
:key=
"index"
>
<td>
{{
index
+
1
}}
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestName
}}
</span>
<el-input
type=
"text"
class=
"w150"
v-model=
"item.CGuestName"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestSex
}}
</span>
<el-select
v-model=
"item.CGuestSex"
v-else
>
<el-option
label=
"男"
value=
"男"
></el-option>
<el-option
label=
"女"
value=
"女"
></el-option>
</el-select>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestCertificateType
}}
</span>
<el-select
v-model=
"item.CGuestCertificateType"
v-else
>
<el-option
label=
"护照"
value=
"护照"
></el-option>
<el-option
label=
"港澳通行证"
value=
"港澳通行证"
></el-option>
<el-option
label=
"赴台证"
value=
"赴台证"
></el-option>
<el-option
label=
"身份证"
value=
"身份证"
></el-option>
<el-option
label=
"其他"
value=
"其他"
></el-option>
</el-select>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestCertificateNum
}}
</span>
<el-input
type=
"text"
v-model=
"item.CGuestCertificateNum"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestTel
}}
</span>
<el-input
type=
"text"
v-model=
"item.CGuestTel"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CGuestHealth
}}
</span>
<el-input
type=
"text"
placeholder=
"健康"
v-model=
"item.CGuestHealth"
v-else
></el-input>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
v-if=
"item.IsShow == 0"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"item.IsShow = 1"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"保存"
v-if=
"item.IsShow == 1"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"iconfont icon-baocun"
@
click=
"item.IsShow = 0"
circle
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
@
click=
"delTouristArr(index)"
></el-button>
</el-tooltip>
</td>
</tr>
<tr>
<td
colspan=
"9"
style=
"text-align:right;"
>
<input
type=
"button"
class=
"TC_NewAddBtn"
@
click=
"addTourist()"
value=
"+添加游客"
/>
</td>
</tr>
</table>
</div>
<div
class=
"block mtop15"
id=
"anchor-5"
ref=
"anchor5"
>
<div
class=
"blockTitle"
>
<span
class=
"icon"
>
<i
class=
"iconfont icon-bianji"
></i>
</span>
<h2>
<em>
自愿购物活动补充协议
</em>
</h2>
</div>
<table
class=
"singeRowTable TcNewTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tbody>
<tr>
<th
width=
"60"
>
序号
</th>
<th
width=
"10%"
>
具体时间
</th>
<th
width=
"15%"
>
地点
</th>
<th
width=
"12%"
>
购物场所名称
</th>
<th
width=
"12%"
>
主要商品信息
</th>
<th
width=
"12%"
>
最长停留时间(分钟)
</th>
<th
width=
"12%"
>
其他说明
</th>
<th
width=
"12%"
>
旅游者签名同意
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in CtObj.ContractShopList"
:key=
"index"
>
<td>
{{
index
+
1
}}
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
specificTime
}}
</span>
<el-date-picker
v-else
v-model=
"item.specificTime"
class=
"w150"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
""
></el-date-picker>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
Address
}}
</span>
<el-input
type=
"text"
v-model=
"item.Address"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
shoppName
}}
</span>
<el-input
type=
"text"
v-model=
"item.shoppName"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
CommodityInformation
}}
</span>
<el-input
type=
"text"
v-model=
"item.CommodityInformation"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
stayTime
}}
</span>
<el-input
type=
"text"
v-model=
"item.stayTime"
v-else
></el-input>
</td>
<td
style=
"text-align:left;"
>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
other
}}
</span>
<el-input
type=
"text"
v-model=
"item.other"
v-else
></el-input>
</td>
<td>
<span
v-if=
"item.IsShow == 0"
>
{{
item
.
travelSign
}}
</span>
<el-input
type=
"text"
v-model=
"item.travelSign"
v-else
></el-input>
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改"
placement=
"top-start"
v-if=
"item.IsShow == 0"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"item.IsShow = 1"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"保存"
placement=
"top-start"
v-if=
"item.IsShow == 1"
>
<el-button
type=
"primary"
icon=
"iconfont icon-baocun"
circle
@
click=
"item.IsShow = 0"
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"item.IsShow == 0"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
@
click=
"delVoluntray(index)"
circle
></el-button>
</el-tooltip>
</td>
</tr>
<tr>
<td
colspan=
"9"
style=
"text-align:right;"
>
<input
type=
"button"
class=
"TC_NewAddBtn"
@
click=
"addRecord()"
value=
"+添加记录"
/>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</el-form>
</div>
</
template
>
<
script
>
import
moment
from
"moment"
;
export
default
{
data
()
{
return
{
//选中切换
cked
:
1
,
//参数
CtObj
:
{
CType
:
3
,
//合同类型:(1-单项委托协议[平台版2018],2大陆境内旅游合同2014,3-全国版国内旅游一日游旅游合同示范文本[2015版])
Tourists_Name
:
""
,
Tourists_IDNum
:
""
,
Tourists_Addres
:
""
,
Tourists_Tel
:
""
,
Tourists_Email
:
""
,
Tourists_PostNum
:
""
,
Tourists_Fax
:
""
,
Tourists_EmergencyLinkMan
:
""
,
Tourists_EmergencyLinkTel
:
""
,
TravelAgency_Name
:
"四川和平国际旅行社有限公司"
,
//旅行社名称
TravelAgency_LicenseNum
:
"L-SC-CJ00015"
,
TravelAgency_DealMan
:
""
,
TravelAgency_IDNum
:
""
,
TravelAgency_Address
:
"成都市锦江区一环路东五段87号2幢23层2310.2311.2312号"
,
TravelAgency_Tel
:
""
,
TravelAgency_Fax
:
""
,
TravelAgency_PostNum
:
""
,
TravelAgency_Email
:
""
,
TravelAgency_Scope
:
"出境游/境内游"
,
//旅行社经营范围
TravelAgency_SignAddress
:
""
,
Guide_Name
:
""
,
Guide_Num
:
""
,
Guide_Tel
:
""
,
C_TCNUM
:
""
,
//团号
C_ProductName
:
""
,
C_StartDate
:
""
,
//出发时间
C_EndDate
:
""
,
C_DayNum
:
""
,
C_NightNum
:
""
,
C_AdultNum
:
""
,
C_AdultPrice
:
""
,
//成人价格
C_ChildrenNum
:
""
,
C_ChildrenPrice
:
""
,
C_GuideServicePrice
:
""
,
C_TotalPrice
:
""
,
C_PayDate
:
""
,
C_PayType
:
1
,
// 旅游费用支付方式(1-现金,2-支票,3-信用卡,4-其他,5-转账)
C_PayTypeRemark
:
""
,
//转账填写转账账号和备注
C_InsuranceType
:
1
,
// 旅游者保险购买方式(1-委托旅行社购买,2-自行购买,3-放弃购买)
C_InsuranceName
:
""
,
C_LowNum
:
""
,
C_IsAgreeTravel
:
1
,
// 是否同意旅行社委托(1-不同意,0同意)
C_AgreeTravelName
:
""
,
// 是否同意旅行社名称
C_IsAgreeDelay
:
1
,
/// 是否同意延期出团(1-不同意,0同意)
C_IsAgreeCndorse
:
1
,
/// 是否同意改签(1-不同意,0同意)
C_IsAgreeRemove
:
1
,
// 是否同意解除合同(1-不同意,0同意)
C_IsAgreeSpellGroup
:
1
,
// 是否同意拼团(1-不同意,0同意)
C_SpellGroupName
:
""
,
// 拼团旅行社名称
C_SolveType
:
""
,
// 争议解决方式
C_SolveRemark
:
""
,
// 争议解决方式备注
C_ContractTotal
:
""
,
// 合同总分数
C_ContractPer
:
1
,
// 各持几份
C_StartAddress
:
""
,
// 出发地点
C_ReturnAddress
:
""
,
//返回地点
C_TrafficType
:
1
,
// 交通方式(1-合车游,2-包车游)
C_BusCode
:
""
,
// 车牌号
C_DriverName
:
""
,
// 驾驶员姓名
C_IsHaveKongTiao
:
1
,
// 是否有空调(0-有空调,1-无空调)
C_BusType
:
1
,
// 车辆类型(1-面包车,2-中巴车,3-大巴车)
C_BreakfastAddress
:
""
,
// 早餐地点
C_BreakfastBasic
:
""
,
// 早餐标准
C_LunchAddress
:
""
,
// 午餐地点
C_LunchBasic
:
""
,
// 午餐标准
C_DinnerAddress
:
""
,
// 晚餐地点
C_DinnerBasic
:
""
,
// 晚餐标准
C_IncludeRemark
:
""
,
// 费用包含
C_NonIncludeRemark
:
""
,
// 费用不包含
TravelAgency_ServiceTel
:
""
,
// 旅行社客服电话
C_ComplaintProvince
:
""
,
// 投诉省
C_ComplaintCity
:
""
,
// 投诉市
C_ComplaintTel
:
""
,
// 投诉电话
C_ComplaintEmail
:
""
,
// 投诉电子邮箱
C_ComplaintAddress
:
""
,
// 投诉地址
C_ComplaintPostNum
:
""
,
// 投诉邮编
C_ZhiFaTel
:
""
,
// 执法机构电话
C_XFZXHTSTel
:
""
,
// 消费者协会投诉电话
C_TicketDayNum
:
""
,
// 几日内出票
C_OrderDayNum
:
""
,
// 几日内下单
C_PayDayNum
:
""
,
// 几日内缴费
C_SignType
:
""
,
// 获取签证资料及领取签证方式
OtherConventionPrice
:
""
,
// 其他服务费用合计
OtherConvention
:
""
,
// 其他约定事项
TripJson
:
""
,
GuestJson
:
''
,
// 游客信息【json】
ShopJson
:
''
,
// 购物信息【json】
SelfFeeJson
:
''
,
// 自费信息【Json】
TicketJson
:
''
,
// 机票信息
TicketTotalNum
:
0
,
// 机票总数量
TicketOutDayNum
:
0
,
// 机票几日内出票
TicketTotalDepositPrice
:
0
,
// 机票预订总费用
HotelBookJson
:
""
,
// 酒店预订
HotelTotal
:
""
,
// 酒店多少间、晚
HotelCheckInType
:
""
,
// 酒店入住方式
HotelNotice
:
""
,
// 下订单后通知旅游者的方式
HotelTotalPrice
:
"0"
,
// 酒店费用总计
PickUpJson
:
""
,
// 接送信息
PickUpTotalPrice
:
"0"
,
// 接送总费用
VisaJson
:
""
,
// 签证信息
VisaTotalPrice
:
"0"
,
// 签证总费用
TicketAndHotelJson
:
""
,
// 机票与酒店信息
TicketAndHotelTotalPrice
:
"0"
,
// 机票加酒店组合总费用
ContractShopList
:
[],
//自愿购物活动补充协议
ContractGuestList
:
[],
//旅客名单
ContractTripList
:
[]
//行程列表
},
rules
:
{
Tourists_Name
:
[
{
required
:
true
,
message
:
"请输入客户名称"
,
trigger
:
"blur"
}
],
Tourists_Tel
:
[
{
required
:
true
,
message
:
"请输入联系电话"
,
trigger
:
"blur"
}
],
TravelAgency_DealMan
:
[
{
required
:
true
,
message
:
"请输入经办人"
,
trigger
:
"blur"
}
],
C_StartDate
:
[
{
required
:
true
,
message
:
"请选择出发时间"
,
trigger
:
"blur"
}
],
C_StartAddress
:
[
{
required
:
true
,
message
:
"请输入出发地点"
,
trigger
:
"change"
}
],
C_ReturnAddress
:
[
{
required
:
true
,
message
:
"请输入返回地点"
,
trigger
:
"change"
}
]
},
//菜单列表
menuArr
:
[
"合同基本信息"
,
"合同协议条款"
,
"其他约定"
,
"投诉联系"
,
"行程信息"
,
"游客信息"
,
"自愿购物活动补充协议"
],
ckedIndex
:
0
,
//旅客信息Arr
touristList
:
[
{
CGuestName
:
""
,
CGuestSex
:
"男"
,
CGuestCertificateType
:
"身份证"
,
CGuestCertificateNum
:
""
,
CGuestTel
:
""
,
CGuestHealth
:
"健康"
,
IsShow
:
1
}
]
};
},
methods
:
{
//跳转锚点
goAnchor
(
selector
)
{
var
anchor
=
this
.
$el
.
querySelector
(
selector
);
document
.
documentElement
.
scrollTop
=
anchor
.
offsetTop
-
70
;
},
getDate
(
date
)
{
return
moment
(
date
).
format
(
"YYYY-MM-DD"
);
},
//提交数据
SaveMsg
()
{
this
.
apipost
(
"travelcontract_post_SetTravelContractService"
,
this
.
CtObj
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//跳转至预览
goUrl
()
{
this
.
$router
.
push
({
name
:
"TravelContractDetail"
,
query
:
{
TCID
:
this
.
$route
.
query
.
TCID
,
guestId
:
this
.
CtObj
.
guestId
,
orderID
:
this
.
$route
.
query
.
orderID
,
blank
:
"y"
}
});
},
//提交
submitForm
(
addMsg
)
{
//提交创建、修改表单
this
.
$refs
[
addMsg
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
SaveMsg
();
}
else
{
this
.
Error
(
"请完成必填项"
);
return
false
;
}
});
},
//添加补充协议
addRecord
()
{
let
obj
=
{
specificTime
:
""
,
Address
:
""
,
shoppName
:
""
,
CommodityInformation
:
""
,
stayTime
:
""
,
other
:
""
,
travelSign
:
""
,
IsShow
:
1
};
this
.
CtObj
.
ContractShopList
.
push
(
obj
);
},
//删除补充协议1
delVoluntray
(
index
)
{
this
.
CtObj
.
ContractShopList
.
splice
(
index
,
1
);
},
//添加游客信息
addTourist
()
{
this
.
CtObj
.
ContractGuestList
.
forEach
((
x
,
index
)
=>
{
x
.
IsShow
=
0
;
});
let
obj
=
{
CGuestName
:
""
,
CGuestSex
:
"男"
,
CGuestCertificateType
:
"身份证"
,
CGuestCertificateNum
:
""
,
CGuestTel
:
""
,
CGuestHealth
:
"健康"
,
IsShow
:
1
};
this
.
CtObj
.
ContractGuestList
.
push
(
obj
);
},
//删除游客
delTouristArr
(
index
)
{
this
.
CtObj
.
ContractGuestList
.
splice
(
index
,
1
);
},
//滚动条滚动选中tab
menu
()
{
var
_self
=
this
;
_self
.
scroll
=
(
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
)
+
70
;
//滑动到指定位置相应菜单高亮
var
a_0
=
this
.
$refs
.
anchor0
.
offsetTop
;
var
a_1
=
this
.
$refs
.
anchor1
.
offsetTop
;
var
a_2
=
this
.
$refs
.
anchor2
.
offsetTop
;
var
a_3
=
this
.
$refs
.
anchor3
.
offsetTop
;
var
a_4
=
this
.
$refs
.
anchor4
.
offsetTop
;
var
a_5
=
this
.
$refs
.
anchor5
.
offsetTop
;
if
(
_self
.
scroll
<
a_0
)
{
this
.
ckedIndex
=
0
;
}
else
if
(
_self
.
scroll
>
a_0
&&
_self
.
scroll
<
a_1
)
{
this
.
ckedIndex
=
1
;
}
else
if
(
_self
.
scroll
>
a_2
&&
_self
.
scroll
<
a_3
)
{
this
.
ckedIndex
=
2
;
}
else
if
(
_self
.
scroll
>
a_3
&&
_self
.
scroll
<
a_4
)
{
this
.
ckedIndex
=
3
;
}
else
if
(
_self
.
scroll
>
a_4
&&
_self
.
scroll
<
a_5
)
{
this
.
ckedIndex
=
4
;
}
else
if
(
_self
.
scroll
>
a_5
)
{
this
.
ckedIndex
=
5
;
}
}
},
mounted
()
{
this
.
$nextTick
(
function
()
{
//滚动监听事件
window
.
addEventListener
(
"scroll"
,
this
.
menu
);
});
}
};
</
script
>
src/router/config.js
View file @
0f442408
...
...
@@ -4241,6 +4241,22 @@ export default {
title
:
'单项合同'
},
},
{
path
:
'/DomesticTravelcontract'
,
//境内合同
name
:
'DomesticTravelcontract'
,
component
:
resolve
=>
require
([
'@/components/DomesticTravelcontract'
],
resolve
),
meta
:
{
title
:
'单项合同'
},
},
{
path
:
'/onedayTripContract'
,
//一日游合同
name
:
'onedayTripContract'
,
component
:
resolve
=>
require
([
'@/components/onedayTripContract'
],
resolve
),
meta
:
{
title
:
'一日游合同'
},
},
{
path
:
'/TravelContractDetail'
,
//新电子合同详情
name
:
'TravelContractDetail'
,
...
...
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