地址列表刷新完善

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 com.dhsd.glowner.bean.PostAddressBean
import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.POST import retrofit2.http.POST
import retrofit2.http.PUT import retrofit2.http.PUT
@ -120,6 +121,15 @@ interface Api {
fun updateAddress(@Body bean: PostAddressBean): Observable<CommonResponseBean<Any>> 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>>> * @return Observable<CommonResponseBean<OrderListBean<AddressBean>>>

View File

@ -7,6 +7,7 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
@ -59,9 +60,9 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
provinceCode = inAreaCode.subSequence(0, 3).toString().plus("000") provinceCode = inAreaCode.subSequence(0, 3).toString().plus("000")
cityCode = inAreaCode.subSequence(0, 4).toString().plus("00") cityCode = inAreaCode.subSequence(0, 4).toString().plus("00")
} }
if (addressId.isEmpty()){ if (addressId.isEmpty()) {
postAddressBean = inAddressBean postAddressBean = inAddressBean
}else{ } else {
postAddressBean?.run { postAddressBean?.run {
addressDetail = inAddressBean.addressDetail addressDetail = inAddressBean.addressDetail
areaCode = inAddressBean.areaCode areaCode = inAddressBean.areaCode
@ -86,7 +87,10 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
setTitleBar("地址信息", { finish() }, true, "地图选点") { setTitleBar("地址信息", { finish() }, true, "地图选点") {
launcher.launch(Intent(mContext, ChoiceAddressByMapActivity::class.java)) 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>( var datas = mutableListOf<WayBillBean>(
@ -151,7 +155,8 @@ class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
} }
override fun initDate() { override fun initDate() {
if (addressId.isNotEmpty()) {
if (!addressId.isNullOrEmpty()) {
DataManager.getInstance().getAddressDetail(addressId) DataManager.getInstance().getAddressDetail(addressId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .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.bean.AddressBean
import com.dhsd.glowner.databinding.ActivityAddressListBinding import com.dhsd.glowner.databinding.ActivityAddressListBinding
import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity 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.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener import com.dhsd.glowner.utils.OnLimitClickListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
@ -37,7 +38,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers
* @Description 地址列表 * @Description 地址列表
*/ */
class AddressListActivity : BaseActivity<ActivityAddressListBinding>(), class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
OnLimitClickListener , RefreshCallBack { OnLimitClickListener, RefreshCallBack {
private val launcher = private val launcher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
@ -73,13 +74,18 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
notifyDataSetChanged() notifyDataSetChanged()
} }
addOnItemChildClickListener(R.id.tvEdit){ adapter,_, position -> addOnItemChildClickListener(R.id.tvEdit) { adapter, _, position ->
val addressBean = adapter.items[position] val addressBean = adapter.items[position]
launcher.launch(Intent(mContext, AddressEditOrAddActivity::class.java).apply { launcher.launch(Intent(mContext, AddressEditOrAddActivity::class.java).apply {
putExtras(Bundle().apply { putString(AppConfig.ID, addressBean.addressId) }) putExtras(Bundle().apply { putString(AppConfig.ID, addressBean.addressId) })
}) })
} }
addOnItemChildClickListener(R.id.tvDel) { adapter, _, position ->
deleteAddress(adapter.items[position])
}
} }
btnOk.setOnClickListener(OnLimitClickHelper(this@AddressListActivity)) btnOk.setOnClickListener(OnLimitClickHelper(this@AddressListActivity))
} }
@ -90,13 +96,15 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
DataManager.getInstance().getAddressList() DataManager.getInstance().getAddressList()
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, .subscribe(
object : RxHttpCallBack<OrderListBean<AddressBean>>(binding.smartRefresh) { BaseObserver(mContext,
override fun onSuccess(t: CommonResponseBean<OrderListBean<AddressBean>>) { object : RxHttpCallBack<OrderListBean<AddressBean>>(binding.smartRefresh) {
super.onSuccess(t) override fun onSuccess(t: CommonResponseBean<OrderListBean<AddressBean>>) {
initList(t.data.rows) super.onSuccess(t)
} initList(t.data.rows)
})) }
})
)
} }
override fun onClick(view: View?) { override fun onClick(view: View?) {
@ -104,13 +112,20 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
when (view?.id) { when (view?.id) {
R.id.btnOk -> { R.id.btnOk -> {
launcher.launch(Intent(mContext, AddressEditOrAddActivity::class.java)) 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>) { private fun initList(rows: List<AddressBean>) {
if (rows.isEmpty()) { if (rows.isEmpty()) {
adapter.submitList(null) adapter.submitList(null)
@ -124,7 +139,20 @@ class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
} }
} }
override fun getRefreshDate(stat: Int, page: Int, count: Int) { private fun deleteAddress(data: AddressBean) {
initDate() 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" /> android:textSize="@dimen/sp_14" />
</LinearLayout> </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 <View
android:layout_width="@dimen/dp_1" android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_42" android:layout_height="@dimen/dp_42"