宣发日历

This commit is contained in:
shijingjing
2022-07-13 10:52:43 +08:00
parent c8aaa59311
commit 9eb1d579b0
2 changed files with 279 additions and 14 deletions

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="AppPropagandaStatistics"> <div class="AppPropagandaStatistics">
<div class="calendar_header"> <div class="calendar_header">
<u-section title="宣发日历" :show-line="false" sub-title="查看更多"></u-section> <u-section title="宣发日历" :show-line="false" sub-title="查看更多" @click="readMore"></u-section>
</div> </div>
<div class="threeDays"> <div class="threeDays">
<div class="yesterday"> <div class="yesterday">
@@ -23,22 +23,66 @@
<!-- 折线图 --> <!-- 折线图 -->
<div class="brokenEcharts"> <div class="brokenEcharts">
<div> <div class="broken_title">
<div class="broken_left">宣发效果</div>
<div class="broken_right" @click="filterShow = true">筛选</div>
</div>
<div class="broken_statistics">
<div class="broken_item">
<div>创建宣发任务数</div>
<div>200</div>
</div>
<div class="broken_item">
<div>执行宣发次数</div>
<div>200</div>
</div>
<div class="broken_item">
<div>触达人次</div>
<div>200</div>
</div>
</div> </div>
<div id="brokenEcharts"></div> <div id="brokenEcharts"></div>
</div> </div>
<div class="columnarEcharts"> <div class="columnarEcharts">
<div class="broken_title">
<div class="broken_left">宣发明细</div>
<div class="broken_right"></div>
</div>
<div id="columnarEcharts"></div> <div id="columnarEcharts"></div>
</div> </div>
<div class="pieEcharts"> <div class="pieEcharts">
<div id="pieEcharts"></div> <div id="pieEcharts"></div>
</div> </div>
<u-popup v-model="filterShow" mode="bottom">
<div class="popup">
<div class="tips"></div>
<div class="title">
<div class="cancel" @click.stop="filterShow=false">取消</div>
<p>筛选条件</p>
<div class="confirm" @click.stop="selectConfirm">确定</div>
</div>
<scroll-view class="select-content" scroll-y="true">
<div class="type-list">
<div class="type-title">宣发时间</div>
<!-- <div class="item" v-for="(item, index) in quotaList" :key="index" :class="index == quotaIndex ? 'active' : ''" @click.stop="quotaIndex=index">{{item.label}}</div> -->
</div>
<div class="type-list">
<div class="type-title">宣发部门</div>
<!-- <div class="item" v-for="(item, index) in typeList" :key="index" :class="index == typeIndex ? 'active' : ''" @click.stop="typeIndex=index">{{item.dictName}}</div> -->
</div>
<div>
<!-- <div>重置</div>
<div>确认</div> -->
</div>
</scroll-view>
</div>
</u-popup>
</div> </div>
</template> </template>
<script> <script>
import echarts from 'echarts'; import echarts from 'echarts';
export default { export default {
name: 'AppPropagandaStatistics', name: 'AppPropagandaStatistics',
@@ -49,6 +93,7 @@ export default {
brokenEcharts: null, brokenEcharts: null,
columnarEcharts: null, columnarEcharts: null,
pieEcharts: null, pieEcharts: null,
filterShow: false,
} }
}, },
@@ -63,6 +108,9 @@ export default {
methods: { methods: {
showMore() {}, showMore() {},
readMore() {
uni.navigateTo({url: `./calendarInfo`})
},
// 折线图 // 折线图
getBrokenEcharts() { getBrokenEcharts() {
this.brokenEcharts = echarts.init(document.getElementById('brokenEcharts')) this.brokenEcharts = echarts.init(document.getElementById('brokenEcharts'))
@@ -73,21 +121,42 @@ export default {
legend: { legend: {
selectedMode: false, selectedMode: false,
orient: 'horizontal', orient: 'horizontal',
padding: [25,0,0,0],
data: ['触达人次', '宣发次数', '宣发任务数'] data: ['触达人次', '宣发次数', '宣发任务数']
}, },
grid: { grid: {
left: '2%', left: '2%',
right: '8%', right: '5%',
bottom: '3%', bottom: '2%',
containLabel: true containLabel: true
}, },
dataZoom: [
{
id: 'dataZoomX',
type: 'slider',
xAxisIndex: [0],
filterMode: 'filter'
},
],
xAxis: { xAxis: {
type: 'category', type: 'category',
boundaryGap: false, boundaryGap: false,
axisTick: {
show: false,
},
axisLine: {
show: false,
},
data: ['2月', '3月', '4月', '5月', '6月', '7月'] data: ['2月', '3月', '4月', '5月', '6月', '7月']
}, },
yAxis: { yAxis: {
type: 'value', type: 'value',
axisTick: {
show: false,
},
axisLine: {
show: false,
}
}, },
series: [ series: [
{ {
@@ -112,15 +181,24 @@ export default {
getColumnarEcharts() { getColumnarEcharts() {
this.columnarEcharts = echarts.init(document.getElementById('columnarEcharts')) this.columnarEcharts = echarts.init(document.getElementById('columnarEcharts'))
this.columnarEcharts.setOption({ this.columnarEcharts.setOption({
title: {
text: '宣发明细'
},
xAxis: { xAxis: {
type: 'category', type: 'category',
axisTick: {
show: false,
},
axisLine: {
show: false,
},
data: ['卫健委', '法院', '团委', '扶贫办', '警察局'] data: ['卫健委', '法院', '团委', '扶贫办', '警察局']
}, },
yAxis: { yAxis: {
type: 'value' type: 'value',
axisTick: {
show: false,
},
axisLine: {
show: false,
},
}, },
series: [ series: [
{ {
@@ -226,9 +304,50 @@ export default {
} }
.brokenEcharts { .brokenEcharts,
padding: 32px 0 60px 0, .columnarEcharts {
margin: 24px 0 24px 0;
padding: 0 32px 32px 32px;
box-sizing: border-box;
.broken_title {
display: flex;
justify-content: space-between;
height: 96px;
line-height: 96px;
.broken_left {
font-size: 32px;
font-weight: 600;
}
.broken_right {
font-size: 24px;
color: #3399FF;
}
}
.broken_statistics {
display: flex;
padding: 24px 0;
box-sizing: border-box;
.broken_item {
flex: 1;
text-align: center;
div:first-child {
font-size: 24px;
color: #999999;
padding: 10px 0;
}
div:last-child {
font-size: 36px;
color: #000000;
font-weight: 600;
}
}
}
} }
.brokenEcharts, .brokenEcharts,
@@ -241,8 +360,83 @@ export default {
#pieEcharts { #pieEcharts {
width: 100%; width: 100%;
height: 400px; height: 400px;
background: #F9F9F9;
border-radius: 8px;
}
} }
.popup{
padding: 0 32px;
padding-bottom: 60px;
.tips{
width: 80px;
height: 6px;
background: #DDDDDD;
border-radius: 4px;
margin: 32px auto 8px auto;
}
.title{
height: 48px;
line-height: 48px;
font-size: 34px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #222;
padding-bottom: 32px;
.cancel{
display: inline-block;
width: 200px;
color: #aaa;
}
.confirm{
display: inline-block;
width: 200px;
text-align: right;
color: #333;
}
p{
display: inline-block;
width: calc(100% - 400px);
text-align: center;
font-size: 28px;
}
}
.select-content{
height: calc(100% - 100px);
overflow-y: scroll;
}
.type-list{
margin-bottom: 32px;
.type-title{
line-height: 108px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333;
}
.item{
display: inline-block;
width: 210px;
text-align: center;
line-height: 64px;
background: #F3F4F7;
border-radius: 4px;
// padding: 0 80px;
margin: 0 16px 16px 0;
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
color: #333;
}
.active{
background: #1365DD;
color: #fff;
}
}
}
::v-deep .popup{
height: 800px;
} }
} }

View File

@@ -1,6 +1,23 @@
<template> <template>
<div class="calendarInfo"> <div class="calendarInfo">
<uni-calendar :insert="true" :selected="selected" :lunar="false" @change="change"/> <uni-calendar :insert="true" :selected="selected" :lunar="false" @change="change"/>
<div class="dailyMatters">
<div>
<div :class="{'color1':index%4==0,'color2':index%4==1,'color3':index%4==2,'color4':index%4==3}" class="daily_item">
<div>11:00</div>
<div>晴风小区志愿者活动</div>
</div>
</div>
<div>
<div :class="{'color1':index%4==0,'color2':index%4==1,'color3':index%4==2,'color4':index%4==3}" class="daily_item">
<div>11:00</div>
<div>晴风小区志愿者活动</div>
</div>
</div>
<div class="readMore">查看更多</div>
</div>
</div> </div>
</template> </template>
@@ -35,9 +52,63 @@ export default {
} }
::v-deep .uni-calendar__header { ::v-deep .uni-calendar__header {
height: 76px; height: 76px;
justify-content: space-around;
border-bottom-style: none;
}
::v-deep .uni-calendar__weeks-day {
border-bottom-style: none;
}
::v-deep .uni-calendar__weeks-day-text,
::v-deep .uni-calendar__header-text,
::v-deep .uni-calendar-item__weeks-box-text {
font-size: 28px;
}
::v-deep .uni-calendar__header-btn {
width: 16px;
height: 16px;
border-left-color: #5297FF;
border-top-color: #5297FF;
} }
::v-deep .uni-calendar__backtoday { ::v-deep .uni-calendar__backtoday {
display: none display: none
} }
.dailyMatters {
padding: 30px;
box-sizing: border-box;
.daily_item {
background: #FFF;
padding: 30px 20px 30px 50px;
margin-bottom: 30px;
border-radius: 0px 16px 16px 0px;
div:first-child {
color: #999999;
margin-bottom: 20px;
}
}
.color1 {
border-left: 6px solid #3AA0FF;
}
.color2 {
border-left: 6px solid #50CB74;
}
.color3 {
border-left: 6px solid #9D73D9;
}
.color4 {
border-left: 6px solid #435289;
}
.readMore {
height: 100px;
line-height: 100px;
text-align: center;
color: #3F8DF5;
}
}
} }
</style> </style>