控制网接口

main
chenglifeng 7 months ago
parent 1f67fba393
commit a9d2f5aedd
  1. 2
      app/src/main/AndroidManifest.xml
  2. 3
      app/src/main/java/com/project/survey/logic/bean/ListResult.kt
  3. 16
      app/src/main/java/com/project/survey/logic/viewmodel/BaseViewModel.kt
  4. 83
      app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt
  5. 42
      app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt
  6. 31
      app/src/main/java/com/project/survey/model/ControlNetBean.kt
  7. 33
      app/src/main/java/com/project/survey/model/ControlNetCGBean.kt
  8. 46
      app/src/main/java/com/project/survey/network/Api.kt
  9. 23
      app/src/main/java/com/project/survey/network/ERROR.kt
  10. 27
      app/src/main/java/com/project/survey/network/ExceptionHandle.kt
  11. 35
      app/src/main/java/com/project/survey/network/ResponseThrowable.kt
  12. 4
      app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt
  13. 33
      app/src/main/java/com/project/survey/ui/controlnet/ControlNetFirstListActivity.kt
  14. 61
      app/src/main/java/com/project/survey/ui/controlnet/ControlNetSpeciaListActivity.kt
  15. 72
      app/src/main/java/com/project/survey/ui/controlnet/ControlNetSpecialListActivity.kt
  16. 30
      app/src/main/java/com/project/survey/ui/controlnet/adapter/ControlNetFirstAdapter.kt
  17. 27
      app/src/main/java/com/project/survey/ui/controlnet/adapter/ControlNetSpecialAdapter.kt
  18. 10
      app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
  19. 8
      app/src/main/java/com/project/survey/ui/login/LoginActivity.kt
  20. 4
      app/src/main/java/com/project/survey/util/ActivityNavUtil.kt
  21. 4
      app/src/main/res/layout/activity_control_net_list.xml
  22. 159
      app/src/main/res/layout/item_control_net_first.xml
  23. 67
      app/src/main/res/layout/item_control_net_special.xml

@ -114,7 +114,7 @@
android:label="@string/head_control_network"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name=".ui.controlnet.ControlNetSpeciaListActivity"
android:name=".ui.controlnet.ControlNetSpecialListActivity"
android:exported="true"
android:label="@string/dedicated_control_network"
android:windowSoftInputMode="adjustResize|stateHidden" />

@ -0,0 +1,3 @@
package com.project.survey.logic.bean
data class ListResult<T>(val rows: List<T>, val totalCount: Int)

