|
@@ -1,4 +1,6 @@
|
|
// nova-werun/pages/home/medal/index.js
|
|
// nova-werun/pages/home/medal/index.js
|
|
|
|
+const Parse = getApp().Parse;
|
|
|
|
+const company = getApp().globalData.company;
|
|
Page({
|
|
Page({
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -13,6 +15,12 @@ Page({
|
|
contentHeight: 0, // 可用内容高度
|
|
contentHeight: 0, // 可用内容高度
|
|
contentHeight2: 0,
|
|
contentHeight2: 0,
|
|
contentpadding: 0, //顶部padding高度
|
|
contentpadding: 0, //顶部padding高度
|
|
|
|
+
|
|
|
|
+ userList: [],
|
|
|
|
+ alreadyList: [],
|
|
|
|
+ MedalList: [],
|
|
|
|
+ show: false,
|
|
|
|
+ title:''
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -37,6 +45,8 @@ Page({
|
|
contentpadding,
|
|
contentpadding,
|
|
contentHeight
|
|
contentHeight
|
|
});
|
|
});
|
|
|
|
+ this.getuser()
|
|
|
|
+ this.alreadyMedal()
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -86,5 +96,96 @@ Page({
|
|
*/
|
|
*/
|
|
onShareAppMessage: function () {
|
|
onShareAppMessage: function () {
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ async getuser() {
|
|
|
|
+ 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 user = await userquery.find();
|
|
|
|
+ let userList = user.map(item => item.toJSON());
|
|
|
|
+ this.setData({
|
|
|
|
+ userList
|
|
|
|
+ })
|
|
|
|
+ console.log(this.data.userList);
|
|
|
|
+ },
|
|
|
|
+ // 已获得勋章
|
|
|
|
+ async alreadyMedal() {
|
|
|
|
+ const currentUser = Parse.User.current();
|
|
|
|
+ let MedalLogquery = new Parse.Query('MedalLog');
|
|
|
|
+ MedalLogquery.equalTo('company', company);
|
|
|
|
+ MedalLogquery.equalTo('user', currentUser.id);
|
|
|
|
+ MedalLogquery.notEqualTo('isDeleted', true);
|
|
|
|
+ MedalLogquery.include('medal');
|
|
|
|
+
|
|
|
|
+ let MedalLog = await MedalLogquery.find();
|
|
|
|
+ let alreadyList = MedalLog.map(item => {
|
|
|
|
+ let itemData = item.toJSON();
|
|
|
|
+ // 格式化 createdAt 为 YYYY-M-D
|
|
|
|
+ const createdAt = new Date(itemData.createdAt);
|
|
|
|
+ const formattedDate = `${createdAt.getFullYear()}-${createdAt.getMonth() + 1}-${createdAt.getDate()}`;
|
|
|
|
+ itemData.createdAt = formattedDate; // 将格式化后的日期赋值回 createdAt
|
|
|
|
+ return itemData;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ this.setData({
|
|
|
|
+ alreadyList
|
|
|
|
+ });
|
|
|
|
+ console.log('alreadyList', this.data.alreadyList);
|
|
|
|
+
|
|
|
|
+ // 获取 MedalList,并剔除 alreadyList 中的勋章
|
|
|
|
+ await this.lossMedal(alreadyList);
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 为获得勋章
|
|
|
|
+ async lossMedal(alreadyList) {
|
|
|
|
+ let Medalquery = new Parse.Query('Medal');
|
|
|
|
+ Medalquery.equalTo('company', company);
|
|
|
|
+ Medalquery.notEqualTo('isDeleted', true);
|
|
|
|
+ Medalquery.ascending('order');
|
|
|
|
+
|
|
|
|
+ let r = await Medalquery.find();
|
|
|
|
+ let MedalList = r.map(item => item.toJSON());
|
|
|
|
+
|
|
|
|
+ // 创建一个集合存储 alreadyList 中的 medal.objectId
|
|
|
|
+ const alreadyMedalIds = new Set(alreadyList.map(item => item.medal.objectId));
|
|
|
|
+
|
|
|
|
+ // 从 MedalList 中剔除已获得的勋章
|
|
|
|
+ MedalList = MedalList.filter(item => !alreadyMedalIds.has(item.objectId));
|
|
|
|
+
|
|
|
|
+ this.setData({
|
|
|
|
+ MedalList
|
|
|
|
+ });
|
|
|
|
+ console.log('MedalList', this.data.MedalList);
|
|
|
|
+ },
|
|
|
|
+ showPopup(e) {
|
|
|
|
+ const objectId = e.currentTarget.dataset.id
|
|
|
|
+ const type = e.currentTarget.dataset.type
|
|
|
|
+ if(type=='alreadyList'){
|
|
|
|
+ this.data.alreadyList.forEach((item)=>{
|
|
|
|
+ if(item.objectId==objectId){
|
|
|
|
+ this.setData({
|
|
|
|
+ title:item.medal.title
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ console.log(this.data.title);
|
|
|
|
+ }else{
|
|
|
|
+ this.data.MedalList.forEach((item)=>{
|
|
|
|
+ if(item.objectId==objectId){
|
|
|
|
+ this.setData({
|
|
|
|
+ title:item.title
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ console.log(this.data.title);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.setData({ show: true });
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ onClose() {
|
|
|
|
+ this.setData({ show: false });
|
|
|
|
+ },
|
|
})
|
|
})
|