From a28abd9678dea0764eb6c4a95f8ac507ed85eb6d Mon Sep 17 00:00:00 2001 From: chenglifeng Date: Thu, 7 Nov 2024 18:47:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B=EF=BC=8C?= =?UTF-8?q?=E5=B7=B2=E5=8A=9E=E7=90=86=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E2=80=9C=E6=9C=AA=E5=AE=8C=E7=BB=93=E3=80=81=E5=B7=B2=E5=AE=8C?= =?UTF-8?q?=E7=BB=93=E2=80=9D=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/viewmodel/ProjectViewModel.kt | 19 +++--- .../java/com/project/survey/network/Api.kt | 5 +- .../survey/ui/approval/ApprovalActivity.kt | 61 ++++++++++++++++--- .../survey/ui/lofting/LoftingListActivity.kt | 3 - .../pointmeasure/PointMeasureListActivity.kt | 3 - .../main/res/color/text_color_complete.xml | 5 ++ .../res/drawable/bg_complete_selector.xml | 19 ++++++ app/src/main/res/layout/activity_approval.xml | 37 ++++++++++- app/src/main/res/values/strings.xml | 2 +- 9 files changed, 124 insertions(+), 30 deletions(-) create mode 100644 app/src/main/res/color/text_color_complete.xml create mode 100644 app/src/main/res/drawable/bg_complete_selector.xml 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 02a22df..8fb7606 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 @@ -12,6 +12,7 @@ import com.project.survey.constants.Constants import com.project.survey.constants.SPConstants import com.project.survey.logic.bean.ListResult import com.project.survey.model.ApprovalBean +import com.project.survey.model.ApprovalResponse import com.project.survey.model.InspectionReportBean import com.project.survey.model.LoftingBean import com.project.survey.model.LoftingPointBean @@ -45,18 +46,19 @@ class ProjectViewModel : BaseViewModel() { } } - val workTaskListResponse: LiveData> + val workTaskListResponse: LiveData get() = _workTaskListResponse - private val _workTaskListResponse = MutableLiveData>() + private val _workTaskListResponse = MutableLiveData() /** * 获取流程审批列表 + * @param end 0,未完结;1,已完结 */ - fun fetchWorkTask(type: String, page: Int = 1) { + fun fetchWorkTask(type: String, userName: String?, end: Int?, page: Int = 1) { launch { - val res = api.fetchWorkTask(type = type, page = page) + val res = api.fetchWorkTask(type = type, userName = userName, end = end, page = page) if (res.success) { - _workTaskListResponse.postValue(res.data.data.rows) + _workTaskListResponse.postValue(res.data) } } } @@ -71,9 +73,9 @@ class ProjectViewModel : BaseViewModel() { fun fetchMeasureDataList(type: String, page: Int, keyword: String) { launch { val query = if (type == Constants.TYPE_BD_CLJH) - "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"施工单位APP上开展测量工作\"},{\"type\":\"and\",\"value\":[{\"code\":\"CLJH_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"CLJH_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" + "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"计划发起人提交成果\"},{\"type\":\"and\",\"value\":[{\"code\":\"CLJH_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"CLJH_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" else - "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"施工单位APP上开展测量工作\"},{\"type\":\"and\",\"value\":[{\"code\":\"GCJL_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"GCJL_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" + "[{\"code\":\"SY_CURRENTTASK\",\"type\":\"=\",\"value\":\"计划发起人提交成果\"},{\"type\":\"and\",\"value\":[{\"code\":\"GCJL_LCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"GCJL_BDLSH\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DWGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FBGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_FXGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"BD_FBFXPZ_DYGCMC\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"}]}]" val res = api.fetchMeasureDataList( @@ -190,7 +192,8 @@ class ProjectViewModel : BaseViewModel() { */ fun fetchLoftingList(keyword: String) { launch { - val query = "[{\"code\":\"ZYLB_ZYLBZT_NAME\",\"type\":\"=\",\"value\":\"执行中\"},{\"type\":\"and\",\"value\":[{\"code\":\"ZYLB_ZY_NAME\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"ZYLB_CLY\",\"type\":\"like\",\"value\":\"${keyword}\"}]}]" + val query = + "[{\"code\":\"ZYLB_ZYLBZT_NAME\",\"type\":\"=\",\"value\":\"执行中\"},{\"type\":\"and\",\"value\":[{\"code\":\"ZYLB_ZY_NAME\",\"type\":\"like\",\"value\":\"${keyword}\",\"cn\":\"or\"},{\"code\":\"ZYLB_CLY\",\"type\":\"like\",\"value\":\"${keyword}\"}]}]" val res = api.fetchLoftingList(j_qurey = query) if (res.success) { _loftingBeanListResponse.postValue(res.data) 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 c5e2109..4774798 100644 --- a/app/src/main/java/com/project/survey/network/Api.kt +++ b/app/src/main/java/com/project/survey/network/Api.kt @@ -85,9 +85,10 @@ interface Api { @FormUrlEncoded @POST("je/workflow/currentUserTask/getTask") suspend fun fetchWorkTask( - @Header("Projectid") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), + @Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), @Field("type") type: String, -// @Field("userName") userName: String = "", + @Field("userName") userName: String?, + @Field("end") end: Int?, @Field("page") page: Int, @Field("limit") limit: Int = 30, ): HttpResult 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 7f1f25c..1f640d4 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 @@ -7,6 +7,8 @@ import com.project.survey.BuildConfig import com.project.survey.R import com.project.survey.constants.SPConstants import com.project.survey.databinding.ActivityApprovalBinding +import com.project.survey.extend.isVisibleOrGone +import com.project.survey.extend.setOnClickNoRepeatListener import com.project.survey.extend.smartDismiss import com.project.survey.logic.viewmodel.ProjectViewModel import com.project.survey.ui.approval.adapter.ApprovalAdapter @@ -46,17 +48,26 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre private val adapter by lazy { ApprovalAdapter() } private var currentPage = 1 + private var searchContent: String? = null + private var end: Int? = null //type为PI_APPROVED(已办理)时生效,表示是否完结:0,未完结;1,已完结 override fun initView() { type = intent.getStringExtra(TYPE) ?: "" immersionToolbar( mBinding.toolbar, when (type) { - PI_PREAPPROV -> "待处理" - PI_APPROVED -> "已处理" - else -> "已发起" + PI_PREAPPROV -> R.string.to_be_processed + PI_APPROVED -> R.string.processed + else -> R.string.initiated } ) + // type为已办理时,显示 + mBinding.llScreen.isVisibleOrGone(type == PI_APPROVED) + end = if (type == PI_APPROVED) { + mBinding.tvUncompleted.isSelected = true + mBinding.tvCompleted.isSelected = false + 0 + } else null // val beginTransaction = supportFragmentManager.beginTransaction() // val fragemnt = when (type) { // PI_PREAPPROV -> ApprovalWaitFragment() @@ -82,19 +93,27 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre viewModel.workTaskListResponse.observe(this) { mBinding.smartRefreshLayout.smartDismiss() if (currentPage == 1) { - adapter.submitList(it, type) - if (it.isEmpty()) { + adapter.submitList(it.data.rows, type) + if (it.data.rows.isEmpty()) { mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() adapter.setStateViewLayout(this, R.layout.layout_no_data) } else { - currentPage++ + if (adapter.itemCount < it.data.totalCount) { + currentPage++ + } else { + mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() + } } } else { - if (it.isEmpty()) { + if (it.data.rows.isEmpty()) { mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() } else { - adapter.addAll(it) - currentPage++ + if (adapter.itemCount < it.data.totalCount) { + adapter.addAll(it.data.rows) + currentPage++ + } else { + mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() + } } } } @@ -110,7 +129,7 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre } private fun fetchData() { - viewModel.fetchWorkTask(type) + viewModel.fetchWorkTask(type, searchContent, end, currentPage) } override fun onRefresh(refreshLayout: RefreshLayout) { @@ -123,6 +142,28 @@ class ApprovalActivity : BaseBindingActivity(), OnRefre } override fun initListener() { + // 搜索 + mBinding.searchWidget.setOnEditorSearchListener { + searchContent = it + currentPage = 1 + fetchData() + } + // 未完结 + mBinding.tvUncompleted.setOnClickNoRepeatListener { + end = 0 + mBinding.tvUncompleted.isSelected = true + mBinding.tvCompleted.isSelected = false + currentPage = 1 + fetchData() + } + // 已完结 + mBinding.tvCompleted.setOnClickNoRepeatListener { + end = 1 + mBinding.tvUncompleted.isSelected = false + mBinding.tvCompleted.isSelected = true + currentPage = 1 + fetchData() + } 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 diff --git a/app/src/main/java/com/project/survey/ui/lofting/LoftingListActivity.kt b/app/src/main/java/com/project/survey/ui/lofting/LoftingListActivity.kt index 2ee43b6..ca30e91 100644 --- a/app/src/main/java/com/project/survey/ui/lofting/LoftingListActivity.kt +++ b/app/src/main/java/com/project/survey/ui/lofting/LoftingListActivity.kt @@ -38,10 +38,8 @@ class LoftingListActivity : BaseBindingActivity() { override fun initData() { viewModel.errorResponse.observe(this) { toast(it) - dismissLoadingDialog() } viewModel.loftingBeanListResponse.observe(this) { - dismissLoadingDialog() adapter.submitList(it.rows) } @@ -52,7 +50,6 @@ class LoftingListActivity : BaseBindingActivity() { // 搜索 mBinding.searchWidget.setOnEditorSearchListener { searchContent = it - showLoadingDialog() fetchData() } diff --git a/app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt b/app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt index 36d00fb..2300921 100644 --- a/app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt +++ b/app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt @@ -70,12 +70,10 @@ class PointMeasureListActivity : BaseBindingActivity + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_complete_selector.xml b/app/src/main/res/drawable/bg_complete_selector.xml new file mode 100644 index 0000000..b95752d --- /dev/null +++ b/app/src/main/res/drawable/bg_complete_selector.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ 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 1f65a56..ac101c0 100644 --- a/app/src/main/res/layout/activity_approval.xml +++ b/app/src/main/res/layout/activity_approval.xml @@ -6,9 +6,6 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 29717f0..197cf65 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,7 +10,7 @@ 流程审批 待办理 已办理 - 已发起 + 所有流程 工程控制网 首级控制网 专用控制网