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 TOKEN = "token"
const val ACCOUNT = "account" const val ACCOUNT = "account"
const val MOBILE_PHONE = "mobilePhone" const val MOBILE_PHONE = "mobilePhone"
const val RECENTLY_PROJECT = "recentlyProject"
} }
object EventConstants{ object EventConstants{

@ -40,11 +40,34 @@ class LoginViewModel : BaseViewModel() {
} }
} }
val sendSMSResponse: LiveData<Any>
get() = _sendSMSResponse
private val _sendSMSResponse = MutableLiveData<Any>()
/**
* 发送验证码
*/
fun sendSMS(mobile: String) { fun sendSMS(mobile: String) {
launch { launch {
val res = api.sendSMS(mobile) val res = api.sendSMS(mobile)
if (res.success) { 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": "测试项目" // "XMXX_NAME": "测试项目"
//} //}
data class ProjectBean( data class ProjectBean(
val XMXX_PILENO: String, val XMXX_NAME: String, //项目名称
val XMXX_INDUSTRYTYPE: 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>> ): HttpResult<List<ProjectBean>>
/** /**
* * 发送验证码
*/ */
@GET("/Api/Mas/sendSms") @GET("/Api/Mas/sendSms")
suspend fun sendSMS( suspend fun sendSMS(
@Query("mobile") mobile: String @Query("mobile") mobile: String
): HttpResult<Any> ): 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.Menu
import android.view.MenuItem import android.view.MenuItem
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.bingce.ui.TabEntity import com.bingce.ui.TabEntity
import com.flyco.tablayout.listener.CustomTabEntity
import com.gyf.immersionbar.ImmersionBar import com.gyf.immersionbar.ImmersionBar
import com.project.survey.R import com.project.survey.R
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.databinding.ActivityProjectListBinding import com.project.survey.databinding.ActivityProjectListBinding
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.util.ActivityNavUtil import com.project.survey.util.ActivityNavUtil
class ProjectListActivity : BaseBindingActivity<ActivityProjectListBinding>() { class ProjectListActivity : BaseBindingActivity<ActivityProjectListBinding>() {

@ -45,14 +45,37 @@ class ProjectListFragment : BaseBindingFragment<FragmentProjectListBinding>() {
override fun initData() { override fun initData() {
viewModel.projectResponse.observe(this) { 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) ?: "") viewModel.getAllProjectIDByAccount(SPUtils.getString(SPConstants.ACCOUNT) ?: "")
} }
override fun initListener() { 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