From 40697d72197cebed3eaf9c45d296f4a7a8f14838 Mon Sep 17 00:00:00 2001 From: lijia Date: Tue, 5 Nov 2024 10:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B4=A7-=E7=94=A8=E8=BD=A6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E8=A3=85=E8=B4=A7=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dhsd/glowner/base/AppConfig.kt | 2 + .../ui/home/activtiy/CarTypeActivity.kt | 15 +- .../ui/home/activtiy/GoodsInfoListActivity.kt | 4 +- .../ui/home/activtiy/GoodsListActivity.kt | 18 +-- .../ui/home/activtiy/SendGoodsActivity.kt | 17 ++- .../com/dhsd/glowner/utils/PickerUtils.kt | 144 ++++++++++++++++++ .../main/res/layout/activity_send_goods.xml | 22 ++- 7 files changed, 203 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/com/dhsd/glowner/utils/PickerUtils.kt diff --git a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt index 208d17a..e2eb424 100644 --- a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt +++ b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt @@ -11,6 +11,8 @@ object AppConfig { const val TIME = "DA_HE_TIME" const val ID = "DA_HE_ID" const val BEAN = "DA_HE_BEAN" + const val CX = "DA_HE_CX" + const val CC = "DA_HE_CC" const val IS_ADD = "DA_HE_IS_ADD" const val CAPTAIN_ID = "CAPTAIN_ID" const val PWD = "DA_HE_PHONE" diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/CarTypeActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/CarTypeActivity.kt index cab50e1..d590e71 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/CarTypeActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/CarTypeActivity.kt @@ -3,9 +3,11 @@ package com.dhsd.glowner.ui.home.activtiy import BaseObserver import DataManager import RxHttpCallBack +import android.content.Intent import android.os.Bundle import android.view.View import androidx.recyclerview.widget.GridLayoutManager +import com.dahe.gldriver.base.AppConfig import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.weight.FullyGridLayoutManager @@ -131,6 +133,17 @@ class CarTypeActivity : BaseActivity(), OnLimitClickList private fun subMint(){ val dataCc = adapterCc.items.filter { it.isCheck } val dataCx = adapterCx.items.filter { it.isCheck } - dataCx.toString() + if (dataCc.isEmpty()||dataCx.isEmpty()){ + showToast("请选择用车类型") + return + } + val cc = dataCc.joinToString(",") { it.dictValue } + val cx =dataCx.joinToString(",") { it.dictValue } + + val intent = Intent() + intent.putExtra(AppConfig.CC,cc) + intent.putExtra(AppConfig.CX,cx) + setResult(RESULT_OK,intent) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoListActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoListActivity.kt index 87a6503..655a865 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoListActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoListActivity.kt @@ -46,7 +46,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers * @ClassName GoodsInfoActivity * @Author john * @Date 2024/2/4 11:09 - * @Description 新增货物信息列表 + * @Description 发货 - 新增货物信息列表 */ class GoodsInfoListActivity : BaseActivity(), OnLimitClickListener, OnClickListener { @@ -67,7 +67,7 @@ class GoodsInfoListActivity : BaseActivity(), override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) setTitleBar("货物信息", { finish() }, true, "常用货物") { -// launcher.launch(Intent(mContext,GoodsListActivity::class.java)) + ActivityUtils.startActivityForResult(this@GoodsInfoListActivity, GoodsListActivity::class.java, 2) } diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsListActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsListActivity.kt index f3776f1..6ade16d 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsListActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsListActivity.kt @@ -25,7 +25,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers * @ClassName GoodsListActivity * @Author john * @Date 2024/11/1 16:36 - * @Description 货物列表 + * @Description 常用货物列表 */ class GoodsListActivity : BaseActivity(), RefreshCallBack { lateinit var adapter: GoodsAdapter @@ -47,14 +47,14 @@ class GoodsListActivity : BaseActivity(), RefreshCallB } override fun initDate() { -// DataManager.getInstance().getGoodsList() -// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) -// .subscribe(BaseObserver(mContext,object : RxHttpCallBack>(){ -// override fun onSuccess(t: CommonResponseBean>) { -// super.onSuccess(t) -// initList(t.data.rows) -// } -// })) + DataManager.getInstance().getGoodsList() + .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) + } + })) } override fun getRefreshDate(stat: Int, page: Int, count: Int) { diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt index a5dfd88..2de8f8a 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/SendGoodsActivity.kt @@ -16,6 +16,7 @@ import com.dahe.mylibrary.base.BaseActivity 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.dhsd.glowner.R import com.dhsd.glowner.adapter.SendGoodsAdapter @@ -50,7 +51,7 @@ class SendGoodsActivity : BaseActivity() { ActivityUtils.startActivity(mContext, GoodsInfoListActivity::class.java) } binding.llCarType.setOnClickListener { - ActivityUtils.startActivity(mContext, CarTypeActivity::class.java) + ActivityUtils.startActivityForResult(this@SendGoodsActivity, CarTypeActivity::class.java,9999) } @@ -59,6 +60,13 @@ class SendGoodsActivity : BaseActivity() { return@setOnLongClickListener true } + binding.tvDate.setOnClickListener { + PickerUtils.getInstance() + .showDateSim(this@SendGoodsActivity, "装货截止时间") { date -> + binding.tvDate.text = date + } + } + adapter = binding.recycler.run { layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) addItemDecoration( @@ -99,6 +107,13 @@ class SendGoodsActivity : BaseActivity() { } } + data?.let { + if (requestCode==9999){ + val cx = it.getStringExtra(AppConfig.CX) + val cc = it.getStringExtra(AppConfig.CC) + binding.tvCarType.setText("""${cc} ${cx}""") + } + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/utils/PickerUtils.kt b/app/src/main/java/com/dhsd/glowner/utils/PickerUtils.kt new file mode 100644 index 0000000..6c463d2 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/utils/PickerUtils.kt @@ -0,0 +1,144 @@ +package com.dhsd.glowner.utils + +import androidx.appcompat.app.AppCompatActivity +import com.dahe.mylibrary.base.SingletonNoPHolder +import com.dahe.mylibrary.callback.OnMyDatePickedListener +import com.github.gzuliyujiang.wheelpicker.AddressPicker +import com.github.gzuliyujiang.wheelpicker.BirthdayPicker +import com.github.gzuliyujiang.wheelpicker.DatePicker +import com.github.gzuliyujiang.wheelpicker.OptionPicker +import com.github.gzuliyujiang.wheelpicker.annotation.AddressMode +import com.github.gzuliyujiang.wheelpicker.annotation.DateMode +import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener +import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener +import com.github.gzuliyujiang.wheelpicker.entity.DateEntity +import com.github.gzuliyujiang.wheelview.contract.TextProvider + +/** + * @ClassName PickUtils + * @Author john + * @Date 2024/2/5 14:48 + * @Description 选择器工具类 + */ +class PickerUtils private constructor() { + companion object : SingletonNoPHolder(::PickerUtils) + + + /** + * TODO + * 底部弹出生日日期选择 + * @param activity + * @param title 日期选择title + * @param dateEntity 默认参数:默认当天 + * @param listener + */ + fun showDate( + activity: AppCompatActivity, + title: String = "", + dateEntity: DateEntity = DateEntity.today(), + listener: OnMyDatePickedListener + ) { + val picker = BirthdayPicker(activity) + picker.setTitle(title) + picker.setDefaultValue(dateEntity.year, dateEntity.month, dateEntity.day) + picker.setOnDatePickedListener { year, month, day -> + if (listener != null) + listener.onDatePicked("$year-${if (month <= 9) "0${month}" else month}-${if (day <= 9) "0${day}" else day}") + } + picker.wheelLayout.setResetWhenLinkage(false) + picker.show() + } + + + /** + * TODO + * 底部弹出日期选择 + * @param activity + * @param title 日期选择title + * @param listener + */ + fun showDateSim( + activity: AppCompatActivity, + title: String = "日期选择", + listener: OnMyDatePickedListener + ) { + val picker = DatePicker(activity) + picker.setTitle(title) + val wheelLayout = picker.wheelLayout + wheelLayout.setDateMode(DateMode.YEAR_MONTH_DAY) + wheelLayout.setDateLabel("年", "月", "日") + picker.setOnDatePickedListener { year, month, day -> + listener.onDatePicked("$year-${if (month <= 9) "0${month}" else month}-${if (day <= 9) "0${day}" else day}") + + } + picker.show() + } + + + /** + * 地址选择 + * @param activity AppCompatActivity + * @param lis OnAddressPickedListener + */ + fun showAddress(activity: AppCompatActivity,lis:OnAddressPickedListener) { + val picker = AddressPicker(activity) + picker.setAddressMode(AddressMode.PROVINCE_CITY_COUNTY) + picker.setDefaultValue("河南省", "郑州市", "金水区") + picker.setOnAddressPickedListener(lis) + picker.wheelLayout.setOnLinkageSelectedListener { first, second, third -> + picker.titleView.text = String.format( + "%s%s%s", + picker.firstWheelView.formatItem(first), + picker.secondWheelView.formatItem(second), + picker.thirdWheelView.formatItem(third) + ) + } + picker.show() + } + + + /** + * 选择驾驶证类型 + * @param activity + * @param title + * @param listener + */ + fun showSelectCarType( + activity: AppCompatActivity, + title: String = "", + listener: OnOptionPickedListener + ) { + OptionPicker(activity) + .run { + setData("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2") + setDefaultValue("B1") + setTitle(title) + setOnOptionPickedListener(listener) + show() + } + } + + /** + * 底部弹框-单选 + * @param activity AppCompatActivity + * @param title String + * @param listener OnOptionPickedListener + */ + fun showSelectCarColor( + activity: AppCompatActivity, + title: String = "", + default: String = "", + datas: MutableList, + listener: OnOptionPickedListener + ) { + OptionPicker(activity) + .run { + setData(datas) + setDefaultValue(default) + setTitle(title) + setOnOptionPickedListener(listener) + show() + } + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_send_goods.xml b/app/src/main/res/layout/activity_send_goods.xml index 9c851ff..708c9f2 100644 --- a/app/src/main/res/layout/activity_send_goods.xml +++ b/app/src/main/res/layout/activity_send_goods.xml @@ -1,5 +1,6 @@ @@ -88,11 +89,13 @@ + android:textSize="@dimen/sp_16" + tools:text="16米,厢式" /> @@ -155,10 +161,14 @@ android:textSize="@dimen/sp_16" /> - @@ -172,9 +182,9 @@