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
959e0764
Commit
959e0764
authored
Aug 21, 2024
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
5f45180f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
519 additions
and
6 deletions
+519
-6
restaurantRankingList.vue
src/components/Restaurant/restaurantRankingList.vue
+474
-0
CustomerAnalysis.vue
src/components/SalesModule/CustomerAnalysis.vue
+11
-1
customerTransfer.vue
src/components/SalesModule/customerTransfer.vue
+14
-0
enrollTotal.vue
src/components/SalesModule/enrollTotal.vue
+7
-1
config.js
src/router/config.js
+13
-4
No files found.
src/components/Restaurant/restaurantRankingList.vue
0 → 100644
View file @
959e0764
<
style
>
.restaurantList
.clearfix
:after
{
content
:
"\0020"
;
display
:
block
;
height
:
0
;
clear
:
both
;
}
.restaurantList
.hotelResource
{
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.restaurantList
.resourceList
{
width
:
215px
;
height
:
330px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
.restaurantList
.resourceList
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.restaurantList
.reTopInfo
{
width
:
100%
;
height
:
123px
;
position
:
relative
;
}
.restaurantList
.reTopInfo
img
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
top
:
0
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
;
}
.restaurantList
.resTypeList
{
position
:
absolute
;
top
:
10px
;
left
:
10px
;
}
.restaurantList
.resTypeList
span
{
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
margin-right
:
10px
;
}
.restaurantList
.L1
{
background-color
:
#e95252
;
}
.restaurantList
.L2
{
background-color
:
#47bf8c
;
}
.restaurantList
.L3
{
background-color
:
#2aaef2
;
}
.restaurantList
.L4
{
background-color
:
#9cf
;
}
.restaurantList
.L5
{
background-color
:
#00c6ff
;
margin-top
:
5px
;
}
.restaurantList
.starSu
{
position
:
absolute
;
bottom
:
8px
;
right
:
10px
;
}
.restaurantList
.sushe
{
background-color
:
#ffc800
;
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
}
.restaurantList
.hotelTitle
{
margin
:
10px
16px
0
16px
;
font-size
:
14px
;
color
:
#333333
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.restaurantList
.brandList
{
margin
:
16px
0
;
}
.restaurantList
.brandList
i
{
position
:
relative
;
top
:
2px
;
}
.restaurantList
.brand
{
float
:
left
;
width
:
49%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
text-align
:
center
;
}
.restaurantList
.dayNum
{
float
:
right
;
text-align
:
center
;
width
:
50%
;
}
.restaurantList
.iconfont
{
margin-right
:
5px
;
}
.restaurantList
.dieline
{
color
:
#2aaef2
;
font-size
:
14px
;
top
:
1px
!important
;
}
.restaurantList
.AddressInner
{
float
:
right
;
width
:
160px
;
height
:
18px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
}
.restaurantList
.btnList
{
text-align
:
center
;
}
.restaurantList
.hotelBtn
{
width
:
80px
;
height
:
28px
;
background
:
#f76f6f
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
}
.restaurantList
.hotelBtn
:first-child
{
margin-right
:
19px
;
}
.restaurantList
.w150
.el-input
{
width
:
150px
!important
;
}
.restaurantList
.SupportCount
{
color
:
#4bca81
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
0
;
display
:
inline-block
;
}
.restaurantList
.dayNumber
{
color
:
#2aaef2
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
5px
;
display
:
inline-block
;
}
.restaurantList
.line
{
float
:
left
;
width
:
1px
;
height
:
35px
;
background-color
:
#ededed
;
margin-top
:
6px
;
}
.restaurantList
.foodList
{
display
:
inline-block
;
padding
:
1px
5px
;
background-color
:
#ff9c00
;
color
:
#fff
;
margin-right
:
6px
;
border-radius
:
2px
;
}
.restaurantList
.foodList
:last-child
{
margin-right
:
0
;
}
.restaurantList
.delScien
{
position
:
absolute
;
right
:
10px
;
top
:
10px
;
display
:
none
;
}
.restaurantList
.delScien
:hover
{
color
:
#f76f6f
;
cursor
:
pointer
;
}
.restaurantList
.resourceList
:hover
.delScien
{
display
:
block
;
}
.restaurantList
.comCursorUrl
{
cursor
:
pointer
;
}
.restaurantList
.el-button
{
width
:
29px
;
}
/* 餐厅列表 */
</
style
>
<
template
>
<div
class=
"flexOne restaurantList"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.PlaceID"
class=
"w150"
filterable
:placeholder=
"$t('hotel.hotel_province')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
>
</el-option>
<el-option
v-for=
"item in provinceList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
使用日期
</em>
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"msg.QStartDate"
:picker-options=
"pickerBeginDateBefore"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"msg.QEndDate"
:picker-options=
"pickerBeginDateAfter"
value-format=
"yyyy-MM-dd"
placeholder
></el-date-picker>
</span>
</li>
<li>
<span>
<em>
团队类型
</em>
<el-select
class=
"multiple_input"
v-model=
"msg.TeamType"
filterable
placeholder=
"请选择团队类型"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"-1"
>
</el-option>
<el-option
v-for=
'item in teamList'
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
出团公司
</em>
<el-select
class=
" multiple_input"
placeholder=
"请选择团队类型"
v-model=
"msg.OutBranchId"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"-1"
>
</el-option>
<el-option
v-for=
"item in CompanyList"
:key=
"item.id"
:label=
"item.bName"
:value=
"item.id"
></el-option>
</el-select>
</span>
</li>
<li>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),selectResource()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
</li>
</ul>
</div>
<el-table
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%;min-height:450px;"
v-loading=
"loading"
>
<el-table-column
prop=
"NewDinnerName"
label=
"餐厅名称"
>
</el-table-column>
<el-table-column
prop=
"DinnerRealName"
label=
"餐厅真实名称"
>
</el-table-column>
<el-table-column
prop=
"UserNum"
label=
"使用次数"
>
</el-table-column>
<el-table-column
prop=
"PriceNormalPeopleNum"
label=
"常规团使用次数"
>
</el-table-column>
<el-table-column
prop=
"PriceNormalUseNum"
label=
"常规团使用人数"
>
</el-table-column>
<el-table-column
prop=
"PriceOneDayTripPeopleNum"
label=
"小包团使用次数"
>
</el-table-column>
<el-table-column
prop=
"PriceOneDayTripUseNum"
label=
"小包团使用人数"
>
</el-table-column>
<el-table-column
prop=
"PricePacketGroupPeopleNum"
label=
"当地游团使用次数"
>
</el-table-column>
<el-table-column
prop=
"PricePacketGroupUseNum"
label=
"当地游团使用人数"
>
</el-table-column>
<el-table-column
:label=
"$t('system.table_operation')"
width=
"150"
>
<template
slot-scope=
"scope"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"$t('pub.updateMsg')"
placement=
"top"
>
<el-button
@
click=
"goSubInfo('demesticRestaurantInfoManage',scope.row.NewDiningID)"
type=
"primary"
icon=
"el-icon-edit"
circle
>
</el-button>
</el-tooltip>
</
template
>
</el-table-column>
</el-table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.currentPage"
:page-size=
"msg.pageSize"
layout=
"total,prev, pager, next, jumper"
:total=
"msg.total"
v-if=
"tableData.length>0"
></el-pagination>
<!-- <div v-if="tableData.length===0">{{$t('system.content_noData')}}</div> -->
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
total
:
0
,
currentPage
:
1
,
provinceList
:
""
,
tableData
:
[],
CompanyList
:
[],
//出团公司
teamList
:
[],
//团队类型
loading
:
true
,
defaultImg
:
'this.src="'
+
require
(
"../../assets/img/bg_z1@2x.png"
)
+
'"'
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
QStartDate
:
""
,
QEndDate
:
""
,
OutBranchId
:
-
1
,
PlaceID
:
0
,
TeamType
:
-
1
,
DiningId
:
0
,
},
pickerBeginDateBefore
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
QEndDate
==
null
)
{
return
false
;
}
else
{
let
endTime
=
new
Date
(
this
.
msg
.
QEndDate
);
return
endTime
.
getTime
()
<
time
.
getTime
();
}
}
},
pickerBeginDateAfter
:
{
disabledDate
:
time
=>
{
let
startTime
=
new
Date
(
this
.
msg
.
QStartDate
);
return
startTime
.
getTime
()
>=
time
.
getTime
();
}
},
};
},
methods
:
{
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
selectResource
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getTeamList
()
{
//出团公司
this
.
apipost
(
"travel_GetTeamTypeEnumList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
teamList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//根据省份获取城市
getProvinceList
(
ID
,
type
)
{
let
msg
=
{
Id
:
ID
};
if
(
type
==
1
)
{
this
.
msg
.
QProvince
=
""
;
this
.
msg
.
QCity
=
""
;
this
.
msg
.
QDistrict
=
""
;
}
else
if
(
type
==
2
)
{
this
.
msg
.
QCity
=
""
;
this
.
msg
.
QDistrict
=
""
;
}
else
if
(
type
==
3
)
{
this
.
msg
.
QDistrict
=
""
;
}
// if (this.msg.QCountry !== "") {
this
.
apipost
(
"dict_post_Destination_GetChildList"
,
msg
,
res
=>
{
if
(
type
==
1
)
{
this
.
provinceList
=
res
.
data
.
data
;
}
else
if
(
type
==
2
)
{
this
.
cityList
=
res
.
data
.
data
;
}
else
if
(
type
==
3
)
{
this
.
district
=
res
.
data
.
data
;
}
},
err
=>
{}
);
// }
},
//获取餐厅使用排行列表
selectResource
()
{
this
.
loading
=
true
;
this
.
apipost
(
"order_post_GetPageRankingList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
tableData
=
res
.
data
.
data
.
pageData
;
this
.
msg
.
total
=
res
.
data
.
data
.
count
;
this
.
tableData
.
forEach
(
x
=>
{
if
(
x
.
FoodTag
!=
""
)
{
x
.
FoodTagArr
=
x
.
FoodTag
.
split
(
","
).
slice
(
0
,
3
);
}
});
}
},
null
);
},
goUrl
(
path
,
id
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
id
,
blank
:
'y'
,
tab
:
'套餐查询'
}
});
},
getSellorCompany
()
{
//出团公司
this
.
apipost
(
"sellorder_post_GetBranchList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
CompanyList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
},
created
()
{
var
myDate
=
new
Date
();
var
nowDate
=
myDate
.
getFullYear
()
+
"-"
+
parseInt
(
myDate
.
getMonth
()
)
+
"-"
+
myDate
.
getDate
();
var
nowEDate
=
myDate
.
getFullYear
()
+
"-"
+
parseInt
(
myDate
.
getMonth
()
+
1
)
+
"-"
+
myDate
.
getDate
();
this
.
msg
.
QStartDate
=
nowDate
;
this
.
msg
.
QEndDate
=
nowEDate
;
},
mounted
()
{
this
.
getProvinceList
(
651
,
1
);
this
.
getTeamList
();
this
.
getSellorCompany
();
this
.
selectResource
();
}
};
</
script
>
src/components/SalesModule/CustomerAnalysis.vue
View file @
959e0764
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
<div
class=
"des"
>
<div
class=
"des"
>
<div
class=
"Img"
><img
style=
"width:31px;height:36px"
src=
"../../assets/img/saleRank/rt.png"
alt=
""
></div>
<div
class=
"Img"
><img
style=
"width:31px;height:36px"
src=
"../../assets/img/saleRank/rt.png"
alt=
""
></div>
<div>
<div>
<p
style=
"color:#34BFA3;font-size:24px"
><span
style=
"font-size:28px;font-weight:600"
>
{{
datainfo
.
TotalGuestNum
}}
</span>
人
</p>
<p
style=
"color:#34BFA3;font-size:24px"
><span
style=
"font-size:28px;font-weight:600"
@
click=
"getUrl()"
>
{{
datainfo
.
TotalGuestNum
}}
</span>
人
</p>
</div>
</div>
</div>
</div>
...
@@ -196,6 +196,16 @@ export default {
...
@@ -196,6 +196,16 @@ export default {
},
},
methods
:
{
methods
:
{
getUrl
()
{
this
.
$router
.
push
({
name
:
"enrollTotal"
,
query
:
{
"CustomerId"
:
this
.
customerId
,
"CustomerName"
:
this
.
datainfo
.
Contact
,
blank
:
'y'
}
})
},
goCoupons
(
id
){
goCoupons
(
id
){
this
.
$router
.
push
({
this
.
$router
.
push
({
name
:
'CouponsList'
,
name
:
'CouponsList'
,
...
...
src/components/SalesModule/customerTransfer.vue
View file @
959e0764
...
@@ -80,6 +80,19 @@
...
@@ -80,6 +80,19 @@
<
treeselect
class
=
"w200 fl"
:
options
=
"departmentList"
@
select
=
"getEmployeeList"
v
-
model
=
"DepartmentId"
<
treeselect
class
=
"w200 fl"
:
options
=
"departmentList"
@
select
=
"getEmployeeList"
v
-
model
=
"DepartmentId"
:
placeholder
=
"$t('pub.unlimitedSel')"
:
normalizer
=
"normalizer"
/>
:
placeholder
=
"$t('pub.unlimitedSel')"
:
normalizer
=
"normalizer"
/>
<
/li
>
<
/li
>
<
li
>
<
span
class
=
"fl mt10"
>
<
em
><
el
-
switch
style
=
"display: block"
v
-
model
=
"msg.fanYong"
active
-
text
=
"特惠专案客户"
inactive
-
text
=
""
active
-
value
=
"1"
inactive
-
value
=
"0"
>
<
/el-switch></
em
>
<
/span
>
<
/li
>
<
li
style
=
"float:right;padding-top:10px;color:#111111"
>
{{
$t
(
'salesModule.JYETJ'
)
}}
:
{{
datainfo
.
sumMoney
}}
<
/li
>
<
li
style
=
"float:right;padding-top:10px;color:#111111"
>
{{
$t
(
'salesModule.JYETJ'
)
}}
:
{{
datainfo
.
sumMoney
}}
<
/li
>
<
li
>
<
li
>
<
input
type
=
"button"
class
=
"hollowFixedBtn"
:
value
=
"$t('ground.kehuditu')"
@
click
=
"getMap()"
>
<
input
type
=
"button"
class
=
"hollowFixedBtn"
:
value
=
"$t('ground.kehuditu')"
@
click
=
"getMap()"
>
...
@@ -445,6 +458,7 @@
...
@@ -445,6 +458,7 @@
rtsSort
:
''
,
rtsSort
:
''
,
orderBy
:
'TradeMoney desc'
,
orderBy
:
'TradeMoney desc'
,
ExceptionCount
:
0
,
ExceptionCount
:
0
,
fanYong
:
0
,
}
,
}
,
RecipientMsg
:
{
RecipientMsg
:
{
CustomerIdArr
:
[],
CustomerIdArr
:
[],
...
...
src/components/SalesModule/enrollTotal.vue
View file @
959e0764
...
@@ -869,7 +869,7 @@
...
@@ -869,7 +869,7 @@
},
},
methods
:
{
methods
:
{
GetCustomerListByKeyWord
(
query
)
{
GetCustomerListByKeyWord
(
query
,
Type
)
{
if
(
query
!==
''
)
{
if
(
query
!==
''
)
{
// this.employeeMsg.KeyWord = query;
// this.employeeMsg.KeyWord = query;
this
.
apipost
(
this
.
apipost
(
...
@@ -878,6 +878,7 @@
...
@@ -878,6 +878,7 @@
res
=>
{
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
customerList
=
res
.
data
.
data
;
this
.
customerList
=
res
.
data
.
data
;
if
(
this
.
customerList
.
length
>
0
&&
Type
)
this
.
msg
.
CustomerId
=
this
.
customerList
[
0
].
customerId
}
}
},
},
err
=>
{}
err
=>
{}
...
@@ -1191,6 +1192,7 @@
...
@@ -1191,6 +1192,7 @@
if
(
this
.
$route
.
query
.
OrderId
)
{
if
(
this
.
$route
.
query
.
OrderId
)
{
this
.
msg
.
tempOrderId
=
this
.
$route
.
query
.
OrderId
this
.
msg
.
tempOrderId
=
this
.
$route
.
query
.
OrderId
}
}
this
.
getCompany
();
this
.
getCompany
();
this
.
getCtlxList
();
this
.
getCtlxList
();
...
@@ -1228,6 +1230,10 @@
...
@@ -1228,6 +1230,10 @@
this
.
msg
.
QStartDate
=
""
;
this
.
msg
.
QStartDate
=
""
;
this
.
msg
.
QEndDate
=
""
;
this
.
msg
.
QEndDate
=
""
;
}
}
if
(
this
.
$route
.
query
.
CustomerName
){
this
.
GetCustomerListByKeyWord
(
this
.
$route
.
query
.
CustomerName
,
1
);
}
this
.
getList
();
this
.
getList
();
},
},
};
};
...
...
src/router/config.js
View file @
959e0764
...
@@ -1512,12 +1512,21 @@ export default {
...
@@ -1512,12 +1512,21 @@ export default {
title
:
'餐厅套餐查询'
title
:
'餐厅套餐查询'
},
},
},
},
,
{
{
path
:
'/domesticRestaurantList'
,
//国内餐厅列表
path
:
'/RestaurantPackage'
,
//餐厅套餐查询
name
:
'domesticRestaurantList'
,
name
:
'RestaurantPackage'
,
component
:
resolve
=>
require
([
'@/components/Restaurant/domesticRestaurantList'
],
resolve
),
component
:
resolve
=>
require
([
'@/components/Restaurant/RestaurantPackage'
],
resolve
),
meta
:
{
title
:
'餐厅套餐查询'
},
},
{
path
:
'/restaurantRankingList'
,
//餐厅使用排行
name
:
'restaurantRankingList'
,
component
:
resolve
=>
require
([
'@/components/Restaurant/restaurantRankingList'
],
resolve
),
meta
:
{
meta
:
{
title
:
'
国内餐厅列表
'
title
:
'
餐厅使用排行
'
},
},
},
},
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment