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.
74 lines
2.1 KiB
74 lines
2.1 KiB
package com.gyf.csams.account.model
|
|
|
|
import androidx.lifecycle.LiveData
|
|
import androidx.lifecycle.MutableLiveData
|
|
import androidx.lifecycle.ViewModel
|
|
import com.orhanobut.logger.Logger
|
|
|
|
/**
|
|
* 注册表单
|
|
*/
|
|
class RegisterViewModel:ViewModel() {
|
|
//学号
|
|
private val _studentId=MutableLiveData<String>()
|
|
val studentId:LiveData<String> = _studentId
|
|
private val _isValidStudentId=MutableLiveData<Boolean>()
|
|
val isValidStudentId:LiveData<Boolean> = _isValidStudentId
|
|
val studentIdDesc="学号"
|
|
val studentIdPlaceholder="学号纯数字"
|
|
val studentIdFormat="入学年份(四位)+班级代码(两位)+学生代码(两位)"
|
|
//姓名
|
|
private val _name=MutableLiveData<String>()
|
|
val name:LiveData<String> = _name
|
|
val nameDesc="姓名"
|
|
val namePlaceholder=nameDesc
|
|
private val _isValidName=MutableLiveData<Boolean>()
|
|
val isValidName:LiveData<Boolean> = _isValidName
|
|
val nameFormat="姓名不能为空"
|
|
//注册按钮
|
|
private val _isValidForm=MutableLiveData<Boolean>()
|
|
val isValidForm:LiveData<Boolean> = _isValidForm
|
|
|
|
/**
|
|
* 更新学号
|
|
*
|
|
* @param studentId 学号
|
|
*/
|
|
fun onStudentIdChange(studentId:String){
|
|
_studentId.value=studentId
|
|
_isValidForm.value = checkStudentId() && _isValidForm.value ?: false
|
|
|
|
}
|
|
|
|
/**
|
|
* 检查学号格式
|
|
*
|
|
*/
|
|
private fun checkStudentId(): Boolean {
|
|
_isValidStudentId.value= _studentId.value?.matches(Regex("\\d{8}"))
|
|
return _isValidStudentId.value==true
|
|
}
|
|
|
|
/**
|
|
* 更新姓名
|
|
*
|
|
* @param name 姓名
|
|
*/
|
|
fun onNameChange(name:String){
|
|
_name.value=name
|
|
_isValidForm.value = checkName() && _isValidForm.value ?: false
|
|
}
|
|
|
|
private fun checkName():Boolean{
|
|
_isValidName.value= _name.value?.isNotEmpty()
|
|
return _isValidName.value==true
|
|
}
|
|
|
|
fun register(){
|
|
if(_isValidForm.value==true){
|
|
Logger.i("开始注册")
|
|
}else{
|
|
Logger.wtf("表单校验失败,无法注册!!!")
|
|
}
|
|
}
|
|
} |