diff --git a/app/build.gradle b/app/build.gradle
index 970a491..b14dca1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -231,5 +231,10 @@ dependencies {
implementation 'com.tencent:mmkv:1.3.9'
// BRVAH https://github.com/CymChad/BaseRecyclerViewAdapterHelper/wiki
implementation "io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.4"
+ // 上拉刷新下拉加载:https://github.com/scwang90/SmartRefreshLayout
+ implementation 'io.github.scwang90:refresh-layout-kernel:2.0.6' //核心必须依赖
+ implementation 'io.github.scwang90:refresh-header-material:2.0.6' //谷歌刷新头
+// implementation 'io.github.scwang90:refresh-header-classics:2.0.6' //经典刷新头
+ implementation 'io.github.scwang90:refresh-footer-classics:2.0.6' //经典加载
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bf806f6..d42ea38 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -59,6 +59,7 @@
android:name=".ui.MainActivity"
android:exported="true"
android:label="@string/app_name"
+ android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize|stateHidden" />
+
+ MaterialHeader(context)
+ }
+ // 设置全局的 Footer 构建器
+ SmartRefreshLayout.setDefaultRefreshFooterCreator { context: Context?, _: RefreshLayout? ->
+ ClassicsFooter(context).setDrawableSize(20f)
+ }
}
private fun initDatabase() {
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 8eca19b..494cd29 100644
--- a/app/src/main/java/com/project/survey/constants/Constants.kt
+++ b/app/src/main/java/com/project/survey/constants/Constants.kt
@@ -1,6 +1,7 @@
package com.project.survey.constants
object Constants {
+ const val PAGE_SIZE = 30
}
@@ -8,12 +9,14 @@ object SPConstants {
const val TOKEN = "token"
const val ACCOUNT = "account"
const val MOBILE_PHONE = "mobilePhone"
+ const val PERSON_ID = "personId"
const val RECENTLY_PROJECT = "recentlyProject"
const val PROJECT_ID = "projectId"
const val PROJECT_NAME = "projectName"
+ const val CURRENT_PROJECT = "currentProject"
}
-object EventConstants{
+object EventConstants {
const val LOGIN_STATUS = "loginStatus"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/extend/ViewExt.kt b/app/src/main/java/com/project/survey/extend/ViewExt.kt
index f7b947b..d8c33c6 100644
--- a/app/src/main/java/com/project/survey/extend/ViewExt.kt
+++ b/app/src/main/java/com/project/survey/extend/ViewExt.kt
@@ -1,6 +1,7 @@
package com.project.survey.extend
import android.view.View
+import com.scwang.smart.refresh.layout.SmartRefreshLayout
/**
@@ -24,4 +25,9 @@ fun View.isVisibleOrInvisible(visible: Boolean){
fun View.isVisibleOrGone(visible: Boolean){
this.visibility = if (visible) View.VISIBLE else View.GONE
+}
+
+fun SmartRefreshLayout.smartDismiss() {
+ finishRefresh(0)
+ finishLoadMore(0)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/logic/repository/GlobalRepository.kt b/app/src/main/java/com/project/survey/logic/repository/GlobalRepository.kt
new file mode 100644
index 0000000..12dff9e
--- /dev/null
+++ b/app/src/main/java/com/project/survey/logic/repository/GlobalRepository.kt
@@ -0,0 +1,12 @@
+package com.project.survey.logic.repository
+
+import androidx.lifecycle.MutableLiveData
+import com.project.survey.model.LoginBean
+import com.project.survey.model.ProjectBean
+
+class GlobalRepository {
+
+ val loginBean = MutableLiveData()
+
+ val currentProject = MutableLiveData()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt
index 1016066..06eca7e 100644
--- a/app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt
+++ b/app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt
@@ -7,6 +7,7 @@ import blankj.utilcode.util.LogUtils
import com.project.survey.extend.toast
import com.project.survey.logic.event.LiveBus
import com.project.survey.logic.event.Message
+import com.project.survey.logic.repository.GlobalRepository
import com.project.survey.network.ERROR
import com.project.survey.ui.login.LoginActivity
import com.project.survey.util.ActivityNavUtil
@@ -19,6 +20,8 @@ import retrofit2.HttpException
open class BaseViewModel : ViewModel() {
+ val repo: GlobalRepository = GlobalRepository()
+
val msgEvent by lazy { LiveBus.getInstance().with(Message::class.java) }
val errorResponse = MutableLiveData()
diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt
index b30b7b3..c28a41f 100644
--- a/app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt
+++ b/app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt
@@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.project.survey.constants.SPConstants
import com.project.survey.logic.bean.ListResult
+import com.project.survey.logic.repository.GlobalRepository
import com.project.survey.model.ApprovalBean
import com.project.survey.model.ControlNetBean
import com.project.survey.model.ControlNetCGBean
@@ -23,15 +24,18 @@ class ControlNetViewModel : BaseViewModel() {
/**
* 获取专用控制网列表
*/
- fun fetchSpecialControlNetList(j_query: String, page: Int = 1) {
+ fun fetchSpecialControlNetList(j_query: String, page: Int = 1, start: Int = 0) {
launch {
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
val res =
api.fetchSpecialControlNetList(
- SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
+ currentProject?.BD_XMXX_ID ?: "",
"BD_KZW",
"BD_KZW_ZY",
j_query,
- page
+ page,
+ start = start
)
if (res.success) {
_controlNetListResponse.postValue(res.data)
@@ -46,14 +50,17 @@ class ControlNetViewModel : BaseViewModel() {
/**
* 获取专用控制网成果列表
*/
- fun fetchSpecialControlNetCGList(j_query: String, page: Int = 1) {
+ fun fetchSpecialControlNetCGList(j_query: String, page: Int = 1, start: Int = 0) {
launch {
- var res = api.fetchSpecialControlNetCGList(
- SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ val res = api.fetchSpecialControlNetCGList(
+ currentProject?.BD_XMXX_ID ?: "",
"BD_KZWZBCG",
"BD_KZWZBCG_ZY",
j_query,
- page
+ page,
+ start = start
)
if (res.success) {
_controlNetCGListResponse.postValue(res.data)
@@ -64,14 +71,17 @@ class ControlNetViewModel : BaseViewModel() {
/**
* 获取首级控制网列表
*/
- fun fetchFirstControlNetList(j_query: String, page: Int = 1) {
+ fun fetchFirstControlNetList(j_query: String, page: Int = 1, start: Int = 0) {
launch {
- var res = api.fetchSpecialControlNetCGList(
- SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ val res = api.fetchSpecialControlNetCGList(
+ currentProject?.BD_XMXX_ID ?: "",
"BD_KZWZBCG",
"BD_KZWZBCG",
j_query,
- page
+ page,
+ start = start
)
if (res.success) {
_controlNetCGListResponse.postValue(res.data)
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 1cdcedf..5e1e60b 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
@@ -7,10 +7,12 @@ import com.project.survey.constants.EventConstants
import com.project.survey.constants.SPConstants
import com.project.survey.model.LoginBean
import com.project.survey.logic.event.Message
+import com.project.survey.logic.repository.GlobalRepository
import com.project.survey.network.RetrofitClient
import com.project.survey.ui.MainActivity
import com.project.survey.ui.login.LoginActivity
import com.project.survey.ui.login.LoginInputCodeActivity
+import com.project.survey.ui.project.ProjectListActivity
import com.project.survey.util.SPUtils
class LoginViewModel : BaseViewModel() {
@@ -43,18 +45,23 @@ class LoginViewModel : BaseViewModel() {
/**
* 外部用户登录
*/
- fun externalPersonLogin(account: String, password: String, code: String){
+ fun externalPersonLogin(account: String, password: String, code: String) {
launch {
val res = api.externalPersonLogin(account, password, code)
if (res.success) {
// _externalPersonSMSCodeResponse.postValue(res.data)
- SPUtils.put(SPConstants.TOKEN, res.data.token)
SPUtils.put(SPConstants.ACCOUNT, account)
+ SPUtils.put(SPConstants.TOKEN, res.data.token)
+ SPUtils.put(SPConstants.PERSON_ID, res.data.personId)
SPUtils.put(SPConstants.MOBILE_PHONE, res.data.mobilePhone)
+
msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
- MainActivity.start()
+// MainActivity.start()
+ // 登录成功,进入工程列表页面
+ ProjectListActivity.start()
+
ActivityUtils.finishActivity(LoginActivity::class.java)
ActivityUtils.finishActivity(LoginInputCodeActivity::class.java)
}
diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/MainViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/MainViewModel.kt
new file mode 100644
index 0000000..191e6fd
--- /dev/null
+++ b/app/src/main/java/com/project/survey/logic/viewmodel/MainViewModel.kt
@@ -0,0 +1,11 @@
+package com.project.survey.logic.viewmodel
+
+import com.project.survey.network.RetrofitClient
+
+class MainViewModel : BaseViewModel() {
+
+ val api = RetrofitClient.createApiService()
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt
index a045a1b..b1b0889 100644
--- a/app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt
+++ b/app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt
@@ -2,9 +2,11 @@ package com.project.survey.logic.viewmodel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
+import com.project.survey.constants.SPConstants
import com.project.survey.model.ApprovalBean
import com.project.survey.model.ProjectBean
import com.project.survey.network.RetrofitClient
+import com.project.survey.util.SPUtils
class ProjectViewModel : BaseViewModel() {
@@ -18,9 +20,9 @@ class ProjectViewModel : BaseViewModel() {
/**
* 获取用户在工作的所以项目的信息
*/
- fun getAllProjectIDByAccount(account: String) {
+ fun fetchProjectList() {
launch {
- val res = api.getAllProjectIDByAccount(account)
+ val res = api.fetchProjectList(SPUtils.getString(SPConstants.PERSON_ID) ?: "")
if (res.success) {
_projectResponse.postValue(res.data)
}
@@ -34,9 +36,11 @@ class ProjectViewModel : BaseViewModel() {
/**
* 获取流程审批列表
*/
- fun fetchWorkTask(projectId: String, type: String, page: Int = 1) {
+ fun fetchWorkTask(type: String, page: Int = 1) {
launch {
- val res = api.fetchWorkTask(projectId, type, page)
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ val res = api.fetchWorkTask(currentProject?.BD_XMXX_ID ?: "", type, page)
if (res.success) {
_workTaskListResponse.postValue(res.data.data.rows)
}
diff --git a/app/src/main/java/com/project/survey/model/LoginBean.kt b/app/src/main/java/com/project/survey/model/LoginBean.kt
index fafbde5..06a5060 100644
--- a/app/src/main/java/com/project/survey/model/LoginBean.kt
+++ b/app/src/main/java/com/project/survey/model/LoginBean.kt
@@ -1,6 +1,14 @@
package com.project.survey.model
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
+
+/**
+ * {"token":"a52e6940-34c9-4f93-8a60-5b13bf25693f","mobilePhone":"15903684576","personId":"fqwerfqergqwer"}
+ */
+@Parcelize
data class LoginBean(
val token: String,
- val mobilePhone: String
-)
+ val mobilePhone: String,
+ val personId: String
+) : Parcelable
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 5822a83..81c4b90 100644
--- a/app/src/main/java/com/project/survey/model/ProjectBean.kt
+++ b/app/src/main/java/com/project/survey/model/ProjectBean.kt
@@ -1,5 +1,8 @@
package com.project.survey.model
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
+
//{
// "XMXX_PILENO": "20221111",
// "XMXX_INDUSTRYTYPE": "水电工程",
@@ -27,6 +30,7 @@ package com.project.survey.model
// "SY_ORG_ID": null,
// "XMXX_NAME": "测试项目"
//}
+@Parcelize
data class ProjectBean(
val XMXX_NAME: String, //项目名称
val XMXX_CODE: String, //项目编号
@@ -40,4 +44,4 @@ data class ProjectBean(
val XMXX_FILE: String?, //项目图片
val XMXX_DESCRIPTION: String?, //项目图片
val BD_XMXX_ID: String?,
-)
\ No newline at end of file
+) : Parcelable
\ 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 58433eb..d50d00d 100644
--- a/app/src/main/java/com/project/survey/network/Api.kt
+++ b/app/src/main/java/com/project/survey/network/Api.kt
@@ -1,7 +1,6 @@
package com.project.survey.network
import com.project.survey.logic.bean.ListResult
-import com.project.survey.model.ApprovalBean
import com.project.survey.model.ApprovalResponse
import com.project.survey.model.ControlNetBean
import com.project.survey.model.ControlNetCGBean
@@ -48,9 +47,9 @@ interface Api {
/**
* 获取用户可访问的所有项目的信息
*/
- @GET("je/project/getAllProjectIDByAccount")
- suspend fun getAllProjectIDByAccount(
- @Query("account") account: String
+ @GET("je/project/getAllProjectIDByPersonId")
+ suspend fun fetchProjectList(
+ @Query("personId") personId: String
): HttpResult>
// /**
@@ -95,7 +94,8 @@ interface Api {
@Field("funcCode") funcCode: String,
@Field("j_query") j_query: String,
@Field("page") page: Int,
- @Field("limit") limit: Int = 30
+ @Field("limit") limit: Int = 30,
+ @Field("start") start: Int = 0
): HttpResult>
/**
@@ -110,6 +110,7 @@ interface Api {
@Field("funcCode") funcCode: String,
@Field("j_query") j_query: String = "",
@Field("page") page: Int,
- @Field("limit") limit: Int = 30
+ @Field("limit") limit: Int = 30,
+ @Field("start") start: Int = 0
): HttpResult>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/ui/MainActivity.kt b/app/src/main/java/com/project/survey/ui/MainActivity.kt
index 6f91f26..747d8a1 100644
--- a/app/src/main/java/com/project/survey/ui/MainActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/MainActivity.kt
@@ -1,7 +1,9 @@
package com.project.survey.ui
+import androidx.activity.viewModels
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
+import androidx.fragment.app.viewModels
import androidx.viewpager.widget.ViewPager
import blankj.utilcode.util.AppUtils
import com.bingce.AppChannel
@@ -11,12 +13,16 @@ import com.bingce.utils.RegisterUtil
import com.bingce.utils.SdkUtils
import com.flyco.tablayout.listener.OnTabSelectListener
import com.project.survey.R
+import com.project.survey.constants.SPConstants
import com.project.survey.databinding.ActivityMainBinding
+import com.project.survey.logic.viewmodel.MainViewModel
+import com.project.survey.model.ProjectBean
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.home.HomeFragment
import com.project.survey.ui.home.InstrumentFragment
import com.project.survey.ui.home.MeFragment
import com.project.survey.util.ActivityNavUtil
+import com.project.survey.util.SPUtils
/**
* 主页
@@ -31,6 +37,8 @@ class MainActivity : BaseBindingActivity() {
override fun getBinding(): ActivityMainBinding = ActivityMainBinding.inflate(layoutInflater)
+ private val viewModel: MainViewModel by viewModels()
+
override fun initView() {
SdkUtils.verify(
this,
@@ -50,6 +58,7 @@ class MainActivity : BaseBindingActivity() {
}
override fun initData() {
+
}
override fun initListener() {
diff --git a/app/src/main/java/com/project/survey/ui/SplashActivity.kt b/app/src/main/java/com/project/survey/ui/SplashActivity.kt
index 314cc0c..1d66284 100644
--- a/app/src/main/java/com/project/survey/ui/SplashActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/SplashActivity.kt
@@ -1,9 +1,15 @@
package com.project.survey.ui
+import androidx.activity.viewModels
+import androidx.fragment.app.viewModels
import com.project.survey.constants.SPConstants
import com.project.survey.databinding.ActivitySplashBinding
+import com.project.survey.logic.viewmodel.MainViewModel
+import com.project.survey.model.LoginBean
+import com.project.survey.model.ProjectBean
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.login.LoginActivity
+import com.project.survey.ui.project.ProjectListActivity
import com.project.survey.util.SPUtils
/**
@@ -13,6 +19,8 @@ class SplashActivity : BaseBindingActivity() {
override fun getBinding(): ActivitySplashBinding = ActivitySplashBinding.inflate(layoutInflater)
+ private val viewModel: MainViewModel by viewModels()
+
override fun initView() {
}
@@ -21,7 +29,22 @@ class SplashActivity : BaseBindingActivity() {
if (SPUtils.getString(SPConstants.TOKEN).isNullOrBlank()) {
LoginActivity.start()
} else {
- MainActivity.start()
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+// SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+// ?.let { project ->
+// viewModel.repo.currentProject.postValue(project)
+// MainActivity.start()
+// } ?: {
+// //未选择工程
+// ProjectListActivity.start()
+// }
+ if (currentProject == null) {
+ //未选择工程
+ ProjectListActivity.start()
+ } else {
+ MainActivity.start()
+ }
}
finish()
}
diff --git a/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt b/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt
index f0e6eb4..14cabd6 100644
--- a/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/approval/ApprovalActivity.kt
@@ -6,21 +6,22 @@ import com.bingce.surveyor.agentweb.AgentWebActivity
import com.project.survey.BuildConfig
import com.project.survey.R
import com.project.survey.constants.SPConstants
-import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.databinding.ActivityApprovalBinding
-import com.project.survey.extend.toast
+import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ProjectViewModel
import com.project.survey.ui.approval.adapter.ApprovalAdapter
+import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.util.ActivityNavUtil
import com.project.survey.util.SPUtils
import com.project.survey.util.param.Param
-import com.project.survey.widget.LoadingDialog
import com.project.survey.widget.decoration.TransparentDividerDecoration
+import com.scwang.smart.refresh.layout.api.RefreshLayout
+import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
/**
* 待处理,已处理,已发起
*/
-class ApprovalActivity : BaseBindingActivity() {
+class ApprovalActivity : BaseBindingActivity(), OnRefreshLoadMoreListener {
companion object {
const val PI_PREAPPROV = "PI_PREAPPROV"//待处理
@@ -44,14 +45,17 @@ class ApprovalActivity : BaseBindingActivity() {
private lateinit var type: String
private val adapter by lazy { ApprovalAdapter() }
+ private var currentPage = 1
override fun initView() {
- val title = when (type) {
- PI_PREAPPROV -> "待处理"
- PI_APPROVED -> "已处理"
- else -> "已发起"
- }
- immersionToolbar(mBinding.ilToolBar.toolbar, title)
+ immersionToolbar(
+ mBinding.ilToolBar.toolbar,
+ when (type) {
+ PI_PREAPPROV -> "待处理"
+ PI_APPROVED -> "已处理"
+ else -> "已发起"
+ }
+ )
// val beginTransaction = supportFragmentManager.beginTransaction()
// val fragemnt = when (type) {
// PI_PREAPPROV -> ApprovalWaitFragment()
@@ -64,6 +68,7 @@ class ApprovalActivity : BaseBindingActivity() {
// beginTransaction.replace(R.id.container, fragemnt)
// beginTransaction.commit()
+ mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this)
mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter
adapter.isStateViewEnable = true
@@ -71,12 +76,29 @@ class ApprovalActivity : BaseBindingActivity() {
}
override fun initData() {
- viewModel.errorResponse.observe(this){
+ viewModel.errorResponse.observe(this) {
+ mBinding.smartRefreshLayout.smartDismiss()
}
viewModel.workTaskListResponse.observe(this) {
- adapter.submitList(it, type)
+ mBinding.smartRefreshLayout.smartDismiss()
+ if (currentPage == 1) {
+ adapter.submitList(it, type)
+ if (it.isEmpty()) {
+ mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
+ adapter.setStateViewLayout(this, R.layout.layout_no_data)
+ } else {
+ currentPage++
+ }
+ } else {
+ if (it.isEmpty()) {
+ mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
+ } else {
+ adapter.addAll(it)
+ currentPage++
+ }
+ }
}
- viewModel.fetchWorkTask(SPUtils.getString(SPConstants.PROJECT_ID) ?: "", type)
+
// if (type == PI_PREAPPROV) {
// viewModel.fetchWorkTask(SPUtils.getString(SPConstants.PROJECT_ID) ?: "", type)
// } else if(type == PI_APPROVED) {
@@ -86,11 +108,24 @@ class ApprovalActivity : BaseBindingActivity() {
// }
}
+ private fun fetchData() {
+ viewModel.fetchWorkTask(type)
+ }
+
+ override fun onRefresh(refreshLayout: RefreshLayout) {
+ currentPage = 1
+ fetchData()
+ }
+
+ override fun onLoadMore(refreshLayout: RefreshLayout) {
+ fetchData()
+ }
+
override fun initListener() {
adapter.setOnItemClickListener { _, _, position ->
adapter.getItem(position)?.let { bean ->
// http://10.190.183.37/app/micro/func/#/pages/func/form/{功能编码}/{流程ID}?authorization={登录token}&appId=2024-0926-1104-0165
- val token = SPUtils.getString(SPConstants.TOKEN)?:""
+ val token = SPUtils.getString(SPConstants.TOKEN) ?: ""
val url =
BuildConfig.BASE_URL + "app/micro/func/#/pages/func/form/${bean.funcCode}/${bean.pkValue}?authorization=${token}&appId=2024-0926-1104-0165"
AgentWebActivity.navigation2(this, Uri.parse(url))
diff --git a/app/src/main/java/com/project/survey/ui/controlnet/ControlNetFirstListActivity.kt b/app/src/main/java/com/project/survey/ui/controlnet/ControlNetFirstListActivity.kt
index 1d4c611..6ba787d 100644
--- a/app/src/main/java/com/project/survey/ui/controlnet/ControlNetFirstListActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/controlnet/ControlNetFirstListActivity.kt
@@ -1,24 +1,24 @@
package com.project.survey.ui.controlnet
-import android.content.Context
-import android.content.Intent
import androidx.activity.viewModels
import com.project.survey.R
-import com.project.survey.adapter.ControlNetFirstListAdapter
+import com.project.survey.constants.Constants
import com.project.survey.databinding.ActivityControlNetListBinding
+import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ControlNetViewModel
-import com.project.survey.model.ControlNetListBean
import com.project.survey.model.ControlNetVersionBean
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.controlnet.adapter.ControlNetFirstAdapter
import com.project.survey.util.ActivityNavUtil
import com.project.survey.widget.decoration.TransparentDividerDecoration
+import com.scwang.smart.refresh.layout.api.RefreshLayout
+import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
/**
* 首级控制网列表
*/
-class ControlNetFirstListActivity : BaseBindingActivity() {
-
+class ControlNetFirstListActivity : BaseBindingActivity(),
+ OnRefreshLoadMoreListener {
companion object {
fun start() {
@@ -34,14 +34,18 @@ class ControlNetFirstListActivity : BaseBindingActivity() {
+class ControlNetSpecialListActivity : BaseBindingActivity(),
+ OnRefreshLoadMoreListener {
companion object {
fun start() {
@@ -30,11 +34,14 @@ class ControlNetSpecialListActivity : BaseBindingActivity
+ adapter.getItem(position)?.let { bean ->
+ ControlPointActivity.start()
+ }
+ }
}
private fun initVersion() {
diff --git a/app/src/main/java/com/project/survey/ui/controlnet/ControlPointActivity.kt b/app/src/main/java/com/project/survey/ui/controlnet/ControlPointActivity.kt
new file mode 100644
index 0000000..98d078a
--- /dev/null
+++ b/app/src/main/java/com/project/survey/ui/controlnet/ControlPointActivity.kt
@@ -0,0 +1,110 @@
+package com.project.survey.ui.controlnet
+
+import androidx.activity.viewModels
+import com.project.survey.R
+import com.project.survey.constants.SPConstants
+import com.project.survey.databinding.ActivityControlNetListBinding
+import com.project.survey.extend.smartDismiss
+import com.project.survey.logic.viewmodel.ControlNetViewModel
+import com.project.survey.model.ControlNetVersionBean
+import com.project.survey.ui.base.BaseBindingActivity
+import com.project.survey.ui.controlnet.adapter.ControlNetFirstAdapter
+import com.project.survey.ui.controlnet.adapter.ControlNetSpecialAdapter
+import com.project.survey.util.ActivityNavUtil
+import com.project.survey.util.SPUtils
+import com.project.survey.widget.decoration.TransparentDividerDecoration
+import com.scwang.smart.refresh.layout.api.RefreshLayout
+import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
+
+/**
+ * 控制点详情
+ */
+class ControlPointActivity : BaseBindingActivity(),
+ OnRefreshLoadMoreListener {
+
+ companion object {
+ fun start() {
+ ActivityNavUtil.startActivity { }
+ }
+ }
+
+ override fun getBinding(): ActivityControlNetListBinding =
+ ActivityControlNetListBinding.inflate(layoutInflater)
+
+ private val viewModel: ControlNetViewModel by viewModels()
+
+ private val adapter by lazy { ControlNetFirstAdapter() }
+ private var currentPage = 1
+ private var start = 0
+
+ override fun initView() {
+ immersionToolbar(mBinding.ilToolBar.toolbar, "控制点详情")
+
+ initVersion()
+
+ mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this)
+ mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
+ mBinding.recyclerView.adapter = adapter
+ adapter.isStateViewEnable = true
+ adapter.setStateViewLayout(this, R.layout.layout_no_data)
+ }
+
+ override fun initData() {
+ viewModel.errorResponse.observe(this) {
+ mBinding.smartRefreshLayout.smartDismiss()
+ }
+ viewModel.controlNetCGListResponse.observe(this) {
+ mBinding.smartRefreshLayout.smartDismiss()
+ if (currentPage == 1) {
+ adapter.submitList(it.rows)
+ if (it.rows.isEmpty()) {
+ mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
+ adapter.setStateViewLayout(this, R.layout.layout_no_data)
+ } else {
+ currentPage++
+ start += it.totalCount
+ }
+ } else {
+ if (it.rows.isEmpty()) {
+ mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
+ } else {
+ adapter.addAll(it.rows)
+ currentPage++
+ start += it.totalCount
+ }
+ }
+ }
+ fetchData()
+ }
+
+ private fun fetchData(){
+ viewModel.fetchSpecialControlNetCGList("", currentPage, start)
+ }
+
+ override fun onRefresh(refreshLayout: RefreshLayout) {
+ currentPage = 0
+ start = 0
+ fetchData()
+ }
+
+ override fun onLoadMore(refreshLayout: RefreshLayout) {
+ fetchData()
+ }
+
+ override fun initListener() {
+
+ }
+
+ private fun initVersion() {
+ val versionList = mutableListOf()
+ versionList.add(ControlNetVersionBean("版本一"))
+ versionList.add(ControlNetVersionBean("版本二"))
+ versionList.add(ControlNetVersionBean("版本三"))
+
+ mBinding.ilSearch.spinner.setItems(versionList)
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/ui/home/HomeFragment.kt b/app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
index 96a9217..d688f89 100644
--- a/app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
@@ -2,9 +2,12 @@ package com.project.survey.ui.home
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.fragment.app.viewModels
import com.project.survey.constants.SPConstants
import com.project.survey.databinding.FragmentHomeBinding
import com.project.survey.extend.setOnClickNoRepeatListener
+import com.project.survey.logic.viewmodel.MainViewModel
+import com.project.survey.model.ProjectBean
import com.project.survey.ui.approval.ApprovalActivity
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.controlnet.ControlNetFirstListActivity
@@ -22,11 +25,15 @@ class HomeFragment : BaseBindingFragment() {
return FragmentHomeBinding.inflate(inflater, container, false)
}
+ private val viewModel: MainViewModel by viewModels()
+
override fun initView() {
- mBinding.tvProject.text = SPUtils.getString(SPConstants.PROJECT_NAME)
}
override fun initData() {
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ mBinding.tvProject.text = currentProject?.XMXX_NAME
// mBinding.itemToBeProcessed.setBadge(4)
}
diff --git a/app/src/main/java/com/project/survey/ui/home/InstrumentFragment.kt b/app/src/main/java/com/project/survey/ui/home/InstrumentFragment.kt
index 874cdbb..ac2c2f9 100644
--- a/app/src/main/java/com/project/survey/ui/home/InstrumentFragment.kt
+++ b/app/src/main/java/com/project/survey/ui/home/InstrumentFragment.kt
@@ -3,6 +3,7 @@ package com.project.survey.ui.home
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.fragment.app.viewModels
import blankj.utilcode.util.AppUtils
import com.bingce.device.Device
import com.bingce.device.enums.ConnectTypeEnum
@@ -12,9 +13,12 @@ import com.bingce.device.ui.ConnectTSActivity
import com.bingce.rtk.command.RTK
import com.bingce.rtk.config.GnssConfigManager
import com.project.survey.R
+import com.project.survey.constants.SPConstants
import com.project.survey.databinding.FragmentInstrumentBinding
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.extend.toast
+import com.project.survey.logic.viewmodel.MainViewModel
+import com.project.survey.model.ProjectBean
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.instrument.basestationtranslation.RtkBaseCorrectActivity
import com.project.survey.ui.instrument.coordinatesystem.BingCeCoordinateSystemActivity
@@ -23,6 +27,7 @@ import com.project.survey.ui.instrument.mobilestationmode.base.RtkPointCorrectAc
import com.project.survey.ui.instrument.satellitosis.SatelliteStatusActivity
import com.project.survey.ui.instrument.setupstation.InstrumentSetFragmentSetupStationTypeUtils
import com.project.survey.util.ActivityNavUtil
+import com.project.survey.util.SPUtils
/**
* 仪器
@@ -34,12 +39,16 @@ class InstrumentFragment : BaseBindingFragment() {
container: ViewGroup?
): FragmentInstrumentBinding = FragmentInstrumentBinding.inflate(inflater, container, false)
+ private val viewModel: MainViewModel by viewModels()
+
override fun initView() {
}
override fun initData() {
-// mBinding.tvProject.text = "哈哈哈哈哈"
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ mBinding.tvProject.text = currentProject?.XMXX_NAME
}
override fun initListener() {
diff --git a/app/src/main/java/com/project/survey/ui/home/MeFragment.kt b/app/src/main/java/com/project/survey/ui/home/MeFragment.kt
index 96ad11f..c29a972 100644
--- a/app/src/main/java/com/project/survey/ui/home/MeFragment.kt
+++ b/app/src/main/java/com/project/survey/ui/home/MeFragment.kt
@@ -13,11 +13,14 @@ import com.project.survey.databinding.FragmentMeBinding
import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.logic.event.Message
import com.project.survey.logic.viewmodel.LoginViewModel
+import com.project.survey.logic.viewmodel.MainViewModel
+import com.project.survey.model.ProjectBean
import com.project.survey.ui.MainActivity
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.login.LoginActivity
import com.project.survey.ui.project.ProjectListActivity
import com.project.survey.util.ActivityNavUtil
+import com.project.survey.util.LogoutUtil
import com.project.survey.util.SPUtils
/**
@@ -25,19 +28,20 @@ import com.project.survey.util.SPUtils
*/
class MeFragment : BaseBindingFragment() {
- private val viewModel: LoginViewModel by viewModels()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentMeBinding =
FragmentMeBinding.inflate(inflater, container, false)
+ private val viewModel: MainViewModel by viewModels()
+
override fun initView() {
}
override fun initData() {
+ val currentProject =
+ SPUtils.getParcelable(SPConstants.CURRENT_PROJECT, ProjectBean::class.java)
+ mBinding.tvProject.text = currentProject?.XMXX_NAME
mBinding.tvName.text = SPUtils.getString(SPConstants.ACCOUNT)
-// viewModel.msgEvent.observe(this) {
-// updateUIByData()
-// }
if (BuildConfig.DEBUG) {
mBinding.tvVersion.text = BuildConfig.VERSION_NAME
}
@@ -58,9 +62,7 @@ class MeFragment : BaseBindingFragment() {
.negativeText("取消")
.positiveText("退出")
.onPositive { _, _ ->
- SPUtils.removeKey(SPConstants.TOKEN)
- SPUtils.removeKey(SPConstants.ACCOUNT)
- SPUtils.removeKey(SPConstants.MOBILE_PHONE)
+ LogoutUtil.clearSP()
ActivityNavUtil.finishActivity()
ActivityNavUtil.startActivity { }
// viewModel.msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
diff --git a/app/src/main/java/com/project/survey/ui/login/LoginActivity.kt b/app/src/main/java/com/project/survey/ui/login/LoginActivity.kt
index 863f754..59baccd 100644
--- a/app/src/main/java/com/project/survey/ui/login/LoginActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/login/LoginActivity.kt
@@ -77,7 +77,6 @@ class LoginActivity : BaseBindingActivity() {
}
if (isOutLogin) {
// 外部账号登录
-
viewModel.fetchExternalPersonSMSCode(account, password)
} else {
toast("开发中……")
diff --git a/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt b/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt
index b41d4d2..454df54 100644
--- a/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt
+++ b/app/src/main/java/com/project/survey/ui/login/LoginInputCodeActivity.kt
@@ -38,13 +38,13 @@ class LoginInputCodeActivity : BaseBindingActivity() {
+class ProjectListActivity : BaseBindingActivity(), OnRefreshListener {
companion object {
fun start() {
@@ -28,7 +37,7 @@ class ProjectListActivity : BaseBindingActivity() {
private val adapter by lazy { ProjectListAdapter() }
override fun initView() {
- immersionToolbar(mBinding.ilToolBar.toolbar, "项目列表")
+ immersionToolbar(mBinding.toolbar, "项目列表")
// ImmersionBar.with(this)
// .statusBarDarkFont(true)
// .titleBarMarginTop(mBinding.ilToolBar.toolbar)
@@ -39,26 +48,46 @@ class ProjectListActivity : BaseBindingActivity() {
// mBinding.ilToolBar.toolbar.setTitle("项目列表")
// mBinding.ilToolBar.toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.text_color_main))
// initTabLayout()
+ // 搜索
+ mBinding.searchWidget.setOnEditorSearchListener {
+ // 搜索 it
+ }
+ mBinding.smartRefreshLayout.setOnRefreshListener(this)
mBinding.recyclerView.addItemDecoration(HorDividerDecoration(this))
mBinding.recyclerView.setAdapter(adapter)
+ adapter.isStateViewEnable = true
+ adapter.setStateViewLayout(this, R.layout.layout_no_data)
}
override fun initData() {
+ viewModel.errorResponse.observe(this) {
+ mBinding.smartRefreshLayout.smartDismiss()
+ }
viewModel.projectResponse.observe(this) {
+ mBinding.smartRefreshLayout.smartDismiss()
adapter.submitList(it)
- // TODO 暂时将第一条设置为当前项目
- if (it.isNotEmpty()) {
- SPUtils.put(SPConstants.PROJECT_ID, it[0].BD_XMXX_ID)
- SPUtils.put(SPConstants.PROJECT_NAME, it[0].XMXX_NAME)
- }
}
+ fetchData()
+ }
- viewModel.getAllProjectIDByAccount(SPUtils.getString(SPConstants.ACCOUNT) ?: "")
+ private fun fetchData() {
+ viewModel.fetchProjectList()
}
- override fun initListener() {
+ override fun onRefresh(refreshLayout: RefreshLayout) {
+ fetchData()
+ }
+ override fun initListener() {
+ adapter.setOnItemClickListener { _, _, position ->
+ adapter.getItem(position)?.let { bean ->
+ // 进入项目,设置当前项目
+ SPUtils.put(SPConstants.CURRENT_PROJECT, bean)
+ MainActivity.start()
+ ActivityNavUtil.finishActivity()
+ }
+ }
}
// private fun initTabLayout() {
@@ -91,8 +120,19 @@ class ProjectListActivity : BaseBindingActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.menu_activity_project_list_exit) {
- finish()
+ MaterialDialog.Builder(this)
+ .title("确定退出吗?")
+ .negativeText("取消")
+ .positiveText("退出")
+ .onPositive { _, _ ->
+ LogoutUtil.clearSP()
+ ActivityNavUtil.startActivity { }
+ ActivityNavUtil.finishActivity()
+// viewModel.msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
+ }
+ .show()
}
return super.onOptionsItemSelected(item)
}
+
}
\ No newline at end of file
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 56d1832..c347a75 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
@@ -57,7 +57,7 @@ class ProjectListFragment : BaseBindingFragment() {
}
}
- viewModel.getAllProjectIDByAccount(SPUtils.getString(SPConstants.ACCOUNT) ?: "")
+ viewModel.fetchProjectList()
}
override fun initListener() {
diff --git a/app/src/main/java/com/project/survey/util/LogoutUtil.kt b/app/src/main/java/com/project/survey/util/LogoutUtil.kt
new file mode 100644
index 0000000..d690542
--- /dev/null
+++ b/app/src/main/java/com/project/survey/util/LogoutUtil.kt
@@ -0,0 +1,13 @@
+package com.project.survey.util
+
+import com.project.survey.constants.SPConstants
+
+object LogoutUtil {
+
+ fun clearSP(){
+ SPUtils.removeKey(SPConstants.ACCOUNT)
+ SPUtils.removeKey(SPConstants.TOKEN)
+ SPUtils.removeKey(SPConstants.MOBILE_PHONE)
+ SPUtils.removeKey(SPConstants.PERSON_ID)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/project/survey/widget/SearchWidget.kt b/app/src/main/java/com/project/survey/widget/SearchWidget.kt
new file mode 100644
index 0000000..ad28d36
--- /dev/null
+++ b/app/src/main/java/com/project/survey/widget/SearchWidget.kt
@@ -0,0 +1,40 @@
+package com.project.survey.widget
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.inputmethod.EditorInfo
+import androidx.appcompat.widget.LinearLayoutCompat
+import com.project.survey.R
+import com.project.survey.databinding.WidgetSearchBinding
+import com.project.survey.databinding.WidgetSectionItemBinding
+import com.project.survey.extend.isVisibleOrGone
+import com.project.survey.extend.toast
+
+class SearchWidget @JvmOverloads constructor(
+ context: Context,
+ val attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : LinearLayoutCompat(context, attrs, defStyleAttr) {
+
+ private val binding: WidgetSearchBinding
+
+ init {
+ binding = WidgetSearchBinding.inflate(LayoutInflater.from(context), this, true)
+ val typeArray = context.obtainStyledAttributes(attrs, R.styleable.SearchWidget)
+
+ binding.etSearch.setHint(typeArray.getString(R.styleable.SearchWidget_sw_hint))
+
+ typeArray.recycle()
+ }
+
+
+ fun setOnEditorSearchListener(onSearch: (String) -> Unit) {
+ binding.etSearch.setOnEditorActionListener { textView, i, keyEvent ->
+ if (i == EditorInfo.IME_ACTION_SEARCH) {
+ onSearch(textView.text.toString())
+ }
+ return@setOnEditorActionListener true
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_search.xml b/app/src/main/res/drawable/bg_search.xml
index c3ea364..4c24d36 100644
--- a/app/src/main/res/drawable/bg_search.xml
+++ b/app/src/main/res/drawable/bg_search.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_approval.xml b/app/src/main/res/layout/activity_approval.xml
index 54f60ac..39b38af 100644
--- a/app/src/main/res/layout/activity_approval.xml
+++ b/app/src/main/res/layout/activity_approval.xml
@@ -16,12 +16,18 @@
-
+ android:layout_height="match_parent">
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_control_net_list.xml b/app/src/main/res/layout/activity_control_net_list.xml
index e29b786..b767387 100644
--- a/app/src/main/res/layout/activity_control_net_list.xml
+++ b/app/src/main/res/layout/activity_control_net_list.xml
@@ -13,11 +13,17 @@
android:id="@+id/ilSearch"
layout="@layout/item_search_control_net" />
-
+ android:layout_height="match_parent">
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_project_list.xml b/app/src/main/res/layout/activity_project_list.xml
index 73d236d..98b9613 100644
--- a/app/src/main/res/layout/activity_project_list.xml
+++ b/app/src/main/res/layout/activity_project_list.xml
@@ -1,45 +1,63 @@
-
+
-
+
-
+ app:srlEnableLoadMore="false">
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml
index 99e6914..e2548fd 100644
--- a/app/src/main/res/layout/fragment_me.xml
+++ b/app/src/main/res/layout/fragment_me.xml
@@ -28,7 +28,7 @@
tools:text="请登录" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/attr.xml b/app/src/main/res/values/attr.xml
index 5b0a918..a3ea1d8 100644
--- a/app/src/main/res/values/attr.xml
+++ b/app/src/main/res/values/attr.xml
@@ -33,4 +33,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cd5c055..b9d0f0c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,8 +39,8 @@
输入不符合要求!
输入不能为空!
请输入验证码
- 验证码已发送至%1$s的手机,如您已更换手机,请联系管理员。
-
+
+ 验证码已发送至您的手机,如您已更换手机,请联系管理员。
验证码已发送至%1$s的手机,请输入6位数验证码。
身份验证
请输入账号。