@ -3,12 +3,19 @@ package com.project.survey.logic.viewmodel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
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.network.ERROR
import com.project.survey.ui.login.LoginActivity
import com.project.survey.util.ActivityNavUtil
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import retrofit2.HttpException
open class BaseViewModel : ViewModel() {
@ -22,6 +29,15 @@ open class BaseViewModel : ViewModel() {
try {
block()
} catch (e: Exception) {
if (e is HttpException) {
if (e.code() == ERROR.AUTH_ERROR.code) { //token失效
toast("token失效,请重新登录")
delay(2000L)
LoginActivity.start()
} else {
toast("${e.code()};${e.message}")
}
}
errorResponse.postValue(e.message)
}
}

@ -0,0 +1,83 @@
package com.project.survey.logic.viewmodel
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.model.ApprovalBean
import com.project.survey.model.ControlNetBean
import com.project.survey.model.ControlNetCGBean
import com.project.survey.model.ProjectBean
import com.project.survey.network.RetrofitClient
import com.project.survey.util.SPUtils
class ControlNetViewModel : BaseViewModel() {
val api = RetrofitClient.createApiService()
val controlNetListResponse: LiveData<ListResult<ControlNetBean>>
get() = _controlNetListResponse
private val _controlNetListResponse = MutableLiveData<ListResult<ControlNetBean>>()
/**
* 获取专用控制网列表
*/
fun fetchSpecialControlNetList(j_query: String, page: Int = 1) {
launch {
val res =
api.fetchSpecialControlNetList(
SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
"BD_KZW",
"BD_KZW_ZY",
j_query,
page
)
if (res.success) {
_controlNetListResponse.postValue(res.data)
}
}
}
val controlNetCGListResponse: LiveData<ListResult<ControlNetCGBean>>
get() = _controlNetCGListResponse
private val _controlNetCGListResponse = MutableLiveData<ListResult<ControlNetCGBean>>()
/**
* 获取专用控制网成果列表
*/
fun fetchSpecialControlNetCGList(j_query: String, page: Int = 1) {
launch {
var res = api.fetchSpecialControlNetCGList(
SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
"BD_KZWZBCG",
"BD_KZWZBCG_ZY",
j_query,
page
)
if (res.success) {
_controlNetCGListResponse.postValue(res.data)
}
}
}
/**
* 获取首级控制网列表
*/
fun fetchFirstControlNetList(j_query: String, page: Int = 1) {
launch {
var res = api.fetchSpecialControlNetCGList(
SPUtils.getString(SPConstants.PROJECT_ID) ?: "",
"BD_KZWZBCG",
"BD_KZWZBCG",
j_query,
page
)
if (res.success) {
_controlNetCGListResponse.postValue(res.data)
}
}
}
}

@ -61,27 +61,27 @@ class LoginViewModel : BaseViewModel() {
}
}
/**
* 登录
*/
fun login(account: String, password: String) {
launch {
val res = api.login(account, password)
if (res.success) {
_loginResponse.postValue(res.data)
SPUtils.put(SPConstants.TOKEN, res.data.token)
SPUtils.put(SPConstants.ACCOUNT, account)
SPUtils.put(SPConstants.MOBILE_PHONE, res.data.mobilePhone)
msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
}
// _loginResponse.postValue("res.data")
// SPUtils.put(SPConstants.TOKEN, "res.data")
// SPUtils.put(SPConstants.LOGIN, true)
// SPUtils.put(SPConstants.ACCOUNT, account)
// msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
}
}
// /**
// * 登录
// */
// fun login(account: String, password: String) {
// launch {
// val res = api.login(account, password)
// if (res.success) {
// _loginResponse.postValue(res.data)
// SPUtils.put(SPConstants.TOKEN, res.data.token)
// SPUtils.put(SPConstants.ACCOUNT, account)
// SPUtils.put(SPConstants.MOBILE_PHONE, res.data.mobilePhone)
// msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
// }
//
//// _loginResponse.postValue("res.data")
//// SPUtils.put(SPConstants.TOKEN, "res.data")
//// SPUtils.put(SPConstants.LOGIN, true)
//// SPUtils.put(SPConstants.ACCOUNT, account)
//// msgEvent.postValue(Message(EventConstants.LOGIN_STATUS))
// }
// }
// val sendSMSResponse: LiveData<Any>
// get() = _sendSMSResponse

@ -0,0 +1,31 @@
package com.project.survey.model
/**
* {
* "KZW_TYPE_CODE": "02",
* "SY_CREATEUSERID": "c1c843dd971f416da307f5fefa9d782e",
* "KZW_TYPE_NAME": "专用",
* "KZW_APPROVALSTATUS": "",
* "KZW_VERSION": "2024-09-2704",
* "SY_GROUP_COMPANY_ID": "",
* "KZW_MEASUREMENTLEVEL": "2",
* "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM",
* "KZW_FILE": "",
* "SY_CREATEUSERNAME": "zlh",
* "KZW_MEASUREMENTUNIT": "",
* "KZW_REMARK": "",
* "BD_KZW_ID": "14faecf400d74001ad37ca7b349e9de7",
* "SY_CREATETIME": "2024-09-27 15:36:26",
* "SY_ORG_ID": "systemdepartment",
* "": "2024-09-27",
* "KZW_LCMC": "专用控制网测试2",
* "KZW_MEASUREMENTUNIT_ID": "",
* "KZW_NAME": "专用",
* "BD_XMXX_ID": ""
* }
*/
data class ControlNetBean(
val KZW_NAME:String,
val KZW_MEASUREMENTLEVEL:String,
val KZW_MEASUREMENTTIME:String
)

