|
|
@@ -18,9 +18,17 @@ Page({
|
|
|
isCollected: false,
|
|
|
isPlaying: false,
|
|
|
isAudioPlaying: false,
|
|
|
+ enterTime: null, // 进入时间
|
|
|
},
|
|
|
|
|
|
onLoad(options) {
|
|
|
+
|
|
|
+ // 进入时间
|
|
|
+ const now = new Date();
|
|
|
+ this.setData({
|
|
|
+ enterTime: now
|
|
|
+ });
|
|
|
+
|
|
|
// 获取传递过来的数据
|
|
|
const itemStr = decodeURIComponent(options.item);
|
|
|
const item = JSON.parse(itemStr);
|
|
|
@@ -226,7 +234,7 @@ Page({
|
|
|
const tempUrl = res.fileList[0].tempFileURL;
|
|
|
const extension = tempUrl.substring(tempUrl.lastIndexOf('.') + 1).toLowerCase();
|
|
|
|
|
|
- if (['pdf', 'ppt', 'pptx'].includes(extension)) {
|
|
|
+ if (['pdf', 'ppt', 'pptx', 'xls', 'xlsx'].includes(extension)) {
|
|
|
// 先下载到本地
|
|
|
wx.downloadFile({
|
|
|
url: tempUrl,
|
|
|
@@ -399,4 +407,59 @@ Page({
|
|
|
console.log("创建成功", newData);
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+ async onUnload() {
|
|
|
+ await this.saveUserBehavior();
|
|
|
+ if (this.audioContext) {
|
|
|
+ this.audioContext.stop();
|
|
|
+ this.audioContext.destroy();
|
|
|
+ this.audioContext = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ async onHide() {
|
|
|
+ await this.saveUserBehavior();
|
|
|
+ if (this.audioContext) {
|
|
|
+ this.audioContext.pause();
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ async saveUserBehavior() {
|
|
|
+ try {
|
|
|
+ const userInfo = wx.getStorageSync('userInfo');
|
|
|
+ const userId = userInfo && userInfo._id ? userInfo._id : '';
|
|
|
+
|
|
|
+ const startTime = this.data.enterTime;
|
|
|
+ if (!startTime) return; // 如果没进入过,不存
|
|
|
+
|
|
|
+ const endTime = new Date();
|
|
|
+ // 转换为时间戳(毫秒 → 秒)
|
|
|
+ const startTimestamp = new Date(startTime).getTime();
|
|
|
+ const endTimestamp = new Date().getTime();
|
|
|
+
|
|
|
+ const duration = endTimestamp - startTimestamp;
|
|
|
+
|
|
|
+ await models.monitor_behavior.create({
|
|
|
+ data: {
|
|
|
+ start_time: startTimestamp, // 数字
|
|
|
+ end_time: endTimestamp, // 数字
|
|
|
+ duration: duration, // 数字
|
|
|
+ type: 0, // 固定 0
|
|
|
+ user_id: userId || 'guest'
|
|
|
+ },
|
|
|
+ envType: "prod",
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log("监控数据保存成功:", {
|
|
|
+ start_time: startTimestamp,
|
|
|
+ end_time: endTimestamp,
|
|
|
+ duration,
|
|
|
+ type: 0,
|
|
|
+ user_id: userId || 'guest'
|
|
|
+ });
|
|
|
+ } catch (err) {
|
|
|
+ console.error("监控数据保存失败", err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
})
|