ThimraTV/MoviaBox/Class/Home/ViewModel/SPHomeViewModel.swift
2025-06-18 19:26:21 +08:00

114 lines
2.8 KiB
Swift

//
// SPHomeViewModel.swift
// MoviaBox
//
// Created by Overseas on 2025/4/22.
//
import UIKit
class SPHomeViewModel: NSObject {
lazy var page = 1
lazy var dataArr: [SPShortModel] = []
///
var moduleModel: SPHomeModuleModel? {
didSet {
updateContentArr()
}
}
///
///
var categoryDataArr1: [SPShortModel] = [] {
didSet {
updateContentArr()
}
}
///
var categoryDataArr2: [SPShortModel] = [] {
didSet {
updateContentArr()
}
}
///
var playHistoryArr: [SPShortModel]? {
didSet {
updateContentArr()
}
}
private(set) lazy var contentArr: [SPHomeContentModel] = []
private func updateContentArr() {
contentArr.removeAll()
if let list = moduleModel?.bannerData, list.count > 0 {
let model = SPHomeContentModel()
model.key = .banner
model.list = list
contentArr.append(model)
}
if let list = playHistoryArr, list.count > 0 {
let model = SPHomeContentModel()
model.key = .history
model.list = list
if contentArr.count > 0 {
model.contentTop = 25
}
contentArr.append(model)
}
if let list = moduleModel?.nineSquare?.list, list.count > 0 {
let model = SPHomeContentModel()
model.key = .nineSquare
model.title = moduleModel?.nineSquare?.title
model.list = list
if contentArr.count > 0 {
model.contentTop = 25
}
contentArr.append(model)
}
if categoryDataArr1.count > 0 {
let model = SPHomeContentModel()
model.key = .category1
model.list = categoryDataArr1
if contentArr.count > 0 {
model.contentTop = 25
}
contentArr.append(model)
}
if let list = moduleModel?.hotData, list.count > 0 {
let model = SPHomeContentModel()
model.key = .hot
model.list = list
if contentArr.count > 0 {
model.contentTop = 25
}
contentArr.append(model)
}
// if categoryDataArr2.count > 0 {
// let model = SPHomeContentModel()
// model.key = .category1
// model.list = categoryDataArr2
// contentArr.append(model)
// }
}
var isEmptyData: Bool {
if dataArr.count > 0 || (playHistoryArr?.count ?? 0) > 0 || moduleModel != nil {
return false
}
return true
}
}