diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b467e84..efe7ad6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -122,6 +122,12 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden" /> + + (), addressId = it.getString(AppConfig.ID,"") } - -// var datas = mutableListOf( -// AddressBean(), -// AddressBean(), -// AddressBean() -// ) -// binding.recycler.run { -// layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) -// addItemDecoration( -// RecycleViewDivider( -// LinearLayout.VERTICAL, -// ConvertUtils.dp2px(14.0f), -// Color.TRANSPARENT -// ) -// ) -// adapter = SendGoodsAdapter() -// adapter as SendGoodsAdapter -// }.submitList(datas) - binding.run { tvSSQ.setOnClickListener(OnLimitClickHelper(this@AddressEditOrAddActivity)) tvClear.setOnClickListener { diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt new file mode 100644 index 0000000..52c9727 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/address/AddressOnlyEditActivity.kt @@ -0,0 +1,218 @@ +package com.dhsd.glowner.ui.address + +import BaseObserver +import DataManager +import RxHttpCallBack +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 +import androidx.appcompat.app.AppCompatActivity +import androidx.core.widget.addTextChangedListener +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.dahe.gldriver.base.AppConfig +import com.dahe.glex.bean.WayBillBean +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.utils.ToastUtils +import com.dahe.mylibrary.weight.SwitchView +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.SendGoodsAdapter +import com.dhsd.glowner.bean.AddressBean +import com.dhsd.glowner.bean.PostAddressBean +import com.dhsd.glowner.databinding.ActivityAddressEditBinding +import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity +import com.dhsd.glowner.utils.OnLimitClickHelper +import com.dhsd.glowner.utils.OnLimitClickListener +import com.google.gson.Gson +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName AddresEditActivity + * @Author john + * @Date 2024/2/4 10:44 + * @Description 新增装卸货地址或编辑->不保存数据库 + */ +class AddressOnlyEditActivity : BaseActivity(), + OnLimitClickListener { + private lateinit var addressBean: AddressBean + + private val launcher = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == AppCompatActivity.RESULT_OK) { + result.data?.extras?.let { + val postBean = it.getString(AppConfig.BEAN) + if (postBean != null) { + val inAddressBean = Gson().fromJson(postBean, PostAddressBean::class.java) + val inAreaCode = inAddressBean.areaCode + inAddressBean.run { + provinceCode = inAreaCode.subSequence(0, 3).toString().plus("000") + cityCode = inAreaCode.subSequence(0, 4).toString().plus("00") + } + + addressBean?.run { + addressDetail = inAddressBean.addressDetail + areaCode = inAddressBean.areaCode + area = inAddressBean.area + city = inAddressBean.city + province = inAddressBean.province + provinceCode = inAddressBean.provinceCode + cityCode = inAddressBean.cityCode + contactPerson = inAddressBean.contactPerson + contactNumber = inAddressBean.contactNumber + idCard = inAddressBean.idCard + } + + initViewByData(addressBean) + } + } + } + } + + + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("地址信息", { finish() }, true, "地图选点") { + launcher.launch(Intent(mContext, ChoiceAddressByMapActivity::class.java)) + } + + intent.extras?.let { + val string = it.getString(AppConfig.BEAN, "") + addressBean = Gson().fromJson(string, AddressBean::class.java) + if (::addressBean.isInitialized&&!TextUtils.isEmpty(addressBean.addressDetail)){ + initViewByData(addressBean) + } + } + + binding.run { + tvSSQ.setOnClickListener(OnLimitClickHelper(this@AddressOnlyEditActivity)) + tvClear.setOnClickListener { + etAddressDetail.setText("") + if (::addressBean.isInitialized && addressBean.addressDetail.isNotEmpty()) { + addressBean.addressDetail = "" + } + } + btnOk.setOnClickListener(OnLimitClickHelper(this@AddressOnlyEditActivity)) + + etAddressDetail.addTextChangedListener { text -> +// if (text?.length != 0) { +// val inputquery = InputtipsQuery(text, "") +// val inputTips = Inputtips(this, inputquery) +// } + } + + mySwitch.setOnStateChangedListener2 { + changeAddressType(it) + } + + } + + + } + + override fun onClick(view: View?) { + super.onClick(view) + when (view?.id) { + R.id.tvSSQ -> { + PickerUtils.getInstance().showAddress( + this + ) { province, city, county -> + binding.tvSSQ.text = """${province.name}-${city.name}-${county.name}""" + } + } + + R.id.btnOk -> { + submit() + } + } + } + + override fun initDate() { + } + + + /** + * 新增或编辑地址信息 + * + */ + private fun submit() { + + if (!::addressBean.isInitialized || addressBean.province.isEmpty()) { + showToast("请选择省市区") + return + } + if (addressBean.addressDetail.isEmpty()) { + showToast("请输入详细地址") + return + } + if (binding.etName.text.isEmpty() || binding.etPhone.text.isEmpty() || binding.etCom.text.isEmpty() || binding.etComNum.text.isEmpty()) { + showToast("请完善联系人信息") + return + } + + addressBean.run { + binding.run { + contactPerson = etName.text.toString() + contactNumber = etPhone.text.toString() + userType = if (mySwitch.isOpened) "1" else "0" + companyName = etCom.text.toString() + companyCode = etComNum.text.toString() + } + } + + setResult(Activity.RESULT_OK,Intent().apply { + putExtras(Bundle().apply { + putString(AppConfig.BEAN, Gson().toJson(addressBean)) + }) + }) + finish() + } + + private fun changeAddressType(isCom: Boolean) { + if (isCom) { + binding.run { + etCom.hint = "公司名称" + etComNum.hint = "社会统一代码" + } + } else { + binding.run { + etCom.hint = "货主名称" + etComNum.hint = "身份证号" + } + } + } + + + /** + * 渲染页面 + * @param data PostAddressBean + */ + private fun initViewByData(data: AddressBean?) { + data?.run { + binding.run { + binding.run { + tvSSQ.text = + """${data.province}-${data.city}-${data.area}""" + etAddressDetail.setText(data.addressDetail) + etName.setText(data.contactPerson) + etPhone.setText(data.contactNumber) + etCom.setText(data.companyName) + etComNum.setText(if (data.userType == "1") data.companyCode else data.idCard) + etComNum.hint = if (data.userType == "1") "社会统一代码" else "身份证号" + mySwitch.isOpened = data.userType == "1" + } + } + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/address/ChoiceAddressByMapActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/address/ChoiceAddressByMapActivity.kt index 5dc1ec5..e6d2276 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/address/ChoiceAddressByMapActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/address/ChoiceAddressByMapActivity.kt @@ -2,6 +2,7 @@ package com.dhsd.glowner.ui.address import android.content.Intent import android.os.Bundle +import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity import androidx.core.widget.addTextChangedListener import androidx.recyclerview.widget.LinearLayoutManager @@ -68,9 +69,11 @@ class ChoiceAddressByMapActivity : BaseActivity() { isMul = it.getBoolean(AppConfig.IS_MUL, false) } setStatusBarColor(R.color.white) - setTitleBar( if (isMul) "一装多卸" else "普通装货", true) + setTitleBar(if (isMul) "一装多卸" else "普通装货", true) binding.run { llAdd.visibility = if (isMul) View.VISIBLE else View.GONE @@ -264,7 +266,19 @@ class SendGoodsActivity : BaseActivity() { adapter as SendGoodsAdapter }.apply { isStateViewEnable = true - setOnItemClickListener { adapter, view, position -> + + addOnItemChildClickListener(R.id.llContent) { adapter, _, position -> + ActivityUtils.startActivityForResult( + this@SendGoodsActivity, + AddressOnlyEditActivity::class.java, + Bundle().apply { + putString(AppConfig.BEAN, Gson().toJson(adapter.items[position])) + }, + position + ) + } + + addOnItemChildClickListener(R.id.tvSelAddress) { _, _, position -> ActivityUtils.startActivityForResult( this@SendGoodsActivity, AddressListActivity::class.java, @@ -275,6 +289,8 @@ class SendGoodsActivity : BaseActivity() { addOnItemChildClickListener(R.id.tvDel) { adapter, _, position -> adapter.removeAt(position) } + + } adapter.submitList(datas) } diff --git a/app/src/main/res/layout/item_send_goods.xml b/app/src/main/res/layout/item_send_goods.xml index b46e0f9..ecfef01 100644 --- a/app/src/main/res/layout/item_send_goods.xml +++ b/app/src/main/res/layout/item_send_goods.xml @@ -25,6 +25,7 @@ android:padding="@dimen/dp_11">