From 56c784466cb377eaed1bd5a6398b05660146c5f3 Mon Sep 17 00:00:00 2001 From: lijia Date: Thu, 31 Oct 2024 15:51:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=88=97=E8=A1=A8=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/dhsd/glowner/net/Api.kt | 10 ++++ .../ui/address/AddressEditOrAddActivity.kt | 13 +++-- .../glowner/ui/address/AddressListActivity.kt | 56 ++++++++++++++----- app/src/main/res/layout/item_address.xml | 12 ++++ 4 files changed, 73 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/dhsd/glowner/net/Api.kt b/app/src/main/java/com/dhsd/glowner/net/Api.kt index 1864373..746f348 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -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> + /** + * 删除货主常用地址 + * @param addressIds String + * @return Observable> + */ + @DELETE(BASE_URL+"devApi/business/shipper/common/address/{addressIds}") + fun deleteAddress(@Path("addressIds") addressIds:String): Observable> + + /** * 获取地址列表 * @return Observable>> diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt index b5ae3c4..99f276c 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/address/AddressEditOrAddActivity.kt @@ -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(), 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(), 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( @@ -151,7 +155,8 @@ class AddressEditOrAddActivity : BaseActivity(), } override fun initDate() { - if (addressId.isNotEmpty()) { + + if (!addressId.isNullOrEmpty()) { DataManager.getInstance().getAddressDetail(addressId) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/AddressListActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/AddressListActivity.kt index 0257015..c060e47 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/address/AddressListActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/address/AddressListActivity.kt @@ -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(), - OnLimitClickListener , RefreshCallBack { + OnLimitClickListener, RefreshCallBack { private val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> @@ -73,13 +74,18 @@ class AddressListActivity : BaseActivity(), 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(), DataManager.getInstance().getAddressList() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext, - object : RxHttpCallBack>(binding.smartRefresh) { - override fun onSuccess(t: CommonResponseBean>) { - super.onSuccess(t) - initList(t.data.rows) - } - })) + .subscribe( + BaseObserver(mContext, + object : RxHttpCallBack>(binding.smartRefresh) { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data.rows) + } + }) + ) } override fun onClick(view: View?) { @@ -104,13 +112,20 @@ class AddressListActivity : BaseActivity(), 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) { if (rows.isEmpty()) { adapter.submitList(null) @@ -124,7 +139,20 @@ class AddressListActivity : BaseActivity(), } } - 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() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + binding.smartRefresh.autoRefresh() + initDate() + } + })) + + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/item_address.xml b/app/src/main/res/layout/item_address.xml index 311df66..e3c1fcf 100644 --- a/app/src/main/res/layout/item_address.xml +++ b/app/src/main/res/layout/item_address.xml @@ -42,6 +42,18 @@ android:textSize="@dimen/sp_14" /> + + +