Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CRM
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
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
华国豪
CRM
Commits
3af492cd
Commit
3af492cd
authored
Apr 06, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
0965f427
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2373 additions
and
335 deletions
+2373
-335
allorder.css
src/assets/css/allorder.css
+15
-0
HomeNavTop.vue
src/components/HomeNav/HomeNavTop.vue
+9
-0
customerOrder.vue
src/components/customerManage/customerOrder.vue
+1
-1
myCustomerOrder.vue
src/components/customerManage/myCustomerOrder.vue
+5
-2
orderList.vue
src/components/customerManage/orderList.vue
+1
-1
Agreement copy.vue
src/components/guestManagement/Agreement copy.vue
+1256
-0
Agreement.vue
src/components/guestManagement/Agreement.vue
+121
-325
allList.vue
src/components/myOrdersAllType/components/allList.vue
+556
-0
orderList.vue
src/components/myOrdersAllType/components/orderList.vue
+312
-0
customerOrderAllType.vue
src/components/myOrdersAllType/customerOrderAllType.vue
+23
-0
myCustomerOrderAllType.vue
src/components/myOrdersAllType/myCustomerOrderAllType.vue
+23
-0
main.js
src/main.js
+27
-1
index.js
src/plugins/index.js
+5
-4
router.js
src/router.js
+18
-0
login.vue
src/views/login.vue
+1
-1
No files found.
src/assets/css/allorder.css
0 → 100644
View file @
3af492cd
.Black
{
color
:
Black
;
}
.red
{
color
:
#fd397a
;
}
.blue
{
color
:
#409eff
;
}
.gray
{
color
:
gray
;
}
.px-10px
{
padding
:
0
10px
;
}
\ No newline at end of file
src/components/HomeNav/HomeNavTop.vue
View file @
3af492cd
...
...
@@ -29,6 +29,9 @@
font-size
:
16px
;
cursor
:
pointer
;
font-family
:
perfectFont
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.nav-right
.nav-right-menu
ul
li
:first-child
{
margin-left
:
0px
;
...
...
@@ -46,10 +49,14 @@
flex
:
unset
;
width
:
240px
;
justify-content
:
flex-end
;
}
.nav-right
.nav-right-info
.right-item
{
text-align
:
right
;
padding-left
:
20px
;
display
:
flex
;
flex-wrap
:
nowrap
;
align-items
:
center
;
}
/* .nav-right .nav-right-info .right-item:last-child{
margin: 0px;
...
...
@@ -63,11 +70,13 @@
font-size
:
12px
;
color
:
#bbb
;
margin-right
:
5px
;
white-space
:
nowrap
;
}
.nav-right
.nav-right-info
.right-item
.usr-name
{
font-size
:
16px
;
font-weight
:
bold
;
color
:
black
;
white-space
:
nowrap
;
}
.nav-right
.nav-right-info
.right-item
i
{
font-size
:
20px
;
...
...
src/components/customerManage/customerOrder.vue
View file @
3af492cd
...
...
@@ -60,7 +60,7 @@
<
template
>
<div
class=
"customerManage"
>
<div
class=
"tools"
>
<h1>
订单
管理
</h1>
<h1>
机票订单统计
管理
</h1>
<div
class=
"rightmenu"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"downLoadExcel"
>
导出
</el-button>
</div>
...
...
src/components/customerManage/myCustomerOrder.vue
View file @
3af492cd
...
...
@@ -60,7 +60,7 @@
<
template
>
<div
class=
"customerManage"
>
<div
class=
"tools"
>
<h1>
订单管理
</h1>
<h1>
机票
订单管理
</h1>
<div
class=
"rightmenu"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"downLoadExcel"
>
导出
</el-button>
</div>
...
...
@@ -246,7 +246,7 @@
<span
class=
"red"
>
{{
StatModel
.
CancelNum
}}
人
</span>
</div>
</div>
<div
class=
"query-box status-box"
>
<div
class=
"query-box status-box
px-10px
"
>
<div
class=
"status-text"
>
<div
class=
"tis-k"
style=
"background: #2961FE"
></div>
<span>
已打单
</span>
...
...
@@ -355,6 +355,9 @@ export default {
let
data
=
JSON
.
parse
(
this
.
$route
.
query
.
erpOrderObj
);
this
.
msg
.
OrderId
=
data
.
OrderId
;
}
if
(
this
.
$route
.
query
.
OrderId
)
{
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
}
this
.
Employee
();
//业务员
this
.
GetTicketStatusEnumList
();
//出票枚举
this
.
GetOrderStatusEnumList
();
//订单状态枚举
...
...
src/components/customerManage/orderList.vue
View file @
3af492cd
...
...
@@ -327,7 +327,7 @@ export default {
Name
:
'套餐'
,
Id
:
'4'
},
{
Name
:
'
套餐
'
,
Name
:
'
其他
'
,
Id
:
'5'
}
],
...
...
src/components/guestManagement/Agreement copy.vue
0 → 100644
View file @
3af492cd
<
style
scoped
>
.add-Enclosure
{
display
:
flex
;
justify-content
:
space-between
;
}
.add-Enclosure-left
{
display
:
flex
;
}
.item-but-box
{
display
:
flex
;
}
.item-but
{
margin-right
:
10px
;
}
.numIcon
{
font-size
:
12px
;
padding
:
5px
;
color
:
#409eff
;
}
.numIcon
:hover
{
cursor
:
pointer
;
}
.tatusText.grey
{
color
:
grey
;
}
.tatusText.success
{
color
:
#21BA45
;
}
.tatusText.error
{
color
:
#F2C037
;
}
.tatusText.cancel
{
color
:
#c1c1c1
;
}
.tatusText.Black
{
color
:
Black
;
}
.ToBeReceived.red
{
color
:
#fd397a
;
}
.ToBeReceived.blue
{
color
:
#409eff
;
}
.income_1
{
color
:
#2961FE
;
cursor
:
pointer
;
}
.income_2
{
color
:
#3FC4FF
;
cursor
:
pointer
;
}
.enedit-box
{
display
:
flex
;
align-items
:
center
;
}
.select-right
{
margin-left
:
5px
;
}
.Credentials
{
color
:
#2961FE
;
cursor
:
pointer
;
}
.agreement-IncomeMoney-box
{
/* position: relative; */
}
.agreement-IncomeMoney-box
.numIcon
{
position
:
relative
;
}
.agreement-IncomeMoney-pop
{
position
:
absolute
;
top
:
-15px
;
left
:
30px
;
z-index
:
1
;
background
:
#fff
;
padding
:
10px
19px
10px
19px
;
Box-shadow
:
5px
5px
10px
5px
#ccc
;
}
/
deep
/
.Agreement-Business
.el-table
.cell
{
overflow
:
initial
!important
;
}
.agreement-Cancel
{
text-align
:
right
;
color
:
#409eff
;
}
.agreement-Cancel
span
:first-child
{
color
:
#999999
;
margin-right
:
20px
;
}
.agreement-Cancel
span
:hover
{
cursor
:
pointer
;
}
.float-flag-shape
{
position
:
absolute
;
top
:
20px
;
border
:
1px
solid
#fff
;
height
:
0
;
width
:
0
;
border-left
:
4px
solid
rgba
(
0
,
0
,
0
,
0
);
border-right
:
4px
solid
#fff
;
border-top
:
3px
solid
rgba
(
0
,
0
,
0
,
0
);
border-bottom
:
3px
solid
#fff
;
left
:
-8px
;
}
/
deep
/
.el-table
.cell.el-tooltip
{
overflow
:
hidden
!important
;
}
/
deep
/
.classorder
.Agreement-Business
table
th
{
text-indent
:
0
!important
;
}
/
deep
/
.el-table
th
>
.cell
{
text-align
:
left
!important
;
}
.OrderType-text-box
{
word-break
:
break-word
;
word-wrap
:
break-word
;
white-space
:
-moz-pre-wrap
;
white-space
:
-hp-pre-wrap
;
white-space
:
-o-pre-wrap
;
white-space
:
-pre-wrap
;
white-space
:
pre
;
white-space
:
pre-wrap
;
white-space
:
pre-line
;
}
.text-underline
{
font-size
:
16px
;
color
:
rgb
(
41
,
97
,
254
);
margin-right
:
10px
;
font-weight
:
bold
;
cursor
:
pointer
;
}
.OrderType-text-box
.text-underline
:hover
{
text-decoration
:
underline
;
}
.OrderType-text
{
font-size
:
10px
;
font-weight
:
100
;
margin-left
:
5px
;
border-radius
:
3px
;
display
:
inline-block
;
padding
:
0
1px
;
margin-bottom
:
2px
;
}
.OrderType-text-box
.OrderType-text
:nth-child
(
2
)
{
margin-left
:
0
;
}
.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
(
33
,
186
,
69
);
background-color
:
rgba
(
33
,
186
,
69
,
.2
);
}
.Order-list-Status.six
{
color
:
rgb
(
102
,
187
,
106
);
background-color
:
rgba
(
102
,
187
,
106
,
.2
);
}
</
style
>
<
template
>
<div
class=
"Agreement-Business"
>
<div
class=
"add-Enclosure"
>
<el-row
:gutter=
"22"
>
<el-col
:span=
"5"
>
<el-input
size=
"mini"
placeholder=
"输入订单ID"
v-model=
"msg.OrderId"
label=
"订单ID"
@
keyup
.
enter
.
native=
"getList"
></el-input>
</el-col>
<el-col
:span=
"5"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
出票状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.TicketStatus"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in ticketingStatusList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"5"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
出签状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.VisaStatus"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in VisaList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"5"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
订单状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.OrderStatus"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in OrderStatusList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
></el-option>
</el-select>
</div>
</el-col>
</el-row>
<el-dropdown
@
command=
"handleCommand"
style=
"top: 1px;"
>
<el-button
plain
icon=
"el-icon-plus"
type=
"primary"
size=
"mini"
class=
"margin-right0"
>
创建订单
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"1"
>
机票订单
</el-dropdown-item>
<el-dropdown-item
command=
"2"
>
签证订单
</el-dropdown-item>
<el-dropdown-item
command=
"3"
>
跟团游订单
</el-dropdown-item>
<el-dropdown-item
command=
"4"
>
当地游订单
</el-dropdown-item>
<el-dropdown-item
command=
"5"
>
酒店订单
</el-dropdown-item>
<el-dropdown-item
command=
"6"
>
门票订单
</el-dropdown-item>
<el-dropdown-item
command=
"7"
>
包车订单
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!--
<el-button
plain
icon=
"el-icon-plus"
type=
"primary"
size=
"mini"
class=
"margin-right0"
@
click=
"addBusiness"
>
创建订单
</el-button>
-->
</div>
<div
class=
"page-content"
>
<el-table
v-loading=
"loading"
stripe
ref=
"multipleTable"
:data=
"dataList"
tooltip-effect=
"dark"
style=
"width: 100%"
:height=
"dataList.length > 0 ? '600' : '660'"
row-class-name=
"font-size-12"
>
<el-table-column
fixed
label=
"订单号"
:width=
"110"
>
<template
slot-scope=
"scope"
>
<div
class=
"OrderType-text-box"
@
click=
"clickSingleNumber(scope.row)"
>
<p
class=
"text-underline"
>
{{
scope
.
row
.
OrderId
}}
</p>
<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,index) in scope.row.MultipleChoiceList">
{{
items
.
Name
}}
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
fixed
label=
"业务员"
show-overflow-tooltip
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
EnterName
}}
</p>
<p>
{{
scope
.
row
.
CreateTime
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"出行概述"
show-overflow-tooltip
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<p>
人数:
{{
scope
.
row
.
GuestCount
}}
人
</p>
<p>
{{
scope
.
row
.
StartCityName
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"应收"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
@
click=
"scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?editOrderAmount(scope.row):''"
class=
"cp"
:class=
"scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?'font-color-link':''"
>
{{
scope
.
row
.
Money
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"实收"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"agreement-IncomeMoney-box"
>
{{
scope
.
row
.
IncomeMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,1)"
class=
"iconfont iconjia- numIcon"
>
<div
v-show=
"scope.row.actuallyReceived"
class=
"agreement-IncomeMoney-pop"
>
<div
class=
"float-flag-shape"
></div>
<el-checkbox-group
v-model=
"scope.row.checkList"
@
change=
"clickMultipleChoice(scope.row,scope.$index,1)"
>
<el-checkbox
v-for=
"(item,index) in scope.row.MultipleChoiceList"
:key=
"index"
:label=
"item.Id"
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
<div
class=
"agreement-Cancel"
>
<span
@
click
.
stop=
"popCancelClick(scope.row,scope.$index,1)"
>
取消
</span>
<span
@
click
.
stop=
"popClick(scope.row,scope.$index,1)"
>
确定
</span>
</div>
</div>
</i>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"退款"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
BackMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,2)"
class=
"iconfont iconjia- numIcon"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"成本"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"agreement-IncomeMoney-box"
>
{{
scope
.
row
.
PayMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,3)"
class=
"iconfont iconjia- numIcon"
>
<div
v-show=
"scope.row.cost"
class=
"agreement-IncomeMoney-pop"
>
<div
class=
"float-flag-shape"
></div>
<el-radio-group
v-model=
"scope.row.selectedType"
@
change=
"clickMultipleChoice(scope.row,scope.$index,3)"
>
<el-radio
v-for=
"(item,index) in scope.row.MultipleChoiceList"
:key=
"index"
:label=
"item.Id"
>
{{
item
.
Name
}}
</el-radio>
</el-radio-group>
<div
class=
"agreement-Cancel"
>
<span
@
click
.
stop=
"popCancelClick(scope.row,scope.$index,3)"
>
取消
</span>
<span
@
click
.
stop=
"popClick(scope.row,scope.$index,3)"
>
确定
</span>
</div>
</div>
</i>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"TaxMoney"
label=
"手续费"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"待收"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
class=
"ToBeReceived"
:class=
"scope.row.DueinMoney==0?'blue':'red'"
>
{{
scope
.
row
.
DueinMoney
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"出票状态"
:width=
"90"
>
<
template
slot-scope=
"scope"
>
<span
@
click=
"modifyStatus(scope.row)"
class=
"cp tatusText"
:class=
"scope.row.TicketStatus==1?'grey':
(scope.row.TicketStatus==2?'success':
(scope.row.TicketStatus==3?'error':
(scope.row.TicketStatus==4?'cancel':
(scope.row.TicketStatus==5?'Black':''))))"
>
{{
scope
.
row
.
TicketStatusName
}}
</span>
<i
v-if=
"scope.row.TicketStatus!=1&&
scope.row.TicketVoucherList!=[]&&
scope.row.CancelVoucherList!=[]&&
scope.row.TicketStatusName!='无需机票'"
class=
"iconfont iconpingzhengchaxun Credentials"
@
click=
"viewCredentials(scope.row)"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"出签状态"
:width=
"90"
>
<
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=
"订单状态"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<div
class=
"Order-list-Status"
:class=
"scope.row.OrderStatus=='1'?'one':
(scope.row.OrderStatus=='2'?'two':
(scope.row.OrderStatus=='3'?'three':
(scope.row.OrderStatus=='4'?'four':
(scope.row.OrderStatus=='5'?'five':
(scope.row.OrderStatus=='6'?'six':'')))))"
>
<span>
{{
scope
.
row
.
OrderStatusName
}}
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"Remark"
label=
"客户需求"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"收入单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.IncomeFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"退款单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.BackFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"成本单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.PayFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
prop=
"CreateByName"
label=
"创建人"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"item-but-box"
>
<div
class=
"enedit-box"
>
<el-tooltip
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
class=
"item-but"
effect=
"dark"
content=
"编辑订单"
placement=
"top"
>
<i
class=
"iconfont iconwenbenbianji cp"
@
click=
"editOrder(scope.row)"
></i>
</el-tooltip>
<div>
<el-select
style=
"width:70px"
class=
"select-right"
clearable
size=
"mini"
v-model=
"scope.row.More"
placeholder=
"更多"
@
change=
"chooseMore(scope.row)"
>
<el-option
v-for=
"items in scope.row.MoreList"
v-show=
"items.show"
:key=
"items.Id"
:label=
"items.Name"
:value=
"items.Id"
>
</el-option>
</el-select>
</div>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
</div>
<div
v-if=
"total>0"
>
<el-pagination
class=
"Mypagination"
background
@
current-change=
"handleCurrentChange"
:page-sizes=
"[10, 30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
>
</el-pagination>
</div>
<!-- 单号抽屉 -->
<el-drawer
@
closed=
"closeOrderDrawerHandler"
:with-header=
"false"
size=
'70%'
:append-to-body=
"true"
:visible
.
sync=
"orderDrawer"
direction=
"rtl"
:before-close=
"handleClose"
>
<orderDetailsDrawer
v-if=
"currentOrder"
:orderId=
"currentOrder.OrderId"
/>
</el-drawer>
</div>
</template>
<
script
>
import
orderDetailsDrawer
from
"../customerManage/orderDetailsDrawer"
;
export
default
{
components
:
{
orderDetailsDrawer
},
props
:
[
"detailsData"
,
"ID"
,
"BusinessType"
],
data
()
{
return
{
VisaList
:
[{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"未出签"
,
Id
:
"1"
},
{
Name
:
"已出签"
,
Id
:
"2"
},
],
MultipleChoiceList
:
[
//多选项目
{
Name
:
'机票'
,
Id
:
'1'
,
show
:
false
},
{
Name
:
'签证'
,
Id
:
'2'
,
show
:
false
},
{
Name
:
'地接'
,
Id
:
'3'
,
show
:
false
},
{
Name
:
'套餐'
,
Id
:
'4'
,
show
:
false
},
{
Name
:
'其他'
,
Id
:
'5'
,
show
:
false
}
],
checkList
:
[],
MoreList
:
[{
Name
:
'取消订单'
,
Id
:
'1'
},
{
Name
:
'订单转交'
,
Id
:
'2'
},
{
Name
:
"修改出票状态"
,
Id
:
"4"
,
},
{
Name
:
'完结'
,
Id
:
'5'
},
{
Name
:
'操作日志'
,
Id
:
'3'
},
],
OrderStatusList
:
[],
//订单状态
ticketingStatusList
:
[],
// 出票状态
dataList
:
[],
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
OrderId
:
""
,
GuestId
:
""
,
TicketStatus
:
'0'
,
VisaStatus
:
"0"
,
//出签状态
OrderStatus
:
"0"
,
StartCityName
:
""
,
EndCityName
:
""
,
EnterID
:
""
,
userInfo
:
{}
},
total
:
0
,
currentOrder
:
null
,
orderDrawer
:
false
,
};
},
watch
:
{
ID
:
{
handler
(
val
,
oldVal
)
{
this
.
getList
();
},
deep
:
true
,
},
detailsData
:
{
handler
(
val
,
oldVal
)
{
this
.
detailsData
=
val
},
deep
:
true
,
},
},
mounted
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
getList
();
this
.
GetTicketStatusEnumList
()
this
.
GetOrderStatusEnumList
()
//订单状态枚举
let
$this
=
this
$this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
$this
.
getList
()
});
$this
.
MsgBus
.
$on
(
"closeBillMaking"
,
function
()
{
for
(
let
i
=
0
;
i
<
$this
.
dataList
.
length
;
i
++
)
{
$this
.
dataList
[
i
].
checkList
=
[]
$this
.
dataList
[
i
].
selectedType
=
""
$this
.
dataList
[
i
].
actuallyReceived
=
false
$this
.
dataList
[
i
].
cost
=
false
}
$this
.
emptyMore
()
});
},
methods
:
{
handleCommand
(
command
)
{
let
data
=
[{
path
:
""
,
LureEmpNmae
:
this
.
detailsData
.
CreateByStr
,
//引流姓名
LureEmpId
:
this
.
detailsData
.
CreateBy
,
//引流id
CRMGuestId
:
this
.
ID
,
//客人ID
CRMGuestName
:
this
.
detailsData
.
SurName
+
this
.
detailsData
.
Name
//客人ID
}]
let
href
let
url
=
this
.
domainManager
().
erpRoutingUrl
;
if
(
command
==
1
)
{
this
.
addBusiness
();
}
else
{
if
(
command
==
2
)
{
data
[
0
].
path
=
'VisaProductAddOrder'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
3
)
{
data
[
0
].
path
=
'productQuery'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
4
)
{
data
[
0
].
path
=
'productQueryOne'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
5
)
{
data
[
0
].
path
=
'singleProductHotelList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
6
)
{
data
[
0
].
path
=
'SingleticketList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
7
)
{
data
[
0
].
path
=
'BookAcarList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
if
(
href
){
window
.
open
(
href
);
}
}
},
// 清空下拉
emptyMore
()
{
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
More
=
''
})
},
// 点击单号
clickSingleNumber
(
item
)
{
this
.
currentOrder
=
item
;
this
.
orderDrawer
=
true
;
},
closeOrderDrawerHandler
()
{
this
.
currentOrder
=
null
;
this
.
orderDrawer
=
false
;
},
handleClose
(
done
)
{
done
();
},
// 取消
popCancelClick
(
row
,
index
,
num
)
{
this
.
dataList
.
forEach
(
item
=>
{
item
.
checkList
=
[]
item
.
selectedType
=
''
item
.
actuallyReceived
=
false
item
.
cost
=
false
})
},
// 确定弹窗
popClick
(
row
,
index
,
num
)
{
if
(
!
row
.
selectedType
)
{
this
.
$message
.
warning
(
'请选择类型!'
);
return
}
this
.
makeAdocumentFun
(
row
,
index
,
num
)
this
.
dataList
[
index
].
actuallyReceived
=
false
this
.
dataList
[
index
].
cost
=
false
},
// 查看出票凭据
viewCredentials
(
row
)
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"CredentialsOrderTicketOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
},
// 清空下拉
emptyMore
()
{
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
More
=
''
})
},
chooseMore
(
row
)
{
// 取消订单
if
(
row
.
More
==
"1"
)
{
this
.
cancelOrder
(
row
);
}
// 订单转交
if
(
row
.
More
==
"2"
)
{
this
.
convertOrder
(
row
);
}
// 编辑订单金额
if
(
row
.
More
==
'3'
)
{
this
.
editOrderAmount
(
row
)
}
// 修改出票状态
if
(
row
.
More
==
'4'
)
{
this
.
modifyStatus
(
row
)
}
// 修改出签状态
if
(
row
.
More
==
"5"
)
{
this
.
AmendVisa
(
row
)
}
// 完结
if
(
row
.
More
==
"6"
)
{
this
.
orderCompleted
(
row
)
}
// 操作日志
if
(
row
.
More
==
"7"
)
{
this
.
operationLog
(
row
);
}
// 订单收损
if
(
row
.
More
==
"8"
)
{
this
.
lossOperationfun
(
row
);
}
// 订单收损完结
if
(
row
.
More
==
"9"
)
{
this
.
endOfLoss
(
row
);
}
// 修改日期
if
(
row
.
More
==
"10"
)
{
this
.
modifiedDate
(
row
);
}
},
// 修改日期
modifiedDate
(
row
){
let
$this
=
this
this
.
MsgBus
.
$emit
(
"modifiedDateOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
},
// 订单收损完结
endOfLoss
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
();
}
else
{
this
.
endOfLossfun
(
row
)
}
},
endOfLossfun
(
row
)
{
let
tips
=
'一旦确认订单收损完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'/api/Order/SetOrderLossFinish'
,
{
OrderId
:
row
.
OrderId
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
MsgBus
.
$emit
(
"closeGetList"
);
}
else
{
this
.
$message
.
warning
(
res
.
data
.
message
);
}
})
}).
catch
(()
=>
{
this
.
emptyMore
()
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
// 收损
lossOperation
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
();
}
else
{
this
.
lossOperationfun
(
row
)
}
},
lossOperationfun
(
row
)
{
this
.
MsgBus
.
$emit
(
"lossOrderBoxOpen"
,
row
.
GuestId
,
row
,
true
);
},
// 订单完结
orderCompleted
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
();
}
else
{
this
.
orderCompletedfun
(
row
)
}
},
orderCompletedfun
(
row
)
{
let
tips
=
'一旦确认订单完结,你将无法对订单执行任何操作,包括订单相关的财务单据。'
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'/api/Order/SetOrderFinish'
,
{
OrderId
:
row
.
OrderId
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
}
else
{
this
.
$message
.
warning
(
res
.
data
.
message
);
}
})
}).
catch
(()
=>
{
this
.
emptyMore
()
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
},
// 转换订单
convertOrder
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
();
}
else
{
this
.
convertOrderfun
(
row
)
}
},
convertOrderfun
(
row
)
{
if
(
row
.
OrderStatus
!=
'2'
)
{
this
.
MsgBus
.
$emit
(
"convertOrderTicketOrderBoxOpen"
,
row
.
GuestId
,
row
,
true
);
}
else
{
this
.
$confirm
(
'抱歉,该订单已取消,不能转交'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
emptyMore
()
}).
catch
(()
=>
{
this
.
emptyMore
()
});
}
},
// 验证操作员
ValidateOperator
()
{
this
.
$message
({
type
:
'warning'
,
message
:
'抱歉,该订单您没有操作权限!'
});
this
.
emptyMore
()
},
// 多选发生变化
clickMultipleChoice
(
row
,
index
,
num
)
{
if
(
num
==
1
)
{
row
.
selectedType
=
row
.
checkList
.
join
(
','
)
}
},
// 删除套餐值
delType
(
row
,
item
)
{
for
(
let
i
=
0
;
i
<
row
.
checkList
.
length
;
i
++
)
{
if
(
row
.
checkList
[
i
]
==
item
)
{
row
.
checkList
.
splice
(
i
,
1
)
}
}
},
// 制作单据
makeAdocument
(
row
,
index
,
num
)
{
let
list
=
row
.
OrderType
&&
row
.
OrderType
.
split
(
','
)
if
(
list
!=
null
&&
list
.
length
>
1
&&
num
==
1
)
{
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
cost
=
false
})
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
actuallyReceived
=
false
})
this
.
dataList
[
index
].
actuallyReceived
=
true
}
else
if
(
list
!=
null
&&
list
.
length
>
1
&&
num
==
3
)
{
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
actuallyReceived
=
false
})
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
cost
=
false
})
this
.
dataList
[
index
].
cost
=
true
}
else
{
this
.
makeAdocumentFun
(
row
,
index
,
num
)
}
},
makeAdocumentFun
(
row
,
index
,
num
)
{
let
type
type
=
num
==
1
?
1
:
2
// 1收款 2退款 3成本
let
href
let
url
=
this
.
domainManager
().
erpRoutingUrl
let
data
let
list
=
row
.
OrderType
&&
row
.
OrderType
.
split
(
','
)
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
if
(
row
.
OrderStatus
!=
'2'
)
{
if
(
list
&&
list
.
length
>
1
)
{
let
typeList
=
row
.
selectedType
.
split
(
','
)
if
(
num
==
'1'
&&
typeList
.
length
>=
2
)
{
let
$this
=
this
;
row
.
ReFinanceId2
=
num
this
.
MsgBus
.
$emit
(
"BillMakingOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
}
if
(
typeList
.
length
==
1
&&
num
==
'1'
||
num
==
'3'
)
{
data
=
[{
path
:
'ChoiceAddFinancialDocuments'
,
type
:
type
,
OtherType
:
55
,
ReFinanceId
:
row
.
OrderId
,
ReFinanceId2
:
num
,
GuestId
:
row
.
GuestId
,
RelevanceFrId
:
row
.
selectedType
,
// 单据类型
}]
href
=
url
+
'automaticLogin?token='
+
this
.
getLocalStorage
().
token
+
'&data='
+
JSON
.
stringify
(
data
)
window
.
open
(
href
);
for
(
let
i
=
0
;
i
<
this
.
dataList
.
length
;
i
++
)
{
this
.
dataList
[
i
].
checkList
=
[]
this
.
dataList
[
i
].
selectedType
=
""
this
.
dataList
[
i
].
actuallyReceived
=
false
this
.
dataList
[
i
].
cost
=
false
}
}
if
(
num
==
'2'
)
{
data
=
[{
path
:
'ChoiceAddFinancialDocuments'
,
type
:
type
,
OtherType
:
55
,
ReFinanceId
:
row
.
OrderId
,
ReFinanceId2
:
num
,
GuestId
:
row
.
GuestId
,
}]
href
=
url
+
'automaticLogin?token='
+
this
.
getLocalStorage
().
token
+
'&data='
+
JSON
.
stringify
(
data
)
window
.
open
(
href
);
for
(
let
i
=
0
;
i
<
this
.
dataList
.
length
;
i
++
)
{
this
.
dataList
[
i
].
checkList
=
[]
this
.
dataList
[
i
].
selectedType
=
""
this
.
dataList
[
i
].
actuallyReceived
=
false
this
.
dataList
[
i
].
cost
=
false
}
}
}
else
{
data
=
[{
path
:
'ChoiceAddFinancialDocuments'
,
type
:
type
,
OtherType
:
55
,
ReFinanceId
:
row
.
OrderId
,
ReFinanceId2
:
num
,
GuestId
:
row
.
GuestId
,
RelevanceFrId
:
num
==
2
?
1
:
row
.
OrderType
,
// 单据类型
}]
href
=
url
+
'automaticLogin?token='
+
this
.
getLocalStorage
().
token
+
'&data='
+
JSON
.
stringify
(
data
)
window
.
open
(
href
);
for
(
let
i
=
0
;
i
<
this
.
dataList
.
length
;
i
++
)
{
this
.
dataList
[
i
].
checkList
=
[]
this
.
dataList
[
i
].
selectedType
=
""
this
.
dataList
[
i
].
actuallyReceived
=
false
this
.
dataList
[
i
].
cost
=
false
}
}
}
}
},
// 操作日志
operationLog
(
row
)
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"logTicketOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
},
// 修改签证状态
AmendVisa
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
this
.
AmendVisafun
(
row
);
}
},
AmendVisafun
(
row
)
{
this
.
MsgBus
.
$emit
(
"AmendVisaOrderBoxOpen"
,
row
.
GuestId
,
row
,
true
);
},
// 出签凭证详情
CheckOutDetails
(
row
)
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"CheckOutDetailsOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
},
// 修改出票状态
modifyStatus
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
if
(
row
.
OrderStatus
==
2
)
{
this
.
emptyMore
()
}
else
{
if
(
row
.
TicketStatus
==
3
)
{
return
}
else
if
(
row
.
TicketStatus
==
4
)
{
return
}
else
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"reviseTicketOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
}
}
}
},
// 取消订单
cancelOrder
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
if
(
row
.
OrderStatus
!=
'2'
&&
row
.
IncomeFinance
.
length
==
0
&&
row
.
BackFinance
.
length
==
0
&&
row
.
PayFinance
.
length
==
0
)
{
let
tips
=
'此操作将取消该订单,是否继续取消?'
this
.
$confirm
(
tips
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'/api/Order/SetGuestOrderState'
,
{
OrderId
:
row
.
OrderId
,
Type
:
'1'
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
getList
()
}
})
}).
catch
(()
=>
{
this
.
emptyMore
()
this
.
$message
({
type
:
'info'
,
message
:
'已取消'
});
});
}
else
{
this
.
$message
({
type
:
'warning'
,
message
:
'该订单已有财务单据,不能取消!'
});
this
.
emptyMore
()
}
}
},
// 编辑订单
editOrder
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
if
(
row
.
OrderStatus
==
1
&&
(
row
.
TicketStatus
==
1
||
row
.
TicketStatus
==
5
)
||
(
row
.
visaStatus
==
0
||
row
.
visaStatus
==
1
))
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"editOrderTicketOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
}
else
{
this
.
emptyMore
()
}
}
},
// 编辑订单金额
editOrderAmount
(
row
)
{
if
(
this
.
userInfo
.
EmployeeId
!=
row
.
EnterID
&&
this
.
userInfo
.
EmployeeId
!=
row
.
CreateBy
)
{
this
.
ValidateOperator
()
}
else
{
if
(
row
.
OrderStatus
==
1
&&
(
row
.
TicketStatus
==
1
||
row
.
TicketStatus
==
5
)
||
(
row
.
visaStatus
==
0
||
row
.
visaStatus
==
1
))
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"editTicketOrderBoxOpen"
,
$this
.
ID
,
row
,
true
);
}
else
{
this
.
emptyMore
()
}
}
},
openDetails
(
row
)
{
let
href
let
url
=
this
.
domainManager
().
erpRoutingUrl
let
data
=
[{
path
:
'FinancialDocumentsDetail'
,
id
:
row
}]
href
=
url
+
'automaticLogin?token='
+
this
.
getLocalStorage
().
token
+
'&data='
+
JSON
.
stringify
(
data
)
window
.
open
(
href
);
},
// 获取订单状态枚举
GetOrderStatusEnumList
()
{
this
.
apipost
(
"/api/Order/GetOrderStatusEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
OrderStatusList
=
res
.
data
.
data
;
let
data
=
{
Name
:
"不限"
,
Id
:
"0"
,
};
this
.
OrderStatusList
.
unshift
(
data
);
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
// 获取出票状态枚举
GetTicketStatusEnumList
()
{
let
$this
=
this
this
.
msg
.
GuestId
=
$this
.
ID
this
.
apipost
(
"/api/Order/GetTicketStatusEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ticketingStatusList
=
res
.
data
.
data
;
let
data
=
{
Name
:
'全部'
,
Id
:
'0'
}
this
.
ticketingStatusList
.
unshift
(
data
)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
);
},
// 获取订单列表
getList
()
{
this
.
loading
=
true
;
this
.
msg
.
GuestId
=
this
.
ID
;
this
.
apipost
(
"/api/Order/GetGuestOrderPageList"
,
this
.
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
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
)
{
let
LossList
=
item
.
LossList
for
(
let
h
=
0
;
h
<
LossList
.
length
;
h
++
)
{
for
(
let
i
=
0
;
i
<
item
.
MultipleChoiceList
.
length
;
i
++
)
{
if
(
LossList
[
h
].
OrderType
==
this
.
MultipleChoiceList
[
i
].
Id
)
{
item
.
MultipleChoiceList
[
i
].
show
=
true
}
}
}
}
})
this
.
dataList
=
data
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
loading
=
false
}
else
{
this
.
loading
=
false
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
);
},
// 添加订单
addBusiness
()
{
let
$this
=
this
;
this
.
MsgBus
.
$emit
(
"addTicketOrderBoxOpen"
,
$this
.
ID
,
0
,
true
);
},
handleSizeChange
(
val
)
{
this
.
msg
.
pageSize
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
};
</
script
>
\ No newline at end of file
src/components/guestManagement/Agreement.vue
View file @
3af492cd
...
...
@@ -211,33 +211,23 @@
<div
class=
"Agreement-Business"
>
<div
class=
"add-Enclosure"
>
<el-row
:gutter=
"22"
>
<el-col
:span=
"
5
"
>
<el-col
:span=
"
8
"
>
<el-input
size=
"mini"
placeholder=
"输入订单ID"
v-model=
"msg.OrderId"
label=
"订单ID"
@
keyup
.
enter
.
native=
"getList"
></el-input>
@
keyup
.
native=
"getList"
></el-input>
</el-col>
<el-col
:span=
"
5
"
>
<el-col
:span=
"
8
"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
出票状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.TicketStatus"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in ticketingStatusList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
></el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"5"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
出签状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.VisaStatus"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in VisaList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
订单类型:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.OrderType"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in OrderTypeList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</div>
</el-col>
<el-col
:span=
"
5
"
>
<el-col
:span=
"
8
"
>
<div
style=
"display: flex;flex-direction: row;align-items: center;"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px;flex-shrink: 0;"
>
订单状态:
</span>
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.OrderStat
us
"
placeholder=
"请选择"
<el-select
size=
"mini"
width=
"200"
v-model=
"msg.OrderStat
e
"
placeholder=
"请选择"
@
change=
"getList"
>
<el-option
v-for=
"item in OrderStatusList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
></el-option>
...
...
@@ -245,200 +235,22 @@
</div>
</el-col>
</el-row>
<el-button
plain
icon=
"el-icon-plus"
type=
"primary"
size=
"mini"
class=
"margin-right0"
@
click=
"addBusiness"
>
<el-dropdown
@
command=
"handleCommand"
style=
"top: 1px;"
>
<el-button
plain
icon=
"el-icon-plus"
type=
"primary"
size=
"mini"
class=
"margin-right0"
>
创建订单
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"1"
>
机票订单
</el-dropdown-item>
<el-dropdown-item
command=
"2"
>
签证订单
</el-dropdown-item>
<el-dropdown-item
command=
"3"
>
跟团游订单
</el-dropdown-item>
<el-dropdown-item
command=
"4"
>
当地游订单
</el-dropdown-item>
<el-dropdown-item
command=
"5"
>
酒店订单
</el-dropdown-item>
<el-dropdown-item
command=
"6"
>
门票订单
</el-dropdown-item>
<el-dropdown-item
command=
"7"
>
包车订单
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div
class=
"page-content"
>
<el-table
v-loading=
"loading"
stripe
ref=
"multipleTable"
:data=
"dataList"
tooltip-effect=
"dark"
style=
"width: 100%"
:height=
"dataList.length > 0 ? '600' : '660'"
row-class-name=
"font-size-12"
>
<el-table-column
fixed
label=
"订单号"
:width=
"110"
>
<template
slot-scope=
"scope"
>
<div
class=
"OrderType-text-box"
@
click=
"clickSingleNumber(scope.row)"
>
<p
class=
"text-underline"
>
{{
scope
.
row
.
OrderId
}}
</p>
<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,index) in scope.row.MultipleChoiceList">
{{
items
.
Name
}}
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
fixed
label=
"业务员"
show-overflow-tooltip
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
EnterName
}}
</p>
<p>
{{
scope
.
row
.
CreateTime
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"出行概述"
show-overflow-tooltip
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<p>
人数:
{{
scope
.
row
.
GuestCount
}}
人
</p>
<p>
{{
scope
.
row
.
StartCityName
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"应收"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
@
click=
"scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?editOrderAmount(scope.row):''"
class=
"cp"
:class=
"scope.row.OrderStatus==1&&(scope.row.TicketStatus == 1||scope.row.TicketStatus == 5) || (scope.row.visaStatus == 0||scope.row.visaStatus == 1)?'font-color-link':''"
>
{{
scope
.
row
.
Money
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"实收"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"agreement-IncomeMoney-box"
>
{{
scope
.
row
.
IncomeMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,1)"
class=
"iconfont iconjia- numIcon"
>
<div
v-show=
"scope.row.actuallyReceived"
class=
"agreement-IncomeMoney-pop"
>
<div
class=
"float-flag-shape"
></div>
<el-checkbox-group
v-model=
"scope.row.checkList"
@
change=
"clickMultipleChoice(scope.row,scope.$index,1)"
>
<el-checkbox
v-for=
"(item,index) in scope.row.MultipleChoiceList"
:key=
"index"
:label=
"item.Id"
>
{{
item
.
Name
}}
</el-checkbox>
</el-checkbox-group>
<div
class=
"agreement-Cancel"
>
<span
@
click
.
stop=
"popCancelClick(scope.row,scope.$index,1)"
>
取消
</span>
<span
@
click
.
stop=
"popClick(scope.row,scope.$index,1)"
>
确定
</span>
</div>
</div>
</i>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"退款"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
BackMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,2)"
class=
"iconfont iconjia- numIcon"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"成本"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"agreement-IncomeMoney-box"
>
{{
scope
.
row
.
PayMoney
}}
<i
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
@
click=
"makeAdocument(scope.row,scope.$index,3)"
class=
"iconfont iconjia- numIcon"
>
<div
v-show=
"scope.row.cost"
class=
"agreement-IncomeMoney-pop"
>
<div
class=
"float-flag-shape"
></div>
<el-radio-group
v-model=
"scope.row.selectedType"
@
change=
"clickMultipleChoice(scope.row,scope.$index,3)"
>
<el-radio
v-for=
"(item,index) in scope.row.MultipleChoiceList"
:key=
"index"
:label=
"item.Id"
>
{{
item
.
Name
}}
</el-radio>
</el-radio-group>
<div
class=
"agreement-Cancel"
>
<span
@
click
.
stop=
"popCancelClick(scope.row,scope.$index,3)"
>
取消
</span>
<span
@
click
.
stop=
"popClick(scope.row,scope.$index,3)"
>
确定
</span>
</div>
</div>
</i>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"TaxMoney"
label=
"手续费"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"待收"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
class=
"ToBeReceived"
:class=
"scope.row.DueinMoney==0?'blue':'red'"
>
{{
scope
.
row
.
DueinMoney
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"出票状态"
:width=
"90"
>
<
template
slot-scope=
"scope"
>
<span
@
click=
"modifyStatus(scope.row)"
class=
"cp tatusText"
:class=
"scope.row.TicketStatus==1?'grey':
(scope.row.TicketStatus==2?'success':
(scope.row.TicketStatus==3?'error':
(scope.row.TicketStatus==4?'cancel':
(scope.row.TicketStatus==5?'Black':''))))"
>
{{
scope
.
row
.
TicketStatusName
}}
</span>
<i
v-if=
"scope.row.TicketStatus!=1&&
scope.row.TicketVoucherList!=[]&&
scope.row.CancelVoucherList!=[]&&
scope.row.TicketStatusName!='无需机票'"
class=
"iconfont iconpingzhengchaxun Credentials"
@
click=
"viewCredentials(scope.row)"
></i>
</
template
>
</el-table-column>
<el-table-column
label=
"出签状态"
:width=
"90"
>
<
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=
"订单状态"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<div
class=
"Order-list-Status"
:class=
"scope.row.OrderStatus=='1'?'one':
(scope.row.OrderStatus=='2'?'two':
(scope.row.OrderStatus=='3'?'three':
(scope.row.OrderStatus=='4'?'four':
(scope.row.OrderStatus=='5'?'five':
(scope.row.OrderStatus=='6'?'six':'')))))"
>
<span>
{{
scope
.
row
.
OrderStatusName
}}
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"Remark"
label=
"客户需求"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"收入单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.IncomeFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"退款单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.BackFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
label=
"成本单据"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<p
v-for=
"(item,index) in scope.row.PayFinance"
:key=
"index"
:class=
"item.Status==1?'income_1':'income_2'"
@
click=
"openDetails(item.FrID)"
>
{{
item
.
FrID
}}
</p>
</
template
>
</el-table-column>
<el-table-column
prop=
"CreateByName"
label=
"创建人"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
:width=
"120"
>
<
template
slot-scope=
"scope"
>
<div
class=
"item-but-box"
>
<div
class=
"enedit-box"
>
<el-tooltip
v-if=
"scope.row.OrderStatus!=2&&scope.row.OrderStatus!=5&&scope.row.OrderStatus!=6"
class=
"item-but"
effect=
"dark"
content=
"编辑订单"
placement=
"top"
>
<i
class=
"iconfont iconwenbenbianji cp"
@
click=
"editOrder(scope.row)"
></i>
</el-tooltip>
<div>
<el-select
style=
"width:70px"
class=
"select-right"
clearable
size=
"mini"
v-model=
"scope.row.More"
placeholder=
"更多"
@
change=
"chooseMore(scope.row)"
>
<el-option
v-for=
"items in scope.row.MoreList"
v-show=
"items.show"
:key=
"items.Id"
:label=
"items.Name"
:value=
"items.Id"
>
</el-option>
</el-select>
</div>
</div>
</div>
</
template
>
</el-table-column>
</el-table>
<orderList
:dataList=
"dataList"
:pagesTitle=
"title"
:loading=
"loading"
@
emptyMore=
"emptyMore"
></orderList>
</div>
<div
v-if=
"total>0"
>
<el-pagination
class=
"Mypagination"
background
@
current-change=
"handleCurrentChange"
...
...
@@ -454,14 +266,17 @@
</div>
</
template
>
<
script
>
import
orderList
from
"../myOrdersAllType/components/orderList"
;
import
orderDetailsDrawer
from
"../customerManage/orderDetailsDrawer"
;
export
default
{
components
:
{
orderList
,
orderDetailsDrawer
},
props
:
[
"ID"
,
"BusinessType"
],
props
:
[
"
detailsData"
,
"
ID"
,
"BusinessType"
],
data
()
{
return
{
title
:
'销售'
,
VisaList
:
[{
Name
:
"不限"
,
Id
:
"0"
...
...
@@ -517,22 +332,49 @@
Id
:
'3'
},
],
OrderStatusList
:
[],
//订单状态
OrderStatusList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'正常'
,
Id
:
1
},
{
Name
:
'取消'
,
Id
:
2
}],
//订单状态
OrderTypeList
:[],
ticketingStatusList
:
[],
// 出票状态
dataList
:
[],
loading
:
false
,
msg
:
{
// pageIndex: 1,
// pageSize: 10,
// OrderId: "",
// GuestId: "",
// TicketStatus: '0',
// VisaStatus: "0", //出签状态
// OrderStatus: "0",
// StartCityName: "",
// EndCityName: "",
// EnterID: "",
// userInfo: {},
pageIndex
:
1
,
pageSize
:
10
,
OrderId
:
""
,
GuestId
:
""
,
TicketStatus
:
'0'
,
VisaStatus
:
"0"
,
//出签状态
OrderStatus
:
"0"
,
StartCityName
:
""
,
EndCityName
:
""
,
EnterID
:
""
,
userInfo
:
{}
pageSize
:
15
,
OrderId
:
""
,
//订单id
GuestId
:
0
,
//客人id
EnterId
:
'0'
,
//业务员id
OrderState
:
1
,
//订单状态
Q_IsCollect
:
"0"
,
//收款状态
StartTime
:
""
,
//报名开始日期
EndTime
:
""
,
//报名结束日期
IsMyOrder
:
"1"
,
//我的订单
FinishSTime
:
""
,
//完结开始时间
FinishETime
:
""
,
//完结结束时间
DepartSTime
:
""
,
//出发开始
DepartETime
:
""
,
//出发结束
TCNUM
:
""
,
//团号
ProductName
:
""
,
//商品名称
CustomerName
:
""
,
//客户名称
LureEmpId
:
0
,
//引流人员
LineId
:
0
,
//线路
TravelType
:
0
,
//跟团类型 1跟团 2当地游
OrderType
:
"0"
,
//订单类型
IsSelectCRM
:
1
,
//1来源crm
IsMyOrder
:
0
,
//1我的订单
},
total
:
0
,
currentOrder
:
null
,
...
...
@@ -546,12 +388,20 @@
},
deep
:
true
,
},
detailsData
:
{
handler
(
val
,
oldVal
)
{
this
.
detailsData
=
val
},
deep
:
true
,
},
},
mounted
()
{
this
.
msg
.
StartTime
=
this
.
getBeforeDate
(
31
,
new
Date
())
this
.
msg
.
EndTime
=
this
.
formatDate
(
new
Date
(),
"YYYY-MM-dd"
,
0
)
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
getList
();
this
.
GetTicketStatusEnumList
()
this
.
GetOrder
Status
EnumList
()
//订单状态枚举
this
.
GetOrder
Type
EnumList
()
//订单状态枚举
let
$this
=
this
$this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
$this
.
getList
()
...
...
@@ -567,6 +417,48 @@
});
},
methods
:
{
handleCommand
(
command
)
{
let
data
=
[{
path
:
""
,
LureEmpNmae
:
this
.
detailsData
.
CreateByStr
,
//引流姓名
LureEmpId
:
this
.
detailsData
.
CreateBy
,
//引流id
CRMGuestId
:
this
.
ID
,
//客人ID
CRMGuestName
:
this
.
detailsData
.
SurName
+
this
.
detailsData
.
Name
//客人ID
}]
let
href
let
url
=
this
.
domainManager
().
erpRoutingUrl
;
if
(
command
==
1
)
{
this
.
addBusiness
();
}
else
{
if
(
command
==
2
)
{
data
[
0
].
path
=
'VisaProductAddOrder'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
3
)
{
data
[
0
].
path
=
'productQuery'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
4
)
{
data
[
0
].
path
=
'productQueryOne'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
5
)
{
data
[
0
].
path
=
'singleProductHotelList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
6
)
{
data
[
0
].
path
=
'SingleticketList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
command
==
7
)
{
data
[
0
].
path
=
'BookAcarList'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
if
(
href
){
window
.
open
(
href
);
}
}
},
// 清空下拉
emptyMore
()
{
this
.
dataList
.
forEach
(
item
=>
{
...
...
@@ -1027,15 +919,15 @@
window
.
open
(
href
);
},
// 获取订单状态枚举
GetOrder
Status
EnumList
()
{
this
.
apipost
(
"/api/Order/GetOrderStatus
EnumList"
,
{},
(
res
)
=>
{
GetOrder
Type
EnumList
()
{
this
.
apipost
2
(
"CarSingle_post_GetOrderType
EnumList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Order
Status
List
=
res
.
data
.
data
;
this
.
Order
Type
List
=
res
.
data
.
data
;
let
data
=
{
Name
:
"不限"
,
Id
:
"0"
,
};
this
.
Order
Status
List
.
unshift
(
data
);
this
.
Order
Type
List
.
unshift
(
data
);
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -1065,108 +957,12 @@
getList
()
{
this
.
loading
=
true
;
this
.
msg
.
GuestId
=
this
.
ID
;
this
.
apipost
(
"
/api/Order/GetGuestOrder
PageList"
,
this
.
apipost
2
(
"
CarSingle_post_GetGuestOrderStatistics
PageList"
,
this
.
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
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
)
{
let
LossList
=
item
.
LossList
for
(
let
h
=
0
;
h
<
LossList
.
length
;
h
++
)
{
for
(
let
i
=
0
;
i
<
item
.
MultipleChoiceList
.
length
;
i
++
)
{
if
(
LossList
[
h
].
OrderType
==
this
.
MultipleChoiceList
[
i
].
Id
)
{
item
.
MultipleChoiceList
[
i
].
show
=
true
}
}
}
}
})
this
.
dataList
=
data
;
this
.
total
=
res
.
data
.
data
.
count
;
this
.
loading
=
false
...
...
@@ -1175,7 +971,7 @@
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
)
;
)
},
// 添加订单
addBusiness
()
{
...
...
src/components/myOrdersAllType/components/allList.vue
0 → 100644
View file @
3af492cd
<
style
>
@import
"../../../assets/css/customerManage.css"
;
*
{
font-family
:
"perfectFont"
;
}
.query-box
.el-row
.el-col
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
15px
;
}
.query-box
.el-row
.el-col
span
{
flex-shrink
:
0
;
}
.statistics
{
background
:
#fff
;
}
.statistics-box
{
padding
:
7px
16px
;
background-color
:
#dddee0
;
display
:
flex
;
flex-direction
:
column
;
flex-wrap
:
wrap
;
border-radius
:
5px
;
margin-right
:
10px
;
}
.statistics-top
{
width
:
50%
;
}
.statistics-box
span
{
margin-right
:
10px
;
}
.statistics-box
:last-child
{
margin-right
:
0
;
}
.statistics-box
span
:first-child
{
font-weight
:
bold
;
margin-right
:
5px
;
flex-shrink
:
0
;
}
.red
{
color
:
#f72e52
;
}
.blue
{
color
:
#3a7cf7
;
}
.status-box
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-end
;
}
.status-text
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
margin-left
:
15px
;
font-size
:
13px
;
}
.tis-k
{
width
:
10px
;
height
:
10px
;
margin-right
:
10px
;
}
</
style
>
<
template
>
<div
class=
"customerManage"
>
<div
class=
"tools"
>
<h1>
{{
pagesTitle
==
'销售'
?
'我的订单管理'
:
'我的订单统计管理'
}}
</h1>
<div
class=
"rightmenu"
>
<!--
<el-button
size=
"mini"
type=
"primary"
@
click=
"downLoadExcel"
>
导出
</el-button>
-->
</div>
</div>
<div
class=
"query-box"
>
<el-row
:gutter=
"20"
>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
客人姓名
</span>
<el-input
size=
"mini"
class=
"w210"
v-model=
"msg.CustomerName"
placeholder=
"客人姓名"
clearable
@
change=
"getList"
@
keyup
.
enter
.
native=
"getList"
></el-input>
</el-col>
<el-col
v-if=
"pagesTitle!='销售'"
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
业务员
</span
>
<el-select
size=
"mini"
v-model=
"msg.EnterId"
@
change=
"getList"
>
<el-option
v-for=
"(item, index) in EmployeeList"
:key=
"index"
:label=
"item.EmName"
:value=
"item.EmployeeId"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单号
</span>
<el-input
size=
"mini"
class=
"w210"
v-model=
"msg.OrderId"
placeholder=
"订单号"
clearable
@
change=
"getList"
@
keyup
.
enter
.
native=
"getList"
></el-input>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单类型
</span
>
<el-select
size=
"mini"
v-model=
"msg.OrderType"
@
change=
"getList"
>
<el-option
v-for=
"(item, index) in OrderTypeList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
订单状态
</span>
<el-select
size=
"mini"
v-model=
"msg.OrderState"
@
change=
"getList"
>
<el-option
v-for=
"(item,index) in OrderStatusList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"7"
:sm=
"6"
:md=
"5"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
收款状态
</span>
<el-select
size=
"mini"
v-model=
"msg.Q_IsCollect"
@
change=
"getList"
>
<el-option
v-for=
"(item,index) in QIsCollectList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
报名开始
</span>
<el-date-picker
v-model=
"msg.StartTime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"开始日期"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
报名结束
</span>
<el-date-picker
v-model=
"msg.EndTime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%;"
format=
"yyyy-MM-dd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"结束日期"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发开始
</span
>
<el-date-picker
v-model=
"msg.DepartSTime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发开始"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
出发结束
</span
>
<el-date-picker
v-model=
"msg.DepartETime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"出发结束"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"8"
:sm=
"7"
:md=
"6"
:lg=
"4"
:xl=
"3"
>
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
@
click=
"sceneShow= true"
>
高级筛选
</el-button>
</el-col>
</el-row>
</div>
<div
class=
"statistics px-10px"
>
<template
v-for=
"(item,index) in SummaryList"
>
<div
class=
"statistics-box"
:key=
"index"
>
<!--
<span>
币种
</span>
-->
<div>
<span>
{{
item
.
CurrencyName
}}
</span>
</div>
<div
class=
"statistics-top"
>
<div>
<span>
应收
</span>
<span>
{{
item
.
Money
}}
</span>
</div>
<div>
<span>
实收
</span>
<span>
{{
item
.
Income
}}
</span>
</div>
<div>
<span>
退款
</span>
<span
class=
"red"
>
{{
item
.
Refund
}}
</span>
</div>
<div>
<span>
手续费
</span>
<span>
{{
item
.
PlatformTax
}}
</span>
</div>
<div>
<span>
成本
</span>
<span>
{{
item
.
CostMoney
}}
</span>
</div>
<div>
<span>
待收
</span>
<span
:class=
"
{'red':item.DueInMoney>0}">
{{
item
.
DueInMoney
}}
</span>
</div>
<div>
<span>
报名数
</span>
<span
class=
"blue"
>
{{
item
.
GuestNum
}}
人
</span>
</div>
</div>
</div>
</
template
>
</div>
<div
class=
"query-box status-box"
></div>
<orderList
:dataList=
"dataList"
:pagesTitle=
"title"
:loading=
"loading"
@
emptyMore=
"emptyMore"
></orderList>
<div>
<el-pagination
class=
"Mypagination"
background
@
current-change=
"handleCurrentChange"
:page-sizes=
"[15, 30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
>
</el-pagination>
</div>
<!-- 高级筛选 -->
<el-dialog
:visible
.
sync=
"sceneShow"
:close-on-click-modal=
"false"
width=
"800px"
custom-class=
"transfer-box add-box add-box2 add-scene"
>
<div
class=
"add-tit"
slot=
"title"
>
<p><span></span>
高级筛选
</p>
<span
icon=
"el-icon-close"
></span>
</div>
<div
class=
"query-box"
>
<el-row
:gutter=
"20"
>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
团队类型
</span>
<el-select
size=
"mini"
v-model=
"msg.TravelType"
@
change=
"getList"
>
<el-option
v-for=
"(item,index) in OrderStatusList"
:key=
"index"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结开始
</span
>
<el-date-picker
v-model=
"msg.FinishSTime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结开始"
>
</el-date-picker>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:md=
"12"
:lg=
"8"
:xl=
"8"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
完结结束
</span
>
<el-date-picker
v-model=
"msg.FinishETime"
@
change=
"getList"
size=
"mini"
style=
"width: 100%"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"机票完结结束"
>
</el-date-picker>
</el-col>
</el-row>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
orderList
from
"./orderList"
;
export
default
{
components
:
{
orderList
,
},
props
:[
'pagesTitle'
],
data
()
{
return
{
SummaryList
:
[],
sceneShow
:
false
,
title
:
''
,
//op 销售
VisaList
:
[
{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"未出签"
,
Id
:
"1"
},
{
Name
:
"已出签"
,
Id
:
"2"
},
],
MultipleChoiceList
:
[
//多选项目
{
Name
:
"机票"
,
Id
:
"1"
,
show
:
false
,
},
{
Name
:
"签证"
,
Id
:
"2"
,
show
:
false
,
},
{
Name
:
"地接"
,
Id
:
"3"
,
show
:
false
,
},
{
Name
:
"套餐"
,
Id
:
"4"
,
show
:
false
,
},
{
Name
:
"其他"
,
Id
:
"5"
,
show
:
false
,
},
],
StatModel
:
{},
// 合计
loading
:
false
,
total
:
0
,
dataList
:
[],
timeList
:
[],
//时间
msg
:
{
pageIndex
:
1
,
pageSize
:
15
,
OrderId
:
""
,
//订单id
GuestId
:
0
,
//客人id
EnterId
:
'0'
,
//业务员id
OrderState
:
1
,
//订单状态
Q_IsCollect
:
"0"
,
//收款状态
StartTime
:
""
,
//报名开始日期
EndTime
:
""
,
//报名结束日期
IsMyOrder
:
"1"
,
//我的订单
FinishSTime
:
""
,
//完结开始时间
FinishETime
:
""
,
//完结结束时间
DepartSTime
:
""
,
//出发开始
DepartETime
:
""
,
//出发结束
TCNUM
:
""
,
//团号
ProductName
:
""
,
//商品名称
CustomerName
:
""
,
//客户名称
LureEmpId
:
0
,
//引流人员
LineId
:
0
,
//线路
TravelType
:
0
,
//跟团类型 1跟团 2当地游
OrderType
:
"0"
,
//订单类型
IsSelectCRM
:
1
,
//1来源crm
IsMyOrder
:
1
,
//1我的订单
},
ticketingStatusList
:
[],
// 出票状态
OrderStatusList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'正常'
,
Id
:
1
},
{
Name
:
'取消'
,
Id
:
2
}],
OrderTypeList
:
[],
TravelTypeList
:
[
{
Name
:
'不限'
,
Id
:
0
},
{
Name
:
'跟团'
,
Id
:
1
},
{
Name
:
'2当地游'
,
Id
:
2
}
],
QIsCollectList
:
[
{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"已收齐"
,
Id
:
"1"
},
{
Name
:
"未收齐"
,
Id
:
"2"
},
],
EmployeeList
:
[],
// 业务员数据
userInfo
:
{},
};
},
watch
:
{
pagesTitle
:
{
handler
(
val
,
oldVal
)
{
this
.
title
=
val
if
(
this
.
title
!=
'OP'
){
this
.
msg
.
IsMyOrder
=
1
}
else
{
this
.
msg
.
IsMyOrder
=
0
}
},
immediate
:
true
},
},
mounted
()
{
this
.
msg
.
StartTime
=
this
.
getBeforeDate
(
31
,
new
Date
())
this
.
msg
.
EndTime
=
this
.
formatDate
(
new
Date
(),
"YYYY-MM-dd"
,
0
)
if
(
this
.
title
!=
'OP'
){
this
.
msg
.
IsMyOrder
=
1
}
else
{
this
.
msg
.
IsMyOrder
=
0
}
this
.
userInfo
=
this
.
getLocalStorage
();
// this.msg.EnterId = this.userInfo.EmployeeId;
// erp自动登陆传过来的参数
if
(
this
.
$route
.
query
.
erpOrderObj
)
{
let
data
=
JSON
.
parse
(
this
.
$route
.
query
.
erpOrderObj
);
this
.
msg
.
OrderId
=
data
.
OrderId
;
}
this
.
Employee
();
//业务员
this
.
getSummaryData
()
this
.
GetOrderTypeEnumList
();
//订单状态枚举
let
$this
=
this
;
this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
$this
.
getList
();
});
$this
.
MsgBus
.
$on
(
"closeBillMaking"
,
function
()
{
for
(
let
i
=
0
;
i
<
$this
.
dataList
.
length
;
i
++
)
{
$this
.
dataList
[
i
].
checkList
=
[];
$this
.
dataList
[
i
].
selectedType
=
""
;
$this
.
dataList
[
i
].
actuallyReceived
=
false
;
$this
.
dataList
[
i
].
cost
=
false
;
}
$this
.
emptyMore
()
});
this
.
getList
();
},
methods
:
{
// 清空下拉
emptyMore
()
{
this
.
dataList
.
forEach
(
item
=>
{
return
item
.
More
=
''
})
},
// 获取业务员
Employee
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
msg
=
{
RB_Group_id
:
userInfo
.
RB_Group_id
,
BranchId
:
-
1
,
DepartmentId
:
0
,
PostId
:
0
,
IsLeave
:
0
,
};
this
.
apipost2
(
"admin_get_EmployeeGetList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
let
data
=
{
EmName
:
"不限"
,
EmployeeId
:
"0"
,
};
this
.
EmployeeList
.
unshift
(
data
);
}
else
{
}
},
(
err
)
=>
{}
);
},
//点击下载
downLoadExcel
()
{
if
(
!
this
.
msg
.
StartTime
||
!
this
.
msg
.
EndTime
)
{
let
tips
=
"请选择开始时间、结束时间!"
;
this
.
$confirm
(
tips
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{})
.
catch
(()
=>
{});
return
;
}
this
.
GetLocalFile
(
"/api/Order/GetGuestOrderStatisticsToExcel"
,
this
.
msg
,
"订单表.xls"
);
},
// 清空下拉
emptyMore
()
{
this
.
dataList
.
forEach
((
item
)
=>
{
return
(
item
.
More
=
""
);
});
},
// 获取订单状态枚举
GetOrderTypeEnumList
()
{
this
.
apipost2
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
OrderTypeList
=
res
.
data
.
data
;
let
data
=
{
Name
:
"不限"
,
Id
:
"0"
,
};
this
.
OrderTypeList
.
unshift
(
data
);
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
getList
()
{
this
.
loading
=
true
;
this
.
apipost2
(
"CarSingle_post_GetGuestOrderStatisticsPageList"
,
this
.
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
;
this
.
dataList
=
data
;
this
.
total
=
res
.
data
.
data
.
count
;
// this.StatModel = res.data.data.StatModel;
this
.
loading
=
false
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
);
},
getSummaryData
(){
this
.
apipost2
(
"CarSingle_post_GetGuestOrderStatistics"
,
this
.
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
this
.
SummaryList
=
data
// console.log(data)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
);
},
handleSizeChange
(
val
)
{
this
.
msg
.
pageSize
=
val
;
this
.
getList
();
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
};
</
script
>
\ No newline at end of file
src/components/myOrdersAllType/components/orderList.vue
0 → 100644
View file @
3af492cd
<!--订单列表-->
<
template
>
<div>
<el-table
v-loading=
"loading"
stripe
ref=
"multipleTable"
:data=
"dataList"
tooltip-effect=
"dark"
style=
"width: 100%"
row-class-name=
"font-size-12"
>
<el-table-column
label=
"商品类型"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<el-tag
size=
"mini"
>
{{
scope
.
row
.
OrderTypeName
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
width=
"130"
prop=
"CreateTimeStr"
label=
"日期"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"客人姓名"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span
class=
"colorblue font-color-link"
@
click=
"openNameDetails(scope.row)"
>
{{
scope
.
row
.
GuestName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"SaleName"
label=
"销售姓名"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"LureEmpName"
label=
"引流姓名"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"商品名称"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"scope.row.Name"
placement=
"top"
>
<p
style=
"max-width: 100px;overflow: hidden;text-overflow: ellipsis"
>
{{
scope
.
row
.
Name
}}
</p>
</el-tooltip>
</
template
>
</el-table-column>
<el-table-column
prop=
"Money"
label=
"总金额"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"CostMoney"
label=
"成本"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"待收"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span
:class=
"
{'red':scope.row.DueInMoney>0}">
{{
scope
.
row
.
DueInMoney
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"Income"
label=
"实收"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"PlatformTax"
label=
"手续费"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"Refund"
label=
"退款"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"DiscountsMoney"
label=
"优惠"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"StateName"
label=
"状态"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
StateName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"goDetails(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-drawer
:with-header=
"false"
size=
'70%'
:visible
.
sync=
"drawer"
direction=
"rtl"
:before-close=
"handleClose"
>
<!-- {{drawer}} -->
<customerInfoBox
:CustomerId=
"CustomerId"
:activeNameNum=
"activeNameNum"
:receiptType=
"receiptType"
/>
</el-drawer>
<!-- 单号抽屉 -->
<el-drawer
@
closed=
"closeOrderDrawerHandler"
:with-header=
"false"
size=
'70%'
:visible
.
sync=
"orderDrawer"
direction=
"rtl"
:before-close=
"handleClose"
>
<orderDetailsDrawer
v-if=
"currentOrder"
:orderId=
"currentOrder.OrderId"
:activeNameNum=
"activeNameNum"
/>
</el-drawer>
<!-- 提成详情 -->
<commissionPopUp
v-if=
"commissionPopUpVisible"
:parameters=
"parameters"
></commissionPopUp>
</div>
</template>
<
script
>
import
customerInfoBox
from
"../../guestManagement/customerInfoBox"
;
import
orderDetailsDrawer
from
"../../customerManage/orderDetailsDrawer"
;
import
commissionPopUp
from
"../../dialogModel/commissionPopUp"
;
export
default
{
components
:
{
customerInfoBox
,
orderDetailsDrawer
,
commissionPopUp
},
props
:
{
pagesTitle
:
{
type
:
String
,
default
:
""
,
},
//订单
dataList
:
{
type
:
Array
,
default
:
null
,
},
loading
:
{
type
:
Boolean
,
default
:
false
,
},
superManage
:
{
type
:
String
,
default
:
""
,
},
},
data
()
{
return
{
CustomerId
:
""
,
CustomerName
:
""
,
currentOrder
:
null
,
parameters
:{},
receiptType
:{},
drawer
:
false
,
orderDrawer
:
false
,
commissionPopUpVisible
:
false
,
activeNameNum
:
"1"
,
};
},
created
()
{},
watch
:
{
loading
:
{
handler
(
val
,
oldVal
)
{
this
.
loading
=
val
;
},
deep
:
true
,
},
pagesTitle
:
{
handler
(
val
,
oldVal
)
{
this
.
pagesTitle
=
val
},
immediate
:
true
},
},
mounted
()
{
let
$this
=
this
;
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
MsgBus
.
$on
(
"closeaddContacts"
,
function
()
{
$this
.
commissionPopUpVisible
=
false
;
$this
.
emptyMore
()
});
},
methods
:
{
goDetails
(
row
){
let
data
=
[{
path
:
""
,
OrderId
:
row
.
OrderId
,
Type
:
''
}]
let
href
let
url
=
this
.
domainManager
().
erpRoutingUrl
;
let
command
=
row
.
OrderType
if
(
row
.
OrderType
==
1
)
{
let
name
=
''
if
(
this
.
pagesTitle
==
'销售'
||
this
.
pagesTitle
==
'详情'
){
name
=
'myCustomerOrder'
}
else
{
name
=
'customerOrder'
}
this
.
$router
.
push
({
name
:
name
,
query
:
{
OrderId
:
row
.
OrderId
,
blank
:
"y"
,
}
});
}
else
{
if
(
row
.
OrderType
==
6
)
{
if
(
this
.
pagesTitle
==
'销售'
||
this
.
pagesTitle
==
'详情'
){
data
[
0
].
path
=
'VisaProductEditOrder'
}
else
{
data
[
0
].
path
=
'VisaProductEditOrderOP'
}
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
row
.
OrderType
==
2
)
{
//3跟团 4一日游
data
[
0
].
path
=
'enrollTotal'
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
row
.
OrderType
==
3
)
{
//酒店
if
(
this
.
pagesTitle
==
'销售'
||
this
.
pagesTitle
==
'详情'
){
data
[
0
].
path
=
'singleProductHotelOrder'
}
else
{
data
[
0
].
path
=
'singleProductHotelOrderOP'
}
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
row
.
OrderType
==
4
)
{
//门票
if
(
this
.
pagesTitle
==
'销售'
||
this
.
pagesTitle
==
'详情'
){
data
[
0
].
path
=
'SingleticketOrderList'
}
else
{
data
[
0
].
path
=
'SingleticketOrderListOP'
}
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
}
else
if
(
row
.
OrderType
==
5
)
{
//包车
this
.
GetAdminCarOrderPageList
(
row
,
url
,
href
,
data
)
}
else
if
(
row
.
OrderType
==
7
)
{
//jalan酒店
// if(this.pagesTitle=='销售'){
// data[0].path = 'CharterOrderList'
// }else{
// data[0].path = 'CharterOrderListOP'
// }
// href =url +"automaticLogin?token=" +this.getLocalStorage().token +"&data=" +JSON.stringify(data);
}
if
(
href
){
window
.
open
(
href
);}
}
},
GetAdminCarOrderPageList
(
row
,
url
,
href
,
data
){
let
msg
=
{
pageIndex
:
1
,
pageSize
:
5
,
OrderType
:
''
,
OrderId
:
row
.
OrderId
,
OrderNo
:
''
,
SurName
:
''
,
Name
:
''
,
OrderStatus
:
0
,
StartTime
:
''
,
EndTime
:
''
,
OrderSTime
:
''
,
OrderETime
:
''
,
ProductName
:
''
,
Mobile
:
''
,
//电话
IsSelectSale
:
1
,
EnterID
:
0
,
//业务员
}
this
.
apipost2
(
'CarSingle_post_GetAdminCarOrderPageList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
pageData
=
res
.
data
.
data
.
pageData
let
OrderType
if
(
pageData
&&
pageData
.
length
>
0
){
OrderType
=
pageData
[
0
].
OrderType
}
data
[
0
].
Type
=
OrderType
?
OrderType
:
4
if
(
this
.
pagesTitle
==
'销售'
||
this
.
pagesTitle
==
'详情'
){
data
[
0
].
path
=
'CharterOrderList'
}
else
{
data
[
0
].
path
=
'CharterOrderListOP'
}
href
=
url
+
"automaticLogin?token="
+
this
.
getLocalStorage
().
token
+
"&data="
+
JSON
.
stringify
(
data
);
window
.
open
(
href
)
}
})
},
// 提成列表
commissionDetails
(
item
){
this
.
parameters
=
item
this
.
commissionPopUpVisible
=
true
},
openNameDetails
(
item
)
{
this
.
drawer
=
true
;
this
.
CustomerId
=
item
.
GuestId
;
this
.
CustomerName
=
item
.
GuestName
;
},
handleClose
(
done
)
{
done
();
},
closeOrderDrawerHandler
()
{
this
.
currentOrder
=
null
;
this
.
orderDrawer
=
false
;
},
},
};
</
script
>
<
style
scoped
>
@import
"../../../assets/css/allorder.css"
;
</
style
>
src/components/myOrdersAllType/customerOrderAllType.vue
0 → 100644
View file @
3af492cd
<
template
>
<allList
:pagesTitle=
"pagesTitle"
></allList>
</
template
>
<
script
>
import
allList
from
"./components/allList"
;
export
default
{
components
:
{
allList
,
},
data
()
{
return
{
pagesTitle
:
'OP'
};
},
mounted
()
{
},
methods
:
{
},
};
</
script
>
src/components/myOrdersAllType/myCustomerOrderAllType.vue
0 → 100644
View file @
3af492cd
<
template
>
<allList
:pagesTitle=
"pagesTitle"
></allList>
</
template
>
<
script
>
import
allList
from
"./components/allList"
;
export
default
{
components
:
{
allList
,
},
data
()
{
return
{
pagesTitle
:
'销售'
};
},
mounted
()
{
},
methods
:
{
},
};
</
script
>
src/main.js
View file @
3af492cd
...
...
@@ -122,7 +122,33 @@ Vue.prototype.moneyFormat = function (value) {
}
return
x1
+
x2
;
},
// 计算当前日期的前后日期
Vue
.
prototype
.
getBeforeDate
=
function
(
num
,
time
)
{
let
n
=
num
;
let
d
=
''
;
if
(
time
)
{
d
=
new
Date
(
time
);
}
else
{
d
=
new
Date
();
}
let
year
=
d
.
getFullYear
();
let
mon
=
d
.
getMonth
()
+
1
;
let
day
=
d
.
getDate
();
if
(
day
<=
n
)
{
if
(
mon
>
1
)
{
mon
=
mon
-
1
;
}
else
{
year
=
year
-
1
;
mon
=
12
;
}
}
d
.
setDate
(
d
.
getDate
()
-
n
);
year
=
d
.
getFullYear
();
mon
=
d
.
getMonth
()
+
1
;
day
=
d
.
getDate
();
let
s
=
year
+
"-"
+
(
mon
<
10
?
(
'0'
+
mon
)
:
mon
)
+
"-"
+
(
day
<
10
?
(
'0'
+
day
)
:
day
);
return
s
;
}
// 注册
Vue
.
filter
(
'priceFormat'
,
function
(
value
)
{
if
(
value
==
null
)
{
...
...
src/plugins/index.js
View file @
3af492cd
...
...
@@ -13,13 +13,14 @@ export default {
Vue
.
prototype
.
domainManager
=
function
()
{
//CRM API
let
domainUrl
=
""
;
domainUrl
=
"http://192.168.10.46:8500"
;
// domainUrl = "http://192.168.10.36:8098";
// domainUrl = "http://192.168.10.46:8500";
domainUrl
=
"http://192.168.10.9:8098"
;
// domainUrl = "http://crm.oytour.com"
//domainUrl = "http://localhost:5003";
let
locationName
=
window
.
location
.
hostname
;
//旅游ERPApi
let
domainPostUrl
=
""
domainPostUrl
=
"http://192.168.10.
36
:8083"
;
domainPostUrl
=
"http://192.168.10.
9
:8083"
;
//domainPostUrl = "http://192.168.10.46";
if
(
this
.
isOnline
())
{
if
(
window
.
location
.
host
.
indexOf
(
'fcrmyx.oytour.com'
)
!=
-
1
)
{
...
...
@@ -43,7 +44,7 @@ export default {
javaUrl
:
locationName
.
indexOf
(
'testb2b'
)
==
-
1
?
"http://efficient.oytour.com"
:
locationName
.
indexOf
(
'testb2b.oytour.com'
)
!==
-
1
?
"http://47.96.12.235:9001"
:
"http://192.168.10.215:9000"
,
ViittoFileUrl
:
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'testb2b.oytour.com'
)
!==
-
1
?
"http://staticfile.oytour.com"
:
'http://192.168.10.214:8130'
,
UploadUrl
:
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'testb2b.oytour.com'
)
!==
-
1
?
"http://uploadfile.oytour.com"
:
"http://192.168.10.214:8120"
,
erpRoutingUrl
:
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'testb2b.oytour.com'
)
!==
-
1
?
"http://yx.oytour.com/#/"
:
"http://www.test.com:8081/#/"
,
erpRoutingUrl
:
locationName
.
indexOf
(
'oytour'
)
!==
-
1
||
locationName
.
indexOf
(
'testb2b.oytour.com'
)
!==
-
1
?
"http://yx.oytour.com/#/"
:
"http://
localhost:8081/#/"
// "http://
www.test.com:8081/#/",
};
return
obj
;
},
...
...
src/router.js
View file @
3af492cd
...
...
@@ -20,6 +20,8 @@ import customerOrder from "./components/customerManage/customerOrder"
import
myCustomerOrder
from
"./components/customerManage/myCustomerOrder"
import
automaticLogin
from
'./views/automaticLogin'
import
planeTicketOrder
from
'./components/planeTicketOrder/index'
import
myCustomerOrderAllType
from
"./components/myOrdersAllType/myCustomerOrderAllType"
import
customerOrderAllType
from
"./components/myOrdersAllType/customerOrderAllType"
import
Test
from
'./components/Test'
Vue
.
use
(
Router
);
...
...
@@ -518,10 +520,26 @@ export default new Router({
path
:
"/myCustomerOrder"
,
name
:
"myCustomerOrder"
,
component
:
myCustomerOrder
,
meta
:
{
title
:
"机票订单"
}
},
{
path
:
"/myCustomerOrderAllType"
,
name
:
"myCustomerOrderAllType"
,
component
:
myCustomerOrderAllType
,
meta
:
{
title
:
"我的订单"
}
},
{
path
:
"/customerOrderAllType"
,
name
:
"customerOrderAllType"
,
component
:
customerOrderAllType
,
meta
:
{
title
:
"订单统计"
}
},
{
path
:
"/planeTicketOrder"
,
name
:
"planeTicketOrder"
,
...
...
src/views/login.vue
View file @
3af492cd
...
...
@@ -120,7 +120,7 @@
Domain
:
"fcrmyx.oytour.com"
,
};
if
(
!
this
.
isOnline
())
{
msg
.
Domain
=
"
www.test.com"
;
msg
.
Domain
=
"
localhost"
;
//www.test.com localhost
}
this
.
apipost
(
"/api/Login/UserLogin"
,
msg
,
(
res
)
=>
{
var
jsonData
=
res
.
data
;
...
...
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