diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt new file mode 100644 index 0000000..d8d28dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt @@ -0,0 +1,43 @@ +package com.casic.xz.meterage.view.search + +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import kotlinx.android.synthetic.main.activity_search_entrust.* +import kotlinx.android.synthetic.main.include_search_input_title.* + +/** + * 搜索委托书需求 + * */ +class SearchEntrustActivity : KotlinBaseActivity() { + + override fun initData() { + + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + searchTextView.setOnClickListener { + navigatePageTo(inputView.text.toString()) + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + inputView.hint = "查询委托书编号" + } + + override fun onResume() { + super.onResume() + //TODO 流式布局显示查询记录Tag? + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt new file mode 100644 index 0000000..d8d28dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt @@ -0,0 +1,43 @@ +package com.casic.xz.meterage.view.search + +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import kotlinx.android.synthetic.main.activity_search_entrust.* +import kotlinx.android.synthetic.main.include_search_input_title.* + +/** + * 搜索委托书需求 + * */ +class SearchEntrustActivity : KotlinBaseActivity() { + + override fun initData() { + + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + searchTextView.setOnClickListener { + navigatePageTo(inputView.text.toString()) + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + inputView.hint = "查询委托书编号" + } + + override fun onResume() { + super.onResume() + //TODO 流式布局显示查询记录Tag? + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt new file mode 100644 index 0000000..8c0d597 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -0,0 +1,156 @@ +package com.casic.xz.meterage.view.search + +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.EntrustAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.model.EntrustListModel +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.vm.EntrustViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_search_entrust_reasult.* +import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* + +class SearchEntrustResultActivity : KotlinBaseActivity() { + + private lateinit var param: String + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var entrustViewModel: EntrustViewModel + private lateinit var entrustAdapter: EntrustAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initData() { + param = intent.getStringExtra(Constant.INTENT_PARAM)!! + + weakReferenceHandler = WeakReferenceHandler(callback) + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.entrustList.observe(this) { + if (it.code == 200) { + val dataRows = it.data?.rows!! + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows + entrustLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows.size == 0) { + "到底了,别拉了".show(this) + } + dataBeans.addAll(dataRows) + entrustLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows + } + } + weakReferenceHandler.sendEmptyMessage(2023022401) + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + entrustLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + getEntrustListByPage() + } + + entrustLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + getEntrustListByPage() + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust_reasult + + override fun observeRequestState() { + entrustViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "查询结果" + } + + override fun onResume() { + super.onResume() + pageIndex = 1 + getEntrustListByPage() + } + + private fun getEntrustListByPage() { + entrustViewModel.getEntrustList( + "", + "", + "", + param, + "", + "", + "", + "", + arrayOf(), + pageIndex + ) + } + + private val callback = Handler.Callback { + when (it.what) { + 2023022401 -> { + if (isRefresh || isLoadMore) { + entrustAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("无新的委托需求") { + pageIndex = 1 + getEntrustListByPage() + } + } else { + emptyView!!.hide() + entrustAdapter = EntrustAdapter(this, dataBeans) + entrustRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + entrustRecyclerView.adapter = entrustAdapter + entrustAdapter.setOnItemClickListener(object : + EntrustAdapter.OnItemClickListener { + override fun onStateViewClicked(position: Int) { + val rowsModel = dataBeans[position] +// navigatePageTo(rowsModel.id) + } + + override fun onPhoneViewClicked(position: Int) { + + } + }) + } + } + } + } + true + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt new file mode 100644 index 0000000..d8d28dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt @@ -0,0 +1,43 @@ +package com.casic.xz.meterage.view.search + +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import kotlinx.android.synthetic.main.activity_search_entrust.* +import kotlinx.android.synthetic.main.include_search_input_title.* + +/** + * 搜索委托书需求 + * */ +class SearchEntrustActivity : KotlinBaseActivity() { + + override fun initData() { + + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + searchTextView.setOnClickListener { + navigatePageTo(inputView.text.toString()) + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + inputView.hint = "查询委托书编号" + } + + override fun onResume() { + super.onResume() + //TODO 流式布局显示查询记录Tag? + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt new file mode 100644 index 0000000..8c0d597 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -0,0 +1,156 @@ +package com.casic.xz.meterage.view.search + +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.EntrustAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.model.EntrustListModel +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.vm.EntrustViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_search_entrust_reasult.* +import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* + +class SearchEntrustResultActivity : KotlinBaseActivity() { + + private lateinit var param: String + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var entrustViewModel: EntrustViewModel + private lateinit var entrustAdapter: EntrustAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initData() { + param = intent.getStringExtra(Constant.INTENT_PARAM)!! + + weakReferenceHandler = WeakReferenceHandler(callback) + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.entrustList.observe(this) { + if (it.code == 200) { + val dataRows = it.data?.rows!! + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows + entrustLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows.size == 0) { + "到底了,别拉了".show(this) + } + dataBeans.addAll(dataRows) + entrustLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows + } + } + weakReferenceHandler.sendEmptyMessage(2023022401) + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + entrustLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + getEntrustListByPage() + } + + entrustLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + getEntrustListByPage() + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust_reasult + + override fun observeRequestState() { + entrustViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "查询结果" + } + + override fun onResume() { + super.onResume() + pageIndex = 1 + getEntrustListByPage() + } + + private fun getEntrustListByPage() { + entrustViewModel.getEntrustList( + "", + "", + "", + param, + "", + "", + "", + "", + arrayOf(), + pageIndex + ) + } + + private val callback = Handler.Callback { + when (it.what) { + 2023022401 -> { + if (isRefresh || isLoadMore) { + entrustAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("无新的委托需求") { + pageIndex = 1 + getEntrustListByPage() + } + } else { + emptyView!!.hide() + entrustAdapter = EntrustAdapter(this, dataBeans) + entrustRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + entrustRecyclerView.adapter = entrustAdapter + entrustAdapter.setOnItemClickListener(object : + EntrustAdapter.OnItemClickListener { + override fun onStateViewClicked(position: Int) { + val rowsModel = dataBeans[position] +// navigatePageTo(rowsModel.id) + } + + override fun onPhoneViewClicked(position: Int) { + + } + }) + } + } + } + } + true + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_entrust.xml b/app/src/main/res/layout/activity_entrust.xml index 52cdec6..c0f5b9a 100644 --- a/app/src/main/res/layout/activity_entrust.xml +++ b/app/src/main/res/layout/activity_entrust.xml @@ -24,7 +24,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" - android:layout_toStartOf="@id/addImageView" + android:layout_toStartOf="@id/searchImageView" android:layout_toEndOf="@id/leftBackView" android:fontFamily="sans-serif-medium" android:gravity="center" @@ -34,20 +34,20 @@ android:textSize="@dimen/sp_16" /> + android:src="@drawable/ic_plus" /> + android:src="@drawable/ic_search" /> + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt new file mode 100644 index 0000000..d8d28dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt @@ -0,0 +1,43 @@ +package com.casic.xz.meterage.view.search + +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import kotlinx.android.synthetic.main.activity_search_entrust.* +import kotlinx.android.synthetic.main.include_search_input_title.* + +/** + * 搜索委托书需求 + * */ +class SearchEntrustActivity : KotlinBaseActivity() { + + override fun initData() { + + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + searchTextView.setOnClickListener { + navigatePageTo(inputView.text.toString()) + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + inputView.hint = "查询委托书编号" + } + + override fun onResume() { + super.onResume() + //TODO 流式布局显示查询记录Tag? + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt new file mode 100644 index 0000000..8c0d597 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -0,0 +1,156 @@ +package com.casic.xz.meterage.view.search + +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.EntrustAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.model.EntrustListModel +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.vm.EntrustViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_search_entrust_reasult.* +import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* + +class SearchEntrustResultActivity : KotlinBaseActivity() { + + private lateinit var param: String + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var entrustViewModel: EntrustViewModel + private lateinit var entrustAdapter: EntrustAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initData() { + param = intent.getStringExtra(Constant.INTENT_PARAM)!! + + weakReferenceHandler = WeakReferenceHandler(callback) + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.entrustList.observe(this) { + if (it.code == 200) { + val dataRows = it.data?.rows!! + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows + entrustLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows.size == 0) { + "到底了,别拉了".show(this) + } + dataBeans.addAll(dataRows) + entrustLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows + } + } + weakReferenceHandler.sendEmptyMessage(2023022401) + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + entrustLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + getEntrustListByPage() + } + + entrustLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + getEntrustListByPage() + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust_reasult + + override fun observeRequestState() { + entrustViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "查询结果" + } + + override fun onResume() { + super.onResume() + pageIndex = 1 + getEntrustListByPage() + } + + private fun getEntrustListByPage() { + entrustViewModel.getEntrustList( + "", + "", + "", + param, + "", + "", + "", + "", + arrayOf(), + pageIndex + ) + } + + private val callback = Handler.Callback { + when (it.what) { + 2023022401 -> { + if (isRefresh || isLoadMore) { + entrustAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("无新的委托需求") { + pageIndex = 1 + getEntrustListByPage() + } + } else { + emptyView!!.hide() + entrustAdapter = EntrustAdapter(this, dataBeans) + entrustRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + entrustRecyclerView.adapter = entrustAdapter + entrustAdapter.setOnItemClickListener(object : + EntrustAdapter.OnItemClickListener { + override fun onStateViewClicked(position: Int) { + val rowsModel = dataBeans[position] +// navigatePageTo(rowsModel.id) + } + + override fun onPhoneViewClicked(position: Int) { + + } + }) + } + } + } + } + true + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_entrust.xml b/app/src/main/res/layout/activity_entrust.xml index 52cdec6..c0f5b9a 100644 --- a/app/src/main/res/layout/activity_entrust.xml +++ b/app/src/main/res/layout/activity_entrust.xml @@ -24,7 +24,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" - android:layout_toStartOf="@id/addImageView" + android:layout_toStartOf="@id/searchImageView" android:layout_toEndOf="@id/leftBackView" android:fontFamily="sans-serif-medium" android:gravity="center" @@ -34,20 +34,20 @@ android:textSize="@dimen/sp_16" /> + android:src="@drawable/ic_plus" /> + android:src="@drawable/ic_search" /> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7b832d6..a535150 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,6 +69,8 @@ + + + private val context: Context, + private val dataRows: MutableList ) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) @@ -45,7 +47,11 @@ //绑定事件 holder.entrustStateView.setOnClickListener { - listener?.onStateViewClicked(position) + if (rowsBean.status == "1" || rowsBean.status == "3") { + "当前状态不可编辑".show(context) + } else { + listener?.onStateViewClicked(position) + } } holder.customerPhoneView.setOnClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt index fcacf35..286992f 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt @@ -9,9 +9,11 @@ import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.EntrustListModel import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.view.search.SearchEntrustActivity import com.casic.xz.meterage.vm.EntrustViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.vm.LoadState @@ -61,7 +63,7 @@ override fun initEvent() { leftBackView.setOnClickListener { finish() } searchImageView.setOnClickListener { -// navigatePageTo() + navigatePageTo() } addImageView.setOnClickListener { @@ -112,8 +114,8 @@ "", "", "", - "0", - "0", + "", + "", arrayOf(), pageIndex ) diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt new file mode 100644 index 0000000..d8d28dc --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustActivity.kt @@ -0,0 +1,43 @@ +package com.casic.xz.meterage.view.search + +import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.navigatePageTo +import kotlinx.android.synthetic.main.activity_search_entrust.* +import kotlinx.android.synthetic.main.include_search_input_title.* + +/** + * 搜索委托书需求 + * */ +class SearchEntrustActivity : KotlinBaseActivity() { + + override fun initData() { + + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + searchTextView.setOnClickListener { + navigatePageTo(inputView.text.toString()) + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + inputView.hint = "查询委托书编号" + } + + override fun onResume() { + super.onResume() + //TODO 流式布局显示查询记录Tag? + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt new file mode 100644 index 0000000..8c0d597 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt @@ -0,0 +1,156 @@ +package com.casic.xz.meterage.view.search + +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.xz.meterage.R +import com.casic.xz.meterage.adapter.EntrustAdapter +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.casic.xz.meterage.extensions.showEmptyPage +import com.casic.xz.meterage.model.EntrustListModel +import com.casic.xz.meterage.utils.LoadingDialogHub +import com.casic.xz.meterage.vm.EntrustViewModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.Constant +import com.pengxh.kt.lite.utils.WeakReferenceHandler +import com.pengxh.kt.lite.vm.LoadState +import kotlinx.android.synthetic.main.activity_search_entrust_reasult.* +import kotlinx.android.synthetic.main.include_base_title.* +import kotlinx.android.synthetic.main.include_empty_view.* + +class SearchEntrustResultActivity : KotlinBaseActivity() { + + private lateinit var param: String + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var entrustViewModel: EntrustViewModel + private lateinit var entrustAdapter: EntrustAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initData() { + param = intent.getStringExtra(Constant.INTENT_PARAM)!! + + weakReferenceHandler = WeakReferenceHandler(callback) + entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java] + entrustViewModel.entrustList.observe(this) { + if (it.code == 200) { + val dataRows = it.data?.rows!! + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows + entrustLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows.size == 0) { + "到底了,别拉了".show(this) + } + dataBeans.addAll(dataRows) + entrustLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows + } + } + weakReferenceHandler.sendEmptyMessage(2023022401) + } + } + } + + override fun initEvent() { + leftBackView.setOnClickListener { finish() } + + entrustLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + getEntrustListByPage() + } + + entrustLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + getEntrustListByPage() + } + } + + override fun initLayoutView(): Int = R.layout.activity_search_entrust_reasult + + override fun observeRequestState() { + entrustViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...") + else -> LoadingDialogHub.dismiss() + } + } + } + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + titleView.text = "查询结果" + } + + override fun onResume() { + super.onResume() + pageIndex = 1 + getEntrustListByPage() + } + + private fun getEntrustListByPage() { + entrustViewModel.getEntrustList( + "", + "", + "", + param, + "", + "", + "", + "", + arrayOf(), + pageIndex + ) + } + + private val callback = Handler.Callback { + when (it.what) { + 2023022401 -> { + if (isRefresh || isLoadMore) { + entrustAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("无新的委托需求") { + pageIndex = 1 + getEntrustListByPage() + } + } else { + emptyView!!.hide() + entrustAdapter = EntrustAdapter(this, dataBeans) + entrustRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + entrustRecyclerView.adapter = entrustAdapter + entrustAdapter.setOnItemClickListener(object : + EntrustAdapter.OnItemClickListener { + override fun onStateViewClicked(position: Int) { + val rowsModel = dataBeans[position] +// navigatePageTo(rowsModel.id) + } + + override fun onPhoneViewClicked(position: Int) { + + } + }) + } + } + } + } + true + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_entrust.xml b/app/src/main/res/layout/activity_entrust.xml index 52cdec6..c0f5b9a 100644 --- a/app/src/main/res/layout/activity_entrust.xml +++ b/app/src/main/res/layout/activity_entrust.xml @@ -24,7 +24,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" - android:layout_toStartOf="@id/addImageView" + android:layout_toStartOf="@id/searchImageView" android:layout_toEndOf="@id/leftBackView" android:fontFamily="sans-serif-medium" android:gravity="center" @@ -34,20 +34,20 @@ android:textSize="@dimen/sp_16" /> + android:src="@drawable/ic_plus" /> + android:src="@drawable/ic_search" /> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_search_entrust_reasult.xml b/app/src/main/res/layout/activity_search_entrust_reasult.xml new file mode 100644 index 0000000..0a53bb2 --- /dev/null +++ b/app/src/main/res/layout/activity_search_entrust_reasult.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file