| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- <template>
- <!-- 虫情历史数据 -->
- <view>
- <!-- 统计图 -->
- <view class="ui-card history-chart">
- <!-- 按钮组合 -->
- <view class="time-btn-group">
- <block v-for="(time,index) in timeList" :key="index">
- <view class="row-center time-btn" :class="params.start_time==time.value?'active':''"
- @click="selectTime(time.value)"> {{time.text}}</view>
- </block>
- </view>
- <!-- 区域折线图 -->
- <area-charts :chartData="historyChartData"></area-charts>
- </view>
- <!-- 统计图end -->
- <!-- 历史数据列表 -->
- <view class="ui-card history-panel">
- <view class="row-between mb">
- <view class="">数据列表</view>
- </view>
- <!-- 历史数据表格 -->
- <uni-table class="table-style" :loading="loading" border emptyText="暂无更多数据">
- <uni-tr>
- <uni-th width="150" align="center">日期</uni-th>
- <uni-th width="150" align="center">环境温度(°C)</uni-th>
- <uni-th align="center">环境湿度(%)</uni-th>
- <uni-th width="204" align="center">加热仓温度(°C)</uni-th>
- </uni-tr>
- <uni-tr v-for="(item, index) in historyList" :key="index">
- <uni-td>{{ item.addtime | timeFrom}}</uni-td>
- <uni-td>{{ item.at }}</uni-td>
- <uni-td>
- <view class="name">{{ item.ah }}</view>
- </uni-td>
- <uni-td align="center">{{ item.hrt }}</uni-td>
- </uni-tr>
- </uni-table>
- <!-- 页码 -->
- <uni-pagination :total="total" :current="params.page" @change="getHistoryList" />
- <!-- 页码end -->
- </view>
- <!-- 历史数据列表end -->
- </view>
- </template>
- <script>
- import {
- getWormLampHistory
- } from '@/api/worm.js'
- import areaCharts from './components/w-area-charts.vue'
- import moment from 'moment';
- // 获取开始还见
- const startTime = (num, str) => {
- let time = moment().subtract(num, str);
- return moment(time).unix();
- }
- export default {
- data() {
- return {
- // 时间列表
- timeList: [{
- text: '24小时',
- value: startTime(1, 'days'),
- },
- {
- text: '近一个月',
- value: startTime(1, 'months'),
- }, {
- text: '近半年',
- value: startTime(6, 'months'),
- }, {
- text: '近一年',
- value: startTime(1, 'years'),
- }
- ],
- loading: false, // 表格加载状态
- params: {
- device_type_id: 3, // 设备类型id 3测报灯 6孢子仪
- device_id: '', // 设备号
- start_time: 0, //开始时间
- end_time: moment().unix(), // 结束时间
- page: 1,
- },
- // 历史数据列表
- historyList: [],
- total: 0,
- // 历史数据折线图
- historyChartData: {
- categories: [],
- //{name: "",data: []}
- series: []
- }
- };
- },
- onLoad(options) {
- this.params.device_id = options.imeiId;
- this.params.start_time = this.timeList[0].value;
- this.getHistoryList();
- },
- components: {
- areaCharts
- },
- methods: {
- // 选择时间范围
- selectTime(value) {
- this.params.start_time = value;
- this.getHistoryList();
- },
- /**
- * 获取历史数据列表
- * @param {Object} e 获取当前页数 e.current
- */
- async getHistoryList(e) {
- this.params.page = e?.current ?? 1;
- this.loading=true;
- const {
- data,
- counts
- } = await getWormLampHistory(this.params);
- this.loading=false;
- const historyList = data.map(item => item.d_h_t);
- this.historyList = historyList;
- this.total = counts;
- let categories = [];
- let series = [];
- let seriesKey = {
- at: '环境温度(°C)',
- ah: '环境湿度(%)',
- hrt: '加热仓温度(°C)'
- }
- for (let key in seriesKey) {
- series.push({
- name: seriesKey[key],
- data: [],
- key,
- });
- }
- this.historyList.forEach((item) => {
- categories.push(moment(item.addtime*1000).format('MM-月DD日'));
- series.forEach(serieItem=>{
- serieItem.data.push(item[serieItem.key]);
- })
- })
- this.historyChartData = {
- categories,
- series: series
- }
- }
- }
- }
- </script>
- <style lang="scss">
- .history-chart {
- padding: 32rpx 24rpx;
- }
- .time-btn-group {
- display: flex;
- justify-content: center;
- margin-bottom: 24rpx;
- .time-btn {
- width: 125rpx;
- height: 55rpx;
- font-size: 24rpx;
- color: #999;
- border-radius: 8rpx;
- border: 1rpx solid #DDDDDD;
- &.active {
- border-color: #317afd;
- color: #317afd;
- }
- }
- }
- .history-panel {
- padding: 24rpx 26rpx;
- margin-bottom: 56rpx;
- }
- </style>
|