@ -0,0 +1,33 @@
package com.project.survey.model
/**
* {
* "KZW_TYPE_CODE": "01",
* "SY_CREATEUSERID": "c1c843dd971f416da307f5fefa9d782e",
* "KZW_TYPE_NAME": "首级",
* "SY_GROUP_COMPANY_ID": "",
* "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM",
* "SY_CREATEUSERNAME": "zlh",
* "BD_KZWZBCG_ID": "7a1a698ef08d4dd8b6a742fa63297764",
* "BD_KZW_ID": "",
* "SY_ORG_ID": "systemdepartment",
* "KZW_MEASUREMENTTIME": "2024-09-06 16:22:55",
* "KZWZBCG_BZ": "",
* "KZWZBCG_YCOORDINATE": "1",
* "KZWZBCG_VERSION": "",
* "KZWZBCG_HCOORDINATE": "1",
* "KZWZBCG_XCOORDINATE": "1",
* "BD_XMXX_ID": "",
* "KZW_NAME": "首级控制网1",
* "KZWZBCG_POINTNAME": "测点1"
* }
*/
data class ControlNetCGBean(
val KZWZBCG_BZ:String,
val KZWZBCG_POINTNAME:String,
val KZWZBCG_XCOORDINATE:String,
val KZWZBCG_YCOORDINATE:String,
val KZWZBCG_HCOORDINATE:String,
val KZWZBCG_VERSION:String,
val KZW_MEASUREMENTTIME:String
)

@ -1,7 +1,10 @@
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
import com.project.survey.model.LoginBean
import com.project.survey.model.ProjectBean
import retrofit2.http.Field
@ -14,14 +17,14 @@ import retrofit2.http.Query
interface Api {
/**
* 登录
*/
@GET("je/personInfo/externalEntry")
suspend fun login(
@Query("account") account: String,
@Query("password") password: String
): HttpResult<LoginBean>
// /**
// * 登录
// */
// @GET("je/personInfo/externalEntry")
// suspend fun login(
// @Query("account") account: String,
// @Query("password") password: String
// ): HttpResult<LoginBean>
/**
* 外部用户获取验证码
@ -81,5 +84,32 @@ interface Api {
@Field("limit") limit: Int = 30,
): HttpResult<ApprovalResponse>
/**
* 获取专用控制网列表
*/
@FormUrlEncoded
@POST("je/cloud/beiDou/load")
suspend fun fetchSpecialControlNetList(
@Header("projectId") projectId: String,
@Field("tableCode") tableCode: String,
@Field("funcCode") funcCode: String,
@Field("j_query") j_query: String,
@Field("page") page: Int,
@Field("limit") limit: Int = 30
): HttpResult<ListResult<ControlNetBean>>
/**
* 获取专用控制网成果列表
* //获取首级控制网列表
*/
@FormUrlEncoded
@POST("je/common/load")
suspend fun fetchSpecialControlNetCGList(
@Header("projectId") projectId: String,
@Field("tableCode") tableCode: String,
@Field("funcCode") funcCode: String,
@Field("j_query") j_query: String = "",
@Field("page") page: Int,
@Field("limit") limit: Int = 30
): HttpResult<ListResult<ControlNetCGBean>>
}

@ -0,0 +1,23 @@
package com.project.survey.network
enum class ERROR(val code: Int, val err: String) {
/**
* 未知错误
*/
UNKNOWN(1000, "未知错误"),
/**
* Token过期身份认证失效
*/
AUTH_ERROR(401, "身份认证失效"),
PATH_ERROR(404, "接口路径错误"),
/**
* 服务器异常
*/
SERVER_ERROR(500, "Server Error"),
BAD_GATEWAY(502, "Bad Gateway"),
;
}

@ -0,0 +1,27 @@
package com.project.survey.network
import blankj.utilcode.util.AppUtils
import retrofit2.HttpException
object ExceptionHandle {
fun handleException(e: Throwable): ResponseThrowable {
if (AppUtils.isAppDebug()) {
e.printStackTrace()
}
val ex: ResponseThrowable
if (e is HttpException) {
ex = when {
e.code() == ERROR.AUTH_ERROR.code -> ResponseThrowable(ERROR.AUTH_ERROR, e)
// e.code() == ERROR.PATH_ERROR.code -> ResponseThrowable(ERROR.PATH_ERROR, e)
// e.code() == ERROR.SERVER_ERROR.code -> ResponseThrowable(ERROR.SERVER_ERROR, e)
// e.code() == ERROR.BAD_GATEWAY.code -> ResponseThrowable(ERROR.BAD_GATEWAY, e)
else -> ResponseThrowable(e.code(), e.message(), e)
}
} else {
ex = if (!e.message.isNullOrEmpty()) ResponseThrowable(1000, e.message!!, e)
else ResponseThrowable(ERROR.UNKNOWN, e)
}
return ex
}
}

