Răsfoiți Sursa

提交出入详情

wangming 1 lună în urmă
părinte
comite
0cd5d49f34

+ 0 - 3
src/components/js_sdk/index.js

@@ -43,9 +43,6 @@ http.interceptor.request((config, cancel) => {
     }
     return config;
 });
-
-
-
 // 响应拦截器
 http.interceptor.response(response => {
     uni.setStorageSync(

+ 0 - 1
src/pages/home/home.vue

@@ -6,7 +6,6 @@
             </view>
             <view class="title">健康雷达</view>
         </view>
-
         <view class="leineng">
             <view>
                 <image

+ 2 - 3
src/pagesA/abnormalInfo/abnormalInfo.vue

@@ -77,14 +77,14 @@
                         >
                     </view>
                 </view>
-                <view class="menu-item">
+                <!-- <view class="menu-item">
                     <view class="meanLeft">
                         <text>事件内容</text>
                     </view>
                     <view class="meanRight">
                         <text>{{ item.info }}</text></view
                     >
-                </view>
+                </view> -->
             </view>
         </template>
         <view style="height: 20rpx"></view>
@@ -145,7 +145,6 @@ export default {
                 )
                 .then((res) => {
                     if (res.data.data) {
-                        // this.warmNum = res.data.data.total;
                         if (res.data.data.rows.length > 0) {
                             this.alarmRetentionLists =
                                 this.alarmRetentionLists.concat(

+ 73 - 70
src/pagesA/deviceDetail/deviceDetail.vue

@@ -140,7 +140,9 @@
                     >今日卫生间使用频次</view
                 >
                 <view class="title-btn" style="color: #22dea7"
-                    >{{ endArr.length == "" ? "0" : endArr.length }}次</view
+                    >{{
+                        freQuenceList.length == "" ? "0" : freQuenceList.length
+                    }}次</view
                 >
             </view>
             <view class="title" v-if="devInfo.installPosition != 'Toilet'">
@@ -148,27 +150,33 @@
                     >今日进出频次</view
                 >
                 <view class="title-btn" style="color: #22dea7"
-                    >{{ endArr.length == "" ? "0" : endArr.length }}次</view
+                    >{{
+                        freQuenceList.length == "" ? "0" : freQuenceList.length
+                    }}次</view
                 >
             </view>
             <view
                 class="stayDetail"
-                v-if="endArr.length > 0 && endArr.length == 1"
+                v-if="freQuenceList.length > 0 && freQuenceList.length == 1"
             >
-                <view v-for="item in endArr" :key="item.id">
+                <view v-for="item in freQuenceList" :key="item.id">
                     <view class="stayDetail-item">
                         <view class="stayDetail-text"
-                            >{{ item.enterTime }}目标进入</view
+                            >{{
+                                item.info.start_time.slice(11, 16)
+                            }}目标进入</view
                         >
                         <view class="stayDetail-btn"
-                            >{{ item.leaveTime }}目标离开</view
+                            >{{
+                                item.info.end_time.slice(11, 16)
+                            }}目标离开</view
                         >
                     </view>
                 </view>
             </view>
             <view
                 class="stayDetail"
-                v-if="endArr.length > 0 && endArr.length > 1"
+                v-if="freQuenceList.length > 0 && freQuenceList.length > 1"
             >
                 <swiper
                     class="auto-scroll-swiper"
@@ -182,25 +190,31 @@
                     @change="onSwiperChange"
                 >
                     <swiper-item
-                        v-for="item in endArr"
+                        v-for="item in freQuenceList"
                         :key="item.id"
                         class="stayDetail-item"
                     >
                         <view class="stayDetail-text"
-                            >{{ item.enterTime }}目标进入</view
+                            >{{
+                                item.info.start_time.slice(11, 16)
+                            }}目标进入</view
                         >
                         <view class="stayDetail-btn"
-                            >{{ item.leaveTime }}目标离开</view
+                            >{{
+                                item.info.end_time.slice(11, 16)
+                            }}目标离开</view
                         >
                     </swiper-item>
                 </swiper>
             </view>
-            <view class="title" v-if="devInfo.installPosition == 'Toilet'">
+            <!-- <view class="title" v-if="devInfo.installPosition == 'Toilet'">
                 <view class="title-text" style="color: #ff976a"
                     >昨日卫生间使用频次</view
                 >
                 <view class="title-btn" style="color: #ff976a"
-                    >{{ endArr.length == "" ? "0" : endArr.length }}次</view
+                    >{{
+                        freQuenceList.length == "" ? "0" : freQuenceList.length
+                    }}次</view
                 >
             </view>
             <view class="title" v-else>
@@ -208,9 +222,11 @@
                     >昨日进出频次</view
                 >
                 <view class="title-btn" style="color: #ff976a"
-                    >{{ endArr.length == "" ? "0" : endArr.length }}次</view
+                    >{{
+                        freQuenceList.length == "" ? "0" : freQuenceList.length
+                    }}次</view
                 >
-            </view>
+            </view> -->
         </view>
         <view class="box" v-if="!breathShow">
             <view class="handle-btn">
@@ -367,7 +383,7 @@ export default {
             devType: "",
             localPhone: uni.getStorageSync("phone"),
             startArr: [],
-            endArr: [],
+            freQuenceList: [],
             // mqtt相关
             currentIndex: 0,
             modules: [],
@@ -606,60 +622,22 @@ export default {
                     JSON.stringify(this.devInfo),
             });
         },
-        getFrequency(devId) {
-            let now = new Date();
-            let startDate = this.$time(
-                new Date(
-                    now.getFullYear(),
-                    now.getMonth(),
-                    now.getDate() - 1
-                ).getTime()
-            );
-            let endDate = this.$time(
-                new Date(
-                    now.getFullYear(),
-                    now.getMonth(),
-                    now.getDate()
-                ).getTime()
-            );
+        getFrequency(clientId) {
             this.$http
-                .post(`wap/device/getUsedInfo`, {
-                    devId: devId,
-                    startDate: startDate,
-                    endDate: endDate,
+                .post(`wap/stats/alarmEventsQuery`, {
+                    clientId: clientId,
+                    createTimeStart: this.$time(new Date()),
+                    createTimeEnd: this.$time(new Date()),
+                    eventType: 1,
                 })
                 .then((res) => {
                     if (res.data.code == 200) {
-                        if (
-                            res.data.data.stayTimes &&
-                            res.data.data.stayTimes.length > 0
-                        ) {
-                            this.startArr = res.data.data.stayTimes.filter(
-                                (item) => item.enterTime.startsWith(startDate)
+                        if (res.data.data.rows.length > 0) {
+                            this.freQuenceList = this.parseJsonToObjects(
+                                res.data.data.rows
                             );
-                            this.endArr = res.data.data.stayTimes.filter(
-                                (item) => item.enterTime.startsWith(endDate)
-                            );
-                        }
-                        if (this.startArr.length > 0) {
-                            this.startArr.forEach((item) => {
-                                item.enterTime = item.enterTime
-                                    .slice(11)
-                                    .slice(0, 5);
-                                item.leaveTime = item.leaveTime
-                                    .slice(11)
-                                    .slice(0, 5);
-                            });
-                        }
-                        if (this.endArr.length > 0) {
-                            this.endArr.forEach((item) => {
-                                item.enterTime = item.enterTime
-                                    .slice(11)
-                                    .slice(0, 5);
-                                item.leaveTime = item.leaveTime
-                                    .slice(11)
-                                    .slice(0, 5);
-                            });
+                        } else {
+                            this.freQuenceList = [];
                         }
                     } else {
                         wx.showToast({
@@ -669,6 +647,31 @@ export default {
                     }
                 });
         },
+        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({
@@ -679,7 +682,7 @@ export default {
         },
         onSwiperChange(event) {
             const current = event.detail.current;
-            const totalItems = this.endArr.length;
+            const totalItems = this.freQuenceList.length;
             if (current === totalItems - 1) {
                 this.autoplay = false;
             }
@@ -687,10 +690,10 @@ export default {
         },
 
         autoSwipe() {
-            if (this.endArr && this.endArr.length > 0) {
+            if (this.freQuenceList && this.freQuenceList.length > 0) {
                 setInterval(() => {
                     let nextIndex = this.currentIndex + 1;
-                    if (nextIndex >= this.endArr.length) {
+                    if (nextIndex >= this.freQuenceList.length) {
                         nextIndex = 0; // 循环到第一个项目
                     }
                     this.currentIndex = nextIndex;
@@ -700,8 +703,8 @@ export default {
         discrepancy() {
             uni.navigateTo({
                 url:
-                    "/pagesA/discrepancy/discrepancy?devId=" +
-                    this.devInfo.devId,
+                    "/pagesA/discrepancy/discrepancy?freQuenceList=" +
+                    JSON.stringify(this.freQuenceList),
             });
         },
         getCurrentDate() {
@@ -869,7 +872,7 @@ export default {
     onLoad(options) {
         const devItem = this.parseDeviceItem(options.devItem);
         const { devId, clientId } = devItem;
-        this.getFrequency(devId);
+        this.getFrequency(clientId);
         this.getdevInfo(devId);
         this.getdevRoomInfo(devId);
         this.autoPlayinterval = setTimeout(() => {

+ 26 - 59
src/pagesA/discrepancy/discrepancy.vue

@@ -2,7 +2,7 @@
     <view class="timeline-container">
         <view class="timeBox">
             <view
-                v-for="(item, index) in timelineData"
+                v-for="(item, index) in freQuenceList"
                 :key="index"
                 class="timeline-item"
             >
@@ -11,16 +11,30 @@
                     <view class="node-circle"></view>
                     <view
                         class="node-line"
-                        v-if="index !== timelineData.length - 1"
+                        v-if="index !== freQuenceList.length - 1"
                     ></view>
                 </view>
 
                 <!-- 内容区域 -->
                 <view class="timeline-content">
-                    <view class="timeline-time">{{ item.time }}</view>
-                    <view class="timeline-desc" v-if="item.title">{{
+                    <view class="timeline-time"
+                        >{{ item.info.start_time.slice(11, 16) }}目标进入</view
+                    >
+                    <view
+                        style="
+                            flex: 1;
+                            width: 2rpx;
+                            height: 40rpx;
+                            background-color: #eaeaea;
+                        "
+                    ></view>
+
+                    <view class="timeline-time"
+                        >{{ item.info.end_time.slice(11, 16) }}目标离开</view
+                    >
+                    <!-- <view class="timeline-desc" v-if="item.title">{{
                         item.title
-                    }}</view>
+                    }}</view> -->
                 </view>
             </view>
         </view>
@@ -29,60 +43,13 @@
 
 <script>
 export default {
-    props: {
-        timelineData: {
-            type: Array,
-            default: () => [
-                {
-                    time: "9:44",
-                    title: "离开房间",
-                },
-                {
-                    time: "9:32",
-                    title: "进入房间",
-                },
-                {
-                    time: "9:29",
-                    title: "离开房间",
-                },
-                {
-                    time: "9:26",
-                    title: "进入房间",
-                },
-                {
-                    time: "9:23",
-                    title: "离开房间",
-                },
-                {
-                    time: "9:08",
-                    title: "进入房间",
-                },
-                {
-                    time: "9:17",
-                    title: "离开房间",
-                },
-                {
-                    time: "9:07",
-                    title: "进入房间",
-                },
-                {
-                    time: "9:03",
-                    title: "离开房间",
-                },
-                {
-                    time: "8:55",
-                    title: "进入房间",
-                },
-                {
-                    time: "8:40",
-                    title: "离开房间",
-                },
-                {
-                    time: "8:30",
-                    title: "进入房间",
-                },
-            ],
-        },
+    data() {
+        return {
+            freQuenceList: "",
+        };
+    },
+    onLoad(options) {
+        this.freQuenceList = JSON.parse(options.freQuenceList);
     },
 };
 </script>