zhuguifei
2025-09-02 9cc59c17892a7e69de54e06b5931e78c9b05551c
添加mqtt登出
已修改6个文件
644 ■■■■ 文件已修改
mqtt/MqttView.vue 95 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageA/pages/device/control.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabBar/device.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabBar/general.vue 487 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabBar/me.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabBar/warning.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mqtt/MqttView.vue
@@ -15,6 +15,12 @@
        },
        destroyed() {
            console.error("MQTT组件销毁")
            this.$mqttTool.end().then(res => {
                console.error(res)
            })
        },
        methods: {
            initMqtt() {
                uni.getSystemInfo({
@@ -43,11 +49,11 @@
                    // #ifdef H5
                    url: 'wss://' + this.$api.mqttBaseUrl + ':8084/mqtt',
                    // #endif
                    // #ifdef MP-WEIXIN
                    url: 'wxs://' + this.$api.mqttBaseUrl + ':8084/mqtt',// 微信小程序强制 WSS
                    // #endif
                    // #ifdef APP-PLUS
                    url: 'wxs://' + this.$api.mqttBaseUrl + ':8084/mqtt',  // Android/iOS 用普通 WebSocket
                    // #ifdef MP-WEIXIN
                    url: 'wxs://' + this.$api.mqttBaseUrl + ':8084/mqtt', // 微信小程序强制 WSS
                    // #endif
                    // #ifdef APP-PLUS
                    url: 'wxs://' + this.$api.mqttBaseUrl + ':8084/mqtt', // Android/iOS 用普通 WebSocket
                    // #endif
                    clientId: deviceid,
                    username: account.username,
@@ -70,39 +76,40 @@
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅设备实时故障(主动请求只发给请求设备)
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_ONECE_TENANT_REAL_FAULT.replace('%s', deviceid),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅干燥设备连接断开状态更新-租户内所有设备
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_BROADCAST_TENANT_UPDATE_EQU_STATU.replace('%s', this.tenantId),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅查询干燥设备连接状态-单个设备
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_RES_EQU_STATU.replace('%s', deviceid),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅干燥设备实时数据
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_BROADCAST_TENANT_REAL_DATA.replace('%s', this.tenantId),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                })
                //订阅设备实时故障(主动请求只发给请求设备)
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_ONECE_TENANT_REAL_FAULT.replace('%s', deviceid),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅干燥设备连接断开状态更新-租户内所有设备
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_BROADCAST_TENANT_UPDATE_EQU_STATU.replace('%s', this
                        .tenantId),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅查询干燥设备连接状态-单个设备
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_RES_EQU_STATU.replace('%s', deviceid),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅干燥设备实时数据
                this.$mqttTool.subscribe({
                    topic: this.$constant.SERVICE_BROADCAST_TENANT_REAL_DATA.replace('%s', this.tenantId),
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                //订阅发送指令返回结果
                // this.$mqttTool.subscribe({
                //     topic: this.$constant.SERVICE_RES_EQU_CMD,
@@ -113,30 +120,30 @@
                // if (!client) {
                //     return false
                // }
                let that = this
                let that = this
                let client = this.$mqttTool.client
                client.on('connect', function(res) {
                    console.error('连接成功')
                    console.error('连接成功')
                    console.error(res)
                })
                client.on('reconnect', function(res) {
                    console.error('重新连接')
                    console.error('重新连接')
                    console.error(res)
                })
                client.on('error', function(res) {
                    console.info('连接错误')
                    console.info('连接错误')
                    console.error(res)
                })
                client.on('close', function(res) {
                    console.error('关闭成功')
                    console.error('关闭成功')
                    console.error(res)
                })
                client.on('message', function(topic, message, buffer) {
                    uni.$emit(that.$constant.MQTT_TOPIC_MESSAGE, message);
                    console.error("收到message(总):"+topic)
                    //console.error("收到message(总):"+topic)
                })
packageA/pages/device/control.vue
@@ -244,6 +244,15 @@
                timer: null,
                realFaults: [],
                allFaults: [{
                        id: 0,
                        name: '急停报警(总)',
                        type: 1,
                        position: {
                            top: 40,
                            left: 230
                        },
                        show: false
                    },{
                        id: 1,
                        name: '设备急停(总)',
                        type: 1,
@@ -623,7 +632,7 @@
                                break;
                                //topic 实时报警
                            case topics.realFaultTopic:
                            case topics.oneceFaultTopic:
                            case topics.oneceFaultTopic:
                                if (!this.model.connected) {
                                    return false
                                }
@@ -770,7 +779,7 @@
                }
                this.$mqttTool.publish(opts).then(res => {
                    console.error(res)
                    //console.error(res)
                })
            },
pages/tabBar/device.vue
@@ -169,15 +169,22 @@
                    </view>
                    <view class="info-box">
                        <view class="left flex-sub">
                        <view class="left flex-sub" style="width: 60%;">
                            <view class="title text-sm text-cut">报警信息:</view>
                            <template v-if="item.errorData">
                                <view class="title text-sm text-red">故障 {{item.errorData.length}}</view>
                                <view class="title text-sm text-red text-cut">{{ (item.errorData.length > 0) ? item.errorData[0]:'' }}</view>
                            </template>
                            <template v-if="item.warnData">
                                <view class="title text-sm text-yellow">告警 {{item.warnData.length}}</view>
                            </template>
                             <template v-else-if="item.warnData">
                                <view class="title text-sm text-yellow text-cut"> {{(item.warnData.length > 0) ? item.warnData[0]:''}}</view>
                            </template>
                            <view v-if="getErrorCount(item) > 0">
                                <u-tag  size="mini" :text="getErrorCount(item)" type="error" plain></u-tag>
                            </view>
                            <view style="width: 20rpx;"></view>
                            <view v-if="getWarnCount(item) > 0">
                                <u-tag  size="mini" :text="getWarnCount(item)" type="warning" plain></u-tag>
                            </view>
                        </view>
                        <view class="right" style="min-width: 240rpx;">
@@ -266,9 +273,25 @@
            },
            getErrorCount(item){
                let count = 0;
                if(item.errorData){
                    count += item.errorData.length
                }
                return count;
            },
            getWarnCount(item){
                let count = 0;
                if(item.warnData){
                    count += item.warnData.length
                }
                return count;
            },
            startTimer() {
                this.timer = setInterval(() => {
                    this.queryRealFaultData();
                    //this.queryRealFaultData();
                }, 3000);
            },
            stopTimer() {
@@ -323,7 +346,7 @@
                                this.mergeMqttRealData(wdata);
                                break;
                            case topics.realFaultTopic:
                            case topics.oneceFaultTopic:
                            case topics.oneceFaultTopic:
                                this.handleFaultData(wdata);
                                break;
                        }
pages/tabBar/general.vue
@@ -1,224 +1,199 @@
<template>
    <view class="app">
        <cu-custom bgColor="bg-gradual-blue" :isBack="false">
            <block slot="content">兰浦智能干燥</block>
        </cu-custom>
        <u-toast ref="uToast"></u-toast>
        <view class="card-box dynamic shadow">
            <view class="title-box margin-bottom-sm">
                <view class="left justify-between">
                    <view class="flex align-center">
                        <uni-text class="cuIcon-titles text-blue"></uni-text>
                        <view class="title">总览</view>
                    </view>
                    <view>
                        <text class="text-gray">{{model.date}}</text>
                    </view>
                </view>
            </view>
            <view class="flex flex-direction padding-xs">
                <view class="flex">
                    <view class="flex-sub flex flex-direction">
                        <text class="text-df">烘干数量</text>
                        <text class="text-bold text-sl margin-top-xs text-cyan margin-top-sm">{{showValue(model.feed)}}
                            <text class="text-gray text-sm margin-left-xs">筐</text></text>
                    </view>
                    <view class="flex-twice flex flex-direction justify-between">
                        <view class="flex-sub flex">
                            <view class="flex flex-direction flex-sub">
                                <text class="text-gray text-xs">批次信息</text>
                                <text class="text-black">
                                    <text class="text-black">种类:</text>
                                    <text class="margin-lr-xs">{{showValue(model.group)}}</text>
                                    <text class="text-gray text-xs"></text>
                                </text>
                            </view>
                            <view class="flex flex-direction flex-sub">
                                <text class="text-white text-xs">批次</text>
                                <text class="text-black">
                                    <text class="text-black">批次:</text>
                                    <text class="margin-lr-xs">{{showValue(model.batch)}}</text>
                                    <text class="text-gray text-xs"></text>
                                </text>
                            </view>
                        </view>
                        <view class="flex-sub flex margin-top-sm">
                            <view class="flex flex-direction flex-sub">
                                <text class="text-gray text-xs">烘干信息</text>
                                <text class="text-cyan">
                                    <text class="text-black">重量:</text>
                                    <text class="margin-lr-xs">{{showValue(model.weight)}}</text>
                                    <text class="text-gray text-xs">kg</text>
                                </text>
                            </view>
                            <view class="flex flex-direction flex-sub">
                                <text class="text-white text-xs">时间</text>
                                <text class="text-cyan">
                                    <text class="text-black">时间:</text>
                                    <text class="margin-lr-xs">{{showValue(model.dryTime)}}</text>
                                    <text class="text-gray text-xs">min</text>
                                </text>
                            </view>
                        </view>
                    </view>
                </view>
                <view class="margin-top">
                    <u-scroll-list>
                    </u-scroll-list>
                </view>
            </view>
        </view>
        <view class="card-box dynamic shadow">
            <view class="title-box">
                <view class="left">
                    <uni-text class="cuIcon-titles text-blue"></uni-text>
                    <view class="title">日期</view>
                </view>
            </view>
            <lunc-calendar ref="calendar" @dayChange="dayChange" weekType="星期" @monthChange="monthChange"
                :showShrink="true" shrinkState="week" :signList="monthList"></lunc-calendar>
        </view>
        <view class="card-box dynamic shadow" >
            <view class="title-box">
                <view class="left">
                    <uni-text class="cuIcon-titles text-blue"></uni-text>
                    <view class="title">明细</view>
                </view>
            </view>
            <u-skeleton rows="20" :loading="loading" :title="false">
                <view class="data-item" v-for="(item, index) in herbList" :key="item.id" style="padding: 0 10rpx;">
                    <view class="flex justify-between text-lg align-center padding-tb-xs">
                        <view class="flex">
                            <text>中草药</text>
                            <text>丨</text>
                            <text @click="showLongName(showValue(item.herbName))"
                                class="text-cut flex-twice">{{showValue(item.herbName)}}</text>
                            <!-- <view class="margin-lr-sm">
                            <u-tag text="报警一次" plain size="mini" type="warning"></u-tag>
                        </view> -->
                            <view class="margin-lr-sm">
                                <u-tag text="正常" plain size="mini" type="success"></u-tag>
                            </view>
                        </view>
                        <view style="width:160rpx;" class="flex align-center text-xs ">
                            <text>进度:</text>
                            <view style="width: 100rpx;">
                                <u-line-progress :percentage="calcProgress(item.dryTime,item.et)"
                                    height="10"></u-line-progress>
                            </view>
                        </view>
                    </view>
                    <view style="display: flex;flex-direction: row;height: 120rpx;">
                        <view class="image">
                            <image :src="dataList[0].goodsUrl" mode="aspectFill"></image>
                        </view>
                        <view class="flex flex-direction margin-left-xl margin-left-sm justify-center">
                            <view>
                                <text class="text-xxl text-green">{{showValue(item.target)}}%</text>
                                <text
                                    class="text-xs margin-top-xs text-grey margin-left-xs text-line-through">{{showValue(item.initial)}}%</text>
                            </view>
                            <text class="text-xs margin-top-xs text-grey">含水率</text>
                        </view>
                        <view class="flex flex-direction margin-left-xl margin-left-10p justify-center">
                            <view>
                                <text class="text-xxl">{{showValue(item.yield )}}kg</text>
                                <text
                                    class="text-xs margin-top-xs text-grey margin-left-xs text-line-through">{{showValue(item.originWeight)}}kg</text>
                            </view>
                            <view class="text-xs margin-top-xs text-grey">
                                <text>{{showValue(item.feed)}}筐</text>
                                <text style="margin: 0 10rpx;"> l </text>
                                <text>{{showValue(item.windTemp)}}℃</text>
                                <text style="margin: 0 10rpx;"> l </text>
                                <text>{{showValue(item.dryTime)}}min</text>
                            </view>
                        </view>
                    </view>
                    <u-gap height="10"></u-gap>
                    <view class="text-grey text-sm flex  justify-between">
                        <text>{{showValue(item.code)}}</text>
                        <text>{{showValue(item.orderTime)}}</text>
                    </view>
                    <u-line color="#f1f1f1" margin="15rpx 0 15rpx 0"></u-line>
                </view>
            </u-skeleton>
        </view>
        <mqtt-view ref="mqttView"></mqtt-view>
        <!--
        <view class="page-box" v-show="false">
            <view class="order" v-for="(res, index) in dataList" :key="res.id">
                <view class="top">
                    <view class="left">
                        <uni-text class="cuIcon-titles text-blue"></uni-text>
                        <view class="store">{{ res.store }}</view>
                        <u-icon name="arrow-right" color="rgb(203,203,203)" :size="12"></u-icon>
                    </view>
                    <view class="right">
                        <view class='cu-tag radius light bg-blue'>{{res.id}}</view>
                    </view>
                </view>
                <view class="item">
                    <view class="left">
                        <image :src="res.goodsUrl" mode="aspectFill"></image>
                    </view>
                    <view class="content">
                        <view>
                            <view class="title u-line-2 text-bold">当归(12:00-13:00)</view>
                            <view class="type">重量:200kg</view>
                            <view class="type">含水率:30% <text style="color: green;">(13%)</text></view>
                            <view class="delivery-time">时间: 60min</view>
        <z-paging ref="paging" v-model="herbList" :auto-show-back-to-top="true" :loading-more-enabled="false" show-refresher-update-time @query="queryList">
            <template #top>
                <cu-custom bgColor="bg-gradual-blue" :isBack="false">
                    <block slot="content">兰浦智能干燥</block>
                </cu-custom>
                <view class="card-box dynamic shadow">
                    <view class="title-box margin-bottom-sm">
                        <view class="left justify-between">
                            <view class="flex align-center">
                                <uni-text class="cuIcon-titles text-blue"></uni-text>
                                <view class="title">总览</view>
                            </view>
                            <view>
                                <text class="text-gray">{{model.date}}</text>
                            </view>
                        </view>
                    </view>
                    <view class="flex flex-direction padding-xs">
                        <view class="flex">
                            <view class="flex-sub flex flex-direction">
                                <text class="text-df">烘干数量</text>
                                <text
                                    class="text-bold text-sl margin-top-xs text-cyan margin-top-sm">{{showValue(model.feed)}}
                                    <text class="text-gray text-sm margin-left-xs">筐</text></text>
                            </view>
                            <view class="flex-twice flex flex-direction justify-between">
                                <view class="flex-sub flex">
                                    <view class="flex flex-direction flex-sub">
                                        <text class="text-gray text-xs">批次信息</text>
                                        <text class="text-black">
                                            <text class="text-black">种类:</text>
                                            <text class="margin-lr-xs">{{showValue(model.group)}}</text>
                                            <text class="text-gray text-xs"></text>
                                        </text>
                                    </view>
                                    <view class="flex flex-direction flex-sub">
                                        <text class="text-white text-xs">批次</text>
                                        <text class="text-black">
                                            <text class="text-black">批次:</text>
                                            <text class="margin-lr-xs">{{showValue(model.batch)}}</text>
                                            <text class="text-gray text-xs"></text>
                                        </text>
                                    </view>
                                </view>
                                <view class="flex-sub flex margin-top-sm">
                                    <view class="flex flex-direction flex-sub">
                                        <text class="text-gray text-xs">烘干信息</text>
                                        <text class="text-cyan">
                                            <text class="text-black">重量:</text>
                                            <text class="margin-lr-xs">{{showValue(model.weight)}}</text>
                                            <text class="text-gray text-xs">kg</text>
                                        </text>
                                    </view>
                                    <view class="flex flex-direction flex-sub">
                                        <text class="text-white text-xs">时间</text>
                                        <text class="text-cyan">
                                            <text class="text-black">时间:</text>
                                            <text class="margin-lr-xs">{{showValue(model.dryTime)}}</text>
                                            <text class="text-gray text-xs">min</text>
                                        </text>
                                    </view>
                                </view>
                            </view>
                        </view>
                        <view class="margin-top">
                            <u-scroll-list>
                            </u-scroll-list>
                        </view>
                    </view>
                </view>
                <u-line color="#f1f1f1" margin="24rpx 0 15rpx 0"></u-line>
                <view class="bottom">
                    <view class="bottom_left">
                        <text class="text-blue">干燥进度:</text>
                        <view class="progressBox">
                            <u-line-progress :percentage="res.progre" height="8" :active-color="activeColor"
                                :striped="true" :stripedActive="true"></u-line-progress>
            </template>
            <template>
                <view class="card-box dynamic shadow">
                    <view class="title-box">
                        <view class="left">
                            <uni-text class="cuIcon-titles text-blue"></uni-text>
                            <view class="title">日期</view>
                        </view>
                    </view>
                    <view class="btnBox">
                        <view @click="goCharts" class="evaluate btn">查看图表</view>
                    </view>
                    <lunc-calendar ref="calendar" @dayChange="dayChange" weekType="星期" @monthChange="monthChange"
                        :showShrink="true" shrinkState="week" :signList="monthList"></lunc-calendar>
                </view>
            </view>
        </view> -->
                <view class="card-box dynamic shadow">
                    <view class="title-box">
                        <view class="left">
                            <uni-text class="cuIcon-titles text-blue"></uni-text>
                            <view class="title">工单</view>
                        </view>
                    </view>
                    <u-skeleton rows="20" :loading="loading" :title="false">
                        <view class="data-item" v-for="(item, index) in herbList" :key="item.id"
                            style="padding: 0 10rpx;">
                            <view class="flex justify-between text-lg align-center padding-tb-xs">
                                <view class="flex">
                                    <text>中草药</text>
                                    <text>丨</text>
                                    <text @click="showLongName(showValue(item.herbName))"
                                        class="text-cut flex-twice">{{showValue(item.herbName)}}</text>
                                    <view class="margin-lr-sm">
                                        <u-tag v-if="item.orderStatus == 0" text="准备" plain size="mini"
                                            type="warning"></u-tag>
                                        <u-tag v-else-if="item.orderStatus == 1" text="上料" plain size="mini"
                                            type="warning"></u-tag>
                                        <u-tag v-else-if="item.orderStatus == 2" text="生产" plain size="mini"
                                            type="primary"></u-tag>
                                        <u-tag v-else-if="item.orderStatus == 3" text="暂停" plain size="mini"
                                            type="warning"></u-tag>
                                        <u-tag v-else-if="item.orderStatus == 4" text="完成" plain size="mini"
                                            type="success"></u-tag>
                                    </view>
                                </view>
                                <view style="width:160rpx;" class="flex align-center text-xs ">
                                    <text>进度:</text>
                                    <view style="width: 100rpx;">
                                        <u-line-progress :percentage="calcProgress(item.dryTime,item.et)"
                                            height="10"></u-line-progress>
                                    </view>
                                </view>
                            </view>
                            <view style="display: flex;flex-direction: row;height: 120rpx;">
                                <view class="image">
                                    <image :src="dataList[0].goodsUrl" mode="aspectFill"></image>
                                </view>
                                <view class="flex flex-direction margin-left-xl margin-left-sm justify-center">
                                    <view>
                                        <text class="text-xxl text-green">{{showValue(item.target)}}%</text>
                                        <text
                                            class="text-xs margin-top-xs text-grey margin-left-xs text-line-through">{{showValue(item.initial)}}%</text>
                                    </view>
                                    <text class="text-xs margin-top-xs text-grey">含水率</text>
                                </view>
                                <view class="flex flex-direction margin-left-xl margin-left-10p justify-center">
                                    <view>
                                        <text class="text-xxl">{{showValue(item.yield )}}kg</text>
                                        <text
                                            class="text-xs margin-top-xs text-grey margin-left-xs text-line-through">{{showValue(item.originWeight)}}kg</text>
                                    </view>
                                    <view class="text-xs margin-top-xs text-grey">
                                        <text>{{showValue(item.feed)}}筐</text>
                                        <text style="margin: 0 10rpx;"> l </text>
                                        <text>{{showValue(item.windTemp)}}℃</text>
                                        <text style="margin: 0 10rpx;"> l </text>
                                        <text>{{showValue(item.dryTime)}}min</text>
                                    </view>
                                </view>
                            </view>
                            <u-gap height="10"></u-gap>
                            <view class="text-grey text-sm flex  justify-between">
                                <text>{{showValue(item.code)}}</text>
                                <text>{{showValue(item.orderTime)}}</text>
                            </view>
                            <u-line color="#f1f1f1" margin="15rpx 0 15rpx 0"></u-line>
                        </view>
                    </u-skeleton>
                </view>
            </template>
        </z-paging>
    </view>
</template>
@@ -293,6 +268,7 @@
                ],
                model: {
                    date: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd'),
                    month: uni.$u.timeFormat(new Date(), 'yyyy-mm')
                },
                herbList: []
            }
@@ -300,11 +276,7 @@
        onShow() {
        },
        mounted() {
        },
        mounted() {},
        onReady() {
            //接收报警信息,数据预处理(未打开tab无法接收数据)
            uni.$on(this.$constant.MQTT_TOPIC_MESSAGE, (data) => {
@@ -340,10 +312,6 @@
            let month = uni.$u.timeFormat(new Date(), 'yyyy-mm')
            this.getMonth(month)
            let day = uni.$u.timeFormat(new Date(), 'yyyy-mm-dd')
            this.getOrderList(day, day);
        },
        onLoad() {},
        onTabItemTap: function(e) {
@@ -367,9 +335,9 @@
                    // #endif
                    // #ifdef APP-PLUS
                    url: 'wx://' + this.$api.mqttBaseUrl + ':8083/mqtt',
                    // #endif
                    // #ifdef MP-WEIXIN
                    url: 'wss://' + this.$api.mqttBaseUrl + '/mqtt', // 必须用 wss,端口通常为443可省略
                    // #endif
                    // #ifdef MP-WEIXIN
                    url: 'wss://' + this.$api.mqttBaseUrl + '/mqtt', // 必须用 wss,端口通常为443可省略
                    // #endif
                    clientId: this.deviceId,
                    username: account.username,
@@ -400,8 +368,8 @@
                    qos: 0
                }).then(res => {
                    console.error(res)
                })
                })
                //订阅发送指令返回结果
                // this.$mqttTool.subscribe({
@@ -443,7 +411,7 @@
            },
            dayChange(dayInfo) { // 点击日期
                this.model.date = dayInfo.date
                this.getOrderList(dayInfo.date, dayInfo.date);
                this.$refs.paging.refresh();
            },
            monthChange(monthInfo) { // 切换月份
                let m = monthInfo.month
@@ -464,41 +432,54 @@
                    url: "/packageA/pages/charts/charts"
                })
            },
            getOrderList(date1, date2) {
                let params = {
                    "orderTime_begin": date1 + " 00:00:00",
                    "orderTime_end": date2 + " 23:59:59",
                }
            queryList(pageNo, pageSize) {
                this.loading = true;
                const params = {
                    pageNo: 1,
                    pageSize: 30,
                    "orderTime_begin": this.model.date + " 00:00:00",
                    "orderTime_end": this.model.date + " 23:59:59",
                }
                this.$api.getOrderList(params).then((res) => {
                    setTimeout(()=>{
                        this.loading = false
                    },200)
                    if (res.success) {
                        this.herbList = res.result.records
                    this.$refs.paging.complete(res.result.records);
                    this.loading = false
                        let feed = this.countTotal(this.herbList, "feed");
                        let weight = this.countTotal(this.herbList, "originWeight");
                        let dryTime = this.countTotal(this.herbList, "dryTime");
                        let gList = [];
                        this.herbList.forEach(item => {
                            if (!gList.includes(item.herbName)) {
                                gList.push(item.herbName)
                            }
                        });
                        if (weight) {
                            weight = weight.toFixed(1)
                        }
                        this.model.feed = feed
                        this.model.group = gList.length
                        this.model.batch = this.herbList.length
                        this.model.weight = weight
                        this.model.dryTime = dryTime
                    const records = res.result.records
                    if (!records) {
                        return false;
                    }
                    let feed = this.countTotal(records, "feed");
                    let weight = this.countTotal(records, "originWeight");
                    let dryTime = this.countTotal(records, "dryTime");
                    let gList = [];
                    records.forEach(item => {
                        if (!gList.includes(item.herbName)) {
                            gList.push(item.herbName)
                        }
                    });
                    if (weight) {
                        weight = weight.toFixed(1)
                    }
                    this.model.feed = feed
                    this.model.group = gList.length
                    this.model.batch = records.length
                    this.model.weight = weight
                    this.model.dryTime = dryTime
                }).catch(res => {
                    this.$refs.paging.complete(false);
                    this.loading = false
                })
            },
            getMonth(month) {
                let params = {
                    month: month
pages/tabBar/me.vue
@@ -253,9 +253,9 @@
                uni.reLaunch({
                    url: '/pages/login/login'
                });
                this.$mqttTool.end().then(res => {
                    console.error(res)
                })
                // this.$mqttTool.end().then(res => {
                //     console.error(res)
                // })
            },
            cancel() {
                this.show = false
pages/tabBar/warning.vue
@@ -116,9 +116,11 @@
            <!-- 如果希望其他view跟着页面滚动,可以放在z-paging标签内 -->
          <!-- <real-warning ref="realWarining" v-if="tabCurrent === 0" @handleData="realHandleData"></real-warning>  -->
            <his-warning ref="hisWarining" v-if="tabCurrent === 0" @handleData="hisHandleData"></his-warning>
            <!-- <his-warning ref="hisWarining" v-if="tabCurrent === 0" @handleData="hisHandleData"></his-warning> -->
           <view style="z-index: 1;">
               <his-warning ref="hisWarining" v-if="tabCurrent === 0" @handleData="hisHandleData"></his-warning>
           </view>
        </z-paging>
    </view>
</template>