| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 | // nova-werun/components/my/index.jsconst Parse = getApp().Parse;const company = getApp().globalData.company;const auth = require('../../service/auth.service')const uid = Parse?.User?.current()?.idlet getSportData = require('../../service/getSportData')Component({  /**   * 组件的属性列表   */  properties: {  },  /**   * 组件的初始数据   */  data: {    //屏幕高度    statusBarHeight: 0, // 状态栏高度    screenHeight: 0, // 屏幕高度    customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮)    bottomNavHeight: 0, // 底部导航栏高度    contentHeight: 0, // 可用内容高度    contentpadding: 0, //顶部padding高度    navheight: 0,    circlecount: 0,    likesCount: 0,    User1List: [],    profile1List2: [],    meChick: 0, //当前用户累计签到天数  },  lifetimes: {    detached: function () {      // 在组件实例被从页面节点树移除时执行    },    attached: async function () {      // 在组件实例进入页面节点树时执行      // 计算      const systemInfo = wx.getSystemInfoSync();      const statusBarHeight = systemInfo.statusBarHeight || 0;      const screenHeight = systemInfo.screenHeight || 0;      const custom = wx.getMenuButtonBoundingClientRect();      const customHeight = custom.height + 10 + 2 || 0;      const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;      const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;      const contentHeight = (screenHeight - bottomNavHeight - 50 - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;      const navheight = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;      this.setData({        statusBarHeight,        screenHeight: (screenHeight - 50 - bottomNavHeight) * 750 / systemInfo.windowWidth,        customHeight,        bottomNavHeight,        contentHeight,        contentpadding,        navheight      });      this.getcircle()      this.getname()      this.getMeChick()    },  },  /**   * 组件的方法列表   */  methods: {    /**获取中部数据 */    async getMeChick() {      let meChick = await getSportData.getChickCount(uid, 'EventLog') || 0      this.setData({        meChick      })    },    gourl(e) {      const url = e.currentTarget.dataset.url      wx.navigateTo({        url: `${url}` // 目标页面的路径      });    },    gourl2(e) {      const type = e.currentTarget.dataset.type      const url = e.currentTarget.dataset.url      wx.navigateTo({        url: `${url}?type=` + type // 目标页面的路径      });    },    //查全部朋友圈    // async getcircle() {    //     const currentUser = Parse.User.current();    //     let Profilequery2 = new Parse.Query('Profile');    //     Profilequery2.equalTo('company', company);    //     Profilequery2.equalTo('user', currentUser.id);    //     Profilequery2.equalTo('isCheck', true);    //     Profilequery2.notEqualTo('isDeleted', true)    //     let P2 = await Profilequery2.find();    //     let profile1List2 = P2.map(item => item.toJSON());    //     let Profilequery = new Parse.Query('AIMoment');    //     Profilequery.equalTo('company', company);    //     Profilequery.equalTo('isVisible', true);    //     Profilequery.notEqualTo('isDeleted', true)    //     Profilequery.equalTo('profile', profile1List2[0].objectId);    //     Profilequery.descending('createdAt');    //     let count = await Profilequery.count();    //     if (count) {    //         this.setData({    //             circlecount: count    //         })    //     }    // },    async getcircle() {      const currentUser = Parse.User.current();      let Profilequery2 = new Parse.Query('Profile');      Profilequery2.equalTo('company', company);      Profilequery2.equalTo('user', currentUser?.id);      Profilequery2.equalTo('isCheck', true);      Profilequery2.notEqualTo('isDeleted', true);      Profilequery2.include('user');      Profilequery2.include('center');      Profilequery2.include('department');      let P2 = await Profilequery2.find();      let profile1List2 = P2.map(item => item.toJSON());      this.setData({        profile1List2,      })      console.log('信息', this.data.profile1List2);      let Profilequery = new Parse.Query('AIMoment');      Profilequery.equalTo('company', company);      Profilequery.equalTo('isVisible', true);      Profilequery.notEqualTo('isDeleted', true);      // Profilequery.equalTo('profile', profile1List2[0].objectId);      Profilequery.equalTo('user', currentUser.id);      Profilequery.descending('createdAt');      let moments = await Profilequery.find(); // 查找所有动态      if (moments.length) {        this.setData({          circlecount: moments.length        });        // 获取所有动态的ID        let momentIds = moments.map(moment => moment.id);        // 创建对 AIMomentLike 表的查询        let LikeQuery = new Parse.Query('AIMomentLike');        LikeQuery.equalTo('isLiked', true);        LikeQuery.equalTo('company', company);        LikeQuery.notEqualTo('isDeleted', true);        LikeQuery.containedIn('moment', momentIds); // 使用 containedIn 来一次性查询多个动态的点赞        // 统计点赞数量        let likesCount = await LikeQuery.count();        // 这里可以进一步处理 likesCount,按动态分配点赞数量        console.log(`总点赞数量: ${likesCount}`);        this.setData({          likesCount,        })      }    },    //查看积分    async getpoint() {    },    //获取头像名称    async getname() {      const currentUser = Parse.User.current();      let Userquery = new Parse.Query('_User');      Userquery.equalTo('company', company);      Userquery.equalTo('objectId', currentUser?.id);      Userquery.notEqualTo('isDeleted', true)      let P2 = await Userquery.find();      let User1List = P2.map(item => item.toJSON());      this.setData({        User1List      })      console.log(this.data.User1List);    },    /**退出登录 */    outLogin() {      wx.showModal({        title: '提示',        content: '你确定退出登录吗?',        showCancel: true,        cancelText: '取消',        cancelColor: '#000000',        confirmText: '确定',        confirmColor: '#3CC51F',        success: (result) => {          if (result.confirm) {            auth.logout()          }        },        fail: () => {},        complete: () => {}      });    },    gourl(e) {      const url = e.currentTarget.dataset.url      wx.navigateTo({        url: `${url}` // 目标页面的路径      });    },    /**隐私协议 */    async getArticle() {      let query = new Parse.Query("Article")      query.equalTo("company", company)      query.equalTo("type", 'home')      query.equalTo("isEnabled", true)      query.select("title", "attachment")      let res = await query.first()      if (res && res.id) {        let r = res.toJSON()        if (r.attachment && r.attachment.length > 0) {          this.setData({            attachment: r          })        }      }    },    //附件下载    async openFile() {      await this.getArticle()      let {        attachment      } = this.data      let url = attachment.attachment[0].url,        name = attachment.title      const _this = this      let rep = this.getFileType(url)      wx.showLoading({        title: '加载中',      })      wx.downloadFile({        url: url, //要预览的PDF的地址        filePath: wx.env.USER_DATA_PATH + `/${name}.${rep}`,        success: function (res) {          if (res.statusCode === 200) { //成功            var Path = res.filePath //返回的文件临时地址,用于后面打开本地预览所用            wx.openDocument({              filePath: Path, //要打开的文件路径              showMenu: true,              success: function (res) {                wx.hideLoading()              },              fail: function (res) {                wx.hideLoading()              }            })          }        },        fail: function (res) {          wx.hideLoading()        },      })    },    //解析文件类型    getFileType(url) {      let pdfReg = /^.+(\.pdf)$/      let txtReg = /^.+(\.txt)$/      let wordReg = /^.+(\.doc|\.docx)$/      let excelReg = /^.+(\.xls|\.xlsx)$/      let jpgPng = /^.+(\.png)$/      let jpgJpg = /^.+(\.jpg)$/      let jpgJpeg = /^.+(\.jpeg)$/      if (pdfReg.test(url)) {        return 'pdf'      }      if (txtReg.test(url)) {        return 'txt'      }      if (wordReg.test(url)) {        return 'doc'      }      if (excelReg.test(url)) {        return 'xls'      }      if (jpgPng.test(url)) {        return 'png'      }      if (jpgJpg.test(url)) {        return 'jpg'      }      if (jpgJpeg.test(url)) {        return 'jpeg'      }    },  }})
 |