123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- <template>
- <view class="content">
- <scroll-view v-if="true" scroll-y class="data_body" :style="{height:scrollHeight}">
- <!--数据进度条-->
- <view class="progress">
- <data-progress :progressList="userOperateLineBar" :borderRadius="20" padMiddle="true"></data-progress>
- </view>
- <view class="split_line"></view>
-
- <!-- 活跃会员-->
- <view class="friend_operate">
- <view class="title">活跃会员</view>
- <text-block :content="userActive"></text-block>
- </view>
-
- <!-- 会员消费 -->
- <view class="friend_operate" style="padding-bottom: 30rpx;">
- <view class="title">会员消费</view>
- <text-block :content="userConsume"></text-block>
- </view>
- <view class="split_line"></view>
-
- <!-- 会员ARPU -->
- <view class="friend_operate">
- <view class="title">会员ARPU
- <text class="font-small">(会员年度平均销售金额)</text>
- <text class="trend_title">目标增量{{userARPU.targetAdd}}</text>
- </view>
- <view class="charts-box">
- <qiun-data-charts type="mix"
- :chartData="userARPU"
- :reshow="delayload"
- :canvas2d="isCanvas2d"
- canvasId="two_a"
- :opts="{yAxis:{data:[{title: '',max:userARPU?userARPU.yAxis[0].max:0,min:userARPU?userARPU.yAxis[0].min:0},{title: '',unit:'%',max:userARPU?userARPU.yAxis[1].max:0,min:userARPU?userARPU.yAxis[1].min:0,position:'right'}]},extra:{markLine:{data:[{value:userARPU?userARPU.target:'',LineColor:'#ff9900',showLabel:true}]}}}"/>
- </view>
- </view>
- <view class="split_line"></view>
-
- <!-- 会员消费频次 -->
- <view class="friend_operate">
- <view class="title">会员消费频次
- <text class="font-middle">(年)</text>
- <text class="trend_title">目标增量{{userARPU.targetAdd}}</text>
- </view>
- <view class="charts-box">
- <qiun-data-charts type="mix"
- :chartData="userARPU"
- :reshow="delayload"
- :canvas2d="isCanvas2d"
- canvasId="two_b"
- :opts="{yAxis:{data:[{title: '',max:userARPU?userARPU.yAxis[0].max:0,min:userARPU?userARPU.yAxis[0].min:0},{title: '',unit:'%',max:userARPU?userARPU.yAxis[1].max:0,min:userARPU?userARPU.yAxis[1].min:0,position:'right'}]},extra:{markLine:{data:[{value:userARPU?userARPU.target:'',LineColor:'#ff9900',showLabel:true}]}}}"/>
- </view>
- </view>
- <view class="split_line"></view>
-
- <!-- 微客群运营-->
- <view class="friend_operate">
- <view class="title">活跃会员分布
- <text class="font-middle">(最近活跃时间)</text>
- </view>
- <senior-table :headers="dataTable.headers" :contents="dataTable.contents" :urlCol="dataTable.urlCol" :firstLineFixed="true" :sortCol="dataTable.sortCol" :computedCol="dataTable.computedCol" :formatCol="dataTable.formatCol"></senior-table>
- </view>
- <view class="split_line"></view>
-
- <!-- X商品脱落率-->
- <view class="friend_operate">
- <view class="title">
- X(慢病) 商品脱落率
- </view>
- <view style="display: flex;justify-content: space-between;">
- <view v-for="(item,index) in xProductDropPrecent" class="charts-box" style="height: 130px;width: 45%;">
- <qiun-data-charts
- type="arcbar"
- :chartData="item"
- :canvasId="'two_c_'+ index"
- :canvas2d="true"
- :reshow="delayload"
- :opts="{title:{name:item.series[0].data * 100 + '%',color:item.series[0].color,fontSize:25},subtitle:{name:item.series[0].name,color:'#666666',fontSize:12}}" />
- </view>
- </view>
- </view>
-
- <!-- 慢病病种脱落率-->
- <view class="friend_operate">
- <view class="title">慢病病种脱落率
- </view>
- <view class="charts-box">
- <qiun-data-charts type="mix"
- :chartData="illnessDropPrecent"
- :reshow="delayload"
- :canvas2d="true"
- canvasId="two_d"
- :opts="{yAxis:{data:[{title: ''}]}}"/>
- </view>
- </view>
-
- <!-- W商品脱落率-->
- <view class="friend_operate">
- <view class="title">
- W(保健) 商品脱落率
- </view>
- <view style="display: flex;justify-content: space-between;">
- <view v-for="(item,index) in wProductDropPrecent" class="charts-box" style="height: 130px;width: 45%;">
- <qiun-data-charts
- type="arcbar"
- :chartData="item"
- :canvasId="'two_e_'+index"
- :canvas2d="true"
- :reshow="delayload"
- :opts="{title:{name:item.series[0].data * 100 + '%',color:item.series[0].color,fontSize:25},subtitle:{name:item.series[0].name,color:'#666666',fontSize:12}}" />
- </view>
- </view>
- </view>
- </scroll-view>
- <view v-else class="container padding_stand-big normal_color">
- <li class="iconfont icon-cry cry"></li>暂无数据
- </view>
- </view>
- </template>
- <script>
- import DataProgress from "../data-progress/data-progress.vue"
- import SeniorTable from "../data-table/senior-table.vue"
-
- import userOperateLineBar from '../../static/json/user-operate/1.json';
- import userActive from '../../static/json/user-operate/2.json';
- import userConsume from '../../static/json/user-operate/3.json';
- import userARPU from '../../static/json/user-operate/4.json';
- import dataTable from "../../static/json/user-operate/6.json"
- import xProductDropPrecent from '../../static/json/user-operate/7.json';
- import wProductDropPrecent from '../../static/json/user-operate/9.json';
- import illnessDropPrecent from '../../static/json/user-operate/8.json';
-
-
- export default {
- name:'user-operate',
- props: {
- scrollHeight:{
- type:String,
- default:"600px"
- }
- },
- components:{
- DataProgress,SeniorTable
- },
- data() {
- return {
- userOperateLineBar,
- userActive,
- userConsume,
- userARPU,
- xProductDropPrecent,
- wProductDropPrecent,
- illnessDropPrecent,
- dataTable,
- delayload:false,
- isCanvas2d:Config.ISCANVAS2D
- }
- },
- mounted() {
- this.getData();
- },
- methods:{
- async getData(){
- uni.showLoading();
- await setTimeout(() => {
- this.delayload = true;
- uni.hideLoading();
- }, 1000)
- }
- }
- }
- </script>
- <style scoped lang="less">
- .content{
- padding-top: 10rpx;
- .progress,.firend_operate{
- padding: 0 10rpx;
- }
- .progress{
- margin-bottom: 20rpx;
- }
- .friend_operate{
- padding: 30rpx 20rpx;
- .title{
- text-align:left;
- margin-bottom: 30rpx;
- font-size: 40rpx;
- }
- .trend_title{
- float: right;
- font-size: 22rpx;
- color: #ff9900;
- margin-top: 20rpx;
- }
- }
- }
- </style>
|