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.
126 lines
2.9 KiB
126 lines
2.9 KiB
package com.gyf.csams.association.model
|
|
|
|
import androidx.lifecycle.LiveData
|
|
import androidx.lifecycle.MutableLiveData
|
|
import androidx.lifecycle.ViewModel
|
|
import androidx.lifecycle.viewModelScope
|
|
import com.gyf.csams.uikit.AssociationMenu
|
|
import com.gyf.csams.uikit.ScrollList
|
|
import com.gyf.csams.uikit.StringForm
|
|
import com.orhanobut.logger.Logger
|
|
import kotlinx.coroutines.launch
|
|
|
|
class AssociationViewModel:ViewModel() {
|
|
private val _currentMenu=MutableLiveData<AssociationMenu>()
|
|
val currentMenu:LiveData<AssociationMenu> = _currentMenu
|
|
|
|
fun clickMenu(menu:AssociationMenu){
|
|
_currentMenu.value=menu
|
|
}
|
|
}
|
|
|
|
data class MemberVo(val name:String)
|
|
|
|
/**
|
|
* 社团会员
|
|
*
|
|
*/
|
|
class MemberViewModel:ScrollList<MemberVo>(){
|
|
val name=StringForm(formDesc = "姓名关键字",5)
|
|
|
|
val search="搜索"
|
|
|
|
private val _memberList=MutableLiveData<MutableList<MemberVo>>(mutableListOf())
|
|
|
|
val memberList=_memberList
|
|
|
|
override val initSize: Int = 10
|
|
|
|
init {
|
|
load()
|
|
}
|
|
|
|
/**
|
|
* 初始化成员
|
|
*
|
|
*/
|
|
override fun load() {
|
|
viewModelScope.launch {
|
|
_memberList.value?.apply {
|
|
repeat(initSize) {
|
|
add(MemberVo(name = "成员${size+1}"))
|
|
}
|
|
Logger.i("初始化社团成员size=$size")
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 加载更多成员
|
|
*
|
|
*/
|
|
override fun loadMore(callback: (message: String) -> Unit) {
|
|
viewModelScope.launch {
|
|
_memberList.value?.let {
|
|
val t= mutableListOf<MemberVo>()
|
|
t.addAll(it)
|
|
t.apply {
|
|
repeat(10){
|
|
add(MemberVo(name = "成员${t.size+1}"))
|
|
}
|
|
}
|
|
_memberList.postValue(t)
|
|
Logger.i("加载更多社团成员,size=${t.size}")
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* TODO 社团成员搜索
|
|
*
|
|
* @param callback
|
|
*/
|
|
fun search(callback: (value: String) -> Unit){
|
|
Logger.i("搜索条件[成员姓名:${name.formValue.value}]")
|
|
callback("功能尚未实现,敬请期待")
|
|
}
|
|
}
|
|
|
|
data class HistoryActVo(val name: String)
|
|
|
|
/**
|
|
* 历史活动
|
|
*
|
|
*/
|
|
class HistoryActViewModel: ScrollList<HistoryActVo>() {
|
|
override val initSize = 10
|
|
|
|
init {
|
|
load()
|
|
}
|
|
|
|
override fun load() {
|
|
_data.value?.apply {
|
|
repeat(initSize){
|
|
add(HistoryActVo(name = "活动${size+1}"))
|
|
}
|
|
Logger.i("初始化活动数量:${size}")
|
|
}
|
|
}
|
|
|
|
override fun loadMore(callback:(message:String) -> Unit) {
|
|
_data.value?.apply {
|
|
val t= mutableListOf<HistoryActVo>()
|
|
t.addAll(this)
|
|
t.apply {
|
|
repeat(10){
|
|
add(HistoryActVo(name = "活动${t.size+1}"))
|
|
}
|
|
}
|
|
_data.postValue(t)
|
|
callback("成功加载更多活动")
|
|
}
|
|
}
|
|
} |