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
13ea9508
Commit
13ea9508
authored
Mar 27, 2020
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/huaguohao/crm
parents
6ffebcc7
77764a1e
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
221 additions
and
208 deletions
+221
-208
App.vue
src/App.vue
+1
-1
brithday.vue
src/components/sellevent/brithday.vue
+62
-85
Opinionpolls.vue
src/components/statistics/Opinionpolls.vue
+147
-116
assets.vue
src/components/statistics/assets.vue
+1
-1
gaoxiao.vue
src/components/statistics/gaoxiao.vue
+1
-1
marriage.vue
src/components/statistics/marriage.vue
+4
-2
old.vue
src/components/statistics/old.vue
+4
-1
roomStatistical.vue
src/components/statistics/roomStatistical.vue
+1
-1
No files found.
src/App.vue
View file @
13ea9508
...
@@ -30,7 +30,7 @@ export default {
...
@@ -30,7 +30,7 @@ export default {
@import
'./assets/css/tablevoerride.css'
;
@import
'./assets/css/tablevoerride.css'
;
@import
'./assets/global/font.css'
;
@import
'./assets/global/font.css'
;
@import
'//at.alicdn.com/t/font_1627123_
j29h6a48r8m
.css'
;
@import
'//at.alicdn.com/t/font_1627123_
98ft13ltmlv
.css'
;
@import
url('//at.alicdn.com/t/font_1627123_grz80mbm3sv.css')
;
@import
url('//at.alicdn.com/t/font_1627123_grz80mbm3sv.css')
;
/* @import './assets/css/common.css'; */
/* @import './assets/css/common.css'; */
@import
'./assets/css/init.css'
;
@import
'./assets/css/init.css'
;
...
...
src/components/sellevent/brithday.vue
View file @
13ea9508
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
</div>
-->
</div>
-->
<div
class=
"rightmenu"
>
<div
class=
"rightmenu"
>
<!--
<el-button
class=
"crm-btn query-btn"
@
click=
"getList"
>
查询
</el-button>
-->
<!--
<el-button
class=
"crm-btn query-btn"
@
click=
"getList"
>
查询
</el-button>
-->
<el-button
icon=
"el-icon-p
lus"
class=
"crm-btn org-btn"
@
click=
"CustomerId = 0, dialogTableVisibleName = '新建直客', dialogTable
Visible=true"
>
发送生日祝福涵
</el-button>
<el-button
icon=
"el-icon-p
resent"
class=
"crm-btn org-btn"
@
click=
"addSendMsg.isAll=true;addSendMsg.sendObj='所有客户',transfer
Visible=true"
>
发送生日祝福涵
</el-button>
<!--
<el-dropdown>
<!--
<el-dropdown>
<el-button
class=
"crm-btn crm-btn-more easy-btn margin-right0"
>
<el-button
class=
"crm-btn crm-btn-more easy-btn margin-right0"
>
<i
class=
"iconfont icongengduo"
></i>
<i
class=
"iconfont icongengduo"
></i>
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
</div>
</div>
<div
class=
"query-box"
:style=
"
{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<div
class=
"query-box"
:style=
"
{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<el-row
v-if=
"!multipleSelection.length"
:gutter=
"30"
>
<el-row
v-if=
"!multipleSelection.length"
:gutter=
"30"
>
<el-col
:span=
"4"
>
<
!--
<
el-col
:span=
"4"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
场景
</span>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
场景
</span>
<el-popover
<el-popover
placement=
"bottom"
placement=
"bottom"
...
@@ -64,22 +64,27 @@
...
@@ -64,22 +64,27 @@
</el-option>
</el-option>
</el-select>
</el-select>
</el-popover>
</el-popover>
</el-col>
</el-col>
-->
<el-col
:span=
"4"
>
<!--
<el-col
:span=
"10"
>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
客户类型
</span>
<span
class=
"font-size-12"
style=
"padding-right: 10px"
>
距离生日天数
</span>
<el-select
size=
"mini"
v-model=
"msg.CustomerType"
placeholder=
"请选择"
@
change=
"getList"
>
<el-select
size=
"mini"
v-model=
"t"
placeholder=
"请选择"
@
change=
"changeBirthday"
>
<el-option
key=
"0"
label=
"客户"
:value=
"0"
></el-option>
<el-option
label=
"今日生日"
value=
"0"
></el-option>
<el-option
key=
"1"
label=
"直客"
:value=
"1"
></el-option>
<el-option
label=
"明日生日"
value=
"1"
></el-option>
<el-option
label=
"还有3天生日"
value=
"2"
></el-option>
<el-option
label=
"还有4天生日"
value=
"3"
></el-option>
<el-option
label=
"还有5天生日"
value=
"4"
></el-option>
<el-option
label=
"还有6天生日"
value=
"5"
></el-option>
<el-option
label=
"还有7天生日"
value=
"6"
></el-option>
</el-select>
</el-select>
</el-col>
</el-col>
-->
<el-col
:span=
"4"
>
<
!--
<
el-col
:span=
"4"
>
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
@
click=
"MsgBus.$emit('sceneBoxShow', 5)"
>
高级筛选
</el-button>
<el-button
icon=
"iconfont iconshaixuan"
class=
"crm-btn query-btn crm-btn-mini margin-right0"
@
click=
"MsgBus.$emit('sceneBoxShow', 5)"
>
高级筛选
</el-button>
</el-col>
</el-col>
-->
</el-row>
</el-row>
<div
v-else
class=
"flex-center"
>
<div
v-else
class=
"flex-center"
>
<p
class=
"font-size-12"
>
已选
<span
class=
"font-color-link"
>
{{
multipleSelection
.
length
}}
</span>
项
</p>
<p
class=
"font-size-12"
>
已选
<span
class=
"font-color-link"
>
{{
multipleSelection
.
length
}}
</span>
项
</p>
<div
class=
"selection-box"
>
<div
class=
"selection-box"
>
<el-button
v-for=
"(item, index) in selectionList"
:key=
"index"
@
click=
"item.myFun"
><i
:class=
"item.class"
></i>
{{
item
.
name
}}
</el-button>
<el-button
@
click=
"transferVisible=true"
><i
class=
"el-icon-present"
></i>
发送祝福
</el-button>
</div>
</div>
</div>
</div>
<div
class=
"scene-wrapper"
v-if=
"sceneList.length > 0"
>
<div
class=
"scene-wrapper"
v-if=
"sceneList.length > 0"
>
...
@@ -262,29 +267,44 @@
...
@@ -262,29 +267,44 @@
</div> -->
</div> -->
<el-dialog
:visible
.
sync=
"transferVisible"
:close-on-click-modal=
"false"
width=
"450px"
custom-class=
"transfer-box add-box add-box2"
>
<el-dialog
:visible
.
sync=
"transferVisible"
:close-on-click-modal=
"false"
width=
"450px"
custom-class=
"transfer-box add-box add-box2"
>
<div
class=
"add-tit"
slot=
"title"
>
<div
class=
"add-tit"
slot=
"title"
>
<p><span></span>
客户转移
</p>
<p><span></span>
发送生日祝福涵
</p>
<span
icon=
"el-icon-close"
></span>
<span
icon=
"el-icon-close"
></span>
</div>
</div>
<el-form
:model=
"transferMsg"
ref=
"form"
class=
"MyEditForm"
>
<el-form
:model=
"transferMsg"
ref=
"form"
class=
"MyEditForm"
>
<div
class=
"MyEditForm-item"
>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"变更负责人为"
class=
"label-pad-left"
>
<el-form-item
label=
"计划标题"
class=
"label-pad-left"
>
<el-select
<el-input
v-model=
"addSendMsg.title"
placeholder=
"请输入计划标题,如果不填系统将自动生成"
></el-input>
filterable
</el-form-item>
v-model=
"transferMsg.EmpId"
placeholder=
"请选择"
>
</div>
<el-option
<div
class=
"MyEditForm-item"
>
v-for=
"item in EmployeeList"
<el-form-item
label=
"发送方式"
class=
"label-pad-left"
>
:label=
'item.EmName'
<el-select
v-model=
"addSendMsg.sendType"
placeholder=
"请选择"
>
:value=
'item.EmployeeId'
<el-option
label=
'同业助手'
value=
'0'
></el-option>
:key=
'item.EmployeeId'
>
<el-option
label=
'短信'
value=
'1'
></el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</div>
</div>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"接收人员"
class=
"label-pad-left"
>
<el-input
readonly=
"true"
v-model=
"addSendMsg.sendObj"
></el-input>
<div
style=
"font-size:12px;color:red;margin-left: 10px; margin-top: 2px;"
>
消息将发送给关联的同行,由同行转发给客人,暂不支持直接转发
</div>
</el-form-item>
</div>
<div
class=
"MyEditForm-item"
>
<el-form-item
label=
"发送时间"
class=
"label-pad-left"
>
<el-date-picker
type=
"datetime"
v-model=
"addSendMsg.sendTime"
placeholder=
"选择日期时间"
>
</el-date-picker>
</el-form-item>
</div>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"transfer(2)"
>
确 定
</el-button>
<el-button
type=
"primary"
class=
"add-box-btn"
@
click=
"transfer(2)"
>
确 定
</el-button>
<el-button
class=
"add-box-btn add-box-cancel"
@
click=
"transferVisible = false"
>
取 消
</el-button>
<el-button
class=
"add-box-btn add-box-cancel"
@
click=
"transferVisible = false"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -399,10 +419,7 @@ export default {
...
@@ -399,10 +419,7 @@ export default {
EmployeeList
:
[],
EmployeeList
:
[],
value
:
''
,
value
:
''
,
userInfo
:
{},
userInfo
:
{},
transferMsg
:
{
IDs
:
[],
EmpId
:
''
,
},
msg
:
{
msg
:
{
GusetName
:
''
,
GusetName
:
''
,
pageIndex
:
1
,
pageIndex
:
1
,
...
@@ -413,43 +430,24 @@ export default {
...
@@ -413,43 +430,24 @@ export default {
ID
:
36
ID
:
36
},
},
total
:
0
,
total
:
0
,
WhereTypeList
:
[
{
id
:
-
1
,
name
:
'全部'
},{
id
:
1
,
name
:
'我负责的'
},{
id
:
2
,
name
:
'下属的'
},{
id
:
3
,
name
:
'我关注的'
},
],
selectionList
:
[
{
name
:
'转移'
,
class
:
'iconfont iconplus-transfer'
,
myFun
:
this
.
transfer
},{
name
:
'删除'
,
class
:
'iconfont icondelete'
,
myFun
:
this
.
delete
},
],
sceneList
:
[],
sceneList
:
[],
SceneEmployeeList
:
[],
SceneEmployeeList
:
[],
sceneID
:
36
,
sceneID
:
36
,
visible
:
false
,
visible
:
false
,
addSendMsg
:{
title
:
""
,
sendType
:
"0"
,
sendObj
:
""
,
sendTime
:
""
,
isAll
:
false
,
}
};
};
},
},
mounted
()
{
mounted
()
{
this
.
userInfo
=
this
.
getLocalStorage
();
this
.
userInfo
=
this
.
getLocalStorage
();
console
.
log
(
this
.
queryType
)
console
.
log
(
this
.
queryType
)
this
.
getList
()
this
.
getList
()
this
.
Employee
()
//
this.Employee()
let
$this
=
this
let
$this
=
this
this
.
MsgBus
.
$on
(
'closeCustomerDialogBox'
,
function
(){
this
.
MsgBus
.
$on
(
'closeCustomerDialogBox'
,
function
(){
$this
.
dialogTableVisible
=
false
$this
.
dialogTableVisible
=
false
...
@@ -474,6 +472,9 @@ export default {
...
@@ -474,6 +472,9 @@ export default {
this
.
MsgBus
.
$off
(
'editScene'
);
this
.
MsgBus
.
$off
(
'editScene'
);
},
},
methods
:
{
methods
:
{
sendPresent
(){
},
changeWhere
(
item
){
changeWhere
(
item
){
this
.
msg
.
ID
=
item
.
ID
this
.
msg
.
ID
=
item
.
ID
this
.
sceneID
=
item
.
ID
this
.
sceneID
=
item
.
ID
...
@@ -498,34 +499,6 @@ export default {
...
@@ -498,34 +499,6 @@ export default {
this
.
msg
.
Data
=
obj
this
.
msg
.
Data
=
obj
this
.
getList
()
this
.
getList
()
},
},
getMarriageStr
(
type
){
if
(
type
===
5
)
return
'其他'
if
(
type
===
4
)
return
'丧偶'
if
(
type
===
3
)
return
'未婚'
if
(
type
===
2
)
return
'离婚'
if
(
type
===
1
)
return
'已婚'
if
(
type
===
0
)
return
'无'
},
Employee
(){
let
msg
=
{
RB_Group_id
:
this
.
userInfo
.
RB_Group_id
,
BranchId
:
-
1
,
DepartmentId
:
0
,
PostId
:
0
,
IsLeave
:
0
,
}
this
.
apipost2
(
"admin_get_EmployeeGetList"
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EmployeeList
=
res
.
data
.
data
;
}
else
{
}
},
err
=>
{}
);
},
//锁定
//锁定
locking
(){
locking
(){
...
@@ -633,9 +606,13 @@ export default {
...
@@ -633,9 +606,13 @@ export default {
})
})
},
},
handleSelectionChange
(
val
)
{
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
.
map
(
x
=>
this
.
multipleSelection
=
val
x
.
ID
this
.
addSendMsg
.
isAll
=
false
)
if
(
val
&&
val
.
length
>
0
){
this
.
addSendMsg
.
sendObj
=
val
.
length
==
1
?
val
[
0
].
GuestName
:
val
[
0
].
GuestName
+
"等"
+
val
.
length
+
"人"
}
else
{
this
.
addSendMsg
.
sendObj
=
""
}
}
}
}
}
};
};
...
...
src/components/statistics/Opinionpolls.vue
View file @
13ea9508
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
}
}
.sex
.sjsm
>
div
:nth-child
(
1
)
{
.sex
.sjsm
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.sex
.sjsm
>
div
{
.sex
.sjsm
>
div
{
...
@@ -85,7 +85,7 @@
...
@@ -85,7 +85,7 @@
}
}
.Opinionpolls
.countryUl
li
{
.Opinionpolls
.countryUl
li
{
position
:
relative
;
position
:
relative
;
padding
:
2
0px
0
;
padding
:
3
0px
0
;
border-bottom
:
1px
solid
#E2E4EF
;
border-bottom
:
1px
solid
#E2E4EF
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
.Opinionpolls
.countryUl
li
.rightSpan
{
.Opinionpolls
.countryUl
li
.rightSpan
{
position
:
absolute
;
position
:
absolute
;
right
:
0
;
right
:
0
;
bottom
:
20
px
;
bottom
:
32
px
;
}
}
.Opinionpolls
.countryUl
li
img
{
.Opinionpolls
.countryUl
li
img
{
...
@@ -102,6 +102,10 @@
...
@@ -102,6 +102,10 @@
border-radius
:
6px
;
border-radius
:
6px
;
}
}
.Opinionpolls
.index
{
font-weight
:
bold
;
margin-right
:
20px
;
}
.Opinionpolls
.countryUl
li
:nth-child
(
1
)
.index
{
.Opinionpolls
.countryUl
li
:nth-child
(
1
)
.index
{
color
:
#FFA475
color
:
#FFA475
}
}
...
@@ -120,15 +124,15 @@
...
@@ -120,15 +124,15 @@
}
}
.timeChart
{
.timeChart
{
width
:
100%
;
width
:
100%
;
height
:
3
00
px
;
height
:
3
86
px
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"sex Opinionpolls"
v-loading=
"loading"
>
<div
class=
"sex Opinionpolls"
v-loading=
"loading"
>
<div
class=
"statistics-title bold18"
>
季节
统计
</div>
<div
class=
"statistics-title bold18"
>
意见调查
统计
</div>
<div
class=
"conten-box"
v-if=
"!loading"
>
<div
class=
"conten-box"
>
<el-row
:gutter=
"25"
class=
"top"
>
<el-row
:gutter=
"25"
class=
"top"
>
<el-col
:span=
"6"
style=
"height:
100%;
"
>
<el-col
:span=
"6"
style=
"height:
450px
"
>
<el-card
style=
"height: calc(100% - 2px);background:#FFA475"
>
<el-card
style=
"height: calc(100% - 2px);background:#FFA475"
>
<p
style=
"color:#FDFEFE;margin-top:15px;font-size:14px"
>
意见调查总和
</p>
<p
style=
"color:#FDFEFE;margin-top:15px;font-size:14px"
>
意见调查总和
</p>
<div>
<div>
...
@@ -140,10 +144,11 @@
...
@@ -140,10 +144,11 @@
<el-col
:span=
"18"
class=
"left"
>
<el-col
:span=
"18"
class=
"left"
>
<el-card>
<el-card>
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
季节统计
</span>
<span>
景点评分(前10名)
</span>
</div>
</div>
<el-row
:gutter=
"80"
style=
"height: 100%;"
>
<el-row
:gutter=
"80"
style=
"height: 100%;"
>
<sexChart
:myData=
"chartData"
:strArr=
"strArr"
/>
<!--
<sexChart
v-if=
"isShowTop"
style=
"height:350px;"
:myData=
"chartData"
:strArr=
"strArr"
/>
-->
<div
id=
"tenTopchart"
style=
"height:350px;"
class=
"tenTopchart"
ref=
"tenTopchart"
></div>
</el-row>
</el-row>
</el-card>
</el-card>
</el-col>
</el-col>
...
@@ -155,7 +160,7 @@
...
@@ -155,7 +160,7 @@
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
首选印象产品
</span>
<span>
首选印象产品
</span>
</div>
</div>
<shopChart
:shopChartData=
"shopChartData"
/>
<shopChart
v-if=
"isShowTop"
:shopChartData=
"shopChartData"
/>
</el-card>
</el-card>
</el-col>
</el-col>
<el-col
:span=
"7"
>
<el-col
:span=
"7"
>
...
@@ -170,32 +175,14 @@
...
@@ -170,32 +175,14 @@
<el-col
:span=
"8"
style=
"height: 100%;"
>
<el-col
:span=
"8"
style=
"height: 100%;"
>
<el-card
style=
"height: calc(100% - 2px);"
>
<el-card
style=
"height: calc(100% - 2px);"
>
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
下次出行首选国家
</span>
<span>
国家/目的地
</span>
</div>
</div>
<ul
class=
"countryUl"
>
<ul
class=
"countryUl"
>
<li>
<li
v-for=
"(item,index) in dataList.countryList"
:key=
"index"
>
<span
class=
"index"
style=
"font-size:14px"
>
NO.1
</span>
<span
class=
"index"
style=
"font-size:14px"
>
NO.
{{
index
+
1
}}
</span>
<img
style=
"margin:0 15px"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<!--
<img
style=
"margin:0 15px"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
-->
<span
style=
"font-size:18px;"
>
日本
</span>
<span
style=
"font-size:18px;"
>
{{
item
.
ItemName
}}
</span>
<span
class=
"rightSpan"
>
16520
<span
class=
"font-size-12"
>
票
</span>
</span>
<span
class=
"rightSpan"
>
{{
item
.
OrderCount
}}
<span
class=
"font-size-12"
>
票
</span>
</span>
</li>
<li>
<span
class=
"index"
style=
"font-size:14px"
>
NO.1
</span>
<img
style=
"margin:0 15px"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<span
style=
"font-size:18px;"
>
日本
</span>
<span
class=
"rightSpan"
>
16520
<span
class=
"font-size-12"
>
票
</span>
</span>
</li>
<li>
<span
class=
"index"
style=
"font-size:14px"
>
NO.1
</span>
<img
style=
"margin:0 15px"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<span
style=
"font-size:18px;"
>
日本
</span>
<span
class=
"rightSpan"
>
16520
<span
class=
"font-size-12"
>
票
</span>
</span>
</li>
<li>
<span
class=
"index"
style=
"font-size:14px"
>
NO.1
</span>
<img
style=
"margin:0 15px"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<span
style=
"font-size:18px;"
>
日本
</span>
<span
class=
"rightSpan"
>
16520
<span
class=
"font-size-12"
>
票
</span>
</span>
</li>
</li>
</ul>
</ul>
</el-card>
</el-card>
...
@@ -209,7 +196,7 @@
...
@@ -209,7 +196,7 @@
<span>
数据说明
</span>
<span>
数据说明
</span>
</div>
</div>
<div
style=
"height: 100%;"
class=
"sjsm"
>
<div
style=
"height: 100%;"
class=
"sjsm"
>
<div
v-for=
"(item, index) in
orders
"
:key=
"index"
>
<div
v-for=
"(item, index) in
dataList.GuestSurveyShopList
"
:key=
"index"
>
<div
class=
"left"
>
<div
class=
"left"
>
<img
v-if=
"item.SeasonType === 1"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<img
v-if=
"item.SeasonType === 1"
src=
"../../assets/img/tongji/cj.png"
alt=
""
>
<img
v-if=
"item.SeasonType === 2"
src=
"../../assets/img/tongji/xj.png"
alt=
""
>
<img
v-if=
"item.SeasonType === 2"
src=
"../../assets/img/tongji/xj.png"
alt=
""
>
...
@@ -218,7 +205,7 @@
...
@@ -218,7 +205,7 @@
<span
class=
"font-size-12"
>
{{
item
.
SeasonTypeName
}}
</span>
<span
class=
"font-size-12"
>
{{
item
.
SeasonTypeName
}}
</span>
</div>
</div>
<div
class=
"right"
>
<div
class=
"right"
>
<p>
累计报名
<span
class=
"hight-font"
>
{{
item
.
S
tudent
Count
}}
</span>
人,关联购物金额
<span
class=
"hight-font"
>
{{
item
.
TotalMoney
}}
</span>
万,报名均价为
<span
class=
"hight-font"
>
{{
item
.
Unit_Price
}}
</span>
元
</p>
<p>
累计报名
<span
class=
"hight-font"
>
{{
item
.
S
eason
Count
}}
</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>
<p>
最喜爱产品
<span
class=
"hight-font"
>
《
{{
item
.
LtName
}}
》
</span></p>
</div>
</div>
</div>
</div>
...
@@ -238,7 +225,7 @@
...
@@ -238,7 +225,7 @@
</el-row>
</el-row>
</div>
</div>
<div
class=
"situ"
>
<div
class=
"situ"
>
<div
class=
"c"
>
根据对客户
季节的统计可以,更好的了解不同季节客人的喜好,消费能力的判读,从而快速的推荐团队给客人等等等
</div>
<div
class=
"c"
>
根据对客户
意见调查的统计可以,更好的了解客人的喜好,消费能力的判读,从而快速的推荐团队给客人
</div>
<div
class=
"bot"
@
click=
"drawer = true"
>
<div
class=
"bot"
@
click=
"drawer = true"
>
查看更多,参与讨论(1)
查看更多,参与讨论(1)
<i
class=
"el-icon-d-arrow-right"
></i>
<i
class=
"el-icon-d-arrow-right"
></i>
...
@@ -271,26 +258,29 @@ export default {
...
@@ -271,26 +258,29 @@ export default {
return
{
return
{
discussID
:
0
,
discussID
:
0
,
drawer
:
false
,
drawer
:
false
,
chartData
:
[
1
,
2
,
3
,
4
],
chartData
:
[],
shopChartData
:
[],
shopChartData
:
[],
SexOrder
:
[],
SexOrder
:
[],
loading
:
false
,
loading
:
false
,
strArr
:
[
'春季'
,
'夏季'
,
'秋季'
,
'冬季'
],
strArr
:
[],
orders
:[]
orders
:[],
dataList
:{},
isShowTop
:
false
,
//出游日期
chuyouDate
:[],
chuyouList
:[],
};
};
},
watch
:{
},
watch
:{
},
},
mounted
()
{
mounted
()
{
// this.GetSexOrderList()
this
.
getData
();
this
.
initTimeChart
();
},
},
methods
:
{
methods
:
{
initTimeChart
(){
initTimeChart
(){
// let myChart = this.$echarts.init(this.$refs.timeChart);
var
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
'timeChart'
));
var
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
'timeChart'
));
console
.
log
(
"myChart"
,
myChart
)
var
option
=
{
var
option
=
{
xAxis
:
{
xAxis
:
{
axisTick
:
{
axisTick
:
{
...
@@ -300,100 +290,141 @@ export default {
...
@@ -300,100 +290,141 @@ export default {
show
:
false
show
:
false
},
},
type
:
'category'
,
type
:
'category'
,
data
:
[
'Mon'
,
'Tue'
,
'Wed'
,
'Thu'
,
'Fri'
,
'Sat'
,
'Sun'
]
data
:
this
.
chuyouDate
},
},
yAxis
:
{
yAxis
:
{
show
:
false
,
show
:
false
,
type
:
'value'
type
:
'value'
},
},
series
:
[{
series
:
[{
data
:
[
120
,
200
,
150
,
80
,
70
,
110
,
130
]
,
data
:
this
.
chuyouList
,
type
:
'bar'
,
type
:
'bar'
,
showBackground
:
true
,
showBackground
:
true
,
backgroundStyle
:
{
backgroundStyle
:
{
color
:
'rgba(220, 220, 220, 0.8)'
color
:
'rgba(220, 220, 220, 0.8)'
},
},
barWidth
:
'20'
,
itemStyle
:
{
itemStyle
:
{
color
:
'#0D2481'
color
:
'#0D2481'
}
}
}]
}]
};
};
console
.
log
(
"option"
,
option
)
myChart
.
setOption
(
option
);
myChart
.
setOption
(
option
);
},
},
GetSexOrderList
(){
//初始化top10插件
initTopTen
(){
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
'tenTopchart'
));
let
option
=
{
grid
:
{
left
:
'75'
,
right
:
'75'
},
xAxis
:
{
data
:
this
.
strArr
,
type
:
'category'
,
axisLabel
:
{
color
:
'#999999'
},
axisLine
:
{
show
:
false
},
},
yAxis
:
{
type
:
'value'
,
axisLine
:
{
show
:
false
},
axisLabel
:
{
color
:
'#999999'
,
formatter
:
'{value} %'
},
max
:
100
,
},
series
:
[{
data
:
this
.
chartData
,
type
:
'bar'
,
itemStyle
:
{
color
:
'#FFA475'
,
},
barWidth
:
'44'
}]
};
myChart
.
setOption
(
option
);
},
getData
(){
this
.
loading
=
true
this
.
loading
=
true
this
.
apipost
(
"/api/Statistic/GetSeasonShopList"
,
{},
res
=>
{
this
.
apipost
(
"/api/Statistic/GetGuestSurveyList"
,
{},
res
=>
{
console
.
log
(
"dsafsaf"
,
res
);
this
.
loading
=
false
;
let
contShop
=
res
.
data
.
data
[
0
].
TotalMoney
+
res
.
data
.
data
[
1
].
TotalMoney
+
res
.
data
.
data
[
2
].
TotalMoney
+
res
.
data
.
data
[
3
].
TotalMoney
,
if
(
res
.
data
.
resultCode
==
1
){
one
=
res
.
data
.
data
[
0
].
TotalMoney
,
this
.
dataList
=
res
.
data
.
data
;
two
=
res
.
data
.
data
[
1
].
TotalMoney
,
this
.
chartData
=
[];
three
=
res
.
data
.
data
[
2
].
TotalMoney
,
this
.
strArr
=
[];
four
=
res
.
data
.
data
[
3
].
TotalMoney
,
var
totalTenCount
=
0
;
contNum
=
res
.
data
.
data
[
0
].
SeasonCount
+
res
.
data
.
data
[
1
].
SeasonCount
+
res
.
data
.
data
[
2
].
SeasonCount
+
res
.
data
.
data
[
3
].
SeasonCount
,
var
totalChuyou
=
0
;
oneN
=
res
.
data
.
data
[
0
].
SeasonCount
,
this
.
dataList
.
TopTenScenicList
.
forEach
((
x
,
index
)
=>
{
twoN
=
res
.
data
.
data
[
1
].
SeasonCount
,
this
.
strArr
.
push
(
'TOP'
+
(
index
+
1
));
threeN
=
res
.
data
.
data
[
2
].
SeasonCount
,
totalTenCount
+=
x
.
OrderCount
;
fourN
=
res
.
data
.
data
[
3
].
SeasonCount
;
});
let
chartData
=
[],
shopChartData
=
[];
this
.
dataList
.
TopTenScenicList
.
forEach
((
x
,
index
)
=>
{
chartData
.
push
(
this
.
chartData
.
push
();
((
oneN
/
contNum
)
*
100
).
toFixed
(
2
)
this
.
chartData
.
push
(
parseFloat
(((
x
.
OrderCount
/
totalTenCount
)
*
100
).
toFixed
(
2
)));
)
});
chartData
.
push
(
//获取总的出游首选
((
twoN
/
contNum
)
*
100
).
toFixed
(
2
)
this
.
dataList
.
souXuanList
.
forEach
(
x
=>
{
)
totalChuyou
+=
x
.
OrderCount
;
chartData
.
push
(
})
((
threeN
/
contNum
)
*
100
).
toFixed
(
2
)
var
hefeng
=
this
.
dataList
.
souXuanList
[
0
].
OrderCount
)
var
xierdunSj
=
this
.
dataList
.
souXuanList
[
1
].
OrderCount
chartData
.
push
(
var
dantuan
=
this
.
dataList
.
souXuanList
[
2
].
OrderCount
((
fourN
/
contNum
)
*
100
).
toFixed
(
2
)
var
xierdun
=
this
.
dataList
.
souXuanList
[
3
].
OrderCount
)
//和风畅享系列
shopChartData
.
push
(
this
.
shopChartData
.
push
(
{
{
num
:
Number
(((
one
/
contShop
)
*
100
).
toFixed
(
2
)),
num
:
Number
(((
hefeng
/
totalChuyou
)
*
100
).
toFixed
(
0
)),
color
:
"#0D2481"
,
color
:
"#0D2481"
,
text
:
'春季'
text
:
'和风畅享系列'
}
}
)
)
shopChartData
.
push
(
this
.
shopChartData
.
push
(
{
{
num
:
Number
(((
two
/
contShop
)
*
100
).
toFixed
(
2
)),
num
:
Number
(((
xierdunSj
/
totalChuyou
)
*
100
).
toFixed
(
0
)),
color
:
"#FFA475"
,
color
:
"#FFA97C"
,
text
:
'夏季'
text
:
'希尔顿假期<升级版>'
}
}
)
)
shopChartData
.
push
(
this
.
shopChartData
.
push
(
{
{
num
:
Number
(((
three
/
contShop
)
*
100
).
toFixed
(
2
)),
num
:
Number
(((
dantuan
/
totalChuyou
)
*
100
).
toFixed
(
0
)),
color
:
"#99BD7B"
,
color
:
"#99BD7B"
,
text
:
'秋季'
text
:
'单团小团系列(本州大阪.东京)'
}
}
)
)
shopChartData
.
push
(
this
.
shopChartData
.
push
(
{
{
num
:
Number
(((
four
/
contShop
)
*
100
).
toFixed
(
2
)),
num
:
Number
(((
xierdun
/
totalChuyou
)
*
100
).
toFixed
(
0
)),
color
:
"#D2C9F1"
,
color
:
"#D2C9F1"
,
text
:
'冬季'
text
:
'希尔顿假期系列'
}
}
)
)
this
.
chartData
=
chartData
this
.
shopChartData
=
shopChartData
//遍历出游计划
this
.
orders
=
res
.
data
.
data
;
this
.
chuyouDate
=
[];
this
.
chuyouList
=
[];
this
.
getOrders
()
this
.
dataList
.
chuyouList
.
forEach
(
x
=>
{
this
.
chuyouDate
.
push
(
x
.
ItemName
);
this
.
chuyouList
.
push
(
x
.
OrderCount
);
})
this
.
isShowTop
=
true
;
this
.
initTimeChart
();
this
.
initTopTen
();
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
});
},
},
getOrders
(){
this
.
apipost
(
"/api/Statistic/GetSeasonOrderList"
,
{},
res
=>
{
console
.
log
(
res
)
res
.
data
.
data
.
forEach
(
x
=>
{
this
.
orders
[
x
.
NewSeasonType
-
1
].
LtName
=
x
.
LtName
;
this
.
orders
[
x
.
NewSeasonType
-
1
].
Unit_Price
=
x
.
Unit_Price
;
});
this
.
loading
=
false
});
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
src/components/statistics/assets.vue
View file @
13ea9508
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
}
}
.sex
.sjsm
>
div
:nth-child
(
1
)
{
.sex
.sjsm
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.sex
.sjsm
>
div
{
.sex
.sjsm
>
div
{
...
...
src/components/statistics/gaoxiao.vue
View file @
13ea9508
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
}
}
.sex
.sjsm
>
div
:nth-child
(
1
)
{
.sex
.sjsm
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.sex
.sjsm
>
div
{
.sex
.sjsm
>
div
{
...
...
src/components/statistics/marriage.vue
View file @
13ea9508
...
@@ -84,7 +84,7 @@
...
@@ -84,7 +84,7 @@
<
template
>
<
template
>
<div
class=
"marriage"
v-loading=
"loading"
>
<div
class=
"marriage"
v-loading=
"loading"
>
<div
class=
"statistics-title bold18"
>
婚姻统计
</div>
<div
class=
"statistics-title bold18"
>
婚姻统计
</div>
<div
class=
"conten-box"
v-if=
"!loading"
>
<div
class=
"conten-box"
>
<el-row
:gutter=
"25"
class=
"top"
>
<el-row
:gutter=
"25"
class=
"top"
>
<el-col
:span=
"12"
class=
"left"
>
<el-col
:span=
"12"
class=
"left"
>
<el-card
class=
"blue"
>
<el-card
class=
"blue"
>
...
@@ -187,7 +187,7 @@ export default {
...
@@ -187,7 +187,7 @@ export default {
BbsList
:
[],
BbsList
:
[],
isShow
:
false
,
isShow
:
false
,
orders
:[],
orders
:[],
dataList
:[]
dataList
:[]
,
};
};
},
watch
:{
},
watch
:{
...
@@ -197,7 +197,9 @@ export default {
...
@@ -197,7 +197,9 @@ export default {
},
},
methods
:
{
methods
:
{
initData
()
{
initData
()
{
this
.
loading
=
true
;
this
.
apipost
(
"/api/Statistic/GetMarriageShopList"
,
{},
res
=>
{
this
.
apipost
(
"/api/Statistic/GetMarriageShopList"
,
{},
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
){
if
(
res
.
data
.
resultCode
==
1
){
this
.
strArr
=
[];
this
.
strArr
=
[];
let
data
=
res
.
data
.
data
;
let
data
=
res
.
data
.
data
;
...
...
src/components/statistics/old.vue
View file @
13ea9508
<
template
>
<
template
>
<div
class=
"old-box"
>
<div
class=
"old-box"
v-loading=
"loading"
>
<div
class=
"statistics-title bold18"
>
客户年龄分布统计
</div>
<div
class=
"statistics-title bold18"
>
客户年龄分布统计
</div>
<el-row
:gutter=
"25"
style=
"height:calc(100% - 62px)"
>
<el-row
:gutter=
"25"
style=
"height:calc(100% - 62px)"
>
<el-col
:span=
"12"
style=
"height:100%;"
>
<el-col
:span=
"12"
style=
"height:100%;"
>
...
@@ -132,6 +132,7 @@ export default {
...
@@ -132,6 +132,7 @@ export default {
showChats
:
[],
showChats
:
[],
moneys
:
[],
moneys
:
[],
isLoaded
:
false
,
isLoaded
:
false
,
loading
:
false
,
icons
:
[
icons
:
[
"icon-yinger"
,
"icon-yinger"
,
"icon-ertong"
,
"icon-ertong"
,
...
@@ -164,7 +165,9 @@ export default {
...
@@ -164,7 +165,9 @@ export default {
});
});
},
},
init
()
{
init
()
{
this
.
loading
=
true
;
this
.
apipost
(
"/api/Statistic/GetAgeShopList"
,
{},
res
=>
{
this
.
apipost
(
"/api/Statistic/GetAgeShopList"
,
{},
res
=>
{
this
.
loading
=
false
;
res
.
data
.
data
.
forEach
(
x
=>
{
res
.
data
.
data
.
forEach
(
x
=>
{
this
.
scaleData
.
push
({
this
.
scaleData
.
push
({
name
:
x
.
AgeTypeName
,
name
:
x
.
AgeTypeName
,
...
...
src/components/statistics/roomStatistical.vue
View file @
13ea9508
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
}
}
.sex
.sjsm
>
div
:nth-child
(
1
)
{
.sex
.sjsm
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.sex
.sjsm
>
div
{
.sex
.sjsm
>
div
{
...
...
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