|
@@ -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(() => {
|