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
239dc13b
Commit
239dc13b
authored
Sep 18, 2023
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
880ddc88
aa4588c0
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
150 deletions
+110
-150
VEditSpan.vue
...Travelmanager/TravelGroupControl/TravelTemp/VEditSpan.vue
+50
-0
quoTation2.vue
...onents/newTravelmanager/TravelGroupControl/quoTation2.vue
+1
-1
travelDays.vue
...newTravelmanager/travelLineTrip/components/travelDays.vue
+16
-22
travelDaysTripThree.vue
...s/newTravelmanager/travelLineTrip/travelDaysTripThree.vue
+43
-127
No files found.
src/components/newTravelmanager/TravelGroupControl/TravelTemp/VEditSpan.vue
0 → 100644
View file @
239dc13b
<
template
>
<span
:data-name=
"isLocked"
class=
"edit_div"
:contenteditable=
"canEdit"
v-html=
"innerText"
@
focus=
"isLocked = true"
@
blur=
"isLocked = false"
@
input=
"changeText"
>
</span>
</
template
>
<
script
>
export
default
{
props
:
[
"value"
,
"canEdit"
,
"textLength"
],
data
()
{
return
{
innerText
:
this
.
value
,
isLocked
:
false
};
},
watch
:
{
value
()
{
if
(
!
this
.
isLocked
||
!
this
.
innerText
)
{
this
.
$el
.
innerText
=
this
.
value
;
}
}
},
methods
:
{
changeText
:
function
()
{
let
sel
=
window
.
getSelection
();
let
offset
=
sel
.
anchorOffset
;
if
(
this
.
textLength
&&
this
.
$el
.
innerText
.
length
>
this
.
textLength
)
{
this
.
$el
.
innerText
=
this
.
$el
.
innerText
.
slice
(
0
,
this
.
textLength
);
}
this
.
$emit
(
"input"
,
this
.
$el
.
innerText
);
setTimeout
(()
=>
{
try
{
var
range
=
sel
.
getRangeAt
(
0
);
var
textNode
=
range
.
startContainer
;
range
.
setStart
(
textNode
,
offset
);
sel
.
removeAllRanges
();
sel
.
addRange
(
range
);
}
catch
(
err
)
{
console
.
warn
(
err
);
}
},
0
);
},
}
};
</
script
>
<
style
>
.edit_div
{}
</
style
>
src/components/newTravelmanager/TravelGroupControl/quoTation2.vue
View file @
239dc13b
...
...
@@ -77,7 +77,7 @@
</div>
</td>
<td
rowspan=
"2"
>
<span
class=
"bianji opbd"
@
click=
"goUrl('TravelManager
2
',item.ID,false)"
>
<span
class=
"bianji opbd"
@
click=
"goUrl('TravelManager',item.ID,false)"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"行程修改"
placement=
"top-start"
popper-class=
"max-w250"
>
<i
class=
"iconfont icon-bianji-smal"
></i>
</el-tooltip>
...
...
src/components/newTravelmanager/travelLineTrip/components/travelDays.vue
View file @
239dc13b
...
...
@@ -52,32 +52,27 @@
</div>
</div>
<div
class=
"travelDaysContent"
>
<
div
class=
"travelDaysContent-text"
v-for=
"(jindian,j) in item.ScenicArray"
v-if=
"item.ScenicArray.length>0"
:key=
"j"
>
<
template
v-if=
"item.ScenicArray.length>0"
>
<div
class=
"travelDaysContent-text"
v-for=
"(jindian,j) in item.ScenicArray"
:key=
"j"
>
<span
class=
"textBold"
>
【
{{
jindian
.
CouponsName
}}
】
</span>
<span>
<vEditDiv
:canEdit=
'canEdit'
v-model=
"jindian.Description"
></vEditDiv>
</span>
<vEditSpan
:canEdit=
'canEdit'
v-model=
"jindian.Description"
></vEditSpan>
</div>
</
template
>
<div
v-if=
"item.ScenicArray.length==0"
class=
"travelDaysContent-text"
>
<span
class=
"textBold"
>
<vEditDiv
class=
"dayCouponsName"
:canEdit=
'canEdit'
v-model=
"'【'+item.TrafficObj.trafficIntroduce.IntroduceTitle+'】'"
></vEditDiv>
</span>
<span>
<vEditDiv
:canEdit=
'canEdit'
v-model=
"item.TrafficObj.trafficIntroduce.IntroduceDetail"
></vEditDiv>
</span>
<vEditSpan
:canEdit=
'canEdit'
v-model=
"item.TrafficObj.trafficIntroduce.IntroduceDetail"
></vEditSpan>
</div>
</div>
<div
class=
"travelDaysdetails-tsTextBox"
>
<div
class=
"travelDaysdetails-tsTextBox"
v-if=
"item.WarmTipObj.Description&&getHtmlPlainText(item.WarmTipObj.Description).length>0"
>
<div
class=
"travelDaysdetails-tsText"
:style=
"{'background':backgroundColor2}"
>
<span
class=
"travelDaysdetails-text0"
>
温馨提示:
</span>
<
template
v-if=
"item.WarmTipObj.Description&&getHtmlPlainText(item.WarmTipObj.Description).length>0"
>
<div
v-html=
"item.WarmTipObj.Description"
></div>
</
template
>
<
template
v-else
>
暂无提示
</
template
>
<span
v-html=
"item.WarmTipObj.Description"
></span>
</div>
</div>
<div
class=
"travelDaysdetails"
>
...
...
@@ -150,12 +145,14 @@
<
script
>
import
Header
from
"./header"
;
import
vEditDiv
from
"../../TravelGroupControl/TravelTemp/VEditDiv"
;
import
vEditSpan
from
"../../TravelGroupControl/TravelTemp/VEditSpan"
;
import
FeatureControls
from
"../../TravelGroupControl/UpgradedVersion/components/featureControls"
;
import
DMCchooseImg
from
"../../../commonPage/DMCchooseImg.vue"
;
import
VueDraggableResizable
from
"vue-draggable-resizable"
;
export
default
{
components
:
{
vEditDiv
,
vEditSpan
,
Header
,
FeatureControls
,
DMCchooseImg
,
...
...
@@ -350,9 +347,6 @@
}
});
}
if
(
this
.
ScenicArrayList
&&
this
.
ScenicArrayList
.
length
>
0
)
this
.
ScenicArrayList
.
sort
((
a
,
b
)
=>
{
return
a
.
Rank
-
b
.
Rank
})
this
.
RenderingOk
=
true
;
},
deep
:
true
,
...
...
src/components/newTravelmanager/travelLineTrip/travelDaysTripThree.vue
View file @
239dc13b
<
style
>
.TC-titlebox
{
.TC-titlebox
{
width
:
300px
;
overflow
:
hidden
;
}
.TC-titlebox
.LTB
input
{
border-top
:
1px
solid
#dddddd
;
border-bottom
:
1px
solid
#dddddd
;
border-left
:
1px
solid
#dddddd
;
}
.TC-itemContent
{
position
:
relative
;
/* max-height: 700px; */
...
...
@@ -43,9 +37,11 @@
padding
:
6px
;
margin-top
:
3px
;
}
.TC-titlebox
{
flex-grow
:
2
;
.TC-titlebox
{
width
:
100%
;
}
.TC-titlebox
.multiple_input
.el-input
{
min-height
:
26px
!important
;
}
...
...
@@ -121,7 +117,8 @@
right
:
0
;
top
:
0
;
}
.TC-titlebox
.Ht_hotelSelect
{
.TC-titlebox
.Ht_hotelSelect
{
width
:
210px
;
}
...
...
@@ -152,14 +149,13 @@
<div
class=
"TC-daycnt row-aic"
>
<div
class=
"TC-days"
>
第
{{
dayObj
.
DayNum
}}
天
</div>
<div
class=
"TC-titlebox"
>
<span
class=
"TC-TitleSpan
column"
v-if=
"!dayObj.isRead"
style=
"width: 100%
;"
>
<el-form-item
style=
"width: auto;"
>
<el-input
type=
"textarea"
:autosize=
"
{minRows: 1, maxRows: 8 }" resize="none"
placeholder="请输入行程大点信息"
v-model="dayObj.TitleObj.Title">
</el-input>
<span
class=
"TC-TitleSpan
"
v-if=
"!dayObj.isRead"
style=
"width: 240px
;"
>
<el-form-item>
<el-input
type=
"textarea"
:autosize=
"
{minRows: 1, maxRows: 8 }" resize="none"
placeholder="请输入行程大点信息"
v-model="dayObj.TitleObj.Title">
</el-input>
</el-form-item>
<el-form-item
class=
"LTB marginL10"
style=
"width: auto;"
>
<el-input
placeholder=
"请输入公里数"
class=
""
v-model=
"dayObj.TitleObj.KMNumber"
style=
"margin-top: 7px;"
>
<el-form-item
class=
"marginT10"
>
<el-input
placeholder=
"请输入公里数"
class=
"w120"
v-model=
"dayObj.TitleObj.KMNumber"
>
<template
slot=
"append"
>
KM
</
template
>
</el-input>
</el-form-item>
...
...
@@ -222,16 +218,10 @@
</div>
<div
class=
"row-aic marginT10"
style=
"width: 100%;"
v-if=
"dayObj.ScenicArray.length>0"
>
<span
v-if=
"ishasScenic"
>
默认展示图
</span>
<div
class=
""
>
<el-select
v-if=
"ishasScenic&&NoticeParameters.IsDirect==1"
class=
"marginL11 Ht_hotelSelect"
size=
"mini"
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"ScenicArraySingle"
filterable
@
change=
"getScenicArray"
>
<el-option
v-for=
"(item,index) in dayObj.ScenicArray"
:label=
"item.CouponsName"
:value=
"item.CouponsId"
:key=
"index"
>
<el-select
v-if=
"ishasScenic&&NoticeParameters.IsDirect==1"
class=
"w220 Ht_hotelSelect"
size=
"mini"
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"ScenicArraySingle"
filterable
@
change=
"setDefaultScenic"
>
<el-option
v-for=
"(item,index) in dayObj.ScenicArray"
:label=
"item.CouponsName"
:value=
"item.CouponsId"
:key=
"index"
>
</el-option>
</el-select>
</div>
...
...
@@ -306,8 +296,8 @@
],
data
()
{
return
{
ScenicArraySingle
:
this
.
dayObj
.
ScenicArrayImg
?
this
.
dayObj
.
ScenicArrayImg
:
''
,
//单选默认图
ScenicArray
:
this
.
dayObj
.
ScenicArrayImg
?
this
.
dayObj
.
ScenicArrayImg
:[],
//默认展示图
ScenicArraySingle
:
this
.
dayObj
.
ScenicArrayImg
?
this
.
dayObj
.
ScenicArrayImg
:
''
,
//单选默认图
ScenicArray
:
this
.
dayObj
.
ScenicArrayImg
?
this
.
dayObj
.
ScenicArrayImg
:
[],
//默认展示图
DefaultSelectValue
:
0
,
QScenicList
:
[],
//选择的景点数组
...
...
@@ -327,16 +317,15 @@
};
},
methods
:
{
//
默认需要展示的
图
getScenicArray
()
{
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
x
.
DefaultNum
=
0
if
(
x
.
CouponsId
===
this
.
ScenicArraySingle
)
{
x
.
DefaultNum
=
1
//
设置默认显示的景点
图
setDefaultScenic
()
{
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
x
.
DefaultNum
=
0
;
if
(
x
.
CouponsId
===
this
.
ScenicArraySingle
)
{
x
.
DefaultNum
=
1
;
}
})
this
.
dayObj
.
ScenicArrayImg
=
this
.
ScenicArraySingle
;
this
.
dayObj
.
ScenicArray
=
this
.
dayObj
.
ScenicArray
.
sort
((
a
,
b
)
=>
{
return
b
.
DefaultNum
-
a
.
DefaultNum
});
},
//非直采切换
NoDirectScenicCheck
(
number
)
{
...
...
@@ -352,7 +341,6 @@
scenic
.
CityId
=
0
;
scenic
.
DayNum
=
this
.
dayObj
.
DayNum
;
scenic
.
MD5Sign
=
this
.
md5
(
`DayNum=
${
this
.
CurrentIndex
+
1
}
&Type=jing&ID=
${
i
}
`
)
let
imaArray
=
[];
scenic
.
NewImaArray
.
push
({
Url
:
""
,
Name
:
""
,
...
...
@@ -383,12 +371,9 @@
for
(
var
i
=
0
;
i
<
number
;
i
++
)
{
newArray
.
push
(
this
.
dayObj
.
ScenicArray
[
i
]);
}
this
.
dayObj
.
ScenicArray
=
newArray
.
sort
((
a
,
b
)
=>
{
return
b
.
Rank
-
a
.
Rank
});
this
.
dayObj
.
ScenicArray
=
newArray
}
}
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
// x.ScenicJson.y=0;
});
},
//是否有景点切换
hasScenicChange
()
{
...
...
@@ -443,13 +428,7 @@
err
=>
{}
);
},
getItemLabel
(
item
)
{
let
returnName
=
item
.
Name
;
if
(
item
.
Inventory
>=
0
)
{
returnName
=
returnName
+
" "
+
item
.
Inventory
;
}
return
returnName
;
},
//天数上移下移
MoveDays
(
index
,
IsUp
)
{
var
currentItem
=
this
.
subConfig
.
DayList
[
index
];
...
...
@@ -579,24 +558,21 @@
let
status
=
false
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
this
.
dayObj
.
ChooseScenicArray
.
push
(
x
.
CouponsId
);
if
(
!
status
&&
x
.
Rank
>
0
&&!
this
.
ScenicArraySingle
){
// this.ScenicArray = [x.CouponsId]
if
(
!
status
&&
x
.
DefaultNum
>
0
&&
!
this
.
ScenicArraySingle
)
{
this
.
ScenicArraySingle
=
x
.
CouponsId
status
=
true
}
});
if
(
!
status
&&
this
.
dayObj
.
ScenicArray
.
length
>
0
&&!
this
.
ScenicArraySingle
)
{
if
(
!
status
&&
this
.
dayObj
.
ScenicArray
.
length
>
0
&&
!
this
.
ScenicArraySingle
)
{
status
=
true
this
.
ScenicArraySingle
=
this
.
dayObj
.
ScenicArray
[
0
].
CouponsId
}
if
(
this
.
ScenicArray
&&
this
.
ScenicArray
.
length
>
0
)
{
this
.
ScenicArray
.
sort
((
a
,
b
)
=>
{
return
a
.
Rank
-
b
.
Rank
})
if
(
this
.
ScenicArray
&&
this
.
ScenicArray
.
length
>
0
)
{
this
.
dayObj
.
ScenicArrayImg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
ScenicArray
));
}
if
(
this
.
ScenicArraySingle
)
{
if
(
this
.
ScenicArraySingle
)
{
this
.
dayObj
.
ScenicArrayImg
=
this
.
ScenicArraySingle
;
}
if
(
this
.
dayObj
.
ChooseScenicArray
.
length
>
0
)
{
this
.
ChooseScenicArray
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
dayObj
.
ChooseScenicArray
));
}
...
...
@@ -613,13 +589,12 @@
}
else
{
this
.
ishasScenic
=
false
;
}
this
.
getScenicArray
()
this
.
setDefaultScenic
()
}
},
created
()
{
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
// x.ScenicJson = (typeof(x.ScenicJsonStr) === 'string' ? x.ScenicJsonStr : { x:0, y:0 })
if
(
x
.
ScenicJsonStr
){
if
(
x
.
ScenicJsonStr
)
{
let
obj
=
JSON
.
parse
(
x
.
ScenicJsonStr
)
if
(
obj
)
{
x
.
ScenicJson
=
obj
...
...
@@ -637,11 +612,10 @@
//选中的景点
'ChooseScenicArray'
:
{
handler
:
function
(
val
,
oldVal
)
{
if
(
val
.
length
==
0
)
{
if
(
val
.
length
==
0
)
{
this
.
ScenicArray
=
[];
this
.
ScenicArraySingle
=
''
;
}
let
list
=
[]
//新增
val
.
forEach
(
x
=>
{
let
isExist
=
false
;
...
...
@@ -676,13 +650,6 @@
scenic
.
NewImaArray
.
push
(
scenicImg
);
imaArray
.
push
(
scenicImg
);
scenic
.
NewScenicImg
=
JSON
.
stringify
(
imaArray
);
let
scenicDescribeObj
=
this
.
$tripUtils
.
tripDescribeObj
();
scenicDescribeObj
.
Id
=
x
;
scenicDescribeObj
.
Describe
=
s
.
About
;
//this.WarmTripDescribe.ScenicDescribeArr.push(scenicDescribeObj);
// if (scenicDescribeObj.Describe != null && scenicDescribeObj.Describe != "") {
// this.dayObj.WarmTipObj.Description += "
<
p
>
" + scenicDescribeObj.Describe + "
<
/p>"
;
// }
}
});
this
.
dayObj
.
ScenicArray
.
push
(
scenic
)
...
...
@@ -691,7 +658,6 @@
//移除
let
newScenicObj
=
[];
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
// x.ScenicJson.y=0;
let
isExist
=
false
;
this
.
ChooseScenicArray
.
forEach
(
y
=>
{
if
(
y
===
x
.
CouponsId
)
{
...
...
@@ -702,76 +668,30 @@
newScenicObj
.
push
(
x
);
}
});
this
.
dayObj
.
ScenicArray
=
newScenicObj
.
sort
((
a
,
b
)
=>
{
return
b
.
Rank
-
a
.
Rank
});
//清除数据
let
scenicDescribeArr
=
[];
this
.
WarmTripDescribe
.
ScenicDescribeArr
.
forEach
(
x
=>
{
let
isExit
=
false
;
this
.
ChooseScenicArray
.
forEach
(
y
=>
{
if
(
x
.
Id
===
y
)
{
isExit
=
true
;
}
});
if
(
isExit
)
{
scenicDescribeArr
.
push
(
x
);
}
});
this
.
WarmTripDescribe
.
ScenicDescribeArr
=
scenicDescribeArr
;
this
.
dayObj
.
ChooseScenicArray
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
ChooseScenicArray
));
// 默认第一个为默认图
// if(this.ScenicArray,length==0&&this.ChooseScenicArray&&this.ChooseScenicArray.length>0){
// this.ScenicArray = [this.ChooseScenicArray[0]]
// this.getScenicArray()
// }
if
(
!
this
.
ScenicArraySingle
&&
this
.
ChooseScenicArray
&&
this
.
ChooseScenicArray
.
length
>
0
){
if
(
!
this
.
ScenicArraySingle
&&
this
.
ChooseScenicArray
&&
this
.
ChooseScenicArray
.
length
>
0
)
{
this
.
ScenicArraySingle
=
this
.
ChooseScenicArray
[
0
]
this
.
getScenicArray
()
}
else
{
this
.
setDefaultScenic
()
}
else
{
let
status
=
false
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
x
.
Rank
=
0
if
(
x
.
CouponsId
===
this
.
ScenicArraySingle
)
{
this
.
dayObj
.
ScenicArray
.
forEach
(
x
=>
{
x
.
DefaultNum
=
0
if
(
x
.
CouponsId
===
this
.
ScenicArraySingle
)
{
status
=
true
x
.
Rank
=
1
x
.
DefaultNum
=
1
}
})
if
(
!
status
)
{
if
(
!
status
)
{
this
.
ScenicArraySingle
=
this
.
ChooseScenicArray
[
0
]
this
.
getScenicArray
()
this
.
setDefaultScenic
()
this
.
dayObj
.
ScenicArrayImg
=
this
.
ScenicArraySingle
;
}
}
if
(
this
.
dayObj
.
ScenicArray
&&
this
.
dayObj
.
ScenicArray
.
length
>
0
)
this
.
dayObj
.
ScenicArray
.
sort
((
a
,
b
)
=>
{
return
a
.
Rank
-
b
.
Rank
})
}
},
WarmTripDescribe
:
{
handler
:
function
(
newValue
,
oldValue
)
{
this
.
DefaultList
=
[];
//if (this.dayObj.TitleObj.ID === 0 && !this.subConfig.isFileUpload) {
// if (!this.subConfig.isFileUpload) {
// let warmDescribe = "";
// let index = 1;
// let warmTripDescribeArr = [];
// warmTripDescribeArr.push(...this.WarmTripDescribe.ScenicDescribeArr);
// warmTripDescribeArr.push(...this.WarmTripDescribe.DinnerDescribeArr);
// warmTripDescribeArr.push(...this.WarmTripDescribe.HotelDescribeArr);
// warmTripDescribeArr.forEach(x => {
// if (x.Describe != null && x.Describe != "") {
// let describe = "
<
p
>
"+index + "
、
" + x.Describe+"
<
/p>
"
// //let describe = index + "、" + x.Describe;
// warmDescribe += describe;
// index++;
// }
// });
// this.DefaultList.push(warmDescribe);
// if (this.dayObj.TitleObj.ID === 0) {
// this.dayObj.WarmTipObj.Description = warmDescribe;
// }
// }
},
deep
:
true
},
...
...
@@ -796,11 +716,7 @@
},
mounted
()
{},
components
:
{
hotelTrip
,
trifficTrip
,
noScenic
,
"my-edit"
:
MyEdit
,
...
...
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