@ -0,0 +1,35 @@
package com.project.survey.network
import java.lang.Exception
/**
* Name: ResponseThrowable
* Author: chenglifeng
*/
data class ResponseThrowable(
var code: Int,
var msg: String,
val e: Throwable? = null
) : Exception(e) {
constructor(error: ERROR, e: Throwable? = null) : this(error.code, e?.message ?: error.err, e)
// constructor(error: ERROR, e: Throwable? = null) : super(e) {
// code = error.code
// errMsg = error.err
// data = error.err
// }
//
// constructor(code: Int, msg: String, e: Throwable? = null) : super(e) {
// this.code = code
// this.errMsg = msg
// this.data = msg
// }
//
// constructor(base: IBaseResponse<*>, e: Throwable? = null) : super(e) {
// this.code = base.code()
// this.errMsg = base.msg()
// this.data = if (base.data() == null) null else base.data() as String
// }
}

@ -80,6 +80,10 @@ abstract class BaseBindingActivity<VB : ViewBinding> : AppCompatActivity() {
return true
}
protected fun immersionToolbar(toolbar: Toolbar, titleResId: Int) {
immersionToolbar(toolbar, getString(titleResId))
}
protected fun immersionToolbar(toolbar: Toolbar, title: String? = null) {
ImmersionBar.with(this)
.statusBarDarkFont(true)

@ -2,11 +2,16 @@ 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.databinding.ActivityControlNetListBinding
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
/**
@ -14,11 +19,10 @@ import com.project.survey.widget.decoration.TransparentDividerDecoration
*/
class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBinding>() {
private val adapter by lazy { ControlNetFirstListAdapter(this) }
companion object {
fun launch(context: Context) {
context.startActivity(Intent(context, ControlNetFirstListActivity::class.java))
fun start() {
ActivityNavUtil.startActivity<ControlNetFirstListActivity> { }
}
}
@ -26,11 +30,19 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
return ActivityControlNetListBinding.inflate(layoutInflater)
}
private val viewModel: ControlNetViewModel by viewModels()
private val adapter by lazy { ControlNetFirstAdapter() }
private var currentPage = 1
override fun initView() {
immersionToolbar(mBinding.ilToolBar.toolbar, R.string.head_control_network)
initVersion()
mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter
initAdapter()
}
private fun initVersion() {
@ -43,22 +55,15 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
}
override fun initData() {
val dataList = mutableListOf<ControlNetListBean>()
for (i in 0 until 3) {
dataList.add(ControlNetListBean())
viewModel.controlNetCGListResponse.observe(this) {
adapter.submitList(it.rows)
}
adapter.refreshData(dataList)
viewModel.fetchFirstControlNetList("", currentPage)
}
override fun initListener() {
}
private fun initAdapter() {
mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
adapter.setOnItemClickListener {
}
mBinding.recyclerView.setAdapter(adapter)
}
}

@ -1,61 +0,0 @@
package com.project.survey.ui.controlnet
import android.content.Context
import android.content.Intent
import com.project.survey.adapter.ControlNetSpeciaListAdapter
import com.project.survey.databinding.ActivityControlNetListBinding
import com.project.survey.model.ControlNetListBean
import com.project.survey.model.ControlNetVersionBean
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.widget.decoration.TransparentDividerDecoration
/**
* 专用控制网列表
*/
class ControlNetSpeciaListActivity : BaseBindingActivity<ActivityControlNetListBinding>() {
private val adapter by lazy { ControlNetSpeciaListAdapter(this) }
companion object {
fun launch(context: Context) {
context.startActivity(Intent(context, ControlNetSpeciaListActivity::class.java))
}
}
override fun getBinding(): ActivityControlNetListBinding {
return ActivityControlNetListBinding.inflate(layoutInflater)
}
override fun initView() {
initVersion()
initAdapter()
}
override fun initData() {
val dataList = mutableListOf<ControlNetListBean>()
for (i in 0 until 3) {
dataList.add(ControlNetListBean())
}
adapter.refreshData(dataList)
}
override fun initListener() {
}
private fun initVersion() {
val versionList = mutableListOf<ControlNetVersionBean>()
versionList.add(ControlNetVersionBean("版本一"))
versionList.add(ControlNetVersionBean("版本二"))
versionList.add(ControlNetVersionBean("版本三"))
mBinding.ilSearch.spinner.setItems(versionList)
}
private fun initAdapter() {
mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
adapter.setOnItemClickListener {
}
mBinding.recyclerView.setAdapter(adapter)
}
}

@ -0,0 +1,72 @@
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.logic.viewmodel.ControlNetViewModel
import com.project.survey.model.ControlNetVersionBean
import com.project.survey.ui.base.BaseBindingActivity
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
/**
* 专用控制网列表
*/
class ControlNetSpecialListActivity : BaseBindingActivity<ActivityControlNetListBinding>() {
companion object {
fun start() {
ActivityNavUtil.startActivity<ControlNetSpecialListActivity> { }
}
}
override fun getBinding(): ActivityControlNetListBinding =
ActivityControlNetListBinding.inflate(layoutInflater)
private val viewModel: ControlNetViewModel by viewModels()
private val adapter by lazy { ControlNetSpecialAdapter() }
private var currentPage = 1
override fun initView() {
immersionToolbar(mBinding.ilToolBar.toolbar, R.string.dedicated_control_network)
initVersion()
mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter
adapter.isStateViewEnable = true
adapter.setStateViewLayout(this, R.layout.layout_no_data)
}
override fun initData() {
viewModel.controlNetListResponse.observe(this) {
adapter.submitList(it.rows)
}
//@Field("tableCode") tableCode: String = "BD_KZW",
// * @Field("funcCode") funcCode: String = "BD_KZW_ZY",
// * @Field("j_query") j_query: String = "",
// * @Field("page") page: Int,
viewModel.fetchSpecialControlNetList(
"",
currentPage
)
}
override fun initListener() {
}
private fun initVersion() {
val versionList = mutableListOf<ControlNetVersionBean>()
versionList.add(ControlNetVersionBean("版本一"))
versionList.add(ControlNetVersionBean("版本二"))
versionList.add(ControlNetVersionBean("版本三"))
mBinding.ilSearch.spinner.setItems(versionList)
}
}

@ -0,0 +1,30 @@
package com.project.survey.ui.controlnet.adapter
import android.content.Context
import android.view.ViewGroup
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.project.survey.R
import com.project.survey.model.ControlNetCGBean
class ControlNetFirstAdapter : BaseQuickAdapter<ControlNetCGBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: ControlNetCGBean?) {
item?.let { bean ->
holder.setText(R.id.tvPointName, bean.KZWZBCG_POINTNAME)
.setText(R.id.tvX, bean.KZWZBCG_XCOORDINATE)
.setText(R.id.tvY, bean.KZWZBCG_YCOORDINATE)
.setText(R.id.tvZ, bean.KZWZBCG_HCOORDINATE)
.setText(R.id.tvTime, bean.KZW_MEASUREMENTTIME)
.setText(R.id.tvRemark, bean.KZWZBCG_BZ)
}
}
override fun onCreateViewHolder(
context: Context,
parent: ViewGroup,
viewType: Int
): QuickViewHolder {
return QuickViewHolder(R.layout.item_control_net_first, parent)
}
}

