Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
SuperMan
Commits
4002ddfb
Commit
4002ddfb
authored
Jul 15, 2019
by
吴春
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
fa8448db
48bc4e38
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
877 additions
and
548 deletions
+877
-548
roomReservationsDetails.vue
src/components/Hotel/roomReservationsDetails.vue
+2
-0
leaderReimbursement.vue
src/components/LeaderManagement/leaderReimbursement.vue
+36
-29
bookDinnerStatistics.vue
src/components/Restaurant/bookDinnerStatistics.vue
+143
-140
CustomerAnalysis.vue
src/components/SalesModule/CustomerAnalysis.vue
+4
-4
HappyPassbook.vue
src/components/SalesModule/HappyPassbook.vue
+94
-4
MyCustomer.vue
src/components/SalesModule/MyCustomer.vue
+20
-6
Returnratio.vue
src/components/SalesModule/Returnratio.vue
+267
-0
customerTransfer.vue
src/components/SalesModule/customerTransfer.vue
+16
-2
busStatistics.vue
src/components/busManagement/busStatistics.vue
+164
-190
admissionStatistics.vue
src/components/scenicSpot/admissionStatistics.vue
+120
-170
config.js
src/router/config.js
+11
-3
No files found.
src/components/Hotel/roomReservationsDetails.vue
View file @
4002ddfb
...
...
@@ -26,6 +26,8 @@
<span
v-if=
"IsOperation==1"
style=
"color:red;font-size:14px;"
>
已制单,不能在修改!
</span>
</li>
</ul>
税别计算: 单价 * (预订人数-免减人数) * (1 + 0.08 - 返佣比例 / 100)
<br/>
税入计算: 单价 * (预订人数-免减人数) * (1 - 返佣比例 / 100)
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
:style=
"
{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
...
...
src/components/LeaderManagement/leaderReimbursement.vue
View file @
4002ddfb
...
...
@@ -132,28 +132,34 @@
</table>
<table
class=
"leaderReimbursementTable"
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
>
<tr>
<th
colspan=
"22"
class=
"bgwhite"
>
酒店使用
</th>
<th
colspan=
"22"
class=
"bgwhite"
>
酒店使用
</th>
</tr>
<tr>
<th
colspan=
"22"
class=
"bgwhite"
>
税别计算: 单价 * (预订人数-免减人数) * (1 + 0.08 - 返佣比例 / 100)
<br
/>
税入计算: 单价 * (预订人数-免减人数) * (1 - 返佣比例 / 100)
</th>
</tr>
<tr
class=
"title"
>
<th
width=
"90"
>
使用时间
</th>
<th
width=
"150"
>
酒店名称
</th>
<th
width=
"70"
>
占床
<br/>
不占床
</th>
<th
width=
"70"
>
实际
<br/>
用房数
</th>
<th
width=
"70"
>
房间
<br/>
类型
</th>
<th
width=
"70"
>
占床
<br
/>
不占床
</th>
<th
width=
"70"
>
实际
<br
/>
用房数
</th>
<th
width=
"70"
>
房间
<br
/>
类型
</th>
<th
width=
"70"
>
房间数
</th>
<th
width=
"60"
>
预定
<br/>
人数
</th>
<th
width=
"60"
>
免费
<br/>
人数
</th>
<th
width=
"60"
>
预定
<br
/>
人数
</th>
<th
width=
"60"
>
免费
<br
/>
人数
</th>
<th
width=
"60"
>
单价/人
</th>
<th
width=
"60"
>
金额
<br/>
小计
</th>
<th
width=
"60"
>
返佣
<br/>
类型
</th>
<th
width=
"60"
>
金额
<br
/>
小计
</th>
<th
width=
"60"
>
返佣
<br
/>
类型
</th>
<th
width=
"60"
>
返佣
</th>
<th
width=
"60"
>
返佣
<br/>
金额
</th>
<th
width=
"60"
>
返佣
<br
/>
金额
</th>
<th
width=
"60"
>
入汤税
</th>
<th
width=
"60"
>
城市税
</th>
<th
width=
"60"
>
停车费
</th>
<th
width=
"60"
>
税入
<br/>
税别
</th>
<th
width=
"60"
>
税入
<br
/>
税别
</th>
<th
width=
"60"
>
总金额
</th>
<th
width=
"60"
>
付款
<br/>
方式
</th>
<th
width=
"60"
>
付款
<br
/>
方式
</th>
<th
width=
"100"
>
供应商
</th>
<th
width=
"100"
>
状态
</th>
<th
width=
"100"
>
备注
</th>
...
...
@@ -161,7 +167,8 @@
<template
v-for=
'(outItem,outIndex) in list.HotelOrderListReport'
>
<template
v-for=
"(subItem,subIndex) in outItem.HotelOrderList"
>
<tr
v-for=
"(childItem,childIndex) in subItem.OrderDetailsList"
>
<td
v-if=
"childIndex==0&&subIndex==0"
:rowspan=
"6*outItem.HotelOrderList.length"
style=
"white-space:nowrap; "
>
{{
outItem
.
UseTimeStr
}}
<td
v-if=
"childIndex==0&&subIndex==0"
:rowspan=
"6*outItem.HotelOrderList.length"
style=
"white-space:nowrap; "
>
{{
outItem
.
UseTimeStr
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"6"
style=
"text-align:left; "
>
{{
subItem
.
HotelName
}}
<p
class=
"cursorpointer"
style=
"margin-top:5px;color: blue;"
>
...
...
@@ -224,26 +231,26 @@
{{childItem.RebateRatio}} %
</td>
<td
style=
"white-space:nowrap; "
>
<!--含税-->
<
template
v-if=
"subItem.RebateType==1"
>
<!--税别-->
<template
v-if=
"subItem.TaxType==2"
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
+
0.08
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
<
template
v-else
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
<!--含税-->
<
template
v-if=
"subItem.RebateType==1"
>
<!--税别-->
<template
v-if=
"subItem.TaxType==2"
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
+
0.08
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
<!--不含税-->
<
template
v-else
>
<!--税别-->
<template
v-if=
"subItem.TaxType==2"
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
+
0.08
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
<
template
v-else
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
</template>
<!--不含税-->
<
template
v-else
>
<!--税别-->
<template
v-if=
"subItem.TaxType==2"
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
+
0.08
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
<
template
v-else
>
{{
(
childItem
.
UnitPrice
*
(
childItem
.
BookNum
-
childItem
.
HotelDiscount
)
*
(
1
)
*
(
childItem
.
RebateRatio
/
100
)).
toFixed
(
2
)
}}
</
template
>
</template>
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"6"
>
{{subItem.InTangTax}}
...
...
src/components/Restaurant/bookDinnerStatistics.vue
View file @
4002ddfb
...
...
@@ -27,126 +27,132 @@
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
:style=
"
{height: boxHeight + 'px'}">
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
:style=
"
{height: boxHeight + 'px'}">
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"bookDinnerStatisticsTalbe"
v-loading=
'loading'
>
<tr>
<th
width=
"
5
0"
>
序号
</th>
<th
width=
"
8
0"
>
出发地
</th>
<th
width=
"
8
0"
>
航班时间
</th>
<th
width=
"
8
0"
>
公司团号
</th>
<th
width=
"
11
0"
>
序号
</th>
<th
width=
"
10
0"
>
出发地
</th>
<th
width=
"
12
0"
>
航班时间
</th>
<th
width=
"
14
0"
>
公司团号
</th>
<th
width=
"120"
>
机位总数/已收客数
</th>
<th
v-for=
'item in thLengthTitle'
>
{{
item
}}
</th>
<th>
备注
</th>
<th>
操作
</th>
<th
width=
"120"
>
时间
</th>
<th
width=
"130"
>
餐厅名称
</th>
<th
width=
"100"
>
用餐类型
</th>
<th
width=
"100"
>
大
</th>
<th
width=
"100"
>
中
</th>
<th
width=
"100"
>
小
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tbody
v-for=
"(outItem,outindex) in list"
:class=
"
{bookDinnerStatisticsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
style=
"max-width: 100px; min-width: 50px; "
>
{{
outindex
+
1
}}
</div>
<div
v-if=
'outItem.StaticsReportList.length>0'
class=
"w100"
>
{{
outItem
.
NewCombinationNum
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td>
<div
class=
"w120"
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"bookDinnerStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
v-for=
'xx in stringToArr(item.TCNUMS)'
@
click=
"goUrlT('productQuery',xx,'产品查询')"
>
{{
xx
}}
</p>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td
v-for=
"x in item.CommonReport.DiningList"
style=
"vertical-align: top;"
>
<div
style=
"width:350px;"
>
<table
v-if=
"x.UseTimeStr"
class=
"DiningTable"
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th
width=
"12%"
>
{{
x
.
UseTimeStr
.
substring
(
5
)
}}
</th>
<th
width=
"10%"
>
大
</th>
<th
width=
"10%"
>
中
</th>
<th
width=
"10%"
>
小
</th>
<th
width=
"15%"
>
支付
</th>
<th>
餐厅
</th>
</tr>
<tr
v-for=
"s in x.DiningSummaryList"
>
<td>
{{
s
.
UseDinnerTypeStr
}}
</td>
<td
v-for=
"t in s.DiningPriceList"
>
{{
t
.
PeoplePrice
}}
</td>
<td>
{{
s
.
PayStyleStr
}}
</td>
<template
v-for=
"(outItem,outindex) in DataList"
>
<tbody
:class=
"
{bookDinnerStatisticsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<template
v-for=
"(subItem,subIndex) in item.CommonReport.DiningList"
>
<template
v-for=
"(thirdItem,thirdIndex) in subItem.DiningSummaryList"
>
<tr>
<td
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<td><span
v-if=
"s.IsFeature==1"
style=
"color:red;"
>
{{
s
.
DiningName
}}
</span>
<span
v-else
>
{{
s
.
DiningName
}}
</span></td>
</tr>
</table>
</div>
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
</td>
<td>
<div
class=
"w80 link"
>
<p
@
click=
"goUrl('bookDinnerStatisticsDetails',item,outItem,'订餐详情')"
>
详情
</p>
</div>
</td>
</tr>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
Titles
}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:
{{
outItem
.
StaticsReportList
[
0
].
DMCRemark
}}
</div>
</div>
</td>
</tr>
</
template
>
</tbody>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"bookDinnerStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w150 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCID
}}
)
</p>
</div>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td
:rowspan=
"subItem.DiningSummaryList.length"
v-if=
'thirdIndex==0'
>
{{
subItem
.
UseTimeStr
}}
</td>
<td
style=
"text-align:left;padding-left:3px;"
>
{{
thirdItem
.
DiningName
}}
</td>
<td>
{{
thirdItem
.
UseDinnerTypeStr
}}
</td>
<td>
<!--大人-->
<template
v-for=
"lastItem in thirdItem.DiningPriceList"
v-if=
"lastItem.PeopleType==1"
>
{{
lastItem
.
PeoplePrice
}}
</
template
>
</td>
<td>
<!--中学生-->
<
template
v-for=
"lastItem in thirdItem.DiningPriceList"
v-if=
"lastItem.PeopleType==2"
>
{{
lastItem
.
PeoplePrice
}}
</
template
>
</td>
<td>
<!--小学生-->
<
template
v-for=
"lastItem in thirdItem.DiningPriceList"
v-if=
"lastItem.PeopleType==3"
>
{{
lastItem
.
PeoplePrice
}}
</
template
>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w80 link"
>
<p
@
click=
"goUrl('bookDinnerStatisticsDetails',item,outItem,'订餐详情')"
>
详情
</p>
</div>
</td>
</tr>
<tr
v-if=
"subIndex== item.CommonReport.DiningList.length-1 && thirdIndex==subItem.DiningSummaryList.length-1"
>
<td
:colspan=
"11"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{item.Titles}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:{{outItem.StaticsReportList[0].DMCRemark}}
</div>
</div>
</td>
</tr>
</template>
</template>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.currentPage"
...
...
@@ -161,7 +167,7 @@
loading
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
5
,
SelectType
:
2
,
LineId
:
14
,
LineteamId
:
"-1"
,
...
...
@@ -173,7 +179,7 @@
LineList
:
[],
LineTeamList
:
[],
thLengthTitle
:
[],
l
ist
:
[],
DataL
ist
:
[],
colspanTotal
:
0
,
boxHeight
:
0
,
}
...
...
@@ -235,7 +241,7 @@
}
})
},
goUrl
(
path
,
obj
,
outItem
,
title
)
{
goUrl
(
path
,
obj
,
outItem
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
...
...
@@ -263,27 +269,23 @@
this
.
loading
=
false
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
msg
.
total
=
res
.
data
.
data
.
count
;
this
.
list
=
res
.
data
.
data
.
pageData
.
data
;
this
.
thLengthArr
=
[];
this
.
thLengthTitle
=
[];
this
.
colspanTotal
=
res
.
data
.
data
.
pageData
.
columnsCount
+
6
;
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
)
{
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'天'
);
}
this
.
list
.
forEach
(
outItem
=>
{
var
sourceData
=
res
.
data
.
data
.
pageData
.
data
;
sourceData
.
forEach
(
outItem
=>
{
var
rootRowspan
=
0
;
//合团跨行
outItem
.
StaticsReportList
.
forEach
(
item
=>
{
if
(
item
.
CommonReport
.
DiningList
.
length
<
res
.
data
.
data
.
pageData
.
columnsCount
)
{
let
_cha
=
res
.
data
.
data
.
pageData
.
columnsCount
-
item
.
CommonReport
.
DiningList
.
length
;
let
_chaArr
=
new
Array
();
for
(
let
i
=
0
;
i
<
_cha
;
i
++
)
{
_chaArr
.
push
({
'HotelName'
:
''
});
}
item
.
CommonReport
.
DiningList
=
item
.
CommonReport
.
DiningList
.
concat
(
_chaArr
);
}
var
itemRowSpan
=
0
;
//餐厅跨行
item
.
CommonReport
.
DiningList
.
forEach
(
thirdItem
=>
{
thirdItem
.
DiningSummaryList
.
forEach
(
lastItem
=>
{
rootRowspan
++
;
itemRowSpan
++
;
});
});
item
.
itemRowSpan
=
itemRowSpan
;
});
rootRowspan
+=
outItem
.
StaticsReportList
.
length
;
outItem
.
rootRowspan
=
rootRowspan
;
});
this
.
DataList
=
sourceData
;
this
.
$forceUpdate
()
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
...
...
@@ -300,14 +302,14 @@
"-"
+
myDate
.
getDate
();
this
.
msg
.
StartDate
=
nowDate
;
let
width
=
window
.
innerWidth
-
50
let
height
=
window
.
innerHeight
-
65
-
164
console
.
log
(
height
)
let
width
=
window
.
innerWidth
-
50
;
let
height
=
window
.
innerHeight
-
65
-
164
;
this
.
boxHeight
=
height
;
this
.
offsetwidth
=
width
this
.
offsetwidth
=
width
;
this
.
getList
()
},
}
</
script
>
<
style
>
...
...
@@ -438,6 +440,7 @@
border-bottom
:
1px
solid
#ccc
;
border-right
:
1px
solid
#ccc
;
}
/* .bookDinnerStatisticsTalbe tr td .DiningTable tr:last-child >td{
border-bottom:0;
} */
...
...
src/components/SalesModule/CustomerAnalysis.vue
View file @
4002ddfb
...
...
@@ -10,7 +10,7 @@
</div>
<div>
<p>
{{
datainfo
.
CustomerName
}}
</p>
<p
style=
"color:#7F8593;font-size:14px"
>
{{
datainfo
.
Contact
}}
</p>
<p
style=
"color:#7F8593;font-size:14px
;padding:6px 0
"
>
{{
datainfo
.
Contact
}}
</p>
</div>
</div>
</div>
...
...
@@ -112,14 +112,14 @@
</div>
<div>
<el-row
:gutter=
"23"
justify=
"space-between"
>
<el-col
:span=
"1
8
"
>
<el-col
:span=
"1
6
"
>
<p
style=
"margin-top:6px"
>
<!-- 数据是:
{{
datainfo
.
totalYearPrice
/
item
.
Money
>
1
?
100
:(
datainfo
.
totalYearPrice
/
item
.
Money
)
*
100
}}
-->
<el-progress
:color=
"colorMethod(item)"
:show-text=
"false"
:stroke-width=
"12"
:percentage=
"datainfo.totalYearPrice/item.Money>1?100:(datainfo.totalYearPrice/item.Money)*100"
></el-progress>
</p>
</el-col>
<el-col
:span=
"
6
"
>
<el-col
:span=
"
8
"
>
<span
v-if=
"item.ActivateState==2"
><img
style=
"width:20px;height:20px"
src=
"../../assets/img/saleRank/gou.png"
alt=
""
></span>
<span
style=
"font-size:14px;font-weight:bold;color:#2C3343"
v-if=
"item.ActivateState==0"
>
未开启
</span>
<span
style=
"font-size:14px;font-weight:bold;color:#2C3343"
v-if=
"item.ActivateState==1"
>
还差 ¥
{{
item
.
PriceSpread
}}
满足
</span>
...
...
@@ -137,7 +137,7 @@
<div
v-for=
"(item,index) in datainfo.LineIdList"
:key=
"index+100"
class=
"circleItem"
>
<div
style=
"height:126px;position:relative"
>
<div
class=
"Linetext"
>
<p
style=
"font-size:34px"
>
{{
Number
(
item
.
Total
)
}}
<span
style=
"font-size:14px"
>
‰
</span></p>
<p
style=
"font-size:34px"
>
{{
Number
(
item
.
Total
)
}}
<span
style=
"font-size:14px"
>
%
</span></p>
<p
style=
"font-size:14px"
>
{{
item
.
TypeName
}}
</p>
</div>
<el-progress
:color=
"item.color"
:show-text=
"false"
type=
"circle"
:stroke-width=
"16"
:percentage=
"Number(item.Total)"
></el-progress>
...
...
src/components/SalesModule/HappyPassbook.vue
View file @
4002ddfb
...
...
@@ -108,10 +108,39 @@
<el-select
filterable
v-model=
'msg.Type'
placeholder=
"请选择"
>
<el-option
label=
"不限"
value=
'0'
></el-option>
<el-option
label=
'收入'
value=
'1'
></el-option>
<el-option
label=
'
折
扣'
value=
'2'
></el-option>
<el-option
label=
'
抵
扣'
value=
'2'
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
线路
</em>
<el-select
filterable
v-model=
'msg.LineId'
placeholder=
"请选择"
>
<el-option
label=
"不限"
value=
""
></el-option>
<el-option
v-for=
"(item,index) in LineList"
:key=
"index+300"
:label=
"item.LineName"
:value=
"item.LineID"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
公司
</em>
<el-select
filterable
v-model=
'msg.RB_Branch_Id'
placeholder=
"请选择"
>
<el-option
v-for=
"item in companyList"
:label=
"item.BName"
:value=
"item.Id"
:key=
"item.Id"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
销售
</em>
<el-select
v-model=
"msg.EmployeeId"
filterable
placeholder=
"请选择"
>
<el-option
label=
"不限"
value=
""
></el-option>
<el-option
v-for=
"item in employee"
:key=
"item.employeeId"
:label=
"item.name"
:value=
"item.employeeId"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
日期
</em>
<el-date-picker
...
...
@@ -135,6 +164,7 @@
<th>
门店名称
</th>
<th>
类型
</th>
<th>
金额
</th>
<th>
所属团
</th>
<th>
描述
</th>
<th>
时间
</th>
<th>
历史余额
</th>
...
...
@@ -144,16 +174,17 @@
<td>
{{
item
.
CustomerName
}}
(
{{
item
.
Contact
}}
)
</td>
<td>
<span>
{{
item
.
Type
==
1
?
"收入"
:
"
折
扣"
}}
</span>
<span>
{{
item
.
Type
==
1
?
"收入"
:
"
抵
扣"
}}
</span>
</td>
<td>
{{
item
.
Money
}}
</td>
<td><span
style=
"cursor:pointer"
@
click=
"Gourl(item)"
>
{{
item
.
TCNUM
}}
</span></td>
<td>
{{
item
.
Description
}}
</td>
<td>
{{
item
.
UpdateTime
}}
</td>
<td>
{{
item
.
AccountMoney
}}
</td>
</tr>
<tr
v-if=
'DataList.length==0'
>
<td
colspan=
"
6"
align=
"
center"
>
暂无数据
</td>
<td
colspan=
"
7"
align=
"center"
style=
"text-align:
center"
>
暂无数据
</td>
</tr>
</table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
...
...
@@ -180,11 +211,21 @@
OrderSource
:
""
,
StartTime
:
""
,
EndTime
:
""
,
LineId
:
""
,
EmployeeId
:
""
,
RB_Branch_Id
:
""
,
},
currentPage
:
1
,
DataList
:[],
dateList
:[],
LineList
:[],
getCompanyMsg
:
{
RB_Group_Id
:
"0"
,
Status
:
"0"
},
companyList
:[],
employee
:[],
}
},
created
(){
...
...
@@ -196,8 +237,57 @@
let
userInfo
=
this
.
getLocalStorage
();
this
.
getList
();
this
.
getLineList
();
this
.
getCompanyList
();
this
.
getEmployee
();
},
methods
:
{
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
RB_Group_id
=
userInfo
.
RB_Group_id
;
let
msg
=
{
Status
:
0
,
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
}
this
.
apipost
(
'admin_get_BranchGetList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
[{
Id
:
'-1'
,
BName
:
'不限'
}];
res
.
data
.
data
.
forEach
(
x
=>
{
var
obj
=
{
Id
:
''
,
BName
:
''
}
obj
.
Id
=
x
.
Id
.
toString
();
obj
.
BName
=
x
.
BName
;
this
.
companyList
.
push
(
obj
);
})
}
},
err
=>
{})
},
Gourl
(
item
){
this
.
$router
.
push
({
name
:
"groupTourOrderByTuan"
,
query
:{
"id"
:
item
.
TCID
,
"tcmun"
:
item
.
TCNUM
,
blank
:
'y'
}
})
},
getEmployee
(){
this
.
apiJavaPost
(
"/api/user/employee/getAllSalesList"
,{},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
employee
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
null
);
},
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList_V2"
,
{
LineDirection
:
0
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineList
=
res
.
data
.
data
;
}
});
},
getList
()
{
//获取数据
if
(
this
.
dateList
){
this
.
msg
.
StartTime
=
this
.
dateList
[
0
];
...
...
src/components/SalesModule/MyCustomer.vue
View file @
4002ddfb
...
...
@@ -7,7 +7,7 @@
z-index
:
50
;
bottom
:
0
;
left
:
0
;
border-top
:
3px
solid
#38425d
;
background-color
:
#f9f9f9
;
padding
:
10px
;
width
:
100%
;
min-width
:
1146px
;}
.page_MyCustomer
.edHeightOne
{
display
:
block
!important
;
height
:
450px
;}
.page_MyCustomer
._mc_list
{
overflow-x
:
auto
;
background
:
#fff
;
padding-top
:
20px
;
padding-left
:
15px
;}
.page_MyCustomer
._mc_list
>
ul
>
li
{
padding
:
20px
20px
0
20px
;
width
:
260px
;
box-sizing
:
border-box
;
height
:
3
48
px
;
.page_MyCustomer
._mc_list
>
ul
>
li
{
padding
:
20px
20px
0
20px
;
width
:
260px
;
box-sizing
:
border-box
;
height
:
3
86
px
;
float
:
left
;
border
:
1px
solid
#F1F2F5
;
background
:
#fff
;
margin-right
:
10px
;
margin-bottom
:
20px
;
border-radius
:
10px
;
position
:
relative
;
cursor
:
pointer
;}
.page_MyCustomer
._mc_list
>
ul
>
li
:hover
{
box-shadow
:
0px
0px
10px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.3s
;}
.page_MyCustomer
._mc_list
>
ul
>
li
.iconDelete
{
cursor
:
pointer
;
display
:
none
;
position
:
absolute
;
top
:
-4px
;
right
:
0
;
color
:
#E95252
;
z-index
:
5
;
}
...
...
@@ -72,8 +72,14 @@
}
.xqBtn
{
background
:
#09D49D
;
padding
:
2px
6px
;
color
:
#fff
!important
;
width
:
100%
;
display
:
inline-block
;
border-radius
:
4px
;
font-size
:
14px
;
height
:
38px
;
line-height
:
38px
;
text-align
:
center
;
}
</
style
>
<
template
>
...
...
@@ -130,18 +136,26 @@
<p
class=
"_other"
v-if=
"item.customerVisitList[1]"
>
最近拜访:
{{
item
.
customerVisitList
[
1
].
visitDateTime
}}
</p>
<p
class=
"_other"
v-else
>
最近拜访:暂无
</p>
<p
class=
"_other"
>
累计拜访:
{{
item
.
visiteCount
}}
</p>
<p
class=
"_fist_n"
>
幸福存折
<span>
{{
item
.
cL_Balance
}}
</span></p>
</div>
<div
class=
"_record"
v-else
>
<p
class=
"_fist_n"
v-if=
"item.customerVisitList.length>0"
>
近期约访:
{{
item
.
customerVisitList
[
0
].
visitDateTime
}}
</p>
<p
class=
"_fist_n"
v-else
>
近期约访:暂无
</p>
<p
class=
"_other_n"
v-if=
"item.customerVisitList[1]"
>
最近拜访:
{{
item
.
customerVisitList
[
1
].
visitDateTime
}}
</p>
<p
class=
"_other_n"
v-else
>
最近拜访:暂无
</p>
<p
class=
"_fist_n"
>
幸福存折
<span>
{{
item
.
cL_Balance
}}
</span></p>
</div>
<div
class=
"_bt"
>
<p>
累计交易额度
<span>
{{
item
.
tradeTotal
}}
</span>
<span
class=
"xqBtn"
@
click
.
stop=
"goUrC('CustomerAnalysis',item.customerId)"
>
详情
</span>
</p>
<p>
询价与需求
<span>
{{
item
.
inquireCount
}}
</span></p>
<el-row
:gutter=
"24"
>
<el-col
:span=
"18"
>
<p>
累计交易额度
<span>
{{
item
.
tradeTotal
}}
</span></p>
<p>
询价与需求
<span>
{{
item
.
inquireCount
}}
</span></p>
</el-col>
<el-col
:span=
"6"
style=
"text-align:right;padding:0"
>
<span
class=
"xqBtn"
@
click
.
stop=
"goUrC('CustomerAnalysis',item.customerId)"
>
详情
</span>
</el-col>
</el-row>
</div>
</li>
<div
class=
"clearfix"
></div>
...
...
src/components/SalesModule/Returnratio.vue
0 → 100644
View file @
4002ddfb
<
style
scoped
>
.departmentTreeStyleCont
{
padding-top
:
20px
;
display
:
flex
;
height
:
100%
;
}
.departmentTreeStyleCont
.departmentTreeStyle
{
background
:
#fff
;
padding
:
20px
;
flex
:
0
1
400px
;
min-height
:
800px
;
}
.departmentTreeStyleCont
.departmentTreeStyle
>
p
{
font-size
:
14px
;
margin-bottom
:
15px
;
color
:
#333
;
font-weight
:
bold
;
height
:
14px
;
line-height
:
14px
;
border-left
:
3px
solid
#E95252
;
text-indent
:
20px
;
}
.departmentTreeStyleCont
.departmentTreeStyle
.spanIcon
{
padding-left
:
20px
;
display
:
none
}
.departmentTreeStyleCont
.departmentTreeStyle
.el-tree-node__content
{
height
:
32px
;
line-height
:
32px
;
font-size
:
12px
}
.TreeSpan
img
{
width
:
24px
;
height
:
24px
;
border-radius
:
12px
;
vertical-align
:
sub
;
margin-right
:
3px
;
}
.departmentTreeStyleCont
.departmentTreeStyle
.el-tree-node__content
:hover
.spanIcon
{
display
:
inline-block
}
.departmentTreeStyleCont
.departmentTreeStyle
.el-tree-node__content
:hover
.spanIcon
i
{
font-size
:
14px
!important
;
color
:
#999
;
margin-right
:
2px
;
}
.departmentTreeStyleCont
.departmentTreeStyle
.el-tree-node__content
:hover
.spanIcon
i
:hover
{
color
:
#E95252
;
}
.departmentTreeStyleCont
.departmentTreeLayer
>
p
{
font-size
:
14px
;
margin-bottom
:
15px
;
color
:
#333
;
font-weight
:
bold
;
height
:
14px
;
line-height
:
14px
;
border-left
:
3px
solid
#E95252
;
text-indent
:
20px
;
}
.departmentTreeStyleCont
.departmentTreeLayer
{
background
:
#fff
;
min-height
:
300px
;
padding
:
20px
;
margin-left
:
20px
;
flex
:
auto
}
.departmentTreeStyleCont
.el-date-editor.el-input
,
.departmentTreeStyleCont
.el-date-editor.el-input__inner
{
width
:
auto
!important
;
}
</
style
>
<
template
>
<div
class=
"flexOne"
>
<div
style=
"text-align:right;padding:10px"
>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"新增"
@
click=
"add"
/>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
'loading'
>
<tr>
<th>
金额
</th>
<th>
返佣比例
</th>
<th>
操作人姓名
</th>
<th>
操作时间
</th>
<th>
操作
</th>
</tr>
<tr
v-for=
"(item,index) in DataList"
:key=
"index+500"
>
<td>
{{
item
.
Money
}}
</td>
<td>
{{
item
.
Ratio
}}
‰
</td>
<td>
{{
item
.
UpdateByName
}}
</td>
<td>
{{
item
.
UpdateTime
}}
</td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"编辑"
placement=
"top-start"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"Edit(item)"
>
</el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除"
placement=
"top-start"
>
<el-button
@
click=
"Delete(item)"
type=
"danger"
icon=
"el-icon-delete"
circle
></el-button>
</el-tooltip>
</td>
</tr>
<tr
v-if=
'DataList.length==0'
>
<td
colspan=
"6"
align=
"center"
>
暂无数据
</td>
</tr>
</table>
<!--
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
>
</el-pagination>
-->
<el-dialog
title=
"提示"
:visible
.
sync=
"dialogVisible"
width=
"400px"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"120px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"金额"
prop=
"Money"
>
<el-input
v-model=
"ruleForm.Money"
@
keyup
.
native=
"checkPrice(ruleForm,'Money')"
></el-input>
</el-form-item>
<el-form-item
label=
"返佣比例(‰)"
prop=
"Ratio"
>
<el-input
v-model=
"ruleForm.Ratio"
@
keyup
.
native=
"checkPrice(ruleForm,'Ratio')"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"danger"
@
click=
"submitForm('ruleForm')"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
dialogVisible
:
false
,
loading
:
true
,
//分页
total
:
0
,
pageSize
:
''
,
currentPage
:
1
,
DataList
:[],
dateList
:[],
rules
:
{
Money
:
[
{
required
:
true
,
message
:
'请输入金额'
,
trigger
:
'blur'
},
],
Ratio
:
[
{
required
:
true
,
message
:
'请输入返佣比例'
,
trigger
:
'blur'
},
],
},
ruleForm
:{
Id
:
0
,
Money
:
""
,
Ratio
:
""
,
},
}
},
created
(){
},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
getList
();
},
methods
:
{
Delete
(
item
){
this
.
$confirm
(
'是否删除?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'customer_post_DelCustomerCommissionRatio'
,
{
Id
:
item
.
Id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
dialogVisible
=
false
;
this
.
Success
(
res
.
data
.
message
)
}
else
{
this
.
Success
(
res
.
data
.
message
)
}
},
err
=>
{
})
}).
catch
(()
=>
{
});
},
Edit
(
item
){
this
.
ruleForm
=
{
Id
:
item
.
Id
,
Money
:
item
.
Money
,
Ratio
:
item
.
Ratio
,
}
this
.
dialogVisible
=
true
;
},
add
(){
this
.
ruleForm
=
{
Id
:
0
,
Money
:
""
,
Ratio
:
""
,
}
this
.
dialogVisible
=
true
;
},
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
apipost
(
'customer_post_SetCustomerCommissionRatio'
,
this
.
ruleForm
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
dialogVisible
=
false
;
this
.
$refs
[
"ruleForm"
].
resetFields
();
}
else
{
}
},
err
=>
{
})
}
else
{
}
});
},
getList
()
{
//获取数据
this
.
loading
=
true
;
this
.
apipost
(
'customer_post_GetCustomerCommissionRatioList'
,
{},
res
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
DataList
=
res
.
data
.
data
;
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
}
},
err
=>
{
})
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
},
}
}
</
script
>
src/components/SalesModule/customerTransfer.vue
View file @
4002ddfb
...
...
@@ -94,12 +94,13 @@
<!--
<label><input
type=
"checkbox"
v-model=
"isCkedAll"
@
click=
'checkedAll()'
style=
"vertical-align: middle;"
/>
门店名称
</label>
-->
</th>
<th
width=
"10%"
>
联系人
</th>
<th
width=
"1
5
%"
>
联系电话
</th>
<th
width=
"1
0
%"
>
联系电话
</th>
<th
width=
"20%"
>
地址
</th>
<th
width=
"8%"
>
所属销售
</th>
<th
width=
"8%"
>
客户状态
</th>
<th
width=
"5%"
>
幸福存折
</th>
<th
width=
"10%"
>
备注
</th>
<th
width=
"1
0
%"
>
操作
</th>
<th
width=
"1
2
%"
>
操作
</th>
</tr>
<tr>
<td
colspan=
"8"
align=
"center"
v-show=
"list.length==0"
>
暂无数据
</td>
...
...
@@ -126,7 +127,9 @@
<td>
{{
item
.
Address
}}
</td>
<td>
{{
item
.
EmName
}}
</td>
<td>
{{
valueToWord
(
item
.
CustomerStatus
)
}}
</td>
<td>
{{
item
.
CL_Balance
}}
</td>
<td>
{{
item
.
Remark
}}
</td>
<td>
<el-tooltip
effect=
"dark"
content=
"转交"
placement=
"top-start"
>
<el-popover
width=
"280"
popper-class=
"pd20"
trigger=
"click"
>
...
...
@@ -228,6 +231,14 @@
>
</el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"详情"
placement=
"top-start"
>
<el-button
@
click=
"getUrl(item)"
type=
"success"
icon=
"iconfont icon-nav-xiaoshou"
circle
></el-button>
</el-tooltip>
</td>
</tr>
</table>
...
...
@@ -561,6 +572,9 @@ export default {
};
},
methods
:
{
getUrl
(
item
){
this
.
$router
.
push
({
name
:
"CustomerAnalysis"
,
query
:{
"customerId"
:
item
.
CustomerIdS
,
blank
:
'y'
}
})
},
updateData
:
function
(
obj
)
{
this
.
apipost
(
"app_customer_GetLeaderCustomerInfo"
,
...
...
src/components/busManagement/busStatistics.vue
View file @
4002ddfb
...
...
@@ -47,162 +47,157 @@
:style=
"
{height: boxHeight + 'px'}">
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"busStatisticsTalbe"
v-loading=
'loading'
>
<tr>
<th
class=
"w
100"
>
序号
</th>
<th
width=
"
11
0"
>
出发地
</th>
<th
width=
"
11
0"
>
酒店
</th>
<th
width=
"1
5
0"
>
航班时间
</th>
<th
width=
"
100"
>
序号
</th>
<th
width=
"
8
0"
>
出发地
</th>
<th
width=
"
8
0"
>
酒店
</th>
<th
width=
"1
1
0"
>
航班时间
</th>
<th
width=
"150"
>
公司团号
</th>
<th
width=
"
100"
>
线路
负责人
</th>
<th
width=
"
80"
>
线路
<br
/>
负责人
</th>
<th
width=
"70"
>
进出点
</th>
<th
width=
"
8
0"
>
机位总数
<br
/>
(Y/E/F)
</th>
<th
width=
"
7
0"
>
机位总数
<br
/>
(Y/E/F)
</th>
<th
width=
"80"
>
领队
</th>
<th
width=
"80"
>
导游
</th>
<th
width=
"150"
>
车型
</th>
<th
width=
"100"
v-for=
'item in thLengthTitle'
>
{{
item
}}
</th>
<th
width=
"150"
>
车辆状态
</th>
<th
width=
"150"
>
车费总计
</th>
<th
width=
"80"
>
车型
</th>
<th
width=
"100"
>
时间
</th>
<th
width=
"80"
>
类型
</th>
<th
width=
"80"
>
状态
</th>
<th
width=
"80"
>
车辆状态
</th>
<th
width=
"80"
>
车费总计
</th>
<th
width=
"80"
>
配车天数
</th>
<th
width=
"1
2
0"
>
操作
</th>
<th
width=
"1
0
0"
>
操作
</th>
</tr>
<tbody
v-for=
"(outItem,outindex) in DataList"
:class=
"
{splitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
class=
"w100"
>
{{
outItem
.
NewCombinationNum
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td>
<el-popover
width=
"750"
trigger=
"click"
popper-class=
"Bus_HotelPop"
>
<commonHotelInfo
:HotelObj=
"item.CommonReport.PriceHotelResult"
:showHotelObj=
"showHotelObj"
>
</commonHotelInfo>
<div
slot=
"reference"
class=
"w80"
style=
"cursor:pointer;text-decoration:underline;"
>
酒店信息
</div>
</el-popover>
</td>
<td>
<div
class=
"w120"
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"busStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
CreateByName
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
InOut
}}
</div>
</td>
<td>
<div
class=
"w100 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
LeaderName
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
GuideName
}}
</div>
</td>
<td>
<div
class=
"w80"
>
<template
v-if=
"item.CommonReport&&item.CommonReport.BusPlanListReport&&item.CommonReport.BusPlanListReport.length>0&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0]"
>
{{
item
.
CommonReport
.
BusPlanListReport
[
0
].
BusPlanOrderList
[
0
].
MainBusTypeStr
}}
</
template
>
</div>
</td>
<td
v-for=
"(x,ww) in item.CommonReport.BusPlanListReport"
style=
"vertical-align: top;"
>
<div
class=
"w100"
>
<
template
v-if=
"x.BusPlanOrderList"
v-for=
"(childItem,childIndex) in x.BusPlanOrderList"
>
<p
class=
"pDateStyle"
v-if=
"childIndex==0"
>
{{
childItem
.
PlanDateStr
}}
</p>
<p
class=
"pDateStyle"
>
{{
(
childItem
.
AirportPickUpStr
!=
""
?
childItem
.
AirportPickUpStr
:
""
)
}}
<span
style=
"color: #4BCA81;"
v-if=
"(childItem.AirportPickUpStr!='')"
>
√
</span>
<span
style=
"color: #E95252;"
v-else
>
X
</span>
<template
v-if=
"x.BusPlanOrderList.length>1 && x.BusPlanOrderList.length-1!=childIndex"
>
<br
/>
<template
v-for=
"(outItem,outindex) in DataList"
>
<tbody
:class=
"
{splitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<template
v-for=
"(subItem,subIndex) in item.CommonReport.BusPlanListReport"
>
<template
v-for=
"(thirdItem,thirdIndex) in subItem.BusPlanOrderList"
>
<tr>
<td
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<el-popover
width=
"950"
trigger=
"click"
popper-class=
"Bus_HotelPop"
>
<commonHotelInfo
:HotelObj=
"item.CommonReport.PriceHotelResult"
:showHotelObj=
"showHotelObj"
>
</commonHotelInfo>
<div
slot=
"reference"
class=
"w80"
style=
"cursor:pointer;text-decoration:underline;"
>
酒店信息
</div>
</el-popover>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
FlightDate
}}
<br
/>
<el-popover
popper-class=
"busStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
style=
"cursor:pointer;text-decoration:underline;"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCID
}}
)
</p>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
CreateByName
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
InOut
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
style=
"cursor:pointer;text-decoration:underline;"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
LeaderName
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
GuideName
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<template
v-if=
"item.CommonReport&&item.CommonReport.BusPlanListReport&&item.CommonReport.BusPlanListReport.length>0&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0]"
>
{{
item
.
CommonReport
.
BusPlanListReport
[
0
].
BusPlanOrderList
[
0
].
MainBusTypeStr
}}
</
template
>
</p>
</template>
</div>
</td>
<td
v-for=
"is in item.isCha"
></td>
<td>
<div
class=
"w80 fbold fz16"
>
<span
style=
"color: #E95252;"
v-if=
"item.CommonReport.BusOrderState==-1"
>
X
</span>
<span
style=
"color: #ff6600;"
v-else-if=
"item.CommonReport.BusOrderState==0"
>
O
</span>
<span
style=
"color: #4BCA81;"
v-else-if=
"item.CommonReport.BusOrderState==1"
>
√
</span></div>
</td>
<td>
<div
class=
"w150"
>
{{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
</div>
</td>
<td>
<div
class=
"w100"
>
{{GetPeiChe(item.CommonReport.BusPlanListReport)}}
</div>
</td>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
class=
"w100 link"
>
<span
@
click=
"goUrlX('BusInfo',item,outItem,'车配信息')"
>
详情
</span>
<span
@
click=
"GoDownLoad(outItem)"
>
手配书
</span>
</div>
</td>
</tr>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{item.Titles}}
</p>
<div
v-show=
"item.DMCRemark!=''"
class=
"colorE95252"
>
地接备注:{{item.DMCRemark}}
</div>
<div
v-show=
"item.OPRemark!=''"
class=
"colorE95252"
>
OP备注(对外):{{item.OPRemark}}
</div>
<div
v-show=
"item.OPInnerRemark!=''"
class=
"colorE95252"
>
OP备注(对内):{{item.OPInnerRemark}}
</div>
</div>
</td>
</tr>
</template>
</tbody>
</td>
<td
:rowspan=
"subItem.BusPlanOrderList.length"
v-if=
'thirdIndex==0'
>
{{subItem.UseTimeStr}}
</td>
<td>
{{thirdItem.AirportPickUpStr}}
</td>
<td>
<span
style=
"color: #4BCA81;"
v-if=
"(thirdItem.AirportPickUpStr!='')"
>
√
</span>
<span
style=
"color: #E95252;"
v-else
>
X
</span>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w80 fbold fz16"
>
<span
style=
"color: #E95252;"
v-if=
"item.CommonReport.BusOrderState==-1"
>
X
</span>
<span
style=
"color: #ff6600;"
v-else-if=
"item.CommonReport.BusOrderState==0"
>
O
</span>
<span
style=
"color: #4BCA81;"
v-else-if=
"item.CommonReport.BusOrderState==1"
>
√
</span>
</div>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{GetPeiChe(item.CommonReport.BusPlanListReport)}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<span
@
click=
"goUrlX('BusInfo',item,outItem,'车配信息')"
style=
"cursor:pointer;text-decoration:underline;"
>
详情
</span>
<br
/>
<br
/>
<span
@
click=
"GoDownLoad(outItem)"
style=
"cursor:pointer;text-decoration:underline;"
>
手配书
</span>
</td>
</tr>
<tr
v-if=
"subIndex== item.CommonReport.BusPlanListReport.length-1 && thirdIndex==subItem.BusPlanOrderList.length-1"
>
<td
:colspan=
"17"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{item.Titles}}
</p>
<div
v-show=
"item.DMCRemark!=''"
class=
"colorE95252"
>
地接备注:{{item.DMCRemark}}
</div>
<div
v-show=
"item.OPRemark!=''"
class=
"colorE95252"
>
OP备注(对外):{{item.OPRemark}}
</div>
<div
v-show=
"item.OPInnerRemark!=''"
class=
"colorE95252"
>
OP备注(对内):{{item.OPInnerRemark}}
</div>
</div>
</td>
</tr>
</template>
</template>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
...
...
@@ -220,7 +215,7 @@
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
5
,
SelectType
:
4
,
LineId
:
14
,
LineteamId
:
"-1"
,
...
...
@@ -406,22 +401,23 @@
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
DataList
=
res
.
data
.
data
.
pageData
.
data
;
this
.
thLengthTitle
=
[];
this
.
colspanTotal
=
res
.
data
.
data
.
pageData
.
columnsCount
+
13
;
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
)
{
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'天'
);
}
this
.
DataList
.
forEach
(
outItem
=>
{
var
sourceData
=
res
.
data
.
data
.
pageData
.
data
;
sourceData
.
forEach
(
outItem
=>
{
var
rootRowspan
=
0
;
//合团跨行
outItem
.
StaticsReportList
.
forEach
(
item
=>
{
if
(
item
.
CommonReport
.
BusPlanListReport
.
length
<
res
.
data
.
data
.
pageData
.
data
.
length
)
{
item
.
isCha
=
res
.
data
.
data
.
pageData
.
columnsCount
-
item
.
CommonReport
.
BusPlanListReport
.
length
;
}
else
{
item
.
isCha
=
0
;;
}
})
var
itemRowSpan
=
0
;
//车辆跨行
item
.
CommonReport
.
BusPlanListReport
.
forEach
(
thirdItem
=>
{
thirdItem
.
BusPlanOrderList
.
forEach
(
lastItem
=>
{
rootRowspan
++
;
itemRowSpan
++
;
});
});
item
.
itemRowSpan
=
itemRowSpan
;
});
rootRowspan
+=
outItem
.
StaticsReportList
.
length
;
outItem
.
rootRowspan
=
rootRowspan
;
})
this
.
DataList
=
sourceData
;
this
.
$forceUpdate
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
...
...
@@ -438,7 +434,6 @@
"-"
+
myDate
.
getDate
();
this
.
msg
.
StartDate
=
nowDate
;
//this.msg.StartDate = '2019-08-12';
let
width
=
window
.
innerWidth
-
50
;
let
height
=
window
.
innerHeight
-
65
-
210
;
this
.
boxHeight
=
height
;
...
...
@@ -460,7 +455,7 @@
}
.busStatisticsTalbe
{
b
ackground
:
#ccc
;
b
order-collapse
:
collapse
;
}
.busStatisticsTalbe
tr
th
{
...
...
@@ -473,34 +468,13 @@
.busStatisticsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.busStatisticsTalbe
tr
td
{
font-size
:
12px
;
}
.busStatisticsTalbe
tr
td
.pDateStyle
{
border-bottom
:
1px
solid
#ccc
;
min-height
:
24px
;
line-height
:
24px
;
margin-top
:
0
;
box-sizing
:
content-box
;
padding
:
0
10px
;
}
.busStatisticsTalbe
tr
td
.pDateStyle
:last-child
{
border-bottom
:
none
;
}
.busStatisticsTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.busStatisticsTalbe
tr
td
.link
span
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
height
:
20px
;
line-height
:
20px
;
border
:
1px
solid
#d2d2d2
;
}
.busStatistics_tripDetails
{
...
...
src/components/scenicSpot/admissionStatistics.vue
View file @
4002ddfb
...
...
@@ -30,116 +30,112 @@
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"admissionStatisticsTalbe"
v-loading=
'loading'
>
<tr>
<th
width=
"
5
0"
>
序号
</th>
<th
width=
"
8
0"
>
出发地
</th>
<th
width=
"
8
0"
>
航班时间
</th>
<th
width=
"
8
0"
>
公司团号
</th>
<th
width=
"
12
0"
>
序号
</th>
<th
width=
"
10
0"
>
出发地
</th>
<th
width=
"
12
0"
>
航班时间
</th>
<th
width=
"
14
0"
>
公司团号
</th>
<th
width=
"120"
>
机位总数/(Y/E/F)
</th>
<th
v-for=
'item in thLengthTitle'
>
{{
item
}}
</th>
<th
>
备注
</th>
<th
class=
"w8
0"
>
操作
</th>
<th
width=
"120"
>
日期
</th>
<th
width=
"250"
>
景点
</th>
<th
width=
"10
0"
>
操作
</th>
</tr>
<tbody
v-for=
"(outItem,outindex) in list"
:class=
"
{admissionStatisticsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
style=
"max-width: 100px; min-width: 50px; "
>
{{
outindex
+
1
}}
</div>
<div
v-if=
'outItem.StaticsReportList.length>0'
class=
"w100"
>
{{
outItem
.
NewCombinationNum
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"admissionStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td
v-for=
"x in item.CommonReport.ScenicList"
style=
"vertical-align: top;"
>
<div
style=
"width: 100%;"
>
<p
class=
"pDateStyle"
v-if=
"x.UseTimeStr"
>
{{
x
.
UseTimeStr
}}
</p>
<p
@
click=
"goUrlR('scenicSpotList',s.ID,'景区列表')"
class=
"pMsgStyle phoverStype"
v-for=
"s in x.ScenicStatisticsList"
>
{{
s
.
ScenicName
}}
</p>
</div>
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
</td>
<td>
<div
class=
"link"
>
<div
class=
"w80"
>
<p
@
click=
"goUrl('admissionStatisticsDetails',item,outItem,'门票详情')"
>
详情
</p>
</div>
</div>
</td>
</tr>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
Titles
}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:
{{
outItem
.
StaticsReportList
[
0
].
DMCRemark
}}
</div>
</div>
</td>
</tr>
</
template
>
</tbody>
<template
v-for=
"(outItem,outindex) in DataList"
>
<tbody
:class=
"
{admissionStatisticsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<template
v-for=
"(subItem,subIndex) in item.CommonReport.ScenicList"
>
<template
v-for=
"(thirdItem,thirdIndex) in subItem.ScenicStatisticsList"
>
<tr>
<td
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"admissionStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"150"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w150 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCID
}}
)
</p>
</div>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w150 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td
:rowspan=
"subItem.ScenicStatisticsList.length"
v-if=
'thirdIndex==0'
>
{{
thirdItem
.
UseTimeStr
}}
</td>
<td
style=
"text-align:left;padding-left:3px;"
>
{{
thirdItem
.
ScenicName
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"link"
>
<div
class=
"w80"
>
<p
@
click=
"goUrl('admissionStatisticsDetails',item,outItem,'门票详情')"
>
详情
</p>
</div>
</div>
</td>
</tr>
<tr
v-if=
"subIndex== item.CommonReport.ScenicList.length-1 && thirdIndex==subItem.ScenicStatisticsList.length-1"
>
<td
colspan=
"7"
style=
"text-align:left; padding-left:5px"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
Titles
}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:
{{
outItem
.
StaticsReportList
[
0
].
DMCRemark
}}
</div>
</div>
</td>
</tr>
</
template
>
</template>
</template>
</tbody>
</template>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
></el-pagination>
</div>
</template>
<
script
>
export
default
{
data
()
{
...
...
@@ -158,15 +154,10 @@
},
LineList
:
[],
LineTeamList
:
[],
thLengthTitle
:
[],
list
:
[],
colspanTotal
:
0
,
DataList
:
[],
}
},
methods
:
{
stringToArr
(
str
)
{
return
str
.
split
(
','
)
},
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
...
...
@@ -192,16 +183,6 @@
}
);
},
goUrlR
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
goUrlT
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
...
...
@@ -212,7 +193,7 @@
}
})
},
goUrl
(
path
,
obj
,
outItem
,
title
)
{
goUrl
(
path
,
obj
,
outItem
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
...
...
@@ -235,31 +216,28 @@
this
.
currentPage
=
1
;
},
getList
()
{
this
.
loading
=
true
this
.
loading
=
true
;
this
.
apipost
(
'dmcstatistics_post_GetUniteCombinationNumService'
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
this
.
list
=
res
.
data
.
data
.
pageData
.
data
;
this
.
thLengthTitle
=
[]
this
.
colspanTotal
=
res
.
data
.
data
.
pageData
.
columnsCount
+
6
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
)
{
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'天'
)
}
this
.
list
.
forEach
(
outItem
=>
{
this
.
total
=
res
.
data
.
data
.
count
;
var
tempData
=
res
.
data
.
data
.
pageData
.
data
;
tempData
.
forEach
(
outItem
=>
{
var
rootRowspan
=
0
;
//合团跨行
outItem
.
StaticsReportList
.
forEach
(
item
=>
{
if
(
item
.
CommonReport
.
ScenicList
.
length
<
res
.
data
.
data
.
pageData
.
columnsCount
)
{
let
_cha
=
res
.
data
.
data
.
pageData
.
columnsCount
-
item
.
CommonReport
.
ScenicList
.
length
let
_chaArr
=
new
Array
()
for
(
let
i
=
0
;
i
<
_cha
;
i
++
)
{
_chaArr
.
push
({
'HotelName'
:
''
})
}
item
.
CommonReport
.
ScenicList
=
item
.
CommonReport
.
ScenicList
.
concat
(
_chaArr
)
}
})
})
var
itemRowSpan
=
0
;
//景点跨行
item
.
CommonReport
.
ScenicList
.
forEach
(
thirdItem
=>
{
thirdItem
.
ScenicStatisticsList
.
forEach
(
lastItem
=>
{
rootRowspan
++
;
itemRowSpan
++
;
});
});
item
.
itemRowSpan
=
itemRowSpan
;
});
rootRowspan
+=
outItem
.
StaticsReportList
.
length
;
outItem
.
rootRowspan
=
rootRowspan
;
});
this
.
DataList
=
tempData
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
...
...
@@ -278,6 +256,7 @@
this
.
getList
()
},
}
</
script
>
<
style
>
...
...
@@ -305,39 +284,10 @@
.admissionStatisticsTalbe
tr
td
{
font-size
:
12px
;
}
.admissionStatisticsTalbe
tr
td
.pHouseStyle
{
border-bottom
:
1px
solid
#ccc
;
height
:
20px
;
line-height
:
20px
;
}
.admissionStatisticsTalbe
tr
td
.pHouseStyle
:last-child
{
border-bottom
:
none
;
}
.admissionStatisticsTalbe
tr
td
.pDateStyle
{
border-bottom
:
1px
solid
#ccc
;
height
:
20px
;
line-height
:
20px
;
margin-top
:
0
;
}
.admissionStatisticsTalbe
tr
td
.pMsgStyle
{
padding
:
0
10px
;
line-height
:
20px
;
}
.admissionStatisticsTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.admissionStatisticsTalbe
tr
td
.phoverStype
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.admissionStatistics_tripDetails
{
padding
:
0
;
box-shadow
:
0px
1px
3px
0px
#dedede
;
...
...
src/router/config.js
View file @
4002ddfb
...
...
@@ -1862,14 +1862,22 @@ export default {
title
:
'拜访记录'
},
},
{
// 销售
幸福存折
{
// 销售
返佣查询
path
:
'/HappyPassbook'
,
name
:
'HappyPassbook'
,
component
:
resolve
=>
require
([
'@/components/SalesModule/HappyPassbook'
],
resolve
),
meta
:
{
title
:
'
幸福存折
'
title
:
'
返佣查询
'
},
},
{
// 销售 统计
},
{
// 销售 返佣比例管理
path
:
'/Returnratio'
,
name
:
'Returnratio'
,
component
:
resolve
=>
require
([
'@/components/SalesModule/Returnratio'
],
resolve
),
meta
:
{
title
:
'返佣比例管理'
},
},{
// 销售 统计
path
:
'/demandStatistics'
,
name
:
'demandStatistics'
,
component
:
resolve
=>
require
([
'@/components/SalesModule/demandStatistics'
],
resolve
),
...
...
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