2024-09-04 11:22:28 +08:00
|
|
|
|
<template>
|
2024-10-12 14:51:25 +08:00
|
|
|
|
<div class="home-index">
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<el-carousel height="230px">
|
|
|
|
|
<el-carousel-item v-for="(item,index) in bannerList" :key="index">
|
2024-10-16 08:52:01 +08:00
|
|
|
|
<div class="bannser">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<img :src="imagePath+item.productImage" alt="">
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
</el-carousel-item>
|
|
|
|
|
</el-carousel>
|
|
|
|
|
<div class="b-bs">
|
|
|
|
|
<div class="left-box">
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div class="h-tt">核心数据</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div style="display: flex;justify-content: space-between">
|
|
|
|
|
<div class="san-box">
|
2024-09-09 16:50:54 +08:00
|
|
|
|
<div class="r-title">{{ storeTotal.allAmount || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div class="r-size">总交易金额(元)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="san-box" style="background: #fc6464">
|
2024-09-09 16:50:54 +08:00
|
|
|
|
<div class="r-title">{{ storeTotal.allNum || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div class="r-size">总交易笔数</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="san-box" style="background: #fcb12c">
|
2024-09-09 16:50:54 +08:00
|
|
|
|
<div class="r-title">{{ storeTotal.unitPrice || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div class="r-size">笔均单价(元/单)</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="san-box" style="background: #5bc557;">
|
2024-09-09 16:50:54 +08:00
|
|
|
|
<div class="r-title">{{ storeTotal.userBalance || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div class="r-size">累计会员余额(万元)</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="right-box">
|
|
|
|
|
<div class="title_">
|
|
|
|
|
<div>通知中心</div>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div style="font-size: 12px;color: #BBBBBB;cursor: pointer; display: flex;align-items: center"
|
|
|
|
|
@click="goList()">更多 <i class="el-icon-arrow-right"></i></div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<!-- <div class="hang_" v-for="(item,index) in 4" :key="index" >【到期提醒】百业兴智慧油站系统将于2024年07月10日到期...</div>-->
|
2024-10-23 17:12:34 +08:00
|
|
|
|
<div class="hang_" v-for="(item,index) in noticeList" :key="index">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
【{{ item.notificationType }}】{{ item.templateContent }}
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div class="hang_" v-if="this.noticeList.length==0">暂无通知</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="b-bs">
|
|
|
|
|
<div class="left-box-t">
|
|
|
|
|
<div class="d-s">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="h-tt" style="margin-right: 15px">数据看板</div>
|
2024-10-16 08:52:01 +08:00
|
|
|
|
<el-dropdown placement="bottom-start " @command="sjkbStoreAmount">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : dataTimeShow == false}" @click="dataTimeShow = false ">
|
|
|
|
|
{{ sjkbTitle }} <i
|
2024-10-15 09:53:01 +08:00
|
|
|
|
class="el-icon-arrow-down el-icon--right"></i></div>
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
|
|
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{ item }}
|
|
|
|
|
</el-dropdown-item>
|
2024-10-14 14:06:09 +08:00
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
</el-dropdown>
|
2024-10-15 15:29:59 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : dataTimeShow == true}" @click="dataTimeShow = true"> 自定义
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
<div style="margin-right: 40px">
|
|
|
|
|
<el-date-picker
|
|
|
|
|
v-model="value1"
|
2024-10-14 14:24:53 +08:00
|
|
|
|
type="daterange"
|
2024-09-04 11:22:28 +08:00
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期"
|
2024-10-12 18:09:59 +08:00
|
|
|
|
@blur="getStoreAmount">
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</el-date-picker>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="d-s" style="margin-top: 15px">
|
|
|
|
|
<div class="k-box">
|
|
|
|
|
<div class="d-s" style="font-size: 12px;color: #999999;">
|
|
|
|
|
<div class="sian"></div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="color: #333">油品销售金额(元)/交易笔数</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-10-12 16:29:59 +08:00
|
|
|
|
<div class="num-size">{{ storeAmount.oilAmount || 0 }}/{{ storeAmount.oilNum || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="k-box">
|
|
|
|
|
<div class="d-s" style="font-size: 12px;color: #999999;">
|
|
|
|
|
<div class="sian"></div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="color: #333">会员充值金额(元)/充值笔数</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-10-12 16:29:59 +08:00
|
|
|
|
<div class="num-size">{{ storeAmount.userRechargeAmount || 0 }}/{{ storeAmount.userRechargeNum || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="k-box">
|
|
|
|
|
<div class="d-s" style="font-size: 12px;color: #999999;">
|
|
|
|
|
<div class="sian"></div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="color: #333">便利店销售金额(元)/交易笔数</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-10-12 16:29:59 +08:00
|
|
|
|
<div class="num-size">{{ storeAmount.minimartAmount || 0 }}/{{ storeAmount.minimartNum || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="k-box">
|
|
|
|
|
<div class="d-s" style="font-size: 12px;color: #999999;">
|
|
|
|
|
<div class="sian"></div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="color: #333">积分商城销售金额(元)/兑换笔数</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-10-12 16:29:59 +08:00
|
|
|
|
<div class="num-size">{{ storeAmount.pointMallAmount || 0 }}/{{ storeAmount.pointMallNum || 0 }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hui-hang"></div>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="d-s">
|
2024-10-18 10:29:49 +08:00
|
|
|
|
<div style="position: relative">
|
|
|
|
|
<div class="h-tt" style="position: absolute;top: 0px">数据分析</div>
|
|
|
|
|
<div id="ccc" style="width: 400px;height: 200px; "></div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="d-s" style="justify-content: space-between">
|
2024-10-18 10:29:49 +08:00
|
|
|
|
<div id="cccc" style="width: 400px;height: 200px;"></div>
|
|
|
|
|
<div id="ccct" style="width: 400px;height: 200px;"></div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="right-box-t">
|
|
|
|
|
<div class="h-tt">
|
2024-10-14 14:06:09 +08:00
|
|
|
|
<div>硬件设备</div>
|
|
|
|
|
<el-popover
|
|
|
|
|
placement="top-start"
|
|
|
|
|
title="联系人:某某某"
|
|
|
|
|
width="200"
|
|
|
|
|
trigger="hover"
|
|
|
|
|
content="联系电话:1352415811">
|
|
|
|
|
<img slot="reference" style="width: 28px; height: 28px " src="../assets/images/telindex.png">
|
|
|
|
|
</el-popover>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</div>
|
2024-10-14 14:06:09 +08:00
|
|
|
|
<div style="height: 90%;overflow: auto;scrollbar-width: none;">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index">
|
2024-10-14 14:06:09 +08:00
|
|
|
|
<div class="r-img">
|
|
|
|
|
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
|
|
|
|
</div>
|
|
|
|
|
<div style="font-size: 14px">{{ item.name }}</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="b-bs">
|
2024-09-06 13:38:58 +08:00
|
|
|
|
<div class="left-box-t">
|
2024-10-15 11:09:07 +08:00
|
|
|
|
<div class="d-s" style="margin-bottom: 10px">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="h-tt" style="margin-right: 15px">油品交易分析</div>
|
2024-10-16 09:19:27 +08:00
|
|
|
|
<el-dropdown placement="bottom-start" @command="editShow">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : showTimeShow == false}" @click="showTimeShow = false ">
|
|
|
|
|
{{ ypjyTitle }} <i
|
2024-10-15 09:53:01 +08:00
|
|
|
|
class="el-icon-arrow-down el-icon--right"></i></div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<el-dropdown-menu slot="dropdown">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<!-- <el-dropdown-item command="近一周" index="2">近一周</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一月" index="2">本月</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一年" index="2">本季度</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一年" index="2">本年</el-dropdown-item>-->
|
|
|
|
|
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{ item }}
|
|
|
|
|
</el-dropdown-item>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
</el-dropdown>
|
2024-10-15 15:29:59 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : showTimeShow == true}" @click="showTimeShow = true"> 自定义
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="margin-right: 40px">
|
|
|
|
|
<el-date-picker
|
2024-10-15 15:27:01 +08:00
|
|
|
|
v-model="showValue"
|
2024-10-14 14:24:53 +08:00
|
|
|
|
type="daterange"
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期"
|
2024-10-14 17:42:37 +08:00
|
|
|
|
@blur="getDataShow">
|
2024-10-14 14:24:53 +08:00
|
|
|
|
</el-date-picker>
|
|
|
|
|
</div>
|
2024-11-04 18:03:02 +08:00
|
|
|
|
</div>
|
2024-10-15 11:09:07 +08:00
|
|
|
|
<div id="cccf"
|
|
|
|
|
style="width: 100%; height: 315px;background: linear-gradient( 360deg, #F8F0E7 0%, #FFFFFF 100%); "></div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
2024-09-06 13:38:58 +08:00
|
|
|
|
<div class="right-box-t">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div style="font-size: 16px;font-weight: bold"><span style="margin-right: 15px">员工排行</span>
|
2024-10-15 11:43:45 +08:00
|
|
|
|
<el-dropdown placement="bottom-start" @command="editColor">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">{{ ygphTitle }} <i
|
2024-10-15 09:53:01 +08:00
|
|
|
|
class="el-icon-arrow-down el-icon--right"></i></div>
|
|
|
|
|
<el-dropdown-menu slot="dropdown">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{ item }}
|
|
|
|
|
</el-dropdown-item>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
</el-dropdown>
|
|
|
|
|
</div>
|
2024-09-06 13:38:58 +08:00
|
|
|
|
<div class="hui-box">
|
|
|
|
|
<div style="width: 10%">排名</div>
|
|
|
|
|
<div>员工姓名</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="width: 25%">会员充值金额</div>
|
|
|
|
|
<div style="width: 25%">油品销售金额</div>
|
|
|
|
|
<div>总销售额</div>
|
2024-09-06 13:38:58 +08:00
|
|
|
|
</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div style="overflow: auto; scrollbar-width: none; height: 74% ">
|
|
|
|
|
<div class="hang-box" v-for="(item,index) in employeList" :key="index">
|
2024-10-14 16:40:27 +08:00
|
|
|
|
|
|
|
|
|
<div style="width: 10%" v-if="index == 0">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<img src="../assets/images/one_icon.png" style="width: 22px;height: 22px">
|
2024-10-14 16:40:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div style="width: 10%" v-if="index == 1">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<img src="../assets/images/two_icon.png" style="width: 22px;height: 22px">
|
2024-10-14 16:40:27 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div style="width: 10%" v-if="index == 2">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<img src="../assets/images/three_icon.png" style="width: 22px;height: 22px">
|
2024-10-14 16:40:27 +08:00
|
|
|
|
</div>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div style="width: 10%" v-if="index>2">{{ index + 1 }}</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
<div>{{ item.realName }}</div>
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div style="width: 25%">{{ item.cardSum }}</div>
|
|
|
|
|
<div style="width: 25%">{{ item.oilSum }}</div>
|
|
|
|
|
<div>{{ item.totalSum }}</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
</div>
|
2024-09-06 13:38:58 +08:00
|
|
|
|
</div>
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
2024-09-06 13:38:58 +08:00
|
|
|
|
</div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom_">
|
|
|
|
|
<div class="d-s">
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div class="h-tt" style="margin-right: 15px">数据统计</div>
|
2024-10-16 09:19:27 +08:00
|
|
|
|
<el-dropdown placement="bottom-start" @command="editCount">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : countTimeShow == false}" @click="countTimeShow = false ">
|
|
|
|
|
{{ sjtjTitle }} <i
|
2024-10-15 09:53:01 +08:00
|
|
|
|
class="el-icon-arrow-down el-icon--right"></i></div>
|
2024-10-14 14:06:09 +08:00
|
|
|
|
<el-dropdown-menu slot="dropdown">
|
2024-11-04 18:03:02 +08:00
|
|
|
|
<!-- <el-dropdown-item command="近一周" index="1">近一周</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一月" index="1">本月</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一年" index="1">本季度</el-dropdown-item>-->
|
|
|
|
|
<!-- <el-dropdown-item command="近一年" index="1">本年</el-dropdown-item>-->
|
|
|
|
|
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{ item }}
|
|
|
|
|
</el-dropdown-item>
|
2024-10-16 08:52:01 +08:00
|
|
|
|
|
2024-10-14 14:06:09 +08:00
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
</el-dropdown>
|
2024-10-15 15:29:59 +08:00
|
|
|
|
<div class="h-anniu" :class="{'q-anniu' : countTimeShow == true}" @click="countTimeShow = true"> 自定义
|
2024-10-15 09:53:01 +08:00
|
|
|
|
</div>
|
2024-10-14 14:06:09 +08:00
|
|
|
|
<div style="margin-right: 40px">
|
|
|
|
|
<el-date-picker
|
2024-10-15 15:27:01 +08:00
|
|
|
|
v-model="countValue"
|
2024-10-14 14:06:09 +08:00
|
|
|
|
type="daterange"
|
|
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
range-separator="至"
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
end-placeholder="结束日期"
|
2024-10-14 17:20:49 +08:00
|
|
|
|
@blur="getDataCount">
|
2024-10-14 14:06:09 +08:00
|
|
|
|
</el-date-picker>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-10-14 14:06:09 +08:00
|
|
|
|
|
2024-10-15 09:53:01 +08:00
|
|
|
|
<div id="ctct"
|
|
|
|
|
style="width: 100%; height: 315px;background: linear-gradient( 360deg, #F8F0E7 0%, #FFFFFF 100%); "></div>
|
2024-09-04 11:22:28 +08:00
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-10-15 14:51:04 +08:00
|
|
|
|
import * as echarts from 'echarts';
|
2024-09-04 11:22:28 +08:00
|
|
|
|
import {selectStoreAmount, storeAmountIndex, storeTotalIndex} from "@/api/indexBanner";
|
|
|
|
|
import {getListApi} from "@/api/setting/hardware";
|
|
|
|
|
import {selectChildByDeptId} from "@/api/system/Site/site";
|
|
|
|
|
import {parseTime} from "@/utils/fuint";
|
|
|
|
|
import {getBannerListApi} from "@/api/sys/banner";
|
|
|
|
|
import {getNotificationlogList} from "@/api/sys/sysNotificationlog";
|
2024-09-09 14:39:58 +08:00
|
|
|
|
import {employeeSalesApi} from "@/api/indexStatistics";
|
2024-11-04 18:03:02 +08:00
|
|
|
|
import {
|
|
|
|
|
getDataAnalysis,
|
|
|
|
|
getDataBoard,
|
|
|
|
|
getDataCount,
|
|
|
|
|
getDataShow,
|
|
|
|
|
getTotalAmount,
|
|
|
|
|
getOilPercentage,
|
|
|
|
|
getOilAndGoodsPercentage,
|
|
|
|
|
getOilAndGoodsAndVipAndPoints
|
|
|
|
|
} from "@/api/allOrder";
|
2024-10-15 09:53:01 +08:00
|
|
|
|
|
2024-11-04 18:16:16 +08:00
|
|
|
|
export default
|
|
|
|
|
{
|
2024-09-04 11:22:28 +08:00
|
|
|
|
|
2024-10-15 09:53:01 +08:00
|
|
|
|
props: ["accountId"],
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
amountList: [
|
2024-10-16 15:09:44 +08:00
|
|
|
|
// "今日" ,
|
|
|
|
|
// "昨日" ,
|
2024-11-04 18:03:02 +08:00
|
|
|
|
"近一周",
|
|
|
|
|
"本月",
|
|
|
|
|
"本季度",
|
2024-10-16 09:08:38 +08:00
|
|
|
|
"本年"
|
|
|
|
|
|
|
|
|
|
],
|
2024-10-16 08:52:01 +08:00
|
|
|
|
sjkbTitle: "近一周",
|
|
|
|
|
ypjyTitle: "近一周",
|
|
|
|
|
ygphTitle: "近一周",
|
|
|
|
|
sjtjTitle: "近一周",
|
2024-10-15 09:53:01 +08:00
|
|
|
|
xShow: false,
|
|
|
|
|
timeShow: false,
|
2024-11-04 18:03:02 +08:00
|
|
|
|
dataTimeShow: false,
|
2024-10-15 15:29:59 +08:00
|
|
|
|
showTimeShow: false,
|
|
|
|
|
countTimeShow: false,
|
2024-09-04 11:22:28 +08:00
|
|
|
|
form: {},
|
2024-10-15 09:53:01 +08:00
|
|
|
|
timeList: [
|
2024-09-04 11:22:28 +08:00
|
|
|
|
"今日",
|
|
|
|
|
"近一周",
|
|
|
|
|
"近一月",
|
|
|
|
|
"近一年",
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
options: [{
|
|
|
|
|
value: '选项1',
|
|
|
|
|
label: '黄金糕'
|
|
|
|
|
}, {
|
|
|
|
|
value: '选项2',
|
|
|
|
|
label: '双皮奶'
|
|
|
|
|
}, {
|
|
|
|
|
value: '选项3',
|
|
|
|
|
label: '蚵仔煎'
|
|
|
|
|
}, {
|
|
|
|
|
value: '选项4',
|
|
|
|
|
label: '龙须面'
|
|
|
|
|
}, {
|
|
|
|
|
value: '选项5',
|
|
|
|
|
label: '北京烤鸭'
|
|
|
|
|
}],
|
|
|
|
|
value: '',
|
|
|
|
|
value1: [],
|
2024-11-04 18:03:02 +08:00
|
|
|
|
showValue: [],
|
|
|
|
|
countValue: [],
|
2024-09-04 11:22:28 +08:00
|
|
|
|
value2: [],
|
|
|
|
|
imagePath: process.env.VUE_APP_SERVER_URL,
|
2024-10-15 09:53:01 +08:00
|
|
|
|
queryParams: {},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
// 店铺数量
|
2024-10-15 09:53:01 +08:00
|
|
|
|
storeTotal: {},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
// 店铺金额
|
2024-10-15 09:53:01 +08:00
|
|
|
|
storeAmount: {},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
// banner图列表
|
2024-10-15 09:53:01 +08:00
|
|
|
|
bannerList: {},
|
|
|
|
|
storeList: [],
|
|
|
|
|
hardwareList: [],
|
|
|
|
|
noticeList: [],
|
|
|
|
|
employeList: [],
|
|
|
|
|
dataAnalysisOilNumberList: [],
|
|
|
|
|
dataAnalysisAllList: [],
|
|
|
|
|
dataAnalysisIfOilList: [],
|
|
|
|
|
//数据统计
|
|
|
|
|
dataCount: {},
|
2024-10-15 11:43:45 +08:00
|
|
|
|
//数据展示
|
|
|
|
|
dataShows: {},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
created() {
|
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
2024-10-14 14:24:53 +08:00
|
|
|
|
this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
2024-10-15 15:34:24 +08:00
|
|
|
|
this.countValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
|
|
|
|
this.showValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.getStoreTotal()
|
2024-09-09 16:50:54 +08:00
|
|
|
|
// this.selectChildByDeptIdApi()
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.getStoreAmount()
|
|
|
|
|
this.selectBannerList()
|
|
|
|
|
let start = new Date();
|
|
|
|
|
start.setHours(0)
|
|
|
|
|
start.setMinutes(0)
|
|
|
|
|
start.setSeconds(0)
|
|
|
|
|
start.setMilliseconds(0)
|
2024-10-16 15:09:44 +08:00
|
|
|
|
this.value2 = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.getStoreList()
|
|
|
|
|
this.getHardwareList()
|
|
|
|
|
this.getNoticeList()
|
2024-09-09 14:39:58 +08:00
|
|
|
|
this.getEmployeList()
|
2024-10-14 17:20:49 +08:00
|
|
|
|
this.getDataAnalysis()
|
|
|
|
|
this.getDataShow()
|
|
|
|
|
this.getDataCount()
|
2024-09-04 11:22:28 +08:00
|
|
|
|
},
|
|
|
|
|
mounted() {
|
2024-10-14 18:28:46 +08:00
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.initChart();
|
|
|
|
|
}, 2000);
|
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
},
|
2024-10-14 14:19:22 +08:00
|
|
|
|
methods: {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
sjkbStoreAmount(e) {
|
2024-10-16 08:52:01 +08:00
|
|
|
|
console.log(e)
|
2024-10-16 09:08:38 +08:00
|
|
|
|
this.sjkbTitle = e
|
2024-10-16 09:27:42 +08:00
|
|
|
|
let command = e
|
2024-11-04 18:03:02 +08:00
|
|
|
|
if (command == '今日') {
|
2024-10-16 09:27:42 +08:00
|
|
|
|
let start = new Date();
|
|
|
|
|
start.setHours(0)
|
|
|
|
|
start.setMinutes(0)
|
|
|
|
|
start.setSeconds(0)
|
|
|
|
|
start.setMilliseconds(0)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value1 = [parseTime(new Date()), parseTime(new Date())]
|
|
|
|
|
} else if (command == '昨日') {
|
2024-10-16 11:43:39 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value1 = [parseTime(oneWeekAgo), parseTime(oneWeekAgo)]
|
|
|
|
|
} else if (command == '近一周') {
|
2024-10-16 09:27:42 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
|
|
|
|
} else if (command == '本月') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getMonthStartAndToday();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value1 = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '本季度') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getQuarterStartAndEnd();
|
|
|
|
|
this.value1 = [parseTime(startTime), parseTime(endTime)];
|
2024-11-04 18:03:02 +08:00
|
|
|
|
} else if (command == '本年') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getYearStartAndEnd();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value1 = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '自定义') {
|
2024-10-16 09:27:42 +08:00
|
|
|
|
this.disabled = false
|
|
|
|
|
}
|
|
|
|
|
this.getStoreAmount()
|
2024-10-16 16:28:13 +08:00
|
|
|
|
this.getDataAnalysis()
|
2024-10-16 08:52:01 +08:00
|
|
|
|
},
|
2024-10-14 14:19:22 +08:00
|
|
|
|
goList() {
|
2024-10-12 14:51:25 +08:00
|
|
|
|
this.$router.push('/notificationList/index')
|
|
|
|
|
},
|
2024-11-04 18:03:02 +08:00
|
|
|
|
editShow(e) {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
this.disabled = true
|
2024-10-16 11:21:02 +08:00
|
|
|
|
console.log(e)
|
|
|
|
|
this.ypjyTitle = e
|
|
|
|
|
let command = e
|
2024-11-04 18:03:02 +08:00
|
|
|
|
if (command == '今日') {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
let start = new Date();
|
|
|
|
|
start.setHours(0)
|
|
|
|
|
start.setMinutes(0)
|
|
|
|
|
start.setSeconds(0)
|
|
|
|
|
start.setMilliseconds(0)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.showValue = [parseTime(new Date()), parseTime(new Date())]
|
|
|
|
|
} else if (command == '昨日') {
|
2024-10-16 11:43:39 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.showValue = [parseTime(oneWeekAgo), parseTime(oneWeekAgo)]
|
|
|
|
|
} else if (command == '近一周') {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.showValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
|
|
|
|
} else if (command == '本月') {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getMonthStartAndToday();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.showValue = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '本季度') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getQuarterStartAndEnd();
|
|
|
|
|
this.showValue = [parseTime(startTime), parseTime(endTime)];
|
2024-11-04 18:03:02 +08:00
|
|
|
|
} else if (command == '本年') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getYearStartAndEnd();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.showValue = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '自定义') {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
this.disabled = false
|
|
|
|
|
}
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.getDataShow()
|
2024-10-16 09:19:27 +08:00
|
|
|
|
},
|
2024-11-04 18:03:02 +08:00
|
|
|
|
editCount(e) {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
this.disabled = true
|
2024-10-16 11:21:02 +08:00
|
|
|
|
this.sjtjTitle = e
|
2024-11-04 18:03:02 +08:00
|
|
|
|
console.log("e", e)
|
2024-10-16 11:21:02 +08:00
|
|
|
|
let command = e
|
2024-11-04 18:03:02 +08:00
|
|
|
|
if (command == '今日') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let start = new Date();
|
|
|
|
|
start.setHours(0)
|
|
|
|
|
start.setMinutes(0)
|
|
|
|
|
start.setSeconds(0)
|
|
|
|
|
start.setMilliseconds(0)
|
2024-10-16 11:43:39 +08:00
|
|
|
|
// this.countValue = [start,new Date()]
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.countValue = [parseTime(new Date()), parseTime(new Date())]
|
|
|
|
|
} else if (command == '昨日') {
|
2024-10-16 11:43:39 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.countValue = [parseTime(oneWeekAgo), parseTime(oneWeekAgo)]
|
|
|
|
|
} else if (command == '近一周') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.countValue = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
|
|
|
|
} else if (command == '本月') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getMonthStartAndToday();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.countValue = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '本季度') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getQuarterStartAndEnd();
|
|
|
|
|
this.countValue = [parseTime(startTime), parseTime(endTime)];
|
2024-11-04 18:03:02 +08:00
|
|
|
|
} else if (command == '本年') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getYearStartAndEnd();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.countValue = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '自定义') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
this.disabled = false
|
2024-10-15 11:43:45 +08:00
|
|
|
|
}
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.getDataCount()
|
2024-10-16 09:19:27 +08:00
|
|
|
|
},
|
2024-11-04 18:03:02 +08:00
|
|
|
|
editColor(command) {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
this.disabled = true
|
2024-10-16 11:21:02 +08:00
|
|
|
|
this.ygphTitle = command
|
2024-11-04 18:03:02 +08:00
|
|
|
|
if (command == '今日') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let start = new Date();
|
|
|
|
|
start.setHours(0)
|
|
|
|
|
start.setMinutes(0)
|
|
|
|
|
start.setSeconds(0)
|
|
|
|
|
start.setMilliseconds(0)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value2 = [start, new Date()]
|
|
|
|
|
} else if (command == '近一周') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value2 = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
|
|
|
|
} else if (command == '本月') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
let nowDate = new Date();
|
|
|
|
|
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getMonthStartAndToday();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value2 = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '本季度') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getQuarterStartAndEnd();
|
|
|
|
|
this.value2 = [parseTime(startTime), parseTime(endTime)];
|
2024-11-04 18:03:02 +08:00
|
|
|
|
} else if (command == '本年') {
|
2024-10-16 15:09:44 +08:00
|
|
|
|
const [startTime, endTime] = this.getYearStartAndEnd();
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.value2 = [parseTime(startTime), parseTime(endTime)]
|
|
|
|
|
} else if (command == '自定义') {
|
2024-10-16 09:19:27 +08:00
|
|
|
|
this.disabled = false
|
|
|
|
|
}
|
2024-11-04 18:03:02 +08:00
|
|
|
|
this.getEmployeList()
|
2024-10-16 15:09:44 +08:00
|
|
|
|
},
|
|
|
|
|
getMonthStartAndToday() {
|
|
|
|
|
const now = new Date();
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
const month = now.getMonth();
|
|
|
|
|
|
|
|
|
|
// 获取当前月的第一天
|
|
|
|
|
const monthStart = new Date(year, month, 1);
|
|
|
|
|
|
|
|
|
|
// 获取当前月的最后一天
|
|
|
|
|
const monthEnd = new Date(year, month + 1, 0);
|
|
|
|
|
|
|
|
|
|
// 格式化输出
|
|
|
|
|
const format = (date) => {
|
|
|
|
|
const year = date.getFullYear();
|
|
|
|
|
const month = ('0' + (date.getMonth() + 1)).slice(-2);
|
|
|
|
|
const day = ('0' + date.getDate()).slice(-2);
|
|
|
|
|
return `${year}-${month}-${day}`;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const startTime = format(monthStart);
|
|
|
|
|
const endTime = format(monthEnd);
|
|
|
|
|
|
|
|
|
|
return [startTime, endTime];
|
|
|
|
|
},
|
|
|
|
|
getQuarterStartAndEnd() {
|
|
|
|
|
const now = new Date();
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
const month = now.getMonth();
|
|
|
|
|
|
|
|
|
|
// 计算当前季度的起始月份
|
|
|
|
|
const quarterStartMonth = Math.floor(month / 3) * 3;
|
|
|
|
|
|
|
|
|
|
// 获取当前季度的第一天
|
|
|
|
|
const quarterStart = new Date(year, quarterStartMonth, 1);
|
|
|
|
|
|
|
|
|
|
// 获取当前季度的最后一天
|
|
|
|
|
const quarterEnd = new Date(year, quarterStartMonth + 3, 0);
|
|
|
|
|
|
|
|
|
|
// 格式化输出
|
|
|
|
|
const format = (date) => {
|
|
|
|
|
const year = date.getFullYear();
|
|
|
|
|
const month = ('0' + (date.getMonth() + 1)).slice(-2);
|
|
|
|
|
const day = ('0' + date.getDate()).slice(-2);
|
|
|
|
|
return `${year}-${month}-${day}`;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const startTime = format(quarterStart);
|
|
|
|
|
const endTime = format(quarterEnd);
|
|
|
|
|
|
|
|
|
|
return [startTime, endTime];
|
|
|
|
|
},
|
|
|
|
|
getYearStartAndEnd() {
|
|
|
|
|
const now = new Date();
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
|
|
|
|
|
// 获取当前年的第一天
|
|
|
|
|
const yearStart = new Date(year, 0, 1);
|
|
|
|
|
|
|
|
|
|
// 获取当前年的最后一天
|
|
|
|
|
const yearEnd = new Date(year, 11, 31);
|
|
|
|
|
|
|
|
|
|
// 格式化输出
|
|
|
|
|
const format = (date) => {
|
|
|
|
|
const year = date.getFullYear();
|
|
|
|
|
const month = ('0' + (date.getMonth() + 1)).slice(-2);
|
|
|
|
|
const day = ('0' + date.getDate()).slice(-2);
|
|
|
|
|
return `${year}-${month}-${day}`;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const startTime = format(yearStart);
|
|
|
|
|
const endTime = format(yearEnd);
|
|
|
|
|
|
|
|
|
|
return [startTime, endTime];
|
2024-10-15 11:43:45 +08:00
|
|
|
|
},
|
2024-09-09 14:39:58 +08:00
|
|
|
|
// 获取员工排行信息
|
|
|
|
|
getEmployeList() {
|
|
|
|
|
this.employeLoading = true
|
2024-10-16 15:09:44 +08:00
|
|
|
|
let data = {
|
|
|
|
|
startTime: this.value2[0],
|
|
|
|
|
endTime: this.value2[1]
|
|
|
|
|
}
|
|
|
|
|
employeeSalesApi(data).then(res => {
|
2024-10-14 14:24:53 +08:00
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
if (res.data.length >= 10) {
|
2024-09-09 14:39:58 +08:00
|
|
|
|
this.employeList = res.data.slice(0, 10);
|
|
|
|
|
} else {
|
|
|
|
|
this.employeList = res.data
|
|
|
|
|
}
|
|
|
|
|
this.employeLoading = false
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 17:20:49 +08:00
|
|
|
|
// 获取数据分析信息
|
|
|
|
|
getDataAnalysis() {
|
2024-10-16 16:28:13 +08:00
|
|
|
|
let data = {
|
|
|
|
|
startTime: this.value1[0],
|
|
|
|
|
endTime: this.value1[1]
|
|
|
|
|
}
|
2024-11-04 18:03:02 +08:00
|
|
|
|
//获取第一个饼状图数据
|
|
|
|
|
getOilPercentage(data).then(res => {
|
|
|
|
|
this.dataAnalysisOilNumberList = res.data
|
|
|
|
|
console.log("饼状图一数据",this.dataAnalysisOilNumberList )
|
|
|
|
|
})
|
|
|
|
|
//获取第二个饼状图数据
|
|
|
|
|
getOilAndGoodsPercentage(data).then(res => {
|
|
|
|
|
this.dataAnalysisIfOilList = res.data
|
|
|
|
|
console.log("饼状图二数据",this.dataAnalysisIfOilList)
|
|
|
|
|
})
|
|
|
|
|
//获取第三个饼状图数据
|
|
|
|
|
getOilAndGoodsAndVipAndPoints(data).then(res => {
|
|
|
|
|
this.dataAnalysisAllList = res.data
|
|
|
|
|
console.log("饼状图三数据",this.dataAnalysisAllList )
|
2024-10-14 17:20:49 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//油站首页数据展示
|
2024-10-15 09:53:01 +08:00
|
|
|
|
getDataShow() {
|
2024-11-04 18:09:27 +08:00
|
|
|
|
|
2024-10-14 17:20:49 +08:00
|
|
|
|
const data = {
|
2024-10-15 15:34:24 +08:00
|
|
|
|
"startTime": this.showValue[0].split(' ')[0],
|
|
|
|
|
"endTime": this.showValue[1].split(' ')[0]
|
2024-10-14 17:20:49 +08:00
|
|
|
|
}
|
|
|
|
|
getDataShow(data).then(res => {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
console.log('首页数据展示', res.data)
|
2024-10-15 11:43:45 +08:00
|
|
|
|
this.dataShows = res.data
|
|
|
|
|
this.initChart()
|
2024-10-14 17:20:49 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//油站首页数据统计
|
2024-10-15 09:53:01 +08:00
|
|
|
|
getDataCount() {
|
2024-10-14 17:20:49 +08:00
|
|
|
|
const data = {
|
2024-10-15 15:34:24 +08:00
|
|
|
|
"startTime": this.countValue[0].split(' ')[0],
|
|
|
|
|
"endTime": this.countValue[1].split(' ')[0]
|
2024-10-14 17:20:49 +08:00
|
|
|
|
}
|
|
|
|
|
getDataCount(data).then(res => {
|
2024-10-15 11:43:45 +08:00
|
|
|
|
// console.log('首页数据统计', res.data)
|
2024-10-15 09:53:01 +08:00
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.dataCount = res.data
|
|
|
|
|
this.initChart()
|
|
|
|
|
}
|
2024-10-14 17:20:49 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getNoticeList() {
|
2024-09-09 16:50:54 +08:00
|
|
|
|
getNotificationlogList({pageNo: 1, pageSize: 4}).then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.noticeList = res.data.records
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getHardwareList() {
|
|
|
|
|
getListApi({page: 1, pageSize: 3, status: '1'}).then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.hardwareList = res.data.records;
|
|
|
|
|
this.hardwareList.forEach(item => {
|
2024-10-14 14:24:53 +08:00
|
|
|
|
if (item.image.includes(",")) {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
item.image = item.image.split(",")[0]
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getStoreList() {
|
|
|
|
|
selectStoreAmount(this.addDateRange({}, this.value2)).then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.storeList = res.data
|
2024-10-15 11:43:45 +08:00
|
|
|
|
this.initChart()
|
2024-09-04 11:22:28 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 选择机构信息
|
2024-10-14 14:24:53 +08:00
|
|
|
|
chooseDept() {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.options.forEach(item => {
|
2024-10-14 14:24:53 +08:00
|
|
|
|
if (item.deptId == this.value) {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.queryParams.ancestors = item.ancestors
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this.getStoreAmount()
|
|
|
|
|
},
|
2024-09-09 16:50:54 +08:00
|
|
|
|
// banner图
|
2024-10-14 14:24:53 +08:00
|
|
|
|
selectBannerList() {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
let queryParams = {
|
2024-10-14 14:24:53 +08:00
|
|
|
|
pageNo: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
systemPosition: "首页",
|
|
|
|
|
bannerStatus: true
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getBannerListApi(queryParams).then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.bannerList = res.data.records
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 查询
|
|
|
|
|
selectChildByDeptIdApi() {
|
|
|
|
|
selectChildByDeptId().then(res => {
|
|
|
|
|
this.options = res.data
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-09 16:50:54 +08:00
|
|
|
|
// 核心数据
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getStoreTotal() {
|
2024-09-09 16:50:54 +08:00
|
|
|
|
getTotalAmount().then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.storeTotal = res.data
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 14:24:53 +08:00
|
|
|
|
getStoreAmount() {
|
|
|
|
|
getDataBoard(this.addDateRange(this.queryParams, this.value1)).then(res => {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.storeAmount = res.data
|
2024-10-23 17:12:34 +08:00
|
|
|
|
this.getDataAnalysis()
|
|
|
|
|
this.initChart()
|
2024-09-04 11:22:28 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
2024-10-14 14:24:53 +08:00
|
|
|
|
countPercentage(upNum, downNum) {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
let percentage = 0;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
percentage = (upNum / downNum) * 100
|
2024-09-04 11:22:28 +08:00
|
|
|
|
return percentage.toFixed(2)
|
|
|
|
|
},
|
|
|
|
|
initChart() {
|
|
|
|
|
const chart = echarts.init(document.getElementById('ccc'))
|
|
|
|
|
const chart1 = echarts.init(document.getElementById('cccc'))
|
2024-10-14 14:24:53 +08:00
|
|
|
|
const chart2 = echarts.init(document.getElementById('ccct'))
|
|
|
|
|
const chart3 = echarts.init(document.getElementById('ctct'))
|
|
|
|
|
const chart4 = echarts.init(document.getElementById('cccf'))
|
2024-09-04 11:22:28 +08:00
|
|
|
|
let dataList = []
|
|
|
|
|
let allTotal = 0
|
|
|
|
|
if (this.storeAmount.oilNameList) {
|
|
|
|
|
this.storeAmount.oilNameList.forEach(item => {
|
|
|
|
|
allTotal += item.countNum
|
|
|
|
|
})
|
|
|
|
|
this.storeAmount.oilNameList.forEach(item => {
|
|
|
|
|
let data = {value: 0, name: ""}
|
|
|
|
|
data.value = this.countPercentage(item.countNum, allTotal);
|
|
|
|
|
data.name = item.oilName + item.oilType + "占比"
|
|
|
|
|
dataList.push(data)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let storeNameList = []
|
|
|
|
|
let oilAmountList = []
|
|
|
|
|
let noOilAmountList = []
|
|
|
|
|
let rechargeBalanceList = []
|
|
|
|
|
let consumeBalanceList = []
|
|
|
|
|
let userBalanceList = []
|
2024-10-14 14:24:53 +08:00
|
|
|
|
if (this.storeList.length > 0) {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
this.storeList.forEach(item => {
|
|
|
|
|
storeNameList.push(item.storeName)
|
|
|
|
|
oilAmountList.push(item.oilAmount)
|
|
|
|
|
noOilAmountList.push(item.noOilAmount)
|
|
|
|
|
rechargeBalanceList.push(item.userRechargeBalance)
|
|
|
|
|
consumeBalanceList.push(item.userConsumeBalance)
|
|
|
|
|
userBalanceList.push(item.userBalance)
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-10-15 11:43:45 +08:00
|
|
|
|
const color = ['#FF9655', '#55F3FF', '#0DC291', '#fe8c4a', '#D55F5F'];
|
|
|
|
|
// 首页数据统计
|
2024-10-15 09:53:01 +08:00
|
|
|
|
const times = this.dataCount.oilData.map(item => item.time);
|
|
|
|
|
const count = [];
|
2024-10-16 11:21:02 +08:00
|
|
|
|
let c = ['product', ...this.dataCount.oilNames]
|
|
|
|
|
let countType = []
|
|
|
|
|
count.push(c)
|
|
|
|
|
this.dataCount.oilNames.forEach(item => {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
let type = {
|
2024-10-16 11:21:02 +08:00
|
|
|
|
type: 'bar'
|
2024-10-15 09:53:01 +08:00
|
|
|
|
}
|
2024-10-16 11:21:02 +08:00
|
|
|
|
countType.push(type)
|
|
|
|
|
})
|
|
|
|
|
this.dataCount.oilData.forEach(item => {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
let a = [item.time, ...item.money]
|
2024-10-15 09:53:01 +08:00
|
|
|
|
count.push(a)
|
2024-10-16 11:21:02 +08:00
|
|
|
|
})
|
2024-10-15 11:43:45 +08:00
|
|
|
|
|
|
|
|
|
// 首页数据展示
|
|
|
|
|
const showTimes = this.dataShows.oilData.map(item => item.day);
|
|
|
|
|
const showCount = [];
|
2024-10-16 11:43:39 +08:00
|
|
|
|
let cshow = ['product', ...this.dataShows.oilNames]
|
2024-10-16 11:21:02 +08:00
|
|
|
|
showCount.push(cshow)
|
|
|
|
|
let showCountType = []
|
2024-10-16 11:43:39 +08:00
|
|
|
|
console.log("看看执行")
|
|
|
|
|
this.dataShows.oilNames.forEach(item => {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
let type = {
|
2024-10-16 11:21:02 +08:00
|
|
|
|
type: 'bar'
|
2024-10-15 11:43:45 +08:00
|
|
|
|
}
|
2024-10-16 11:21:02 +08:00
|
|
|
|
showCountType.push(type)
|
|
|
|
|
})
|
2024-10-16 11:43:39 +08:00
|
|
|
|
console.log(this.dataShows.oilData)
|
|
|
|
|
this.dataShows.oilData.forEach(item => {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
let a = [item.day, ...item.oilPrices]
|
2024-10-15 11:43:45 +08:00
|
|
|
|
showCount.push(a)
|
2024-11-04 18:03:02 +08:00
|
|
|
|
console.log("showCount", a)
|
2024-10-16 11:21:02 +08:00
|
|
|
|
})
|
2024-11-04 18:03:02 +08:00
|
|
|
|
console.log("showCount", showCount)
|
|
|
|
|
console.log("showCountType", showCountType)
|
2024-09-04 11:22:28 +08:00
|
|
|
|
|
|
|
|
|
const option = {
|
|
|
|
|
color: [
|
2024-10-18 10:29:49 +08:00
|
|
|
|
'#36b713',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
'#fc7150',
|
|
|
|
|
'#fea500',
|
|
|
|
|
'#5facfe',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
'#b7f1e2',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
],
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'item'
|
|
|
|
|
},
|
2024-10-18 10:29:49 +08:00
|
|
|
|
legend: {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
type: 'scroll',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
orient: 'vertical',
|
|
|
|
|
right: '0%',
|
|
|
|
|
bottom: '0%',
|
2024-11-04 18:03:02 +08:00
|
|
|
|
left: 'right',
|
|
|
|
|
size: 8
|
2024-10-18 10:29:49 +08:00
|
|
|
|
},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
series: [
|
|
|
|
|
{
|
2024-10-15 11:42:28 +08:00
|
|
|
|
name: '',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
type: 'pie',
|
2024-10-15 11:42:28 +08:00
|
|
|
|
itemStyle: {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
borderRadius: 8,
|
|
|
|
|
borderColor: '#fff',
|
|
|
|
|
borderWidth: 4
|
2024-10-15 11:42:28 +08:00
|
|
|
|
},
|
|
|
|
|
radius: ['40%', '80%'],
|
2024-10-14 17:20:49 +08:00
|
|
|
|
data: this.dataAnalysisOilNumberList,
|
2024-10-18 10:29:49 +08:00
|
|
|
|
label: {
|
|
|
|
|
show: true,
|
|
|
|
|
position: "inside",
|
2024-11-04 18:03:02 +08:00
|
|
|
|
color: '#fff',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
formatter: `{d}%`,
|
|
|
|
|
},
|
|
|
|
|
},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
const option1 = {
|
|
|
|
|
color: [
|
|
|
|
|
'#3B6ADE',
|
2024-09-08 17:38:26 +08:00
|
|
|
|
'#fe8c4a',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
],
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'item'
|
|
|
|
|
},
|
2024-10-18 10:29:49 +08:00
|
|
|
|
legend: {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
type: 'scroll',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
orient: 'vertical',
|
|
|
|
|
right: '0%',
|
|
|
|
|
bottom: '0%',
|
2024-11-04 18:03:02 +08:00
|
|
|
|
left: 'right',
|
|
|
|
|
size: 8
|
2024-10-18 10:29:49 +08:00
|
|
|
|
},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
series: [
|
|
|
|
|
{
|
2024-10-15 11:42:28 +08:00
|
|
|
|
name: '',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
type: 'pie',
|
|
|
|
|
radius: '80%',
|
2024-10-14 17:20:49 +08:00
|
|
|
|
// ],
|
2024-10-15 09:53:01 +08:00
|
|
|
|
data: this.dataAnalysisIfOilList,
|
2024-09-04 11:22:28 +08:00
|
|
|
|
emphasis: {
|
|
|
|
|
itemStyle: {
|
|
|
|
|
shadowBlur: 10,
|
|
|
|
|
shadowOffsetX: 0,
|
|
|
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
|
|
|
}
|
2024-10-18 10:29:49 +08:00
|
|
|
|
},
|
|
|
|
|
label: {
|
|
|
|
|
show: true,
|
|
|
|
|
position: "inside",
|
2024-11-04 18:03:02 +08:00
|
|
|
|
color: '#fff',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
formatter: `{d}%`,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
const option2 = {
|
|
|
|
|
color: [
|
|
|
|
|
'#46c2c4',
|
|
|
|
|
'#6e4dd8',
|
|
|
|
|
'#214790',
|
|
|
|
|
'#d55f5f',
|
|
|
|
|
],
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'item'
|
|
|
|
|
},
|
2024-10-18 10:29:49 +08:00
|
|
|
|
legend: {
|
2024-11-04 18:03:02 +08:00
|
|
|
|
type: 'scroll',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
orient: 'vertical',
|
|
|
|
|
right: '0%',
|
|
|
|
|
bottom: '0%',
|
2024-11-04 18:03:02 +08:00
|
|
|
|
left: 'right',
|
|
|
|
|
size: 8
|
2024-10-18 10:29:49 +08:00
|
|
|
|
},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
series: [
|
|
|
|
|
{
|
2024-10-15 11:42:28 +08:00
|
|
|
|
name: '',
|
2024-09-04 11:22:28 +08:00
|
|
|
|
type: 'pie',
|
|
|
|
|
radius: [50, '80%'],
|
2024-10-15 09:53:01 +08:00
|
|
|
|
data: this.dataAnalysisAllList,
|
2024-09-04 11:22:28 +08:00
|
|
|
|
emphasis: {
|
|
|
|
|
itemStyle: {
|
|
|
|
|
shadowBlur: 10,
|
|
|
|
|
shadowOffsetX: 0,
|
|
|
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
|
|
|
}
|
2024-10-18 10:29:49 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
label: {
|
|
|
|
|
show: true,
|
|
|
|
|
position: "inside",
|
2024-11-04 18:03:02 +08:00
|
|
|
|
color: '#fff',
|
2024-10-18 10:29:49 +08:00
|
|
|
|
formatter: `{d}%`,
|
|
|
|
|
},
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
|
2024-10-15 09:53:01 +08:00
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
const option3 = {
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'axis',
|
|
|
|
|
axisPointer: {
|
|
|
|
|
type: 'cross',
|
|
|
|
|
crossStyle: {
|
|
|
|
|
color: '#999'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
legend: {
|
2024-10-15 14:00:52 +08:00
|
|
|
|
data: this.dataCount.oilNames,
|
|
|
|
|
left: 'right'
|
2024-09-04 11:22:28 +08:00
|
|
|
|
},
|
|
|
|
|
xAxis: [
|
|
|
|
|
{
|
|
|
|
|
type: 'category',
|
2024-10-15 09:53:01 +08:00
|
|
|
|
// data: ['中建锦绣广场1站', '中建锦绣广场2站', '中建锦绣广场3站', '中建锦绣广场4站', '中建锦绣广场5站', '中建锦绣广场6站', '中建锦绣广场7站'],
|
|
|
|
|
data: times,
|
2024-09-04 11:22:28 +08:00
|
|
|
|
axisPointer: {
|
|
|
|
|
type: 'shadow'
|
2024-10-16 16:05:03 +08:00
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
interval: 0,
|
|
|
|
|
// rotate: 30
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
yAxis: [
|
|
|
|
|
{
|
|
|
|
|
type: 'value',
|
|
|
|
|
name: '金额(元)',
|
|
|
|
|
// min: 0,
|
|
|
|
|
// max: 10000,
|
|
|
|
|
// interval: 2000,
|
|
|
|
|
axisLabel: {
|
|
|
|
|
formatter: '{value}'
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-15 11:42:28 +08:00
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
],
|
2024-10-16 11:21:02 +08:00
|
|
|
|
dataset: {
|
|
|
|
|
source: count
|
|
|
|
|
},
|
2024-10-15 11:42:28 +08:00
|
|
|
|
|
2024-10-16 11:21:02 +08:00
|
|
|
|
series: countType,
|
2024-09-04 11:22:28 +08:00
|
|
|
|
grid: {
|
|
|
|
|
left: '3%',
|
|
|
|
|
right: '3%',
|
|
|
|
|
bottom: '3%',
|
|
|
|
|
containLabel: true
|
|
|
|
|
}
|
|
|
|
|
};
|
2024-09-06 13:38:58 +08:00
|
|
|
|
const option4 = {
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'axis',
|
|
|
|
|
axisPointer: {
|
|
|
|
|
type: 'cross',
|
|
|
|
|
crossStyle: {
|
|
|
|
|
color: '#999'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
legend: {
|
2024-10-15 14:00:52 +08:00
|
|
|
|
data: this.dataShows.oilNames,
|
|
|
|
|
left: 'right'
|
|
|
|
|
|
2024-09-06 13:38:58 +08:00
|
|
|
|
},
|
|
|
|
|
xAxis: [
|
|
|
|
|
{
|
|
|
|
|
type: 'category',
|
2024-10-15 11:43:45 +08:00
|
|
|
|
data: showTimes,
|
2024-09-06 13:38:58 +08:00
|
|
|
|
axisPointer: {
|
|
|
|
|
type: 'shadow'
|
2024-10-16 16:05:03 +08:00
|
|
|
|
},
|
|
|
|
|
axisLabel: {
|
|
|
|
|
interval: 0,
|
|
|
|
|
// rotate: 30
|
2024-09-06 13:38:58 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
yAxis: [
|
|
|
|
|
{
|
|
|
|
|
type: 'value',
|
|
|
|
|
name: '金额(元)',
|
|
|
|
|
axisLabel: {
|
|
|
|
|
formatter: '{value}'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
2024-10-16 11:21:02 +08:00
|
|
|
|
dataset: {
|
|
|
|
|
source: showCount
|
|
|
|
|
},
|
|
|
|
|
series: showCountType,
|
2024-09-06 13:38:58 +08:00
|
|
|
|
grid: {
|
|
|
|
|
left: '3%',
|
|
|
|
|
right: '3%',
|
2024-10-15 11:42:28 +08:00
|
|
|
|
bottom: '5%',
|
2024-09-06 13:38:58 +08:00
|
|
|
|
containLabel: true
|
|
|
|
|
}
|
|
|
|
|
};
|
2024-09-04 11:22:28 +08:00
|
|
|
|
chart.setOption(option)
|
|
|
|
|
chart1.setOption(option1)
|
|
|
|
|
chart2.setOption(option2)
|
|
|
|
|
chart3.setOption(option3)
|
2024-09-06 13:38:58 +08:00
|
|
|
|
chart4.setOption(option4)
|
2024-09-04 11:22:28 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
2024-10-14 14:24:53 +08:00
|
|
|
|
.app-container {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background: #f4f5f9;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.d-s {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.bannser {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
height: 230px;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
overflow: hidden;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
img {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.b-bs {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
2024-10-12 14:51:25 +08:00
|
|
|
|
margin-top: 15px;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.left-box {
|
2024-10-12 14:51:25 +08:00
|
|
|
|
width: 74%;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
border-radius: 10px 10px 10px 10px;
|
|
|
|
|
border: 1px solid #FFFFFF;
|
|
|
|
|
height: 192px;
|
|
|
|
|
//display: flex;
|
|
|
|
|
//align-items: center;
|
|
|
|
|
//justify-content: space-between;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 15px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.left-box-t {
|
2024-10-12 14:51:25 +08:00
|
|
|
|
width: 74%;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 15px;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border: 1px solid #FFFFFF;
|
|
|
|
|
height: 380px;
|
|
|
|
|
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.right-box {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 25%;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border: 1px solid #FFFFFF;
|
|
|
|
|
height: 192px;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 15px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.right-box-t {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 25%;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border: 1px solid #FFFFFF;
|
|
|
|
|
height: 380px;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 15px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.san-box {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 24%;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
height: 100px;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
border-radius: 8px;
|
2024-09-08 17:38:26 +08:00
|
|
|
|
background: #fe8c4a;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
margin: 15px auto;
|
|
|
|
|
|
2024-09-04 11:22:28 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 20px 40px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.r-title {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 42px;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.r-size {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-size: 14px;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.title_ {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-size: 16px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.hang_ {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
white-space: nowrap; //不换行
|
|
|
|
|
overflow: hidden; //超出部分隐藏
|
|
|
|
|
text-overflow: ellipsis; //文本溢出显示省略号
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-size: 14px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
color: #333;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
margin: 14px auto;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.h-tt {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-size: 16px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
font-weight: bold;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.q-anniu {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 80px;
|
|
|
|
|
height: 26px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
background: #FF9655 !important;
|
|
|
|
|
border-radius: 4px 4px 4px 4px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
color: #fff !important;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.h-anniu {
|
|
|
|
|
width: 80px;
|
|
|
|
|
height: 26px;
|
|
|
|
|
background: #fafafa;
|
2024-10-14 14:06:09 +08:00
|
|
|
|
border-radius: 4px 4px 4px 4px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin-right: 20px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
font-weight: 400;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #555555;
|
2024-10-14 14:06:09 +08:00
|
|
|
|
}
|
2024-09-04 11:22:28 +08:00
|
|
|
|
|
2024-10-14 14:24:53 +08:00
|
|
|
|
.k-box {
|
|
|
|
|
width: 24%;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
height: 68px;
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
border: 1px solid #e1e0e0;
|
|
|
|
|
box-sizing: border-box;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
margin: 0 auto;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
padding: 10px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.num-size {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 24px;
|
|
|
|
|
color: #555555;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.sian {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 6px;
|
|
|
|
|
height: 6px;
|
|
|
|
|
background: #2BBCFF;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
margin-right: 5px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.hui-hang {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
height: 5px;
|
|
|
|
|
background: #F4F5F9;
|
|
|
|
|
margin: 15px auto;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.h-r-ba {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
height: 170px;
|
|
|
|
|
margin: 0px 50px;
|
|
|
|
|
width: 5px;
|
|
|
|
|
background: #f4f5f9;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.r-img {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 84px;
|
|
|
|
|
height: 70px;
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.bottom_ {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
border-radius: 10px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
background: #fff;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.anniu-h {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
width: 80px;
|
|
|
|
|
height: 26px;
|
|
|
|
|
background: #FAFAFA;
|
|
|
|
|
border-radius: 4px 4px 4px 4px;
|
|
|
|
|
border: 1px solid #DDDDDD;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
color: #777777;
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.anniu-act {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
background: #FF9655 !important;
|
|
|
|
|
border: 1px solid #FF9655 !important;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.la-left {
|
2024-09-06 13:38:58 +08:00
|
|
|
|
width: 73%;
|
2024-09-04 11:22:28 +08:00
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.la-right {
|
2024-09-04 11:22:28 +08:00
|
|
|
|
height: 25%;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.hui-box {
|
2024-09-06 13:38:58 +08:00
|
|
|
|
background: #F4F5F9;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
width: 100%;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
display: flex;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
font-size: 14px;
|
2024-09-06 13:38:58 +08:00
|
|
|
|
justify-content: space-between;
|
|
|
|
|
margin: 10px auto;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
div {
|
2024-09-06 13:38:58 +08:00
|
|
|
|
width: 20%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.hang-box {
|
2024-09-06 13:38:58 +08:00
|
|
|
|
border-radius: 8px;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
font-size: 14px;
|
2024-09-06 13:38:58 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
box-sizing: border-box;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
padding: 5px;
|
2024-09-06 13:38:58 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
2024-10-14 14:24:53 +08:00
|
|
|
|
margin: 0px auto;
|
|
|
|
|
|
|
|
|
|
div {
|
2024-09-06 13:38:58 +08:00
|
|
|
|
width: 20%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
2024-10-12 14:51:25 +08:00
|
|
|
|
}
|
2024-10-14 14:24:53 +08:00
|
|
|
|
|
|
|
|
|
.home-index {
|
2024-10-12 14:51:25 +08:00
|
|
|
|
|
2024-09-06 13:38:58 +08:00
|
|
|
|
}
|
2024-09-04 11:22:28 +08:00
|
|
|
|
</style>
|