local luaUtils = CS.Torappu.Lua.Util local TeamQuestRecordViewModel = Class("TeamQuestRecordViewModel", nil) local TeamQuestUtil = require("Feature/Activity/TeamQuest/TeamQuestUtil") local TeamQuestRecordDetailViewModel = Class("TeamQuestRecordDetailViewModel", nil) function TeamQuestRecordViewModel:Init(actId, response) self.actId = actId local actDBData = CS.Torappu.ActivityDB.data if actDBData == nil or actDBData.dynActs == nil then return end local suc1, jObject = actDBData.dynActs:TryGetValue(actId) if not suc1 then LogError("[TeamQuest]Can't find the activity data: " .. actId) return end local actData = luaUtils.ConvertJObjectToLuaTable(jObject) self.themeColor = actData.constData.themeColor self.recordViewModel = {} self.friendViewModel = {} self.playerData = TeamQuestUtil.GetPlayerData(actId) for key,value in pairs(self.playerData.share.showData) do local shareInfo = {} shareInfo.id = key shareInfo.value = value shareInfo.themeColor = self.themeColor for _,v in pairs(actData.shareInfoData) do if (v.shareId == key)then shareInfo.data = v break; end end table.insert(self.recordViewModel, shareInfo) end table.sort(self.recordViewModel, function(a, b) return a.data.shareDataOrder < b.data.shareDataOrder; end) self.friendViewModel = {} for _,v in pairs(response.players) do table.insert(self.friendViewModel, v) end end function TeamQuestRecordViewModel:ExportFriendModel() local layoutContentModel = CS.Torappu.UI.CrossAppShare.CrossAppShareSimpleLayoutContentModel() layoutContentModel.viewModelList = CS.System.Collections.Generic.List(CS.Torappu.UI.CrossAppShare.CrossAppShareComponentBaseModelDict)() layoutContentModel.isActive = true if self.friendViewModel and #self.friendViewModel > 0 then for i, friendData in ipairs(self.friendViewModel) do local friendCollector = CS.Torappu.UI.CrossAppShare.CrossAppShareComponentBaseModelDict() local headIconModel = CS.Torappu.UI.CrossAppShare.CrossAppSharePlayerInfoModel() headIconModel.avatarInfo = friendData.avatar headIconModel.nickName = luaUtils.Format("{0}", friendData.nickName) headIconModel.nickNum = luaUtils.Format("{0}", friendData.nickNumber) headIconModel.isActive = true friendCollector:Add("headIcon", headIconModel) local spineModel = CS.Torappu.UI.CrossAppShare.CrossAppShareCharSpineModel() spineModel.skinId = friendData.secretarySkinId spineModel.isActive = true friendCollector:Add("spine", spineModel) if friendCollector then layoutContentModel.viewModelList:Add(friendCollector) end end end return layoutContentModel end function TeamQuestRecordViewModel:ExportDetailModel() local layoutContentModel = CS.Torappu.UI.CrossAppShare.CrossAppShareSimpleLayoutContentModel() layoutContentModel.viewModelList = CS.System.Collections.Generic.List(CS.Torappu.UI.CrossAppShare.CrossAppShareComponentBaseModelDict)() layoutContentModel.isActive = true local targetColor = CS.Torappu.ColorRes.TweenHtmlStringToColor(self.themeColor); if self.recordViewModel and #self.recordViewModel > 0 then for i, recordViewModel in ipairs(self.recordViewModel) do local recordCollector = CS.Torappu.UI.CrossAppShare.CrossAppShareComponentBaseModelDict() local numText = CS.Torappu.UI.CrossAppShare.CrossAppShareTextModel() numText.text = recordViewModel.value numText.color = targetColor numText.isActive = true recordCollector:Add("num", numText) local titleText = CS.Torappu.UI.CrossAppShare.CrossAppShareTextModel() titleText.text = recordViewModel.data.shareName titleText.color = targetColor titleText.isActive = true recordCollector:Add("title", titleText) local targetIcon = CS.Torappu.UI.CrossAppShare.CrossAppShareDynImageModel() targetIcon.spritePath = CS.Torappu.ResourceUrls.GetActTeamQuestIconImagePath(recordViewModel.data.sharePic) targetIcon.color = targetColor targetIcon.isActive = true recordCollector:Add("icon", targetIcon) if recordCollector then layoutContentModel.viewModelList:Add(recordCollector) end end end return layoutContentModel end function TeamQuestRecordViewModel:ExportShareModel() local shareModel = CS.Torappu.UI.CrossAppShare.SimpleCrossAppShareRemakeModel() local mainLayoutContentModel = CS.Torappu.UI.CrossAppShare.CrossAppShareLayoutContentModel() mainLayoutContentModel.elementModels = CS.System.Collections.Generic.List(CS.Torappu.UI.CrossAppShare.CrossAppShareElementModelCollector)() local friendLayoutContent = self:ExportFriendModel() local detailLayoutContent = self:ExportDetailModel() local modelDict = {} modelDict["friend"] = friendLayoutContent modelDict["detail"] = detailLayoutContent local dynResGroup = CS.Torappu.UI.CrossAppShare.CrossAppShareCharActResDynModel() dynResGroup.needActId = true dynResGroup.needColorId = true dynResGroup.actId = self.actId dynResGroup.colorId = self.themeColor dynResGroup.isActive = true modelDict["actCommon"] = dynResGroup shareModel.compModelDict = modelDict return shareModel end return TeamQuestRecordViewModel