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
d714baea
Commit
d714baea
authored
Oct 28, 2024
by
liudong1993
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
ad3bc7f8
0f8d0cab
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
531 additions
and
320 deletions
+531
-320
DomesticTravelcontract.vue
src/components/DomesticTravelcontract.vue
+11
-10
Educationvideo.vue
src/components/Educationvideo.vue
+333
-294
FinancialDocuments.vue
src/components/FinancialModule/FinancialDocuments.vue
+168
-4
RestaurantPackage.vue
src/components/Restaurant/RestaurantPackage.vue
+2
-2
TravelContractView.vue
src/components/TravelContractView.vue
+2
-5
onedayTripContract.vue
src/components/onedayTripContract.vue
+15
-5
No files found.
src/components/DomesticTravelcontract.vue
View file @
d714baea
...
...
@@ -761,7 +761,7 @@
<el-option
label=
"1"
:value=
"1"
></el-option>
<el-option
label=
"2"
:value=
"2"
></el-option>
</el-select>
{{
$t
(
'objFill.
v101.Contract.
zhongfangs'
)
}}
{{
$t
(
'objFill.zhongfangs'
)
}}
</el-form-item>
<el-form-item
label=
"1、提交"
v-if=
"CtObj.C_SolveType == 1"
label-width=
"110px"
>
<el-input
type=
"text"
class=
"w300"
v-model=
"CtObj.C_SolveRemark"
></el-input>
仲裁委员会仲裁;
...
...
@@ -891,8 +891,7 @@
<commonTripList
@
tripData=
"tripData"
:ContractTripList=
"CtObj.ContractTripList"
:TripType=
"CtObj.TripType"
>
</commonTripList>
</div>
-->
<div
v-if=
"CtObj.ID>0&&CtObj.ContractTripList&&CtObj.ContractTripList.length==1"
v-html=
"CtObj.ContractTripList[0].TravelContent"
ref=
"TcTravel_Table"
></div>
<div
v-if=
"CtObj.ID>0"
ref=
"TcTravel_Table"
v-html=
"CtObj.ContractTripList[0].TravelContent"
></div>
<div
v-else
ref=
"TcTravel_Table"
>
<table
class=
"TcTravel_Table"
>
<tbody>
...
...
@@ -999,8 +998,7 @@
火车:普通车/空调车/动车组(其中:软卧/硬卧/软座/硬座);
</div>
<div
style=
"color: red"
v-if=
"CtObj.CType!=3"
>
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
注:用房全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
</div>
<
template
v-if=
"CtObj.TeamType == 2"
>
<div>
...
...
@@ -1029,10 +1027,6 @@
</tbody>
</table>
</div>
<div
style=
"padding:10px;background:#f9f9f9;color:red;"
v-if=
"CtObj.CType!=3"
>
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
</div>
</div>
<div
class=
"block mtop15"
id=
"anchor-5"
ref=
"anchor5"
>
<div
class=
"blockTitle"
>
...
...
@@ -1402,7 +1396,14 @@
TicketAndHotelTotalPrice
:
"0"
,
// 机票加酒店组合总费用
ContractShopList
:
[],
//自愿购物活动补充协议
ContractGuestList
:
[],
//旅客名单
ContractTripList
:
[],
//行程列表
ContractTripList
:
[{
TripType
:
1
,
DayNum
:
1
,
Go
:
""
,
GoProvice
:
""
,
IsOut
:
0
,
TravelContent
:
""
}],
//行程列表
ContractSelfFeeList
:
[],
//自愿付费项目补充协议
TripType
:
0
,
//行程类型(0-简易行程,1-标准行程)
TCID
:
0
,
...
...
src/components/Educationvideo.vue
View file @
d714baea
<
template
>
<div
class=
"Educationvideo"
ref=
"divSrcoll"
>
<div
class=
"left"
>
<ul
class=
"lineUl"
style=
"margin-top:64px"
>
<li
@
click=
"SelectLineId(-1)"
:class=
"msg.LineId ==-1 ? 'Active' : ''"
>
不限
</li>
<li
@
click=
"SelectLineId(item.LineID)"
:class=
"msg.LineId == item.LineID ? 'Active' : ''"
v-for=
"(item,index) in LineList"
:key=
"index"
>
{{
item
.
LineName
}}
</li>
</ul>
<ul
class=
"lineUl"
style=
"margin-top:64px"
>
<li
@
click=
"SelectLineId(-1)"
:class=
"msg.LineId ==-1 ? 'Active' : ''"
>
不限
</li>
<li
@
click=
"SelectLineId(item.LineID)"
:class=
"msg.LineId == item.LineID ? 'Active' : ''"
v-for=
"(item,index) in LineList"
:key=
"index"
>
{{
item
.
LineName
}}
</li>
</ul>
</div>
<div
class=
"right"
>
<div
class=
"search"
>
<el-input
size=
"small"
style=
"width:600px"
:placeholder=
"$t('fnc.qsrneirong')"
v-model=
"msg.Name"
class=
"input-with-select"
>
<el-button
@
click=
"Search"
slot=
"append"
icon=
"el-icon-search"
></el-button>
</el-input>
<el-button
style=
"margin-left:20px"
size=
"small"
type=
"danger"
@
click
.
prevent=
"goUrl1('EducationvideoList',$event)"
round
>
发布视频
</el-button>
<div
class=
"search"
>
<el-input
size=
"small"
style=
"width:600px"
:placeholder=
"$t('fnc.qsrneirong')"
v-model=
"msg.Name"
class=
"input-with-select"
>
<el-button
@
click=
"Search"
slot=
"append"
icon=
"el-icon-search"
></el-button>
</el-input>
<el-button
style=
"margin-left:20px"
size=
"small"
type=
"danger"
@
click
.
prevent=
"goUrl1('EducationvideoList',$event)"
round
>
发布视频
</el-button>
</div>
<div
v-loading=
"loading"
class=
"Content"
>
<ul
class=
"videoUl"
>
<li
v-for=
"(item,index) in dataList"
:key=
"index"
>
<div
:style=
"
{backgroundImage: 'url(' + item.background + ')', backgroundSize:'cover'}" @click.prevent="goUrl('EducationvideoSee',item)" class="imgDiv">
<!--
<img
v-if=
"item.Cover && item.Cover!=''"
:onerror=
"defaultImg"
style=
"min-height:199px;width:100%"
:src=
"item.Cover"
alt=
""
>
<img
v-else
style=
"height:199px;width:100%"
src=
"../assets/img/hotel/biefu.png"
alt=
""
>
-->
<div
class=
"backDiv"
>
<span
class=
"iconfont icon-ico_bofang"
></span>
<!--
<div
@
click
.
prevent=
"goUrl1('EducationvideoList',$event)"
class=
"icon"
>
<span
class=
"iconfont icon-weihu"
></span>
</div>
-->
</div>
</div>
<div
class=
"contentDiv"
>
<img
v-if=
"item.EmPhoto && item.EmPhoto!=''"
:src=
"item.EmPhoto"
alt=
""
>
<img
v-else
src=
"../assets/img/default.png"
alt=
""
>
<div
class=
"DesDiv"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.Name"
placement=
"top-start"
>
<p
style=
"font-size:14px"
class=
"bold text1"
>
{{
item
.
Name
}}
</p>
</el-tooltip>
<p
class=
"wryh"
style=
"color:#aaaaaa"
>
{{
item
.
EmName
}}
</p>
<p
class=
"wryh"
style=
"color:#aaaaaa"
>
{{
item
.
WatchNum
}}
次观看
<span
style=
"margin-left:5pxy"
></span>
<span>
{{
item
.
UpdateDate
}}
</span>
</div>
<div
v-loading=
"loading"
class=
"Content"
>
<ul
class=
"videoUl"
>
<li
v-for=
"(item,index) in dataList"
:key=
"index"
>
<div
:style=
"
{backgroundImage: 'url(' + item.background + ')', backgroundSize:'cover'}"
@click.prevent="goUrl('EducationvideoSee',item)" class="imgDiv">
<div
class=
"backDiv"
>
<span
class=
"iconfont icon-ico_bofang"
></span>
</div>
</div>
<div
class=
"contentDiv"
>
<img
v-if=
"item.EmPhoto && item.EmPhoto!=''"
:src=
"item.EmPhoto"
alt=
""
>
<img
v-else
src=
"../assets/img/default.png"
alt=
""
>
<div
class=
"DesDiv"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.Name"
placement=
"top-start"
>
<p
style=
"font-size:14px"
class=
"bold text1"
>
{{
item
.
Name
}}
</p>
</el-tooltip>
<el-row>
<el-col
:span=
"12"
>
<p
class=
"wryh"
style=
"color:#aaaaaa"
>
{{
item
.
EmName
}}
</p>
<p
class=
"wryh"
style=
"color:#aaaaaa"
>
{{
item
.
WatchNum
}}
次观看
<span
style=
"margin-left:5pxy"
></span>
<span>
{{
item
.
UpdateDate
}}
</span>
</p>
</el-col>
<el-col
:span=
"12"
style=
"text-align:right;display:none;"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"$t('salesModule.ShareTrip')"
placement=
"top-start"
style=
"float: right"
>
<el-popover
width=
"180"
trigger=
"click"
>
<div
class=
"w150"
v-loading=
"wxLoading"
>
<template
v-if=
"item.wxImage!=''"
>
<img
style=
"float: left; width: 108px; height: 108px; margin: 10px 21px 3px;"
:src=
"'data:image/png;base64,' + item.wxImage"
/>
</
template
>
<p
style=
"text-align: center; font-size: 12px; color: #666"
>
{{ $t("salesModule.XCX") }}
</p>
</div>
</div>
</li>
</ul>
<div
v-if=
"dataList.length==0"
style=
"text-align:center;padding-top:40px"
>
<span
style=
"font-size:60px;color:#ccc"
class=
"iconfont icon-wushuju"
></span>
<el-button
slot=
"reference"
type=
"primary"
@
click=
"createVideoQrCode(item)"
size=
"mini"
>
分享
</el-button>
</el-popover>
</el-tooltip>
</el-col>
</el-row>
</div>
</div>
<div
v-show=
"nodata && msg.pageIndex>1"
class=
"wryh"
style=
"text-align:center;padding:15px 0;font-size:12px;color:#aaaaaa"
>
无更多数据
</div
>
<!--
<el-pagination
background
@
current-change=
"handleCurrentChange"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
'total'
>
</el-pagination>
--
>
</li
>
</ul>
<div
v-if=
"dataList.length==0"
style=
"text-align:center;padding-top:40px"
>
<span
style=
"font-size:60px;color:#ccc"
class=
"iconfont icon-wushuju"
></span
>
</div>
<div
style=
"opacity: 0;"
ref=
"bottomDiv"
>
1111
</div>
<div
v-show=
"nodata && msg.pageIndex>1"
class=
"wryh"
style=
"text-align:center;padding:15px 0;font-size:12px;color:#aaaaaa"
>
无更多数据
</div>
</div>
<div
style=
"opacity: 0;"
ref=
"bottomDiv"
>
1111
</div>
</div>
<div
class=
"videoDiv"
v-show=
"videoDivState"
>
<div
style=
"text-align:right;padding-right:15px;cursor:pointer"
><span
@
click=
"Setvideo"
style=
"font-size:30px;color:#fff"
class=
"iconfont icon-bumenguanli-shanchu"
></span></div>
<video
ref=
"myVideo"
autoplay=
"autoplay"
width=
"100%"
height=
"90%"
:src=
"thisVideoAddress"
controls=
"controls"
>
<div
style=
"text-align:right;padding-right:15px;cursor:pointer"
><span
@
click=
"Setvideo"
style=
"font-size:30px;color:#fff"
class=
"iconfont icon-bumenguanli-shanchu"
></span></div>
<video
ref=
"myVideo"
autoplay=
"autoplay"
width=
"100%"
height=
"90%"
:src=
"thisVideoAddress"
controls=
"controls"
>
<source
:src=
"thisVideoAddress"
type=
"video/mp4"
>
<source
:src=
"thisVideoAddress"
type=
"video/ogg"
>
</video>
</div>
</div>
</template>
<
script
>
export
default
{
name
:
'Educationvideo'
,
created
()
{
},
data
()
{
return
{
videoDivState
:
false
,
thisVideoAddress
:
""
,
defaultImg
:
'this.src="'
+
require
(
"../assets/img/bg_z1@2x.png"
)
+
'"'
,
val
:
''
,
LineList
:[],
msg
:{
pageIndex
:
1
,
pageSize
:
20
,
Name
:
''
,
UserType
:
1
,
VideoStatus
:
1
,
CreateBy
:
''
,
LineId
:
-
1
,
export
default
{
name
:
'Educationvideo'
,
created
()
{},
data
()
{
return
{
videoDivState
:
false
,
thisVideoAddress
:
""
,
defaultImg
:
'this.src="'
+
require
(
"../assets/img/bg_z1@2x.png"
)
+
'"'
,
val
:
''
,
LineList
:
[],
msg
:
{
pageIndex
:
1
,
pageSize
:
20
,
Name
:
''
,
UserType
:
1
,
VideoStatus
:
1
,
CreateBy
:
''
,
LineId
:
-
1
,
},
dataList
:
[],
total
:
0
,
loading
:
false
,
windowHeight
:
0
,
nodata
:
false
,
wxLoading
:
false
,
}
},
mounted
()
{
this
.
getLineList
();
this
.
getList
();
this
.
$nextTick
(()
=>
{
window
.
addEventListener
(
'scroll'
,
this
.
ScrollTop
)
})
let
h
=
document
.
documentElement
.
clientHeight
||
document
.
body
.
clientHeight
;
this
.
windowHeight
=
h
;
},
destroyed
()
{
window
.
removeEventListener
(
'scroll'
,
this
.
ScrollTop
)
},
methods
:
{
//生成小程序码
createVideoQrCode
(
item
)
{
this
.
wxLoading
=
true
;
var
postMsg
=
{
Id
:
item
.
Id
}
this
.
apipost
(
"Video_get_GetLvXiaoYouVideoCodeShare"
,
postMsg
,
res
=>
{
this
.
wxLoading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
item
.
wxImage
=
res
.
data
.
data
;
}
}
);
},
dataList
:[],
total
:
0
,
loading
:
false
,
windowHeight
:
0
,
nodata
:
false
,
}
},
mounted
()
{
this
.
getLineList
();
this
.
getList
();
this
.
$nextTick
(()
=>
{
window
.
addEventListener
(
'scroll'
,
this
.
ScrollTop
)
})
let
h
=
document
.
documentElement
.
clientHeight
||
document
.
body
.
clientHeight
;
this
.
windowHeight
=
h
;
},
destroyed
(){
window
.
removeEventListener
(
'scroll'
,
this
.
ScrollTop
)
},
methods
:
{
Search
(){
this
.
msg
.
pageIndex
=
1
;
this
.
nodata
=
false
;
this
.
dataList
=
[];
Search
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
nodata
=
false
;
this
.
dataList
=
[];
this
.
getList
();
},
Setvideo
(){
this
.
videoDivState
=
false
;
let
myVideo
=
this
.
$refs
.
myVideo
;
Setvideo
()
{
this
.
videoDivState
=
false
;
let
myVideo
=
this
.
$refs
.
myVideo
;
myVideo
.
pause
();
},
ScrollTop
(){
ScrollTop
()
{
var
that
=
this
;
// that.scroll = (document.documentElement.scrollTop || document.body.scrollTop)+70;
// var divSrcoll = this.$refs.divSrcoll.scrollTop;
if
(
that
.
$refs
.
bottomDiv
.
getBoundingClientRect
()){
if
(
that
.
$refs
.
bottomDiv
.
getBoundingClientRect
())
{
var
bottomDiv
=
that
.
$refs
.
bottomDiv
.
getBoundingClientRect
().
top
;
if
(
this
.
windowHeight
-
50
<
bottomDiv
)
{
this
.
handleCurrentChange
();
if
(
this
.
windowHeight
-
50
<
bottomDiv
)
{
this
.
handleCurrentChange
();
}
}
},
SelectLineId
(
id
){
this
.
dataList
=
[];
this
.
nodata
=
false
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
LineId
=
id
;
this
.
getList
();
SelectLineId
(
id
)
{
this
.
dataList
=
[];
this
.
nodata
=
false
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
LineId
=
id
;
this
.
getList
();
},
handleCurrentChange
()
{
this
.
msg
.
pageIndex
=
this
.
msg
.
pageIndex
+
1
;
this
.
getList
();
},
this
.
msg
.
pageIndex
=
this
.
msg
.
pageIndex
+
1
;
this
.
getList
();
},
//获取列表
getList
()
{
if
(
this
.
nodata
)
{
if
(
this
.
nodata
)
{
return
;
}
this
.
loading
=
true
;
this
.
loading
=
true
;
this
.
apipost
(
"Video_get_GetPCVideoPageList"
,
this
.
msg
,
"Video_get_GetPCVideoPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
;
if
(
data
.
length
==
0
&&
this
.
msg
.
pageIndex
>
1
)
{
this
.
nodata
=
true
;
}
else
{
data
.
forEach
(
item
=>
{
let
lastUrl
=
"?x-oss-process=video/snapshot,t_9,f_jpg,w_299,h_0,m_fast"
;
item
.
background
=
item
.
VideoAddress
+
lastUrl
;
let
data
=
res
.
data
.
data
.
pageData
;
if
(
data
.
length
==
0
&&
this
.
msg
.
pageIndex
>
1
)
{
this
.
nodata
=
true
;
}
else
{
data
.
forEach
(
item
=>
{
let
lastUrl
=
"?x-oss-process=video/snapshot,t_9,f_jpg,w_299,h_0,m_fast"
;
item
.
background
=
item
.
VideoAddress
+
lastUrl
;
item
.
wxImage
=
""
;
})
this
.
dataList
=
this
.
dataList
.
concat
(
data
)
}
this
.
total
=
res
.
data
.
data
.
count
;
}
}
);
},
goUrl1
(
path
,
e
){
e
.
stopPropagation
()
this
.
$router
.
push
({
name
:
path
,
// query: {
// blank: "y"
// }
});
goUrl1
(
path
,
e
)
{
e
.
stopPropagation
()
this
.
$router
.
push
({
name
:
path
,
});
},
AddList
(
id
)
{
this
.
apipost
(
"Video_post_SetVideoWatch"
,{
VideoId
:
id
},
"Video_post_SetVideoWatch"
,
{
VideoId
:
id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
}
}
);
},
goUrl
(
path
,
item
){
let
that
=
this
;
this
.
videoDivState
=
true
;
this
.
thisVideoAddress
=
item
.
VideoAddress
;
goUrl
(
path
,
item
)
{
let
that
=
this
;
this
.
videoDivState
=
true
;
this
.
thisVideoAddress
=
item
.
VideoAddress
;
this
.
AddList
(
item
.
Id
)
let
myVideo
=
this
.
$refs
.
myVideo
;
let
myVideo
=
this
.
$refs
.
myVideo
;
myVideo
.
play
();
if
(
!
item
.
VideoWH
||
item
.
VideoWH
==
''
){
myVideo
.
addEventListener
(
'canplay'
,
function
()
{
let
VideoWH
=
this
.
videoWidth
+
','
+
this
.
videoHeight
;
that
.
AddWidthHeight
(
VideoWH
,
item
.
Id
)
});
if
(
!
item
.
VideoWH
||
item
.
VideoWH
==
''
)
{
myVideo
.
addEventListener
(
'canplay'
,
function
()
{
let
VideoWH
=
this
.
videoWidth
+
','
+
this
.
videoHeight
;
that
.
AddWidthHeight
(
VideoWH
,
item
.
Id
)
});
}
},
AddWidthHeight
(
VideoWH
,
id
)
{
let
msg
=
{
Id
:
id
,
VideoWH
:
VideoWH
}
this
.
apipost
(
"Video_set_SetPCVideoWHInfo"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{}
}
);
},
AddWidthHeight
(
VideoWH
,
id
)
{
let
msg
=
{
Id
:
id
,
VideoWH
:
VideoWH
}
this
.
apipost
(
"Video_set_SetPCVideoWHInfo"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
}
}
);
},
//获取线路列表
//获取线路列表
getLineList
()
{
this
.
apipost
(
"Video_get_GetPCVideoLineList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineList
=
res
.
data
.
data
;
}
}
);
},
},
}
},
}
</
script
>
<
style
>
.text1
{
overflow
:
hidden
;
.text1
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
height
:
20px
;
}
.wryh
{
font-family
:
'微软雅黑'
}
.Educationvideo
.right
.Content
.videoUl
li
.backDiv
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
absolute
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.3
);
top
:
0
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon-ico_bofang
{
position
:
absolute
;
font-size
:
36px
;
color
:
#fff
;
}
.videoDiv
{
position
:
fixed
;
top
:
0
;
width
:
100%
;
height
:
100%
;
z-index
:
999999999
;
background
:
#000
;
}
.Educationvideo
.contentDiv
img
{
width
:
35px
;
height
:
35px
;
border-radius
:
50%
;
position
:
absolute
;
}
.Educationvideo
.contentDiv
.DesDiv
{
padding-left
:
45px
;
box-sizing
:
border-box
;
width
:
100%
;
}
.Educationvideo
.contentDiv
{
position
:
relative
;
margin-top
:
5px
;
}
.Educationvideo
.bold
{
font-family
:
"pingfangR"
}
.Educationvideo
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#f56c6c
!important
;
}
.Educationvideo
.right
.Content
.circle
{
height
:
20px
;
}
.wryh
{
font-family
:
'微软雅黑'
}
.Educationvideo
.right
.Content
.videoUl
li
.backDiv
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
absolute
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.3
);
top
:
0
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon-ico_bofang
{
position
:
absolute
;
font-size
:
36px
;
color
:
#fff
;
}
.videoDiv
{
position
:
fixed
;
top
:
0
;
width
:
100%
;
height
:
100%
;
z-index
:
999999999
;
background
:
#000
;
}
.Educationvideo
.contentDiv
img
{
width
:
35px
;
height
:
35px
;
border-radius
:
50%
;
position
:
absolute
;
}
.Educationvideo
.contentDiv
.DesDiv
{
padding-left
:
45px
;
box-sizing
:
border-box
;
width
:
100%
;
}
.Educationvideo
.contentDiv
{
position
:
relative
;
margin-top
:
5px
;
}
.Educationvideo
.bold
{
font-family
:
"pingfangR"
}
.Educationvideo
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#f56c6c
!important
;
}
.Educationvideo
.right
.Content
.circle
{
display
:
inline-block
;
width
:
3px
;
height
:
3px
;
height
:
3px
;
background
:
#666666
;
border-radius
:
50%
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
:hover
.icon
{
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
:hover
.icon
{
display
:
block
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon
{
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon
{
position
:
absolute
;
right
:
3px
;
top
:
3px
;
padding
:
2px
6px
;
background
:
#000
;
display
:
none
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon
.iconfont
{
color
:
#fff
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
{
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
.icon
.iconfont
{
color
:
#fff
;
}
.Educationvideo
.right
.Content
.videoUl
li
.imgDiv
{
position
:
relative
;
cursor
:
pointer
;
height
:
199px
;
overflow
:
hidden
;
}
.Educationvideo
.right
.Content
.videoUl
li
p
{
height
:
199px
;
overflow
:
hidden
;
}
.Educationvideo
.right
.Content
.videoUl
li
p
{
font-size
:
12px
;
padding-left
:
6px
;
padding-left
:
6px
;
box-sizing
:
border-box
;
}
.Educationvideo
.right
.Content
.videoUl
li
{
}
.Educationvideo
.right
.Content
.videoUl
li
{
display
:
inline-block
;
width
:
300px
;
padding
:
5px
;
box-sizing
:
border-box
;
margin-right
:
10px
;
margin-bottom
:
15px
;
}
.Educationvideo
.right
.Content
{
padding
:
15px
15px
10px
15px
;
box-sizing
:
border-box
;
margin-bottom
:
15px
;
}
.Educationvideo
.right
.Content
{
padding
:
15px
15px
10px
15px
;
box-sizing
:
border-box
;
}
*
{
margin
:
0
;
*
{
margin
:
0
;
padding
:
0
;
}
.Educationvideo
.left
.lineUl
.Active
{
color
:
#fff
;
}
.Educationvideo
.left
.lineUl
.Active
{
color
:
#fff
;
background
:
#f56c6c
;
font-family
:
"pingfangR"
;
}
.Educationvideo
.left
.lineUl
li
:hover
{
background
:
#f56c6c
;
color
:
#fff
;
}
.Educationvideo
.left
.lineUl
li
{
padding
:
10px
35px
;
}
.Educationvideo
.left
.lineUl
li
:hover
{
background
:
#f56c6c
;
color
:
#fff
;
}
.Educationvideo
.left
.lineUl
li
{
padding
:
10px
35px
;
box-sizing
:
border-box
;
font-size
:
12px
;
cursor
:
pointer
;
}
li
{
}
li
{
list-style
:
none
;
}
.Educationvideo
.right
.search
{
padding
:
15px
0
;
padding-left
:
50px
;
box-sizing
:
border-box
;
/* position: fixed;
}
.Educationvideo
.right
.search
{
padding
:
15px
0
;
padding-left
:
50px
;
box-sizing
:
border-box
;
/* position: fixed;
top: 50px;
width: calc(100% - 200px); */
background
:
#fff
;
/* left: 200px; */
background
:
#fff
;
/* left: 200px; */
}
.Educationvideo
{
position
:
relative
;
min-height
:
100%
;
background
:
#f5f5f5
;
}
.Educationvideo
.left
{
position
:
absolute
;
min-height
:
100%
;
width
:
200px
;
z-index
:
100
;
background
:
#fff
;
}
.Educationvideo
.right
{
background
:
#f5f5f5
;
padding-left
:
200px
;
box-sizing
:
border-box
;
min-height
:
100%
;
.Educationvideo
{
position
:
relative
;
min-height
:
100%
;
background
:
#f5f5f5
;
}
.Educationvideo
.left
{
position
:
absolute
;
min-height
:
100%
;
width
:
200px
;
z-index
:
100
;
background
:
#fff
;
}
.Educationvideo
.right
{
background
:
#f5f5f5
;
padding-left
:
200px
;
box-sizing
:
border-box
;
min-height
:
100%
;
}
</
style
>
src/components/FinancialModule/FinancialDocuments.vue
View file @
d714baea
...
...
@@ -691,7 +691,53 @@
width
:
830px
;
position
:
relative
;
}
.UploadMsg-box
{
display
:
flex
;
flex-wrap
:
wrap
;
}
.UploadMsg-list
{
width
:
110px
;
/* height: 80px; */
position
:
relative
;
border-radius
:
3px
;
/* overflow: hidden; */
margin
:
0
6px
13px
6px
;
}
.UploadMsg-text
{
width
:
100%
;
height
:
20px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
cursor
:
pointer
;
}
.UploadMsg-icon
{
color
:
#409eff
;
position
:
absolute
;
right
:
0
;
top
:
-10px
;
z-index
:
2
;
cursor
:
pointer
;
font-size
:
20px
;
}
.UploadMsgGrow
{
width
:
100%
;
}
/
deep
/
.UploadMsg-box
.el-upload-dragger
{
width
:
110px
;
height
:
80px
;
padding
:
0
5px
;
}
/
deep
/
.UploadMsg-box
.el-upload-dragger
.el-icon-upload
{
margin
:
0
;
}
/
deep
/
.UploadMsg-box
.el-upload__tip
{
margin-top
:
0
;
margin-bottom
:
7px
;
}
/
deep
/
.UploadMsg-box
.el-upload-dragger
.el-icon-upload
{
line-height
:
35px
;
}
</
style
>
<
template
>
...
...
@@ -1561,7 +1607,7 @@
<
button
v
-
loading
=
"matchBtn"
class
=
"normalBtn"
@
click
=
"sureMatchTransfer()"
style
=
"margin-left: 150px;margin-bottom: 10px"
>
确认转移
<
/button
>
<
/el-dialog
>
<!--
工资单信息
-->
<
div
v
-
if
=
"fillShow"
class
=
"btmAddStore"
:
class
=
"{'fillShow':fillShow
}
"
>
<
div
class
=
"btmTitle"
>
{{
$t
(
'objFill.daorugzdxx'
)
}}
<
/div
>
<
div
style
=
"color:red;padding:10px 0"
v
-
if
=
"BatchAddWagesMessage"
>
提示:
{{
BatchAddWagesMessage
}}
<
/div
>
...
...
@@ -1599,7 +1645,6 @@
<
el
-
image
style
=
"height:16px;"
:
src
=
"file.Url?file.Url:file.Content"
:
preview
-
src
-
list
=
"[file.Url?file.Url:file.Content]"
>
<
/el-image
>
<!--
<
img
:
src
=
"file.Url?file.Url:file.Content"
@
click
=
"showUpLoadFile(file,index)"
style
=
"height:16px;"
>
-->
<
/div
>
<
span
class
=
"iconfont icon-guanbi1"
style
=
"font-size:12px;"
@
click
=
"deleteInvoiceUploadFile(fIndex,index)"
><
/span
>
...
...
@@ -1642,10 +1687,12 @@
<
/table
>
<
/div
>
<
div
class
=
"btmBtn impotBtn"
style
=
"padding:10px 0"
>
<
input
type
=
"button"
class
=
"normalBtn"
value
=
"批量上传附件"
@
click
=
"isUploadAttachment=true;"
/>
<
input
type
=
"button"
class
=
"normalBtn"
@
click
=
"importInfo"
:
value
=
"$t('ground.qrdr')"
/>
<
input
type
=
"button"
class
=
"hollowFixedBtn"
@
click
=
"hideFill"
:
value
=
"$t('pub.cancelBtn')"
/>
<
/div
>
<
/div
>
<!--
工资单导入弹窗
-->
<
el
-
dialog
custom
-
class
=
'w700'
:
title
=
"$t('objFill.daoruyinxiaosj')"
:
visible
.
sync
=
"outerVisible"
center
>
<
el
-
upload
drag
class
=
"upload-demo"
:
action
=
"importFileUrl2"
:
on
-
success
=
"handleAvatarSuccess"
:
before
-
upload
=
"beforeAvatarUpload"
>
...
...
@@ -1654,6 +1701,48 @@
<
div
slot
=
"tip"
class
=
"el-upload__tip"
>
{{
$t
(
"ground.znscexcel"
)
}}
<
/div
>
<
/el-upload
>
<
/el-dialog
>
<
el
-
dialog
:
title
=
"saveUploadMsg.length>0?'批量上传附件/已传'+saveUploadMsg.length:'批量上传附件'"
:
visible
.
sync
=
"isUploadAttachment"
width
=
"780px"
:
close
-
on
-
click
-
modal
=
"false"
:
show
-
close
=
"false"
@
close
=
"cancel"
>
<!--
工资单附件导入弹窗
-->
<
div
class
=
"UploadMsg-box"
>
<
div
:
class
=
"[saveUploadMsg.length>0?'':'UploadMsgGrow']"
style
=
"text-align: center;"
>
<
el
-
upload
class
=
"upload-demo"
drag
accept
=
"image/jpeg,image/jpg, image/png, image/bmp"
action
=
""
:
http
-
request
=
"uploadGZFileBtn"
multiple
:
show
-
file
-
list
=
"false"
>
<
i
class
=
"el-icon-upload"
style
=
"font-size: 30px;"
><
/i
>
<
div
class
=
"el-upload__text"
>
文件拖到此处,或
<
em
>
{{
$t
(
'tips.dianjishanhcuan'
)
}}
<
/em></
div
>
<
div
class
=
"el-upload__tip"
slot
=
"tip"
>
只能上传
jpg
/
png
文件
<
/div
>
<
/el-upload
>
<
/div
>
<
template
v
-
for
=
"(item,index) in saveUploadMsg"
>
<
div
class
=
"UploadMsg-list"
>
<
el
-
image
style
=
"width: 100%; height: 80px;border-radius: 5px;"
:
src
=
"item.DMCOPCredentials"
fit
=
"cover"
:
initial
-
index
=
"index"
:
preview
-
src
-
list
=
"saveUploadMsg.map(x=>{return x.DMCOPCredentials
}
)"
><
/el-image
>
<
div
class
=
"UploadMsg-text"
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
:
content
=
"item.BrandName"
placement
=
"top"
>
<
p
>
{{
item
.
BrandName
}}
<
/p
>
<
/el-tooltip
>
<
/div
>
<
i
class
=
"UploadMsg-icon el-icon-circle-close"
@
click
=
"handleGZRemove(index)"
><
/i
>
<
/div
>
<
/template
>
<
/div
>
<
div
slot
=
"footer"
class
=
"dialog-footer"
>
<
el
-
button
class
=
"hollowFixedBtn"
@
click
=
"cancel"
:
disabled
=
"loading"
>
{{
$t
(
'pub.cancelBtn'
)
}}
<
/el-button
>
<
el
-
button
class
=
"normalBtn"
type
=
"primary"
@
click
=
"saveAttachments"
:
loading
=
"loading"
>
{{
$t
(
'pub.sureBtn'
)
}}
<
/el-button
>
<
/div
>
<
/el-dialog
>
<
el
-
dialog
custom
-
class
=
'w700'
title
=
"导入车行ETC差额"
:
visible
.
sync
=
"outerVisible3"
center
>
<
el
-
upload
drag
class
=
"upload-demo"
:
action
=
"importFileUrl5+'&EmployeeId='+userId"
:
on
-
success
=
"handleAvatarSuccess3"
:
before
-
upload
=
"beforeAvatarUpload2"
>
...
...
@@ -2072,6 +2161,12 @@
CurrencyName
:
''
}
,
isQueryHistoryData
:
false
,
//工资单附件开始
saveUploadMsg
:
[],
loadingGZPic
:
false
,
isUploadAttachment
:
false
,
imgLength
:
0
,
//工资单附件结束
}
;
}
,
created
()
{
...
...
@@ -2212,6 +2307,73 @@
this
.
$refs
.
multipleTable
.
clearSelection
();
}
}
,
//工资单附件方法:
cancel
()
{
this
.
imgLength
=
0
;
this
.
saveUploadMsg
=
[];
this
.
isUploadAttachment
=
false
;
this
.
loading
=
false
;
}
,
saveAttachments
()
{
if
(
this
.
saveUploadMsg
.
length
==
0
)
return
this
.
$message
.
error
(
'请上传附件'
);
this
.
loading
=
true
;
this
.
importData
.
forEach
(
x
=>
{
this
.
saveUploadMsg
.
forEach
(
y
=>
{
if
(
x
.
BrandName
==
y
.
BrandName
)
{
if
(
x
.
vorcherInos
&&
x
.
vorcherInos
.
length
==
0
){
x
.
vorcherInos
=
[];
}
x
.
vorcherInos
.
push
({
Content
:
y
.
Content
,
ID
:
0
,
Type
:
y
.
Type
,
Url
:
y
.
DMCOPCredentials
,
}
);
}
}
)
}
)
this
.
$forceUpdate
();
this
.
cancel
();
}
,
uploadGZFileBtn
(
file
)
{
//上传
// 1 文档 2 数据 3 图片
if
(
file
)
this
.
imgLength
++
let
typeArr
=
[
{
stringArr
:
'GIF|JPG|JPEG|PNG|BMP'
,
type
:
3
}
,
{
stringArr
:
'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF'
,
type
:
1
}
,
]
let
ft
=
file
.
file
.
name
.
substring
(
file
.
file
.
name
.
lastIndexOf
(
'.'
)
+
1
,
file
.
file
.
name
.
length
).
toUpperCase
();
let
fileTypeNumber
=
2
;
let
typeOk
=
false
;
typeArr
.
forEach
(
x
=>
{
if
(
x
.
stringArr
.
indexOf
(
ft
)
!=
'-1'
)
{
fileTypeNumber
=
x
.
type
;
typeOk
=
true
;
}
}
)
if
(
!
typeOk
)
return
this
.
$message
.
error
(
'请上传图'
);
let
newArr
=
[];
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
if
(
this
.
imgLength
==
1
)
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
fileSize
=
file
.
file
.
size
<
1024
?
file
.
file
.
size
:(
file
.
file
.
size
/
1024
).
toFixed
(
0
);
let
SourceFileName
=
x
.
data
.
SourceFileName
.
split
(
'.'
)
this
.
saveUploadMsg
.
push
({
Content
:
x
.
data
.
FilePath
,
Type
:
fileTypeNumber
,
DMCOPCredentials
:
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
BrandName
:
SourceFileName
[
0
]
}
)
if
(
this
.
imgLength
>
0
)
this
.
imgLength
--
if
(
!
this
.
imgLength
)
this
.
$message
.
success
(
this
.
$t
(
'tips.scchenggong'
))
}
);
}
,
handleGZRemove
(
index
)
{
this
.
saveUploadMsg
.
splice
(
index
,
1
)
}
,
uploadFileExpressFeeBtn
(
file
)
{
//上传
if
(
file
.
file
.
size
>
1024
*
1024
*
10
)
{
this
.
$message
.
warning
(
this
.
$t
(
'tips.wjdxbncgsz'
))
...
...
@@ -3965,7 +4127,9 @@
);
}
}
,
watch
:
{
}
watch
:
{
}
}
;
<
/script
>
src/components/Restaurant/RestaurantPackage.vue
View file @
d714baea
...
...
@@ -132,7 +132,7 @@
<span
class=
"tit_name T1"
>
{{
item
.
CurrencyName
==
''
?
''
:
item
.
CurrencyName
}}
<span
v-if=
"item.CurrencyCode"
>
(
{{
item
.
CurrencyCode
}}
)
</span></span><span
class=
'tit_name T2'
>
{{
item
.
LPrice
}}
/{$t('hotel.hotel_people')}}
</span>
class=
'tit_name T2'
>
{{
item
.
LPrice
}}
/
{
{
$t
(
'hotel.hotel_people'
)
}}
</span>
</p>
<p
class=
"Ldata"
>
{{
item
.
LDate
}}
</p>
</td>
...
...
@@ -141,7 +141,7 @@
<span
class=
"tit_name T1"
>
{{
item
.
CurrencyName
==
''
?
''
:
item
.
CurrencyName
}}
<span
v-if=
"item.CurrencyCode"
>
(
{{
item
.
CurrencyCode
}}
)
</span></span><span
class=
'tit_name HP'
>
{{
item
.
HPrice
}}
/{$t('hotel.hotel_people')}}
</span>
class=
'tit_name HP'
>
{{
item
.
HPrice
}}
/
{
{
$t
(
'hotel.hotel_people'
)
}}
</span>
</p>
<p
class=
"Ldata"
>
{{
item
.
HDate
}}
</p>
</td>
...
...
src/components/TravelContractView.vue
View file @
d714baea
...
...
@@ -1635,8 +1635,7 @@
<
/template
>
<
/div
>
<
br
/>
<
div
style
=
"color:red;"
v
-
if
=
"CtObj.CType!=3"
>
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
<
/div
>
<
div
style
=
"color:red;"
v
-
if
=
"CtObj.CType!=3"
>
注:用房全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
<
/div
>
<
/div
>
<!--
自愿购物
-->
<
div
class
=
"shoppings"
:
class
=
"{'checkedNav':ActiveTab==6
}
"
>
...
...
@@ -2146,9 +2145,7 @@
<
/template
>
<
/div
>
<
br
>
<
div
style
=
"color:red;"
v
-
if
=
"CtObj.CType!=3"
>
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
<
/div
>
<
div
style
=
"color:red;"
v
-
if
=
"CtObj.CType!=3"
>
注:用房全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
<
/div
>
<
/div
>
<!--
自愿补充协议
-->
<
div
class
=
"activitys"
:
class
=
"{'checkedNav':ActiveTab==7
}
"
>
...
...
src/components/onedayTripContract.vue
View file @
d714baea
...
...
@@ -925,8 +925,8 @@
<commonTripList @tripData="tripData" :ContractTripList="CtObj.ContractTripList" :TripType="CtObj.TripType">
</commonTripList>
</div> -->
<div
v-if=
"CtObj.ID>0&&CtObj.ContractTripList&&CtObj.ContractTripList.length==1"
v-html=
"CtObj.ContractTripList[0].TravelContent"
ref=
"TcTravel_Table"
></div>
<div
v-if=
"CtObj.ID>0"
v-html=
"CtObj.ContractTripList[0].TravelContent"
ref=
"TcTravel_Table"
></div>
<div
v-else
ref=
"TcTravel_Table"
>
<table
class=
"TcTravel_Table"
>
<tbody>
...
...
@@ -1033,8 +1033,7 @@
火车:普通车/空调车/动车组(其中:软卧/硬卧/软座/硬座);
</div>
<div
style=
"color: red"
v-if=
"CtObj.CType!=3"
>
注:用房
:全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
注:用房全程酒店均为二人一间,如您的订单产生单房,在未补单房差的情况下,我社将尽量安排您与其它客人拼房或是与同行者入住三人房,不可选择房型。敬请配合,服从调配。
</div>
<
template
v-if=
"CtObj.TeamType == 2"
>
<div>
...
...
@@ -1352,7 +1351,14 @@
TicketAndHotelTotalPrice
:
"0"
,
// 机票加酒店组合总费用
ContractShopList
:
[],
//自愿购物活动补充协议
ContractGuestList
:
[],
//旅客名单
ContractTripList
:
[],
//行程列表
ContractTripList
:
[{
TripType
:
1
,
DayNum
:
1
,
Go
:
""
,
GoProvice
:
""
,
IsOut
:
0
,
TravelContent
:
""
}],
//行程列表
TCID
:
0
,
OrderId
:
0
,
},
...
...
@@ -1461,6 +1467,8 @@
if
(
this
.
isSubmit
)
{
if
(
this
.
CtObj
.
ContractTripList
&&
this
.
CtObj
.
ContractTripList
.
length
>
0
)
{
this
.
CtObj
.
ContractTripList
[
0
].
TravelContent
=
this
.
$refs
.
TcTravel_Table
.
innerHTML
;
}
else
{
this
.
CtObj
.
ContractTripList
[
0
].
TravelContent
=
this
.
$refs
.
TcTravel_Table
.
innerHTML
;
}
this
.
isSubmit
=
false
;
this
.
apipost
(
...
...
@@ -1755,6 +1763,7 @@
};
this
.
CtObj
.
ContractTripList
.
push
(
tripObj
);
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
...
...
@@ -2071,4 +2080,5 @@
});
}
};
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment