Commit ebfe0ee7 authored by 罗超's avatar 罗超

更改个人中心

parent d6ee3123
...@@ -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:'提示',
......
...@@ -181,7 +181,8 @@ export default { ...@@ -181,7 +181,8 @@ export default {
}, },
result: null, result: null,
orders: [], orders: [],
pageLoading: false pageLoading: false,
}; };
}, },
components: { components: {
......
...@@ -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="base-item"> <div class="bottom-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 #0251889e;
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>
<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>
<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>
...@@ -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",
......
...@@ -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: 14px; bottom: 10px;
font-size: 12px; font-size: 12px;
color: #46c3f1; color: #46c3f1;
text-align: center; text-align: center;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment