Ver código fonte

优化今日进出频次

wangming 3 semanas atrás
pai
commit
0eb8676d63

+ 47 - 93
src/pagesA/deviceDetail/deviceDetail.vue

@@ -151,36 +151,31 @@
                 <view class="title-text" style="color: #22dea7"
                     >今日进出频次</view
                 >
-                <view class="title-btn" style="color: #22dea7"
-                    >{{
-                        freQuenceList.length == "" ? "0" : freQuenceList.length
-                    }}次</view
-                >
+                <view class="title-btn" style="color: #22dea7">
+                    {{ freQuenceList.length || 0 }}次
+                </view>
             </view>
-            <view
-                class="stayDetail"
-                v-if="freQuenceList.length > 0 && freQuenceList.length == 1"
-            >
-                <view v-for="item in freQuenceList" :key="item.id">
-                    <view class="stayDetail-item">
-                        <view class="stayDetail-text"
-                            >{{
-                                item.info.start_time.slice(11, 16)
-                            }}目标进入</view
-                        >
-                        <view class="stayDetail-btn"
-                            >{{
-                                item.info.end_time.slice(11, 16)
-                            }}目标离开</view
-                        >
+
+            <view class="stayDetail" v-if="freQuenceList.length > 0">
+                <!-- 只有一条时直接展示 -->
+                <view v-if="freQuenceList.length === 1">
+                    <view
+                        v-for="item in freQuenceList"
+                        :key="item.id"
+                        class="stayDetail-item"
+                    >
+                        <view class="stayDetail-text">
+                            {{ formatTime(item.enterTime) }}目标进入
+                        </view>
+                        <view class="stayDetail-btn">
+                            {{ formatTime(item.leaveTime) }}目标离开
+                        </view>
                     </view>
                 </view>
-            </view>
-            <view
-                class="stayDetail"
-                v-if="freQuenceList.length > 0 && freQuenceList.length > 1"
-            >
+
+                <!-- 多条时用 swiper 展示 -->
                 <swiper
+                    v-else
                     class="auto-scroll-swiper"
                     :indicator-dots="false"
                     :autoplay="false"
@@ -196,39 +191,15 @@
                         :key="item.id"
                         class="stayDetail-item"
                     >
-                        <view class="stayDetail-text"
-                            >{{
-                                item.info.start_time.slice(11, 16)
-                            }}目标进入</view
-                        >
-                        <view class="stayDetail-btn"
-                            >{{
-                                item.info.end_time.slice(11, 16)
-                            }}目标离开</view
-                        >
+                        <view class="stayDetail-text">
+                            {{ formatTime(item.enterTime) }}目标进入
+                        </view>
+                        <view class="stayDetail-btn">
+                            {{ formatTime(item.leaveTime) }}目标离开
+                        </view>
                     </swiper-item>
                 </swiper>
             </view>
-            <!-- <view class="title" v-if="devInfo.installPosition == 'Toilet'">
-                <view class="title-text" style="color: #ff976a"
-                    >昨日卫生间使用频次</view
-                >
-                <view class="title-btn" style="color: #ff976a"
-                    >{{
-                        freQuenceList.length == "" ? "0" : freQuenceList.length
-                    }}次</view
-                >
-            </view>
-            <view class="title" v-else>
-                <view class="title-text" style="color: #ff976a"
-                    >昨日进出频次</view
-                >
-                <view class="title-btn" style="color: #ff976a"
-                    >{{
-                        freQuenceList.length == "" ? "0" : freQuenceList.length
-                    }}次</view
-                >
-            </view> -->
         </view>
         <view class="box" v-if="!breathShow">
             <view class="handle-btn">
@@ -644,56 +615,36 @@ export default {
                     JSON.stringify(this.devInfo),
             });
         },
-        getFrequency(clientId) {
+        getFrequency(devId) {
+            let params = {
+                devId: devId,
+                createTimeStart: this.$time(new Date()),
+                createTimeEnd: this.$time(new Date()),
+                pageNo: 1,
+                pageSize: 30,
+            };
+
             this.$http
-                .post(`wap/stats/alarmEventsQuery`, {
-                    clientId: clientId,
-                    createTimeStart: this.$time(new Date()),
-                    createTimeEnd: this.$time(new Date()),
-                    eventType: 1,
+                .post(`wap/stats/inOutEventQuery`, params, {
+                    header: {
+                        "Content-Type": "application/json;charset=UTF-8",
+                    },
                 })
                 .then((res) => {
                     if (res.data.code == 200) {
                         if (res.data.data.rows.length > 0) {
-                            this.freQuenceList = this.parseJsonToObjects(
-                                res.data.data.rows
-                            );
+                            this.freQuenceList = res.data.data.rows;
                         } else {
                             this.freQuenceList = [];
                         }
                     } else {
-                        wx.showToast({
+                        uni.showToast({
                             title: res.data.message,
                             icon: "none",
                         });
                     }
                 });
         },
-        parseJsonToObjects(jsonArray) {
-            return jsonArray.map((item) => {
-                // 解析info字段的JSON字符串
-                let infoData = {};
-                try {
-                    infoData = JSON.parse(item.info);
-                } catch (e) {
-                    console.error("Failed to parse info JSON:", e);
-                }
-
-                return {
-                    id: item.id,
-                    clientId: item.clientId,
-                    tenantId: item.tenantId,
-                    devName: item.devName,
-                    uuid: item.uuid,
-                    planUuid: item.planUuid,
-                    eventType: item.eventType,
-                    info: infoData,
-                    isHandle: item.isHandle,
-                    createTime: item.createTime,
-                    remark: item.remark,
-                };
-            });
-        },
         // 健康闹钟方法
         healthAlarm() {
             uni.navigateTo({
@@ -744,7 +695,6 @@ export default {
         },
 
         // echarts图表模块
-
         getOption(list) {
             // 固定 X 轴 [0 ~ 60]
             const xData = Array.from({ length: 61 }, (_, i) => i);
@@ -1005,6 +955,10 @@ export default {
             }
             return num;
         },
+
+        formatTime(time) {
+            return time ? time.slice(11, 16) : "暂无";
+        },
     },
     onShow() {
         this.showModle = true;
@@ -1013,7 +967,7 @@ export default {
     onLoad(options) {
         const devItem = JSON.parse(options.devItem);
         const { devId, clientId } = devItem;
-        this.getFrequency(clientId);
+        this.getFrequency(devId);
         this.getdevInfo(devId);
         this.getdevRoomInfo(devId);
         this.autoPlayinterval = setTimeout(() => {

+ 1 - 1
src/pagesA/deviceSetting/deviceSetting.vue

@@ -528,7 +528,7 @@ export default {
                 padding: 20rpx 20rpx;
 
                 .input {
-                    text-align: right;
+                    text-align: left;
                     flex: 1;
                     border: none;
                     background: transparent;

+ 2 - 8
src/pagesA/discrepancy/discrepancy.vue

@@ -18,7 +18,7 @@
                 <!-- 内容区域 -->
                 <view class="timeline-content">
                     <view class="timeline-time"
-                        >{{ item.info.start_time.slice(11, 16) }}目标进入</view
+                        >{{ item.leaveTime.slice(11, 16) }}目标离开</view
                     >
                     <view
                         style="
@@ -28,13 +28,9 @@
                             background-color: #7e5648;
                         "
                     ></view>
-
                     <view class="timeline-time"
-                        >{{ item.info.end_time.slice(11, 16) }}目标离开</view
+                        >{{ item.enterTime.slice(11, 16) }}目标进入</view
                     >
-                    <!-- <view class="timeline-desc" v-if="item.title">{{
-                        item.title
-                    }}</view> -->
                 </view>
             </view>
         </view>
@@ -50,8 +46,6 @@ export default {
     },
     onLoad(options) {
         this.freQuenceList = JSON.parse(options.freQuenceList);
-
-        console.log(this.freQuenceList, 99999);
     },
 };
 </script>