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 e38937f..20c7f64 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 @@ -71,9 +71,9 @@ class ProjectViewModel : BaseViewModel() { /** * 加载功能权限 */ - fun loadFuncPerm(bean: ApprovalBean){ + fun loadFuncPerm(bean: ApprovalBean) { launch { - val res = api.loadFuncPerm() + val res = api.loadFuncPerm(funcCode = bean.funcCode) if (res.success) { _loadFuncPermResponse.postValue(bean) } else { 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 5ab4ae2..23f0573 100644 --- a/app/src/main/java/com/project/survey/network/Api.kt +++ b/app/src/main/java/com/project/survey/network/Api.kt @@ -100,7 +100,7 @@ interface Api { @GET("je/rbac/permission/loadFuncPerm") suspend fun loadFuncPerm( @Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), - @Query("funcCode") funcCode: String = "BD_CGSP" + @Query("funcCode") funcCode: String ): HttpResult /** diff --git a/app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt b/app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt index cf5ce0f..a8514b9 100644 --- a/app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt +++ b/app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt @@ -1,9 +1,16 @@ package com.project.survey.ui.controlnet +import android.graphics.drawable.BitmapDrawable +import android.view.View +import android.widget.AdapterView +import android.widget.AdapterView.OnItemClickListener +import android.widget.ArrayAdapter import androidx.activity.viewModels +import androidx.appcompat.widget.ListPopupWindow import com.bingce.utils.ThreadPoolUtil import com.project.survey.R import com.project.survey.databinding.ActivityFirstControlNetworkBinding +import com.project.survey.extend.setOnClickNoRepeatListener import com.project.survey.extend.smartDismiss import com.project.survey.logic.viewmodel.ControlNetViewModel import com.project.survey.model.ControlNetVersionBean @@ -35,10 +42,14 @@ class FirstControlNetworkActivity : BaseBindingActivity(this, android.R.layout.simple_list_item_1, versionList.map { it.KZWZBCG_VERSION }) + listPopupWindow.setAdapter(adapter) + mBinding.tvSpinner.text = versionList[0].KZWZBCG_VERSION + } viewModel.controlNetCGListResponse.observe(this) { mBinding.smartRefreshLayout.smartDismiss() @@ -91,16 +106,26 @@ class FirstControlNetworkActivity : BaseBindingActivity - val versionBean = item as FirstControlNetworkVersionBean - currentVersion = - if ("版本号" == versionBean.KZWZBCG_VERSION) null else versionBean.KZWZBCG_VERSION + mBinding.llSpinner.setOnClickNoRepeatListener { + listPopupWindow.show() + } + listPopupWindow.setOnItemClickListener { adapterView, view, i, l -> + listPopupWindow.dismiss() + currentVersion = if (i == 0) null else versionList[i].KZWZBCG_VERSION + mBinding.tvSpinner.text = versionList[i].KZWZBCG_VERSION currentPage = 1 fetchData() - ThreadPoolUtil.executeInMainDelay300 { - mBinding.spinner.collapse() - } } +// mBinding.spinner.setOnItemSelectedListener { _, _, _, item -> +// val versionBean = item as FirstControlNetworkVersionBean +// currentVersion = +// if ("版本号" == versionBean.KZWZBCG_VERSION) null else versionBean.KZWZBCG_VERSION +// currentPage = 1 +// fetchData() +// ThreadPoolUtil.executeInMainDelay300 { +// mBinding.spinner.collapse() +// } +// } } private fun fetchData() { diff --git a/app/src/main/java/com/project/survey/ui/controlnet/SpecialControlNetworkActivity.kt b/app/src/main/java/com/project/survey/ui/controlnet/SpecialControlNetworkActivity.kt index 96ba6d5..c96759f 100644 --- a/app/src/main/java/com/project/survey/ui/controlnet/SpecialControlNetworkActivity.kt +++ b/app/src/main/java/com/project/survey/ui/controlnet/SpecialControlNetworkActivity.kt @@ -1,9 +1,12 @@ package com.project.survey.ui.controlnet +import android.widget.ArrayAdapter import androidx.activity.viewModels +import androidx.appcompat.widget.ListPopupWindow import com.bingce.utils.ThreadPoolUtil import com.project.survey.R import com.project.survey.databinding.ActivitySpecialControlNetworkBinding +import com.project.survey.extend.setOnClickNoRepeatListener import com.project.survey.extend.smartDismiss import com.project.survey.logic.viewmodel.ControlNetViewModel import com.project.survey.model.ControlNetVersionBean @@ -36,11 +39,22 @@ class SpecialControlNetworkActivity : private var currentPage = 1 private var currentVersion: String? = null private var currentName: String? = null // 控制网名称 - private var versionList = ArrayList() + + // private var versionList = ArrayList() + private var versionNameList = + arrayListOf(SpecialControlNetworkVersionBean("版本号", "控制网名称")) + private var versionList = ArrayList() + + private val nameListPopupWindow by lazy { ListPopupWindow(this) } + private val versionListPopupWindow by lazy { ListPopupWindow(this) } + private var versionAdapter: ArrayAdapter? = null override fun initView() { immersionToolbar(mBinding.toolbar, R.string.dedicated_control_network) + nameListPopupWindow.anchorView = mBinding.tvSpinnerName + versionListPopupWindow.anchorView = mBinding.tvSpinnerVersion + mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this) // mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this)) mBinding.recyclerView.adapter = adapter @@ -53,12 +67,23 @@ class SpecialControlNetworkActivity : } // 版本号列表 viewModel.specialControlNetworkVersionResponse.observe(this) { - versionList.addAll(it) - versionList.add(0, SpecialControlNetworkVersionBean("版本号", "控制网名称")) - mBinding.spinnerName.setItems(versionList.map { v -> v.KZW_NAME }) - - val versionList = versionList[0].version_array.split(",").toList() - mBinding.spinnerVersion.setItems(versionList) + versionNameList.addAll(it) +// versionList.add(0, SpecialControlNetworkVersionBean("版本号", "控制网名称")) +// mBinding.spinnerName.setItems(versionList.map { v -> v.KZW_NAME }) + val nameAdapter = ArrayAdapter( + this, + android.R.layout.simple_list_item_1, + versionNameList.map { it.KZW_NAME }) + nameListPopupWindow.setAdapter(nameAdapter) + mBinding.tvSpinnerName.text = versionNameList[0].KZW_NAME + + versionList.clear() + versionList.addAll(versionNameList[0].version_array.split(",").toList()) + versionAdapter = + ArrayAdapter(this, android.R.layout.simple_list_item_1, versionList) + versionListPopupWindow.setAdapter(versionAdapter) + mBinding.tvSpinnerVersion.text = versionList[0] +// mBinding.spinnerVersion.setItems(versionList) } viewModel.controlNetworkListResponse.observe(this) { mBinding.smartRefreshLayout.smartDismiss() @@ -96,34 +121,65 @@ class SpecialControlNetworkActivity : override fun initListener() { // 控制网名称 - mBinding.spinnerName.setOnItemSelectedListener { view, position, id, item -> - val bean = item as String - currentName = if ("控制网名称" == bean) null else bean - - val versionList = versionList[position].version_array.split(",").toList() - mBinding.spinnerVersion.setItems(versionList) - currentVersion = if ("控制网名称" == bean) - null - else { - if (versionList.isEmpty()) null else versionList[0].toString() - } + mBinding.tvSpinnerName.setOnClickNoRepeatListener { + nameListPopupWindow.show() + } + nameListPopupWindow.setOnItemClickListener { adapterView, view, i, l -> + nameListPopupWindow.dismiss() + currentName = if (i == 0) null else versionNameList[i].KZW_NAME + mBinding.tvSpinnerName.text = currentName ?: "控制网名称" + + versionList.clear() + versionList.addAll(versionNameList[i].version_array.split(",").toList()) +// val versionList = versionList[position].version_array.split(",").toList() + versionAdapter?.notifyDataSetChanged() + currentVersion = + if (currentName == null) null else if (versionList.isEmpty()) null else versionList[0] + + mBinding.tvSpinnerVersion.text = currentVersion ?: "版本号" + currentPage = 1 fetchData() - ThreadPoolUtil.executeInMainDelay300 { - mBinding.spinnerName.collapse() - } } +// mBinding.spinnerName.setOnItemSelectedListener { view, position, id, item -> +// val bean = item as String +// currentName = if ("控制网名称" == bean) null else bean +// +// val versionList = versionList[position].version_array.split(",").toList() +// mBinding.spinnerVersion.setItems(versionList) +// currentVersion = if ("控制网名称" == bean) +// null +// else { +// if (versionList.isEmpty()) null else versionList[0].toString() +// } +// currentPage = 1 +// fetchData() +// ThreadPoolUtil.executeInMainDelay300 { +// mBinding.spinnerName.collapse() +// } +// } // 版本号 - mBinding.spinnerVersion.setOnItemSelectedListener { _, _, _, item -> - val version = item as String - currentVersion = - if ("版本号" == version) null else version + mBinding.tvSpinnerVersion.setOnClickNoRepeatListener { + versionListPopupWindow.show() + } + versionListPopupWindow.setOnItemClickListener { adapterView, view, i, l -> + versionListPopupWindow.dismiss() + currentVersion = if (i == 0) null else versionList[i] + mBinding.tvSpinnerVersion.text = versionList[i] + currentPage = 1 fetchData() - ThreadPoolUtil.executeInMainDelay300 { - mBinding.spinnerVersion.collapse() - } } +// mBinding.spinnerVersion.setOnItemSelectedListener { _, _, _, item -> +// val version = item as String +// currentVersion = +// if ("版本号" == version) null else version +// currentPage = 1 +// fetchData() +// ThreadPoolUtil.executeInMainDelay300 { +// mBinding.spinnerVersion.collapse() +// } +// } adapter.setOnItemClickListener { adapter, _, position -> adapter.getItem(position)?.let { bean -> ControlPointActivity.start(bean.KZW_NAME) diff --git a/app/src/main/res/layout/activity_first_control_network.xml b/app/src/main/res/layout/activity_first_control_network.xml index 7c839d1..5b11eb8 100644 --- a/app/src/main/res/layout/activity_first_control_network.xml +++ b/app/src/main/res/layout/activity_first_control_network.xml @@ -39,12 +39,23 @@ android:layout_marginTop="@dimen/sw_7dp" android:background="@drawable/bg_search"> - + android:textSize="@dimen/sw_11sp" + android:paddingHorizontal="@dimen/sw_16dp" + android:drawableEnd="@drawable/ms_ic_arrow_up" + tools:text="版本号" /> + + + + + + + diff --git a/app/src/main/res/layout/activity_special_control_network.xml b/app/src/main/res/layout/activity_special_control_network.xml index 8e7abf9..49c85a0 100644 --- a/app/src/main/res/layout/activity_special_control_network.xml +++ b/app/src/main/res/layout/activity_special_control_network.xml @@ -45,12 +45,22 @@ android:layout_weight="1" android:background="@drawable/bg_search"> - + android:textSize="@dimen/sw_11sp" + android:paddingHorizontal="@dimen/sw_16dp" + android:drawableEnd="@drawable/ms_ic_arrow_up" + tools:text="控制网名称" /> + + + + + + - + android:textSize="@dimen/sw_11sp" + android:paddingHorizontal="@dimen/sw_16dp" + android:drawableEnd="@drawable/ms_ic_arrow_up" + tools:text="版本号" /> + + + + + +