add api 验证码;项目列表最近打开逻辑

main
chenglifeng 8 months ago
parent 91b8db4795
commit 92b5d8655f
  1. 2
      app/src/main/java/com/project/survey/constants/Constants.kt
  2. 23
      app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt
  3. 13
      app/src/main/java/com/project/survey/model/ProjectBean.kt
  4. 11
      app/src/main/java/com/project/survey/network/Api.kt
  5. 4
      app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt
  6. 27
      app/src/main/java/com/project/survey/ui/project/ProjectListFragment.kt

@ -8,6 +8,8 @@ object SPConstants {
const val TOKEN = "token"
const val ACCOUNT = "account"
const val MOBILE_PHONE = "mobilePhone"
const val RECENTLY_PROJECT = "recentlyProject"
}
object EventConstants{

@ -40,11 +40,34 @@ class LoginViewModel : BaseViewModel() {
}
}
val sendSMSResponse: LiveData<Any>
get() = _sendSMSResponse
private val _sendSMSResponse = MutableLiveData<Any>()
/**
* 发送验证码
*/
fun sendSMS(mobile: String) {
launch {
val res = api.sendSMS(mobile)
if (res.success) {
_sendSMSResponse.postValue(res.data)
}
}
}
val checkVerifyCodeResponse: LiveData<Any>
get() = _checkVerifyCodeResponse
private val _checkVerifyCodeResponse = MutableLiveData<Any>()
/**
* 验证验证码
*/
fun checkVerifyCode(mobile: String, verifycode: String) {
launch {
val res = api.checkVerifyCode(mobile, verifycode)
if (res.success) {
_checkVerifyCodeResponse.postValue(res.data)
}
}
}

@ -28,6 +28,15 @@ package com.project.survey.model
// "XMXX_NAME": "测试项目"
//}
data class ProjectBean(
val XMXX_PILENO: String,
val XMXX_INDUSTRYTYPE: String
val XMXX_NAME: String, //项目名称
val XMXX_CODE: String, //项目编号
val XMXX_LEVEL: String, //项目等级
val XMXX_STATUS: String, //项目状态
val XMXX_INDUSTRYTYPE: String, //行业类型
val XMXX_PILENO: String, //起讫桩号
val XMXX_CONTACTNAME: String, //联系人
val XMXX_CONTACTNAMEID: String, //联系人ID
val XMXX_LOCATIONXY: String, //项目位置(度)
val XMXX_FILE: String?, //项目图片
val XMXX_DESCRIPTION: String?, //项目图片
)

@ -25,10 +25,19 @@ interface Api {
): HttpResult<List<ProjectBean>>
/**
*
* 发送验证码
*/
@GET("/Api/Mas/sendSms")
suspend fun sendSMS(
@Query("mobile") mobile: String
): HttpResult<Any>
/**
* 验证验证码
*/
@GET("/Api/Mas/CheckVerifycode")
suspend fun checkVerifyCode(
@Query("mobile") mobile: String,
@Query("verifycode") verifycode: String
): HttpResult<Any>
}

@ -3,13 +3,11 @@ package com.project.survey.ui.project
import android.view.Menu
import android.view.MenuItem
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.bingce.ui.TabEntity
import com.flyco.tablayout.listener.CustomTabEntity
import com.gyf.immersionbar.ImmersionBar
import com.project.survey.R
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.databinding.ActivityProjectListBinding
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.util.ActivityNavUtil
class ProjectListActivity : BaseBindingActivity<ActivityProjectListBinding>() {

@ -45,14 +45,37 @@ class ProjectListFragment : BaseBindingFragment<FragmentProjectListBinding>() {
override fun initData() {
viewModel.projectResponse.observe(this) {
adapter.submitList(it)
if (type == TYPE_ALL) {
adapter.submitList(it)
} else {
adapter.submitList(
it.filter { bean ->
bean.XMXX_CODE in
(SPUtils.getString(SPConstants.RECENTLY_PROJECT) ?: "").split(",")
}
)
}
}
viewModel.getAllProjectIDByAccount(SPUtils.getString(SPConstants.ACCOUNT) ?: "")
}
override fun initListener() {
adapter.setOnItemClickListener { _, _, position ->
// TODO 去详情页
adapter.getItem(position)?.let { bean ->
val recentlyList = (SPUtils.getString(SPConstants.RECENTLY_PROJECT) ?: "")
.split(",")
.toMutableList()
if (bean.XMXX_CODE !in recentlyList) {
recentlyList.add(bean.XMXX_CODE)
}
SPUtils.put(
SPConstants.RECENTLY_PROJECT,
recentlyList.joinToString(",")
)
}
}
}
}
Loading…
Cancel
Save