Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
135f8863
Commit
135f8863
authored
Mar 15, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增页面
parent
5e122e6a
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
2548 additions
and
1705 deletions
+2548
-1705
sale.js
src/api/sale/sale.js
+32
-2
companyYear.vue
src/pages/sale/companyYear.vue
+104
-0
companyYearFirst.vue
src/pages/sale/companyYearFirst.vue
+122
-0
companymonth.vue
src/pages/sale/companymonth.vue
+41
-0
companymonthFirst.vue
src/pages/sale/companymonthFirst.vue
+289
-0
companymonthSecond.vue
src/pages/sale/companymonthSecond.vue
+247
-0
routes.js
src/router/routes.js
+1713
-1703
No files found.
src/api/sale/sale.js
View file @
135f8863
...
...
@@ -595,11 +595,41 @@ export function GetStudentCompany(data) {
}
//全公司每月统计数据
export
function
GetStudentCompanyMonth
(
data
)
{
return
request
({
url
:
'/StudentStat/GetStudentCompanyMonth'
,
method
:
'post'
,
data
});
}
//全公司每月成长率数据
export
function
GetStudentCompanyRateMonth
(
data
)
{
return
request
({
url
:
'/StudentStat/GetStudentCompanyRateMonth'
,
method
:
'post'
,
data
});
}
//全公司年度数据统计
export
function
GetStudentCompanyYear
(
data
)
{
return
request
({
url
:
'/StudentStat/GetStudentCompanyYear'
,
method
:
'post'
,
data
});
}
//全公司年度成长率统计
export
function
GetStudentCompanyYearRate
(
data
)
{
return
request
({
url
:
'/StudentStat/GetStudentCompanyYearRate'
,
method
:
'post'
,
data
});
}
src/pages/sale/companyYear.vue
0 → 100644
View file @
135f8863
<
template
>
<div
class=
"page-body"
>
<q-tabs
v-model=
"tabCheck"
@
input=
"getList"
narrow-indicator
dense
align=
"left"
class=
"text-primary q-mb-sm"
>
<q-tab
:ripple=
"false"
:name=
"1"
label=
"年份统计"
/>
<q-tab
:ripple=
"false"
:name=
"2"
label=
"成长率"
/>
</q-tabs>
<div
class=
"col row wrap q-mb-lg"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
style=
"display:none;"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
label=
"下载"
@
click=
"downloadStudentStaticYear"
/>
</div>
</div>
<companyYearFirst
:dataList=
"dataList"
:tabCheck=
"companyYearFirst"
>
</companyYearFirst>
</div>
</template>
<
script
>
import
{
EduDownLoad
}
from
"../../api/common/common"
;
import
companyYearFirst
from
'../sale/companyYearFirst'
;
import
{
GetStudentCompanyYear
,
GetStudentCompanyYearRate
}
from
'../../api/sale/sale'
;
export
default
{
props
:
{},
meta
:
{
title
:
"公司年度数据统计"
},
components
:
{
companyYearFirst
},
data
()
{
return
{
tabCheck
:
1
,
dataList
:
[],
msg
:
{
YearStr
:
''
,
rowsPerPage
:
0
}
}
},
created
()
{
},
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
getList
();
},
methods
:
{
//下载文件
downloadStudentStaticYear
()
{
this
.
loading
=
true
;
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
var
url
=
"/StudentStat/DownLoadStudentCompanyYear"
;
var
fileName
=
"公司年数据统计.xls"
;
if
(
this
.
tabCheck
==
2
)
{
url
=
"/StudentStat/DownLoadStudentCompanyYearRate"
;
fileName
=
"公司年成长率数据统计.xls"
;
}
EduDownLoad
(
url
,
msg
,
fileName
,
res
=>
{
this
.
loading
=
false
;
}
);
},
//获取数据
getList
()
{
if
(
this
.
tabCheck
==
1
)
{
this
.
loading
=
true
;
GetStudentCompanyYear
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
;
}
})
}
else
{
this
.
loading
=
true
;
GetStudentCompanyYearRate
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
;
}
})
}
}
}
}
</
script
>
\ No newline at end of file
src/pages/sale/companyYearFirst.vue
0 → 100644
View file @
135f8863
<
style
>
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.zk_Table
thead
tr
:last-child
th
{
top
:
35px
!important
;
z-index
:
1
!important
;
}
.zk_Table
thead
tr
{
height
:
35px
;
}
</
style
>
<
template
>
<div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
ref=
"table"
:loading=
"loading"
:style=
"
{'height':tableHeight+'px'}"
no-data-label="暂无相关数据" flat class="sticky-header-column-table no-bottom-table zk_Table"
separator="none" :data="dataList" :columns="columns" row-key="">
<tr
slot=
"header"
>
<q-th
rowspan=
"2"
style=
"text-align:left;width:300px;"
>
名称
</q-th>
<q-th
colspan=
"2"
>
年份
</q-th>
<q-th
rowspan=
"2"
>
成长率
</q-th>
</tr>
<tr
slot=
"header"
>
<q-th>
<span
v-if=
"dataList&&dataList.length>0"
>
{{
dataList
[
0
].
FirstYearStr
}}
</span>
</q-th>
<q-th>
<span
v-if=
"dataList&&dataList.length>0"
>
{{
dataList
[
0
].
SecondYearStr
}}
</span>
</q-th>
</tr>
<template
v-slot:body-cell-FirstYear=
"props"
v-if=
"tabCheck==2"
>
<q-td
style=
"text-align:center;"
>
<span
:class=
"
{'TotalredClass':props.row.FirstYear
<0
}"
>
{{
props
.
row
.
FirstYear
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-SecondYear=
"props"
v-if=
"tabCheck==2"
>
<q-td
style=
"text-align:center;"
>
<span
:class=
"
{'TotalredClass':props.row.SecondYear
<0
}"
>
{{
props
.
row
.
SecondYear
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-YearRate=
"props"
>
<q-td
style=
"text-align:center;"
>
<span
:class=
"
{'TotalredClass':props.row.YearRate
<0
}"
>
{{
props
.
row
.
YearRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
</
template
>
</q-table>
</div>
</div>
</template>
<
script
>
export
default
{
props
:
{
dataList
:
{
type
:
Array
,
default
:
null
},
tabCheck
:
{
type
:
Number
,
default
:
null
}
},
meta
:
{
title
:
"公司年度数据统计"
},
components
:
{},
data
()
{
return
{
columns
:
[{
name
:
'ItemName'
,
label
:
'名称'
,
field
:
'ItemName'
,
align
:
'left'
},
{
name
:
'FirstYear'
,
label
:
'第一条'
,
field
:
'FirstYear'
,
align
:
'center'
},
{
name
:
'SecondYear'
,
label
:
'第二条'
,
field
:
'SecondYear'
,
align
:
'center'
,
},
{
name
:
'YearRate'
,
label
:
'成长率'
,
field
:
'YearRate'
,
align
:
'center'
,
}
],
loading
:
false
,
msg
:{
rowsPerPage
:
0
},
tableHeight
:
500
,
}
},
created
()
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
90
;
},
100
)
},
mounted
()
{
},
methods
:
{
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
src/pages/sale/companymonth.vue
0 → 100644
View file @
135f8863
<
template
>
<div
class=
"page-body"
>
<q-tabs
v-model=
"tabCheck"
narrow-indicator
dense
align=
"left"
class=
"text-primary q-mb-sm"
>
<q-tab
:ripple=
"false"
:name=
"1"
label=
"月份统计"
/>
<q-tab
:ripple=
"false"
:name=
"2"
label=
"成长率"
/>
</q-tabs>
<template
v-if=
"tabCheck==1"
>
<companymonthFirst></companymonthFirst>
</
template
>
<
template
v-if=
"tabCheck==2"
>
<companymonthSecond></companymonthSecond>
</
template
>
</div>
</template>
<
script
>
import
companymonthFirst
from
'../sale/companymonthFirst'
;
import
companymonthSecond
from
'../sale/companymonthSecond'
;
export
default
{
props
:
{},
meta
:
{
title
:
"全公司月度数据统计"
},
components
:
{
companymonthFirst
,
companymonthSecond
},
data
()
{
return
{
tabCheck
:
1
,
}
},
created
()
{
},
mounted
()
{},
methods
:
{
}
}
</
script
>
src/pages/sale/companymonthFirst.vue
0 → 100644
View file @
135f8863
<
style
>
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
</
style
>
<
template
>
<div>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
@
click=
"downloadStudentCompanyMonth"
label=
"下载"
/>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
ref=
"table"
:loading=
"loading"
:style=
"{'height':tableHeight+'px'}"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table sticky-header-column-table no-bottom-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
""
>
<
template
v-slot:bottom
>
</
template
>
</q-table>
</div>
</div>
</template>
<
script
>
import
{
GetStudentCompanyMonth
}
from
'../../api/sale/sale'
;
import
{
EduDownLoad
}
from
"../../api/common/common"
;
export
default
{
props
:
{},
meta
:
{
title
:
"全公司月度数据统计"
},
components
:
{},
data
()
{
return
{
columns
:
[{
name
:
'DateStr'
,
label
:
'日期'
,
field
:
'DateStr'
,
align
:
'left'
},
{
name
:
'PushCount'
,
label
:
'推送人数'
,
field
:
'PushCount'
,
align
:
'left'
},
{
name
:
'NewCount'
,
label
:
'新客户'
,
field
:
'NewCount'
,
align
:
'left'
,
},
{
name
:
'CommunicationCount'
,
label
:
'初步沟通(二次沟通)'
,
field
:
'CommunicationCount'
,
align
:
'left'
,
},
{
name
:
'TrialLessonCount'
,
label
:
'预约试听(已到店,已试听)'
,
field
:
'TrialLessonCount'
,
align
:
'left'
},
{
name
:
'NotContacted'
,
label
:
'待联系'
,
field
:
'NotContacted'
,
align
:
'left'
},
{
name
:
'JPCount'
,
label
:
'日本语培'
,
field
:
'JPCount'
,
align
:
'left'
},
{
name
:
'KRCount'
,
label
:
'韩国语培'
,
field
:
'KRCount'
,
align
:
'left'
},
{
name
:
'FRCount'
,
label
:
'法国语培'
,
field
:
'FRCount'
,
align
:
'left'
},
{
name
:
'JPStudyCount'
,
label
:
'日本留学'
,
field
:
'JPStudyCount'
,
align
:
'left'
},
{
name
:
'KRStudyCount'
,
label
:
'韩国留学'
,
field
:
'KRStudyCount'
,
align
:
'left'
},
{
name
:
'YGAStudyCount'
,
label
:
'英港澳留学'
,
field
:
'YGAStudyCount'
,
align
:
'left'
},
{
name
:
'USStudyCount'
,
label
:
'美国留学'
,
field
:
'USStudyCount'
,
align
:
'left'
},
{
name
:
'SGStudyCount'
,
label
:
'新加坡留学'
,
field
:
'SGStudyCount'
,
align
:
'left'
},
{
name
:
'AXStudyCount'
,
label
:
'澳新留学'
,
field
:
'AXStudyCount'
,
align
:
'left'
},
{
name
:
'OtherCount'
,
label
:
'其他'
,
field
:
'OtherCount'
,
align
:
'left'
},
{
name
:
'ClassACount'
,
label
:
'A类客户'
,
field
:
'ClassACount'
,
align
:
'left'
},
{
name
:
'ClassBCount'
,
label
:
'B类客户'
,
field
:
'ClassBCount'
,
align
:
'left'
},
{
name
:
'ClassCCount'
,
label
:
'C类客户'
,
field
:
'ClassCCount'
,
align
:
'left'
},
{
name
:
'ClassDCount'
,
label
:
'D类客户'
,
field
:
'ClassDCount'
,
align
:
'left'
},
{
name
:
'CustomerCount'
,
label
:
'同行介绍'
,
field
:
'CustomerCount'
,
align
:
'left'
},
{
name
:
'B2CCount'
,
label
:
'直客'
,
field
:
'B2CCount'
,
align
:
'left'
},
{
name
:
'TransCount'
,
label
:
'学员转介绍'
,
field
:
'TransCount'
,
align
:
'left'
},
{
name
:
'InnerCount'
,
label
:
'内部介绍'
,
field
:
'InnerCount'
,
align
:
'left'
},
{
name
:
'InvalidCount'
,
label
:
'无效'
,
field
:
'InvalidCount'
,
align
:
'left'
},
{
name
:
'SuspectedCount'
,
label
:
'疑似'
,
field
:
'SuspectedCount'
,
align
:
'left'
},
{
name
:
'IntentionCount'
,
label
:
'意向'
,
field
:
'IntentionCount'
,
align
:
'left'
},
{
name
:
'InvitationCount'
,
label
:
'近期可邀约'
,
field
:
'InvitationCount'
,
align
:
'left'
},
{
name
:
'NegotiationCount'
,
label
:
'谈判'
,
field
:
'NegotiationCount'
,
align
:
'left'
},
{
name
:
'ContractCount'
,
label
:
'签约(成交.续费)'
,
field
:
'ContractCount'
,
align
:
'left'
},
{
name
:
'OrderMoney'
,
label
:
'语培签约金额'
,
field
:
'OrderMoney'
,
align
:
'left'
},
{
name
:
'StudyOrderMoney'
,
label
:
'留学签约金额'
,
field
:
'StudyOrderMoney'
,
align
:
'left'
}
],
dataList
:
[],
loading
:
false
,
myDate
:
''
,
tableHeight
:
500
,
msg
:
{
YearStr
:
''
,
rowsPerPage
:
0
},
}
},
created
()
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
90
;
},
100
)
},
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
getList
();
},
methods
:
{
downloadStudentCompanyMonth
()
{
this
.
loading
=
true
;
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/StudentStat/DownLoadStudentCompanyMonth"
,
msg
,
"公司每月数据统计.xls"
,
res
=>
{
this
.
loading
=
false
;
}
);
},
//获取数据
getList
()
{
this
.
loading
=
true
;
GetStudentCompanyMonth
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
;
}
})
}
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/sale/companymonthSecond.vue
0 → 100644
View file @
135f8863
<
style
>
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.TotalredClass
{
color
:
red
;
}
</
style
>
<
template
>
<div>
<div
class=
"col row wrap q-mb-lg"
style=
"justify-content:space-between;"
>
<div
class=
"col-3 Sysuser_Date q-mr-lg"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.YearStr"
@
change=
"getList"
style=
"width:100%"
value-format=
"yyyy"
size=
"small"
type=
"year"
placeholder=
"选择年"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div>
<q-btn
color=
"accent"
class=
"q-mr-md"
size=
"sm"
icon=
"download"
style=
"margin-top:15px;"
label=
"下载"
@
click=
"downloadStudentCompanyMonthRate"
/>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
ref=
"table"
:loading=
"loading"
:style=
"{'height':tableHeight+'px'}"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table sticky-header-column-table no-bottom-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
row-key=
""
>
<
template
v-slot:body-cell-JanuaryRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.JanuaryRate
<0
}"
>
{{
props
.
row
.
JanuaryRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-FebruaryRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.FebruaryRate
<0
}"
>
{{
props
.
row
.
FebruaryRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-MarchRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.MarchRate
<0
}"
>
{{
props
.
row
.
MarchRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-AprilRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.AprilRate
<0
}"
>
{{
props
.
row
.
AprilRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-MayRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.MayRate
<0
}"
>
{{
props
.
row
.
MayRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-JuneRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.JuneRate
<0
}"
>
{{
props
.
row
.
JuneRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-JulyRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.JulyRate
<0
}"
>
{{
props
.
row
.
JulyRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-AugustRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.AugustRate
<0
}"
>
{{
props
.
row
.
AugustRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-SeptemberRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.SeptemberRate
<0
}"
>
{{
props
.
row
.
SeptemberRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-OctoberRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.OctoberRate
<0
}"
>
{{
props
.
row
.
OctoberRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-NovemberRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.NovemberRate
<0
}"
>
{{
props
.
row
.
NovemberRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-DecemberRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.DecemberRate
<0
}"
>
{{
props
.
row
.
DecemberRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-AvgRate=
"props"
>
<q-td>
<span
:class=
"
{'TotalredClass':props.row.AvgRate
<0
}"
>
{{
props
.
row
.
AvgRate
}}
%
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
</
template
>
</q-table>
</div>
</div>
</template>
<
script
>
import
{
GetStudentCompanyRateMonth
}
from
'../../api/sale/sale'
;
import
{
EduDownLoad
}
from
"../../api/common/common"
;
export
default
{
props
:
{},
meta
:
{
title
:
"公司月度数据统计"
},
components
:
{},
data
()
{
return
{
tabCheck
:
1
,
dataList
:
[],
loading
:
false
,
tableHeight
:
500
,
msg
:
{
YearStr
:
''
,
rowsPerPage
:
0
},
columns
:
[{
name
:
'ItemName'
,
label
:
'名称'
,
field
:
'ItemName'
,
align
:
'left'
},
{
name
:
'JanuaryRate'
,
label
:
'1月'
,
field
:
'JanuaryRate'
,
align
:
'left'
},
{
name
:
'FebruaryRate'
,
label
:
'2月'
,
field
:
'FebruaryRate'
,
align
:
'left'
,
},
{
name
:
'MarchRate'
,
label
:
'3月'
,
field
:
'MarchRate'
,
align
:
'left'
,
},
{
name
:
'AprilRate'
,
label
:
'4月'
,
field
:
'AprilRate'
,
align
:
'left'
},
{
name
:
'MayRate'
,
label
:
'5月'
,
field
:
'MayRate'
,
align
:
'left'
},
{
name
:
'JuneRate'
,
label
:
'6月'
,
field
:
'JuneRate'
,
align
:
'left'
},
{
name
:
'JulyRate'
,
label
:
'7月'
,
field
:
'JulyRate'
,
align
:
'left'
},
{
name
:
'AugustRate'
,
label
:
'8月'
,
field
:
'AugustRate'
,
align
:
'left'
},
{
name
:
'SeptemberRate'
,
label
:
'9月'
,
field
:
'SeptemberRate'
,
align
:
'left'
},
{
name
:
'OctoberRate'
,
label
:
'10月'
,
field
:
'OctoberRate'
,
align
:
'left'
},
{
name
:
'NovemberRate'
,
label
:
'11月'
,
field
:
'NovemberRate'
,
align
:
'left'
},
{
name
:
'DecemberRate'
,
label
:
'12月'
,
field
:
'DecemberRate'
,
align
:
'left'
},
{
name
:
'AvgRate'
,
label
:
'平均'
,
field
:
'AvgRate'
,
align
:
'left'
}
],
}
},
created
()
{
setTimeout
(()
=>
{
this
.
tableHeight
=
window
.
innerHeight
-
this
.
$refs
.
table
.
$el
.
offsetTop
-
90
;
},
100
)
},
mounted
()
{
let
d
=
new
Date
();
this
.
msg
.
YearStr
=
d
.
getFullYear
().
toString
();
this
.
getList
();
},
methods
:
{
//下载文件
downloadStudentCompanyMonthRate
()
{
this
.
loading
=
true
;
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/StudentStat/DownLoadStudentCompanyMonthRate"
,
msg
,
"公司月成长率统计.xls"
,
res
=>
{
this
.
loading
=
false
;
}
);
},
getList
()
{
this
.
loading
=
true
;
GetStudentCompanyRateMonth
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
;
}
})
}
}
}
</
script
>
\ No newline at end of file
src/router/routes.js
View file @
135f8863
...
...
@@ -2,18 +2,18 @@ const routes = [{
path
:
"/"
,
component
:
()
=>
import
(
"pages/user/login.vue"
)
},
{
},
{
path
:
"/login"
,
component
:
()
=>
import
(
"pages/user/login.vue"
)
},
{
},
{
path
:
"/autologin"
,
component
:
()
=>
import
(
"pages/auto-login.vue"
)
},
{
},
{
path
:
"/home"
,
component
:
()
=>
import
(
"layouts/MainLayout.vue"
),
...
...
@@ -1067,39 +1067,49 @@ const routes = [{
},
{
path
:
"/sale/monthTotal"
,
//月份统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/monthTotal.vue"
)
},
{
path
:
"/sale/yearTotal"
,
//年度统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/yearTotal.vue"
)
},
{
path
:
"/sale/customDailyTotal"
,
//市场部每日统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/customDailyTotal.vue"
)
},
{
path
:
"/sale/customMonthlyTotal"
,
//市场部月度统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/customMonthlyTotal.vue"
)
},
{
path
:
"/sale/customyearTotal"
,
//市场部年度统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/customyearTotal.vue"
)
},
{
path
:
"/sale/everyMonthTotal"
,
//每月统计
component
:
()
=>
component
:
()
=>
import
(
"pages/sale/everyMonthTotal.vue"
)
},
{
path
:
"/sale/companyday"
,
component
:
()
=>
path
:
"/sale/companyday"
,
//全公司客户数据每日统计
component
:
()
=>
import
(
"pages/sale/companyday.vue"
)
},
{
path
:
"/sale/companymonth"
,
//全公司客户数据每月统计
component
:
()
=>
import
(
"pages/sale/companymonth.vue"
)
},
{
path
:
"/sale/companyYear"
,
//全公司客户数据年度统计
component
:
()
=>
import
(
"pages/sale/companyYear.vue"
)
},
{
path
:
"/activity/activeType"
,
//活动 活动类型
component
:
()
=>
...
...
@@ -1490,22 +1500,22 @@ const routes = [{
component
:
()
=>
import
(
"pages/teacher/teacherSchedule"
)
},
{
path
:
"/teacher/contribution/materialList"
,
//投稿设置 素材管理
path
:
"/teacher/contribution/materialList"
,
//投稿设置 素材管理
component
:
()
=>
import
(
"pages/teacher/contribution/materialList"
)
},
{
path
:
"/teacher/contribution/tgGroupingManage"
,
//投稿设置 分组管理
path
:
"/teacher/contribution/tgGroupingManage"
,
//投稿设置 分组管理
component
:
()
=>
import
(
"pages/teacher/contribution/tgGroupingManage"
)
},
{
path
:
"/teacher/contribution/imageTextlist"
,
//投稿设置 素材图文管理
path
:
"/teacher/contribution/imageTextlist"
,
//投稿设置 素材图文管理
component
:
()
=>
import
(
"pages/teacher/contribution/imageTextlist"
)
},
{
path
:
"/teacher/contribution/contributemanage"
,
//投稿审核 管理端审核列表
path
:
"/teacher/contribution/contributemanage"
,
//投稿审核 管理端审核列表
component
:
()
=>
import
(
"pages/teacher/contribution/contributemanage"
)
},
...
...
@@ -1513,56 +1523,56 @@ const routes = [{
{
path
:
"/stuMan/coffeeManage/index"
,
//学管 商品管理
path
:
"/stuMan/coffeeManage/index"
,
//学管 商品管理
component
:
()
=>
import
(
"pages/stuMan/coffeeManage/index"
)
},
{
path
:
"/stuMan/coffeeManage/coffeeOrderList"
,
//学管 咖啡订单列表
path
:
"/stuMan/coffeeManage/coffeeOrderList"
,
//学管 咖啡订单列表
component
:
()
=>
import
(
"pages/stuMan/coffeeManage/coffeeOrderList"
)
},
{
path
:
"/stuMan/coffeeManage/order"
,
//学管 订单列表
path
:
"/stuMan/coffeeManage/order"
,
//学管 订单列表
component
:
()
=>
import
(
"pages/stuMan/coffeeManage/order"
)
},
{
path
:
"/stuMan/coffeeManage/afterOrder"
,
//学管 售后订单列表
path
:
"/stuMan/coffeeManage/afterOrder"
,
//学管 售后订单列表
component
:
()
=>
import
(
"pages/stuMan/coffeeManage/afterOrder"
)
},
{
path
:
"/stuMan/activeList"
,
//学管 活动列表
path
:
"/stuMan/activeList"
,
//学管 活动列表
component
:
()
=>
import
(
"pages/stuMan/activeList"
)
},
{
path
:
"/stuMan/classPlan"
,
//学管 上课计划
path
:
"/stuMan/classPlan"
,
//学管 上课计划
component
:
()
=>
import
(
"pages/stuMan/classPlan"
)
},
{
path
:
"/stuMan/classRecord"
,
//学管 上课记录
path
:
"/stuMan/classRecord"
,
//学管 上课记录
component
:
()
=>
import
(
"pages/stuMan/classRecord"
)
},
{
path
:
"/stuMan/studentManage"
,
//学管 学员管理
path
:
"/stuMan/studentManage"
,
//学管 学员管理
component
:
()
=>
import
(
"pages/stuMan/studentManage"
)
},
{
path
:
"/stuMan/stuList"
,
//学管 学员名单
path
:
"/stuMan/stuList"
,
//学管 学员名单
component
:
()
=>
import
(
"pages/stuMan/stuList"
)
},
{
path
:
"/stuMan/visitorRecord"
,
//学管 访问管理
path
:
"/stuMan/visitorRecord"
,
//学管 访问管理
component
:
()
=>
import
(
"pages/stuMan/visitorRecord"
)
},
{
path
:
"/stuMan/todaysOrder"
,
//学管 今日订单
path
:
"/stuMan/todaysOrder"
,
//学管 今日订单
component
:
()
=>
import
(
"pages/stuMan/todaysOrder"
)
},
...
...
@@ -1663,111 +1673,111 @@ const routes = [{
}
],
},
// Always leave this as last one,
// but you can also remove it
{
},
// Always leave this as last one,
// but you can also remove it
{
path
:
"/contractConfirm"
,
component
:
()
=>
import
(
"pages/contractConfirm.vue"
)
},
{
},
{
path
:
'/contractSign'
,
//合同签名页面
component
:
()
=>
import
(
"pages/contractSign.vue"
)
},
{
},
{
path
:
"/contractPay"
,
component
:
()
=>
import
(
"pages/contractPay.vue"
)
},
//公告预览
{
},
//公告预览
{
path
:
"/noticeView"
,
component
:
()
=>
import
(
"pages/noticeView.vue"
)
},
{
},
{
path
:
"/contractView"
,
component
:
()
=>
import
(
"pages/contractView.vue"
)
},
{
},
{
path
:
"/courseRefund"
,
component
:
()
=>
import
(
"pages/courseRefund.vue"
)
},
{
},
{
path
:
"/courseRefundH5"
,
component
:
()
=>
import
(
"pages/courseRefundH5.vue"
)
},
{
path
:
"/koreaUpload"
,
//韩国管 上传
},
{
path
:
"/koreaUpload"
,
//韩国管 上传
component
:
()
=>
import
(
"pages/koreaUpload.vue"
)
},
},
{
{
path
:
"/financial/financalDocument/PrintPage"
,
//财务单据打印
component
:
()
=>
import
(
"pages/financial/financalDocument/PrintPage.vue"
)
},
{
},
{
path
:
"/financial/financalDocument/PrintPageN"
,
//财务凭证打印
component
:
()
=>
import
(
"pages/financial/financalDocument/PrintPageN.vue"
)
},
},
{
{
path
:
'/AssetsShenpi'
,
//资产管理审批
name
:
'AssetsShenpi'
,
component
:
()
=>
import
(
'pages/administration/AssetsSystem/AssetsShenpi'
),
meta
:
{
title
:
'资产管理'
},
},
{
},
{
path
:
'/RequisitionShenpi'
,
//资产管理审批
name
:
'RequisitionShenpi'
,
component
:
()
=>
import
(
'pages/administration/AssetsSystem/RequisitionShenpi'
),
meta
:
{
title
:
'资产管理'
},
},
{
},
{
path
:
"/SuppliesStockInShenpi"
,
//耗材入库审核
component
:
()
=>
import
(
"pages/administration/AssetsSystem/SuppliesStockInShenpi"
)
},
{
},
{
path
:
"/PropertyStockInShenpi"
,
//资产入库审核
component
:
()
=>
import
(
"pages/administration/AssetsSystem/PropertyStockInShenpi"
)
},
{
},
{
path
:
"/course/chapter-editor"
,
//章节管理
component
:
()
=>
import
(
"pages/course/chapterEditor.vue"
)
},
{
path
:
"/teacher/contribution/graphicType"
,
//投稿设置 新增修改图文
},
{
path
:
"/teacher/contribution/graphicType"
,
//投稿设置 新增修改图文
component
:
()
=>
import
(
"pages/teacher/contribution/graphicType"
)
},
{
path
:
"/teacher/contribution/addimageText"
,
//投稿设置 新增修改图文
},
{
path
:
"/teacher/contribution/addimageText"
,
//投稿设置 新增修改图文
component
:
()
=>
import
(
"pages/teacher/contribution/addimageText"
)
},
{
},
{
path
:
"*"
,
component
:
()
=>
import
(
"pages/Error404.vue"
)
}
}
];
export
default
routes
;
\ No newline at end of file
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