@ -0,0 +1,27 @@
package com.project.survey.ui.controlnet.adapter
import android.content.Context
import android.view.ViewGroup
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.project.survey.R
import com.project.survey.model.ControlNetBean
class ControlNetSpecialAdapter : BaseQuickAdapter<ControlNetBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: ControlNetBean?) {
item?.let { bean ->
holder.setText(R.id.tvName, bean.KZW_NAME)
.setText(R.id.tvLevel, bean.KZW_MEASUREMENTLEVEL)
.setText(R.id.tvTime, bean.KZW_MEASUREMENTTIME)
}
}
override fun onCreateViewHolder(
context: Context,
parent: ViewGroup,
viewType: Int
): QuickViewHolder {
return QuickViewHolder(R.layout.item_control_net_special, parent)
}
}

@ -8,7 +8,7 @@ import com.project.survey.extend.setOnClickNoRepeatListener
import com.project.survey.ui.approval.ApprovalActivity
import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.controlnet.ControlNetFirstListActivity
import com.project.survey.ui.controlnet.ControlNetSpeciaListActivity
import com.project.survey.ui.controlnet.ControlNetSpecialListActivity
import com.project.survey.ui.lofting.LoftingListActivity
import com.project.survey.ui.pointmeasure.PointMeasureListActivity
import com.project.survey.util.SPUtils
@ -27,7 +27,7 @@ class HomeFragment : BaseBindingFragment<FragmentHomeBinding>() {
}
override fun initData() {
mBinding.itemToBeProcessed.setBadge(4)
// mBinding.itemToBeProcessed.setBadge(4)
}
override fun initListener() {
@ -48,11 +48,13 @@ class HomeFragment : BaseBindingFragment<FragmentHomeBinding>() {
mBinding.itemInitiated.setOnClickNoRepeatListener {
ApprovalActivity.start()
}
// 首级控制网
mBinding.itemControlNetFirst.setOnClickNoRepeatListener {
ControlNetFirstListActivity.launch(requireContext())
ControlNetFirstListActivity.start()
}
// 专用控制网
mBinding.itemControlNetSpecial.setOnClickNoRepeatListener {
ControlNetSpeciaListActivity.launch(requireContext())
ControlNetSpecialListActivity.start()
}
}
}

