From 92b5d8655f71669d028d7f4699db47aa8c1b03b3 Mon Sep 17 00:00:00 2001 From: chenglifeng Date: Mon, 23 Sep 2024 19:51:48 +0800 Subject: [PATCH] =?UTF-8?q?add=20api=20=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=EF=BC=9B=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8=E6=9C=80=E8=BF=91?= =?UTF-8?q?=E6=89=93=E5=BC=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/project/survey/constants/Constants.kt | 2 ++ .../survey/logic/viewmodel/LoginViewModel.kt | 23 ++++++++++++++++ .../com/project/survey/model/ProjectBean.kt | 13 +++++++-- .../java/com/project/survey/network/Api.kt | 11 +++++++- .../survey/ui/project/ProjectListActivity.kt | 4 +-- .../survey/ui/project/ProjectListFragment.kt | 27 +++++++++++++++++-- 6 files changed, 72 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/project/survey/constants/Constants.kt b/app/src/main/java/com/project/survey/constants/Constants.kt index 55966f9..3737956 100644 --- a/app/src/main/java/com/project/survey/constants/Constants.kt +++ b/app/src/main/java/com/project/survey/constants/Constants.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{ diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt index c6796c2..34852c9 100644 --- a/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt @@ -40,11 +40,34 @@ class LoginViewModel : BaseViewModel() { } } + val sendSMSResponse: LiveData + get() = _sendSMSResponse + private val _sendSMSResponse = MutableLiveData() + + /** + * 发送验证码 + */ fun sendSMS(mobile: String) { launch { val res = api.sendSMS(mobile) if (res.success) { + _sendSMSResponse.postValue(res.data) + } + } + } + val checkVerifyCodeResponse: LiveData + get() = _checkVerifyCodeResponse + private val _checkVerifyCodeResponse = MutableLiveData() + + /** + * 验证验证码 + */ + fun checkVerifyCode(mobile: String, verifycode: String) { + launch { + val res = api.checkVerifyCode(mobile, verifycode) + if (res.success) { + _checkVerifyCodeResponse.postValue(res.data) } } } diff --git a/app/src/main/java/com/project/survey/model/ProjectBean.kt b/app/src/main/java/com/project/survey/model/ProjectBean.kt index 5696647..45518cb 100644 --- a/app/src/main/java/com/project/survey/model/ProjectBean.kt +++ b/app/src/main/java/com/project/survey/model/ProjectBean.kt @@ -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?, //项目图片 ) \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/network/Api.kt b/app/src/main/java/com/project/survey/network/Api.kt index 8fc5c35..8349154 100644 --- a/app/src/main/java/com/project/survey/network/Api.kt +++ b/app/src/main/java/com/project/survey/network/Api.kt @@ -25,10 +25,19 @@ interface Api { ): HttpResult> /** - * + * 发送验证码 */ @GET("/Api/Mas/sendSms") suspend fun sendSMS( @Query("mobile") mobile: String ): HttpResult + + /** + * 验证验证码 + */ + @GET("/Api/Mas/CheckVerifycode") + suspend fun checkVerifyCode( + @Query("mobile") mobile: String, + @Query("verifycode") verifycode: String + ): HttpResult } \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt b/app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt index 9fc6de0..8d1953b 100644 --- a/app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt +++ b/app/src/main/java/com/project/survey/ui/project/ProjectListActivity.kt @@ -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() { diff --git a/app/src/main/java/com/project/survey/ui/project/ProjectListFragment.kt b/app/src/main/java/com/project/survey/ui/project/ProjectListFragment.kt index e061692..c16e02d 100644 --- a/app/src/main/java/com/project/survey/ui/project/ProjectListFragment.kt +++ b/app/src/main/java/com/project/survey/ui/project/ProjectListFragment.kt @@ -45,14 +45,37 @@ class ProjectListFragment : BaseBindingFragment() { 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(",") + ) + } + } } } \ No newline at end of file