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
a38c781b
Commit
a38c781b
authored
May 05, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
9009d17b
63fe4161
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
3651 additions
and
0 deletions
+3651
-0
TravelDaysTrip_Direct.vue
...elmanager/oldTravelGroupControl/TravelDaysTrip_Direct.vue
+800
-0
TravelManager5.vue
...newTravelmanager/oldTravelGroupControl/TravelManager5.vue
+770
-0
dinnerTrip_Direct.vue
...Travelmanager/oldTravelGroupControl/dinnerTrip_Direct.vue
+465
-0
freedomTrip.vue
...ts/newTravelmanager/oldTravelGroupControl/freedomTrip.vue
+197
-0
hotelTrip_Direct.vue
...wTravelmanager/oldTravelGroupControl/hotelTrip_Direct.vue
+488
-0
scienTrip_Direct.vue
...wTravelmanager/oldTravelGroupControl/scienTrip_Direct.vue
+373
-0
titleTrip.vue
...ents/newTravelmanager/oldTravelGroupControl/titleTrip.vue
+40
-0
trifficTrip.vue
...ts/newTravelmanager/oldTravelGroupControl/trifficTrip.vue
+441
-0
warmtipTrip.vue
...ts/newTravelmanager/oldTravelGroupControl/warmtipTrip.vue
+69
-0
config.js
src/router/config.js
+8
-0
No files found.
src/components/newTravelmanager/oldTravelGroupControl/TravelDaysTrip_Direct.vue
0 → 100644
View file @
a38c781b
<
style
>
.TravelDaysTrip
.el-form-item
{
display
:
inline-block
;
}
</
style
>
<
template
>
<div>
<el-form
:model=
"subConfig"
:rules=
"Rules"
ref=
"dayTripForm"
>
<div
class=
"TravelDaysTrip"
:class=
"
{'foldHeight':isFold==1}">
<span
class=
"TMTitle"
><i></i>
线路行程
</span>
<!--
<span
class=
"foldList"
style=
"margin-left:20px"
@
click=
"goUrl('TravelPreview')"
>
预览行程
</span>
-->
<div
class=
"DaysTripTop"
>
<span
class=
"TDTextspan"
>
行程天数
</span>
<span
class=
"TDInputspan"
>
<el-form-item
prop=
"DayNum"
>
<el-input
:disabled=
"isOpenGroup"
class=
"w120 LowNum"
v-model=
"subConfig.DayNum"
@
keyup
.
native=
"checkInteger(subConfig,'DayNum');createLineTrip()"
>
<template
slot=
"append"
>
天
</
template
>
</el-input>
</el-form-item>
</span>
<span
class=
"TDInputspan"
>
<el-form-item
prop=
"NightNum"
>
<el-input
:disabled=
"isOpenGroup"
class=
"w120 LowNum"
v-model=
"subConfig.NightNum"
@
keyup
.
native=
"checkInteger(subConfig,'NightNum')"
>
<
template
slot=
"append"
>
晚
</
template
>
</el-input>
</el-form-item>
</span>
<span
class=
"TDTextspan"
>
集合出发城市
</span>
<span>
<el-form-item
prop=
"StartCityId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w200'
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"subConfig.StartCityId"
filterable
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'SelectDefaultValue'
></el-option>
<el-option
v-for=
"item in StartCity"
:label=
'item.startCityName'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<span
class=
"TDTextspan"
>
返回抵达城市
</span>
<span>
<el-form-item
prop=
"ReturnArriveCityId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w200'
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"subConfig.ReturnArriveCityId"
filterable
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'SelectDefaultValue'
></el-option>
<el-option
v-for=
"item in StartCity"
:label=
'item.startCityName'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
</div>
<div
class=
"TravelDayContent clearfix"
>
<div
class=
"vertical-line"
></div>
<div
class=
"days-box"
v-for=
"(item,index) in subConfig.DayList"
:key=
"item.subCode"
>
<div
class=
"leftDayLine"
>
<div
class=
"dayCircle"
>
D{{index+1}}
</div>
</div>
<div
class=
"rightDayContent"
>
<div
class=
"TD_Operation"
>
<div
class=
"TD_daysMove"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移行程"
placement=
"top-start"
v-if=
"index!=0"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveDays(index,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移行程"
placement=
"top-start"
v-if=
"index!=subConfig.DayList.length-1"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveDays(index,1)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeDaysTrip(index)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"添加"
placement=
"top-start"
>
<i
class=
"iconfont icon-mui-icon-add"
@
click=
"addDaysTrip(index)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"dayscontent hideToggle"
v-show=
"item.isHide"
>
<div
class=
"toggle-box"
@
click=
"changeToggleBox(item)"
>
点击展开
</div>
<div
class=
"daycnt"
>
<div
class=
"d"
>
第{{index+1}}天
</div>
<div
class=
"title-box"
>
<div
class=
"t"
>
{{item.dayArray[0].childItem.Title}}
</div>
</div>
</div>
</div>
<div
class=
"dayscontent"
v-show=
"!item.isHide"
>
<div
class=
"toggle-box"
@
click=
"changeToggleBox(item)"
>
点击折叠
</div>
<div
class=
"daycnt"
>
<div
class=
"d"
>
第{{index+1}}天
</div>
<div
class=
"title-box"
>
<titleTrip
:isOpenGroup=
"isOpenGroup"
v-bind:subItemObj=
"item.dayArray[0]"
>
</titleTrip>
</div>
</div>
<div
v-for=
"(subItem,subIndex) in item.dayArray"
:key=
"subItem.subCode"
>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.traffic"
>
<trifficTrip
v-bind:subItemObj=
"subItem"
v-bind:subIndex=
"subIndex"
v-bind:index=
"index"
v-bind:QueryData=
"subArray"
v-bind:DayList=
"subConfig.DayList"
v-bind:DefaultList=
"trafficSameList"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
v-bind:AllCityList=
"AllCityList"
v-bind:UseTypeArray=
"UseTypeArray"
v-bind:AirPickUp=
"AirPickUp"
v-bind:AirSend=
"AirSend"
v-bind:StartCity=
"StartCity"
></trifficTrip>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.hotel"
>
<span
v-if=
"IsDirect==1"
>
<hotelTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"hotelSameList"
v-bind:subIndex=
"subIndex"
v-bind:DinnerList=
"DinnerList"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></hotelTrip>
</span>
<span
v-else
>
</span>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.scenic"
>
<span
v-if=
"IsDirect==1"
>
<scienTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"scenicSameList"
v-bind:subIndex=
"subIndex"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></scienTrip>
</span>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.dinner"
>
<span
v-if=
"IsDirect==1"
>
<dinnerTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"dinnerSameList"
v-bind:subIndex=
"subIndex"
v-bind:HotelList=
"HotelList"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></dinnerTrip>
</span>
<span
v-else
>
</span>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.freedom"
>
<freedomTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"freedomSameList"
v-bind:subIndex=
"subIndex"
v-bind:index=
"index"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></freedomTrip>
</div>
<div
v-if=
"subItem.Type==$tripUtils.TypeKey.warmtip"
>
<warmtipTrip
v-bind:subItemObj=
"subItem"
v-bind:DefaultList=
"warmtipSameList"
v-bind:subIndex=
"subIndex"
:isOpenGroup=
"isOpenGroup"
v-bind:subTotalIndex=
"item.dayArray.length"
></warmtipTrip>
</div>
</div>
<div
v-if=
"!isOpenGroup"
class=
"tripListSpan"
>
<span
class=
"tripList"
@
click=
"addChildItem(index,typeItem.Type)"
v-for=
"(typeItem,typeIndex) in typeArrayListAll"
:key=
"typeIndex"
>
{{typeItem.Name}}
</span>
</div>
<div
class=
"tripListSpan"
v-else
>
<span
class=
"tripList"
@
click=
"addChildItem(index,typeItem.Type)"
v-for=
"(typeItem,typeIndex) in typeArrayList"
:key=
"typeIndex"
>
{{typeItem.Name}}
</span>
</div>
</div>
</div>
<div
class=
"lastHoverContent"
>
</div>
</div>
</div>
</div>
</el-form>
</div>
</template>
<
script
>
import
trifficTrip
from
"../oldTravelGroupControl/trifficTrip"
;
import
scienTrip
from
"../oldTravelGroupControl/scienTrip_Direct"
;
import
hotelTrip
from
"../oldTravelGroupControl/hotelTrip_Direct"
;
import
dinnerTrip
from
"../oldTravelGroupControl/dinnerTrip_Direct"
;
import
freedomTrip
from
"../oldTravelGroupControl/freedomTrip"
;
import
warmtipTrip
from
"../oldTravelGroupControl/warmtipTrip"
;
import
titleTrip
from
"../oldTravelGroupControl/titleTrip"
;
import
{
callbackify
}
from
"util"
;
export
default
{
/*
* subConfig.DayList:行程天数[循环生成数据使用]
* AllCityList:所有的城市列表
* StartCity:出发城市,集合城市
* UseTypeArray:用车类型
* AirPickUp:接机
* AirSend:送机
*/
props
:
[
"subConfig"
,
"isOpenGroup"
,
"IsDirect"
,
"AllCityList"
,
"StartCity"
,
"UseTypeArray"
,
"AirPickUp"
,
"AirSend"
,
"subArray"
,
"NoticeParameters"
,
],
data
()
{
var
SetOutCityIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择集合出发城市"
));
}
else
{
return
callback
();
}
};
var
ReturnArriveCityIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择返回抵达城市"
));
}
else
{
return
callback
();
}
};
return
{
//类型数组
typeArrayListAll
:
this
.
$tripUtils
.
TypeArray
,
typeArrayList
:[],
//酒店默认叙述
hotelSameList
:
[],
//餐厅默认叙述
dinnerSameList
:
[],
//景点默认叙述
scenicSameList
:
[],
//自由活动默认叙述
freedomSameList
:
[],
//交通默认叙述
trafficSameList
:
[],
//温馨提示默认叙述
warmtipSameList
:
[],
//标题提示默认叙述
titleSameList
:
[],
//下拉框默认值
SelectDefaultValue
:
0
,
tempDinnerType
:
[],
//时间类型
TimeTypeList
:
[],
//折叠展开
isFold
:
""
,
//验证
Rules
:
{
//集合出发城市
StartCityId
:
[
{
validator
:
SetOutCityIdValidate
,
trigger
:
"change"
}
],
//返回抵达城市
ReturnArriveCityId
:
[
{
validator
:
ReturnArriveCityIdValidate
,
trigger
:
"change"
}
],
//天
DayNum
:
[
{
required
:
true
,
message
:
"请填写行程天数"
,
trigger
:
"blur"
}
],
//晚
NightNum
:
[
{
required
:
true
,
message
:
"请填写行程晚数"
,
trigger
:
"blur"
}
]
},
HotelList
:
[],
//所有酒店
DinnerList
:
[]
//所有餐厅
};
},
components
:
{
trifficTrip
:
trifficTrip
,
scienTrip
:
scienTrip
,
hotelTrip
:
hotelTrip
,
dinnerTrip
:
dinnerTrip
,
freedomTrip
:
freedomTrip
,
warmtipTrip
:
warmtipTrip
,
titleTrip
:
titleTrip
},
methods
:
{
changeToggleBox
(
item
)
{
item
.
isHide
=
!
item
.
isHide
;
this
.
$forceUpdate
();
},
goUrl
(
url
)
{
let
id
=
this
.
$route
.
query
.
configId
;
this
.
$router
.
push
({
path
:
url
,
query
:
{
id
:
id
}
});
},
//表单验证
validateForm
()
{
let
flag
=
false
;
var
that
=
this
;
that
.
$refs
[
"dayTripForm"
].
validate
(
valid
=>
{
flag
=
valid
;
});
return
flag
;
},
//生成行程天数
createLineTrip
()
{
if
(
this
.
subConfig
.
DayNum
>
this
.
subConfig
.
DayList
.
length
)
{
for
(
var
i
=
this
.
subConfig
.
DayList
.
length
;
i
<
this
.
subConfig
.
DayNum
;
i
++
)
{
//去掉以前默认的交通
var
dayItem
=
this
.
$tripUtils
.
daysArrayObj
();
dayItem
.
isHide
=
false
;
dayItem
.
dayNum
=
i
+
1
;
var
titleItem
=
this
.
$tripUtils
.
titleObj
();
titleItem
.
DayNum
=
i
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
title
;
daysArrayItem
.
childItem
=
titleItem
;
dayItem
.
dayArray
.
push
(
daysArrayItem
);
this
.
subConfig
.
DayList
.
push
(
dayItem
);
}
}
else
{
//删除多余的项
for
(
var
i
=
this
.
subConfig
.
DayNum
;
i
<
this
.
subConfig
.
DayList
.
length
;
i
++
)
{
var
dayObj
=
this
.
subConfig
.
DayList
[
i
];
dayObj
.
dayArray
.
forEach
((
subItem
,
subIndex
)
=>
{
this
.
commonRemove
(
subItem
.
childItem
.
DayNum
,
subIndex
);
});
}
this
.
subConfig
.
DayList
.
length
=
this
.
subConfig
.
DayNum
;
}
console
.
log
(
"this.sub"
,
this
.
subConfig
);
},
//点击往后追加
addChildItem
(
index
,
type
)
{
switch
(
type
.
toString
())
{
//交通
case
this
.
$tripUtils
.
TypeKey
.
traffic
:
var
trafficItem
=
this
.
$tripUtils
.
trafficObj
();
trafficItem
.
DayNum
=
index
+
1
;
var
subTrafficObj
=
this
.
$tripUtils
.
subTrafficObj
();
//默认下一天的出发城市
var
StartCityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
trafficItem
.
DayNum
-
1
,
index
,
false
);
subTrafficObj
.
StartCityId
=
StartCityId
;
trafficItem
.
SubTraffic
.
push
(
subTrafficObj
);
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
traffic
;
daysArrayItem
.
childItem
=
trafficItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
//景点
case
this
.
$tripUtils
.
TypeKey
.
scenic
:
var
scenicItem
=
this
.
$tripUtils
.
scenicObj
();
scenicItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
scenic
;
//获取城市编号
var
cityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
scenicItem
.
CityId
=
cityId
;
//查询数组
var
qArray
=
this
.
$tripUtils
.
GetCityIdArray
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
scenicItem
.
QCity
=
qArray
.
join
(
","
);
daysArrayItem
.
childItem
=
scenicItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
//酒店
case
this
.
$tripUtils
.
TypeKey
.
hotel
:
var
hotelItem
=
this
.
$tripUtils
.
hotelObj
();
hotelItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
hotel
;
//获取城市编号
var
cityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
//查询数组
var
qArray
=
this
.
$tripUtils
.
GetCityIdArray
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
hotelItem
.
QCity
=
qArray
.
join
(
","
);
hotelItem
.
CityId
=
cityId
;
daysArrayItem
.
childItem
=
hotelItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
//餐厅
case
this
.
$tripUtils
.
TypeKey
.
dinner
:
var
dinnerItem
=
this
.
$tripUtils
.
dinnerObj
();
dinnerItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
dinner
;
//获取城市编号
var
cityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
//查询数组
var
qArray
=
this
.
$tripUtils
.
GetCityIdArray
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
dinnerItem
.
QCity
=
qArray
.
join
(
","
);
dinnerItem
.
CityId
=
cityId
;
daysArrayItem
.
childItem
=
dinnerItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
case
this
.
$tripUtils
.
TypeKey
.
freedom
:
var
freedomItem
=
this
.
$tripUtils
.
dinnerObj
();
freedomItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
freedom
;
//获取城市编号
var
cityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
freedomItem
.
CityId
=
cityId
;
daysArrayItem
.
childItem
=
freedomItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
//温馨提示
case
this
.
$tripUtils
.
TypeKey
.
warmtip
:
var
warmtipItem
=
this
.
$tripUtils
.
warmtipObj
();
warmtipItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
warmtip
;
//获取城市编号
var
cityId
=
this
.
$tripUtils
.
GetCityId
(
this
.
subConfig
.
DayList
,
index
,
this
.
subConfig
.
DayList
[
index
].
dayArray
.
length
,
true
);
warmtipItem
.
CityId
=
cityId
;
daysArrayItem
.
childItem
=
warmtipItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
//标题
case
this
.
$tripUtils
.
TypeKey
.
title
:
var
titleItem
=
this
.
$tripUtils
.
titleObj
();
titleItem
.
DayNum
=
index
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
title
;
daysArrayItem
.
childItem
=
titleItem
;
this
.
subConfig
.
DayList
[
index
].
dayArray
.
push
(
daysArrayItem
);
break
;
}
},
//获取相似线路行程
getSameJourney
()
{
var
msg
=
{
ID
:
this
.
subArray
.
ConfigId
,
LineId
:
this
.
subArray
.
LineID
,
LineteamId
:
this
.
subArray
.
LineteamId
};
this
.
apipost
(
"travel_get_GetTopTenSameJourneyList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
hotelSameList
=
res
.
data
.
data
.
hotelSameList
;
this
.
dinnerSameList
=
res
.
data
.
data
.
dinnerSameList
;
this
.
scenicSameList
=
res
.
data
.
data
.
scenicSameList
;
this
.
freedomSameList
=
res
.
data
.
data
.
freedomSameList
;
this
.
trafficSameList
=
res
.
data
.
data
.
trafficSameList
;
this
.
warmtipSameList
=
res
.
data
.
data
.
warmtipSameList
;
this
.
titleSameList
=
[];
}
},
err
=>
{}
);
},
//上移下移(IsUp:0上移,1下移)
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
subConfig
.
DayList
.
forEach
(
dayItem
=>
{
if
(
dayItem
.
dayNum
==
dayNum
)
{
var
currentItem
=
dayItem
.
dayArray
[
subIndex
];
//上移
if
(
IsUp
==
0
)
{
if
(
subIndex
>
0
)
{
var
upItem
=
dayItem
.
dayArray
[
subIndex
-
1
];
this
.
$set
(
dayItem
.
dayArray
,
subIndex
-
1
,
currentItem
);
this
.
$set
(
dayItem
.
dayArray
,
subIndex
,
upItem
);
}
}
else
{
//下移
if
(
subIndex
!=
dayItem
.
dayArray
.
length
-
1
)
{
var
downItem
=
dayItem
.
dayArray
[
subIndex
+
1
];
this
.
$set
(
dayItem
.
dayArray
,
subIndex
+
1
,
currentItem
);
this
.
$set
(
dayItem
.
dayArray
,
subIndex
,
downItem
);
}
}
}
});
},
//天数上移下移
MoveDays
(
index
,
IsUp
)
{
var
currentItem
=
this
.
subConfig
.
DayList
[
index
];
//上移
if
(
IsUp
==
0
)
{
if
(
index
>
0
)
{
var
upItem
=
this
.
subConfig
.
DayList
[
index
-
1
];
currentItem
.
dayNum
=
currentItem
.
dayNum
-
1
;
upItem
.
dayNum
=
upItem
.
dayNum
+
1
;
if
(
currentItem
.
dayArray
!=
null
&&
currentItem
.
dayArray
.
length
>
0
)
{
currentItem
.
dayArray
.
forEach
(
cItem
=>
{
cItem
.
childItem
.
DayNum
=
currentItem
.
dayNum
;
});
}
if
(
upItem
.
dayArray
!=
null
&&
upItem
.
dayArray
.
length
>
0
)
{
upItem
.
dayArray
.
forEach
(
cItem
=>
{
cItem
.
childItem
.
DayNum
=
upItem
.
dayNum
;
});
}
this
.
$set
(
this
.
subConfig
.
DayList
,
index
-
1
,
currentItem
);
this
.
$set
(
this
.
subConfig
.
DayList
,
index
,
upItem
);
}
}
else
{
//下移
if
(
index
!=
this
.
subConfig
.
DayList
.
length
-
1
)
{
var
downItem
=
this
.
subConfig
.
DayList
[
index
+
1
];
currentItem
.
dayNum
=
currentItem
.
dayNum
+
1
;
downItem
.
dayNum
=
downItem
.
dayNum
-
1
;
if
(
currentItem
.
dayArray
!=
null
&&
currentItem
.
dayArray
.
length
>
0
)
{
currentItem
.
dayArray
.
forEach
(
cItem
=>
{
cItem
.
childItem
.
DayNum
=
currentItem
.
dayNum
;
});
}
if
(
downItem
.
dayArray
!=
null
&&
downItem
.
dayArray
.
length
>
0
)
{
downItem
.
dayArray
.
forEach
(
cItem
=>
{
cItem
.
childItem
.
DayNum
=
downItem
.
dayNum
;
});
}
this
.
$set
(
this
.
subConfig
.
DayList
,
index
+
1
,
currentItem
);
this
.
$set
(
this
.
subConfig
.
DayList
,
index
,
downItem
);
}
}
},
//左右移动
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
subConfig
.
DayList
.
forEach
(
dayItem
=>
{
if
(
dayItem
.
dayNum
==
dayNum
)
{
dayItem
.
dayArray
.
forEach
((
arrItem
,
arrIndex
)
=>
{
if
(
arrIndex
==
subIndex
)
{
var
imgItem
=
arrItem
.
childItem
.
ImaArray
[
imgIndex
];
//左移
if
(
IsMove
==
0
)
{
var
upItem
=
arrItem
.
childItem
.
ImaArray
[
imgIndex
-
1
];
this
.
$set
(
arrItem
.
childItem
.
ImaArray
,
imgIndex
-
1
,
imgItem
);
this
.
$set
(
arrItem
.
childItem
.
ImaArray
,
imgIndex
,
upItem
);
}
else
{
//右移动
var
downItem
=
arrItem
.
childItem
.
ImaArray
[
imgIndex
+
1
];
this
.
$set
(
arrItem
.
childItem
.
ImaArray
,
imgIndex
+
1
,
imgItem
);
this
.
$set
(
arrItem
.
childItem
.
ImaArray
,
imgIndex
,
downItem
);
}
}
});
}
});
},
//公用删除
commonRemove
(
dayNum
,
subIndex
)
{
let
RemoveInfo
=
[];
this
.
subConfig
.
DayList
.
forEach
(
x
=>
{
if
(
x
.
dayNum
==
dayNum
)
{
let
info
=
{
Key
:
0
,
Value
:
0
};
if
(
x
.
dayArray
[
subIndex
].
childItem
.
ID
>
0
)
{
info
.
Key
=
x
.
dayArray
[
subIndex
].
Type
;
//后台枚举类型为7前台的为9
if
(
info
.
Key
==
7
)
{
info
.
Key
=
9
;
}
info
.
Value
=
x
.
dayArray
[
subIndex
].
childItem
.
ID
;
this
.
subConfig
.
RemoveChild
.
push
(
info
);
}
x
.
dayArray
.
splice
(
subIndex
,
1
);
}
});
},
//删除某天行程
removeDaysTrip
(
index
)
{
var
item
=
this
.
subConfig
.
DayList
[
index
];
item
.
dayArray
.
forEach
((
delItem
,
subIndex
)
=>
{
this
.
commonRemove
(
item
.
dayNum
,
subIndex
);
});
this
.
subConfig
.
DayList
.
splice
(
index
,
1
);
this
.
subConfig
.
DayList
.
forEach
((
dayItem
,
dayIndex
)
=>
{
if
(
dayIndex
>=
index
)
{
dayItem
.
dayNum
=
dayIndex
+
1
;
dayItem
.
dayArray
.
forEach
(
subItem
=>
{
subItem
.
childItem
.
DayNum
=
dayIndex
+
1
;
});
}
});
this
.
subConfig
.
DayNum
=
this
.
subConfig
.
DayList
.
length
;
},
//在某天后添加一天行程
addDaysTrip
(
addIndex
)
{
var
array
=
[];
this
.
subConfig
.
DayList
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
addIndex
)
{
array
.
push
(
item
);
}
else
if
(
addIndex
==
index
)
{
array
.
push
(
item
);
//新加一天的行程
var
dayItem
=
this
.
$tripUtils
.
daysArrayObj
();
dayItem
.
isHide
=
false
;
dayItem
.
dayNum
=
item
.
dayNum
+
1
;
var
titleItem
=
this
.
$tripUtils
.
titleObj
();
titleItem
.
DayNum
=
item
.
dayNum
+
1
;
var
daysArrayItem
=
this
.
$tripUtils
.
daysArrayItemObj
();
daysArrayItem
.
Type
=
this
.
$tripUtils
.
TypeKey
.
title
;
daysArrayItem
.
childItem
=
titleItem
;
dayItem
.
dayArray
.
push
(
daysArrayItem
);
array
.
push
(
dayItem
);
}
else
{
item
.
dayNum
=
item
.
dayNum
+
1
;
array
.
push
(
item
);
}
});
this
.
subConfig
.
DayList
=
array
;
this
.
subConfig
.
DayNum
=
array
.
length
;
},
//公用删除图片
commonRemoveImg
(
index
,
subItemObj
)
{
subItemObj
.
childItem
.
ImaArray
.
splice
(
index
,
1
);
},
//点击折叠
fold
()
{
if
(
this
.
isFold
==
""
)
{
this
.
isFold
=
1
;
}
else
{
this
.
isFold
=
""
;
}
},
emitData
()
{
var
TrafficList
=
[];
var
ScenicList
=
[];
var
HotelList
=
[];
var
DinnerList
=
[];
var
FreedomList
=
[];
var
WarmTipList
=
[];
var
TitleList
=
[];
// this.subConfig.DayList.forEach((item, dayIndex) => {
// var rank = 1;
// if (item.dayArray != null && item.dayArray.length > 0) {
// item.dayArray.forEach(subItem => {
// subItem.childItem.Rank = rank;
// subItem.childItem.dayNum = item.dayNum;
// subItem.Type = subItem.Type.toString();
// switch (subItem.Type) {
// case this.$tripUtils.TypeKey.traffic:
// TrafficList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.scenic:
// ScenicList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.hotel:
// HotelList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.dinner:
// DinnerList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.freedom:
// FreedomList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.warmtip:
// WarmTipList.push(subItem.childItem);
// break;
// case this.$tripUtils.TypeKey.title:
// TitleList.push(subItem.childItem);
// break;
// }
// rank++;
// });
// }
// });
this
.
subConfig
.
DayList
.
forEach
((
item
,
dayIndex
)
=>
{
})
var
obj
=
{
RemoveChild
:
this
.
subConfig
.
RemoveChild
,
RemoveImg
:
this
.
subConfig
.
RemoveImg
,
DayNum
:
this
.
subConfig
.
DayNum
,
NightNum
:
this
.
subConfig
.
NightNum
,
StartCityId
:
this
.
subConfig
.
StartCityId
,
ReturnArriveCityId
:
this
.
subConfig
.
ReturnArriveCityId
,
DinnerList
:
DinnerList
,
FreedomList
:
FreedomList
,
HotelList
:
HotelList
,
ScenicList
:
ScenicList
,
TrafficList
:
TrafficList
,
WarmTipList
:
WarmTipList
,
TitleList
:
TitleList
};
this
.
HotelList
=
HotelList
;
this
.
DinnerList
=
DinnerList
;
this
.
$emit
(
"headCallBack"
,
obj
);
}
},
mounted
()
{
//防止首次初始化数据失败
// this.emitData();
this
.
typeArrayList
.
push
(
this
.
$tripUtils
.
TypeArray
[
this
.
$tripUtils
.
TypeArray
.
length
-
1
]);
// this.getSameJourney();
console
.
log
(
this
.
subConfig
,
'subConfigOld'
);
},
created
()
{
if
(
this
.
isOpenGroup
==
undefined
)
{
this
.
isOpenGroup
=
false
;
}
},
computed
:
{
//获取行程天数
getDayNum
()
{
return
this
.
subConfig
.
DayNum
;
},
//获取目的地
// getCountryId() {
// return this.subArray.CountryID;
// },
getDayList
()
{
return
this
.
subConfig
.
DayList
;
}
},
watch
:
{
//监听天数是否改变
getDayNum
(
newValue
,
oldValue
)
{
this
.
createLineTrip
();
},
//监听目的地国家是否改变
// getCountryId(newValue, oldValue) {
// this.createLineTrip();
// },
// subConfig: {
// handler: function(newValue, oldValue) {
// this.emitData();
// },
// deep: true
// }
}
};
</
script
>
\ No newline at end of file
src/components/newTravelmanager/oldTravelGroupControl/TravelManager5.vue
0 → 100644
View file @
a38c781b
<
style
>
@import
"../../../assets/css/newTravelManager.css"
;
@import
"../../../assets/css/endTravelManager.css"
;
</
style
>
<
template
>
<div>
<div
class=
"clearfix"
style=
"margin:auto;width:1200px;"
>
<div
class=
"TravelLeftMenu"
>
<div
class=
"TravelTopTitle"
>
页面导航
</div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==1}" @click.prevent="custormAnchor('firstAnchor',1)">
基础设置
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('secondAnchor',2)">
线路行程
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==3}" @click.prevent="custormAnchor('thirdAnchor',3)">
产品特色
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('fourAnchor',4)">
补充信息
</div>
<div
class=
"TravelLine"
></div>
<div
class=
"TravelNavList"
:class=
"
{'TravelCked':ckedNav==5}" @click.prevent="custormAnchor('fiveAnchor',5)">
团期设置
</div>
<div
class=
"TravelLine"
></div>
</div>
<div
class=
"newTravelRight"
v-loading=
"loading"
>
<TravelConfig
@
headCallBack=
"getConfig"
@
setTravelUploadData=
"setTravelUploadData"
:PostConfig=
"PostConfig"
:TCNUM=
"TCNUM"
id=
"firstAnchor"
:LineList=
"LineList"
></TravelConfig>
<TravelDaysTripDirect
id=
"secondAnchor"
@
headCallBack=
"getDaysTrip"
:NoticeParameters=
"NoticeParameters"
:subConfig=
"journeyList"
:isOpenGroup=
"false"
:IsDirect=
"PostConfig.IsDirect"
v-bind:AllCityList=
"AllCityList"
v-bind:StartCity=
"StartCity"
:UseTypeArray=
"UseTypeArray"
:AirPickUp=
"AirPickUp"
:AirSend=
"AirSend"
@
change=
"handlerChangeData"
:TeamType=
"TeamType"
></TravelDaysTripDirect>
<TravelFeature
ref=
"TravelFeature"
id=
"thirdAnchor"
@
featureCallBack=
"getFeature"
:FeatureData=
"FeatureData"
:TeamType=
"TeamType"
:isNewConfig=
"isNewConfig"
@
unlockFormCommit=
"unlockFormCommit"
></TravelFeature>
<TravelNotice
ref=
"TravelNotice"
id=
"fourAnchor"
@
headCallBack=
"getNotice"
:subArray=
"NoticeParameters"
:NoticeData=
"NoticeData"
v-bind:PostConfig=
"PostConfig"
v-bind:AllCityList=
"AllCityList"
v-bind:CountryID=
"PostConfig.CountryID"
></TravelNotice>
<TravelPrice2
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==1"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:TeamType=
"TeamType"
></TravelPrice2>
<div
class=
"btnFixedDiv"
>
<div
class=
"toTop"
@
click=
"backTop"
>
<i
class=
"iconfont icon-huidaodingbu"
></i>
</div>
<div
v-if=
"modifyType!=2"
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="submitForm(1)">保存
</div>
<div
v-if=
"modifyType!=2"
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="submitForm(2)">提交
</div>
<div
v-if=
"modifyType==2"
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="submitForm(3)" title="另存为新模板">保存
</div>
<div
v-if=
"ConfigId>0"
class=
"DTSaveBtn"
:class=
"
{'disClick':!isSubmit}" @click="goB2B()">预览
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
TravelConfig
from
"../TravelGroupControl/TravelConfig.vue"
;
import
TravelDaysTripDirect
from
"../oldTravelGroupControl/TravelDaysTrip_Direct"
;
import
TravelFeature
from
"../TravelGroupControl/TravelFeature"
;
import
TravelNotice
from
"../TravelGroupControl/TravelNotice"
;
import
TravelPrice2
from
"../TravelGroupControl/TravelPrice2"
;
export
default
{
provide
()
{
return
{
loadConfigInfo
:
this
.
firstLoadConfigInfo
}
},
data
()
{
return
{
ConfigId
:
0
,
//地址栏查询参数
NewConfigId
:
""
,
//configID加密后的字符串【预览使用】
TCNUM
:
''
,
//团控列表传过来的tcnum
NoticeParameters
:
{
ConfigId
:
0
,
//配置编号
CountryID
:
""
,
//国家
IsDirect
:
0
,
//是否直采
LineId
:
0
//线路编号
},
NoticeData
:
{
FeeInclude
:
""
,
FeeNonInclude
:
""
,
ImportantTip
:
""
,
WarmTip
:
""
,
B2BRemark
:
""
,
ShopRemark
:
""
,
VisaRemark
:
""
},
ShopList
:
[],
SelfpayingList
:
[],
AllCityList
:
[],
//基本配置
PostConfig
:
{
ID
:
0
,
StartCityId
:
0
,
LineId
:
0
,
LineteamId
:
0
,
Title
:
""
,
//本团卖点
ProductRecommend
:
""
,
//选择的系列的国家编号
CountryID
:
0
,
RemoveChild
:
[],
//移除的子项
RemoveImg
:
[],
//移除的图片
IsDirect
:
0
,
//是否直采(0-否-1-是)
PriceIsDirect
:
0
,
//是否直采报价(1-否-2-是)
PDFAlias
:
""
,
//pdf别名,
FlightList
:
[],
//航班信息
ShopList
:
[],
//购物店信息
SelfpayingList
:
[],
//自费信息
Feature
:
""
,
//行程特色
fileList
:
[],
VideoStr
:
""
,
//视频地址
//是否更新酒店库存
IsUpdateHotel
:
0
,
OpenTeamDescribe
:
""
,
//开团备注
},
//行程
FeatureData
:
{
ID
:
0
,
ConfigId
:
0
,
FeatureType
:
3
,
FeatureImg
:
""
,
FeatureContent
:
""
,
//自定义内容
FeatureHtml
:
""
,
//行程特色(html)
FeatureHtmlImage
:
""
,
//行程特色(image)
FeatureHtmlJson
:
""
,
//行程特色(Json数据)
FeatureHtmlJsonDelete
:
""
,
//行程特色删除数据
fileList
:
[],
Title
:
""
,
Subtitle
:
""
,
LineName
:
""
,
DayList
:
[],
TemplateId
:
1
,
IsSave
:
false
//是否保存
},
//线路行程
journeyList
:
{
DayNum
:
""
,
//天数
NightNum
:
""
,
//晚上
StartCityId
:
0
,
ReturnArriveCityId
:
0
,
//返回抵达城市
//交通
TrafficList
:
[],
//景点
ScenicList
:
[],
//住宿
HotelList
:
[],
//餐饮
DinnerList
:
[],
//自由活动
FreedomList
:
[],
//温馨提示
WarmTipList
:
[],
RemoveChild
:
[],
//移除的子项
RemoveImg
:
[],
//移除的图片
//线路行程天数
DayList
:
[],
isFileUpload
:
false
//是否是一键上传行程
},
PostPrice
:
""
,
//报价信息
//线路
LineList
:
[],
PostFeature
:
""
,
//行程特色信息
PostNotice
:
""
,
//行程特色其他内容
//配置信息
PostDaysTrip
:
""
,
//每天的行程
PriceList
:
[],
//所有的城市数据
AllCityList
:
[],
StartCity
:
[],
//出发城市集合城市
UseTypeArray
:
[],
//用车类型
AirPickUp
:
0
,
//接机
AirSend
:
0
,
//送机
isgetPrice
:
true
,
realSave
:
1
,
//1:制作报价单,2保存草稿
outerVisible
:
false
,
tripTitle
:
""
,
isSubmit
:
true
,
//选中的导航
ckedNav
:
1
,
modifyType
:
1
,
//1:系列团修改,2:单团修改
modifyTcid
:
0
,
//修改单团期id
TeamType
:
''
,
loading
:
false
,
isNewConfig
:
true
,
};
},
components
:
{
TravelConfig
:
TravelConfig
,
TravelDaysTripDirect
:
TravelDaysTripDirect
,
TravelFeature
:
TravelFeature
,
TravelNotice
:
TravelNotice
,
TravelPrice2
:
TravelPrice2
},
methods
:
{
/*获取行程特色内容对象*/
getFeature
(
featureObj
)
{
this
.
PostFeature
=
featureObj
;
},
handlerChangeData
(
data
)
{
if
(
this
.
FeatureData
.
FeatureHtmlJson
&&
this
.
FeatureData
.
FeatureHtmlJson
.
d
&&
this
.
FeatureData
.
FeatureHtmlJson
.
d
.
length
>
0
)
{
//to do something
}
else
{
//this.$set(this.FeatureData, "DayList", data);
this
.
$refs
.
TravelFeature
.
setNewDate
(
data
);
}
},
/*获取组件配置信息【回调方法】*/
getConfig
(
configObj
)
{
this
.
PostConfig
=
configObj
;
this
.
NoticeParameters
.
ConfigId
=
this
.
PostConfig
.
ConfigId
;
this
.
NoticeParameters
.
CountryID
=
this
.
PostConfig
.
CountryID
;
this
.
NoticeParameters
.
IsDirect
=
this
.
PostConfig
.
IsDirect
;
this
.
NoticeParameters
.
LineId
=
this
.
PostConfig
.
LineId
;
if
(
this
.
ConfigId
==
0
)
{
this
.
FeatureData
.
LineName
=
this
.
PostConfig
.
LineName
;
this
.
FeatureData
.
Subtitle
=
this
.
PostConfig
.
LineTeamName
;
this
.
FeatureData
.
Title
=
this
.
PostConfig
.
Title
;
}
},
/*获取组件报价信息*/
getPrice
(
priceObj
)
{
priceObj
.
forEach
(
objItem
=>
{
var
SaleBranchId
=
""
;
if
(
objItem
.
SaleBranchIdArray
.
length
>
0
)
{
objItem
.
SaleBranchIdArray
.
forEach
(
subItem
=>
{
SaleBranchId
+=
subItem
+
","
;
});
}
if
(
SaleBranchId
!=
""
)
{
var
str
=
SaleBranchId
.
substr
(
0
,
SaleBranchId
.
length
-
1
);
objItem
.
SaleBranchId
=
str
;
}
});
this
.
PostPrice
=
priceObj
;
},
//行程回调
getDaysTrip
(
tripObj
)
{
this
.
PostDaysTrip
=
tripObj
;
},
/*获取行程特色内容对象*/
getFeature
(
featureObj
)
{
this
.
PostFeature
=
featureObj
;
},
/*获取行程特色其他内容*/
getNotice
(
noticeObj
)
{
this
.
PostNotice
=
noticeObj
;
},
//解锁表单重复提交
unlockFormCommit
(
value
)
{
this
.
isSubmit
=
value
;
},
//初始化幻灯片
initFileList
()
{
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
if
(
this
.
PostConfig
.
fileList
.
length
<=
5
)
{
this
.
PostConfig
.
fileList
.
push
(
fileObj
);
}
this
.
FeatureData
.
fileList
.
push
(
fileObj
);
}
},
//提交验证
submitForm
(
SaveType
)
{
// let travelConfigVal = this.$refs["TravelConfig"].validateForm();
// let travelDaysTripVal = this.$refs["TravelDaysTrip"].validateForm();
// if (!travelConfigVal) {
// this.Error("请完善配置信息");
// }
// if (!travelDaysTripVal) {
// this.Error("请完善行程信息");
// }
//if (travelConfigVal && travelDaysTripVal) {
if
(
this
.
isSubmit
)
{
this
.
isSubmit
=
false
;
this
.
SaveData
(
SaveType
);
}
},
/*保存数据*/
SaveData
(
SaveType
)
{
this
.
MsgBus
.
$emit
(
'saveTravel'
,
true
);
this
.
FeatureData
.
IsSave
=
true
;
this
.
submitText
=
"保存中"
;
//团队配置
var
basicData
=
{};
basicData
.
PriceList
=
this
.
PostPrice
;
//配置编号
basicData
.
ID
=
this
.
ConfigId
;
basicData
.
LineId
=
this
.
PostConfig
.
LineId
;
basicData
.
LineteamId
=
this
.
PostConfig
.
LineteamId
;
basicData
.
Title
=
this
.
PostConfig
.
Title
;
basicData
.
OpRemark
=
this
.
PostConfig
.
OpRemark
;
basicData
.
ProductRecommend
=
this
.
PostConfig
.
ProductRecommend
;
basicData
.
VideoStr
=
this
.
PostConfig
.
VideoStr
;
basicData
.
PDFAlias
=
this
.
PostConfig
.
PDFAlias
;
basicData
.
ImgCover
=
this
.
PostConfig
.
ImgCover
;
basicData
.
PriceIsDirect
=
this
.
PostConfig
.
PriceIsDirect
;
basicData
.
IsDirect
=
this
.
PostConfig
.
IsDirect
;
basicData
.
OpenTeamDescribe
=
this
.
PostConfig
.
OpenTeamDescribe
;
basicData
.
RemoveChild
=
this
.
PostConfig
.
RemoveChild
;
basicData
.
TeamType
=
this
.
PostConfig
.
TeamType
;
basicData
.
DayNum
=
(
this
.
PostDaysTrip
&&
this
.
PostDaysTrip
.
DayNum
!=
""
)
?
this
.
PostDaysTrip
.
DayNum
:
0
;
basicData
.
NightNum
=
(
this
.
PostDaysTrip
&&
this
.
PostDaysTrip
.
NightNum
!=
""
)
?
this
.
PostDaysTrip
.
NightNum
:
0
;
basicData
.
StartCityId
=
(
this
.
PostDaysTrip
&&
this
.
PostDaysTrip
.
StartCityId
!=
""
)
?
this
.
PostDaysTrip
.
StartCityId
:
0
;
basicData
.
ReturnArriveCityId
=
(
this
.
PostDaysTrip
&&
this
.
PostDaysTrip
.
ReturnArriveCityId
!=
""
)
?
this
.
PostDaysTrip
.
ReturnArriveCityId
:
0
;
basicData
.
SelfpayingList
=
this
.
PostConfig
.
SelfpayingList
;
basicData
.
ShopList
=
this
.
PostConfig
.
ShopList
;
basicData
.
DinnerList
=
this
.
PostDaysTrip
.
DinnerList
;
basicData
.
FreedomList
=
this
.
PostDaysTrip
.
FreedomList
;
basicData
.
HotelList
=
this
.
PostDaysTrip
.
HotelList
;
basicData
.
ScenicList
=
this
.
PostDaysTrip
.
ScenicList
;
basicData
.
TrafficList
=
this
.
PostDaysTrip
.
TrafficList
;
basicData
.
WarmTipList
=
this
.
PostDaysTrip
.
WarmTipList
;
basicData
.
TitleList
=
this
.
PostDaysTrip
.
TitleList
;
basicData
.
RemoveImg
=
this
.
PostDaysTrip
.
RemoveImg
;
//行程特色数据
var
TripFeature
=
{};
if
(
this
.
PostFeature
==
""
)
{
TripFeature
=
this
.
FeatureData
;
}
else
{
TripFeature
=
this
.
PostFeature
;
}
TripFeature
.
FeatureHtmlJson
=
TripFeature
.
FeatureHtmlJson
?
JSON
.
stringify
(
TripFeature
.
FeatureHtmlJson
)
:
""
;
TripFeature
.
FeatureHtmlJsonDelete
=
TripFeature
.
FeatureHtmlJsonDelete
?
JSON
.
stringify
(
TripFeature
.
FeatureHtmlJsonDelete
)
:
""
;
TripFeature
.
FeeInclude
=
this
.
PostNotice
.
FeeInclude
;
TripFeature
.
FeeNonInclude
=
this
.
PostNotice
.
FeeNonInclude
;
TripFeature
.
ImportantTip
=
this
.
PostNotice
.
ImportantTip
;
TripFeature
.
WarmTip
=
this
.
PostNotice
.
WarmTip
;
TripFeature
.
B2BRemark
=
this
.
PostNotice
.
B2BRemark
;
TripFeature
.
ShopRemark
=
this
.
PostNotice
.
ShopRemark
;
TripFeature
.
VisaRemark
=
this
.
PostNotice
.
VisaRemark
;
if
(
basicData
.
TrafficList
!=
null
&&
basicData
.
TrafficList
.
length
>
0
&&
basicData
.
TrafficList
[
0
].
SubTraffic
!=
null
&&
basicData
.
TrafficList
[
0
].
SubTraffic
.
length
>
0
)
{
basicData
[
"ArriveCityId"
]
=
basicData
.
TrafficList
[
0
].
SubTraffic
[
0
].
ArrivalCityId
;
}
if
(
basicData
.
OpenState
==
1
)
{
basicData
[
"AfterOpenModify"
]
=
true
;
}
//"另存"新增团期
if
(
SaveType
==
3
)
{
basicData
.
TravelInfoIsCopy
=
true
;
}
basicData
.
TeamType
=
this
.
TeamType
;
basicData
.
IsUpdateHotel
=
this
.
PostConfig
.
IsUpdateHotel
;
this
.
apipost
(
"travel_post_SetTravelConfigInfo"
,
basicData
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
//配置编号
TripFeature
.
ConfigId
=
res
.
data
.
data
;
this
.
$refs
.
TravelFeature
.
getHtml
(
TripFeature
,
SaveType
,
this
.
TeamType
);
this
.
$refs
.
TravelPrice
.
closeHotelDialog
();
this
.
$refs
.
TravelPrice
.
initStatus
();
}
else
if
(
res
.
data
.
resultCode
==
10009
)
{
this
.
FeatureData
.
IsSave
=
false
;
//表单重复提交
this
.
isSubmit
=
true
;
}
else
{
this
.
FeatureData
.
IsSave
=
false
;
this
.
Error
(
res
.
data
.
message
);
this
.
isSubmit
=
true
;
this
.
submitText
=
"提交"
;
this
.
$refs
.
TravelFeature
.
del_show
=
true
;
}
},
err
=>
{}
);
},
//初始化团的幻灯片
initFileList
()
{
this
.
PostConfig
.
fileList
=
[];
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
this
.
PostConfig
.
fileList
.
push
(
fileObj
);
}
},
//初始化行程特色幻灯片
initFeatureFile
()
{
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
this
.
FeatureData
.
fileList
.
push
(
fileObj
);
}
},
custormAnchor
(
anchorName
,
index
)
{
// 找到锚点
let
anchorElement
=
document
.
getElementById
(
anchorName
);
// 如果对应id的锚点存在,就跳转到锚点
if
(
anchorElement
)
{
anchorElement
.
scrollIntoView
();
}
this
.
ckedNav
=
index
;
},
//滚动事件
ScrollMethod
()
{
var
that
=
this
;
var
s1
,
s2
,
s3
,
s4
,
s5
;
document
.
getElementsByClassName
(
"frame-box"
)[
0
]
.
addEventListener
(
"scroll"
,
function
()
{
if
(
document
.
getElementById
(
"firstAnchor"
)
!=
null
)
{
s1
=
document
.
getElementById
(
"firstAnchor"
).
offsetTop
;
}
if
(
document
.
getElementById
(
"secondAnchor"
)
!=
null
)
{
s2
=
document
.
getElementById
(
"secondAnchor"
).
offsetTop
;
}
if
(
document
.
getElementById
(
"thirdAnchor"
)
!=
null
)
{
s3
=
document
.
getElementById
(
"thirdAnchor"
).
offsetTop
;
}
if
(
document
.
getElementById
(
"fourAnchor"
)
!=
null
)
{
s4
=
document
.
getElementById
(
"fourAnchor"
).
offsetTop
;
}
if
(
document
.
getElementById
(
"fiveAnchor"
)
!=
null
)
{
s5
=
document
.
getElementById
(
"fiveAnchor"
).
offsetTop
;
}
if
(
s1
>=
this
.
scrollTop
-
50
&&
s1
<=
this
.
scrollTop
+
50
)
{
that
.
ckedNav
=
1
;
}
else
if
(
s2
>=
this
.
scrollTop
-
50
&&
s2
<=
this
.
scrollTop
+
50
)
{
that
.
ckedNav
=
2
;
}
else
if
(
s3
>=
this
.
scrollTop
-
50
&&
s3
<=
this
.
scrollTop
+
50
)
{
that
.
ckedNav
=
3
;
}
else
if
(
s4
>=
this
.
scrollTop
-
50
&&
s4
<=
this
.
scrollTop
+
50
)
{
that
.
ckedNav
=
4
;
}
else
if
(
s5
>=
this
.
scrollTop
-
50
&&
s5
<=
this
.
scrollTop
+
50
)
{
that
.
ckedNav
=
5
;
}
});
},
//返回顶部
backTop
()
{
var
timer
=
setInterval
(
function
()
{
var
scrollTop
=
document
.
getElementsByClassName
(
"frame-box"
)[
0
]
.
scrollTop
;
var
ispeed
=
Math
.
floor
(
-
scrollTop
/
6
);
if
(
scrollTop
==
0
)
{
clearInterval
(
timer
);
}
document
.
getElementsByClassName
(
"frame-box"
)[
0
].
scrollTop
=
scrollTop
+
ispeed
;
},
30
);
},
/*一键上传数据组装*/
setTravelUploadData
(
uploadConfig
)
{
if
(
uploadConfig
!=
undefined
)
{
var
configData
=
JSON
.
parse
(
uploadConfig
);
//基础数据组装
//this.PostConfig.Title = "";
this
.
PostConfig
.
IsDirect
=
0
;
//线路行程组装
let
dayList
=
[];
for
(
var
i
=
0
;
i
<
configData
.
Days
.
length
;
i
++
)
{
let
dayObj
=
configData
.
Days
[
i
];
var
dayItem
=
this
.
$tripUtils
.
tripDayobj
();
dayItem
.
DayNum
=
i
+
1
;
//行程大点
var
titleItem
=
this
.
$tripUtils
.
titleObj
();
titleItem
.
DayNum
=
i
+
1
;
titleItem
.
Title
=
dayObj
.
Title
;
dayItem
.
TitleObj
=
titleItem
;
//交通对象
var
trafficObj
=
this
.
$tripUtils
.
trafficObj
();
trafficObj
.
DayNum
=
i
+
1
;
//交通子对象
var
subTrafficObj
=
this
.
$tripUtils
.
subTrafficObj
();
trafficObj
.
SubTraffic
.
push
(
subTrafficObj
);
dayItem
.
TrafficObj
=
trafficObj
;
//温馨提示
var
warmTipObj
=
this
.
$tripUtils
.
warmtipObj
();
warmTipObj
.
DayNum
=
i
+
1
;
warmTipObj
.
Description
=
dayObj
.
Tips
;
dayItem
.
WarmTipObj
=
warmTipObj
;
dayItem
.
isHide
=
false
;
dayItem
.
isRead
=
false
;
//景点
if
(
dayObj
.
ViewSpotList
.
length
>
0
)
{
dayObj
.
ViewSpotList
.
forEach
((
viewSpot
,
index
)
=>
{
if
((
index
+
1
)
<=
5
)
{
var
scenicObj
=
this
.
$tripUtils
.
scenicObj
();
scenicObj
.
DayNum
=
i
+
1
;
scenicObj
.
CouponsName
=
viewSpot
.
Name
;
scenicObj
.
Description
=
viewSpot
.
Description
;
if
(
viewSpot
.
Imgs
!=
null
&&
viewSpot
.
Imgs
.
length
>
0
)
{
let
imaArray
=
[];
viewSpot
.
Imgs
.
forEach
(
img
=>
{
imaArray
.
push
({
Url
:
img
,
Name
:
""
});
});
scenicObj
.
NewImaArray
=
imaArray
;
scenicObj
.
NewScenicImg
=
JSON
.
stringify
(
scenicObj
.
NewImaArray
);
}
else
{
scenicObj
.
NewImaArray
=
[];
scenicObj
.
NewScenicImg
=
""
;
}
dayItem
.
ScenicArray
.
push
(
scenicObj
);
}
});
}
//餐厅
dayItem
.
DinnerArray
.
push
(
this
.
dinnerUploadFactory
(
i
+
1
,
1
,
dayObj
.
Breakfast
));
dayItem
.
DinnerArray
.
push
(
this
.
dinnerUploadFactory
(
i
+
1
,
2
,
dayObj
.
Lanuch
));
dayItem
.
DinnerArray
.
push
(
this
.
dinnerUploadFactory
(
i
+
1
,
3
,
dayObj
.
Dinner
));
//酒店
var
hotelObj
=
this
.
$tripUtils
.
hotelObj
();
hotelObj
.
DayNum
=
i
+
1
;
hotelObj
.
HotelName
=
dayObj
.
Hotel
;
dayItem
.
HotelArray
.
push
(
hotelObj
);
dayList
.
push
(
dayItem
);
}
this
.
journeyList
.
isFileUpload
=
true
;
this
.
journeyList
.
DayNum
=
configData
.
Days
.
length
;
this
.
journeyList
.
NightNum
=
this
.
journeyList
.
DayNum
-
1
;
this
.
journeyList
.
DayList
=
dayList
;
//产品特色
this
.
FeatureData
.
FeatureType
=
3
;
this
.
FeatureData
.
FeatureContent
=
configData
.
Feature
;
//行程补充信息
this
.
NoticeData
.
FeeInclude
=
configData
.
PriceInCloub
;
this
.
NoticeData
.
FeeNonInclude
=
configData
.
PriceNoInCloub
;
this
.
NoticeData
.
ImportantTip
=
configData
.
PriceNoInCloub
;
this
.
NoticeData
.
WarmTip
=
configData
.
Tips
;
this
.
NoticeData
.
ShopRemark
=
configData
.
Shopping
;
}
},
//餐饮对象上传创建
dinnerUploadFactory
(
dayNum
,
useDinnerType
,
dinnerName
)
{
let
dinnerObj
=
this
.
$tripUtils
.
dinnerObj
();
dinnerObj
.
UseDinnerType
=
useDinnerType
;
dinnerObj
.
DinnerName
=
dinnerName
;
dinnerObj
.
BreakfastUseType
=
0
;
dinnerObj
.
DayNum
=
dayNum
;
return
dinnerObj
;
},
firstLoadConfigInfo
()
{
var
routeName
=
this
.
$route
.
name
;
if
(
routeName
==
'TravelManager2'
){
this
.
TeamType
=
0
;
}
if
(
routeName
==
'TravelManager3'
){
this
.
TeamType
=
1
;
}
if
(
routeName
==
'TravelManager4'
){
this
.
TeamType
=
2
;
}
let
configId
=
this
.
$route
.
query
.
configId
;
this
.
modifyTcid
=
this
.
$route
.
query
.
tcid
;
this
.
TCNUM
=
this
.
$route
.
query
.
TCNUM
;
if
(
this
.
modifyTcid
>
0
)
{
this
.
modifyType
=
2
;
}
else
{
this
.
modifyType
=
1
;
this
.
modifyTcid
=
0
;
}
var
that
=
this
;
if
(
configId
>
0
)
{
this
.
isNewConfig
=
false
;
this
.
ConfigId
=
configId
;
let
msg
=
{
configId
:
configId
,
TeamType
:
this
.
TeamType
};
this
.
loading
=
true
;
this
.
apipost
(
"travel_get_GetTravelConfigMakeInfo"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
var
tempData
=
res
.
data
.
data
;
console
.
log
(
"tempData"
,
tempData
);
if
(
tempData
.
Feature
!=
null
)
{
this
.
FeatureData
.
ID
=
tempData
.
Feature
.
ID
;
this
.
FeatureData
.
ConfigId
=
tempData
.
Feature
.
ConfigId
;
this
.
FeatureData
.
FeatureType
=
tempData
.
Feature
.
FeatureType
;
this
.
FeatureData
.
FeatureImg
=
tempData
.
Feature
.
FeatureImg
;
this
.
FeatureData
.
TemplateId
=
tempData
.
Feature
.
TemplateId
;
this
.
FeatureData
.
FeatureContent
=
tempData
.
Feature
.
FeatureContent
;
//图片列表
this
.
FeatureData
.
fileList
=
tempData
.
Feature
.
FeatureImgList
;
this
.
FeatureData
.
FeatureHtmlJson
=
tempData
.
Feature
.
FeatureHtmlJson
&&
tempData
.
Feature
.
FeatureHtmlJson
!=
""
&&
tempData
.
Feature
.
FeatureType
>
3
?
JSON
.
parse
(
tempData
.
Feature
.
FeatureHtmlJson
)
:
null
;
this
.
FeatureData
.
FeatureHtmlJsonDelete
=
tempData
.
Feature
.
FeatureHtmlJsonDelete
&&
tempData
.
Feature
.
FeatureHtmlJsonDelete
!=
""
&&
tempData
.
Feature
.
FeatureType
>
3
?
JSON
.
parse
(
tempData
.
Feature
.
FeatureHtmlJsonDelete
)
:
null
;
this
.
NoticeData
.
FeeInclude
=
tempData
.
Feature
.
FeeInclude
;
this
.
NoticeData
.
FeeNonInclude
=
tempData
.
Feature
.
FeeNonInclude
;
this
.
NoticeData
.
ImportantTip
=
tempData
.
Feature
.
ImportantTip
;
this
.
NoticeData
.
WarmTip
=
tempData
.
Feature
.
WarmTip
;
this
.
NoticeData
.
B2BRemark
=
tempData
.
Feature
.
B2BRemark
;
this
.
NoticeData
.
ShopRemark
=
tempData
.
Feature
.
ShopRemark
;
this
.
NoticeData
.
VisaRemark
=
tempData
.
Feature
.
VisaRemark
;
}
if
(
tempData
.
PDFAlias
!==
null
&&
tempData
.
PDFAlias
!==
""
)
{
this
.
FeatureData
.
Title
=
tempData
.
PDFAlias
;
}
else
{
this
.
FeatureData
.
Title
=
tempData
.
Title
;
}
if
(
tempData
.
PriceList
!=
null
)
{
this
.
PriceList
=
tempData
.
PriceList
;
}
this
.
FeatureData
.
Subtitle
=
tempData
.
LtName
;
this
.
FeatureData
.
LineName
=
tempData
.
LineName
;
this
.
FeatureData
.
DayList
=
tempData
.
DayList
;
this
.
ConfigId
=
tempData
.
ID
;
//HK 2019-01-08添加 NewConfigId B2B预览使用
this
.
NewConfigId
=
tempData
.
NewConfigId
;
this
.
PostConfig
.
ID
=
tempData
.
ID
;
this
.
PostConfig
.
StartCityId
=
tempData
.
StartCityId
;
this
.
PostConfig
.
LineId
=
tempData
.
LineId
;
this
.
PostConfig
.
LineteamId
=
tempData
.
LineteamId
;
this
.
PostConfig
.
CountryID
=
tempData
.
CountryID
;
//视频地址
this
.
PostConfig
.
VideoStr
=
tempData
.
VideoStr
;
this
.
PostConfig
.
OpenTeamDescribe
=
tempData
.
OpenTeamDescribe
;
this
.
NoticeParameters
.
ConfigId
=
tempData
.
ConfigId
;
this
.
NoticeParameters
.
CountryID
=
tempData
.
CountryID
;
this
.
NoticeParameters
.
IsDirect
=
tempData
.
IsDirect
;
this
.
NoticeParameters
.
LineId
=
tempData
.
LineId
;
this
.
PostConfig
.
ImgCover
=
tempData
.
ImgCover
;
this
.
PostConfig
.
LtName
=
tempData
.
LtName
;
this
.
PostConfig
.
CreateBy
=
tempData
.
CreateBy
;
if
(
tempData
.
ImgCover
!=
""
)
{
if
(
tempData
.
ImgCoverList
.
length
>
0
)
{
this
.
PostConfig
.
fileList
=
tempData
.
ImgCoverList
;
}
}
else
{
this
.
initFileList
();
}
this
.
PostConfig
.
Title
=
tempData
.
Title
;
this
.
PostConfig
.
ProductRecommend
=
tempData
.
ProductRecommend
;
this
.
PostConfig
.
IsSubstitution
=
tempData
.
IsSubstitution
;
this
.
PostConfig
.
IsDirect
=
tempData
.
IsDirect
;
this
.
PostConfig
.
PriceIsDirect
=
tempData
.
PriceIsDirect
;
if
(
tempData
.
FlightList
!=
null
)
{
this
.
PostConfig
.
FlightList
=
tempData
.
FlightList
;
}
if
(
tempData
.
ShopList
!=
null
)
{
this
.
PostConfig
.
ShopList
=
tempData
.
ShopList
;
}
if
(
tempData
.
SelfpayingList
!=
null
)
{
this
.
PostConfig
.
SelfpayingList
=
tempData
.
SelfpayingList
;
}
this
.
journeyList
.
DayNum
=
tempData
.
DayNum
;
this
.
journeyList
.
NightNum
=
tempData
.
NightNum
;
this
.
journeyList
.
ReturnArriveCityId
=
tempData
.
ReturnArriveCityId
;
this
.
journeyList
.
StartCityId
=
tempData
.
StartCityId
;
this
.
journeyList
.
DayList
=
tempData
.
DayList
;
this
.
journeyList
.
DayList
.
forEach
(
x
=>
{
x
[
"HotelChooseArray"
]
=
[];
x
[
"ChooseScenicArray"
]
=
[];
x
[
"isHide"
]
=
false
;
});
if
(
tempData
.
OfferList
!=
null
)
{
this
.
OfferList
=
tempData
.
OfferList
;
}
if
(
tempData
.
LineList
!=
null
)
{
this
.
LineList
=
tempData
.
LineList
;
}
if
(
tempData
.
AllCityList
!=
null
)
{
this
.
AllCityList
=
tempData
.
AllCityList
;
}
if
(
tempData
.
StartCity
!=
null
)
{
this
.
StartCity
=
tempData
.
StartCity
;
}
this
.
UseTypeArray
=
tempData
.
UseTypeArray
;
this
.
AirPickUp
=
tempData
.
AirPickUp
;
this
.
AirSend
=
tempData
.
AirSend
;
this
.
PostConfig
[
"OpenState"
]
=
this
.
OpenState
;
this
.
PostConfig
.
PDFAlias
=
tempData
.
PDFAlias
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading
=
false
;
},
err
=>
{}
);
}
else
{
this
.
initFileList
();
this
.
initFeatureFile
();
this
.
loading
=
true
;
this
.
apipost
(
"travel_get_GetCommonTravelInfo"
,
{
TeamType
:
this
.
TeamType
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
var
tempData
=
res
.
data
.
data
;
if
(
tempData
.
LineList
!=
null
)
{
this
.
LineList
=
tempData
.
LineList
;
}
if
(
tempData
.
AllCityList
!=
null
)
{
this
.
AllCityList
=
tempData
.
AllCityList
;
}
if
(
tempData
.
StartCity
!=
null
)
{
this
.
StartCity
=
tempData
.
StartCity
;
}
this
.
UseTypeArray
=
tempData
.
UseTypeArray
;
this
.
AirPickUp
=
tempData
.
AirPickUp
;
this
.
AirSend
=
tempData
.
AirSend
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading
=
false
;
},
err
=>
{}
);
}
},
goB2B
()
{
let
userInfo
=
this
.
getLocalStorage
();
var
B2BDomain
=
userInfo
.
B2BDomain
;
let
configId
=
this
.
NewConfigId
;
window
.
open
(
B2BDomain
+
"/#/detailTwo/"
+
encodeURIComponent
(
configId
)
+
'/'
+
0
+
"/preview"
,
"_blank"
);
},
},
updated
:
function
()
{
this
.
MsgBus
.
$emit
(
'FeatureDataFlag'
);
},
watch
:
{},
mounted
()
{
this
.
ScrollMethod
();
},
created
()
{
this
.
firstLoadConfigInfo
();
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/dinnerTrip_Direct.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
餐饮
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
v-if=
"!isOpenGroup"
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeDinnerTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span
style=
"margin-left:26px;"
>
餐厅
</span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.DinnerId'"
:rules=
"dinnerTripRules.DinnerId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.DinnerId"
@
visible-change=
"getDinnerList($event)"
@
change=
"changeDinnerList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QDinnerList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<span
class=
"comTravelLeft"
>
套餐
</span>
<span>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.MealId"
@
visible-change=
"getDinnerMealList($event)"
@
change=
"changeDinnerMealList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QDinnerMealList"
:label=
'item.MealName'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</span>
</div>
<div
class=
"TDmealTime"
>
<label
class=
"TDhotelDiner"
>
用餐时段
</label>
<el-checkbox-group
v-model=
"Diner.UseDinerCked"
>
<el-checkbox
v-for=
"item in Diner.UseDinnerType"
:disabled=
"isOpenGroup||!varCanChecked(item)"
:label=
"item.Id"
:key=
'item.Id'
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
<span
class=
"comTravelLeft"
>
用餐时间
</span>
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w120"
v-model=
"subItemObj.childItem.UseTimeHour"
@
keyup
.
native=
"checkInteger(subItemObj.childItem,'UseTimeHour')"
></el-input>
小时
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w120"
v-model=
"subItemObj.childItem.UseTimeMinutes"
@
keyup
.
native=
"checkInteger(subItemObj.childItem,'UseTimeMinutes')"
></el-input>
分钟
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
餐饮
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
v-if=
"!isOpenGroup"
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeDinnerTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"title-box"
>
<div
class=
"TDLeftPlan"
>
<span>
{{
subItemObj
.
childItem
.
DinnerName
}}
</span>
<span>
套餐
</span>
<span>
{{
subItemObj
.
childItem
.
MealName
}}
</span>
<span>
用餐时段
</span>
<span
v-if=
"Diner.UseDinerCked==1"
>
早餐
</span>
<span
v-if=
"Diner.UseDinerCked==2"
>
中餐
</span>
<span
v-if=
"Diner.UseDinerCked==3"
>
晚餐
</span>
<span>
用餐时间
</span>
<span>
{{
subItemObj
.
childItem
.
UseTimeHour
}}
</span>
<span>
小时
</span>
<span>
{{
subItemObj
.
childItem
.
UseTimeMinutes
}}
</span>
<span>
分钟
</span>
</div>
</div>
</div>
<div
class=
"TP_editShow"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"subIndex"
,
"HotelList"
,
"index"
,
"isOpenGroup"
,
"subTotalIndex"
],
data
()
{
var
TimeTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择时间类型"
));
}
else
{
callback
();
}
};
var
DinnerIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择餐厅"
));
}
else
{
callback
();
}
};
return
{
//餐厅列表
QDinnerList
:
[],
//餐厅套餐列表
QDinnerMealList
:
[],
toolbar
:
{
clean
:
true
,
//加粗
font
:
true
,
//字体
narrative
:
true
//叙述,
},
//是否显示编辑框
isShowEdit
:
false
,
dspNone
:
false
,
initialIndex
:
0
,
//text框placeholder
placeholder
:
"请输入餐饮信息"
,
//用餐时段
Diner
:
{
DefaultSelectValue
:
0
,
UseDinerCked
:
[],
UseDinnerType
:
[
{
Id
:
"1"
,
Name
:
"早"
},
{
Id
:
"2"
,
Name
:
"中"
},
{
Id
:
"3"
,
Name
:
"晚"
}
]
},
//餐厅验证
dinnerTripRules
:
{
//时间类型验证
TimeType
:
[
{
validator
:
TimeTypeValidate
,
trigger
:
"change"
}
],
DinnerId
:
[
{
validator
:
DinnerIdValidate
,
trigger
:
"change"
}
]
},
TheDayHotelUserDinner
:
[]
//当天酒店列表
};
},
components
:
{
"my-edit"
:
MyEdit
},
methods
:
{
//获取餐厅列表
getDinnerList
(
event
)
{
if
(
event
)
{
this
.
QDinnerList
=
[];
var
msg
=
{
IsGetPic
:
1
,
IsGetFeature
:
1
,
QCity
:
this
.
subItemObj
.
childItem
.
QCity
};
this
.
apipost
(
"dining_post_GetLineDinnerList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QDinnerList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//餐厅选择改变
changeDinnerList
()
{
if
(
this
.
subItemObj
.
childItem
.
DinnerId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
this
.
QDinnerList
.
find
(
item
=>
{
return
item
.
ID
===
this
.
subItemObj
.
childItem
.
DinnerId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
this
.
subItemObj
.
childItem
.
MealId
=
0
;
this
.
subItemObj
.
childItem
.
MealName
=
""
;
this
.
QDinnerMealList
=
[];
this
.
subItemObj
.
childItem
.
DinnerName
=
obj
.
Name
;
this
.
subItemObj
.
childItem
.
Description
=
obj
.
Feature
;
this
.
subItemObj
.
childItem
.
ImaArray
=
[];
var
dinnerImgList
=
obj
.
PicPath
.
split
(
","
);
for
(
var
i
=
0
;
i
<
dinnerImgList
.
length
;
i
++
)
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
dinnerImgList
[
i
];
fileObj
.
Name
=
""
;
this
.
subItemObj
.
childItem
.
ImaArray
.
push
(
fileObj
);
}
}
}
},
//获取餐厅套餐列表
getDinnerMealList
(
event
)
{
if
(
event
)
{
this
.
QDinnerMealList
=
[];
this
.
apipost
(
"meal_get_GetList"
,
{
DiningId
:
this
.
subItemObj
.
childItem
.
DinnerId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QDinnerMealList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//套餐选择改变
changeDinnerMealList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
MealId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QDinnerMealList
.
find
(
item
=>
{
return
item
.
Id
===
that
.
subItemObj
.
childItem
.
MealId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
MealName
=
obj
.
MealName
;
}
}
},
//上传景点图片
uploadScenImg
(
item
)
{
let
newArr
=
[];
newArr
.
push
(
item
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
fileObj
.
fileName
=
x
.
data
.
FileName
;
item
.
data
.
ImaArray
.
push
(
fileObj
);
});
},
//删除晚餐
removeDinnerTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//删除图片
delImg
(
index
,
subItemObj
)
{
this
.
$parent
.
$parent
.
commonRemoveImg
(
index
,
subItemObj
);
},
varCanChecked
(
dinnerType
)
{
let
canChecked
=
true
;
this
.
TheDayHotelUserDinner
.
forEach
(
x
=>
{
if
(
x
==
dinnerType
.
Id
)
{
canChecked
=
false
;
}
});
return
canChecked
;
},
removeDinerCked
(
id
)
{
let
newUseDinerCked
=
[];
this
.
Diner
.
UseDinerCked
.
forEach
(
x
=>
{
let
isRemove
=
false
;
this
.
TheDayHotelUserDinner
.
forEach
(
y
=>
{
if
(
x
===
y
)
{
isRemove
=
true
;
}
});
if
(
!
isRemove
)
{
newUseDinerCked
.
push
(
x
);
}
});
this
.
Diner
.
UseDinerCked
=
newUseDinerCked
;
},
initTheDayHotelUserDinner
()
{
let
dayNum
=
this
.
subItemObj
.
childItem
.
DayNum
;
this
.
TheDayHotelUserDinner
=
[];
this
.
HotelList
.
forEach
(
x
=>
{
if
(
x
.
DayNum
==
dayNum
)
{
if
(
x
.
UseDinnerType
.
length
>
0
)
{
let
tempDinnerArr
=
x
.
UseDinnerType
.
split
(
","
);
let
reg
=
/^
[
0-9
]
+.
?[
0-9
]
*/
;
tempDinnerArr
.
forEach
(
y
=>
{
if
(
reg
.
test
(
y
))
{
this
.
TheDayHotelUserDinner
.
push
(
y
);
}
});
}
}
});
this
.
TheDayHotelUserDinner
=
Array
.
from
(
new
Set
(
this
.
TheDayHotelUserDinner
)
);
this
.
removeDinerCked
();
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//左右移动
toExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
$parent
.
$parent
.
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
);
},
colseLayer
()
{
this
.
dspNone
=
false
;
},
getPic
(
obj
,
index
)
{
this
.
picObj
=
obj
;
this
.
dspNone
=
true
;
this
.
initialIndex
=
index
;
}
},
created
()
{
if
(
this
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
this
.
subItemObj
.
childItem
.
DinnerId
>
0
)
{
this
.
QDinnerList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
DinnerId
),
Name
:
this
.
subItemObj
.
childItem
.
DinnerName
});
}
if
(
this
.
subItemObj
.
childItem
.
MealId
>
0
)
{
this
.
QDinnerMealList
.
push
({
Id
:
parseInt
(
this
.
subItemObj
.
childItem
.
MealId
),
MealName
:
this
.
subItemObj
.
childItem
.
MealName
});
}
}
},
mounted
()
{
this
.
initTheDayHotelUserDinner
();
if
(
this
.
subItemObj
.
childItem
.
UseDinnerType
!=
""
)
{
var
array
=
this
.
subItemObj
.
childItem
.
UseDinnerType
.
split
(
","
);
if
(
array
.
length
>
0
)
{
array
.
forEach
(
item
=>
{
if
(
item
!=
""
)
{
this
.
Diner
.
UseDinerCked
.
push
(
item
);
}
});
}
}
},
watch
:
{
Diner
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
var
ckedDiner
=
""
;
this
.
Diner
.
UseDinerCked
.
forEach
(
x
=>
{
ckedDiner
=
ckedDiner
+
x
+
","
;
});
if
(
ckedDiner
!=
""
)
{
ckedDiner
=
ckedDiner
.
substring
(
0
,
ckedDiner
.
lastIndexOf
(
","
));
}
this
.
subItemObj
.
childItem
.
UseDinnerType
=
ckedDiner
;
},
deep
:
true
},
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
DinnerImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
);
},
deep
:
true
},
HotelList
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
initTheDayHotelUserDinner
();
},
deep
:
true
},
"subItemObj.childItem.QCity"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getDinnerList
();
},
deep
:
true
}
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/freedomTrip.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
自由活动
</span>
</div>
<span
class=
"datePickContent"
style=
"display:none;"
>
<!--:prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.TimeType'" :rules="freedomTripRules.TimeType"-->
<el-form-item
>
<el-select
:disabled=
"isOpenGroup"
class=
"w160"
placeholder=
"请选择时间"
v-model=
"subItemObj.childItem.TimeType"
>
<el-option
v-for=
"item in TimeTypeList"
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</span>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
v-if=
"!isOpenGroup"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeFreeDomTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
自由活动
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
v-if=
"!isOpenGroup"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeFreeDomTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0&&!isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1&&!isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"TP_editShow"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"subIndex"
,
"index"
,
"isOpenGroup"
,
"subTotalIndex"
,
"TimeTypeList"
],
data
()
{
var
TimeTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择时间类型"
));
}
else
{
callback
();
}
};
return
{
toolbar
:
{
clean
:
false
,
//清除样式
font
:
false
,
//字体
narrative
:
true
//叙述,
},
//是否显示编辑框
isShowEdit
:
false
,
dspNone
:
false
,
initialIndex
:
0
,
//text框placeholder
placeholder
:
'请输入活动信息'
,
DefaultSelectValue
:
0
,
//自由活动验证
freedomTripRules
:
{
//时间类型验证
TimeType
:
[{
validator
:
TimeTypeValidate
,
trigger
:
"change"
}]
}
};
},
components
:
{
"my-edit"
:
MyEdit
},
methods
:
{
//上传景点图片
uploadScenImg
(
item
)
{
let
newArr
=
[];
newArr
.
push
(
item
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
fileObj
.
fileName
=
x
.
data
.
FileName
;
item
.
data
.
ImaArray
.
push
(
fileObj
);
});
},
//删除自由活动
removeFreeDomTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//删除图片
delImg
(
index
,
subItemObj
)
{
this
.
$parent
.
$parent
.
commonRemoveImg
(
index
,
subItemObj
);
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//左右移动
toExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
$parent
.
$parent
.
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
);
},
colseLayer
(){
this
.
dspNone
=
false
;
},
getPic
(
obj
,
index
){
this
.
picObj
=
obj
this
.
dspNone
=
true
;
this
.
initialIndex
=
index
;
},
},
created
()
{
},
watch
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
FreedomImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
);
},
deep
:
true
}
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/hotelTrip_Direct.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
酒店
</span>
</div>
<span
class=
"datePickContent"
style=
"display:none"
>
<el-form-item
>
<el-select
:disabled=
"isOpenGroup"
class=
"w160"
placeholder=
"请选择时间"
v-model=
"subItemObj.childItem.TimeType"
>
<el-option
v-for=
"item in TimeTypeList"
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</span>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span>
入住酒店
</span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'"
:rules=
"hotelTripRules.HotelId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelId"
@
visible-change=
"getHotelList($event)"
@
change=
"changeHotelList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QHotelList"
:label=
'getItemLabel(item)'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<span
class=
"HD_hotelru"
>
<el-checkbox
:disabled=
"isOpenGroup"
v-model=
"subItemObj.childItem.IsSameLevel"
:checked=
"subItemObj.childItem.IsSameLevel===CheckedVaule"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
border
size=
"mini"
>
同级酒店
</el-checkbox>
</span>
<span
class=
"comTravelLeft"
>
房型选择
</span>
<span>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.HotelProductId"
@
visible-change=
"getHotelProductList($event)"
@
change=
"changeHotelProductList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'Diner.DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QHotelProductList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</span>
<span
v-if=
"subItemObj.childItem.IsUseDinner==1"
>
<span
class=
"TDhotelDiner"
>
酒店含餐
</span>
<span>
<el-checkbox-group
v-model=
"Diner.UseDinerCked"
>
<el-checkbox
v-for=
"item in Diner.UseDinnerArray"
:disabled=
"isOpenGroup||!varCanChecked(item)"
:label=
"item.Id"
:key=
'item.Id'
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
</span>
</span>
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
酒店
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"title-box"
>
<div
class=
"TDLeftPlan"
>
<span>
入住酒店
</span>
<span>
{{
subItemObj
.
childItem
.
HotelName
}}
</span>
<span
v-if=
"subItemObj.childItem.IsSameLevel==1"
>
或同级酒店
</span>
<span>
房型
</span>
<span>
{{
subItemObj
.
childItem
.
HotelProductName
}}
</span>
<span
v-if=
"subItemObj.childItem.IsUseDinner==1"
>
<span
class=
"TDhotelDiner"
>
酒店含餐
</span>
<span
v-if=
"Diner.UseDinerCked==1"
>
早餐
</span>
<span
v-if=
"Diner.UseDinerCked==2"
>
中餐
</span>
<span
v-if=
"Diner.UseDinerCked==3"
>
晚餐
</span>
</span>
</div>
</div>
</div>
<div
class=
"TP_editShow"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"DinnerList"
,
"index"
,
"subIndex"
,
"isOpenGroup"
,
"subTotalIndex"
,
"TimeTypeList"
],
data
()
{
var
TimeTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择时间类型"
));
}
else
{
callback
();
}
};
var
HotelIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择酒店"
));
}
else
{
callback
();
}
};
return
{
//酒店列表
QHotelList
:
[],
//酒店房型列表
QHotelProductList
:
[],
toolbar
:
{
clean
:
false
,
//加粗
font
:
false
,
//字体
narrative
:
true
//叙述,
},
dspNone
:
false
,
initialIndex
:
0
,
//选中同级酒店
CheckedVaule
:
1
,
//不选中
UnCheckedVaule
:
0
,
//是否显示编辑框
isShowEdit
:
false
,
//text框placeholder
placeholder
:
"请输入酒店信息"
,
//酒店含餐
Diner
:
{
DefaultSelectValue
:
0
,
UseDinerCked
:
[],
UseDinnerType
:
[
{
Id
:
"1"
,
Name
:
"早"
},
{
Id
:
"2"
,
Name
:
"中"
},
{
Id
:
"3"
,
Name
:
"晚"
}
],
UseDinnerArray
:
[]
},
//酒店验证
hotelTripRules
:
{
//时间类型验证
TimeType
:
[
{
validator
:
TimeTypeValidate
,
trigger
:
"change"
}
],
HotelId
:
[
{
validator
:
HotelIdValidate
,
trigger
:
"change"
}
]
},
TheDayUserDinner
:
[]
//当天餐厅用餐情况
};
},
components
:
{
"my-edit"
:
MyEdit
},
methods
:
{
//获取酒店列表
getHotelList
(
event
)
{
if
(
event
)
{
var
msg
=
{
IsGetPic
:
1
,
IsGetRemark
:
1
,
QCity
:
this
.
subItemObj
.
childItem
.
QCity
};
this
.
apipost
(
"hotel_post_GetLineHotelList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QHotelList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//酒店选择改变
changeHotelList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
HotelId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QHotelList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
subItemObj
.
childItem
.
HotelId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
HotelProductId
=
0
;
that
.
subItemObj
.
childItem
.
HotelProductName
=
""
;
that
.
QHotelProductList
=
[];
that
.
Diner
.
UseDinnerArray
=
[];
that
.
subItemObj
.
childItem
.
ImaArray
=
[];
that
.
subItemObj
.
childItem
.
Description
=
obj
.
Descriptions
;
that
.
subItemObj
.
childItem
.
ImaArray
=
obj
.
imgList
;
that
.
subItemObj
.
childItem
.
IsUseDinner
=
obj
.
IsUseDinner
;
that
.
subItemObj
.
childItem
.
HotelName
=
obj
.
Name
;
let
useDinnerTypeStr
=
that
.
subItemObj
.
childItem
.
UseDinnerType
;
if
(
that
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
obj
.
UseDinnerType
==
null
||
!
(
obj
.
UseDinnerType
.
length
>
0
))
{
that
.
Diner
.
UseDinerCked
=
[];
that
.
subItemObj
.
childItem
.
UseDinnerType
=
""
;
}
else
{
let
useDinnerTypeStr
=
that
.
subItemObj
.
childItem
.
UseDinnerType
;
if
(
useDinnerTypeStr
!=
null
&&
useDinnerTypeStr
.
length
>
0
)
{
let
objUseDinnerTypeArr
=
obj
.
UseDinnerType
.
split
(
","
);
let
useDinnerTypeArr
=
useDinnerTypeStr
.
split
(
","
);
let
tmpDinnerTypeArr
=
[];
useDinnerTypeArr
.
forEach
(
x
=>
{
let
isRemove
=
true
;
objUseDinnerTypeArr
.
forEach
(
y
=>
{
if
(
x
==
y
)
{
isRemove
=
false
;
}
});
if
(
!
isRemove
)
{
tmpDinnerTypeArr
.
push
(
x
);
}
});
that
.
subItemObj
.
childItem
.
UseDinnerType
=
tmpDinnerTypeArr
.
join
(
","
);
that
.
Diner
.
UseDinerCked
=
tmpDinnerTypeArr
;
}
}
}
else
{
if
(
obj
.
UseDinnerType
!=
null
&&
obj
.
UseDinnerType
.
length
>
0
)
{
that
.
Diner
.
UseDinerCked
=
obj
.
UseDinnerType
.
split
(
","
);
}
}
let
useDinnerTypeArry
=
[];
if
(
obj
.
UseDinnerType
!=
null
&&
obj
.
UseDinnerType
.
length
>
0
)
{
useDinnerTypeArry
=
obj
.
UseDinnerType
.
split
(
","
);
}
useDinnerTypeArry
.
forEach
(
y
=>
{
that
.
Diner
.
UseDinnerType
.
forEach
(
DinerTypeItem
=>
{
if
(
y
==
DinerTypeItem
.
Id
)
{
that
.
Diner
.
UseDinnerArray
.
push
(
DinerTypeItem
);
}
});
});
that
.
Diner
.
UseDinnerArray
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"Id"
)
);
}
}
},
//获取酒店房型列表
getHotelProductList
(
event
)
{
if
(
event
)
{
this
.
apipost
(
"dict_post_HotelProduc_GetList"
,
{
Hotel_ID
:
this
.
subItemObj
.
childItem
.
HotelId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QHotelProductList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//产品选择改变
changeHotelProductList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
HotelProductId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QHotelProductList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
subItemObj
.
childItem
.
HotelProductId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
this
.
subItemObj
.
childItem
.
HotelProductName
=
obj
.
Name
;
}
}
},
//上传景点图片
uploadScenImg
(
item
)
{
let
newArr
=
[];
newArr
.
push
(
item
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
fileObj
.
fileName
=
x
.
data
.
FileName
;
item
.
data
.
ImaArray
.
push
(
fileObj
);
});
},
//删除酒店
removeHotelTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//删除图片
delImg
(
index
,
subItemObj
)
{
this
.
$parent
.
$parent
.
commonRemoveImg
(
index
,
subItemObj
);
},
initTheDayUserDinner
()
{
let
dayNum
=
this
.
subItemObj
.
childItem
.
DayNum
;
this
.
TheDayUserDinner
=
[];
this
.
DinnerList
.
forEach
(
x
=>
{
if
(
x
.
DayNum
==
dayNum
)
{
if
(
x
.
UseDinnerType
.
length
>
0
)
{
let
tempDinnerArr
=
x
.
UseDinnerType
.
split
(
","
);
let
reg
=
/^
[
0-9
]
+.
?[
0-9
]
*/
;
tempDinnerArr
.
forEach
(
y
=>
{
if
(
reg
.
test
(
y
))
{
this
.
TheDayUserDinner
.
push
(
y
);
}
});
}
}
});
this
.
TheDayUserDinner
=
Array
.
from
(
new
Set
(
this
.
TheDayUserDinner
));
},
varCanChecked
(
dinnerType
)
{
let
canChecked
=
true
;
this
.
TheDayUserDinner
.
forEach
(
x
=>
{
if
(
x
==
dinnerType
.
Id
)
{
canChecked
=
false
;
}
});
return
canChecked
;
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//左右移动
toExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
$parent
.
$parent
.
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
);
},
colseLayer
(){
this
.
dspNone
=
false
;
},
getPic
(
obj
,
index
){
this
.
picObj
=
obj
this
.
dspNone
=
true
;
this
.
initialIndex
=
index
;
},
getItemLabel
(
item
){
let
returnName
=
item
.
Name
;
if
(
item
.
Inventory
>=
0
){
returnName
=
returnName
+
" "
+
item
.
Inventory
;
}
return
returnName
;
}
},
mounted
()
{
if
(
this
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
this
.
subItemObj
.
childItem
.
HotelId
>
0
)
{
this
.
QHotelList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
HotelId
),
Name
:
this
.
subItemObj
.
childItem
.
HotelName
});
}
if
(
this
.
subItemObj
.
childItem
.
HotelProductId
>
0
)
{
this
.
QHotelProductList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
HotelProductId
),
Name
:
this
.
subItemObj
.
childItem
.
HotelProductName
});
}
}
},
watch
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
HotelImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
);
},
deep
:
true
},
"Diner.UseDinerCked"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
UseDinnerType
=
this
.
Diner
.
UseDinerCked
.
join
(
","
);
}
},
DinnerList
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
initTheDayUserDinner
();
},
deep
:
true
},
"subItemObj.childItem.QCity"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getHotelList
();
},
deep
:
true
}
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/scienTrip_Direct.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
景点
</span>
</div>
<span
class=
"datePickContent"
style=
"display:none;"
>
<el-form-item>
<el-select
:disabled=
"isOpenGroup"
class=
"w160"
placeholder=
"请选择时间"
v-model=
"subItemObj.childItem.TimeType"
>
<el-option
v-for=
"item in TimeTypeList"
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</el-form-item>
</span>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeScienTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span>
景点选择
</span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.CouponsId'"
:rules=
"scienTripRules.CouponsId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subItemObj.childItem.CouponsId"
@
visible-change=
"getQScenicList($event)"
@
change=
"changeQScenicList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QScenicList"
:label=
'getItemLabel(item)'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<span
class=
"comTravelLeft"
>
门票
</span>
<span>
<el-select
:disabled=
"isOpenGroup"
class=
'w160'
filterable
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"subItemObj.childItem.CouponsTicketId"
@
visible-change=
"getTicketList($event)"
@
change=
"changeTicketList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in QTicketList"
:label=
'item.TicketName'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</span>
</div>
<div
class=
"TDRightPlan"
>
<label
class=
"comTravelLeft"
>
游玩时间
</label>
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w120"
v-model=
"subItemObj.childItem.PlayTimeHour"
@
keyup
.
native=
"checkInteger(subItemObj.childItem,'PlayTimeHour')"
maxlength=
"2"
></el-input>
小时
<el-input
:disabled=
"isOpenGroup"
type=
"text"
class=
"w120"
v-model=
"subItemObj.childItem.PlayTimeMinutes"
@
keyup
.
native=
"checkInteger(subItemObj.childItem,'PlayTimeMinutes')"
maxlength=
"2"
></el-input>
分钟
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
/>
<div
class=
"imgzhe"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
>
<div
class=
"clearfix"
style=
"text-align:center;"
>
<div
class=
"re-delte"
@
click
.
stop=
"delImg(index,subItemObj)"
><i
class=
"iconfont icon-xingzhuang"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if=
"index!=0"
><i
class=
"iconfont icon-zuoyi"
></i></div>
<div
class=
"re-delte"
@
click
.
stop=
"toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if=
"index!=subItemObj.childItem.ImaArray.length-1"
><i
class=
"iconfont icon-youyi"
></i></div>
</div>
</div>
</div>
</div>
<div
class=
"rightAddImg"
>
<el-upload
:file-list=
"subItemObj.childItem.ImaArray"
:http-request=
"uploadScenImg"
:data=
"subItemObj.childItem"
:multiple=
"true"
accept=
"image/jpeg,image/gif,image/png,image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-img_haha"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
景点
</span>
</div>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
v-if=
"!isShowEdit"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeScienTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"title-box"
>
<div
class=
"TDLeftPlan"
>
<span>
{{
subItemObj
.
childItem
.
CouponsName
}}
</span>
<span
class=
"comTravelLeft"
>
门票
</span>
<span>
{{
subItemObj
.
childItem
.
CouponsTicketName
}}
</span>
<span>
游玩时间
</span>
<span>
{{
subItemObj
.
childItem
.
PlayTimeHour
}}
</span>
<span>
小时
</span>
<span>
{{
subItemObj
.
childItem
.
PlayTimeMinutes
}}
</span>
<span>
分钟
</span>
</div>
</div>
</div>
<div
class=
"TP_editShow"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
<div
class=
"SiencDiv clearfix"
>
<div
class=
"ScLeftImg"
>
<div
class=
"TFimgList"
v-for=
"(item,index) in subItemObj.childItem.ImaArray"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
/>
<img
v-else
:src=
"item.Url"
@
click=
"getPic(subItemObj.childItem.ImaArray,index)"
/>
</div>
</div>
</div>
</div>
<div
v-if=
"dspNone"
class=
"viewBigPicLayer myPiclayer"
@
click=
"colseLayer"
>
<i
@
click=
"colseLayer"
class=
"el-icon-circle-close-outline clolseViewBigPicLayer"
></i>
<el-carousel
height=
"600px"
:initial-index=
'initialIndex'
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
<img
style=
"width:100%;"
:src=
"item.Url"
/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"subIndex"
,
"index"
,
"isOpenGroup"
,
"subTotalIndex"
,
"TimeTypeList"
],
data
()
{
var
TimeTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择时间类型"
));
}
else
{
callback
();
}
};
var
CouponsIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择景点"
));
}
else
{
callback
();
}
};
return
{
toolbar
:
{
clean
:
false
,
//加粗
font
:
false
,
//字体
narrative
:
true
//叙述,
},
QScenicList
:
[],
QTicketList
:
[],
DefaultSelectValue
:
0
,
//是否显示编辑框
isShowEdit
:
false
,
dspNone
:
false
,
initialIndex
:
0
,
//text框placeholder
placeholder
:
"请输入景点信息"
,
//景点验证
scienTripRules
:
{
//时间类型验证
TimeType
:
[{
validator
:
TimeTypeValidate
,
trigger
:
"change"
}],
CouponsId
:
[{
validator
:
CouponsIdValidate
,
trigger
:
"change"
}]
}
};
},
components
:
{
"my-edit"
:
MyEdit
},
methods
:
{
//获取景区列表
getQScenicList
(
event
)
{
if
(
event
)
{
this
.
QScenicList
=
[];
var
msg
=
{
IsGetPic
:
1
,
IsGetFeature
:
1
,
QCity
:
this
.
subItemObj
.
childItem
.
QCity
};
this
.
apipost
(
"ticketcoupons_post_GetLineScienList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QScenicList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//选择改变
changeQScenicList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
CouponsId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QScenicList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
subItemObj
.
childItem
.
CouponsId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
CouponsTicketId
=
0
;
that
.
subItemObj
.
childItem
.
CouponsTicketName
=
""
;
that
.
subItemObj
.
childItem
.
ImaArray
=
[];
that
.
QTicketList
=
[];
that
.
subItemObj
.
childItem
.
CouponsName
=
obj
.
Name
;
that
.
subItemObj
.
childItem
.
Description
=
obj
.
Feature
;
if
(
obj
.
PicPath
!=
undefined
&&
obj
.
PicPath
!=
""
)
{
var
scenImgList
=
obj
.
PicPath
.
split
(
","
);
for
(
var
i
=
0
;
i
<
scenImgList
.
length
;
i
++
)
{
var
fileObj
=
that
.
$commonUtils
.
FileObject
();
if
(
scenImgList
[
i
]
!=
""
)
{
fileObj
.
Url
=
that
.
domainManager
().
ViittoFileUrl
+
scenImgList
[
i
];
fileObj
.
Name
=
""
;
that
.
subItemObj
.
childItem
.
ImaArray
.
push
(
fileObj
);
}
}
}
}
}
},
//获取景区门票列表
getTicketList
(
event
)
{
if
(
event
)
{
this
.
QTicketList
=
[];
this
.
apipost
(
"ticketcouponsticket_get_GetList"
,
{
CouponsId
:
this
.
subItemObj
.
childItem
.
CouponsId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QTicketList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//门票选择
changeTicketList
()
{
var
that
=
this
;
if
(
that
.
subItemObj
.
childItem
.
CouponsTicketId
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
QTicketList
.
find
(
item
=>
{
return
item
.
Id
==
that
.
subItemObj
.
childItem
.
CouponsTicketId
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
CouponsTicketName
=
obj
.
TicketName
;
}
}
},
//删除景区
removeScienTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//删除图片
delImg
(
index
,
subItemObj
)
{
this
.
$parent
.
$parent
.
commonRemoveImg
(
index
,
subItemObj
);
},
//上传景点图片
uploadScenImg
(
item
)
{
let
newArr
=
[];
newArr
.
push
(
item
.
file
);
let
path
=
"/Upload/DMC/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
var
fileObj
=
this
.
$commonUtils
.
FileObject
();
fileObj
.
Url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
fileObj
.
fileName
=
x
.
data
.
FileName
;
item
.
data
.
ImaArray
.
push
(
fileObj
);
});
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//左右移动
toExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
)
{
this
.
$parent
.
$parent
.
ExchangeImg
(
dayNum
,
subIndex
,
imgIndex
,
IsMove
);
},
colseLayer
()
{
this
.
dspNone
=
false
;
},
getPic
(
obj
,
index
)
{
this
.
picObj
=
obj
this
.
dspNone
=
true
;
this
.
initialIndex
=
index
;
},
getItemLabel
(
item
){
let
returnName
=
item
.
Name
;
if
(
item
.
Inventory
>=
0
){
returnName
=
returnName
+
" "
+
item
.
Inventory
;
}
return
returnName
;
}
},
created
()
{
if
(
this
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
this
.
subItemObj
.
childItem
.
CouponsId
>
0
)
{
this
.
QScenicList
.
push
({
ID
:
parseInt
(
this
.
subItemObj
.
childItem
.
CouponsId
),
Name
:
this
.
subItemObj
.
childItem
.
CouponsName
});
}
if
(
this
.
subItemObj
.
childItem
.
CouponsTicketId
>
0
)
{
this
.
QTicketList
.
push
({
Id
:
parseInt
(
this
.
subItemObj
.
childItem
.
CouponsTicketId
),
TicketName
:
this
.
subItemObj
.
childItem
.
CouponsTicketName
});
}
}
},
mounted
()
{},
watch
:
{
subItemObj
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
subItemObj
.
childItem
.
ScenicImg
=
JSON
.
stringify
(
this
.
subItemObj
.
childItem
.
ImaArray
);
},
deep
:
true
},
"subItemObj.childItem.QCity"
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
getQScenicList
();
},
deep
:
true
}
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/titleTrip.vue
0 → 100644
View file @
a38c781b
<
template
>
<div>
<div
class=
"TCtraffic clearfix"
>
<div>
<span
class=
"datePickContent"
style=
"background-color:transparent"
>
<el-form-item>
<el-input
v-model=
"subItemObj.childItem.Title"
class=
""
placeholder=
"行程大点"
></el-input>
</el-form-item>
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"isOpenGroup"
],
data
()
{
return
{
toolbar
:
{
clean
:
true
,
//加粗
font
:
true
,
//字体
narrative
:
true
//叙述,
},
//是否显示编辑框
isShowEdit
:
false
,
//text框placeholder
placeholder
:
'请输入行程大点信息'
};
},
methods
:
{
},
components
:
{
"my-edit"
:
MyEdit
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/trifficTrip.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"edit"
v-if=
"isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
交通
</span>
</div>
<div
v-if=
"!isOpenGroup"
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeTrifficTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
<div
class=
"TDplanList clearfix"
>
<div
class=
"TDLeftPlan"
>
<span
v-for=
"(subTraffic,subTrafficIndex) in subItemObj.childItem.SubTraffic"
>
<span
v-if=
"subTrafficIndex==0"
>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.SubTraffic.'+subTrafficIndex+'.StartCityId'"
:rules=
"trifficTripRules.StartCityId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w120'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subTraffic.StartCityId"
@
visible-change=
"GetDepartList1($event)"
@
change=
"changeGetDepartList(subTraffic.StartCityId)"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in DepartList1"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
<!--显示交通类型-->
<span
class=
"TDArrivalType"
>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.SubTraffic.'+subTrafficIndex+'.ArrivalType'"
:rules=
"trifficTripRules.ArrivalType"
>
<el-select
:disabled=
"isOpenGroup"
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"subTraffic.ArrivalType"
>
<el-option
v-for=
"item in ArrivalTypeArray"
:value=
'item.ID'
:key=
'item.ID'
>
<i
:class=
"item.ClassStr"
></i>
</el-option>
</el-select>
</el-form-item>
<i
v-if=
"subTraffic.ArrivalType==1"
class=
"iconfont icon-feiji feiji"
></i>
<i
v-if=
"subTraffic.ArrivalType==2"
class=
"iconfont icon-dabaxiaoba daba"
></i>
<i
v-if=
"subTraffic.ArrivalType==3"
class=
"iconfont icon--lunchuan lunchuan"
></i>
<i
v-if=
"subTraffic.ArrivalType==4"
class=
"iconfont icon-huoche huoche"
></i>
</span>
<span>
<el-form-item
:prop=
"'DayList.'+index+'.dayArray.'+subIndex+'.childItem.SubTraffic.'+subTrafficIndex+'.ArrivalCityId'"
:rules=
"trifficTripRules.ArrivalCityId"
>
<el-select
:disabled=
"isOpenGroup"
class=
'w120'
:placeholder=
"$t('pub.pleaseSel')"
filterable
v-model=
"subTraffic.ArrivalCityId"
@
visible-change=
"GetArrivalList1($event)"
@
change=
"changeArrivalCity(subTraffic.ArrivalCityId)"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'DefaultSelectValue'
></el-option>
<el-option
v-for=
"item in ArriveList1"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</span>
</span>
<!--增加交通计划-->
<span
v-if=
"!isOpenGroup"
class=
"addTrafficPlan"
@
click=
"addTrafficPlan(subItemObj)"
>
+
</span>
<!--减少交通计划-->
<span
v-if=
"subItemObj.childItem.SubTraffic.length>1&&!isOpenGroup"
class=
"addTrafficPlan"
@
click=
"minusTrafficPlan(subItemObj)"
>
-
</span>
</div>
</div>
<div
class=
"useCar"
>
<el-checkbox
v-model=
"subItemObj.childItem.IsUseBus"
:checked=
"subItemObj.childItem.IsUseBus===CheckedVaule"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
border
size=
"mini"
>
用车
</el-checkbox>
</div>
</div>
<div
class=
"TDplanList TDRightPlan"
v-if=
'subItemObj.childItem.IsUseBus===CheckedVaule'
>
<div
class=
"useCarPlan"
><label>
用车计划
</label>
<span
v-if=
"index==0"
:class=
"
{'ListCked':subItemObj.childItem.AirportPickUp==1}" @click="changeAirportType(1)">
{{
AirPickUp
}}
</span>
<span
v-if=
"index==DayList.length-1"
:class=
"
{'ListCked':subItemObj.childItem.AirportPickUp==2}" @click="changeAirportType(2)">
{{
AirSend
}}
</span>
</div>
<div
class=
"clearfix"
>
<div
v-if=
"!isOpenGroup"
class=
"useTypeDiv"
v-for=
"useTypeItem in UseTypeArray"
:key=
"useTypeItem.subCode"
>
<span
:class=
"
{'ListCked':subItemObj.childItem.UseType==useTypeItem.Id}" @click="UseTypeClick( subItemObj.childItem,useTypeItem.Id)">
{{
useTypeItem
.
Name
}}
</span>
</div>
<div
v-if=
"isOpenGroup"
class=
"useTypeDiv"
v-for=
"useTypeItem in UseTypeArray"
:key=
"useTypeItem.subCode"
>
<span
:class=
"
{'ListCked':subItemObj.childItem.UseType==useTypeItem.Id}">
{{
useTypeItem
.
Name
}}
</span>
</div>
<div>
<el-input
:disabled=
"isOpenGroup"
class=
"w135"
v-model=
"subItemObj.childItem.UseTime"
@
keyup
.
native=
"checkInteger(subItemObj.childItem,'UseTime')"
placeholder=
"请输入用车小时"
></el-input>
</div>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
></my-edit>
</div>
</div>
<div
class=
"read"
v-if=
"!isShowEdit"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
交通
</span>
<div
v-if=
"!isOpenGroup"
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
v-if=
"!isShowEdit"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=1"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeTrifficTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"title-box"
>
<span
v-for=
"(subTraffic,subTrafficIndex) in subItemObj.childItem.SubTraffic"
:key=
"subTrafficIndex"
>
<span
v-if=
"subTrafficIndex==0"
>
{{
subTraffic
.
StartCityName
}}
</span>
<!--显示交通类型-->
<span>
<i
v-if=
"subTraffic.ArrivalType==1"
class=
"iconfont icon-feiji feiji"
></i>
<i
v-if=
"subTraffic.ArrivalType==2"
class=
"iconfont icon-dabaxiaoba daba"
></i>
<i
v-if=
"subTraffic.ArrivalType==3"
class=
"iconfont icon--lunchuan lunchuan"
></i>
<i
v-if=
"subTraffic.ArrivalType==4"
class=
"iconfont icon-huoche huoche"
></i>
</span>
<!--最后一天的交通城市-->
<span
v-if=
"index==DayList.length-1 && subTrafficIndex==subItemObj.childItem.SubTraffic.length-1 "
>
{{
subTraffic
.
ArrivalCityName
}}
</span>
<!--中转城市-->
<span
v-else-if=
"subTrafficIndex!=subItemObj.childItem.SubTraffic.length-1"
>
{{
subTraffic
.
ArrivalCityName
}}
</span>
<span
v-else
>
{{
subTraffic
.
ArrivalCityName
}}
</span>
</span>
</div>
<div
class=
"use"
>
<span
class=
"none"
v-if=
'subItemObj.childItem.IsUseBus===CheckedVaule'
>
用车计划
<span
v-if=
"subItemObj.childItem.AirportPickUp==1"
>
接机
</span>
<span
v-if=
"subItemObj.childItem.AirportPickUp==2"
>
送机
</span>
<span
v-if=
"subItemObj.childItem.UseType==1"
>
全天
</span>
<span
v-if=
"subItemObj.childItem.UseType==2"
>
半天
</span>
<span>
{{
subItemObj
.
childItem
.
UseTime
}}
</span>
<span>
小时
</span>
</span>
<span
class=
"none"
v-else
>
不用车
</span>
</div>
</div>
<div
class=
"TP_editShow"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"index"
,
"DayList"
,
"DefaultList"
,
"subIndex"
,
"QueryData"
,
"isOpenGroup"
,
"subTotalIndex"
,
"AllCityList"
,
//所有的城市数据
"TimeTypeList"
,
"UseTypeArray"
,
"AirPickUp"
,
"AirSend"
],
data
()
{
var
StartCityIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择出发城市"
));
}
else
{
callback
();
}
};
var
ArrivalTypeValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择交通类型"
));
}
else
{
callback
();
}
};
var
ArrivalCityIdValidate
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
0
)
{
callback
(
new
Error
(
"请选择到达城市"
));
}
else
{
callback
();
}
};
return
{
//下拉框默认值
DefaultSelectValue
:
0
,
//编辑器选项
toolbar
:
{
clean
:
false
,
//加粗
font
:
false
,
//字体
narrative
:
true
//叙述,
},
//交通类型数组
ArrivalTypeArray
:
[
{
ID
:
1
,
ClassStr
:
"iconfont icon-feiji"
},
//飞机
{
ID
:
2
,
ClassStr
:
"iconfont icon-dabaxiaoba"
},
//汽车
{
ID
:
3
,
ClassStr
:
"iconfont icon-lunchuan"
},
//轮船
{
ID
:
4
,
ClassStr
:
"iconfont icon-huoche"
}
//火车
],
//选中用车
CheckedVaule
:
1
,
//不用车
UnCheckedVaule
:
0
,
//是否显示编辑框
isShowEdit
:
false
,
//text框placeholder
placeholder
:
"请输入交通信息"
,
//交通验证
trifficTripRules
:
{
StartCityId
:
[
{
validator
:
StartCityIdValidate
,
trigger
:
"change"
}
],
ArrivalType
:
[
{
validator
:
ArrivalTypeValidate
,
trigger
:
"change"
}
],
ArrivalCityId
:
[
{
validator
:
ArrivalCityIdValidate
,
trigger
:
"change"
}
]
},
//出发城市列表1
DepartList1
:
[],
//到达城市列表1
ArriveList1
:
[]
};
},
components
:
{
"my-edit"
:
MyEdit
},
methods
:
{
//出发城市1
GetDepartList1
(
event
)
{
if
(
event
)
{
this
.
DepartList1
=
this
.
AllCityList
;
}
},
//到达城市
GetArrivalList1
(
event
)
{
if
(
event
)
{
this
.
ArriveList1
=
this
.
AllCityList
;
}
},
//到达城市改变
changeArrivalCity
(
val
)
{
this
.
DayList
.
forEach
((
item
,
qIndex
)
=>
{
if
(
this
.
index
==
qIndex
)
{
//删除多余的项
item
.
dayArray
.
forEach
((
subItem
,
childIndex
)
=>
{
if
(
childIndex
>
this
.
subIndex
)
{
//查询数组
var
qArray
=
this
.
$tripUtils
.
GetCityIdArray
(
this
.
DayList
,
qIndex
,
this
.
DayList
[
this
.
index
].
dayArray
.
length
,
true
);
subItem
.
childItem
.
QCity
=
qArray
.
join
(
","
);
}
});
}
});
var
that
=
this
;
if
(
val
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
AllCityList
.
find
(
item
=>
{
return
item
.
ID
===
val
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
SubTraffic
.
forEach
((
x
,
index
)
=>
{
if
(
x
.
ArrivalCityId
==
val
)
{
x
.
ArrivalCityName
=
obj
.
Name
;
}
if
(
index
!=
0
)
{
that
.
subItemObj
.
childItem
.
SubTraffic
[
index
].
StartCityName
=
that
.
subItemObj
.
childItem
.
SubTraffic
[
index
-
1
].
ArrivalCityName
;
that
.
subItemObj
.
childItem
.
SubTraffic
[
index
].
StartCityId
=
that
.
subItemObj
.
childItem
.
SubTraffic
[
index
-
1
].
ArrivalCityId
;
}
});
}
}
},
//出发城市改变
changeGetDepartList
(
val
)
{
var
that
=
this
;
if
(
val
!=
0
)
{
//获取当前选中的对象
let
obj
=
{};
obj
=
that
.
AllCityList
.
find
(
item
=>
{
return
item
.
ID
===
val
;
//筛选出匹配数据
});
if
(
obj
!=
undefined
)
{
that
.
subItemObj
.
childItem
.
SubTraffic
.
forEach
(
x
=>
{
if
(
x
.
StartCityId
==
val
)
{
x
.
StartCityName
=
obj
.
Name
;
}
});
}
}
},
getCityNameById
(
id
)
{
let
name
=
""
;
this
.
AllCityList
.
forEach
(
x
=>
{
if
(
x
.
ID
==
id
)
{
name
=
x
.
Name
;
return
false
;
}
});
return
name
;
},
changeAirportType
(
t
)
{
if
(
t
==
this
.
subItemObj
.
childItem
.
AirportPickUp
)
{
this
.
subItemObj
.
childItem
.
AirportPickUp
=
0
;
}
else
{
this
.
subItemObj
.
childItem
.
AirportPickUp
=
t
;
}
},
//用车类型点击事件
UseTypeClick
(
item
,
value
)
{
item
.
UseType
=
value
;
},
//点击添加交通计划
addTrafficPlan
(
item
)
{
item
.
childItem
.
SubTraffic
.
push
(
this
.
$tripUtils
.
subTrafficObj
());
},
//减去交通计划
minusTrafficPlan
(
item
)
{
if
(
item
.
childItem
.
SubTraffic
.
length
>
1
)
{
item
.
childItem
.
SubTraffic
.
splice
(
item
.
childItem
.
SubTraffic
.
length
-
1
,
1
);
}
},
//删除交通
removeTrifficTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
},
//初始化数据
initData
()
{
if
(
this
.
subItemObj
.
childItem
.
ID
>
0
)
{
if
(
this
.
subItemObj
.
childItem
.
SubTraffic
!=
null
&&
this
.
subItemObj
.
childItem
.
SubTraffic
.
length
>
0
)
{
this
.
subItemObj
.
childItem
.
SubTraffic
.
forEach
(
item
=>
{
this
.
DepartList1
.
push
({
ID
:
item
.
StartCityId
,
Name
:
item
.
StartCityName
});
this
.
ArriveList1
.
push
({
ID
:
item
.
ArrivalCityId
,
Name
:
item
.
ArrivalCityName
});
});
}
}
else
{
this
.
subItemObj
.
childItem
.
SubTraffic
.
forEach
(
item
=>
{
this
.
DepartList1
.
push
({
ID
:
item
.
StartCityId
,
Name
:
this
.
getCityNameById
(
item
.
StartCityId
)
});
});
}
}
},
mounted
()
{
this
.
initData
();
},
created
()
{},
watch
:
{
//监听参数
subItemObj
:
{
handler
:
function
(
val
,
oldVal
)
{
//获取当前到达城市
var
subArray
=
this
.
subItemObj
.
childItem
.
SubTraffic
;
if
(
subArray
.
length
>
0
)
{
var
tempCityId
=
0
;
if
(
subArray
.
length
>
1
)
{
for
(
var
i
=
0
;
i
<
subArray
.
length
;
i
++
)
{
if
(
subArray
[
i
].
ArrivalCityId
!=
undefined
)
{
tempCityId
=
subArray
[
i
].
ArrivalCityId
;
if
(
i
>
0
)
{
subArray
[
i
].
StartCityId
=
subArray
[
i
-
1
].
ArrivalCityId
;
}
}
}
}
else
{
if
(
subArray
[
0
].
ArrivalCityId
!=
undefined
)
{
tempCityId
=
subArray
[
0
].
ArrivalCityId
;
}
}
this
.
subItemObj
.
childItem
.
CityId
=
tempCityId
;
}
},
deep
:
true
}
}
};
</
script
>
src/components/newTravelmanager/oldTravelGroupControl/warmtipTrip.vue
0 → 100644
View file @
a38c781b
<
template
>
<div
class=
"trip-item-box"
>
<div
class=
"TCtraffic flex"
>
<div
class=
"partName"
>
<span
class=
"TDTripType"
>
温馨提示
</span>
</div>
<span
class=
"datePickContent"
style=
"display:none;"
>
</span>
<div
class=
"delSpan"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
v-if=
"!isShowEdit"
>
<i
class=
"iconfont icon-bianji"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top-start"
v-else
>
<i
class=
"iconfont icon-chakan"
@
click=
"isShowEdit=!isShowEdit"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
v-if=
"!isOpenGroup"
>
<i
class=
"iconfont icon-xingzhuang"
@
click=
"removeWarmTrip(subItemObj.childItem.DayNum,subIndex)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"上移"
placement=
"top-start"
v-if=
"subIndex!=0 && !isOpenGroup"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,0)"
></i>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"下移"
placement=
"top-start"
v-if=
"subIndex!=subTotalIndex-1 && !isOpenGroup"
>
<i
class=
"iconfont icon-xiayi1"
@
click=
"MoveItem(subItemObj.childItem.DayNum,subIndex,1)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"TP_edit"
>
<my-edit
v-if=
"isShowEdit"
v-on:edit-value=
"subItemObj.childItem.Description = arguments[0]"
v-bind:editValue=
"subItemObj.childItem.Description"
v-bind:toolbarShow=
"toolbar"
v-bind:referenceList=
"DefaultList"
v-bind:placeholder=
"placeholder"
></my-edit>
</div>
<div
class=
"TP_editShow"
v-if=
"!isShowEdit"
>
<pre
v-html=
"subItemObj.childItem.Description"
></pre>
</div>
</div>
</
template
>
<
script
>
import
MyEdit
from
"../../EditTemplate.vue"
;
export
default
{
props
:
[
"subItemObj"
,
"DefaultList"
,
"subIndex"
,
"isOpenGroup"
,
"subTotalIndex"
],
data
()
{
return
{
toolbar
:
{
clean
:
false
,
//清除样式
font
:
false
,
//字体
narrative
:
true
//叙述,
},
//是否显示编辑框
isShowEdit
:
false
,
//text框placeholder
placeholder
:
'请输入提示信息'
,
};
},
methods
:
{
//删除温馨提示
removeWarmTrip
(
dayNum
,
subIndex
)
{
this
.
$parent
.
$parent
.
commonRemove
(
dayNum
,
subIndex
);
},
//上移下移
MoveItem
(
dayNum
,
subIndex
,
IsUp
)
{
this
.
$parent
.
$parent
.
MoveItem
(
dayNum
,
subIndex
,
IsUp
);
}
},
components
:
{
"my-edit"
:
MyEdit
}
};
</
script
>
src/router/config.js
View file @
a38c781b
...
...
@@ -1526,6 +1526,14 @@ export default {
title
:
'自主开团'
},
},
{
path
:
'/TravelManager5'
,
name
:
'TravelManager5'
,
component
:
resolve
=>
require
([
'@/components/newTravelManager/oldTravelGroupControl/TravelManager5'
],
resolve
),
meta
:
{
title
:
'自主开团'
},
},
{
path
:
'/BasicOpenGroup'
,
//基础班团控配置
name
:
'BasicOpenGroup'
,
...
...
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