diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e39fc97..a47a4de 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -249,6 +249,12 @@ + \ 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 984bcd1..a045a1b 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,6 +2,7 @@ package com.project.survey.logic.viewmodel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import com.project.survey.model.ApprovalBean import com.project.survey.model.ProjectBean import com.project.survey.network.RetrofitClient @@ -26,9 +27,9 @@ class ProjectViewModel : BaseViewModel() { } } - val workTaskListResponse: LiveData + val workTaskListResponse: LiveData> get() = _workTaskListResponse - private val _workTaskListResponse = MutableLiveData() + private val _workTaskListResponse = MutableLiveData>() /** * 获取流程审批列表 @@ -37,7 +38,7 @@ class ProjectViewModel : BaseViewModel() { launch { val res = api.fetchWorkTask(projectId, type, page) if (res.success) { - _workTaskListResponse.postValue(res.data) + _workTaskListResponse.postValue(res.data.data.rows) } } } diff --git a/app/src/main/java/com/project/survey/model/ApprovalBean.kt b/app/src/main/java/com/project/survey/model/ApprovalResponse.kt similarity index 51% rename from app/src/main/java/com/project/survey/model/ApprovalBean.kt rename to app/src/main/java/com/project/survey/model/ApprovalResponse.kt index 5786473..8547bf9 100644 --- a/app/src/main/java/com/project/survey/model/ApprovalBean.kt +++ b/app/src/main/java/com/project/survey/model/ApprovalResponse.kt @@ -1,6 +1,6 @@ package com.project.survey.model -data class ApprovalBean( +data class ApprovalResponse( val badges: Badge, val data: ApprovalData ) @@ -14,6 +14,18 @@ data class Badge( ) data class ApprovalData( - val rows: List, + val rows: List, val totalCount: Int +) + +data class ApprovalBean( + val id: String, + val title: String, + val context: String, + val collect: String, + val delay: String, + val submitTime: String, + val tableCode: String, + val funcCode: String, + val pkValue: String ) \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/network/Api.kt b/app/src/main/java/com/project/survey/network/Api.kt index a31d1dd..5d61f6c 100644 --- a/app/src/main/java/com/project/survey/network/Api.kt +++ b/app/src/main/java/com/project/survey/network/Api.kt @@ -1,5 +1,7 @@ package com.project.survey.network +import com.project.survey.model.ApprovalBean +import com.project.survey.model.ApprovalResponse import com.project.survey.model.LoginBean import com.project.survey.model.ProjectBean import retrofit2.http.Field @@ -77,7 +79,7 @@ interface Api { // @Field("userName") userName: String = "", @Field("page") page: Int, @Field("limit") limit: Int = 30, - ): HttpResult + ): 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 75a7030..6f91f26 100644 --- a/app/src/main/java/com/project/survey/ui/MainActivity.kt +++ b/app/src/main/java/com/project/survey/ui/MainActivity.kt @@ -61,18 +61,18 @@ class MainActivity : BaseBindingActivity() { arrayListOf( TabEntity( getString(R.string.tab_home_page), - R.drawable.icon_home_selected, - R.drawable.icon_home_unselected + R.drawable.icon_tab_home_selected, + R.drawable.icon_tab_home_unselected ), TabEntity( getString(R.string.tab_instrument), - R.drawable.icon_instrument_selected, - R.drawable.icon_instrument_unselected + R.drawable.icon_tab_instrument_selected, + R.drawable.icon_tab_instrument_unselected ), TabEntity( getString(R.string.tab_mine), - R.drawable.icon_me_selected, - R.drawable.icon_me_unselected + R.drawable.icon_tab_me_selected, + R.drawable.icon_tab_me_unselected ) ) ) 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 8a6b960..f0e6eb4 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 @@ -1,6 +1,10 @@ package com.project.survey.ui.approval +import android.net.Uri import androidx.activity.viewModels +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 @@ -10,6 +14,7 @@ import com.project.survey.ui.approval.adapter.ApprovalAdapter 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 /** @@ -61,11 +66,15 @@ class ApprovalActivity : BaseBindingActivity() { 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){ + } viewModel.workTaskListResponse.observe(this) { - adapter.submitList(emptyList()) + adapter.submitList(it, type) } viewModel.fetchWorkTask(SPUtils.getString(SPConstants.PROJECT_ID) ?: "", type) // if (type == PI_PREAPPROV) { @@ -80,7 +89,11 @@ class ApprovalActivity : BaseBindingActivity() { override fun initListener() { adapter.setOnItemClickListener { _, _, position -> adapter.getItem(position)?.let { bean -> - toast("item${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 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/approval/ApprovalInitiatedFragment.kt b/app/src/main/java/com/project/survey/ui/approval/ApprovalInitiatedFragment.kt index da93d4e..d34e142 100644 --- a/app/src/main/java/com/project/survey/ui/approval/ApprovalInitiatedFragment.kt +++ b/app/src/main/java/com/project/survey/ui/approval/ApprovalInitiatedFragment.kt @@ -5,7 +5,6 @@ import android.view.ViewGroup import com.project.survey.adapter.ApprovalInitatedAdapter import com.project.survey.databinding.FragmentApprovalBinding import com.project.survey.ui.base.BaseFragmentBinding -import com.project.survey.model.ApprovalBean import com.project.survey.widget.decoration.TransparentDividerDecoration /** diff --git a/app/src/main/java/com/project/survey/ui/approval/ApprovalProcessedFragment.kt b/app/src/main/java/com/project/survey/ui/approval/ApprovalProcessedFragment.kt index 2c19f82..536d01e 100644 --- a/app/src/main/java/com/project/survey/ui/approval/ApprovalProcessedFragment.kt +++ b/app/src/main/java/com/project/survey/ui/approval/ApprovalProcessedFragment.kt @@ -5,7 +5,6 @@ import android.view.ViewGroup import com.project.survey.adapter.ApprovalWaitAdapter import com.project.survey.databinding.FragmentApprovalBinding import com.project.survey.ui.base.BaseFragmentBinding -import com.project.survey.model.ApprovalBean import com.project.survey.widget.decoration.TransparentDividerDecoration /** diff --git a/app/src/main/java/com/project/survey/ui/approval/ApprovalWaitFragment.kt b/app/src/main/java/com/project/survey/ui/approval/ApprovalWaitFragment.kt index 7aeffea..764bf23 100644 --- a/app/src/main/java/com/project/survey/ui/approval/ApprovalWaitFragment.kt +++ b/app/src/main/java/com/project/survey/ui/approval/ApprovalWaitFragment.kt @@ -5,7 +5,6 @@ import android.view.ViewGroup import com.project.survey.adapter.ApprovalWaitAdapter import com.project.survey.databinding.FragmentApprovalBinding import com.project.survey.ui.base.BaseFragmentBinding -import com.project.survey.model.ApprovalBean import com.project.survey.widget.decoration.TransparentDividerDecoration /** diff --git a/app/src/main/java/com/project/survey/ui/approval/adapter/ApprovalAdapter.kt b/app/src/main/java/com/project/survey/ui/approval/adapter/ApprovalAdapter.kt index 9b7af07..b7482ce 100644 --- a/app/src/main/java/com/project/survey/ui/approval/adapter/ApprovalAdapter.kt +++ b/app/src/main/java/com/project/survey/ui/approval/adapter/ApprovalAdapter.kt @@ -9,11 +9,14 @@ import com.project.survey.databinding.ItemApprovalApprovedBinding import com.project.survey.databinding.ItemApprovalOwnerBinding import com.project.survey.extend.isVisibleOrGone import com.project.survey.model.ApprovalBean +import com.project.survey.ui.approval.ApprovalActivity class ApprovalAdapter : BaseMultiItemAdapter() { + private var type = ApprovalActivity.PI_PREAPPROV + init { - addItemType(TYPE_0, object : OnMultiItemAdapterListener { + addItemType(0, object : OnMultiItemAdapterListener { override fun onCreate( context: Context, parent: ViewGroup, @@ -26,8 +29,13 @@ class ApprovalAdapter : BaseMultiItemAdapter() { override fun onBind(holder: ItemPreapprovVH, position: Int, item: ApprovalBean?) { holder.binding.ivAgree.isVisibleOrGone(false) + item?.let { bean -> + holder.binding.tvName.text = bean.title + holder.binding.tvNo.text = bean.funcCode + holder.binding.tvTime.text = bean.submitTime + } } - }).addItemType(TYPE_1, object : OnMultiItemAdapterListener { + }).addItemType(1, object : OnMultiItemAdapterListener { override fun onCreate( context: Context, parent: ViewGroup, @@ -40,8 +48,13 @@ class ApprovalAdapter : BaseMultiItemAdapter() { override fun onBind(holder: ItemApprovedVH, position: Int, item: ApprovalBean?) { holder.binding.ivAgree.isVisibleOrGone(true) + item?.let { bean -> + holder.binding.tvName.text = bean.title + holder.binding.tvNo.text = bean.funcCode + holder.binding.tvTime.text = bean.submitTime + } } - }).addItemType(TYPE_2, object : OnMultiItemAdapterListener { + }).addItemType(2, object : OnMultiItemAdapterListener { override fun onCreate( context: Context, parent: ViewGroup, @@ -53,8 +66,25 @@ class ApprovalAdapter : BaseMultiItemAdapter() { } override fun onBind(holder: ItemOwnerVH, position: Int, item: ApprovalBean?) { + item?.let { bean -> + holder.binding.tvName.text = bean.title + holder.binding.tvNo.text = bean.funcCode + holder.binding.tvStartTime.text = bean.submitTime + holder.binding.tvEndTime.text = "" + } + } + }).onItemViewType { _, _ -> + when (type) { + ApprovalActivity.PI_PREAPPROV -> 0 + ApprovalActivity.PI_APPROVED -> 1 + else -> 2 } - }) + } + } + + fun submitList(list: List?, type: String) { + this.type = type + super.submitList(list) } class ItemPreapprovVH(val binding: ItemApprovalApprovedBinding) : @@ -66,10 +96,10 @@ class ApprovalAdapter : BaseMultiItemAdapter() { class ItemOwnerVH(val binding: ItemApprovalOwnerBinding) : RecyclerView.ViewHolder(binding.root) - companion object { - private const val TYPE_0 = 0 - private const val TYPE_1 = 1 - private const val TYPE_2 = 2 - } +// companion object { +// private const val TYPE_0 = 0 +// private const val TYPE_1 = 1 +// private const val TYPE_2 = 2 +// } } \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt index 930d7bc..94109d3 100644 --- a/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt +++ b/app/src/main/java/com/project/survey/ui/base/BaseBindingActivity.kt @@ -11,6 +11,7 @@ import androidx.viewbinding.ViewBinding import com.gyf.immersionbar.ImmersionBar import com.project.survey.R import com.project.survey.util.param.ParamUtil +import com.project.survey.widget.LoadingDialog import org.polaric.colorful.Colorful abstract class BaseBindingActivity : AppCompatActivity() { @@ -91,4 +92,21 @@ abstract class BaseBindingActivity : AppCompatActivity() { supportActionBar?.title = title } + private var loadingDialog: LoadingDialog? = null + + protected fun showLoadingDialog() { + if (loadingDialog == null) { + loadingDialog = LoadingDialog.Builder(this) + .setCancelable(true) + .setCancelOutside(true) + .create() + } + loadingDialog?.show() + } + + protected fun dismissLoadingDialog() { + if (loadingDialog?.isShowing == true) { + loadingDialog?.dismiss() + } + } } \ No newline at end of file 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 7e2e53f..874cdbb 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 @@ -39,7 +39,7 @@ class InstrumentFragment : BaseBindingFragment() { } override fun initData() { - mBinding.tvProject.text = "哈哈哈哈哈" +// mBinding.tvProject.text = "哈哈哈哈哈" } override fun initListener() { diff --git a/app/src/main/java/com/project/survey/widget/LoadingDialog.kt b/app/src/main/java/com/project/survey/widget/LoadingDialog.kt index 28d791e..a025c3f 100644 --- a/app/src/main/java/com/project/survey/widget/LoadingDialog.kt +++ b/app/src/main/java/com/project/survey/widget/LoadingDialog.kt @@ -10,7 +10,7 @@ import com.project.survey.extend.isVisibleOrGone class LoadingDialog @JvmOverloads constructor(context: Context) : Dialog(context, R.style.loading_dialog) { - inner class Builder(val context: Context) { + class Builder(val context: Context) { private var message = "" private var isCancelable = false private var isCancelOutside = false diff --git a/app/src/main/res/drawable-xhdpi/icon_home_selected.png b/app/src/main/res/drawable-xhdpi/icon_home_selected.png deleted file mode 100644 index 1467898..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_home_selected.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_home_unselected.png b/app/src/main/res/drawable-xhdpi/icon_home_unselected.png deleted file mode 100644 index 8176aea..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_home_unselected.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_instrument_selected.png b/app/src/main/res/drawable-xhdpi/icon_instrument_selected.png deleted file mode 100644 index 0843897..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_instrument_selected.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_instrument_unselected.png b/app/src/main/res/drawable-xhdpi/icon_instrument_unselected.png deleted file mode 100644 index 0446265..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_instrument_unselected.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_me_selected.png b/app/src/main/res/drawable-xhdpi/icon_me_selected.png deleted file mode 100644 index 138a982..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_me_selected.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_me_unselected.png b/app/src/main/res/drawable-xhdpi/icon_me_unselected.png deleted file mode 100644 index aad4106..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_me_unselected.png and /dev/null differ diff --git a/app/src/main/res/drawable/icon_tab_home_selected.xml b/app/src/main/res/drawable/icon_tab_home_selected.xml new file mode 100644 index 0000000..62c37a5 --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_home_selected.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/icon_tab_home_unselected.xml b/app/src/main/res/drawable/icon_tab_home_unselected.xml new file mode 100644 index 0000000..3f2f84f --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_home_unselected.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/icon_tab_instrument_selected.xml b/app/src/main/res/drawable/icon_tab_instrument_selected.xml new file mode 100644 index 0000000..d6f2d7b --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_instrument_selected.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/icon_tab_instrument_unselected.xml b/app/src/main/res/drawable/icon_tab_instrument_unselected.xml new file mode 100644 index 0000000..f09212c --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_instrument_unselected.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/icon_tab_me_selected.xml b/app/src/main/res/drawable/icon_tab_me_selected.xml new file mode 100644 index 0000000..43a12b7 --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_me_selected.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/icon_tab_me_unselected.xml b/app/src/main/res/drawable/icon_tab_me_unselected.xml new file mode 100644 index 0000000..7dd3f85 --- /dev/null +++ b/app/src/main/res/drawable/icon_tab_me_unselected.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index f5d8dde..99e6914 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -1,9 +1,9 @@ + app:layout_constraintTop_toTopOf="parent" + tools:text="请登录" /> + app:layout_constraintTop_toTopOf="parent" + tools:text="某工程" /> @@ -141,10 +141,10 @@ android:id="@+id/tvLoginOut" android:layout_width="match_parent" android:layout_height="48dp" - android:text="@string/login_out" android:layout_marginTop="8dp" - android:gravity="center" android:background="@color/white" + android:gravity="center" + android:text="@string/login_out" android:textColor="@color/text_color_20" android:textSize="15sp" /> @@ -152,7 +152,7 @@ android:id="@+id/tvVersion" android:layout_width="wrap_content" android:layout_height="wrap_content" - tools:text="1.0.0"/> + tools:text="1.0.0" /> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_no_data.xml b/app/src/main/res/layout/layout_no_data.xml new file mode 100644 index 0000000..c2afc58 --- /dev/null +++ b/app/src/main/res/layout/layout_no_data.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file