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
848ec65d
Commit
848ec65d
authored
Mar 31, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
f2b30ee3
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
2140 additions
and
29 deletions
+2140
-29
HotelList.vue
src/components/Hotel/singleProduct/HotelList.vue
+7
-2
ListCar.vue
src/components/Hotel/singleProduct/components/ListCar.vue
+24
-2
productQuery.vue
src/components/SalesModule/productQuery.vue
+13
-0
productQueryOne.vue
src/components/SalesModule/productQueryOne.vue
+15
-1
VisaProductAddOrder.vue
src/components/SalesVisa/VisaProductAddOrder.vue
+20
-3
TicketOrder.vue
src/components/SingleAirTicket/TicketOrder.vue
+43
-0
OrderList.vue
src/components/SingleAirTicket/components/OrderList.vue
+1443
-0
TicketOrder.vue
src/components/SingleAirTicket/components/TicketOrder.vue
+504
-0
CharterPreview.vue
src/components/busManagement/BookAcar/CharterPreview.vue
+16
-4
addEditVehicle.vue
src/components/busManagement/BookAcar/addEditVehicle.vue
+15
-2
list.vue
src/components/busManagement/BookAcar/list.vue
+7
-1
OrderPreview.vue
src/components/scenicSpot/Singleticket/OrderPreview.vue
+14
-2
SingleticketList.vue
src/components/scenicSpot/Singleticket/SingleticketList.vue
+9
-4
config.js
src/router/config.js
+10
-8
No files found.
src/components/Hotel/singleProduct/HotelList.vue
View file @
848ec65d
...
...
@@ -99,7 +99,7 @@
@
close=
"close"
></TableOperation>
</el-dialog>
<!-- 购物车 -->
<ListCar
v-if=
"rightCarOpen"
@
close=
"close"
@
success=
"success"
@
editor=
"editor"
></ListCar>
<ListCar
v-if=
"rightCarOpen"
:crmOrderObj=
"crmOrderObj"
@
close=
"close"
@
success=
"success"
@
editor=
"editor"
></ListCar>
<!-- 酒店详情信息 -->
<el-dialog
custom-class=
"w800"
title=
"酒店详情"
:visible
.
sync=
"showHotelDetails"
center
@
close=
"close"
>
<hotelDetails
:hotelId=
"HotelDetailId"
></hotelDetails>
...
...
@@ -178,7 +178,8 @@
dataList
:
[],
isShow
:
false
,
loading
:
false
,
HOTEL_memorandum
:
false
HOTEL_memorandum
:
false
,
crmOrderObj
:
null
};
},
watch
:
{
...
...
@@ -320,6 +321,10 @@
},
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
}
this
.
HotelLength
=
localStorage
.
getItem
(
"HotelLength"
)?
localStorage
.
getItem
(
"HotelLength"
):
0
let
userinfo
=
this
.
getLocalStorage
();
...
...
src/components/Hotel/singleProduct/components/ListCar.vue
View file @
848ec65d
...
...
@@ -67,6 +67,10 @@
<div
v-if=
"cars.length==0"
style=
"text-align: center;padding: 20px 0;"
>
暂无数据
</div>
</div>
<div
class=
"ListCar-bottom"
v-if=
"cars.length>0"
>
<div
v-if=
"crmOrderObj"
style=
"margin-bottom: 10px;"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</div>
<el-form
label-width=
"60px"
:model=
"parameters"
:rules=
"rules"
ref=
"parameters"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
...
...
@@ -123,6 +127,10 @@
<
script
>
export
default
{
props
:
{
crmOrderObj
:
{
type
:
Object
,
require
:
false
},
HotelRow
:
{
type
:
Object
,
require
:
false
...
...
@@ -146,7 +154,9 @@
TCNum
:
''
,
//=团队时 传递 组团号
ContactName
:
''
,
//=散客时 传递 联系人
ContactNumber
:
''
,
//=散客时 传递 联系人电话
OrderId
:
0
OrderId
:
0
,
LureEmpId
:
0
,
CRMGuestId
:
0
,
},
currentIndex
:
0
,
currentI
:
0
,
...
...
@@ -184,6 +194,18 @@
};
},
watch
:
{
crmOrderObj
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
crmOrderObj
=
val
console
.
log
(
this
.
crmOrderObj
)
if
(
this
.
crmOrderObj
){
this
.
parameters
.
LureEmpId
=
val
.
LureEmpId
//引流id
this
.
parameters
.
CRMGuestId
=
val
.
CRMGuestId
//客人ID
}
},
deep
:
true
,
immediate
:
true
},
cars
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
HotelLength
=
this
.
cars
.
length
...
...
@@ -396,7 +418,7 @@
}
.ListCar-content
{
padding
:
20px
15px
;
height
:
calc
(
100%
-
195
px
);
height
:
calc
(
100%
-
230
px
);
overflow
:
auto
;
}
.ListCar-list
{
...
...
src/components/SalesModule/productQuery.vue
View file @
848ec65d
...
...
@@ -549,6 +549,10 @@
<div
class=
"productQuerybottomLayer ownScrollbarStyle"
v-show=
"isShowLayer"
>
<p>
{{
$t
(
"salesModule.SignImdi"
)
}}
<span
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</span>
<span
class=
"fr"
>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.cancelBtn')"
@
click=
"cancelSubmit()"
/>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('salesModule.SignImdi')"
@
click=
"submitForm('addMsg')"
/>
...
...
@@ -1833,6 +1837,8 @@
SonControlID
:
"-1"
,
IsShowMessagesMoney
:
"2"
,
QuotationUrl
:
""
,
//单团附件
LureEmpId
:
0
,
//引流id
CRMGuestId
:
0
,
//客人ID
},
uploadLloading
:
false
,
employeeMsg
:
{
...
...
@@ -1966,6 +1972,7 @@
S_Travel_Share
:
false
,
//分享权限
userInfo
:
{},
TotalNumber
:
0
,
crmOrderObj
:
null
};
},
components
:
{
...
...
@@ -3627,6 +3634,12 @@
}
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
addMsg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
//引流id
this
.
addMsg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
//客人ID
}
let
userInfo
=
this
.
getLocalStorage
();
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
GetSupperOrderEditAuth
();
...
...
src/components/SalesModule/productQueryOne.vue
View file @
848ec65d
...
...
@@ -178,6 +178,10 @@
<div
class=
"productQuerybottomLayer ownScrollbarStyle"
v-show=
"isShowLayer"
>
<p>
{{
$t
(
'salesModule.SignImdi'
)
}}
<span
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</span>
<span
class=
"fr"
>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.cancelBtn')"
@
click=
"cancelSubmit()"
/>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('salesModule.SignImdi')"
@
click=
"submitForm('addMsg')"
/>
...
...
@@ -1064,7 +1068,9 @@
SonControlID
:
'-1'
,
IsShowMessagesMoney
:
'2'
,
GuestList
:
[],
GatherAddress
:
''
GatherAddress
:
''
,
LureEmpId
:
0
,
//引流id
CRMGuestId
:
0
,
//客人ID
},
GuestList
:
[
{
...
...
@@ -1280,6 +1286,7 @@
countryList
:
[],
//国籍
//当前登录用户信息
CurrentUserInfo
:
{},
crmOrderObj
:
null
,
}
},
components
:
{
...
...
@@ -2451,6 +2458,13 @@
},
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
addMsg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
//引流id
this
.
addMsg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
//客人ID
}
this
.
userId
=
this
.
getLocalStorage
().
EmployeeId
this
.
msg
.
BranchId
=
this
.
getLocalStorage
().
RB_Branch_id
.
toString
()
if
(
this
.
$route
.
query
.
id
)
{
...
...
src/components/SalesVisa/VisaProductAddOrder.vue
View file @
848ec65d
...
...
@@ -344,7 +344,11 @@
layout=
"total,prev, pager, next, jumper"
:page-size=
"this.msg.pageSize"
:total=
"total"
>
</el-pagination>
<div
class=
"_mc_edit _scrollbar"
:class=
"addShow==true?'edHeight':''"
>
<p
class=
"_tit"
>
{{
$t
(
'Operation.Op_signUp'
)
}}
<p
class=
"_tit"
>
{{
$t
(
'Operation.Op_signUp'
)
}}
<span
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</span>
<span
class=
"fr"
>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"cancelEdit()"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
<button
type=
"button"
class=
"normalBtn"
@
click=
"saveVisa()"
>
{{
$t
(
'pub.saveBtn'
)
}}
</button>
...
...
@@ -495,7 +499,9 @@
LeaveCountryFlight
:
''
,
VisaPlanId
:
0
,
DepartDate
:
''
,
ClientType
:
'1'
ClientType
:
'1'
,
LureEmpId
:
0
,
//引流id
CRMGuestId
:
0
,
//客人ID
},
rules
:
{
PeopleNum
:
[{
...
...
@@ -531,6 +537,7 @@
total
:
0
,
addShow
:
false
,
currentPage
:
1
,
crmOrderObj
:
null
}
},
methods
:
{
...
...
@@ -705,6 +712,8 @@
},
err
=>
{})
},
saveVisa
()
{
// 保存
console
.
log
(
this
.
addMsg
,
'==='
)
// return
this
.
$refs
[
'addMsg'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
apipost
(
'dmc_get_visa_SetVisaOrder'
,
this
.
addMsg
,
res
=>
{
...
...
@@ -723,7 +732,9 @@
EnterCountryFlight
:
''
,
LeaveCountryFlight
:
''
,
VisaPlanId
:
0
,
DepartDate
:
''
DepartDate
:
''
,
LureEmpId
:
0
,
CRMGuestId
:
0
}
this
.
$message
.
success
(
res
.
data
.
message
)
this
.
addShow
=
false
...
...
@@ -758,6 +769,12 @@
},
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
addMsg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
//引流id
this
.
addMsg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
//客人ID
}
this
.
userId
=
this
.
getLocalStorage
().
EmployeeId
this
.
msg
.
RB_Branch_Id
=
this
.
getLocalStorage
().
RB_Branch_id
.
toString
()
this
.
getList
()
...
...
src/components/SingleAirTicket/TicketOrder.vue
0 → 100644
View file @
848ec65d
<
style
>
</
style
>
<
template
>
<div>
<TicketOrder
:pagesTitle=
"pagesTitle"
:dataObj=
"dataObj"
></TicketOrder>
</div>
</
template
>
<
script
>
import
TicketOrder
from
'./components/TicketOrder.vue'
;
export
default
{
components
:
{
TicketOrder
},
data
()
{
return
{
pagesTitle
:
'销售'
,
dataObj
:{
OrderId
:
''
,
}
};
},
watch
:
{
pagesTitle
(
val
,
oldval
){
},
},
methods
:
{
},
created
()
{
},
mounted
()
{
if
(
this
.
$route
.
query
.
OrderId
){
this
.
dataObj
.
OrderId
=
this
.
$route
.
query
.
OrderId
}
},
};
</
script
>
<
style
>
</
style
>
src/components/SingleAirTicket/components/OrderList.vue
0 → 100644
View file @
848ec65d
<
style
scoped
>
.tatusText.grey
{
color
:
grey
;
}
.tatusText.success
{
color
:
#21ba45
;
}
.tatusText.error
{
color
:
#f2c037
;
}
.tatusText.cancel
{
color
:
#c1c1c1
;
}
.tatusText.Black
{
color
:
Black
;
}
.OrderId-text
{
font-size
:
19px
;
/* text-decoration:underline; */
font-weight
:
bold
;
color
:
#2961fe
;
margin-bottom
:
3px
;
cursor
:
pointer
;
}
.CreateByName-text.Commission
{
color
:
red
;
margin-top
:
5px
;
margin-bottom
:
5px
;
}
.el-checkbox-group
,
.el-radio-group
{
display
:
flex
!important
;
margin-bottom
:
10px
!important
;
}
.font-color-link
{
cursor
:
pointer
;
}
.OrderType-text
{
font-size
:
11px
;
font-weight
:
100
;
margin-left
:
5px
;
border-radius
:
3px
;
display
:
inline-block
;
padding
:
0
1px
;
}
.line-through
{
text-decoration
:
line-through
;
}
.OrderType-text.one
{
color
:
rgb
(
41
,
97
,
254
);
background-color
:
rgba
(
41
,
97
,
254
,
.2
);
}
.OrderType-text.two
{
color
:
rgb
(
242
,
140
,
29
);
background-color
:
rgba
(
242
,
140
,
29
,
.2
);
}
.OrderType-text.three
{
color
:
rgb
(
63
,
196
,
255
);
background-color
:
rgba
(
63
,
196
,
255
,
.2
);
}
.OrderType-text.four
{
color
:
rgb
(
255
,
111
,
0
);
background-color
:
rgba
(
255
,
111
,
0
,
.2
);
}
.OrderType-text.five
{
color
:
rgb
(
197
,
225
,
165
);
background-color
:
rgba
(
97
,
225
,
165
,
.2
);
}
.row
{
display
:
flex
;
}
.row-c
{
display
:
flex
;
align-items
:
center
;
}
.column
{
display
:
flex
;
flex-direction
:
column
;
}
.column-jac
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
}
.column-ac
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
}
.wrap
{
flex-wrap
:
wrap
;
}
.justify-sb
{
justify-content
:
space-between
;
}
.justify-c
{
justify-content
:
center
;
}
.justify-e
{
justify-content
:
flex-end
;
align-items
:
flex-end
;
}
.flex-g
{
flex-grow
:
1
;
}
.flex-s
{
flex-shrink
:
0
;
}
.align-c
{
align-items
:
center
;
}
.cblack
{
color
:
black
;
}
.cf
{
color
:
#ffffff
;
}
.c9e
{
color
:
#9e9e9e
;
}
.c20C997
{
color
:
#20c997
;
}
.c02C854
{
color
:
#02c854
;
}
.cff9800
{
color
:
#ff9800
;
}
.cF1416C
{
color
:
#f1416c
;
}
.cF57A98
{
color
:
#f57a98
;
}
.c04C8C8
{
color
:
#04c8c8
;
}
.c059FF6
{
color
:
#059ff6
;
}
.c3FC4FF
{
color
:
#3fc4ff
;
}
.fz10
{
font-size
:
10px
;
}
.fz11
{
font-size
:
11px
;
}
.fz12
{
font-size
:
12px
;
}
.fz13
{
font-size
:
13px
;
}
.fz14
{
font-size
:
14px
;
}
.fz15
{
font-size
:
15px
;
}
.fz16
{
font-size
:
16px
;
}
.fz17
{
font-size
:
17px
;
}
.fz18
{
font-size
:
18px
;
}
.fbold
{
font-weight
:
bold
;
}
.ml
{
margin-left
:
10px
;
}
.mr
{
margin-right
:
10px
;
}
.mt
{
margin-top
:
10px
;
}
.mt20
{
margin-top
:
20px
;
}
.mb
{
margin-bottom
:
10px
;
}
.mb20
{
margin-bottom
:
20px
;
}
.mx
{
margin-left
:
10px
;
margin-right
:
10px
;
}
.mx5
{
margin-left
:
5px
;
margin-right
:
5px
;
}
.mb5
{
margin-bottom
:
5px
;
}
.py
{
padding
:
15px
0
;
}
.py5
{
padding
:
5px
0
;
}
.px5
{
padding
:
0
5px
;
}
.px15
{
padding
:
0
15px
;
}
.pa15
{
padding
:
15px
;
}
.py20
{
padding
:
20px
0
;
}
.pb5
{
padding
:
0
0
5px
0
;
}
.pa
{
padding
:
10px
20px
;
}
.pa20
{
padding
:
20px
;
}
.pt20
{
padding
:
20px
0
;
}
.borderD
{
border-bottom
:
1px
dashed
#dddddd
;
}
.bgf
{
background
:
#ffffff
;
}
.bgf5
{
background
:
#f5f5f5
;
}
.bgE8F5E9
{
background
:
#e8f5e9
;
}
.bgD9F3FF
{
background
:
#d9f3ff
;
}
.bgFAEAED
{
background
:
#faeaed
;
}
.bj
{
background
:
#ffffff
;
}
.bjFFF3E0
{
background
:
#FFF3E0
;
}
.radius5
{
border-radius
:
5px
;
}
.cursor-pointer
{
cursor
:
pointer
;
}
.relative
{
position
:
relative
;
}
.absolute
{
position
:
absolute
;
}
.left0
{
left
:
0
;
}
.right0
{
right
:
0
;
}
.top0
{
top
:
0
;
}
.bottom0
{
bottom
:
0
;
}
.left20
{
left
:
020px
;
}
.right20
{
right
:
20px
;
}
.top20
{
top
:
20px
;
}
.bottom20
{
bottom
:
20px
;
}
.text-center
{
text-align
:
center
;
}
.orderType
{
padding
:
3px
15px
;
border-radius
:
3px
;
background
:
#f57a98
;
margin-right
:
15px
;
}
.orderType.active
{
background
:
#4dd0e1
;
}
.orderType.activeB
{
background
:
#E95252
;
}
.copy
{
display
:
inline-block
;
padding
:
3px
15px
;
border-radius
:
3px
;
margin-left
:
20px
;
}
.copy
:hover
{
background
:
#f5f5f5
;
}
.see-rec
div
{
padding
:
1px
5px
;
border-radius
:
3px
;
}
.see
{
border
:
1px
solid
#04c8c8
;
}
.seeLK
{
border
:
1px
solid
#059ff6
;
}
.see
:hover
{
background-color
:
rgba
(
4
,
200
,
200
,
0.1
);
}
.rec
{
border
:
1px
solid
#04c8c8
;
background-color
:
rgba
(
4
,
200
,
200
,
1
);
}
.rec
:hover
{
border
:
1px
solid
rgba
(
4
,
200
,
200
,
0.9
);
background-color
:
rgba
(
4
,
200
,
200
,
0.9
);
}
.cancel
:hover
{
background-color
:
#f3dce2
;
}
.confirm
:hover
{
background-color
:
#dcedc8
;
}
.change
:hover
{
background-color
:
#d7e9f3
;
}
.change1
:hover
{
background-color
:
#dcedc8
;
}
.orderop
{
text-align
:
center
;
}
.orderop
div
{
width
:
100px
;
height
:
50%
;
display
:
flex
;
justify-content
:
center
;
}
.RoomList
div
{
border-bottom
:
1px
solid
#e7e7e7
;
}
.RoomList
div
:last-child
{
border
:
0
;
}
.el-table
{
font-size
:
13px
;
}
.shezhifrom
{
position
:
relative
;
}
.shebox
{
position
:
absolute
;
top
:
0
;
left
:
-100px
;
display
:
none
;
}
.shezhifrom
:hover
.shebox
{
display
:
block
;
}
.flexOne-form-bj
h3
{
font-size
:
18px
;
color
:
black
;
padding
:
0
0
20px
0
;
font-weight
:
400
;
}
.flexOne-type
{
display
:
flex
;
align-items
:
center
;
padding
:
0
0
20px
0
;
}
.flexOne-type
b
{
font-size
:
13px
;
width
:
100px
;
flex-shrink
:
0
;
}
.flexOne-type
div
{
display
:
flex
;
}
.flexOne-description
{
padding
:
15px
15px
;
border-radius
:
5px
;
background
:
#E1F5FE
;
margin-bottom
:
20px
;
}
.flexOne-description
b
{
font-size
:
14px
;
}
.flexOne-description
p
{
font-size
:
12px
;
color
:
#4C5759
;
padding
:
10px
0
0
0
;
}
.flexOne-infor-box
b
{
font-size
:
13px
;
}
.infor-list
{
display
:
flex
;
flex-direction
:
column
;
}
.list-title
{
padding
:
20px
0
;
border-bottom
:
1px
dashed
#eeeeee
;
color
:
#7E8299
;
font-size
:
13px
;
}
.list-title
,
.list-centent
{
display
:
flex
;
flex-wrap
:
wrap
;
margin-top
:
20px
;
}
.infor-list
li
{
width
:
25%
;
}
.list-centent
li
{
width
:
33.33%
;
}
.list-centent.active
li
{
width
:
25%
;
}
/
deep
/
.el-table
tr
td
:first-child
{
border-bottom
:
0
;
}
/
deep
/
.el-table
tr
:last-child
td
{
border-bottom
:
1px
solid
#EBEEF5
;
}
/
deep
/
.el-table
tr
td
{
border-bottom
:
1px
solid
#EBEEF5
;
}
.cp
{
cursor
:
pointer
;
}
</
style
>
<
template
>
<div>
<div
v-for=
"(item, index) in OrderList"
class=
"column bgf radius5 px15 mb20"
>
<div
class=
"row-c justify-sb align-c py"
>
<div
class=
"row-c"
>
<div>
<!--
<div
class=
"orderType cf fz12"
:class=
"
{ active: item.OrderType == 1,
activeB: item.OrderType == 3}"
>
</div>
-->
<span
class=
"orderType OrderType-text cf fz12"
:class=
"[items.Id==1?'one':
(items.Id==2?'two':
(items.Id==3?'three':
(items.Id==4?'four':
(items.Id==5?'five':'')))),
{'line-through':items.show}]"
v-for="(items,i) in item.MultipleChoiceList"
>
{{
items
.
Name
}}
</span>
<!--
<span
class=
"OrderType-text"
:class=
"[items.Id==1?'one':
(items.Id==2?'two':
(items.Id==3?'three':
(items.Id==4?'four':
(items.Id==5?'five':'')))),
{'line-through':items.show}]"
v-for="(items,i) in item.MultipleChoiceList">
{{
items
.
Name
}}
</span>
-->
</div>
<div
class=
"c9e fz12"
>
<span>
订单编号:
</span>
<span>
{{
item
.
OrderId
}}
</span>
<span
class=
"copy cblack cursor-pointer"
v-if=
"copyId != item.OrderId"
@
click=
"CopyHandler(item)"
>
复制
</span
>
<span
class=
"copy c059FF6 bgD9F3FF cursor-pointer"
v-else
><i
class=
"el-icon-check mr"
></i>
已复制
</span
>
</div>
</div>
<div
class=
"c9e fz12"
>
<span>
客人信息:
{{
item
.
GuestName
}}
/
{{
item
.
MobilePhone
}}
</span>
</div>
<div
class=
"row c9e fz12"
>
<span>
销售:
</span>
<span
class=
"mr"
>
{{
item
.
EnterName
}}
</span>
<span
class=
"mr"
v-if=
"item.CreateByName"
>
引流人:
</span>
<span
class=
"mr"
v-if=
"item.CreateByName"
>
{{
item
.
CreateByName
}}
</span>
<span>
下单时间:
</span>
<span
class=
"mr"
>
{{
item
.
CreateTime
}}
</span>
<div
class=
""
>
<i
class=
"mx5"
:class=
"
{
'el-icon-alarm-clock c20C997': item.OrderStatus == 1,
'el-icon-check cblack': item.OrderStatus == 2,
'el-icon-warning cff9800': item.OrderStatus == 3,
'el-icon-refresh cF1416C': item.OrderStatus == 4,
'el-icon-check cblack': item.OrderStatus == 5,
'el-icon-refresh cF1416C': item.OrderStatus == 6
}"
>
{{
item
.
OrderStatusName
}}{{
item
.
OrderStatus
}}
</i>
<!--
<div
class=
"Order-list-Status"
:class=
"item.OrderStatus=='1'?'one':
(item.OrderStatus=='2'?'two':
(item.OrderStatus=='3'?'three':
(item.OrderStatus=='4'?'four':
(item.OrderStatus=='5'?'five':
(item.OrderStatus=='6'?'six':'')))))"
>
<span>
{{
item
.
OrderStatusName
}}
</span>
</div>
-->
</div>
</div>
</div>
<div
class=
"mb"
>
<el-table
:data=
"[item]"
style=
"width:100%"
border
>
<el-table-column
label=
"日期"
min-width=
"100"
style=
"background:#EAEAEA"
>
<template
slot-scope=
"scope"
>
<template>
<p
class=
"CreateByName-text"
v-if=
"scope.row.DepartTime"
>
出发:
<span>
{{
scope
.
row
.
DepartTime
}}
</span></p>
<p
class=
"CreateByName-text"
v-if=
"scope.row.OrderStatus == 5"
>
完结:
<span>
{{
scope
.
row
.
FinishTime
}}
</span></p>
<p
class=
"CreateByName-text"
v-if=
"scope.row.OrderStatus == 6"
>
完结:
<span
>
{{
scope
.
row
.
LossFinishTime
}}
</span></p>
<p
class=
"CreateByName-text Commission cp"
v-if=
"scope.row.Commission"
@
click=
"commissionDetails(scope.row)"
>
提成:
<span>
{{
scope
.
row
.
Commission
}}
</span></p>
</
template
>
</template>
</el-table-column>
<el-table-column
label=
"人数"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
GuestCount
}}
</
template
>
</el-table-column>
<el-table-column
label=
"出行概述"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
StartCityName
}}
</
template
>
</el-table-column>
<el-table-column
label=
"应收"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
IncomeMoney
}}
</
template
>
</el-table-column>
<el-table-column
label=
"实收"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
BackMoney
}}
</
template
>
</el-table-column>
<el-table-column
label=
"退款"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
PayMoney
}}
</
template
>
</el-table-column>
<el-table-column
label=
"成本"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
PayMoney
}}
</
template
>
</el-table-column>
<el-table-column
label=
"手续费"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
TaxMoney
}}
</
template
>
</el-table-column>
<el-table-column
label=
"待收"
>
<
template
slot-scope=
"scope"
>
<span
:class=
"
{'cF1416C':scope.row.DueinMoney>0}">
{{
scope
.
row
.
DueinMoney
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"出票状态"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
<span
@
click=
"scope.row.TicketStatusName!='无需机票'?modifyStatus(scope.row):''"
class=
"cp tatusText"
:class=
"item.TicketStatus==1?'grey':
(scope.row.TicketStatus==2?'success':
(scope.row.TicketStatus==3?'error':
(scope.row.TicketStatus==4?'cancel':
(scope.row.TicketStatus==5?'Black':''))))"
>
{{
item
.
TicketStatusName
}}
</span>
<i
v-if=
"scope.row.TicketStatus!=1&&scope.row.TicketVoucherList!=[]&&scope.row.CancelVoucherList!=[]&&scope.row.TicketStatusName!='无需机票'"
class=
"cp iconfont iconpingzhengchaxun Credentials"
@
click=
"viewCredentials(scope.row)"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"签证状态"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
<span
@
click=
"scope.row.VisaStatus=='1'?AmendVisa(scope.row):''"
class=
"tatusText"
:class=
"scope.row.VisaStatus==1?'grey'+' cp':
(scope.row.VisaStatus==2?'success':
(scope.row.VisaStatus==0?'Black':''))"
>
{{
scope
.
row
.
VisaStatus
==
1
?
'未出签'
:(
scope
.
row
.
VisaStatus
==
2
?
'已出签'
:
'无需签证'
)
}}
</span>
<i
v-if=
"scope.row.VisaStatus==2"
class=
"cp iconfont iconpingzhengchaxun Credentials"
@
click=
"CheckOutDetails(scope.row)"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"数量"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
Num
}}
</
template
>
</el-table-column>
<el-table-column
label=
"小计"
min-width=
"70"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
</
template
>
</el-table-column>
<
template
slot=
"append"
v-if=
"item.Remark"
>
<div
style=
"padding:10px;color:#f1416c"
>
客户备注:
{{
item
.
Remark
}}
</div>
</
template
>
</el-table>
</div>
<el-table
:data=
"[item]"
style=
"width:100%"
border
v-if=
"item.OrderStatus!=3"
>
<el-table-column
label=
"实收"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
Income
?
scope
.
row
.
Income
:
"-"
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"成本"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
CostMoney
?
scope
.
row
.
CostMoney
:
"-"
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"平台税金"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
PlatformTax
?
scope
.
row
.
PlatformTax
:
"-"
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"退款"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
Refund
?
scope
.
row
.
Refund
:
"-"
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"毛利"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
class=
"fz15 fbold"
>
{{
scope
.
row
.
Income
-
scope
.
row
.
CostMoney
-
scope
.
row
.
Refund
>
0
?
scope
.
row
.
Income
-
scope
.
row
.
CostMoney
-
scope
.
row
.
Refund
:
'-'
}}
</span>
</
template
>
</el-table-column>
</el-table>
<div
class=
"row justify-sb mt mb20"
>
<div
class=
"column px15 bgf5 radius5 flex-g pa relative"
>
<div
class=
"fz12"
>
收款单据
</div>
<div
class=
"row wrap orderNo fz12 py"
>
<span
class=
"cursor-pointer radius5 mr px5"
:class=
"{'bgD9F3FF':x.Status==0,'bgFAEAED':x.Status==1,'bjFFF3E0':x.Status==2,
'c3FC4FF':x.Status==0,'cF1416C':x.Status==1,'cff9800':x.Status==2}"
v-for=
"(x, i) in item.IncomeFinance"
@
click=
"openDetails(x)"
>
{{ x.FrID }}
</span
>
<span
v-if=
"item.IncomeFinance.length == 0"
class=
"c9e fz12"
>
暂无收款单据
</span>
</div>
<el-tooltip
v-if=
"item.OrderStatus == 2"
class=
"item"
effect=
"dark"
content=
"制单"
placement=
"top"
>
<i
class=
"absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@
click=
"makeAdocument(item, index, 1)"
></i>
</el-tooltip>
</div>
<div
class=
"column px15 bgf5 radius5 ml flex-g pa relative"
>
<div
class=
"fz12"
>
退款单据
</div>
<div
class=
"row wrap orderNo fz12 py"
>
<span
class=
"cursor-pointer radius5 mr px5"
:class=
"{'bgD9F3FF':x.Status==0,'bgFAEAED':x.Status==1,'bjFFF3E0':x.Status==2,
'c3FC4FF':x.Status==0,'cF1416C':x.Status==1,'cff9800':x.Status==2}"
v-for=
"(x, i) in item.BackFinance"
@
click=
"openDetails(x)"
>
{{ x.FrID }}
</span
>
<span
v-if=
"item.BackFinance.length == 0"
class=
"c9e fz12"
>
暂无退款单据
</span>
</div>
<el-tooltip
v-if=
"item.OrderStatus == 2"
class=
"item"
effect=
"dark"
content=
"制单"
placement=
"top"
>
<i
class=
"absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@
click=
"makeAdocument(item, index, 2)"
></i>
</el-tooltip>
</div>
<div
class=
"column px15 bgf5 radius5 ml flex-g pa relative"
>
<div
class=
"fz12"
>
成本单据
</div>
<div
class=
"row wrap orderNo fz12 py"
>
<span
class=
"cursor-pointer radius5 mr px5"
:class=
"{'bgD9F3FF':x.Status==0,'bgFAEAED':x.Status==1,'bjFFF3E0':x.Status==2,
'c3FC4FF':x.Status==0,'cF1416C':x.Status==1,'cff9800':x.Status==2}"
v-for=
"(x, i) in item.PayFinance"
@
click=
"openDetails(x)"
>
{{ x.FrID }}
</span
>
<span
v-if=
"item.PayFinance.length == 0"
class=
"c9e fz12"
>
暂无成本单据
</span>
</div>
<div
class=
"item absolute right20 bottom20"
v-if=
"item.OrderStatus == 2 && pagesTitle != '销售'"
>
<el-tooltip
class=
""
effect=
"dark"
content=
"制单"
placement=
"top"
>
<i
class=
"el-icon-circle-plus cursor-pointer c059FF6"
@
click=
"makeAdocument(item, index, 3)"
></i>
</el-tooltip>
<el-tooltip
class=
""
effect=
"dark"
content=
"冲抵"
placement=
"top"
>
<i
class=
"el-icon-circle-plus cursor-pointer c3FC4FF"
@
click=
"isOffset(item, index, 3)"
></i>
</el-tooltip>
</div>
</div>
<div
class=
"column justify-c px15 bgf5 radius5 ml flex-g pa20"
>
<div
class=
"row-c justify-sb pb5"
:class=
"{'borderD':item.DiscountsMoney>0}"
>
<span
class=
"fz12 c9e"
>
订单总金额
</span>
<div
class=
"ml"
>
<span
class=
"fz15 fbold"
>
{{ item.Money.toFixed(2) }}
</span>
<span
class=
"fz12 ml"
>
{{item.CurrencyName}}
</span>
</div>
</div>
<div
class=
"row-c justify-sb py5"
v-if=
"item.DiscountsMoney>0"
>
<span
class=
"fz12 c9e"
>
优惠金额
</span>
<div
class=
"ml"
>
<span
class=
"fz14"
>
{{ item.DiscountsMoney.toFixed(2) }}
</span>
<span
class=
"fz12"
>
{{ item.CurrencyName }}
</span>
</div>
</div>
</div>
<div
v-if=
"item.OrderStatus > 0 && item.OrderStatus < 4 && item.OrderStatus!=3"
class=
"column justify-c px15 bgE8F5E9 radius5 ml fz12 orderop pa20 flex-s"
>
<div
v-if=
"
item.OrderStatus == 1 &&
item.IncomeList.length == 0 &&
item.RefundList.length == 0 &&
item.CostList.length == 0 && item.OrderSource!=1
"
class=
"row-c cursor-pointer radius5 cancel py5"
@
click=
"clickRightButtom(item, 0)"
>
<i
v-loading=
"msg.OrderId==item.OrderId&&loading0"
></i>
<span
class=
"cF1416C"
>
取消订单
</span>
</div>
<div
v-if=
"item.OrderStatus == 1&&pagesTitle!='销售'&&item.OrderSource!=1"
class=
"row-c cursor-pointer radius5 confirm py5"
@
click=
"clickRightButtom(item, 1)"
>
<i
v-loading=
"msg.OrderId==item.OrderId&&loading1"
></i>
<span
class=
"c20C997"
>
确认订单
</span>
</div>
<div
v-if=
"item.OrderStatus == 1&&pagesTitle=='销售'"
class=
"row-c cursor-pointer radius5 change py5"
@
click=
"goRoomDetails(item, '变更订单')"
>
<span
class=
"c059FF6"
>
订单变更
</span>
</div>
<div
v-if=
"item.OrderStatus > 1"
class=
"row-c cursor-pointer radius5 change1 py5"
@
click=
"clickRightButtom(item, 2)"
>
<i
v-loading=
"msg.OrderId==item.OrderId&&loading2"
></i>
<span
class=
"c20C997"
>
收损
</span>
</div>
</div>
</div>
<div
class=
"mt mb20 bgf5 pa15 row-c"
v-if=
"item.CancelRemark"
>
<div
style=
"font-size:16px;font-weight:bold;font-family: pingfangR;"
>
取消理由:
</div>
<div
style=
"margin-left:12px;font-size:12px;color: grey; font-family: microsoft yahei;"
>
{{item.CancelRemark}}
</div>
<div
style=
"margin-left:12px;font-size:12px;font-family: microsoft yahei;"
>
{{item.CancelEmpName}} {{item.CancelTime}}
</div>
</div>
</div>
<el-dialog
custom-class=
"w400"
title=
"设置收损金额"
:visible
.
sync=
"outerVisible"
>
<div>
<el-form
label-width=
"80px"
:model=
"msg"
:rules=
"rules"
ref=
"msg"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"20"
>
<el-form-item
label=
"收损金额"
prop=
"LossMoney"
>
<el-input-number
class=
"w200"
v-model=
"msg.LossMoney"
:min=
"0"
:max=
"10000000"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"20"
style=
"margin-top: 20px;margin-bottom: 20px;"
>
<el-col
:span=
"24"
style=
"text-align: right;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"保存"
@
click=
"submitForm('msg')"
/>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"取消"
@
click=
"(outerVisible = false), $refs['msg'].resetFields()"
/>
</el-col>
</el-row>
</el-form>
</div>
</el-dialog>
<el-dialog
custom-class=
"w600"
title=
"取消订单"
:visible
.
sync=
"cancelOrderDialog"
>
<div
style=
"padding-bottom:20px"
>
<el-input
type=
"textarea"
autofocus
rows=
"5"
placeholder=
"请填写取消订单的缘由"
clear=
"w300"
v-model=
"cancelRemark"
></el-input>
<el-row
:gutter=
"20"
style=
"margin-top: 20px;"
>
<el-col
:span=
"24"
style=
"text-align: right;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"取消订单"
@
click=
"cancelOrderHandler"
/>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"关闭"
@
click=
"cancelOrderDialog = false"
/>
</el-col>
</el-row>
</div>
</el-dialog>
<offset
:isShow=
"cdState"
:obj=
"queryObj"
@
close=
"cdState=false"
></offset>
</div>
</template>
<
script
>
import
offset
from
'../../public/offset.vue'
;
export
default
{
components
:
{
offset
},
props
:
[
"OrderList"
,
"pagesTitle"
],
data
()
{
return
{
queryObj
:
null
,
cdState
:
false
,
copyId
:
0
,
loading0
:
false
,
loading1
:
false
,
loading2
:
false
,
loading3
:
false
,
BillMakingMsg
:
{
// PeroidsId: null,
// Type: null,
// EmpIds:'',
OtherType
:
61
,
ReFinanceId
:
""
,
ReFinanceId2
:
""
},
userInfo
:
{},
msg
:
{
OrderId
:
""
,
LossMoney
:
0
,
State
:
''
,
//状态 1确认 2已邮寄 3设置自提 4收损
SelffetchAddress
:
''
},
msgParameter
:
{
IsUpdateMailing
:
1
,
OrderId
:
0
,
Money
:
0.0
,
Remark
:
''
,
MailingState
:
'1'
,
//邮寄状态 1自取 2邮寄
MailingAddress
:
''
,
//MailingState =2 填写邮寄
UseDate
:
''
,
//门票日期
Name
:
''
,
EName
:
''
,
Sex
:
'1'
,
//1男2女
Birthday
:
''
,
Mobile
:
''
,
CouponsId
:
''
,
//景点id
DetailList
:[],
},
rules2
:{
Name
:
[{
required
:
true
,
message
:
'请输入中文名'
,
trigger
:
'blur'
}],
EName
:
[{
required
:
true
,
message
:
'请输入英文名'
,
trigger
:
'blur'
}],
Mobile
:
[
{
required
:
true
,
message
:
"请输入联系电话"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_ISphone
,
message
:
"请输入正确的电话"
}
],
MailingAddress
:
[{
required
:
true
,
message
:
'请输入邮寄地址'
,
trigger
:
'blur'
}],
},
outerVisible
:
false
,
rules
:
{
State
:
[
{
required
:
true
,
message
:
"请选择订单状态"
,
trigger
:
"change"
}
],
SelffetchAddress
:
[
{
required
:
true
,
message
:
"请输入自提地址"
,
trigger
:
"blur"
}
],
LossMoney
:
[
{
required
:
true
,
message
:
"请输入收损金额"
,
trigger
:
"blur"
}
]
},
cancelOrderDialog
:
false
,
cancelRemark
:
""
,
cancelOrderId
:
0
,
uploadOrderId
:
0
,
loading
:
false
,
fileList
:[],
GuestFile
:
''
,
ChangeOrderDialog
:
false
,
OrderStatusType
:[
{
Name
:
this
.
$t
(
'OrderList.orderStatus.apply'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.check'
),
ID
:
'2'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.cancel'
),
ID
:
'3'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.sun'
),
ID
:
'4'
},
],
items
:
null
,
typeState
:
''
,
Title
:
''
};
},
watch
:
{
pagesTitle
(
val
,
oldval
){
this
.
Title
=
val
},
OrderList
:{
handler
(
val
,
oldVal
){
}
}
},
methods
:
{
// 签证状态
AmendVisa
(){
},
// 签证
CheckOutDetails
(){
},
// 提成
commissionDetails
(){
},
// 修改订单状态
modifyStatus
(
row
){
},
// 查看出票状态
viewCredentials
(
item
){
},
isOffset
(
row
,
index
,
num
){
this
.
makeAdocument
(
row
,
index
,
num
,
'Offset'
)
setTimeout
(()
=>
{
this
.
cdState
=
true
},
100
)
},
submit2
(){
if
(
this
.
loading3
)
return
this
.
$refs
[
'msgParameter'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
setFormMsg2
()
}
else
{
return
false
;
}
});
},
setFormMsg2
(){
if
(
this
.
msgParameter
.
MailingState
==
'1'
){
this
.
msgParameter
.
MailingAddress
=
''
}
let
m
=
{
IsUpdateMailing
:
1
,
OrderId
:
this
.
msgParameter
.
OrderId
,
CouponsId
:
this
.
msgParameter
.
CouponsId
,
Money
:
this
.
msgParameter
.
Money
,
UseDate
:
this
.
msgParameter
.
UseDate
,
Birthday
:
this
.
msgParameter
.
Birthday
,
DetailList
:
this
.
msgParameter
.
DetailList
,
MailingState
:
this
.
msgParameter
.
MailingState
,
//邮寄状态 1自取 2邮寄
MailingAddress
:
this
.
msgParameter
.
MailingAddress
,
//MailingState =2 填写邮寄
Name
:
this
.
msgParameter
.
Name
,
EName
:
this
.
msgParameter
.
EName
,
Sex
:
this
.
msgParameter
.
Sex
,
//1男2女
Mobile
:
this
.
msgParameter
.
Mobile
,
Remark
:
this
.
msgParameter
.
Remark
,
}
this
.
loading3
=
true
this
.
apipost
(
"ticket_post_SetSaleTicketOrder"
,
m
,
res
=>
{
this
.
loading3
=
false
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
'变更成功'
);
this
.
$emit
(
'success'
)
this
.
ChangeOrderDialog
=
false
}
else
{
this
.
Error
(
'变更失败'
)
}
},
err
=>
{
this
.
loading3
=
false
this
.
Error
(
err
.
message
)
});
},
uploadFileBtn
(
file
){
let
ft
=
file
.
file
.
name
.
substring
(
file
.
file
.
name
.
lastIndexOf
(
'.'
)
+
1
,
file
.
file
.
name
.
length
).
toUpperCase
();
let
typeOk
=
false
;
let
FileName
=
file
.
file
.
name
.
substring
(
0
,
file
.
file
.
name
.
lastIndexOf
(
"."
))
let
newArr
=
[];
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
this
.
GuestFile
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
this
.
uploadHandleChange
()
},
1
);
},
// 上传旅客名单
uploadHandleChange
(){
if
(
this
.
loading
)
return
let
msg
=
{
OrderId
:
this
.
uploadOrderId
,
GuestFileList
:
[
this
.
GuestFile
]
}
this
.
loading
=
true
this
.
apipost
(
"dict_post_SetSaleOrderGuestFile"
,
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
uploadOrderId
=
0
this
.
GuestFile
=
''
this
.
$emit
(
"success"
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{
this
.
loading
=
false
;
}
);
},
// 单据详情
openDetails
(
item
)
{
let
query
=
{
id
:
item
.
FrID
};
this
.
$router
.
push
({
path
:
"/FinancialDocumentsDetail"
,
query
});
},
// 制作单据
makeAdocument
(
row
,
index
,
num
,
Offset
)
{
let
type
=
0
if
(
num
==
3
){
type
=
2
}
else
{
type
=
num
}
this
.
BillMakingMsg
.
ReFinanceId
=
row
.
OrderId
;
this
.
BillMakingMsg
.
ReFinanceId2
=
num
;
this
.
BillMakingMsg
.
OtherType
=
67
;
let
text
=
""
;
let
query
=
{};
if
(
num
==
1
)
{
text
=
"收款"
;
}
else
if
(
num
==
2
)
{
text
=
"付款"
;
}
else
if
(
num
==
3
)
{
text
=
"成本"
;
}
query
=
{
blank
:
"y"
,
tab
:
`新增
${
text
}
单据`
,
Type
:
type
,
tradeObj
:
JSON
.
stringify
(
this
.
BillMakingMsg
)
};
this
.
queryObj
=
query
if
(
!
Offset
){
this
.
$store
.
commit
(
"ChoiceAddFinancialDocuments"
);
this
.
$router
.
push
({
path
:
"/ChoiceAddFinancialDocuments"
,
query
});
}
},
// 订单明细
goRoomDetails
(
obj
,
title
)
{
var
path
if
(
title
===
'订房详情'
){
path
=
"roomReservationsDetails"
;
if
(
this
.
userInfo
.
RB_Group_id
==
91
)
{
path
=
"roomReservationsDetails_swt"
;
}
this
.
$router
.
push
({
name
:
path
,
query
:
{
id
:
obj
.
OrderId
,
OrderType
:
1
,
blank
:
"y"
,
tab
:
title
}
});
}
else
{
//变更预定
this
.
$router
.
push
({
name
:
'CharterPreview'
,
query
:
{
OrderId
:
obj
.
OrderId
,
id
:
obj
.
ProductId
,
blank
:
"y"
,
tab
:
title
}
});
}
},
clickRightButtom
(
item
,
type
)
{
// 0取消订单 1确认订单 2收损
this
.
msg
.
OrderId
=
item
.
OrderId
;
this
.
msg
.
SelffetchAddress
=
item
.
SelffetchAddress
this
.
items
=
item
this
.
typeState
=
type
if
(
type
==
0
)
{
if
(
!
this
.
loading0
)
{
this
.
cancelOrderId
=
item
.
OrderId
// 销售 OP
if
(
this
.
Title
!=
'销售'
){
this
.
cancelOrderDialog
=
true
;
}
else
{
let
that
=
this
that
.
$confirm
(
`是否确定取消订单?`
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
cancelOrderHandler
()
}).
catch
(
err
=>
{
this
.
loading0
=
false
})
}
}
}
else
if
(
type
==
1
)
{
if
(
!
this
.
loading1
)
{
this
.
confirmFun
(
item
,
type
);
}
}
else
if
(
type
==
2
)
{
if
(
!
this
.
loading2
)
{
this
.
outerVisible
=
true
;
this
.
msg
.
LossMoney
=
item
.
LossMoney
?
item
.
LossMoney
:
0
;
}
}
},
// 销售取消订单
cancelOrder
()
{
let
that
=
this
if
(
this
.
loading0
)
return
;
that
.
$confirm
(
`是否确定取消订单?`
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
loading0
=
true
this
.
apipost
(
"ticket_post_CancelSaleTicketOrder"
,
{
OrderId
:
this
.
cancelOrderId
,
IsOPCancel
:
this
.
Title
!=
'销售'
?
1
:
0
,
Remark
:
this
.
cancelRemark
},
res
=>
{
this
.
loading0
=
false
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
$emit
(
"success"
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
}).
catch
(
err
=>
{
this
.
loading0
=
false
})
}).
catch
(()
=>
{
this
.
loading0
=
false
})
},
//提交
submitForm
(
msg
)
{
//提交创建、修改表单
this
.
$refs
[
msg
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
!
this
.
loading2
)
{
this
.
saveUpdate
();
}
}
else
{
// this.Error("请完成必填项");
return
false
;
}
});
},
cancelOrderHandler
()
{
if
(
this
.
cancelRemark
==
""
&&
this
.
Title
!=
'销售'
)
{
this
.
Error
(
"请填写取消订单的缘由"
);
return
;
}
if
(
this
.
loading0
)
return
;
this
.
loading0
=
true
this
.
apipost
(
"CarSingle_post_CancelSaleCarOrder"
,
{
OrderId
:
this
.
cancelOrderId
,
IsOPCancel
:
this
.
Title
!=
'销售'
?
1
:
0
,
Remark
:
this
.
Title
!=
'销售'
?
this
.
cancelRemark
:
''
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
cancelOrderDialog
=
false
this
.
cancelOrderId
=
0
this
.
cancelRemark
=
''
this
.
$emit
(
"success"
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading0
=
false
;
},
err
=>
{
this
.
loading0
=
false
;
}
);
},
saveUpdate
()
{
let
text
=
'是否确认设置收损?'
this
.
$confirm
(
text
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
this
.
loading2
=
true
;
this
.
apipost
(
"CarSingle_post_SetAdminCarOrderState"
,
{
OrderId
:
this
.
msg
.
OrderId
,
State
:
this
.
typeState
,
LossMoney
:
this
.
msg
.
LossMoney
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
$emit
(
"success"
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading2
=
false
;
this
.
outerVisible
=
false
;
},
err
=>
{
(
this
.
loading2
=
false
),
(
this
.
outerVisible
=
false
);
}
);
})
.
catch
(()
=>
{});
},
confirmFun
(
item
,
type
)
{
let
text
=
'是否确认订单?'
this
.
$confirm
(
text
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
})
.
then
(()
=>
{
this
.
loading1
=
true
;
this
.
apipost
(
"CarSingle_post_SetAdminCarOrderState"
,
{
OrderId
:
item
.
OrderId
,
State
:
type
,
LossMoney
:
type
==
2
?
this
.
msg
.
LossMoney
:
''
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
$emit
(
"success"
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading1
=
false
;
},
err
=>
{
this
.
loading1
=
false
;
}
);
})
.
catch
(()
=>
{
this
.
$message
.
info
(
"已取消!"
);
});
},
//复制信息
CopyHandler
(
item
)
{
this
.
copyId
=
item
.
OrderId
;
setTimeout
(()
=>
{
this
.
copyId
=
0
;
},
2000
);
},
setEdate
()
{
return
this
.
addMoth
(
new
Date
().
Format
(
"yyyy-MM-dd"
),
1
);
},
addMoth
(
d
,
m
)
{
let
ds
=
d
.
split
(
"-"
),
_d
=
ds
[
2
]
-
0
;
let
nextM
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
+
1
,
0
);
let
max
=
nextM
.
getDate
();
d
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
,
_d
>
max
?
max
:
_d
);
return
d
.
toLocaleDateString
()
.
match
(
/
\d
+/g
)
.
join
(
"-"
);
},
com_onresize
()
{
//clientHeight的值由DIV内容的实际高度和CSS中的padding值决定,
var
contentsHeight
=
document
.
body
.
clientHeight
;
var
h
=
contentsHeight
-
50
-
180
-
40
;
if
(
h
<
110
)
{
return
;
}
//设置table的行高
// this.tableHeight = h;
}
},
mounted
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
//自适应高度调节
this
.
com_onresize
();
window
.
onresize
=
()
=>
{
this
.
com_onresize
();
};
}
};
</
script
>
<
style
></
style
>
\ No newline at end of file
src/components/SingleAirTicket/components/TicketOrder.vue
0 → 100644
View file @
848ec65d
<
style
scoped
>
.groupTourOrderByTuan_ico
{
margin-left
:
5px
;
}
.groupTourOrderByTuan_ico
>
i
{
display
:
inline-block
;
margin
:
0
5px
0
0
;
width
:
8px
;
height
:
8px
;
border-radius
:
2px
;
vertical-align
:
middle
;
}
.HotelWorkList
.has-gutter
tr
th
,
.el-table
th
.is-leaf
{
background-color
:
#EAEAEA
!important
;
}
.HotelWorkList
.HW_hotelDialog
{
width
:
900px
;
}
.HotelWorkList
.Hw_tableOne
{
width
:
100%
;
height
:
40px
;
background-color
:
#EAEAEA
;
}
.HotelWorkList
.Hw_tableOne
th
{
text-align
:
center
;
}
.HotelWorkList
.HotelWorkInput
.el-input
{
width
:
223px
;
}
.HotelWorkList
.HworkInput
.el-input
{
width
:
210px
;
}
/
deep
/
.query-box
li
span
>
em
{
min-width
:
60px
;
}
</
style
>
<
template
>
<div
class=
"HotelWorkList"
>
<div
class=
"query-box HotelWorkInput"
style=
"border-bottom: none;"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'OrderList.search.status'
)
}}
</em>
<el-select
v-model=
"msg.OrderStatus"
class=
"w200 HworkInput"
>
<el-option
:key=
"0"
:value=
"0"
:label=
"$t('OrderList.orderStatus.normal')"
></el-option>
<el-option
v-for=
"item in OrderStatusType"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li
v-if=
"Title!='销售'"
>
<span>
<em>
业务员
</em>
<el-select
filterable
v-model=
'msg.EnterID'
class=
"w200"
>
<el-option
:value=
"0"
label=
"不限"
></el-option>
<el-option
v-for=
'item in EmployeeList'
:label=
'item.EmName'
:value=
'item.EmployeeId'
:key=
'item.EmployeeId'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>
{{
$t
(
'OrderList.search.orderNum'
)
}}
</em>
<el-input
clearable
type=
"Number"
v-model=
"msg.OrderNo"
:placeholder=
"$t('OrderList.search.orderNum')"
class=
"w200"
/>
</span>
</li>
<!--
<li>
<span><em>
订单ID
</em>
<el-input
clearable
type=
"Number"
v-model=
"msg.OrderId"
placeholder=
"订单ID"
class=
"w200"
/>
</span>
</li>
-->
<!--
<li>
<span><em>
电话
</em>
<el-input
clearable
v-model=
"msg.Mobile"
placeholder=
"电话"
class=
"w200"
/>
</span>
</li>
-->
<li>
<span><em>
客人姓名
</em>
<el-input
clearable
v-model=
"msg.GuestName"
placeholder=
"客人姓名"
class=
"w200"
/>
</span>
</li>
<li>
<span>
<em>
完结时间
</em>
<el-date-picker
style=
"height: 34px;"
value-format=
"yyyy-MM-dd"
v-model=
"Datelist"
type=
"daterange"
:range-separator=
"$t('OrderList.zhi')"
:start-placeholder=
"$t('OrderList.star')"
:end-placeholder=
"$t('OrderList.end')"
@
change=
"getDates"
>
</el-date-picker>
</span>
</li>
<li>
<span>
<em>
出发时间
</em>
<el-date-picker
style=
"height: 34px;"
value-format=
"yyyy-MM-dd"
v-model=
"DatelistUse"
type=
"daterange"
:range-separator=
"$t('OrderList.zhi')"
:start-placeholder=
"$t('OrderList.star')"
:end-placeholder=
"$t('OrderList.end')"
@
change=
"getDatesUse"
>
</el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"msg.pageIndex=1,currentPage=1,GetList()"
/>
</li>
</ul>
</div>
<template>
<div
style=
"display: flex;justify-content: end;margin-bottom: 10px;"
>
<p><span
class=
"groupTourOrderByTuan_ico"
><i
style=
"background-color:#3FC4FF"
></i><span>
{{
$t
(
'fnc.yidadan'
)
}}
</span></span>
<span
class=
"groupTourOrderByTuan_ico"
><i
style=
"background-color:#F1416C"
></i><span>
{{
$t
(
'fnc.yhcnyshenhe'
)
}}
</span></span>
<span
class=
"groupTourOrderByTuan_ico"
><i
style=
"background-color:#ff9800"
></i><span>
{{
$t
(
'fnc.ytongguo'
)
}}
</span></span></p>
</div>
<OrderList
:pagesTitle=
"Title"
:OrderList=
"OrderList"
v-loading=
"loading"
@
success=
"msg.pageIndex=1,GetList()"
>
</OrderList>
<div
v-if=
"OrderList&&OrderList.length==0"
style=
"text-align: center;padding: 100px;"
>
暂无数据
</div>
<el-pagination
v-if=
"OrderList&&OrderList.length>0"
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
>
</el-pagination>
</
template
>
</div>
</template>
<
script
>
import
OrderList
from
'./OrderList.vue'
;
export
default
{
props
:[
'pagesTitle'
,
'dataObj'
],
components
:
{
OrderList
},
data
()
{
return
{
MultipleChoiceList
:
[
//多选项目
{
Name
:
'机票'
,
Id
:
'1'
},
{
Name
:
'签证'
,
Id
:
'2'
},
{
Name
:
'地接'
,
Id
:
'3'
},
{
Name
:
'套餐'
,
Id
:
'4'
},
{
Name
:
'其他'
,
Id
:
'5'
}
],
userInfo
:
{},
HotelList
:
[],
loading
:
false
,
isShow
:
false
,
outerVisible
:
false
,
//订单列表
OrderList
:
[],
//默认高度
tableHeight
:
0
,
msg
:{
// pageIndex: 1,
// pageSize: 5,
// OrderType: '1',
// OrderId: '',
// OrderNo: '',
// SurName: '',
// Name: '',
// OrderStatus: 0,
// StartTime: '',
// EndTime: '',
// OrderSTime: '',
// OrderETime: '',
// ProductName: '',
// Mobile: '',//电话
// IsSelectSale: 1,
// EnterID: 0,//业务员
pageIndex
:
1
,
pageSize
:
15
,
OrderId
:
""
,
//订单id
GuestName
:
""
,
//客人姓名
GuestId
:
""
,
//客人id
StartCityName
:
""
,
//出发城市
EndCityName
:
""
,
//到达城市
EnterID
:
""
,
//业务员id
TicketStatus
:
"0"
,
//出票状态
VisaStatus
:
"0"
,
//出签状态
OrderStatus
:
"0"
,
//订单状态
Q_IsCollect
:
"0"
,
//收款状态
StartTime
:
""
,
EndTime
:
""
,
IsMyOrder
:
"1"
,
//我的订单
FinishSTime
:
""
,
//完结开始时间
FinishETime
:
""
,
//完结结束时间
DepartSTime
:
""
,
//出发开始
DepartETime
:
""
,
//出发结束
},
total
:
0
,
currentPage
:
1
,
OrderStatusType
:[
{
Name
:
this
.
$t
(
'OrderList.orderStatus.apply'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.check'
),
ID
:
'2'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.cancel'
),
ID
:
'3'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.sun'
),
ID
:
'4'
},
],
OrderStateType
:[
{
Name
:
'接机'
,
ID
:
'1'
},
{
Name
:
'送机'
,
ID
:
'2'
},
{
Name
:
'包车'
,
ID
:
'3'
},
],
orderType
:[
{
Name
:
this
.
$t
(
'OrderList.orderType.tour'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.orderType.guest'
),
ID
:
'2'
},
],
Datelist
:
''
,
DatelistUse
:
''
,
Title
:
''
,
EmployeeList
:[],
employeeMsg
:{
// 员工
GroupId
:
''
,
BranchId
:
-
1
,
DepartmentId
:
0
,
PostId
:
0
,
IsLeave
:
0
,
},
};
},
watch
:
{
pagesTitle
(
val
,
oldval
){
this
.
Title
=
val
},
dataObj
:{
handler
(
val
,
oldVal
)
{
this
.
msg
.
OrderType
=
val
.
tab
this
.
msg
.
OrderId
=
val
.
OrderId
this
.
GetList
()
},
deep
:
true
,
}
},
methods
:
{
getEmployee
()
{
//员工
this
.
apipost
(
'admin_get_EmployeeGetList'
,
this
.
employeeMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
getDatesUse
(){
if
(
this
.
Datelist
){
this
.
msg
.
DepartSTime
=
this
.
Datelist
[
0
]
this
.
msg
.
DepartETime
=
this
.
Datelist
[
1
]
}
if
(
!
this
.
Datelist
){
this
.
msg
.
DepartSTime
=
''
this
.
msg
.
DepartETime
=
''
}
},
getDates
(){
if
(
this
.
DatelistUse
){
this
.
msg
.
FinishSTime
=
this
.
Datelist
[
0
]
this
.
msg
.
FinishETime
=
this
.
Datelist
[
1
]
}
if
(
!
this
.
DatelistUse
){
this
.
msg
.
FinishSTime
=
''
this
.
msg
.
FinishETime
=
''
}
},
setEdate
()
{
return
this
.
addMoth
(
new
Date
().
Format
(
"yyyy-MM-dd"
),
1
)
},
addMoth
(
d
,
m
)
{
let
ds
=
d
.
split
(
'-'
),
_d
=
ds
[
2
]
-
0
;
let
nextM
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
+
1
,
0
);
let
max
=
nextM
.
getDate
();
d
=
new
Date
(
ds
[
0
],
ds
[
1
]
-
1
+
m
,
_d
>
max
?
max
:
_d
);
return
d
.
toLocaleDateString
().
match
(
/
\d
+/g
).
join
(
'-'
)
},
getyMDOne
(){
let
myDate
=
new
Date
()
let
myYear
=
myDate
.
getFullYear
();
//获取完整的年份(4位,1970-????)
let
myMonth
=
myDate
.
getMonth
()
+
1
;
//获取当前月份(0-11,8代表1月)
let
myToday
=
myDate
.
getDate
();
//获取当前日(1-31)
myMonth
=
myMonth
>
9
?
myMonth
:
'0'
+
myMonth
myToday
=
myToday
>
9
?
myToday
:
'0'
+
myToday
let
nowDate
=
myYear
+
'-'
+
myMonth
+
'-01'
return
nowDate
},
getyMDTwo
(){
let
myDate
=
new
Date
()
let
myYear
=
myDate
.
getFullYear
();
//获取完整的年份(4位,1970-????)
let
myMonth
=
myDate
.
getMonth
()
+
1
;
//获取当前月份(0-11,8代表1月)
let
myToday
=
myDate
.
getDate
();
//获取当前日(1-31)
myMonth
=
myMonth
>
9
?
myMonth
:
'0'
+
myMonth
myToday
=
myToday
>
9
?
myToday
:
'0'
+
myToday
let
nowDate
=
myYear
+
'-'
+
myMonth
+
'-'
+
myToday
return
nowDate
},
//获取酒店订单列表
GetList
()
{
this
.
loading
=
true
let
url
// 销售 OP
if
(
this
.
pagesTitle
==
'销售'
){
url
=
"/api/Order/GetGuestOrderStatisticsPageList"
}
else
{
// url = "CarSingle_post_GetAdminCarOrderPageList"
}
this
.
crmapipost
(
url
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
// console.log(res.data,'-----')
let
data
=
res
.
data
.
data
.
Data
.
pageData
let
addList
=
function
(
arr
)
{
arr
.
forEach
((
item
)
=>
{
item
.
More
=
""
;
item
.
actuallyReceived
=
false
;
item
.
cost
=
false
;
item
.
selectedType
=
""
;
item
.
checkList
=
[];
item
.
MultipleChoiceList
=
[];
item
.
MoreList
=
[
{
Name
:
"取消订单"
,
Id
:
"1"
,
show
:
item
.
OrderStatus
!=
2
&&
item
.
OrderStatus
!=
5
&&
item
.
OrderStatus
!=
6
?
true
:
false
,
},
{
Name
:
"订单转交"
,
Id
:
"2"
,
show
:
true
,
},
{
Name
:
"修改订单金额"
,
Id
:
"3"
,
show
:
item
.
OrderStatus
!=
2
&&
item
.
OrderStatus
!=
5
&&
item
.
OrderStatus
!=
6
&&
(
item
.
TicketStatus
==
1
||
item
.
VisaStatus
==
1
)
?
true
:
false
,
},
{
Name
:
"修改出票状态"
,
Id
:
"4"
,
show
:
item
.
OrderStatus
!=
2
&&
item
.
OrderStatus
!=
5
&&
item
.
OrderStatus
!=
6
&&
item
.
TicketStatus
<
3
?
true
:
false
,
},
{
Name
:
"修改出签状态"
,
Id
:
"5"
,
show
:
item
.
OrderStatus
!=
2
&&
item
.
OrderStatus
!=
5
&&
item
.
OrderStatus
!=
6
&&
item
.
VisaStatus
==
1
?
true
:
false
,
},
{
Name
:
"订单收损"
,
Id
:
"8"
,
show
:
item
.
OrderStatus
!=
2
&&
item
.
OrderStatus
!=
6
?
true
:
false
,
},
{
Name
:
"收损完结"
,
Id
:
"9"
,
show
:
(
item
.
OrderStatus
==
3
||
item
.
OrderStatus
==
4
)
&&
item
.
DueinMoney
==
0
?
true
:
false
,
},
{
Name
:
'订单完结'
,
Id
:
'6'
,
show
:
item
.
OrderStatus
==
1
&&
item
.
DueinMoney
==
0
?
true
:
false
},
{
Name
:
"操作日志"
,
Id
:
"7"
,
show
:
true
,
},
{
Name
:
"修改日期"
,
Id
:
"10"
,
show
:
item
.
OrderType
&&
item
.
OrderType
.
indexOf
(
1
)
!=
-
1
?
true
:
false
,
}
];
});
};
addList
(
data
);
data
.
forEach
((
item
)
=>
{
if
(
item
.
OrderType
)
{
let
list
=
item
.
OrderType
&&
item
.
OrderType
.
split
(
","
);
for
(
let
j
=
0
;
j
<
list
.
length
;
j
++
)
{
for
(
let
i
=
0
;
i
<
this
.
MultipleChoiceList
.
length
;
i
++
)
{
if
(
list
[
j
]
==
this
.
MultipleChoiceList
[
i
].
Id
)
{
item
.
MultipleChoiceList
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
MultipleChoiceList
[
i
]))
);
}
}
}
}
if
(
item
.
LossList
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
item
.
LossList
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
item
.
MultipleChoiceList
.
length
;
j
++
)
{
if
(
item
.
LossList
[
i
].
OrderType
==
item
.
MultipleChoiceList
[
j
].
Id
)
{
item
.
MultipleChoiceList
[
j
].
show
=
true
;
}
}
}
}
});
this
.
OrderList
=
res
.
data
.
data
.
Data
.
pageData
;
this
.
total
=
res
.
data
.
data
.
Data
.
count
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
this
.
loading
=
false
},
err
=>
{
this
.
loading
=
false
}
);
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
GetList
();
},
com_onresize
()
{
//clientHeight的值由DIV内容的实际高度和CSS中的padding值决定,
var
contentsHeight
=
document
.
body
.
clientHeight
;
var
h
=
contentsHeight
-
50
-
180
-
40
;
if
(
h
<
110
)
{
return
;
}
//设置table的行高
this
.
tableHeight
=
h
;
},
},
created
()
{
if
(
this
.
$route
.
query
.
OrderId
){
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
}
let
userInfo
=
this
.
getLocalStorage
();
this
.
employeeMsg
.
GroupId
=
userInfo
.
RB_Group_id
;
//集团ID
// this.msg.EnterID = userInfo.EmployeeId;
},
mounted
()
{
this
.
Title
=
this
.
pagesTitle
if
(
this
.
Title
!=
'销售'
){
this
.
getEmployee
()
}
this
.
Datelist
=
this
.
getyMDOne
()
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
GetList
();
//自适应高度调节
this
.
com_onresize
();
window
.
onresize
=
()
=>
{
this
.
com_onresize
();
}
},
};
</
script
>
<
style
>
</
style
>
\ No newline at end of file
src/components/busManagement/BookAcar/CharterPreview.vue
View file @
848ec65d
...
...
@@ -305,6 +305,10 @@
<div
class=
"list-left"
>
<h6
@
click=
"showCardHandler"
>
{{detailsObj.Name}}
</h6>
<p
style=
"color: #9e9e9e;font-size: 13px;"
>
请在出发前一天的23:00前完成预定
</p>
<div
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:{{crmOrderObj.LureEmpNmae}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:{{crmOrderObj.CRMGuestName}}
</span>
</div>
<!-- <div>
<span>地址: {{detailsObj.CityList2[0].CountryName }}{{detailsObj.CityList2[0].CityName}}</span>
<a @click="showCardHandler"><i class="el-icon-map-location"></i> 地图</a>
...
...
@@ -438,8 +442,8 @@
placeholder=
"请输入上车地点"
>
</el-input>
<span
@
click=
"clickMapAddress(1,1,msg.GetonAddress)"
class=
"el-icon-location"
style=
"font-size: 16px;color: #E95252;position: absolute;right: 10px;top: 15px;"
></span>
<
!-- <
span @click="clickMapAddress(1,1,msg.GetonAddress)"
class="el-icon-location" style="font-size: 16px;color: #E95252;position: absolute;right: 10px;top: 15px;"></span>
-->
</el-form-item>
</li>
<li
v-if=
"msg.OrderType!=2"
>
...
...
@@ -637,6 +641,8 @@
Mobile
:
''
,
//电话
ProductId
:
''
,
CarId
:
''
,
//产品类型ID
LureEmpId
:
0
,
CRMGuestId
:
0
,
},
types
:
[],
isCheck
:
false
,
...
...
@@ -712,7 +718,8 @@
}
],
},
detailsRow
:
null
detailsRow
:
null
,
crmOrderObj
:
null
};
},
methods
:
{
...
...
@@ -980,7 +987,12 @@
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
msg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
//引流id
this
.
msg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
//客人ID
}
},
created
()
{
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
...
...
src/components/busManagement/BookAcar/addEditVehicle.vue
View file @
848ec65d
...
...
@@ -284,6 +284,10 @@
<div
class=
"listone-list"
>
<div
class=
"list-left"
>
<p
style=
"color: #9e9e9e;font-size: 13px;"
>
请在出发前一天的23:00前完成预定
</p>
<div
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</div>
</div>
</div>
</div>
...
...
@@ -500,7 +504,9 @@
// UseType: null,//用车类型(接口返下拉列表)
// TripInfo: "",//行程信息
// }
]
],
LureEmpId
:
0
,
CRMGuestId
:
0
,
},
types
:
[],
isCheck
:
false
,
...
...
@@ -584,7 +590,8 @@
},
vehicletop
:
[],
listvehicle
:
[],
SeatNum
:
0
SeatNum
:
0
,
crmOrderObj
:
null
,
};
},
methods
:
{
...
...
@@ -801,6 +808,12 @@
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
msg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
//引流id
this
.
msg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
//客人ID
}
let
userInfo
=
this
.
getLocalStorage
();
this
.
msg
.
UseCompName
=
userInfo
.
GroupName
this
.
msg
.
UseName
=
userInfo
.
emName
...
...
src/components/busManagement/BookAcar/list.vue
View file @
848ec65d
...
...
@@ -314,6 +314,7 @@
},
detailsObj
:{},
showDetails
:
false
,
crmOrderObj
:
null
};
},
watch
:
{
...
...
@@ -334,6 +335,7 @@
name
:
'CharterAddEditVehicle'
,
query
:
{
blank
:
"y"
,
crmOrderObj
:
this
.
crmOrderObj
?
this
.
crmOrderObj
:
null
,
tab
:
"新增团订"
}
});
...
...
@@ -344,6 +346,7 @@
query
:
{
id
:
id
,
OrderDate
:
this
.
FormartDate
(
new
Date
(
this
.
msg
.
Q_Date
)),
crmOrderObj
:
this
.
crmOrderObj
?
this
.
crmOrderObj
:
null
,
blank
:
"y"
,
tab
:
"订单预览"
}
...
...
@@ -445,7 +448,10 @@
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
this
.
$route
.
query
.
crmOrderObj
}
},
created
()
{
this
.
getProvinceList
();
...
...
src/components/scenicSpot/Singleticket/OrderPreview.vue
View file @
848ec65d
...
...
@@ -279,6 +279,10 @@
<div
class=
"list-left"
>
<h6
@
click=
"showCardHandler"
>
{{
detailsObj
.
Name
}}
</h6>
<p
style=
"color: #9e9e9e;font-size: 13px;"
>
请在游玩前一天的23:00前完成预定
</p>
<div
v-if=
"crmOrderObj"
>
<span
style=
"color: red;"
>
引流人:
{{
crmOrderObj
.
LureEmpNmae
}}
</span>
<span
style=
"color: #2AAEF2;"
>
/客人:
{{
crmOrderObj
.
CRMGuestName
}}
</span>
</div>
<!--
<div>
<span>
地址:
{{
detailsObj
.
CityName
}}
{{
detailsObj
.
Address
}}
</span>
<a
@
click=
"showCardHandler"
><i
class=
"el-icon-map-location"
></i>
地图
</a>
...
...
@@ -480,6 +484,8 @@
Mobile
:
''
,
CouponsId
:
''
,
//景点id
DetailList
:[],
LureEmpId
:
0
,
CRMGuestId
:
0
,
},
types
:
[],
isCheck
:
false
,
...
...
@@ -515,7 +521,8 @@
trigger
:
'blur'
}],
},
detailsRow
:
null
detailsRow
:
null
,
crmOrderObj
:
null
};
},
methods
:
{
...
...
@@ -682,7 +689,12 @@
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
JSON
.
parse
(
this
.
$route
.
query
.
crmOrderObj
)
this
.
msg
.
LureEmpId
=
this
.
crmOrderObj
.
LureEmpId
this
.
msg
.
CRMGuestId
=
this
.
crmOrderObj
.
CRMGuestId
}
},
created
()
{
this
.
msg
.
CouponsId
=
this
.
$route
.
query
.
id
...
...
src/components/scenicSpot/Singleticket/SingleticketList.vue
View file @
848ec65d
...
...
@@ -150,7 +150,7 @@
<div
class=
"flexOne domesticScenic"
>
<div
class=
"query-box"
>
<ul>
<li>
<
!--
<
li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.QProvince"
filterable
@
change=
"getProvinceList(msg.QProvince, 2)"
...
...
@@ -163,7 +163,7 @@
<el-option
v-for=
"item in cityList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
</li>
-->
<li><span><em>
日期
</em>
<el-date-picker
v-model=
'msg.OpenTime'
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"beforeCheck"
laceholder=
"门票日期"
>
...
...
@@ -294,7 +294,7 @@ export default {
msg
:
{
pageIndex
:
1
,
pageSize
:
16
,
QCountry
:
'
651'
,
QCountry
:
'
0'
,
//651
QProvince
:
0
,
QCity
:
0
,
QDistrict
:
0
,
...
...
@@ -312,6 +312,7 @@ export default {
},
detailsObj
:
{},
showDetails
:
false
,
crmOrderObj
:
null
,
};
},
watch
:
{
...
...
@@ -333,6 +334,7 @@ export default {
query
:
{
id
:
id
,
OpenTime
:
this
.
FormartDate
(
new
Date
(
this
.
msg
.
OpenTime
)),
crmOrderObj
:
this
.
crmOrderObj
?
this
.
crmOrderObj
:
null
,
blank
:
"y"
,
tab
:
"订单预览"
}
...
...
@@ -427,7 +429,10 @@ export default {
},
mounted
()
{
// crm自动登陆传过来的参数
if
(
this
.
$route
.
query
.
crmOrderObj
){
this
.
crmOrderObj
=
this
.
$route
.
query
.
crmOrderObj
}
},
created
()
{
this
.
getProvinceList
(
"651"
,
1
);
...
...
src/router/config.js
View file @
848ec65d
...
...
@@ -2110,6 +2110,14 @@ export default {
title
:
'用车订单'
},
},
{
path
:
'/CRMTicketOrder'
,
//crm单项机票订单
name
:
'CRMTicketOrder'
,
component
:
resolve
=>
require
([
'@/components/SingleAirTicket/TicketOrder'
],
resolve
),
meta
:
{
title
:
'单机票订单'
},
},
{
path
:
'/CharterAddEditVehicle'
,
//新增/编辑团订
name
:
'CharterAddEditVehicle'
,
...
...
@@ -2229,7 +2237,8 @@ export default {
meta
:
{
title
:
'签证已确认'
},
},
{
},
{
path
:
'/TravelManager'
,
//团控配置
name
:
'TravelManager'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelGroupControl/TravelManager'
],
resolve
),
...
...
@@ -2319,13 +2328,6 @@ export default {
meta
:
{
title
:
'在线申请'
},
},
{
path
:
'/airplaneOrder'
,
//订单列表
name
:
'airplaneOrder'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelTeam/orderInfo'
],
resolve
),
meta
:
{
title
:
'订单列表'
},
},
{
path
:
'/TravelSupplier'
,
//供应商列表
name
:
'TravelSupplier'
,
...
...
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