Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CRM
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
华国豪
CRM
Commits
52bcf556
Commit
52bcf556
authored
Mar 23, 2020
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/huaguohao/crm
parents
d19e0afd
06090835
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
323 additions
and
7 deletions
+323
-7
biye.png
src/assets/img/tongji/biye.png
+0
-0
gaoxiao.png
src/assets/img/tongji/gaoxiao.png
+0
-0
zaidu.png
src/assets/img/tongji/zaidu.png
+0
-0
zhufang.png
src/assets/img/tongji/zhufang.png
+0
-0
HomeNavTop.vue
src/components/HomeNav/HomeNavTop.vue
+21
-4
addBusinTeamman.vue
src/components/businessManagement/addBusinTeamman.vue
+1
-0
addTeamman.vue
src/components/dialogModel/addTeamman.vue
+1
-0
gaoxiao.vue
src/components/statistics/gaoxiao.vue
+258
-0
discussBox.vue
src/components/statistics/model/discussBox.vue
+34
-3
router.js
src/router.js
+8
-0
No files found.
src/assets/img/tongji/biye.png
0 → 100644
View file @
52bcf556
816 Bytes
src/assets/img/tongji/gaoxiao.png
0 → 100644
View file @
52bcf556
23.8 KB
src/assets/img/tongji/zaidu.png
0 → 100644
View file @
52bcf556
491 Bytes
src/assets/img/tongji/zhufang.png
0 → 100644
View file @
52bcf556
14.6 KB
src/components/HomeNav/HomeNavTop.vue
View file @
52bcf556
...
...
@@ -91,9 +91,21 @@
<span
class=
"usr-name"
>
{{
userInfo
.
EmName
}}
</span>
</div>
<div
class=
"right-item"
>
<el-avatar
:size=
"34"
:src=
"userInfo.Icon"
style=
"background:rgba(13, 36, 129, 1);"
@
error=
"errorHandler"
>
{{
userInfo
.
EmName
.
substring
(
0
,
1
)
}}
</el-avatar>
<el-popover
placement=
"top"
width=
"160"
trigger=
"click"
v-model=
"visible"
>
<ul
style=
"padding:0;margin:0;display:block;"
>
<li
style=
"padding:0;margin:0;color:#000;cursor: pointer;"
@
click=
"signout"
>
<i
class=
"iconfont icontuichu"
></i>
退出
</li>
</ul>
<el-avatar
slot=
"reference"
:size=
"34"
:src=
"userInfo.Icon"
style=
"background:rgba(13, 36, 129, 1);"
@
error=
"errorHandler"
>
{{
userInfo
.
EmName
.
substring
(
0
,
1
)
}}
</el-avatar>
</el-popover>
</div>
</div>
</div>
...
...
@@ -109,7 +121,8 @@ export default {
userInfo
:
{
EmName
:
''
,
Icon
:
''
,
}
},
visible
:
false
};
},
mounted
()
{
...
...
@@ -128,6 +141,10 @@ export default {
},
errorHandler
()
{
return
true
;
},
signout
(){
window
.
localStorage
.
removeItem
(
"userInfo"
);
this
.
$router
.
push
(
'/login'
);
}
}
};
...
...
src/components/businessManagement/addBusinTeamman.vue
View file @
52bcf556
...
...
@@ -76,6 +76,7 @@
<el-form-item
label=
"同时添加至"
class=
"label-pad-left form-check"
>
<div
class=
"pad-left-10"
>
<el-checkbox-group
v-model=
"TransferOther"
>
<el-checkbox
:value=
"4"
:label=
"4"
>
订单
</el-checkbox>
<el-checkbox
:value=
"2"
:label=
"2"
>
商机
</el-checkbox>
<el-checkbox
:value=
"3"
:label=
"3"
>
合同
</el-checkbox>
</el-checkbox-group>
...
...
src/components/dialogModel/addTeamman.vue
View file @
52bcf556
...
...
@@ -76,6 +76,7 @@
<el-form-item
label=
"同时添加至"
class=
"label-pad-left form-check"
>
<div
class=
"pad-left-10"
>
<el-checkbox-group
v-model=
"TransferOther"
>
<el-checkbox
:value=
"4"
:label=
"4"
>
订单
</el-checkbox>
<el-checkbox
:value=
"2"
:label=
"2"
>
商机
</el-checkbox>
<el-checkbox
:value=
"3"
:label=
"3"
>
合同
</el-checkbox>
</el-checkbox-group>
...
...
src/components/statistics/gaoxiao.vue
0 → 100644
View file @
52bcf556
<
style
>
.sex
{
height
:
calc
(
100%
-
25px
);
}
.statistics-title
{
font-size
:
24px
;
color
:
#111
;
margin-bottom
:
30px
;
font-family
:
perfectFont
;
}
.sex
.conten-box
{
display
:
flex
;
flex-direction
:
column
;
height
:
calc
(
100%
-
62px
);
}
.sex
.conten-box
.el-card
.el-card__header
{
font-weight
:
normal
!important
;
}
.sex
.conten-box
.top
{
flex
:
1.2
;
margin-bottom
:
25px
;
}
.sex
.conten-box
.bottom
{
flex
:
.8
;
}
.sex
.conten-box
.left
{
height
:
100%
;
}
.sex
.conten-box
.el-card.blue
{
background
:
#0D2481
!important
;
color
:
#fff
!important
;
height
:
calc
(
100%
-
2px
);
}
.sex
.conten-box
.el-card
.el-card__body
{
padding
:
20px
;
height
:
calc
(
100%
-
98px
);
max-height
:
calc
(
100%
-
98px
);
}
.sex
.conten-box
.img
{
display
:
flex
;
align-items
:
flex-end
;
text-align
:
center
;
padding
:
20px
70px
10px
70px
!important
;
justify-content
:
space-between
;
font-size
:
14px
;
}
.sex
.sjsm
{
display
:
flex
;
flex-direction
:
column
;
}
.sex
.sjsm
>
div
:nth-child
(
1
)
{
margin-bottom
:
20px
;
}
.sex
.sjsm
>
div
{
flex
:
1
;
background
:
rgba
(
244
,
245
,
249
,
1
);
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
20px
;
}
.sex
.sjsm
>
div
.left
{
display
:
flex
;
align-items
:
center
;
}
.sex
.sjsm
>
div
.left
img
{
padding-right
:
10px
;
}
.sex
.sjsm
>
div
.right
{
text-align
:
right
;
color
:
#888888
;
font-size
:
12px
;
}
.sex
.hight-font
{
color
:
#0D2481
!important
;
font-size
:
14px
;
}
</
style
>
<
template
>
<div
class=
"sex"
v-loading=
"loading"
>
<div
class=
"statistics-title bold18"
>
客户学历统计
</div>
<div
class=
"conten-box"
v-if=
"!loading"
>
<el-row
:gutter=
"25"
class=
"top"
>
<el-col
:span=
"16"
class=
"left"
>
<el-card
class=
"blue"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
订单统计
</span>
</div>
<el-row
:gutter=
"80"
style=
"height: 100%;"
>
<el-col
:span=
"10"
class=
"img"
>
<div>
<div
style=
"margin-bottom: 10px;"
>
<img
src=
"../../assets/img/tongji/gaoxiao.png"
alt=
""
>
</div>
<p>
学历统计
</p>
</div>
</el-col>
<el-col
:span=
"14"
style=
"height: 100%;"
>
<sexChart
:myData=
"chartData"
:strArr=
"strArr"
/>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col
:span=
"8"
style=
"height: 100%;"
>
<el-card
style=
"height: calc(100% - 2px);"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
购物统计
<span
class=
"font-size-12"
>
(按平均计算)
</span></span>
</div>
<shopChart
:shopChartData=
"shopChartData"
/>
</el-card>
</el-col>
</el-row>
<el-row
:gutter=
"25"
class=
"bottom"
>
<el-col
:span=
"15"
style=
"height: 100%;"
>
<el-card
style=
"height: 100%;"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
数据说明
</span>
</div>
<div
style=
"height: 100%;"
class=
"sjsm"
>
<div
v-for=
"(item, index) in orders"
:key=
"index"
>
<div
class=
"left"
>
<img
v-if=
"item.StudentType === 1"
src=
"../../assets/img/tongji/zaidu.png"
alt=
""
>
<img
v-if=
"item.StudentType === 2"
src=
"../../assets/img/tongji/biye.png"
alt=
""
>
<span
class=
"font-size-12"
>
{{
item
.
StudentTypeName
}}
</span>
</div>
<div
class=
"right"
>
<p>
累计报名
<span
class=
"hight-font"
>
{{
item
.
StudentCount
}}
</span>
人,关联购物金额
<span
class=
"hight-font"
>
{{
item
.
TotalMoney
}}
</span>
万,报名均价为
<span
class=
"hight-font"
>
{{
item
.
Unit_Price
}}
</span>
元
</p>
<p>
最喜爱产品
<span
class=
"hight-font"
>
《
{{
item
.
LtName
}}
》
</span></p>
</div>
</div>
</div>
</el-card>
</el-col>
<el-col
:span=
"9"
style=
"height: 100%;"
>
<el-card
style=
"height: 100%;"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-row
style=
"width:100%"
>
<el-col
:span=
"12"
size=
"30"
>
推荐解答
</el-col>
<!--
<el-col
:span=
"12"
class=
"right-title"
>
<i
class=
"iconfont icondianzan1"
></i>
点赞
</el-col>
-->
</el-row>
</div>
<div
class=
"situ"
>
<div
class=
"c"
>
根据对客户年学历的统计可以,更好的了解不同学历段客人的喜好,消费能力的判读,从而快速的推荐团队给客人等等等
</div>
<div
class=
"bot"
@
click=
"drawer = true"
>
查看更多,参与讨论(1)
<i
class=
"el-icon-d-arrow-right"
></i>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div>
<el-drawer
size=
'695px'
:visible
.
sync=
"drawer"
direction=
"rtl"
:with-header=
"false"
>
<discussBox
:id=
"discussID"
/>
</el-drawer>
</div>
</
template
>
<
script
>
import
sexChart
from
'./model/sexChart'
import
shopChart
from
'./model/shopChart'
import
discussBox
from
"./model/discussBox"
;
export
default
{
components
:
{
sexChart
,
shopChart
,
discussBox
},
data
()
{
return
{
discussID
:
0
,
drawer
:
false
,
chartData
:
[
0
,
0
],
shopChartData
:
[],
SexOrder
:
[],
loading
:
false
,
strArr
:
[
'高校在读生'
,
'高校毕业生'
,
'非高校'
],
orders
:[]
};
},
watch
:{
},
mounted
()
{
this
.
GetSexOrderList
()
},
methods
:
{
GetSexOrderList
(){
this
.
loading
=
true
this
.
apipost
(
"/api/Statistic/GetStudentShopList"
,
{},
res
=>
{
// this.SexOrder = res.data.data
let
contShop
=
res
.
data
.
data
[
0
].
TotalMoney
+
res
.
data
.
data
[
1
].
TotalMoney
+
res
.
data
.
data
[
2
].
TotalMoney
,
zai
=
res
.
data
.
data
[
0
].
TotalMoney
,
bi
=
res
.
data
.
data
[
1
].
TotalMoney
,
ot
=
res
.
data
.
data
[
2
].
TotalMoney
,
contNum
=
res
.
data
.
data
[
0
].
StudentCount
+
res
.
data
.
data
[
1
].
StudentCount
+
res
.
data
.
data
[
2
].
StudentCount
,
zaiN
=
res
.
data
.
data
[
0
].
StudentCount
,
biN
=
res
.
data
.
data
[
1
].
StudentCount
,
otN
=
res
.
data
.
data
[
2
].
StudentCount
;
let
chartData
=
[],
shopChartData
=
[];
chartData
.
push
(
((
zaiN
/
contNum
)
*
100
).
toFixed
(
2
)
)
chartData
.
push
(
((
biN
/
contNum
)
*
100
).
toFixed
(
2
)
)
chartData
.
push
(
((
otN
/
contNum
)
*
100
).
toFixed
(
2
)
)
shopChartData
.
push
(
{
num
:
Number
(((
zai
/
contShop
)
*
100
).
toFixed
(
2
)),
color
:
"#0D2481"
,
text
:
'高校在读生'
}
)
shopChartData
.
push
(
{
num
:
Number
(((
bi
/
contShop
)
*
100
).
toFixed
(
2
)),
color
:
"#FFA475"
,
text
:
'高校毕业生'
}
)
shopChartData
.
push
(
{
num
:
Number
(((
ot
/
contShop
)
*
100
).
toFixed
(
2
)),
color
:
"#999"
,
text
:
'非高校'
}
)
this
.
chartData
=
chartData
this
.
shopChartData
=
shopChartData
this
.
orders
=
res
.
data
.
data
;
this
.
getOrders
()
});
},
getOrders
(){
this
.
apipost
(
"/api/Statistic/GetStudentOrderList"
,
{},
res
=>
{
console
.
log
(
res
)
res
.
data
.
data
.
forEach
(
x
=>
{
this
.
orders
[
x
.
NewStudentType
-
1
].
LtName
=
x
.
LtName
;
this
.
orders
[
x
.
NewStudentType
-
1
].
Unit_Price
=
x
.
Unit_Price
;
});
this
.
loading
=
false
});
}
}
}
</
script
>
\ No newline at end of file
src/components/statistics/model/discussBox.vue
View file @
52bcf556
...
...
@@ -32,7 +32,7 @@
}
.discussBox
.list
{
overflow-y
:
auto
;
height
:
calc
(
100%
-
51
px
);
height
:
calc
(
100%
-
102
px
);
overflow-x
:
hidden
;
}
.discussBox
.list
.list-item
.list-item-tit
{
...
...
@@ -118,6 +118,14 @@
.discussBox
.list
.list-item
:last-child
{
margin-bottom
:
20px
}
.discussBox
.reply
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
height
:
50px
;
padding
:
0
20px
;
border-top
:
1px
solid
#f6f6f6
;
}
</
style
>
<
template
>
<div
class=
"discussBox"
>
...
...
@@ -236,20 +244,43 @@
</div>
</li>
</ul>
<div
class=
"reply"
>
<div
class=
"msg-box"
>
<div
style=
"margin-top: 5px;"
>
<el-input
placeholder=
"请输入内容"
v-model=
"input3"
class=
"input-with-select"
>
<el-button
slot=
"append"
type=
"primary"
>
发布
</el-button>
</el-input>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:{
t
:{
type
:
Number
,
default
:
1
}
},
data
(){
return
{
sort
:
true
,
msgBoxShow
:
false
,
input3
:
''
input3
:
''
,
bbs
:[]
}
},
props
:
[],
methods
:
{
load
(){
this
.
apipost
(
"/api/Customer/GetBbsListByType"
,{
t
:
this
.
t
,
o
:
"1"
},
r
=>
{
this
.
bbs
=
r
.
data
.
data
;
});
}
},
mounted
(){
...
...
src/router.js
View file @
52bcf556
...
...
@@ -163,6 +163,14 @@ export default new Router({
title
:
"婚姻统计"
}
},
{
path
:
"/gaoxiao"
,
name
:
"gaoxiao"
,
component
:
()
=>
import
(
'./components/statistics/gaoxiao.vue'
),
meta
:
{
title
:
"高校在读/毕业统计"
}
},
{
path
:
"/job"
,
name
:
"job"
,
...
...
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