// // MineViewModel.swift // QuickLocation // import Foundation import RxSwift import RxDataSources typealias MineListSectionModel = SectionModel class MineViewModel { struct Output { var sectionedItems: Observable<[MineListSectionModel]> } let output: Output private var disposeBag = DisposeBag() private let sectionedItems = PublishSubject<[MineListSectionModel]>() let userAvatar = PublishSubject() let userName = PublishSubject() let userID = PublishSubject() let menuItems: [MineMenuItem] = [ MineMenuItem(icon: "Mine/account_security", title: "账户与安全"), MineMenuItem(icon: "Mine/status_setting", title: "状态设置"), MineMenuItem(icon: "Mine/emergency_contact", title: "紧急联系人"), MineMenuItem(icon: "Mine/customer_service", title: "在线客服"), MineMenuItem(icon: "Mine/privacy_agreement", title: "隐私与协议"), MineMenuItem(icon: "Mine/permission_check", title: "权限检测") ] lazy var cellAction: Action = { this in return Action { model in return .empty() } }(self) func loadMenuData() { sectionedItems.onNext(menuItems.mapSection()) } func loadUserInfo() { // TODO: Load user info from API } func performLogout() { // TODO: Logout logic } // MARK: - Init init() { output = Output( sectionedItems: sectionedItems.asObservable() ) } } struct MineMenuItem { let icon: String let title: String }