You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.8 KiB
50 lines
1.8 KiB
![]()
2 years ago
|
//
|
||
![]()
2 years ago
|
// RepeatViewModels.swift
|
||
![]()
1 year ago
|
// FireBoltt
|
||
![]()
2 years ago
|
//
|
||
|
// Created by lemo on 2018/5/14.
|
||
|
// Copyright © 2020年 ecell. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
typealias CycleSelectedClosure = ((String) -> Void)
|
||
|
|
||
![]()
2 years ago
|
class RepeatViewModels: ViewModel {
|
||
![]()
2 years ago
|
|
||
|
var cycleStr: String = "0000000"
|
||
|
var selects: [Bool] = []
|
||
|
var dataSource: [TableViewCellModel] = []
|
||
|
var dataVariable = BehaviorRelay<[SectionModel<String, TableViewCellModel>]>(value: [])
|
||
![]()
1 year ago
|
let weekdays = [MultiLanguageKey_FB.mondayFB.localized, MultiLanguageKey_FB.tuesdayFB.localized, MultiLanguageKey_FB.wednesdayFB.localized, MultiLanguageKey_FB.thursdayFB.localized, MultiLanguageKey_FB.fridayFB.localized, MultiLanguageKey_FB.saturdayFB.localized, MultiLanguageKey_FB.sundayFB.localized]
|
||
![]()
2 years ago
|
|
||
|
/// 更新回调
|
||
|
var updateCycle = PublishSubject<String>()
|
||
|
|
||
|
init(cycle: String) {
|
||
|
super.init()
|
||
|
loadData(cycle: cycle)
|
||
|
}
|
||
|
|
||
|
// 更新星期的选择状态
|
||
|
func updateDataSource(idx: Int) {
|
||
|
selects[idx] = !selects[idx]
|
||
|
let cycle = selects.map { $0 == false ? "0" : "1" }.joined()
|
||
|
loadData(cycle: cycle)
|
||
|
}
|
||
|
|
||
|
func loadData(cycle: String) {
|
||
|
dataSource.removeAll()
|
||
|
cycleStr = cycle
|
||
|
selects = cycleStr.indices.enumerated().map { cycleStr[$0.element] == "1" }
|
||
|
weekdays.enumerated().forEach { (index, day) in
|
||
![]()
1 year ago
|
let rightImg = selects[index] ? R.image.fb_icon_tick() : nil
|
||
![]()
2 years ago
|
let cellModel = TableViewCellModel(title: day, isSwitch: false, description: nil, isArrows: false, isOn: false, image: nil, isBottomLine: index != (weekdays.count - 1), righeImg: rightImg)
|
||
|
dataSource.append(cellModel)
|
||
|
}
|
||
|
let setMod = SectionModel<String, TableViewCellModel>.init(model: "", items: dataSource)
|
||
|
dataVariable.accept([setMod])
|
||
|
}
|
||
|
|
||
|
}
|