@ -21,6 +21,10 @@ class LoginActivity : BaseBindingActivity<ActivityLoginBinding>() {
companion object {
fun start() {
SPUtils.put(SPConstants.TOKEN, "")
SPUtils.put(SPConstants.ACCOUNT, "")
SPUtils.put(SPConstants.MOBILE_PHONE, "")
ActivityNavUtil.finishAllActivities()
ActivityNavUtil.startActivity<LoginActivity> { }
}
}
@ -107,8 +111,8 @@ class LoginActivity : BaseBindingActivity<ActivityLoginBinding>() {
mBinding.llShowInnerLogin.visibility = View.GONE
}
mBinding.etAccount.text = null
mBinding.passwordView.clearEtPwdText()
// mBinding.etAccount.text = null
// mBinding.passwordView.clearEtPwdText()
// mBinding.ilPwd.etPwd.text = null
}

@ -13,4 +13,8 @@ object ActivityNavUtil {
inline fun <reified T : AppCompatActivity> finishActivity(){
ActivityUtils.finishActivity(T::class.java)
}
fun finishAllActivities(){
ActivityUtils.finishAllActivities()
}
}

@ -5,7 +5,9 @@
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/sh_toolbar" />
<include
android:id="@+id/ilToolBar"
layout="@layout/sh_toolbar" />
<include
android:id="@+id/ilSearch"

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/bg_white_round_4"
android:orientation="vertical"
android:paddingHorizontal="@dimen/sw_12dp"
android:paddingTop="@dimen/sw_12dp"
android:paddingBottom="@dimen/sw_6dp">
<TextView
android:id="@+id/tvPointName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="点名称"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_13sp"
android:textStyle="bold" />
<include
layout="@layout/line_hor"
android:layout_width="match_parent"
android:layout_height="@dimen/sw_0_5dp"
android:layout_marginTop="@dimen/sw_12dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_36dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="X(m)"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvX"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
tools:text="362122.22"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_36dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Y(m)"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvY"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:text="362122.22"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_36dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="Z(m)"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvZ"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:text="362122.22"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_36dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="施测时间"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:text="2022-06-10 09:27:49"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_36dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="备注"
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
<TextView
android:id="@+id/tvRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:text=""
android:textColor="@color/text_color_1"
android:textSize="@dimen/sw_12sp" />
</LinearLayout>
</LinearLayout>

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_white_round_4"
android:orientation="vertical"
android:padding="12dp">
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_color_20"
android:textSize="13sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="专用" />
<TextView
android:id="@+id/tvLevelKey"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:text="等&#12288;&#12288;级:"
android:textColor="@color/text_color_404145"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvName" />
<TextView
android:id="@+id/tvLevel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_12dp"
android:textColor="@color/text_color_404145"
android:textSize="12sp"
app:layout_constraintStart_toEndOf="@id/tvLevelKey"
app:layout_constraintTop_toBottomOf="@id/tvName"
tools:text="内容" />
<TextView
android:id="@+id/tvTimeKey"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_4dp"
android:text="施测时间:"
android:textColor="@color/text_color_404145"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLevelKey" />
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_4dp"
android:textColor="@color/text_color_404145"
android:textSize="12sp"
app:layout_constraintStart_toEndOf="@id/tvTimeKey"
app:layout_constraintTop_toBottomOf="@id/tvLevelKey"
tools:text="2022-05-17 10:58:48" />
</androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save