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
55291d3d
Commit
55291d3d
authored
May 09, 2022
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单合计统计
parent
eb223c00
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
484 additions
and
2 deletions
+484
-2
index.vue
src/components/planeTicketOrder/index.vue
+473
-0
index.js
src/plugins/index.js
+2
-2
router.js
src/router.js
+9
-0
No files found.
src/components/planeTicketOrder/index.vue
0 → 100644
View file @
55291d3d
<
template
>
<div
class=
"content"
>
<div
class=
"header"
>
<div
class=
"tools"
>
<h1>
订单核算统计
</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.OrderId"
placeholder=
"订单号"
clearable
@
clear=
"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-input
size=
"mini"
class=
"w210"
v-model=
"msg.GusetName"
placeholder=
"客人姓名"
clearable
@
clear=
"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-input
size=
"mini"
class=
"w210"
v-model=
"msg.StartCityName"
placeholder=
"出发城市"
clearable
@
clear=
"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-input
size=
"mini"
class=
"w210"
v-model=
"msg.EndCityName"
placeholder=
"到达城市"
clearable
@
clear=
"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"
filterable
v-model=
"msg.EnterID"
@
change=
"getList"
clearable
placeholder=
"业务员"
>
<el-option
v-for=
"item in EmployeeList"
:label=
"item.EmName"
:value=
"item.EmployeeId"
:key=
"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-select
size=
"mini"
v-model=
"msg.TicketStatus"
@
change=
"getList"
>
<el-option
v-for=
"(item, index) in ticketingStatusList"
: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.OrderStatus"
@
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"
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"
placeholder=
"结束日期"
>
</el-date-picker>
</el-col>
</el-row>
</div>
</div>
<div
class=
"table"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
:border=
"true"
:fit=
"true"
:header-cell-style=
"headStyle"
v-loading=
"loading"
:summary-method=
"getStatModel"
show-summary
>
<el-table-column
fixed
prop=
"EnterName"
label=
"业务员"
>
</el-table-column>
<el-table-column
fixed
prop=
"OrderId"
label=
"订单号"
>
</el-table-column>
<el-table-column
fixed
prop=
"GuestName"
label=
"客人名"
>
</el-table-column>
<el-table-column
prop=
"city"
label=
"性质"
width=
"120"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.GuestCount == 1"
>
单人
</span>
<span
v-else
>
多人
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"StartCityName"
label=
"行程时间"
>
</el-table-column>
<el-table-column
prop=
"GuestCount"
label=
"人数"
>
</el-table-column>
<el-table-column
prop=
"TicketStatusName"
label=
"状态"
>
</el-table-column>
<el-table-column
label=
"营业收入"
width=
"960"
>
<el-table-column
prop=
"TicketMoney"
label=
"单机票款"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
TicketMoney
}}
</span
>
/
<span
:style=
"
{
color:
scope.row.TicketMoney > scope.row.TicketIncome
? 'red'
: '#000',
}"
>
{{
scope
.
row
.
TicketIncome
}}
</span
>
</
template
>
</el-table-column>
<el-table-column
label=
"单签证款"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
VisaMoney
}}
</span
>
/
<span
:style=
"
{
color:
scope.row.VisaMoney > scope.row.VisaIncome ? 'red' : '#000',
}"
>
{{
scope
.
row
.
VisaIncome
}}
</span
>
</
template
>
</el-table-column>
<el-table-column
label=
"单地接款"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
DiJieMoney
}}
</span
>
/
<span
:style=
"
{
color:
scope.row.DiJieMoney > scope.row.DiJieIncome
? 'red'
: '#000',
}"
>
{{
scope
.
row
.
DiJieIncome
}}
</span
>
</
template
>
</el-table-column>
<el-table-column
prop=
"MealMoney"
label=
"套餐款"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
MealMoney
}}
</span
>
/
<span
:style=
"
{
color:
scope.row.MealMoney > scope.row.MealIncome ? 'red' : '#000',
}"
>
{{
scope
.
row
.
MealIncome
}}
</span
>
</
template
>
</el-table-column>
<el-table-column
prop=
"OtherIncome"
label=
"其他收款"
width=
"100"
>
</el-table-column>
<el-table-column
prop=
"Money"
label=
"合计应收款"
width=
"100"
>
</el-table-column>
<el-table-column
prop=
"IncomeMoney"
label=
"已收款"
>
</el-table-column>
<el-table-column
prop=
"DueinMoney"
label=
"未收款"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"营业成本"
>
<el-table-column
prop=
"TicketCost"
label=
"机票成本"
>
</el-table-column>
<el-table-column
prop=
"TicketCost"
label=
"签证成本"
>
</el-table-column>
<el-table-column
prop=
"DiJieCost"
label=
"地接成本"
>
</el-table-column>
<el-table-column
prop=
"MealCost"
label=
"套餐成本"
>
</el-table-column>
<el-table-column
prop=
"MealCost"
label=
"其他成本"
>
</el-table-column>
<el-table-column
prop=
"MealCost"
label=
"合计数"
>
</el-table-column>
<el-table-column
prop=
"zip"
label=
"已付款"
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"TaxMoney"
label=
"平台费用"
>
</el-table-column>
<el-table-column
prop=
"Profit"
label=
"订单毛利"
>
</el-table-column>
<el-table-column
prop=
"ProfitRate"
label=
"毛利率"
>
</el-table-column>
</el-table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:page-sizes=
"[30, 60, 90, 100]"
:page-size=
"msg.pageSize"
layout=
"sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
:total=
"total"
style=
"margin-top: 12px; float: right"
>
</el-pagination>
</div>
</div>
</template>
<
script
>
export
default
{
created
()
{
// erp自动登陆传过来的参数
if
(
this
.
$route
.
query
.
erpOrderObj
)
{
let
data
=
JSON
.
parse
(
this
.
$route
.
query
.
erpOrderObj
);
this
.
msg
.
OrderId
=
data
.
OrderId
;
}
this
.
Employee
();
//业务员
this
.
GetTicketStatusEnumList
();
//出票枚举
//监听
let
$this
=
this
;
this
.
MsgBus
.
$on
(
"closeGetList"
,
function
()
{
$this
.
getList
();
});
this
.
getList
();
},
data
()
{
return
{
loading
:
false
,
ticketingStatusList
:
[],
// 出票状态
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
15
,
OrderId
:
""
,
//订单id
GusetName
:
""
,
//客人姓名
GuestId
:
""
,
//客人id
StartCityName
:
""
,
//出发城市
EndCityName
:
""
,
//到达城市
EnterID
:
""
,
//业务员id
TicketStatus
:
"0"
,
//出票状态
OrderStatus
:
"1"
,
//订单状态
Q_IsCollect
:
"0"
,
//收款状态
StartTime
:
""
,
EndTime
:
""
,
},
OrderStatusList
:
[
{
Name
:
"正常"
,
Id
:
"1"
},
{
Name
:
"取消"
,
Id
:
"2"
},
],
QIsCollectList
:
[
{
Name
:
"不限"
,
Id
:
"0"
},
{
Name
:
"已收齐"
,
Id
:
"1"
},
{
Name
:
"未收齐"
,
Id
:
"2"
},
],
EmployeeList
:
[],
tableData
:
[],
StatModel
:[]
};
},
methods
:
{
//表格居中
headStyle
()
{
return
"text-align:center"
;
},
// 获取业务员
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
;
}
else
{
}
},
(
err
)
=>
{}
);
},
// 获取出票状态枚举
GetTicketStatusEnumList
()
{
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
.
apipost
(
"/api/Order/GetCRMGuestOrderCheckPageList"
,
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
Data
.
pageData
;
this
.
StatModel
=
res
.
data
.
data
.
StatModel
this
.
tableData
=
data
;
this
.
total
=
res
.
data
.
data
.
Data
.
count
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
}
);
},
//分页
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
handleSizeChange
(
val
)
{
this
.
msg
.
pageSize
=
val
;
this
.
getList
();
},
//导出
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"
);
},
//合计
getStatModel
(){
let
list
=
Object
.
values
(
this
.
StatModel
)
const
arr
=
[]
arr
.
length
=
25
console
.
log
(
arr
)
let
newArr
=
arr
.
map
((
index
,
item
)
=>
{
console
.
log
(
item
)
return
item
})
console
.
log
(
newArr
,
'新数组'
)
// for(let i=0;i
<
arr
.
length
;
i
++
){
// if(i === 0){
// item = '合计'
// }else if(i !=0 && i
<=
10
){
// item = 'N/A'
// }else{
// item = 20
// }
// }
//console.log(newArr)
return
[]
}
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.content {
.header {
.tools {
display: flex;
justify-content: space-between;
margin: 10px 0;
}
.query-box {
.el-row {
.el-col {
display: flex;
align-items: center;
margin-bottom: 15px;
span {
flex-shrink: 0;
}
}
}
}
}
}
</
style
>
src/plugins/index.js
View file @
55291d3d
...
...
@@ -13,12 +13,12 @@ export default {
Vue
.
prototype
.
domainManager
=
function
()
{
//CRM API
let
domainUrl
=
""
;
domainUrl
=
"http://192.168.10.
2
:8098"
;
domainUrl
=
"http://192.168.10.
36
:8098"
;
//domainUrl = "http://localhost:5003";
let
locationName
=
window
.
location
.
hostname
;
//旅游ERPApi
let
domainPostUrl
=
""
domainPostUrl
=
"http://192.168.10.
2
:8083"
;
domainPostUrl
=
"http://192.168.10.
36
:8083"
;
//domainPostUrl = "http://192.168.10.46";
if
(
this
.
isOnline
())
{
if
(
window
.
location
.
host
.
indexOf
(
'fcrmyx.oytour.com'
)
!=
-
1
)
{
...
...
src/router.js
View file @
55291d3d
...
...
@@ -19,6 +19,7 @@ import customerConfiguration from "./components/customerManage/customerConfigura
import
customerOrder
from
"./components/customerManage/customerOrder"
import
myCustomerOrder
from
"./components/customerManage/myCustomerOrder"
import
automaticLogin
from
'./views/automaticLogin'
import
planeTicketOrder
from
'./components/planeTicketOrder/index'
Vue
.
use
(
Router
);
export
default
new
Router
({
...
...
@@ -455,6 +456,14 @@ export default new Router({
meta
:
{
title
:
"我的订单"
}
},
{
path
:
"/planeTicketOrder"
,
name
:
"planeTicketOrder"
,
component
:
planeTicketOrder
,
meta
:
{
title
:
"订单核算统计"
}
}
]
},
...
...
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