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
37fb367e
Commit
37fb367e
authored
Jun 16, 2025
by
liudong1993
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
36c29b56
85b50a9a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
795 additions
and
373 deletions
+795
-373
TravelControlList.vue
...components/TravelManager/TravelList/TravelControlList.vue
+9
-3
TravelControlListSale.vue
...onents/TravelManager/TravelList/TravelControlListSale.vue
+8
-2
CouponAllDetail.vue
src/components/activity/CouponAllDetail.vue
+295
-0
dataCount.vue
src/components/rank/dataCount.vue
+475
-368
config.js
src/router/config.js
+8
-0
No files found.
src/components/TravelManager/TravelList/TravelControlList.vue
View file @
37fb367e
...
...
@@ -1099,6 +1099,12 @@
v-if=
"item.OrderLeaderGuestNum >= 1"
>
+{{ item.OrderLeaderGuestNum }}
</span>
{{ $t("Operation.Op_people") }}
</i>
</p>
<p>
<span>
已收订
</span>
<i>
<span
class=
"TCL-redType"
>
{{ item.DJNum }}
</span>
{{ $t("Operation.Op_people") }}
</i>
</p>
<p
v-if=
"item.SingleDMNum > 0"
>
<span>
{{ $t("salesModule.SingleJ") }}
</span>
<i>
{{ item.SingleDMNum }}
</i>
...
...
@@ -3314,7 +3320,7 @@
that
.
Success
(
res
.
data
.
message
);
ttMsg
.
configId
=
res
.
data
.
data
;
that
.
getControlList
();
that
.
gotoUrl
(
path
,
ttMsg
);
that
.
gotoUrl
(
path
,
ttMsg
);
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
...
...
@@ -3481,7 +3487,7 @@
"】"
+
this
.
$t
(
"objFill.v101.dictriqiwei"
)
+
this
.
CopyTripAndFeatureMsg
.
StartDate
;
tipMsg
+=
",变更日期后,请重新同步酒店信息。"
;
tipMsg
+=
",变更日期后,请重新同步酒店信息。"
;
}
that
.
Confirm
(
tipMsg
,
function
()
{
that
.
saveLoading
=
true
;
...
...
@@ -3492,7 +3498,7 @@
that
.
saveLoading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
that
.
CopyTripAndFeatureMsg
.
updateType
==
1
)
{
that
.
Success
(
that
.
$t
(
"objFill.v101.fuzhixingccg"
)
+
res
.
data
.
message
);
that
.
Success
(
that
.
$t
(
"objFill.v101.fuzhixingccg"
)
+
res
.
data
.
message
);
}
else
{
that
.
Success
(
res
.
data
.
message
);
}
...
...
src/components/TravelManager/TravelList/TravelControlListSale.vue
View file @
37fb367e
...
...
@@ -541,7 +541,7 @@
<span>
{{$t('Operation.Op_teamNotice')}}
</span>
{{item.OutNotice==1?"OK":$t('visa.v_zanding')}}
</p>
<p
class=
"travelnowrap"
v-if=
"item.IsSetOut == 0"
>
<p
class=
"travelnowrap"
v-if=
"item.IsSetOut == 0"
>
<span
style=
"color: blue"
>
{{ $t("objFill.zhengchangft") }}
</span>
</p>
<p
class=
"travelnowrap"
v-if=
"item.IsSetOut == 1"
>
...
...
@@ -718,6 +718,12 @@
v-if=
"item.OrderLeaderGuestNum>=1"
>
+{{item.OrderLeaderGuestNum}}
</span>
{{$t('hotel.hotel_people')}}
</i>
</p>
<p>
<span>
已收订
</span>
<i>
<span
class=
"TCL-redType"
>
{{ item.DJNum }}
</span>
{{ $t("Operation.Op_people") }}
</i>
</p>
<p>
<span>
{{$t('Operation.Op_takeSeat')}}
</span>
<i>
{{item.Occupied}}
</i>
{{$t('hotel.hotel_people')}}
...
...
@@ -1079,7 +1085,7 @@
<el-dropdown-item
@
click
.
native=
'reSubmit(item)'
v-if=
"item.AuditStatus==3"
>
{{$t('objFill.v101.chongxtjshe')}}
</el-dropdown-item>
<el-dropdown-item
v-if=
"item.IsSetOut == 0"
>
<el-dropdown-item
v-if=
"item.IsSetOut == 0"
>
<div
@
click=
"setIsSetOutOffer(item, 1)"
>
{{ $t("objFill.quxiaofatuan") }}
</div>
...
...
src/components/activity/CouponAllDetail.vue
0 → 100644
View file @
37fb367e
<
style
>
</
style
>
<
template
>
<div
class=
"flexOne page-CouponDetail"
>
<div
class=
"query-box"
>
<ul
class=
"user_time_picker"
>
<li>
<span>
<em>
{{
$t
(
'objFill.v102.fafangkeix'
)
}}
</em>
<el-select
filterable
v-model=
"msg.CustomerType"
@
change=
"getDropDowmCoupon();getList()"
>
<el-option
:label=
"$t('Operation.Op_fellow')"
value=
"0"
></el-option>
<el-option
:label=
"$t('Operation.Op_direct')"
value=
"1"
></el-option>
</el-select>
</span>
</li>
<li
v-if=
"S_CheckAllOrder"
>
<span>
<em>
{{
$t
(
'system.table_company'
)
}}
</em>
<el-select
filterable
:disabled=
"msg.IsParentCompany==2"
v-model=
"msg.BrandId"
>
<el-option
:label=
"$t('system.ph_buxian')"
value=
"-1"
></el-option>
<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-input
v-model=
"msg.CustomerKey"
@
keyup
.
enter
.
native=
"getList"
></el-input>
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'active.cl_couponName'
)
}}
</em>
<el-select
filterable
v-model=
"msg.CouponId"
>
<el-option
:label=
"$t('pub.pleaseSel')"
value=
"0"
></el-option>
<el-option
v-for=
"item in CouponList"
:key=
"item.id"
:label=
"item.couponsName"
:value=
"item.id"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'admin.admin_status'
)
}}
</em>
<el-select
filterable
v-model=
"msg.UseState"
>
<el-option
:label=
"$t('pub.pleaseSel')"
value=
"0"
></el-option>
<el-option
:label=
"$t('active.cl_wsyong')"
value=
"1"
></el-option>
<el-option
:label=
"$t('active.cl_ysyong')"
value=
"2"
></el-option>
<el-option
:label=
"$t('active.cl_yzfei')"
value=
"3"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
领取时间
</em>
<el-date-picker
class=
"h34"
v-model=
"AcessDate"
@
change=
"timeAdd(1)"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</span>
</li>
<li>
<span>
<em>
使用时间
</em>
<el-date-picker
class=
"h34"
v-model=
"UseDate"
@
change=
"timeAdd(1)"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</span>
</li>
<li>
<span>
<em>
过期时间
</em>
<el-date-picker
class=
"h34"
v-model=
"ExpirationDate"
@
change=
"timeAdd(1)"
type=
"daterange"
value-format=
"yyyy-MM-dd"
>
</el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"resetPageIndex(),getList()"
>
</li>
</ul>
</div>
<div
class=
"clearfix"
></div>
<div
style=
"margin: 10px 0;"
class=
"fz14 color333"
>
领取总数:
<span
class=
"colorE95252"
>
{{
CountData
.
allCount
}}
</span>
已使用数:
<span
class=
"colorE95252"
>
{{
CountData
.
allUCount
}}
</span>
未使用数:
<span
class=
"colorE95252"
>
{{
CountData
.
allNCount
}}
</span>
作废数:
<span
class=
"colorE95252"
>
{{
CountData
.
allFCount
}}
</span>
</div>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<th>
客户名称
</th>
<th>
关联销售
</th>
<th>
优惠卷名称
</th>
<th>
优惠内容
</th>
<th>
使用状态
</th>
<th>
领取时间
</th>
<th>
过期时间
</th>
<th>
使用时间
</th>
<th>
关联订单
</th>
</tr>
<tbody
v-loading=
"loading"
>
<tr
v-for=
"(item,index) in DataList"
:key=
"index"
>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.contact+item.contactNumber"
placement=
"top-start"
>
<span>
{{
item
.
userName
}}
</span>
</el-tooltip></td>
<td>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.allSaleName"
placement=
"top-start"
>
<span>
{{
item
.
saleName
}}
</span>
</el-tooltip></td>
<td>
{{
item
.
couponsName
}}
</td>
<td>
{{
item
.
couponsType
==
1
?(
"满"
+
item
.
useCondition
+
"元减"
+
item
.
denomination
+
"元"
):(
"满"
+
item
.
useCondition
+
"打"
+
item
.
denomination
+
"折"
)
}}
</td>
<td>
<span
v-if=
"item.useState == 1"
style=
"color: green"
>
{{
$t
(
'active.cl_wsyong'
)
}}
</span>
<span
v-if=
"item.useState == 2"
style=
"color: gary"
>
{{
$t
(
'active.cl_ysyong'
)
}}
</span>
<span
v-if=
"item.useState == 3"
style=
"color: red"
>
{{
$t
(
'active.cl_yzfei'
)
}}
</span>
</td>
<td>
{{
item
.
acessDate
}}
</td>
<td>
{{
item
.
effectDate
}}
至
{{
item
.
expirationDate
}}
</td>
<td>
{{
item
.
useDate
?
item
.
useDate
:
$t
(
'active.cl_wsyong'
)
}}
</td>
<td>
<span
v-if=
"item.orderId === 0"
>
{{
$t
(
'active.cl_zanwu'
)
}}
</span>
<span
v-else
>
{{
item
.
orderId
}}
</span>
</td>
</tr>
</tbody>
</table>
<div
class=
"noDataNotice"
v-if=
"DataList.length
<1
"
>
<i
class=
"iconfont icon-kong"
></i>
<p>
{{
$t
(
'active.ld_noData'
)
}}
</p>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
v-if=
"DataList.length>0"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
></el-pagination>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
DataList
:
[],
AcessDate
:
[],
UseDate
:
[],
ExpirationDate
:
[],
S_CheckAllOrder
:
false
,
msg
:
{
pageIndex
:
1
,
pageSize
:
15
,
CouponId
:
"0"
,
UseState
:
"0"
,
CustomerType
:
"0"
,
BrandId
:
"-1"
,
CustomerKey
:
""
,
SAcessDate
:
""
,
EAcessDate
:
""
,
SUseDate
:
""
,
EUseDate
:
""
,
SExpirationDate
:
""
,
EExpirationDate
:
""
},
CouponList
:[],
//下拉优惠券
companyList
:
[],
currentPage
:
1
,
total
:
0
,
CountData
:{},
};
},
created
()
{
// this.msg.couponId = this.$route.query.couponId
//this.msg.UseState = this.$route.query.UseState
},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
ActionMenuCode
=
userInfo
.
ActionMenuCode
;
if
(
ActionMenuCode
.
indexOf
(
'S_CheckAllOrder'
)
!=
-
1
)
{
this
.
S_CheckAllOrder
=
true
}
if
(
!
this
.
S_CheckAllOrder
)
{
this
.
msg
.
BrandId
=
userInfo
.
RB_Branch_id
}
this
.
getDropDowmCoupon
();
this
.
getCompany
();
this
.
getList
();
this
.
getCountList
();
},
methods
:
{
timeAdd
(
t
)
{
// 日期格式
if
(
t
==
1
)
{
//领取时间
if
(
!
this
.
AcessDate
)
{
this
.
msg
.
SAcessDate
=
''
;
this
.
msg
.
EAcessDate
=
''
;
return
}
this
.
msg
.
SAcessDate
=
this
.
AcessDate
[
0
];
this
.
msg
.
EAcessDate
=
this
.
AcessDate
[
1
];
}
if
(
t
==
2
)
{
//使用时间
if
(
!
this
.
UseDate
)
{
this
.
SUseDate
=
''
;
this
.
EUseDate
=
''
;
return
}
this
.
SUseDate
=
this
.
UseDate
[
0
];
this
.
EUseDate
=
this
.
UseDate
[
1
];
}
if
(
t
==
3
)
{
//有效期
if
(
!
this
.
ExpirationDate
)
{
this
.
msg
.
SExpirationDate
=
''
;
this
.
msg
.
EExpirationDate
=
''
;
return
}
this
.
msg
.
SExpirationDate
=
this
.
ExpirationDate
[
0
];
this
.
msg
.
EExpirationDate
=
this
.
ExpirationDate
[
1
];
}
},
getCountList
()
{
//获取数据
this
.
loading
=
true
;
this
.
apipost
(
"coupon_post_GetUserCouponCountList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
CountData
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
}
);
},
getList
()
{
//获取数据
this
.
loading
=
true
;
this
.
apipost
(
"coupon_post_GetUserCouponPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
DataList
=
res
.
data
.
data
.
pageData
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
}
);
},
getCompany
()
{
this
.
apipost
(
"admin_get_BranchGetList"
,
this
.
getCompanyMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
layerCompanyList
=
res
.
data
.
data
;
this
.
companyList
=
res
.
data
.
data
;
}
}
);
},
getDropDowmCoupon
()
{
this
.
apipost
(
"coupon_post_GetDropDowmList"
,
{
"CouponsName"
:
""
,
"BranchId"
:
-
1
,
"CustomerType"
:
this
.
msg
.
CustomerType
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
CouponList
=
res
.
data
.
data
;
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
this
.
msg
.
CouponId
=
"0"
;
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
}
};
</
script
>
src/components/rank/dataCount.vue
View file @
37fb367e
<
template
>
<div
class=
"full-box"
>
<div
class=
"data-box"
style=
"padding-bottom: 20px
;
"
>
<div
class=
"row items-center"
style=
"margin-bottom: 20px
;
"
>
<div
class=
"data-box"
style=
"padding-bottom: 20px"
>
<div
class=
"row items-center"
style=
"margin-bottom: 20px"
>
<div
class=
"page-title col"
>
平台数据
</div>
<div
class=
"row items-center"
>
<el-select
v-model=
"parameters.CusType"
style=
"width:100px; margin-right: 20px;height:40px"
@
change=
"handleDateChange()"
>
<el-option
v-for=
"(x,i) in platforms"
:key=
"i"
:label=
"x.Name"
:value=
"x.Id"
></el-option>
<el-select
v-model=
"parameters.CusType"
style=
"width: 100px; margin-right: 20px; height: 40px"
@
change=
"handleDateChange()"
>
<el-option
v-for=
"(x, i) in platforms"
:key=
"i"
:label=
"x.Name"
:value=
"x.Id"
></el-option>
</el-select>
<template
v-if=
"userInfo.RB_Branch_id==0||userInfo.RB_Branch_id==49"
>
<template
v-if=
"userInfo.RB_Branch_id == 0 || userInfo.RB_Branch_id == 49"
>
<el-select
v-model=
"parameters.branchId"
style=
"margin-right: 20px;height:40px"
@
change=
"getDepartment(),parameters.RB_Department_Id=null,getEmpList(),parameters.empIdList=[],handleDateChange()"
style=
"margin-right: 20px; height: 40px"
@
change=
"
getDepartment(),
(parameters.RB_Department_Id = null),
getEmpList(),
(parameters.empIdList = []),
handleDateChange()
"
>
<el-option
v-for=
"(x, i) in branchs"
...
...
@@ -21,11 +38,19 @@
></el-option>
</el-select>
</
template
>
<treeselect
style=
"margin-right: 20px;width:200px;"
class=
"radius-input"
:options=
"departmentList"
v-model=
"parameters.RB_Department_Id"
:label=
"$t('pub.unlimitedSel')"
:normalizer=
"normalizer"
@
select=
"changeDepart"
placeholder=
"请选择部门"
/>
<treeselect
style=
"margin-right: 20px; width: 200px"
class=
"radius-input"
:options=
"departmentList"
v-model=
"parameters.RB_Department_Id"
:label=
"$t('pub.unlimitedSel')"
:normalizer=
"normalizer"
@
select=
"changeDepart"
placeholder=
"请选择部门"
/>
<el-select
v-model=
"parameters.empId"
style=
"margin-right: 20px;
height: 40px;
"
style=
"margin-right: 20px;
height: 40px
"
@
change=
"handleDateChange()"
filterable
clearable
...
...
@@ -38,7 +63,7 @@
:value=
"x.empId"
></el-option>
</el-select>
<el-date-picker
v-model=
"parameters.dateRange"
type=
"daterange"
...
...
@@ -66,9 +91,9 @@
{{ x.title }}
</div>
</div>
<div
class=
"sub-title q-my-md"
>
今日实时数据
</div>
<div
class=
"sub-title q-my-md"
>
今日实时数据
</div>
<div
class=
"card rounded big"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
今日客户数据
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
...
...
@@ -78,24 +103,24 @@
<div
class=
"q-mt-md row items-center"
>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(1)"
>
<div>
客户总数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
style=
""
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
TotalCustomerCount
}}
</
template
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
TotalCustomerCount
}}
</
template
>
</span>
<span
></span>
<span></span>
<span>
个
</span>
</div>
<div
class=
"text-info"
>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;
height: 80%;
"
style=
"margin: 0 12px;
height: 80%
"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(2)"
>
<div>
今日新增客户
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
TodayCustomerCount
}}
...
...
@@ -107,22 +132,22 @@
<span>
较昨日
</span>
<
template
v-if=
"customerObj"
>
<template
v-if=
"customerObj.CustomerPercent > 0"
>
<span
class=
"green"
style=
"margin:
0 12px 0 5px;
"
>
<span
class=
"green"
style=
"margin:
0 12px 0 5px
"
>
{{
customerObj
.
CustomerPercent
}}
%
</span
>
</
template
>
<
template
v-else
>
<span
class=
"red"
style=
"margin-left: 5px
;
"
<span
class=
"red"
style=
"margin-left: 5px"
>
{{
customerObj
.
CustomerPercent
}}
%
</span
>
</
template
>
</template>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px
;
"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(3)"
>
<div>
小程序激活数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
TotalActivationCount
}}
...
...
@@ -133,10 +158,10 @@
<div
class=
"text-info"
>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px
;
"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(4)"
>
<div>
今日激活数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
><
template
v-if=
"customerObj"
>
{{
customerObj
.
TodayActivationCount
}}
...
...
@@ -148,12 +173,12 @@
<span>
较昨日
</span>
<
template
v-if=
"customerObj"
>
<template
v-if=
"customerObj.ActivationPrecent > 0"
>
<span
class=
"green"
style=
"margin:
0 12px 0 5px;
"
>
<span
class=
"green"
style=
"margin:
0 12px 0 5px
"
>
{{
customerObj
.
ActivationPrecent
}}
%
</span
>
</
template
>
<
template
v-else
>
<span
class=
"red"
style=
"margin-left: 5px
;
"
>
<span
class=
"red"
style=
"margin-left: 5px"
>
{{
customerObj
.
ActivationPrecent
}}
%
</span
>
</
template
>
...
...
@@ -163,21 +188,25 @@
</div>
</div>
<div
class=
"card rounded big q-mt-md"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
客户数据走势
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
<span
class=
"text-info"
>
{{ parameters.dateRange.join("-") }}
</span>
</div>
</div>
<div
style=
"height: 320px;"
>
<Customer
:chartData=
"customerObj"
v-if=
"customerObj"
:cusType=
"parameters.CusType"
></Customer>
<div
style=
"height: 320px"
>
<Customer
:chartData=
"customerObj"
v-if=
"customerObj"
:cusType=
"parameters.CusType"
></Customer>
</div>
</div>
<div
class=
"sub-title q-my-md green"
>
交易核心数据
</div>
<div
class=
"card rounded big"
>
<div
class=
"row items-center"
>
<div
style=
"margin: 0 12px
;
"
class=
"col"
>
<div
style=
"margin: 0 12px"
class=
"col"
>
<div
class=
"sub-title"
>
客户交易数据
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
...
...
@@ -187,13 +216,14 @@
</div>
</div>
</div>
<div
class=
"q-mt-md row items-center"
>
<div
class=
"q-mt-md "
style=
"padding: 5px 10px;margin-bottom:12px;border-radius:10px;background:#EEE;color:#999;font-size:13px;display:inline-block"
>
全平台数据
</div>
<div
class=
"row items-center"
>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(5)"
>
<div>
交易金额
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalPreferPrice
}}
{{
customerObj
.
OrderTotalPreferPrice
}}
</
template
>
</span>
<span>
元
</span>
...
...
@@ -201,45 +231,96 @@
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;
height: 80%;
"
style=
"margin: 0 12px;
height: 80%
"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(6)"
>
<div>
收客人数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalGuestNum
}}
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalGuestNum
}}
</
template
>
</span>
<span>
人
</span>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px
;
"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(7)"
>
<div>
订单数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalCount
}}
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalCount
}}
</
template
>
</span>
<span>
个
</span>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
>
<div></div>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
</span>
<span></span>
</div>
</div>
</div>
<div
class=
"q-mt-md"
style=
"padding: 5px 10px;margin-bottom:12px;border-radius:10px;background:#EEE;color:#999;font-size:13px;display:inline-block"
>
{{parameters.CusType==0?"旅小友":"和平国旅优选"}}平台数据
</div>
<div
class=
"row items-center"
>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(5)"
>
<div>
小程序交易金额
</div>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalPreferPriceM
}}
</
template
>
</span>
<span>
元
</span>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px; height: 80%"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(6)"
>
<div>
小程序收客人数
</div>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalGuestNumeM
}}
</
template
>
</span>
<span>
人
</span>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(7)"
>
<div>
小程序订单数
</div>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalCounteM
}}
</
template
>
</span>
<span>
个
</span>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col NumCursorP"
@
click=
"goUrl(8)"
>
<div>
用券订单数
</div>
<div
class=
"num"
style=
"margin: 6px 0;"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalUseCoupinCount
}}
</
template
></span>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
<
template
v-if=
"customerObj"
>
{{
customerObj
.
OrderTotalUseCoupinCount
}}
</
template
></span
>
<span>
个
</span>
</div>
</div>
</div>
</div>
<div
class=
"card rounded big q-mt-md"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
交易趋势图
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
...
...
@@ -248,14 +329,18 @@
}}
</span>
</div>
</div>
<div
style=
"height: 320px;"
>
<Tradecount
:chartData=
"customerObj"
v-if=
"customerObj"
:cusType=
"parameters.CusType"
></Tradecount>
<div
style=
"height: 320px"
>
<Tradecount
:chartData=
"customerObj"
v-if=
"customerObj"
:cusType=
"parameters.CusType"
></Tradecount>
</div>
</div>
<div
class=
"sub-title q-my-md green"
>
访问核心数据
</div>
<div
class=
"card rounded big"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
用户活跃概况
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
...
...
@@ -267,7 +352,7 @@
<div
class=
"q-mt-md row items-center"
>
<div
class=
"data-items col"
>
<div>
小程序累计用户数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Visit_Total }}
</span>
<span>
人
</span>
</div>
...
...
@@ -276,9 +361,9 @@
<span
:class=
"{
red: baseWechatData.Visit_TotalYRate < 0,
green: baseWechatData.Visit_TotalYRate >= 0
green: baseWechatData.Visit_TotalYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_TotalYRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_TotalYRate }}%
</span
>
...
...
@@ -286,9 +371,9 @@
<span
:class=
"{
red: baseWechatData.Visit_TotalSRate < 0,
green: baseWechatData.Visit_TotalSRate >= 0
green: baseWechatData.Visit_TotalSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_TotalSRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_TotalSRate }}%
</span
>
...
...
@@ -296,11 +381,11 @@
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;
height: 80%;
"
style=
"margin: 0 12px;
height: 80%
"
></el-divider>
<div
class=
"data-items col"
>
<div>
日访问人数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Visit_UV }}
</span>
<span>
人
</span>
</div>
...
...
@@ -309,9 +394,9 @@
<span
:class=
"{
red: baseWechatData.Visit_UVYRate < 0,
green: baseWechatData.Visit_UVYRate >= 0
green: baseWechatData.Visit_UVYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_UVYRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_UVYRate }}%
</span
>
...
...
@@ -319,18 +404,18 @@
<span
:class=
"{
red: baseWechatData.Visit_UVSRate < 0,
green: baseWechatData.Visit_UVSRate >= 0
green: baseWechatData.Visit_UVSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_UVSRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_UVSRate }}%
</span
>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px
;
"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col"
>
<div>
日打开次数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Session_CNT }}
</span>
<span>
人
</span>
</div>
...
...
@@ -339,9 +424,9 @@
<span
:class=
"{
red: baseWechatData.Session_CNTYRate < 0,
green: baseWechatData.Session_CNTYRate >= 0
green: baseWechatData.Session_CNTYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Session_CNTYRate > 0 ? "+" : "" }}
{{ baseWechatData.Session_CNTYRate }}%
</span
>
...
...
@@ -349,19 +434,19 @@
<span
:class=
"{
red: baseWechatData.Session_CNTSRate < 0,
green: baseWechatData.Session_CNTSRate >= 0
green: baseWechatData.Session_CNTSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Session_CNTSRate > 0 ? "+" : "" }}
{{ baseWechatData.Session_CNTSRate }}%
</span
>
</div>
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px
;
"
></el-divider>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px"
></el-divider>
<div
class=
"data-items col"
>
<div>
日转发人数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Share_UV }}
</span>
<span>
人
</span>
</div>
...
...
@@ -370,9 +455,9 @@
<span
:class=
"{
red: baseWechatData.Share_UVYRate < 0,
green: baseWechatData.Share_UVYRate >= 0
green: baseWechatData.Share_UVYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Share_UVYRate > 0 ? "+" : "" }}
{{ baseWechatData.Share_UVYRate }}%
</span
>
...
...
@@ -380,9 +465,9 @@
<span
:class=
"{
red: baseWechatData.Share_UVSRate < 0,
green: baseWechatData.Share_UVSRate >= 0
green: baseWechatData.Share_UVSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Share_UVSRate > 0 ? "+" : "" }}
{{ baseWechatData.Share_UVSRate }}%
</span
>
...
...
@@ -392,17 +477,19 @@
</div>
<div
class=
"q-mt-md row items-center"
>
<div
class=
"card rounded big col q-mr-md"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
新增用户概况
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
<span
class=
"text-info"
>
数据更新:{{ parameters.dateRange[1] }}
</span>
<span
class=
"text-info"
>
数据更新:{{ parameters.dateRange[1] }}
</span
>
</div>
</div>
<div
class=
"q-mt-md row items-center"
>
<div
class=
"data-items col"
>
<div>
日新增用户
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Visit_UV_New }}
</span>
<span>
人
</span>
</div>
...
...
@@ -411,9 +498,9 @@
<span
:class=
"{
red: baseWechatData.Visit_UV_NewYRate < 0,
green: baseWechatData.Visit_UV_NewYRate >= 0
green: baseWechatData.Visit_UV_NewYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_UV_NewYRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_UV_NewYRate }}%
</span
>
...
...
@@ -421,9 +508,9 @@
<span
:class=
"{
red: baseWechatData.Visit_UV_NewSRate < 0,
green: baseWechatData.Visit_UV_NewSRate >= 0
green: baseWechatData.Visit_UV_NewSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Visit_UV_NewSRate > 0 ? "+" : "" }}
{{ baseWechatData.Visit_UV_NewSRate }}%
</span
>
...
...
@@ -431,11 +518,11 @@
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;
height: 80%;
"
style=
"margin: 0 12px;
height: 80%
"
></el-divider>
<div
class=
"data-items col"
>
<div>
人均停留时长
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.Stay_Time_UV }}
</span>
<span>
秒
</span>
</div>
...
...
@@ -444,9 +531,9 @@
<span
:class=
"{
red: baseWechatData.Stay_Time_UVYRate < 0,
green: baseWechatData.Stay_Time_UVYRate >= 0
green: baseWechatData.Stay_Time_UVYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Stay_Time_UVYRate > 0 ? "+" : "" }}
{{ baseWechatData.Stay_Time_UVYRate }}%
</span
>
...
...
@@ -454,9 +541,9 @@
<span
:class=
"{
red: baseWechatData.Stay_Time_UVSRate < 0,
green: baseWechatData.Stay_Time_UVSRate >= 0
green: baseWechatData.Stay_Time_UVSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.Stay_Time_UVSRate > 0 ? "+" : "" }}
{{ baseWechatData.Stay_Time_UVSRate }}%
</span
>
...
...
@@ -465,7 +552,7 @@
</div>
</div>
<div
class=
"card rounded big col"
>
<div
style=
"margin: 0 12px
;
"
>
<div
style=
"margin: 0 12px"
>
<div
class=
"sub-title"
>
小程序留存概况
</div>
<div
class=
""
>
<span
class=
"dot"
></span>
...
...
@@ -477,7 +564,7 @@
<div
class=
"q-mt-md row items-center"
>
<div
class=
"data-items col"
>
<div>
新增用户留存
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.NewVisitUV }}
</span>
<span>
人
</span>
</div>
...
...
@@ -486,9 +573,9 @@
<span
:class=
"{
red: baseWechatData.NewVisitUVYRate < 0,
green: baseWechatData.NewVisitUVYRate >= 0
green: baseWechatData.NewVisitUVYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.NewVisitUVYRate > 0 ? "+" : "" }}
{{ baseWechatData.NewVisitUVYRate }}%
</span
>
...
...
@@ -496,9 +583,9 @@
<span
:class=
"{
red: baseWechatData.NewVisitUVSRate < 0,
green: baseWechatData.NewVisitUVSRate >= 0
green: baseWechatData.NewVisitUVSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.NewVisitUVSRate > 0 ? "+" : "" }}
{{ baseWechatData.NewVisitUVSRate }}%
</span
>
...
...
@@ -506,11 +593,11 @@
</div>
<el-divider
direction=
"vertical"
style=
"margin: 0 12px;
height: 80%;
"
style=
"margin: 0 12px;
height: 80%
"
></el-divider>
<div
class=
"data-items col"
>
<div>
活跃用户留存数
</div>
<div
class=
"num"
style=
"margin: 6px 0
;
"
>
<div
class=
"num"
style=
"margin: 6px 0"
>
<span
class=
"datanum"
>
{{ baseWechatData.VisitUV }}
</span>
<span>
人
</span>
</div>
...
...
@@ -519,9 +606,9 @@
<span
:class=
"{
red: baseWechatData.VisitUVYRate < 0,
green: baseWechatData.VisitUVYRate >= 0
green: baseWechatData.VisitUVYRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.VisitUVYRate > 0 ? "+" : "" }}
{{ baseWechatData.VisitUVYRate }}%
</span
>
...
...
@@ -529,9 +616,9 @@
<span
:class=
"{
red: baseWechatData.VisitUVSRate < 0,
green: baseWechatData.VisitUVSRate >= 0
green: baseWechatData.VisitUVSRate >= 0
,
}"
style=
"margin:
0 12px 0 5px;
"
style=
"margin:
0 12px 0 5px
"
>
{{ baseWechatData.VisitUVSRate > 0 ? "+" : "" }}
{{ baseWechatData.VisitUVSRate }}%
</span
>
...
...
@@ -542,7 +629,7 @@
</div>
<div
class=
"card rounded big q-mt-md"
>
<div
style=
"margin: 0 12px
;
"
class=
"row items-center"
>
<div
style=
"margin: 0 12px"
class=
"row items-center"
>
<div
class=
"col"
>
<div
class=
"sub-title"
>
访问核心指标趋势
</div>
<div
class=
""
>
...
...
@@ -551,25 +638,37 @@
}}
</span>
</div>
</div>
<el-select
v-model=
"coreId"
style=
"width: 140px; text-align: right;"
@
change=
"formatCoreTrend()"
>
<el-select
v-model=
"coreId"
style=
"width: 140px; text-align: right"
@
change=
"formatCoreTrend()"
>
<el-option
v-for=
"(x, i) in coreLists"
:key=
"i"
:label=
"x.Name"
:value=
"x.Id"
></el-option>
</el-select>
</div>
<div
class=
"text-small q-my-md"
style=
"padding:0 12px;"
v-if=
"currentCoreObj"
>
平均:{{ currentCoreObj.avg }}{{ currentCoreObj.unit }}
</div>
<div
style=
"height: 320px; padding:0 12px"
>
<Coreview
:chart-data=
"currentCoreObj"
v-if=
"currentCoreObj"
></Coreview>
<div
class=
"text-small q-my-md"
style=
"padding: 0 12px"
v-if=
"currentCoreObj"
>
平均:{{ currentCoreObj.avg }}{{ currentCoreObj.unit }}
</div>
<div
style=
"height: 320px; padding: 0 12px"
>
<Coreview
:chart-data=
"currentCoreObj"
v-if=
"currentCoreObj"
></Coreview>
</div>
</div>
<div
class=
"q-mt-md row"
>
<div
class=
"card rounded big col"
>
<div
style=
"margin: 0 12px
;
"
class=
"row items-center"
>
<div
style=
"margin: 0 12px"
class=
"row items-center"
>
<div
class=
"col"
>
<div
class=
"sub-title"
>
页面访问Top10
</div>
<div
class=
""
>
...
...
@@ -578,7 +677,11 @@
}}
</span>
</div>
</div>
<el-select
v-model=
"metricsId"
style=
"width: 140px;"
@
change=
"formatPageData"
>
<el-select
v-model=
"metricsId"
style=
"width: 140px"
@
change=
"formatPageData"
>
<el-option
v-for=
"(x, i) in metrics"
:key=
"i"
...
...
@@ -587,12 +690,15 @@
></el-option>
</el-select>
</div>
<div
style=
"height: 320px; padding:0 12px;"
class=
"q-mt-md"
>
<Pagecount
:chart-data=
"currentPageObj"
v-if=
"currentPageObj"
></Pagecount>
<div
style=
"height: 320px; padding: 0 12px"
class=
"q-mt-md"
>
<Pagecount
:chart-data=
"currentPageObj"
v-if=
"currentPageObj"
></Pagecount>
</div>
</div>
<div
class=
"card rounded big col q-ml-md"
>
<div
style=
"margin: 0 12px
;
"
class=
"row items-center"
>
<div
style=
"margin: 0 12px"
class=
"row items-center"
>
<div
class=
"col"
>
<div
class=
"sub-title"
>
客户分布占比
</div>
<div
class=
""
>
...
...
@@ -601,7 +707,11 @@
}}
</span>
</div>
</div>
<el-select
v-model=
"areaId"
style=
"width: 140px;"
@
change=
"formatAreaData"
>
<el-select
v-model=
"areaId"
style=
"width: 140px"
@
change=
"formatAreaData"
>
<el-option
v-for=
"(x, i) in areas"
:key=
"i"
...
...
@@ -610,8 +720,11 @@
></el-option>
</el-select>
</div>
<div
style=
"height: 320px; padding:0 12px;"
class=
"q-mt-md"
>
<Citiescount
v-if=
"currentAreaObj"
:chart-data=
"currentAreaObj"
></Citiescount>
<div
style=
"height: 320px; padding: 0 12px"
class=
"q-mt-md"
>
<Citiescount
v-if=
"currentAreaObj"
:chart-data=
"currentAreaObj"
></Citiescount>
</div>
</div>
</div>
...
...
@@ -648,7 +761,7 @@ export default {
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
8
);
end
.
setTime
(
end
.
getTime
());
picker
.
$emit
(
"pick"
,
[
start
,
end
]);
}
}
,
},
{
text
:
"最近一个月"
,
...
...
@@ -658,7 +771,7 @@ export default {
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
31
);
end
.
setTime
(
end
.
getTime
());
picker
.
$emit
(
"pick"
,
[
start
,
end
]);
}
}
,
},
{
text
:
"最近三个月"
,
...
...
@@ -668,30 +781,30 @@ export default {
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
91
);
end
.
setTime
(
end
.
getTime
());
picker
.
$emit
(
"pick"
,
[
start
,
end
]);
}
}
}
,
}
,
],
disabledDate
(
time
)
{
return
time
.
getTime
()
>
new
Date
(
Date
.
now
()
);
}
return
time
.
getTime
()
>
new
Date
(
Date
.
now
());
}
,
},
menus
:
[
{
title
:
"客户数据"
,
path
:
"coreData"
path
:
"coreData"
,
},
{
title
:
"交易数据"
,
path
:
"realTimeData"
path
:
"realTimeData"
,
},
{
title
:
"访问分析"
,
path
:
"accessAnalysis"
path
:
"accessAnalysis"
,
},
{
title
:
"产品统计"
,
path
:
"productStatistics"
}
path
:
"productStatistics"
,
}
,
],
branchs
:
[],
parameters
:
{
...
...
@@ -699,10 +812,10 @@ export default {
dateRange
:
[],
StartDate
:
""
,
EndDate
:
""
,
RB_Department_Id
:
null
,
empIdList
:[],
empId
:
""
,
CusType
:
0
,
//客户类型(0-同行(旅小友小程序),1-直客(和平国旅小程序))
RB_Department_Id
:
null
,
empIdList
:
[],
empId
:
""
,
CusType
:
0
,
//客户类型(0-同行(旅小友小程序),1-直客(和平国旅小程序))
},
normalizer
(
node
)
{
var
obj
=
{
...
...
@@ -714,75 +827,75 @@ export default {
}
return
obj
;
},
departmentList
:
[],
//部门列表
empList
:
[],
//员工列表
departmentList
:
[],
//部门列表
empList
:
[],
//员工列表
coreId
:
1
,
coreLists
:
[
{
Id
:
1
,
value
:
"Visit_Total"
,
Name
:
"累计用户数"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
2
,
value
:
"Visit_UV"
,
value
:
"Visit_UV"
,
Name
:
"日访问人数"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
3
,
value
:
"Session_CNT"
,
Name
:
"日打开次数"
,
Unit
:
'次'
Unit
:
"次"
,
},
{
Id
:
4
,
value
:
"Share_UV"
,
Name
:
"转发人数"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
5
,
value
:
"Visit_UV_New"
,
Name
:
"日新增用户"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
9
,
value
:
"VisitUV"
,
Name
:
"活跃日留存"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
10
,
value
:
"NewVisitUV"
,
Name
:
"新增日留存"
,
Unit
:
'人'
Unit
:
"人"
,
},
{
Id
:
11
,
value
:
"Stay_Time_UV"
,
Name
:
"人均停留时长"
,
Unit
:
'秒'
Unit
:
"秒"
,
},
{
Id
:
12
,
value
:
"Share_UV"
,
Name
:
"转发次数"
,
Unit
:
'次'
Unit
:
"次"
,
},
{
Id
:
13
,
value
:
"Visit_Depth"
,
Name
:
"平均访问深度"
,
Unit
:
'层'
Unit
:
"层"
,
},
{
Id
:
14
,
value
:
"Stay_Time_Session"
,
Name
:
"次均停留时长"
,
Unit
:
'秒'
Unit
:
"秒"
,
},
],
metrics
:
[
...
...
@@ -790,86 +903,85 @@ export default {
id
:
1
,
name
:
"访问次数"
,
value
:
"PageVisitPV"
,
unit
:
'次'
unit
:
"次"
,
},
{
id
:
2
,
name
:
"访问人数"
,
value
:
'PageVisitUV'
,
unit
:
'人'
value
:
"PageVisitUV"
,
unit
:
"人"
,
},
{
id
:
3
,
name
:
"次均停留时长"
,
value
:
"PageStaytimePv"
,
unit
:
'秒'
unit
:
"秒"
,
},
{
id
:
4
,
name
:
"进入页次数"
,
value
:
'EntrypagePv'
,
unit
:
'次'
value
:
"EntrypagePv"
,
unit
:
"次"
,
},
{
id
:
5
,
name
:
"退出页次数"
,
value
:
'ExitpagePv'
,
unit
:
'次'
value
:
"ExitpagePv"
,
unit
:
"次"
,
},
{
id
:
6
,
name
:
"转发次数"
,
value
:
'PageSharePv'
,
unit
:
'次'
value
:
"PageSharePv"
,
unit
:
"次"
,
},
{
id
:
7
,
name
:
"转发人数"
,
value
:
'PageShareUV'
,
unit
:
'人'
}
value
:
"PageShareUV"
,
unit
:
"人"
,
}
,
],
metricsId
:
2
,
areas
:
[
{
Id
:
1
,
Name
:
"省份"
,
Value
:
'province'
Value
:
"province"
,
},
{
Id
:
2
,
Name
:
"城市"
,
Value
:
'city'
}
Value
:
"city"
,
}
,
],
platforms
:
[
{
Id
:
0
,
Name
:
"同业"
Name
:
"同业"
,
},
{
Id
:
1
,
Name
:
"直客"
}
Name
:
"直客"
,
}
,
],
platformId
:
1
,
areaId
:
1
,
customerObj
:
null
,
baseWechatData
:
{},
trendData
:{},
currentCoreObj
:
null
,
pageData
:{},
currentPageObj
:
null
,
areaData
:{},
currentAreaObj
:
null
,
userInfo
:{},
trendData
:
{},
currentCoreObj
:
null
,
pageData
:
{},
currentPageObj
:
null
,
areaData
:
{},
currentAreaObj
:
null
,
userInfo
:
{},
};
},
created
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
&&
this
.
userInfo
.
RB_Branch_id
!=
49
)
{
this
.
parameters
.
branchId
=
this
.
userInfo
.
RB_Branch_id
;
this
.
userInfo
=
this
.
getLocalStorage
();
if
(
this
.
userInfo
.
RB_Branch_id
!=
0
&&
this
.
userInfo
.
RB_Branch_id
!=
49
)
{
this
.
parameters
.
branchId
=
this
.
userInfo
.
RB_Branch_id
;
}
this
.
getCompanyList
();
this
.
getDepartment
();
...
...
@@ -880,113 +992,110 @@ export default {
end
.
setTime
(
end
.
getTime
());
this
.
parameters
.
dateRange
=
[
start
.
toLocaleString
().
split
(
" "
)[
0
],
end
.
toLocaleString
().
split
(
" "
)[
0
]
end
.
toLocaleString
().
split
(
" "
)[
0
]
,
];
this
.
getHomeChat
();
this
.
getCustomerStatic
();
this
.
getPageData
()
this
.
getAreaData
()
this
.
getPageData
()
;
this
.
getAreaData
()
;
},
mounted
()
{},
methods
:
{
goUrl
(
type
)
{
if
(
this
.
parameters
.
CusType
==
1
&&
(
type
==
1
||
type
==
2
))
{
var
CStartTime
=
""
;
var
CEndDate
=
""
;
if
(
type
==
2
){
if
(
this
.
parameters
.
CusType
==
1
&&
(
type
==
1
||
type
==
2
))
{
var
CStartTime
=
""
;
var
CEndDate
=
""
;
if
(
type
==
2
)
{
// 创建当前日期对象
const
today
=
new
Date
();
// 获取年份、月份和日期,并补零处理
const
year
=
today
.
getFullYear
();
const
month
=
String
(
today
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
// 月份从0开始,需加1
const
day
=
String
(
today
.
getDate
()).
padStart
(
2
,
'0'
);
const
today
=
new
Date
();
// 获取年份、月份和日期,并补零处理
const
year
=
today
.
getFullYear
();
const
month
=
String
(
today
.
getMonth
()
+
1
).
padStart
(
2
,
"0"
);
// 月份从0开始,需加1
const
day
=
String
(
today
.
getDate
()).
padStart
(
2
,
"0"
);
// 组合成YYYY-MM-DD格式
const
formattedDate
=
`
${
year
}
/
${
month
}
/
${
day
}
`
;
// 组合成YYYY-MM-DD格式
const
formattedDate
=
`
${
year
}
/
${
month
}
/
${
day
}
`
;
console
.
log
(
this
.
parameters
.
dateRange
[
0
],
"66666"
);
// 输出例如:2023-10-05
var
CStartTime
=
formattedDate
;
//this.parameters.dateRange[0];
var
CEndDate
=
formattedDate
;
//this.parameters.dateRange[1];
console
.
log
(
this
.
parameters
.
dateRange
[
0
],
"66666"
);
// 输出例如:2023-10-05
var
CStartTime
=
formattedDate
;
//this.parameters.dateRange[0];
var
CEndDate
=
formattedDate
;
//this.parameters.dateRange[1];
}
let
query
=
{
CStartTime
:
CStartTime
,
CEndDate
:
CEndDate
,
// EnterTime:this.parameters,
BranchId
:
this
.
parameters
.
branchId
+
""
,
// RB_Department_Id:this.parameters.RB_Department_Id,
EnterID
:
this
.
parameters
.
empId
,
blank
:
"y"
,
};
this
.
OpenNewPage
(
"/directCustomerList"
,
query
);
}
else
{
let
query
=
{
CStartDate
:
this
.
parameters
.
dateRange
[
0
],
CEndDate
:
this
.
parameters
.
dateRange
[
1
],
BranchId
:
this
.
parameters
.
branchId
,
RB_Department_Id
:
this
.
parameters
.
RB_Department_Id
,
EmployeeId
:
this
.
parameters
.
empId
,
blank
:
"y"
,
};
if
(
this
.
parameters
.
CusType
==
0
)
{
this
.
OpenNewPage
(
"/salesVolumeRank"
,
query
);
}
let
query
=
{
CStartTime
:
CStartTime
,
CEndDate
:
CEndDate
,
// EnterTime:this.parameters,
BranchId
:
this
.
parameters
.
branchId
+
""
,
// RB_Department_Id:this.parameters.RB_Department_Id,
EnterID
:
this
.
parameters
.
empId
,
blank
:
"y"
,
}
this
.
OpenNewPage
(
'/directCustomerList'
,
query
);
}
else
{
let
query
=
{
CStartDate
:
this
.
parameters
.
dateRange
[
0
],
CEndDate
:
this
.
parameters
.
dateRange
[
1
],
BranchId
:
this
.
parameters
.
branchId
,
RB_Department_Id
:
this
.
parameters
.
RB_Department_Id
,
EmployeeId
:
this
.
parameters
.
empId
,
blank
:
"y"
,
}
if
(
this
.
parameters
.
CusType
==
0
){
this
.
OpenNewPage
(
'/salesVolumeRank'
,
query
);
}
}
},
changeDepart
(
node
,
instanceId
){
this
.
parameters
.
RB_Department_Id
=
node
.
DepartmentId
;
this
.
parameters
.
empIdList
=
[];
this
.
parameters
.
empId
=
""
;
changeDepart
(
node
,
instanceId
)
{
this
.
parameters
.
RB_Department_Id
=
node
.
DepartmentId
;
this
.
parameters
.
empIdList
=
[];
this
.
parameters
.
empId
=
""
;
this
.
getEmpList
();
this
.
handleDateChange
();
},
//获取部门列表
getDepartment
()
{
let
postMsg
=
{
RB_Group_Id
:
this
.
userInfo
.
RB_Group_id
,
RB_Branch_Id
:
"-1"
,
Status
:
"0"
,
};
this
.
departmentList
=
[];
postMsg
.
RB_Branch_Id
=
this
.
parameters
.
branchId
;
this
.
apipost
(
"admin_Get_GetDepartmentTreeForReceiveQuery"
,
postMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
departmentList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
});
getDepartment
()
{
let
postMsg
=
{
RB_Group_Id
:
this
.
userInfo
.
RB_Group_id
,
RB_Branch_Id
:
"-1"
,
Status
:
"0"
,
};
this
.
departmentList
=
[];
postMsg
.
RB_Branch_Id
=
this
.
parameters
.
branchId
;
this
.
apipost
(
"admin_Get_GetDepartmentTreeForReceiveQuery"
,
postMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
departmentList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
}
);
},
getEmpList
(){
this
.
empList
=
[];
let
userMsg
=
{
RB_Group_id
:
this
.
userInfo
.
RB_Group_id
,
RB_Branch_id
:
"-1"
,
departmentId
:
"0"
,
IsLeave
:
"-1"
,
};
if
(
this
.
parameters
.
RB_Department_Id
){
userMsg
.
departmentId
=
this
.
parameters
.
RB_Department_Id
;
getEmpList
()
{
this
.
empList
=
[];
let
userMsg
=
{
RB_Group_id
:
this
.
userInfo
.
RB_Group_id
,
RB_Branch_id
:
"-1"
,
departmentId
:
"0"
,
IsLeave
:
"-1"
,
};
if
(
this
.
parameters
.
RB_Department_Id
)
{
userMsg
.
departmentId
=
this
.
parameters
.
RB_Department_Id
;
}
userMsg
.
RB_Branch_id
=
this
.
parameters
.
branchId
;
this
.
apipost
(
"app_get_employeeInfo_v2"
,
userMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
empList
=
res
.
data
.
data
;
}
userMsg
.
RB_Branch_id
=
this
.
parameters
.
branchId
;
this
.
apipost
(
"app_get_employeeInfo_v2"
,
userMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
empList
=
res
.
data
.
data
;
}
});
});
},
handleDateChange
()
{
this
.
getCustomerStatic
();
this
.
getHomeChat
();
this
.
getPageData
()
this
.
getAreaData
()
this
.
getPageData
()
;
this
.
getAreaData
()
;
},
handleCompanyChange
()
{
this
.
getCustomerStatic
();
...
...
@@ -998,7 +1107,7 @@ console.log(this.parameters.dateRange[0],"66666"); // 输出例如:2023-10-05
this
.
parameters
.
EndDate
=
tempArray
[
1
];
}
var
that
=
this
;
that
.
apipost
(
"erp_post_GetCustomerStatic"
,
that
.
parameters
,
res
=>
{
that
.
apipost
(
"erp_post_GetCustomerStatic"
,
that
.
parameters
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
customerObj
=
res
.
data
.
data
;
}
else
{
...
...
@@ -1015,146 +1124,145 @@ console.log(this.parameters.dateRange[0],"66666"); // 输出例如:2023-10-05
const
msg
=
{
Status
:
0
,
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
RB_Group_Id
:
RB_Group_id
,
};
this
.
apipost
(
"admin_get_BranchGetList"
,
msg
,
res
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
branchs
=
[
{
Id
:
-
1
,
BName
:
"全部"
}
BName
:
"全部"
,
}
,
];
this
.
branchs
=
this
.
branchs
.
concat
(
res
.
data
.
data
);
}
},
err
=>
{}
(
err
)
=>
{}
);
},
getHomeChat
()
{
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
WechatType
:
this
.
parameters
.
CusType
,
};
this
.
apipost
(
"wechatstatistics_post_HomeWechatStatisticsList"
,
msg
,
res
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
baseWechatData
=
res
.
data
.
data
;
this
.
getTrendWechatData
()
this
.
getTrendWechatData
()
;
}
},
err
=>
{}
(
err
)
=>
{}
);
},
getTrendWechatData
(){
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
,
};
this
.
apipost
(
"wechatstatistics_post_WechatStatisticsList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
trendData
=
res
.
data
.
data
;
this
.
formatCoreTrend
()
}
},
err
=>
{}
);
getTrendWechatData
()
{
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
,
};
this
.
apipost
(
"wechatstatistics_post_WechatStatisticsList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
trendData
=
res
.
data
.
data
;
this
.
formatCoreTrend
();
}
},
(
err
)
=>
{}
);
},
getPageData
(){
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
};
this
.
apipost
(
"wechatstatistics_post_PageVisitStatisticsList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
pageData
=
res
.
data
.
data
;
this
.
formatPageData
()
}
},
err
=>
{}
);
getPageData
()
{
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
,
};
this
.
apipost
(
"wechatstatistics_post_PageVisitStatisticsList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
pageData
=
res
.
data
.
data
;
this
.
formatPageData
();
}
},
(
err
)
=>
{}
);
},
getAreaData
()
{
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
,
};
this
.
apipost
(
"wechatstatistics_post_UserPortraitStatisticsList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
areaData
=
res
.
data
.
data
;
this
.
formatAreaData
();
}
},
(
err
)
=>
{}
);
},
getAreaData
(){
const
msg
=
{
StartDate
:
this
.
parameters
.
dateRange
[
0
],
EndDate
:
this
.
parameters
.
dateRange
[
1
],
WechatType
:
this
.
parameters
.
CusType
formatAreaData
()
{
if
(
!
this
.
areaData
)
return
;
const
filed
=
this
.
areas
.
find
((
x
)
=>
x
.
Id
==
this
.
areaId
);
let
seriesData
=
this
.
areaData
[
filed
.
Value
].
map
((
x
)
=>
{
return
{
name
:
x
.
DateStr
,
value
:
x
.
UserPortraitValue
,
};
this
.
apipost
(
"wechatstatistics_post_UserPortraitStatisticsList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
areaData
=
res
.
data
.
data
;
this
.
formatAreaData
()
}
},
err
=>
{}
);
});
this
.
currentAreaObj
=
{
name
:
filed
.
Name
+
"分布占比"
,
pieData
:
seriesData
,
};
},
format
AreaData
()
{
if
(
!
this
.
areaData
)
return
const
filed
=
this
.
areas
.
find
(
x
=>
x
.
Id
==
this
.
areaId
)
let
seriesData
=
this
.
areaData
[
filed
.
Value
].
map
(
x
=>
{
return
{
name
:
x
.
DateStr
,
value
:
x
.
UserPortraitValue
}
})
this
.
currentAreaObj
=
{
name
:
filed
.
Name
+
"分布占比"
,
pieData
:
seriesData
}
format
PageData
()
{
if
(
!
this
.
pageData
)
return
;
const
filed
=
this
.
metrics
.
find
((
x
)
=>
x
.
id
==
this
.
metricsId
);
const
unit
=
filed
.
unit
;
let
xAxisData
=
this
.
pageData
[
filed
.
value
].
map
((
x
)
=>
x
.
DateStr
);
let
seriesData
=
this
.
pageData
[
filed
.
value
].
map
((
x
)
=>
x
[
filed
.
value
]);
this
.
currentPageObj
=
{
unit
:
unit
,
xAxisData
:
xAxisData
,
barData
:
{
name
:
filed
.
name
,
data
:
seriesData
,
}
,
};
},
formatPageData
(){
if
(
!
this
.
pageData
)
return
const
filed
=
this
.
metrics
.
find
(
x
=>
x
.
id
==
this
.
metricsId
)
const
unit
=
filed
.
unit
let
xAxisData
=
this
.
pageData
[
filed
.
value
].
map
(
x
=>
x
.
DateStr
)
let
seriesData
=
this
.
pageData
[
filed
.
value
].
map
(
x
=>
x
[
filed
.
value
])
this
.
currentPageObj
=
{
unit
:
unit
,
xAxisData
:
xAxisData
,
barData
:{
name
:
filed
.
name
,
data
:
seriesData
}
}
formatCoreTrend
()
{
if
(
!
this
.
trendData
)
return
;
const
filed
=
this
.
coreLists
.
find
((
x
)
=>
x
.
Id
==
this
.
coreId
);
const
avg
=
this
.
trendData
[
filed
.
value
];
const
unit
=
filed
.
Unit
;
const
xAxisData
=
this
.
trendData
.
List
.
map
((
x
)
=>
x
.
CreateDayStr
);
const
seriesData
=
this
.
trendData
.
List
.
map
((
x
)
=>
x
[
filed
.
value
]);
if
(
!
xAxisData
||
!
seriesData
)
return
;
this
.
currentCoreObj
=
{
avg
:
avg
,
unit
:
unit
,
xAxisData
:
xAxisData
,
lineData
:
{
name
:
filed
.
Name
,
data
:
seriesData
,
},
};
},
formatCoreTrend
(){
if
(
!
this
.
trendData
)
return
const
filed
=
this
.
coreLists
.
find
(
x
=>
x
.
Id
==
this
.
coreId
)
const
avg
=
this
.
trendData
[
filed
.
value
]
const
unit
=
filed
.
Unit
const
xAxisData
=
this
.
trendData
.
List
.
map
(
x
=>
x
.
CreateDayStr
)
const
seriesData
=
this
.
trendData
.
List
.
map
(
x
=>
x
[
filed
.
value
])
if
(
!
xAxisData
||
!
seriesData
)
return
this
.
currentCoreObj
=
{
avg
:
avg
,
unit
:
unit
,
xAxisData
:
xAxisData
,
lineData
:{
name
:
filed
.
Name
,
data
:
seriesData
}
}
}
}
},
};
</
script
>
<
style
>
...
...
@@ -1337,14 +1445,13 @@ console.log(this.parameters.dateRange[0],"66666"); // 输出例如:2023-10-05
color
:
rgba
(
0
,
0
,
0
,
0.9
)
!important
;
font-weight
:
bolder
;
}
.radius-input
.vue-treeselect__control
{
.radius-input
.vue-treeselect__control
{
height
:
40px
;
border-radius
:
12px
!important
;
border
:
none
!important
;
border
:
none
!important
;
overflow
:
hidden
;
}
.radius-input
.vue-treeselect__single-value
{
.radius-input
.vue-treeselect__single-value
{
height
:
40px
;
line-height
:
40px
;
}
...
...
src/router/config.js
View file @
37fb367e
...
...
@@ -5818,6 +5818,14 @@ export default {
title
:
'优惠券发放列表'
}
},
{
path
:
'/CouponAllDetail'
,
name
:
'CouponAllDetail'
,
component
:
resolve
=>
require
([
'@/components/activity/CouponAllDetail'
],
resolve
),
meta
:
{
title
:
'优惠券发放统计列表'
}
},
{
path
:
'/LuckyDraw'
,
name
:
'LuckyDraw'
,
...
...
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