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
ebfe0ee7
Commit
ebfe0ee7
authored
Jul 16, 2019
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更改个人中心
parent
d6ee3123
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
930 additions
and
121 deletions
+930
-121
Login.vue
src/components/Login.vue
+11
-8
index.vue
src/components/personalCenter/index.vue
+2
-1
dailyAnalysis.vue
src/components/visualization/dailyAnalysis.vue
+560
-110
nianduduibi.vue
src/components/visualization/nianduduibi.vue
+155
-0
nianduzoushi.vue
src/components/visualization/nianduzoushi.vue
+201
-0
pingtai.vue
src/components/visualization/pingtai.vue
+0
-1
progress.vue
src/components/visualization/progress.vue
+1
-1
No files found.
src/components/Login.vue
View file @
ebfe0ee7
...
@@ -304,14 +304,17 @@ export default {
...
@@ -304,14 +304,17 @@ export default {
this
.
$cookie
.
set
(
"RB_Group_id"
,
userData
.
RB_Group_id
);
this
.
$cookie
.
set
(
"RB_Group_id"
,
userData
.
RB_Group_id
);
localStorage
.
menu
=
JSON
.
stringify
(
firstTire
)
localStorage
.
menu
=
JSON
.
stringify
(
firstTire
)
this
.
loginState
=
0
;
this
.
loginState
=
0
;
let
previousPathInfo
=
localStorage
.
previousPathInfo
?
JSON
.
parse
(
localStorage
.
previousPathInfo
)
:
''
// let previousPathInfo = localStorage.previousPathInfo ? JSON.parse(localStorage.previousPathInfo) : ''
if
(
previousPathInfo
)
{
// if (previousPathInfo) {
let
path
=
previousPathInfo
.
path
.
indexOf
(
'login'
)
===
-
1
?
previousPathInfo
.
path
:
'index'
// let path = previousPathInfo.path.indexOf('login') === -1 ? previousPathInfo.path : 'index'
let
query
=
previousPathInfo
.
query
?
previousPathInfo
.
query
:
{}
// let query = previousPathInfo.query ? previousPathInfo.query : {}
this
.
$router
.
push
({
path
:
"/"
+
path
,
query
:
query
});
// this.$router.push({ path: "/"+ path, query: query });
}
else
{
// }else {
this
.
$router
.
push
({
path
:
"/index"
});
// this.$router.push({ path: "/index" });
}
// }
this
.
$router
.
push
({
path
:
"/personalCenter"
});
//登录成功后跳转页面
//登录成功后跳转页面
// this.$notify.success({
// this.$notify.success({
// title:'提示',
// title:'提示',
...
...
src/components/personalCenter/index.vue
View file @
ebfe0ee7
...
@@ -181,7 +181,8 @@ export default {
...
@@ -181,7 +181,8 @@ export default {
},
},
result
:
null
,
result
:
null
,
orders
:
[],
orders
:
[],
pageLoading
:
false
pageLoading
:
false
,
};
};
},
},
components
:
{
components
:
{
...
...
src/components/visualization/dailyAnalysis.vue
View file @
ebfe0ee7
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
<div
class=
"daliy"
v-loading=
"loading"
v-if=
"result"
:style=
"
{zoom:zoomW}">
<div
class=
"daliy"
v-loading=
"loading"
v-if=
"result"
:style=
"
{zoom:zoomW}">
<div
class=
"head"
>
<div
class=
"head"
>
<div
class=
"name"
>
销售结果分析
</div>
<div
class=
"name"
>
销售结果分析
</div>
<div
class=
"nav-item
active
"
>
日常销售分析
</div>
<div
class=
"nav-item
"
:class=
"
{'active':tab==0}" @click="changeTabHandler(0)
">日常销售分析
</div>
<div
class=
"nav-item"
>
年度数据统计
</div>
<div
class=
"nav-item"
:class=
"
{'active':tab==1}" @click="changeTabHandler(1)"
>年度数据统计
</div>
<!--
<div
class=
"travelData"
>
<!--
<div
class=
"travelData"
>
出团日期:
出团日期:
<span
class=
"ipt"
>
<span
class=
"ipt"
>
...
@@ -16,115 +16,293 @@
...
@@ -16,115 +16,293 @@
<div
class=
"right-bottom-border-samll"
></div>
<div
class=
"right-bottom-border-samll"
></div>
<input
v-model=
"endTime"
readonly
/>
<input
v-model=
"endTime"
readonly
/>
</span>
</span>
</div>
-->
</div>
-->
</div>
</div>
<div
class=
"base-box"
>
<div
v-if=
"tab==0"
>
<div
class=
"base-item"
>
<div
class=
"base-box"
>
<div
class=
"base-item"
>
<div
class=
"rightbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"top-after"
></div>
<div
class=
"top"
>
<span
class=
"t"
>
收客走势
</span>
<span
class=
"d"
>
<i
class=
"iconfont icon-people"
></i>
收客人数
<span
class=
"blod"
>
{{
result
.
GuestTNum
}}
</span>
</span>
</div>
<div
class=
"content-box"
>
<div
class=
"qu-box"
>
<shoukequ
:data=
"result.GuestList"
></shoukequ>
</div>
<div
class=
"qu-price-box"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
客单价区间销售占比
</div>
<div
class=
"c"
>
<pricQujian
:data=
"result.GuestRatioList"
></pricQujian>
</div>
</div>
</div>
</div>
<div
class=
"base-item"
>
<div
class=
"rightbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"top-after"
></div>
<div
class=
"top"
>
<span
class=
"t"
>
业绩走势
</span>
<span
class=
"d right"
>
<i
class=
"iconfont icon-people"
></i>
总业绩
<span
class=
"blod"
>
¥
{{
result
.
SaleTMoney
}}
</span>
</span>
</div>
<div
class=
"zhu-content-box"
>
<yeji
:data=
"result.TrajectoryList"
></yeji>
</div>
</div>
</div>
<div
class=
"middle-order-box"
>
<div
class=
"rightbox"
></div>
<div
class=
"rightbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"top-after"
></div>
<div
class=
"t"
>
<div
class=
"top"
>
<span
class=
"line"
></span>
<span
class=
"t"
>
收客走势
</span>
<span
class=
"n"
>
订单数据分析展示
</span>
<span
class=
"d"
>
<span
class=
"line last"
></span>
<i
class=
"iconfont icon-people"
></i>
收客人数
<span
class=
"blod"
>
{{
result
.
GuestTNum
}}
</span>
</span>
</div>
</div>
<div
class=
"content-box"
>
<div
class=
"content-box"
>
<div
class=
"qu-box"
>
<div
class=
"item-box"
style=
"width:346px;"
>
<shoukequ
:data=
"result.GuestList"
></shoukequ>
</div>
<div
class=
"qu-price-box"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
客单价区间销售
占比
</div>
<div
class=
"t"
>
订单来源
占比
</div>
<div
class=
"c"
>
<div
class=
"c"
>
<pricQujian
:data=
"result.GuestRatioList"
></pricQujian>
<pingtai
:data=
"result.OrderFormRatioList"
></pingtai>
</div>
</div>
<div
class=
"item-box"
style=
"width:346px;"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
订单利润与亏损占比
</div>
<div
class=
"c lirun"
>
<div
class=
"item"
>
<span
class=
"blod"
>
80%
</span>
<br
/>
盈利率
<div
class=
"progress"
style=
"clip: rect(0px, 100px, 80px, 0px)"
></div>
</div>
<div
class=
"item"
style=
"color:#5D78FF;"
>
<span
class=
"blod"
>
20%
</span>
<br
/>
亏损率
<div
class=
"progress"
style=
"clip: rect(0px, 100px, 20px, 0px);border-color:#5D78FF;"
></div>
</div>
</div>
</div>
<div
class=
"item-box"
style=
"flex:1"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
订单类别销售占比
</div>
<div
class=
"c lirun"
>
<div
class=
"more-items"
:style=
"
{'margin-right':index==result.OrderB2BTypeList.length?'0px':'20px'}"
v-for="(item, index) in result.OrderB2BTypeList"
:key="index"
>
<progressAny
:percent=
"item.Ratio"
:item=
"item.Name"
:count=
"item.Num"
></progressAny>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"b
ase-item
"
>
<div
class=
"b
ottom-order-box
"
>
<div
class=
"rightbox"
></div>
<div
class=
"rightbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"top-after"
></div>
<div
class=
"l"
>
<div
class=
"top"
>
<span
class=
"t"
>
业绩走势
</span>
<span
class=
"d right"
>
<i
class=
"iconfont icon-people"
></i>
总业绩
<span
class=
"blod"
>
¥
{{
result
.
SaleTMoney
}}
</span>
</span>
</div>
<div
class=
"zhu-content-box"
>
<yeji
:data=
"result.TrajectoryList"
></yeji>
</div>
</div>
</div>
<div
class=
"middle-order-box"
>
<div
class=
"rightbox"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"t"
>
<span
class=
"line"
></span>
<span
class=
"n"
>
订单数据分析展示
</span>
<span
class=
"line last"
></span>
</div>
<div
class=
"content-box"
>
<div
class=
"item-box"
style=
"width:346px;"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
订单来源占比
</div>
<div
class=
"t"
>
产品线路销售占比
</div>
<div
class=
"c"
>
<div
v-for=
"(item, index) in result.LineRatioList"
style=
"height:100%;"
:key=
"index"
>
<pingtai
:data=
"result.OrderFormRatioList"
></pingtai>
<div
</div>
class=
"more-itms"
</div>
style=
"min-width:110px;height:100%;"
<div
class=
"item-box"
style=
"width:346px;"
>
:style=
"
{'margin-right':index==result.LineRatioList.length?'0px':'20px'}"
<div
class=
"sq-block-right"
></div>
v-if="item.Num>0"
<div
class=
"sq-block-left"
></div>
>
<div
class=
"t"
>
订单利润与亏损占比
</div>
<progressAny
<div
class=
"c lirun"
>
:percent=
"item.Ratio"
<div
class=
"item"
>
:item=
"item.Name"
<span
class=
"blod"
>
80%
</span>
:count=
"item.Num"
<br
/>
盈利率
:rank=
"2"
<div
class=
"progress"
style=
"clip: rect(0px, 100px, 80px, 0px)"
></div>
color=
"#5D78FF"
</div>
></progressAny>
<div
class=
"item"
style=
"color:#5D78FF;"
>
<span
class=
"blod"
>
20%
</span>
<br
/>
亏损率
<div
class=
"progress"
style=
"clip: rect(0px, 100px, 20px, 0px);border-color:#5D78FF;"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"
item-box"
style=
"flex:1
"
>
<div
class=
"
r
"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
订单类别销售占比
</div>
<div
class=
"t"
>
团队类型占比
</div>
<div
class=
"c lirun"
>
<div
class=
"c"
>
<div
class=
"more-items"
:style=
"
{'margin-right':index==result.OrderB2BTypeList.length?'0px':'20px'}" v-for="(item, index) in result.OrderB2BTypeList" :key="index">
<teamRatio
:data=
"result.OrderJoinTypeRatioList"
></teamRatio>
<progressAny
:percent=
"item.Ratio"
:item=
"item.Name"
:count=
"item.Num"
></progressAny>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"bottom-order-box"
>
<div
v-else
>
<div
class=
"rightbox"
></div>
<div
class=
"base-box"
v-if=
"yResult"
>
<div
class=
"leftbox"
></div>
<div
class=
"base-item big"
>
<div
class=
"l"
>
<div
class=
"rightbox"
></div>
<div
class=
"sq-block-right"
></div>
<div
class=
"leftbox"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"top-after"
></div>
<div
class=
"t"
>
产品线路销售占比
</div>
<div
class=
"lef-box"
>
<div
class=
"more-itms"
:style=
"
{'margin-right':index==result.LineRatioList.length?'0px':'20px'}" v-for="(item, index) in result.LineRatioList" :key="index">
<div
class=
"t"
style=
"margin-top: -10px;"
>
<progressAny
v-if=
"item.Num>0"
:percent=
"item.Ratio"
:item=
"item.Name"
:count=
"item.Num"
:rank=
'2'
color=
"#5D78FF"
></progressAny>
<span
class=
"line"
></span>
<span
class=
"n"
>
{{
year
}}
年度业绩统计
</span>
<span
class=
"line last"
></span>
</div>
<div
class=
"table-s"
>
<table>
<thead>
<tr>
<th>
月份
</th>
<th>
销售额
</th>
<th>
销售额环比
</th>
<th>
销售额同比
</th>
<th>
销售额占比
</th>
<th>
收客人数
</th>
<th>
人数环比
</th>
<th>
人数同比
</th>
<th>
待收金额
</th>
<th>
投诉
</th>
</tr>
</thead>
<tbody>
<tr
v-for=
"(item, index) in yResult.YearStatistics"
:key=
"index"
>
<td
class=
"month"
>
{{
item
.
Month
}}
</td>
<td>
{{
item
.
NowSaleMoney
}}
</td>
<td
:class=
"
{'up':item.HSaleProbability>0,'down':item.HSaleProbability
<0
}"
>
<i
:class=
"
{'el-icon-caret-top':item.HSaleProbability>0,'el-icon-caret-bottom':item.HSaleProbability
<0
}"
></i>
{{
item
.
HSaleProbability
}}
%
</td>
<td
:class=
"
{'up':item.TSaleProbability>0,'down':item.TSaleProbability
<0
}"
>
<i
:class=
"
{'el-icon-caret-top':item.TSaleProbability>0,'el-icon-caret-bottom':item.TSaleProbability
<0
}"
></i>
{{
item
.
TSaleProbability
}}
%
</td>
<td>
{{
item
.
SaleMoneyProbability
}}
%
</td>
<td>
{{
item
.
NowSaleGuest
}}
</td>
<td
:class=
"
{'up':item.HGuestProbability>0,'down':item.HGuestProbability
<0
}"
>
<i
:class=
"
{'el-icon-caret-top':item.HGuestProbability>0,'el-icon-caret-bottom':item.HGuestProbability
<0
}"
></i>
{{
item
.
HGuestProbability
}}
%
</td>
<td
:class=
"
{'up':item.TGuestProbability>0,'down':item.TGuestProbability
<0
}"
>
<i
:class=
"
{'el-icon-caret-top':item.TGuestProbability>0,'el-icon-caret-bottom':item.TGuestProbability
<0
}"
></i>
{{
item
.
TGuestProbability
}}
%
</td>
<td
class=
"down"
>
{{
item
.
NowSaleDueIn
}}
</td>
<td
class=
"down"
>
{{
item
.
NowComplainNum
}}
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div
class=
"rig-box"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"sq-block-left"
></div>
<div
class=
"t"
>
去年数据对比
</div>
<div
class=
"c"
>
<div
class=
"item"
>
<div
class=
"len"
>
<div
class=
"ico"
></div>
<div
class=
"txt"
>
<span
class=
"blod"
>
¥
{{
yResult
.
YearComparison
.
NowSaleMoney
}}
</span>
<br
/>
今年
</div>
<div
class=
"ico yellow"
></div>
<div
class=
"txt yellow"
>
<span
class=
"blod"
>
¥
{{
yResult
.
YearComparison
.
BeforSaleMoney
}}
</span>
<br
/>
去年
</div>
</div>
<div
class=
"char"
>
<nddb
:newdata=
"yResult.YearComparison.NowSaleMoney"
:olddata=
"yResult.YearComparison.BeforSaleMoney"
title=
"销售额"
:colors=
"colorArray[0]"
></nddb>
</div>
</div>
<div
class=
"item"
>
<div
class=
"len"
>
<div
class=
"ico"
></div>
<div
class=
"txt"
>
<span
class=
"blod"
>
{{
yResult
.
YearComparison
.
NowGuestNum
}}
人
</span>
<br
/>
今年
</div>
<div
class=
"ico green"
></div>
<div
class=
"txt green"
>
<span
class=
"blod"
>
{{
yResult
.
YearComparison
.
BeforGuestNum
}}
人
</span>
<br
/>
去年
</div>
</div>
<div
class=
"char"
>
<nddb
:newdata=
"yResult.YearComparison.NowGuestNum"
:olddata=
"yResult.YearComparison.BeforGuestNum"
title=
"收客数"
:colors=
"colorArray[1]"
></nddb>
</div>
</div>
<div
class=
"item"
>
<div
class=
"len"
>
<div
class=
"ico"
></div>
<div
class=
"txt"
>
<span
class=
"blod"
>
{{
yResult
.
YearComparison
.
NowComplainNum
}}
起
</span>
<br
/>
今年
</div>
<div
class=
"ico red"
></div>
<div
class=
"txt red"
>
<span
class=
"blod"
>
{{
yResult
.
YearComparison
.
BeforComplainNum
}}
起
</span>
<br
/>
去年
</div>
</div>
<div
class=
"char"
>
<nddb
:newdata=
"yResult.YearComparison.NowComplainNum"
:olddata=
"yResult.YearComparison.BeforComplainNum"
:colors=
"colorArray[2]"
title=
"投诉"
></nddb>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"r"
>
<div
class=
"base-box"
>
<div
class=
"sq-block-right"
></div>
<div
class=
"base-item zoushi"
>
<div
class=
"sq-block-left"
></div>
<div
class=
"rightbox"
></div>
<div
class=
"t"
>
团队类型占比
</div>
<div
class=
"leftbox"
></div>
<div
class=
"c"
>
<div
class=
"top-after"
></div>
<teamRatio
:data=
"result.OrderJoinTypeRatioList"
></teamRatio>
<div
class=
"big-title"
>
业绩走势
</div>
<div
class=
"big-content"
>
<ndzs
:data=
"yResult.YearTrend"
></ndzs>
</div>
<div
class=
"d"
>
<div
class=
"block"
></div>
<span
class=
"red"
>
交易额
</span>
<div
class=
"block red"
></div>
<span
class=
"red"
>
未收款
</span>
<div
class=
"block yellow"
></div>
<span
class=
"yellow"
>
收客人数
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -136,15 +314,25 @@ import pricQujian from "./priceQujian";
...
@@ -136,15 +314,25 @@ import pricQujian from "./priceQujian";
import
yeji
from
"./yeji"
;
import
yeji
from
"./yeji"
;
import
pingtai
from
"./pingtai"
;
import
pingtai
from
"./pingtai"
;
import
progressAny
from
"./progress"
;
import
progressAny
from
"./progress"
;
import
teamRatio
from
'./teamRatio'
import
teamRatio
from
"./teamRatio"
;
import
nddb
from
"./nianduduibi"
;
import
ndzs
from
"./nianduzoushi"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
beginTime
:
"2019-07-01"
,
beginTime
:
"2019-07-01"
,
endTime
:
"2019-07-31"
,
endTime
:
"2019-07-31"
,
zoomW
:
0
,
zoomW
:
0
,
loading
:
false
,
loading
:
false
,
result
:
null
result
:
null
,
tab
:
1
,
colorArray
:
[
[
"#EFB017"
,
"#F7E61B"
],
[
"#19B466"
,
"#65DAC2"
],
[
"#FD3C7C"
,
"#FFABC7"
]
],
year
:
0
,
yResult
:
null
};
};
},
},
components
:
{
components
:
{
...
@@ -153,24 +341,39 @@ export default {
...
@@ -153,24 +341,39 @@ export default {
yeji
,
yeji
,
pingtai
,
pingtai
,
progressAny
,
progressAny
,
teamRatio
teamRatio
,
nddb
,
ndzs
},
},
mounted
()
{
mounted
()
{
this
.
year
=
new
Date
().
getFullYear
();
this
.
zoomW
=
(
document
.
documentElement
.
clientWidth
/
1920
).
toFixed
(
2
);
this
.
zoomW
=
(
document
.
documentElement
.
clientWidth
/
1920
).
toFixed
(
2
);
this
.
init
()
this
.
init
();
this
.
initYear
();
},
},
methods
:{
methods
:
{
init
(){
init
()
{
this
.
loading
=
true
this
.
loading
=
true
;
let
query
=
{
let
query
=
{
StartTime
:
'2019-01-01'
,
StartTime
:
"2019-01-01"
,
EndTime
:
'2019-12-30'
,
EndTime
:
"2019-12-30"
,
PriceSection
:
'1000-2999,3000-4999,5000-7999,8000-9999,10000-*'
PriceSection
:
"1000-2999,3000-4999,5000-7999,8000-9999,10000-*"
}
};
this
.
apipost
(
"sellorder_post_GetSellDeepAnalysisForDaily"
,
query
,
r
=>
{
this
.
apipost
(
"sellorder_post_GetSellDeepAnalysisForDaily"
,
query
,
r
=>
{
this
.
result
=
r
.
data
.
data
this
.
result
=
r
.
data
.
data
;
this
.
loading
=
false
this
.
loading
=
false
;
})
});
},
initYear
()
{
let
query
=
{
Year
:
this
.
year
};
this
.
apipost
(
"sellorder_post_GetSellDeepAnalysisForYear"
,
query
,
r
=>
{
this
.
yResult
=
r
.
data
.
data
;
});
},
changeTabHandler
(
index
)
{
this
.
tab
=
index
;
}
}
}
}
};
};
...
@@ -185,7 +388,7 @@ export default {
...
@@ -185,7 +388,7 @@ export default {
overflow-y
:
auto
;
overflow-y
:
auto
;
padding-bottom
:
20px
;
padding-bottom
:
20px
;
padding-right
:
10px
;
padding-right
:
10px
;
overflow-x
:
hidden
overflow-x
:
hidden
;
}
}
.daliy
.head
{
.daliy
.head
{
height
:
64px
;
height
:
64px
;
...
@@ -493,10 +696,12 @@ export default {
...
@@ -493,10 +696,12 @@ export default {
.daliy
.bottom-order-box
{
.daliy
.bottom-order-box
{
height
:
246px
;
height
:
246px
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
,
.daliy
.middle-order-box
.t
{
.daliy
.middle-order-box
.t
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
.line
,
.daliy
.middle-order-box
.t
.line
{
.daliy
.middle-order-box
.t
.line
{
display
:
block
;
display
:
block
;
background
:
url("../../assets/img/persion/split-line.png")
repeat
;
background
:
url("../../assets/img/persion/split-line.png")
repeat
;
...
@@ -506,6 +711,7 @@ export default {
...
@@ -506,6 +711,7 @@ export default {
flex
:
1
;
flex
:
1
;
position
:
relative
;
position
:
relative
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
.line
::after
,
.daliy
.middle-order-box
.t
.line
::after
{
.daliy
.middle-order-box
.t
.line
::after
{
display
:
block
;
display
:
block
;
content
:
" "
;
content
:
" "
;
...
@@ -513,6 +719,7 @@ export default {
...
@@ -513,6 +719,7 @@ export default {
width
:
100%
;
width
:
100%
;
background
:
#075089
;
background
:
#075089
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
.line
::before
,
.daliy
.middle-order-box
.t
.line
::before
{
.daliy
.middle-order-box
.t
.line
::before
{
width
:
3px
;
width
:
3px
;
height
:
3px
;
height
:
3px
;
...
@@ -524,10 +731,12 @@ export default {
...
@@ -524,10 +731,12 @@ export default {
top
:
3px
;
top
:
3px
;
border-radius
:
50%
;
border-radius
:
50%
;
}
}
.daliy
.base-box
.base-item
.lef-box
.t
.line.last
::before
,
.daliy
.middle-order-box
.t
.line.last
::before
{
.daliy
.middle-order-box
.t
.line.last
::before
{
left
:
unset
;
left
:
unset
;
right
:
-6px
;
right
:
-6px
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
.n
,
.daliy
.middle-order-box
.t
.n
{
.daliy
.middle-order-box
.t
.n
{
display
:
block
;
display
:
block
;
font-size
:
20px
;
font-size
:
20px
;
...
@@ -536,6 +745,9 @@ export default {
...
@@ -536,6 +745,9 @@ export default {
color
:
#fff
;
color
:
#fff
;
font-family
:
pingfangR
;
font-family
:
pingfangR
;
}
}
.daliy
.base-box
.base-item.big
.lef-box
.t
.n
{
width
:
168px
;
}
.daliy
.middle-order-box
.content-box
{
.daliy
.middle-order-box
.content-box
{
margin-top
:
15px
;
margin-top
:
15px
;
display
:
flex
;
display
:
flex
;
...
@@ -570,7 +782,6 @@ export default {
...
@@ -570,7 +782,6 @@ export default {
}
}
.daliy
.middle-order-box
.content-box
.item-box
.lirun
{
.daliy
.middle-order-box
.content-box
.item-box
.lirun
{
display
:
flex
;
display
:
flex
;
}
}
.daliy
.middle-order-box
.content-box
.item-box
.lirun
.item
{
.daliy
.middle-order-box
.content-box
.item-box
.lirun
.item
{
width
:
100px
;
width
:
100px
;
...
@@ -606,7 +817,7 @@ export default {
...
@@ -606,7 +817,7 @@ export default {
}
}
.daliy
.middle-order-box
.content-box
.item-box
.lirun
.more-itms
{
.daliy
.middle-order-box
.content-box
.item-box
.lirun
.more-itms
{
height
:
100%
;
height
:
100%
;
flex
:
1
;
flex
:
1
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
.daliy
.bottom-order-box
{
.daliy
.bottom-order-box
{
...
@@ -624,7 +835,7 @@ export default {
...
@@ -624,7 +835,7 @@ export default {
height
:
215px
;
height
:
215px
;
padding
:
0
18px
;
padding
:
0
18px
;
background
:
rgba
(
3
,
85
,
164
,
0.2
);
background
:
rgba
(
3
,
85
,
164
,
0.2
);
flex-direction
:
row
flex-direction
:
row
;
}
}
.daliy
.bottom-order-box
.r
{
.daliy
.bottom-order-box
.r
{
width
:
346px
;
width
:
346px
;
...
@@ -652,18 +863,257 @@ export default {
...
@@ -652,18 +863,257 @@ export default {
height
:
40px
;
height
:
40px
;
line-height
:
40px
;
line-height
:
40px
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#FFF
;
color
:
#fff
;
font-family
:
pingfangR
;
font-family
:
pingfangR
;
width
:
100%
;
width
:
100%
;
}
}
.daliy
.bottom-order-box
.r
.c
{
.daliy
.bottom-order-box
.r
.c
{
flex
:
1
;
flex
:
1
;
width
:
100%
;
width
:
100%
;
height
:
calc
(
100%
-
50px
);
height
:
calc
(
100%
-
50px
);
}
}
.daliy
.bottom-order-box
.l
.more-items
{
.daliy
.bottom-order-box
.l
.more-items
{
flex
:
1
;
flex
:
1
;
height
:
100%
;
height
:
100%
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
.daliy
.base-box
.base-item.big
{
height
:
548px
;
display
:
flex
;
}
.daliy
.base-box
.base-item.big
.rig-box
{
width
:
260px
;
margin-left
:
20px
;
height
:
490px
;
background
:
rgba
(
3
,
85
,
164
,
0.2
);
position
:
relative
;
}
.daliy
.base-box
.base-item.big
.lef-box
{
flex
:
1
;
height
:
100%
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
{
width
:
100%
;
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
thead
{
background
:
rgba
(
39
,
88
,
171
,
0
);
border
:
1px
solid
rgba
(
15
,
92
,
166
,
1
);
border-radius
:
4px
4px
0px
0px
;
box-shadow
:
0
0
13px
rgba
(
15
,
92
,
166
,
0.8
)
inset
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
thead
th
{
height
:
30px
;
text-align
:
left
;
padding-left
:
10px
;
font-size
:
14px
;
font-family
:
pingfangR
;
color
:
#fff
;
-webkit-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
tr
:nth-child
(
odd
)
{
background
:
rgba
(
26
,
75
,
157
,
0.26
);
border
:
1px
solid
rgba
(
75
,
188
,
255
,
0
);
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
tr
:nth-child
(
even
)
{
background
:
rgba
(
26
,
75
,
157
,
0.13
);
border
:
1px
solid
rgba
(
75
,
188
,
255
,
0
);
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
td
{
font-size
:
12px
;
color
:
#a2dbff
;
text-align
:
left
;
padding-left
:
10px
;
height
:
36px
;
line-height
:
36px
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
td
.month
{
color
:
#fff
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
td
.up
{
color
:
#00e000
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
td
.down
{
color
:
#ff4c52
;
}
.daliy
.base-box
.base-item.big
.lef-box
.table-s
table
tbody
tr
:hover
{
border
:
1px
solid
rgba
(
75
,
188
,
255
,
1
);
box-shadow
:
0
0
13px
rgba
(
75
,
188
,
255
,
0.8
);
background
:
none
;
}
.daliy
.base-box
.base-item.big
.rig-box
.t
{
margin-top
:
14px
;
text-align
:
center
;
font-size
:
14px
;
color
:
#fff
;
font-family
:
pingfangR
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
{
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
{
margin-top
:
15px
;
padding-left
:
20px
;
display
:
flex
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.char
{
width
:
120px
;
height
:
120px
;
margin-right
:
15px
;
background
:
rgba
(
1
,
156
,
255
,
0.1
);
border-radius
:
50%
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
{
flex
:
1
;
padding-top
:
10px
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.ico
{
width
:
20px
;
height
:
5px
;
margin-bottom
:
5px
;
background
:
linear-gradient
(
135deg
,
rgba
(
0
,
103
,
204
,
0.88
),
rgba
(
0
,
191
,
249
,
0.88
)
);
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.ico.yellow
{
background
:
linear-gradient
(
135deg
,
rgba
(
239
,
176
,
23
,
0.88
),
rgba
(
247
,
230
,
27
,
0.88
)
);
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.ico.green
{
background
:
linear-gradient
(
135deg
,
rgba
(
101
,
218
,
194
,
1
),
rgba
(
25
,
180
,
102
,
1
)
);
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.ico.red
{
background
:
linear-gradient
(
135deg
,
rgba
(
255
,
171
,
199
,
0.88
),
rgba
(
253
,
60
,
124
,
0.88
)
);
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.txt
{
font-size
:
12px
;
color
:
#0067cc
;
margin-bottom
:
10px
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.txt
.blod
{
font-family
:
pingfangR
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.txt.yellow
{
color
:
#efb017
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.txt.green
{
color
:
#19b466
;
}
.daliy
.base-box
.base-item.big
.rig-box
.c
.item
.len
.txt.red
{
color
:
#fd3c7c
;
}
.daliy
.base-box
.base-item.zoushi
{
height
:
357px
;
display
:
flex
;
background
:
rgba
(
39
,
88
,
171
,
0.1
);
}
.daliy
.base-box
.base-item.zoushi
.big-title
{
font-size
:
20px
;
color
:
#fff
;
font-family
:
pingfangR
;
margin-top
:
-10px
;
}
.daliy
.base-box
.base-item.zoushi
.big-content
{
position
:
absolute
;
top
:
50px
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.daliy
.base-box
.base-item.zoushi
.d
{
height
:
33px
;
background
:
rgba
(
71
,
165
,
255
,
0
);
border-radius
:
17px
;
line-height
:
28px
;
padding
:
0
20px
;
font-size
:
12px
;
color
:
#4487f0
;
display
:
inline-block
;
box-sizing
:
border-box
;
border
:
1px
solid
#0251889
e
;
box-shadow
:
0
0
10px
#025188
inset
;
position
:
absolute
;
top
:
9px
;
right
:
30px
;
display
:
flex
;
align-items
:
center
;
}
.daliy
.base-box
.base-item.zoushi
.d
span
{
margin-right
:
40px
;
}
.daliy
.base-box
.base-item.zoushi
.d
span
:last-child
{
margin-right
:
0
;
}
.daliy
.base-box
.base-item.zoushi
.d
.yellow
{
color
:
#ffb822
;
}
.daliy
.base-box
.base-item.zoushi
.d
.red
{
color
:
#fd3c7c
;
}
.daliy
.base-box
.base-item.zoushi
.d.right
{
position
:
absolute
;
top
:
-4px
;
right
:
25px
;
}
.daliy
.base-box
.base-item.zoushi
.d
.blod
{
font-size
:
16px
;
color
:
#46c3f1
;
font-family
:
pingfangR
;
margin-left
:
5px
;
}
.daliy
.base-box
.base-item.zoushi
.d
i
{
font-size
:
14px
;
color
:
#3aa0eb
;
}
.daliy
.base-box
.base-item.zoushi
.d
.block
{
width
:
16px
;
height
:
9px
;
margin-right
:
10px
;
background
:
linear-gradient
(
0deg
,
rgba
(
68
,
135
,
240
,
0.88
),
rgba
(
176
,
208
,
248
,
0.88
)
);
}
.daliy
.base-box
.base-item.zoushi
.d
.block.red
{
background
:
linear-gradient
(
0deg
,
rgba
(
255
,
171
,
199
,
0.88
),
rgba
(
253
,
60
,
124
,
0.88
)
);
}
.daliy
.base-box
.base-item.zoushi
.d
.block.yellow
{
background
:
#ffb822
;
width
:
16px
;
height
:
4px
;
}
</
style
>
</
style
>
src/components/visualization/nianduduibi.vue
0 → 100644
View file @
ebfe0ee7
<
template
>
<div
class=
"inerank-container"
>
<div
:style=
"
{height:'100%',width:'100%'}" ref="myLineRank">
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
newdata
:
{
type
:
Number
,
default
:
0
},
olddata
:
{
type
:
Number
,
default
:
0
},
colors
:{
type
:
Array
,
default
:[]
},
title
:{
type
:
String
,
default
:
""
}
},
data
()
{
return
{
placeHolderStyle
:
{
normal
:
{
color
:
"rgba(0,0,0,0)"
,
label
:
{
show
:
false
},
labelLine
:
{
show
:
false
}
},
emphasis
:
{
color
:
"rgba(0,0,0,0)"
}
}
};
},
mounted
()
{
this
.
init
();
},
methods
:
{
init
()
{
let
myChart
=
this
.
$echarts
.
init
(
this
.
$refs
.
myLineRank
);
let
dataAlias
=
[
"今年"
,
"去年"
];
let
data2
=
[{
name
:
"今年"
,
value
:
this
.
newdata
},
{
name
:
"去年"
,
value
:
this
.
olddata
,
itemStyle
:
this
.
placeHolderStyle
}];
let
data3
=
[{
name
:
"去年"
,
value
:
this
.
olddata
},{
name
:
"今年"
,
value
:
this
.
newdata
,
itemStyle
:
this
.
placeHolderStyle
}];
let
option
=
{
tooltip
:
{
show
:
false
},
graphic
:
[
{
type
:
"text"
,
left
:
'center'
,
top
:
"center"
,
style
:
{
text
:
this
.
title
,
textAlign
:
"center"
,
fill
:
this
.
colors
[
0
],
//文字的颜色
fontSize
:
16
,
width
:
120
,
fontFamily
:
"pingfangR"
}
}
],
calculable
:
true
,
series
:
[
{
// center: ["25%", "45%"],
name
:
"订单来源"
,
type
:
"pie"
,
radius
:
[
"80%"
,
"90%"
],
hoverAnimation
:
false
,
legendHoverLink
:
false
,
tooltip
:
false
,
startAngle
:
90
,
itemStyle
:
{
emphasis
:
{
barBorderRadius
:
30
},
normal
:
{
label
:
{
show
:
false
},
labelLine
:
{
show
:
false
},
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
1
,
0
,
0
,
0
,
[
{
offset
:
0
,
color
:
"#00BFF9"
},
{
offset
:
0.35
,
color
:
"#0067CC"
},
{
offset
:
1
,
color
:
"#0067CC"
}
])
}
},
data
:
data2
},
{
// center: ["25%", "45%"],
name
:
"订单来源"
,
type
:
"pie"
,
radius
:
[
"60%"
,
"70%"
],
hoverAnimation
:
false
,
legendHoverLink
:
false
,
tooltip
:
false
,
startAngle
:
90
,
itemStyle
:
{
emphasis
:
{
barBorderRadius
:
30
},
normal
:
{
label
:
{
show
:
false
},
labelLine
:
{
show
:
false
},
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
1
,
0
,
0
,
0
,
[
{
offset
:
0
,
color
:
this
.
colors
[
1
]
},
{
offset
:
0.35
,
color
:
this
.
colors
[
0
]
},
{
offset
:
1
,
color
:
this
.
colors
[
0
]
}
])
}
},
data
:
data3
}
]
};
myChart
.
setOption
(
option
);
}
}
};
</
script
>
<
style
>
.inerank-container
{
height
:
100%
;
width
:
100%
;
}
</
style
>
src/components/visualization/nianduzoushi.vue
0 → 100644
View file @
ebfe0ee7
<
template
>
<div
class=
"inerank-container"
>
<div
:style=
"
{height:'100%',width:'100%'}" ref="myLineRank">
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
data
:
{
type
:
Array
,
default
:
[]
}
},
data
()
{
return
{};
},
mounted
()
{
this
.
init
();
},
methods
:
{
init
()
{
let
myChart
=
this
.
$echarts
.
init
(
this
.
$refs
.
myLineRank
);
var
dataAxis
=
[];
var
data2
=
[];
var
data4
=
[];
var
data3
=
[];
this
.
data
.
forEach
(
x
=>
{
dataAxis
.
push
(
x
.
Month
+
"月"
);
data2
.
push
(
x
.
NowSaleMoney
);
data4
.
push
(
x
.
NowSaleDueIn
);
data3
.
push
(
x
.
NowSaleGuest
);
});
let
option
=
{
title
:
{
show
:
false
},
xAxis
:
{
data
:
dataAxis
,
axisLabel
:
{
textStyle
:
{
color
:
"#DADADA"
,
fontSize
:
12
},
margin
:
10
,
interval
:
0
,
show
:
true
},
type
:
"category"
,
axisTick
:
{
show
:
true
},
axisLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
"#12397C"
]
}
}
},
yAxis
:
[
{
axisLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
"#12397C"
]
}
},
axisTick
:
{
show
:
false
},
axisLabel
:
{
textStyle
:
{
color
:
"#DADADA"
,
fontSize
:
12
},
show
:
true
},
splitLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
"#12397c4d"
]
}
},
min
:
0
,
name
:
"金额(元)"
,
type
:
"value"
},
{
axisLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
"#12397C"
]
}
},
axisTick
:
{
show
:
false
},
axisLabel
:
{
textStyle
:
{
color
:
"#DADADA"
,
fontSize
:
12
},
show
:
true
},
splitLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
"#12397c4d"
]
}
},
min
:
0
,
name
:
"收客数(人)"
,
type
:
"value"
}
],
grid
:
{
left
:
"68"
,
right
:
"60"
,
top
:
"50"
,
bottom
:
"30"
},
tooltip
:
{
trigger
:
"item"
,
axisPointer
:
{
type
:
"none"
,
snap
:
true
,
label
:
{
backgroundColor
:
"#6a7985"
}
}
},
series
:
[
{
type
:
"bar"
,
itemStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
"#4487F0"
},
{
offset
:
0.3
,
color
:
"#4487F0"
},
{
offset
:
1
,
color
:
"#B0D0F8"
}
])
}
},
barWidth
:
24
,
data
:
data2
,
yAxisIndex
:
0
,
animationType
:
"scale"
,
animationEasing
:
"elasticOut"
,
animationDelay
:
function
(
idx
)
{
return
Math
.
random
()
*
200
;
}
},
{
type
:
"bar"
,
itemStyle
:
{
normal
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
offset
:
0
,
color
:
"#FD3C7C"
},
{
offset
:
0.5
,
color
:
"#FD3C7C"
},
{
offset
:
1
,
color
:
"#FFABC7"
}
])
}
},
barWidth
:
24
,
data
:
data4
,
yAxisIndex
:
0
,
animationType
:
"scale"
,
animationEasing
:
"elasticOut"
,
animationDelay
:
function
(
idx
)
{
return
Math
.
random
()
*
200
;
}
},
{
type
:
"line"
,
smooth
:
true
,
symbol
:
'circle'
,
symbolSize
:
5
,
yAxisIndex
:
1
,
// left: "0",
itemStyle
:
{
normal
:
{
lineStyle
:
{
color
:
"#FFB822"
},
color
:
"#FFB822"
}
},
data
:
data3
}
]
};
myChart
.
setOption
(
option
);
}
}
};
</
script
>
<
style
>
.inerank-container
{
height
:
100%
;
width
:
100%
;
}
</
style
>
src/components/visualization/pingtai.vue
View file @
ebfe0ee7
...
@@ -31,7 +31,6 @@ export default {
...
@@ -31,7 +31,6 @@ export default {
data2
.
push
(
t
)
data2
.
push
(
t
)
}
}
})
})
console
.
log
(
dataAlias
)
let
option
=
{
let
option
=
{
tooltip
:
{
tooltip
:
{
trigger
:
"item"
,
trigger
:
"item"
,
...
...
src/components/visualization/progress.vue
View file @
ebfe0ee7
...
@@ -157,7 +157,7 @@ export default {
...
@@ -157,7 +157,7 @@ export default {
.inerank-container
.h-title
{
.inerank-container
.h-title
{
position
:
absolute
;
position
:
absolute
;
left
:
0%
;
left
:
0%
;
bottom
:
1
4
px
;
bottom
:
1
0
px
;
font-size
:
12px
;
font-size
:
12px
;
color
:
#46c3f1
;
color
:
#46c3f1
;
text-align
:
center
;
text-align
:
center
;
...
...
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