地址列表刷新完善

This commit is contained in:
lijia 2024-10-31 15:51:15 +08:00
parent 9ab96216c3
commit 56c784466c
4 changed files with 73 additions and 18 deletions

View File

@ -8,6 +8,7 @@ import com.dhsd.glowner.bean.LoginBean
import com.dhsd.glowner.bean.PostAddressBean
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.PUT
@ -120,6 +121,15 @@ interface Api {
fun updateAddress(@Body bean: PostAddressBean): Observable<CommonResponseBean<Any>>
/**
* 删除货主常用地址
* @param addressIds String
* @return Observable<CommonResponseBean<Any>>
*/
@DELETE(BASE_URL+"devApi/business/shipper/common/address/{addressIds}")
fun deleteAddress(@Path("addressIds") addressIds:String): Observable<CommonResponseBean<Any>>
/**
* 获取地址列表
* @return Observable<CommonResponseBean<OrderListBean<AddressBean>>>

View File

@ -7,6 +7,7 @@ import android.app.Activity
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.text.TextUtils
import android.view.View
import android.widget.LinearLayout
import androidx.activity.result.contract.ActivityResultContracts
@ -59,9 +60,9 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
provinceCode = inAreaCode.subSequence(0, 3).toString().plus("000")
cityCode = inAreaCode.subSequence(0, 4).toString().plus("00")
}
if (addressId.isEmpty()){
if (addressId.isEmpty()) {
postAddressBean = inAddressBean
}else{
} else {
postAddressBean?.run {
addressDetail = inAddressBean.addressDetail
areaCode = inAddressBean.areaCode
@ -86,7 +87,10 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
setTitleBar("地址信息", { finish() }, true, "地图选点") {
launcher.launch(Intent(mContext, ChoiceAddressByMapActivity::class.java))
}
addressId = intent.extras?.getString(AppConfig.ID, "").toString()
intent.extras?.let {
addressId = it.getString(AppConfig.ID,"")
}
var datas = mutableListOf<WayBillBean>(
@ -151,7 +155,8 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
}
override fun initDate() {
if (addressId.isNotEmpty()) {
if (!addressId.isNullOrEmpty()) {
DataManager.getInstance().getAddressDetail(addressId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())

View File

@ -25,6 +25,7 @@ import com.dhsd.glowner.adapter.AddressAdapter
import com.dhsd.glowner.bean.AddressBean
import com.dhsd.glowner.databinding.ActivityAddressListBinding
import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity
import com.dhsd.glowner.utils.CommonPopUtils
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
@ -37,7 +38,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers
* @Description 地址列表
*/
class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
OnLimitClickListener , RefreshCallBack {
OnLimitClickListener, RefreshCallBack {
private val launcher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
@ -73,13 +74,18 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
notifyDataSetChanged()
}
addOnItemChildClickListener(R.id.tvEdit){ adapter,_, position ->
addOnItemChildClickListener(R.id.tvEdit) { adapter, _, position ->
val addressBean = adapter.items[position]
launcher.launch(Intent(mContext, AddressEditOrAddActivity::class.java).apply {
putExtras(Bundle().apply { putString(AppConfig.ID, addressBean.addressId) })
})
}
addOnItemChildClickListener(R.id.tvDel) { adapter, _, position ->
deleteAddress(adapter.items[position])
}
}
btnOk.setOnClickListener(OnLimitClickHelper(this@AddressListActivity))
}
@ -90,13 +96,15 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
DataManager.getInstance().getAddressList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext,
object : RxHttpCallBack<OrderListBean<AddressBean>>(binding.smartRefresh) {
override fun onSuccess(t: CommonResponseBean<OrderListBean<AddressBean>>) {
super.onSuccess(t)
initList(t.data.rows)
}
}))
.subscribe(
BaseObserver(mContext,
object : RxHttpCallBack<OrderListBean<AddressBean>>(binding.smartRefresh) {
override fun onSuccess(t: CommonResponseBean<OrderListBean<AddressBean>>) {
super.onSuccess(t)
initList(t.data.rows)
}
})
)
}
override fun onClick(view: View?) {
@ -104,13 +112,20 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
when (view?.id) {
R.id.btnOk -> {
launcher.launch(Intent(mContext, AddressEditOrAddActivity::class.java))
// ActivityUtils.startActivity(mContext,AddressEditOrAddActivity::class.java,Bundle().apply {
// putBoolean(AppConfig.IS_ADD,true)
// })
}
}
}
override fun getRefreshDate(stat: Int, page: Int, count: Int) {
if (stat == 2) {
binding.smartRefresh.finishLoadMoreWithNoMoreData()
return
}
initDate()
}
private fun initList(rows: List<AddressBean>) {
if (rows.isEmpty()) {
adapter.submitList(null)
@ -124,7 +139,20 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
}
}
override fun getRefreshDate(stat: Int, page: Int, count: Int) {
initDate()
private fun deleteAddress(data: AddressBean) {
CommonPopUtils.getInstance()
.showCommCenterPop(mContext, content = """确定删除 ${data.contactPerson} 的地址吗?""") {
DataManager.getInstance().deleteAddress(data.addressId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
binding.smartRefresh.autoRefresh()
initDate()
}
}))
}
}
}

View File

@ -42,6 +42,18 @@
android:textSize="@dimen/sp_14" />
</LinearLayout>
<TextView
android:id="@+id/tvDel"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_6"
android:text="删除"
android:textColor="@color/main_red"
android:textSize="@dimen/sp_14" />
<View
android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_42"