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
Show 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;"
>
...
...
src/components/Restaurant/bookDinnerStatistics.vue
View file @
4002ddfb
...
...
@@ -27,32 +27,37 @@
</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=
"(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=
"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
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td>
<div
class=
"w80"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td
>
<div
class=
"w120"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"bookDinnerStatistics_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
...
...
@@ -86,58 +91,55 @@
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td
>
<div
class=
"w12
0 link"
>
<p
v-for=
'xx in stringToArr(item.TCNUMS)'
@
click=
"goUrlT('productQuery',xx,'产品查询')"
>
{{
xx
}}
</p>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w15
0 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCID
}}
)
</p>
</div>
</td>
<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
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>
<td><span
v-if=
"s.IsFeature==1"
style=
"color:red;"
>
{{
s
.
DiningName
}}
</span>
<span
v-else
>
{{
s
.
DiningName
}}
</span></td>
</tr>
</table>
</div>
<td
:rowspan=
"subItem.DiningSummaryList.length"
v-if=
'thirdIndex==0'
>
{{
subItem
.
UseTimeStr
}}
</td>
<td
style=
"text-align:left;padding-left:3px;"
>
{{
thirdItem
.
DiningName
}}
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
{{
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>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<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"
>
...
...
@@ -146,7 +148,11 @@
</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'
:
''
var
itemRowSpan
=
0
;
//餐厅跨行
item
.
CommonReport
.
DiningList
.
forEach
(
thirdItem
=>
{
thirdItem
.
DiningSummaryList
.
forEach
(
lastItem
=>
{
rootRowspan
++
;
itemRowSpan
++
;
});
}
item
.
CommonReport
.
DiningList
=
item
.
CommonReport
.
DiningList
.
concat
(
_chaArr
);
}
});
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>
<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,44 +47,46 @@
: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=
"(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=
"2*outItem.StaticsReportList.length"
v-if=
'i
ndex==0'
>
<div
class=
"w100"
>
{{
outItem
.
NewCombinationNum
}}
</div>
<td
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdI
ndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td>
<div
class=
"w80"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td
>
<el-popover
width=
"7
50"
trigger=
"click"
popper-class=
"Bus_HotelPop"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<el-popover
width=
"9
50"
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
}}
<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;"
>
...
...
@@ -117,82 +119,72 @@
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
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
: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
>
<div
class=
"w80"
>
{{
item
.
CreateByName
}}
</div>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
CreateByName
}}
</td>
<td
>
<div
class=
"w80"
>
{{
item
.
InOut
}}
</div>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
InOut
}}
</td>
<td
>
<div
class=
"w100 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')
"
>
<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>
</div>
</td>
<td
>
<div
class=
"w80"
>
{{
item
.
LeaderName
}}
</div>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
LeaderName
}}
</td>
<td
>
<div
class=
"w80"
>
{{
item
.
GuideName
}}
</div>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
GuideName
}}
</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]"
>
<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
>
</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
>
</p>
</template>
</div>
<td
:rowspan=
"subItem.BusPlanOrderList.length"
v-if=
'thirdIndex==0'
>
{{subItem.UseTimeStr}}
</td>
<td
v-for=
"is in item.isCha"
></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>
<span
style=
"color: #4BCA81;"
v-else-if=
"item.CommonReport.BusOrderState==1"
>
√
</span>
</div>
</td>
<td>
<div
class=
"w150"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
</div>
</td>
<td>
<div
class=
"w100"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{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
: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>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<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>
...
...
@@ -202,7 +194,10 @@
</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,29 +30,28 @@
<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=
"(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=
"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
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td>
<div
class=
"w80"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td>
<div
class=
"w80"
>
<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"
>
...
...
@@ -86,35 +85,29 @@
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td
>
<div
class=
"w12
0 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w15
0 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCID
}}
)
</p>
</div>
</td>
<td
>
<div
class=
"w12
0 link"
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w15
0 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
:rowspan=
"subItem.ScenicStatisticsList.length"
v-if=
'thirdIndex==0'
>
{{
thirdItem
.
UseTimeStr
}}
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
<td
style=
"text-align:left;padding-left:3px;"
>
{{
thirdItem
.
ScenicName
}}
</td>
<td
>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"link"
>
<div
class=
"w80"
>
<p
@
click=
"goUrl('admissionStatisticsDetails',item,outItem,'门票详情')"
>
详情
</p>
...
...
@@ -122,8 +115,9 @@
</div>
</td>
</tr>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<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"
>
...
...
@@ -132,14 +126,16 @@
</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