parent
c7d4cc3440
commit
eaa0cc657c
@ -0,0 +1,107 @@ |
|||||||
|
<template> |
||||||
|
<component :is="type"> |
||||||
|
<el-row class="select" type="flex"> |
||||||
|
<el-col :span="4" class="title">{{ title }}</el-col> |
||||||
|
|
||||||
|
<el-col :offset="12" :span="8" v-if="showQuery"> |
||||||
|
<span v-for="item in dict.type.time_granularity" :key="item.value">{{ |
||||||
|
item.label |
||||||
|
}}</span> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
<el-row type="flex" class="rank-item" v-for="item in rank" :key="item" :gutter="20"> |
||||||
|
<el-col :span="4" :class="{ 'black': item <= 3, 'gray': item > 3 }"> |
||||||
|
{{ item }} |
||||||
|
</el-col> |
||||||
|
<el-col :span="18" class="align-center"> |
||||||
|
联想笔记本 |
||||||
|
</el-col> |
||||||
|
<el-col :span="2" :offset="3"> |
||||||
|
99999 |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
</component> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: 'list', |
||||||
|
props: { |
||||||
|
type: String, |
||||||
|
title: String, |
||||||
|
rank: Number, |
||||||
|
showQuery: Boolean |
||||||
|
}, |
||||||
|
dicts: ['time_granularity'], |
||||||
|
data() { |
||||||
|
return {} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
|
||||||
|
.title { |
||||||
|
color: rgba(16, 16, 16, 1); |
||||||
|
font-size: 16px; |
||||||
|
text-align: left; |
||||||
|
font-family: SourceHanSansSC-regular; |
||||||
|
} |
||||||
|
|
||||||
|
.align-center { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
|
||||||
|
.rank { |
||||||
|
display: flex; |
||||||
|
justify-content: space-around; |
||||||
|
} |
||||||
|
|
||||||
|
.select { |
||||||
|
align-items: center; |
||||||
|
color: rgba(16, 16, 16, 1); |
||||||
|
font-size: 14px; |
||||||
|
font-family: SourceHanSansSC-regular; |
||||||
|
padding: 0 20px; |
||||||
|
|
||||||
|
& > div:last-child { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.rank-item { |
||||||
|
margin-top: 30px; |
||||||
|
color: rgba(16, 16, 16, 1); |
||||||
|
font-size: 14px; |
||||||
|
text-align: left; |
||||||
|
font-family: SourceHanSansSC-regular; |
||||||
|
padding: 0 20px; |
||||||
|
|
||||||
|
|
||||||
|
& > div:nth-child(1) { |
||||||
|
width: 30px; |
||||||
|
height: 30px; |
||||||
|
border-radius: 50%; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
|
||||||
|
.black { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(0, 0, 0); |
||||||
|
} |
||||||
|
|
||||||
|
.gray { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(190, 190, 190, 1); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
& > div:nth-child(3) { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,106 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-row> |
||||||
|
<el-col :span="12"> |
||||||
|
<el-form inline> |
||||||
|
<el-form-item> |
||||||
|
<el-autocomplete class="inline-input" v-model="queryParams.storeName" |
||||||
|
:fetch-suggestions="querySearch" placeholder="全部店铺"></el-autocomplete> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item prop="dateRange"> |
||||||
|
<el-date-picker v-model="queryParams.dateRange" value-format="yyyy-MM-dd" type="daterange" |
||||||
|
range-separator="-" start-placeholder="开始日期" |
||||||
|
end-placeholder="结束日期"></el-date-picker> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<list title="商品销售数量 top20" :rank="20" :show-query="false" type="div"/> |
||||||
|
</el-col> |
||||||
|
<el-col :span="12"> |
||||||
|
<div ref="chart" class="chart"></div> |
||||||
|
<div ref="chart2" class="chart mt50"></div> |
||||||
|
</el-col> |
||||||
|
|
||||||
|
</el-row> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import echarts from '@/plugins/echarts' |
||||||
|
import List from '@/views/components/rank/list' |
||||||
|
|
||||||
|
export default { |
||||||
|
name: 'rank', |
||||||
|
components: { List }, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
queryParams: { |
||||||
|
storeName: undefined, |
||||||
|
dateRange: undefined |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
this.initCharts(this.$refs.chart, '商品分类交易占比') |
||||||
|
this.initCharts(this.$refs.chart2, '门店销售量排行榜') |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
initCharts(chart, title) { |
||||||
|
let myChart = echarts.init(chart) |
||||||
|
let option |
||||||
|
|
||||||
|
option = { |
||||||
|
title: { |
||||||
|
text: title, |
||||||
|
bottom: '0', |
||||||
|
left: 'center' |
||||||
|
}, |
||||||
|
tooltip: { |
||||||
|
trigger: 'item' |
||||||
|
}, |
||||||
|
legend: { |
||||||
|
left: 'center', |
||||||
|
textStyle: { |
||||||
|
fontSize: 16 |
||||||
|
} |
||||||
|
}, |
||||||
|
series: [ |
||||||
|
{ |
||||||
|
type: 'pie', |
||||||
|
radius: '60%', |
||||||
|
data: Array.from(new Array(5).keys()).map(item => { |
||||||
|
return { value: Math.round(Math.random() * 1000), name: `分类名称${item}` } |
||||||
|
}), |
||||||
|
emphasis: { |
||||||
|
itemStyle: { |
||||||
|
shadowBlur: 10, |
||||||
|
shadowOffsetX: 0, |
||||||
|
shadowColor: 'rgba(0, 0, 0, 0.5)' |
||||||
|
} |
||||||
|
}, |
||||||
|
label: { |
||||||
|
fontSize: 16, |
||||||
|
formatter: '{b}\n{c}' |
||||||
|
} |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
|
||||||
|
option && myChart.setOption(option) |
||||||
|
}, |
||||||
|
querySearch() { |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
.mt50 { |
||||||
|
margin-top: 50px; |
||||||
|
} |
||||||
|
|
||||||
|
.chart { |
||||||
|
height: 500px; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue