From 5a895fe5af7842843ca0cda0d99eb24f04098898 Mon Sep 17 00:00:00 2001 From: lijia Date: Fri, 1 Nov 2024 16:35:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E8=A3=85=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glowner/adapter/PackingTypeAdapter.kt | 7 +- .../java/com/dhsd/glowner/bean/DictBean.kt | 40 +++++ app/src/main/java/com/dhsd/glowner/net/Api.kt | 41 +++-- .../com/dhsd/glowner/ui/home/HomeFragment.kt | 10 +- .../ui/home/activtiy/CarTypeActivity.kt | 4 +- .../ui/home/activtiy/GoodsInfoActivity.kt | 167 +++++++++++++----- .../ui/home/activtiy/SendGoodsActivity.kt | 6 - .../main/res/layout/activity_goods_info.xml | 119 +++++++++---- app/src/main/res/layout/activity_login.xml | 3 + .../main/res/layout/activity_send_goods.xml | 80 --------- app/src/main/res/layout/fragment_home.xml | 1 - 11 files changed, 296 insertions(+), 182 deletions(-) create mode 100644 app/src/main/java/com/dhsd/glowner/bean/DictBean.kt diff --git a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt index e2bbd12..721063f 100644 --- a/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt +++ b/app/src/main/java/com/dhsd/glowner/adapter/PackingTypeAdapter.kt @@ -9,6 +9,7 @@ import com.chad.library.adapter4.QuickAdapterHelper import com.chad.library.adapter4.viewholder.QuickViewHolder import com.dahe.glex.bean.WayBillBean import com.dhsd.glowner.R +import com.dhsd.glowner.bean.DictBean import com.dhsd.glowner.bean.PackTypeBean /** @@ -17,11 +18,11 @@ import com.dhsd.glowner.bean.PackTypeBean * @Date 2024/2/4 14:49 * @Description TODO */ -class PackingTypeAdapter : BaseQuickAdapter() { - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: PackTypeBean?) { +class PackingTypeAdapter : BaseQuickAdapter() { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: DictBean?) { holder.getView(R.id.rbWord).isSelected = item?.isCheck == true // holder.getView(R.id.rbWord).isChecked = item?.isCheck == true - holder.setText(R.id.rbWord,item?.content) + holder.setText(R.id.rbWord,item?.dictValue) } override fun onCreateViewHolder( diff --git a/app/src/main/java/com/dhsd/glowner/bean/DictBean.kt b/app/src/main/java/com/dhsd/glowner/bean/DictBean.kt new file mode 100644 index 0000000..c4b84a4 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/bean/DictBean.kt @@ -0,0 +1,40 @@ +package com.dhsd.glowner.bean + +import com.github.gzuliyujiang.wheelview.contract.TextProvider + +data class DictBean( + val createBy: String, + val createTime: String, + val default: Boolean, + val dictCode: Int, + val dictLabel: String, + val dictSort: Int, + val dictType: String, + val dictValue: String, + val isDefault: String, + val listClass: String, + val remark: String, + val status: String, + val updateBy: String, + val updateTime: String, + var isCheck: Boolean = false +): TextProvider { + override fun provideText(): String { + return dictValue + } +} + +data class GoodTypeBean( + val alctGoodsCategoryCode: Int, + val alctGoodsCategoryName: String, + val categoryId: Int, + val createTime: String, + val jttGoodsCategoryCode: Int, + val jttGoodsCategoryName: String, + val sortValue: String +): TextProvider { + override fun provideText(): String { + return jttGoodsCategoryName + } +} + 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 746f348..718c6b0 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -4,6 +4,8 @@ import com.dhsd.glowner.BuildConfig import com.dhsd.glowner.bean.AddressBean import com.dhsd.glowner.bean.CaptainBean import com.dhsd.glowner.bean.CarBean +import com.dhsd.glowner.bean.DictBean +import com.dhsd.glowner.bean.GoodTypeBean import com.dhsd.glowner.bean.LoginBean import com.dhsd.glowner.bean.PostAddressBean import io.reactivex.rxjava3.core.Observable @@ -73,16 +75,15 @@ interface Api { * @param bean DispatchBean * @return Observable> */ - @POST(BASE_URL+"devApi/business/shipper/order/dispatchVehicles") + @POST(BASE_URL + "devApi/business/shipper/order/dispatchVehicles") fun dispatchVehicles(@Body bean: DispatchBean): Observable> - /** * 查询车队列表 * @return Observable> */ - @GET(BASE_URL+"devApi/business/ft/common/dict/onlyCaptain") + @GET(BASE_URL + "devApi/business/ft/common/dict/onlyCaptain") fun getCaptainList(): Observable>> @@ -91,8 +92,8 @@ interface Api { * @param captainId String 车队ID * @return Observable>> */ - @GET(BASE_URL+"devApi/business/ft/common/dict/captain/driverAndCar") - fun driverAndCarList(@Query("captainId") captainId:String): Observable>> + @GET(BASE_URL + "devApi/business/ft/common/dict/captain/driverAndCar") + fun driverAndCarList(@Query("captainId") captainId: String): Observable>> /** @@ -100,7 +101,7 @@ interface Api { * @param bean PostAddressBean * @return Observable> */ - @POST(BASE_URL+"devApi/business/shipper/common/address") + @POST(BASE_URL + "devApi/business/shipper/common/address") fun postAddress(@Body bean: PostAddressBean): Observable> /** @@ -108,8 +109,8 @@ interface Api { * @param addressId String * @return Observable> */ - @GET(BASE_URL+"devApi/business/shipper/common/address/{addressId}") - fun getAddressDetail(@Path("addressId") addressId:String) : Observable> + @GET(BASE_URL + "devApi/business/shipper/common/address/{addressId}") + fun getAddressDetail(@Path("addressId") addressId: String): Observable> /** @@ -117,7 +118,7 @@ interface Api { * @param bean PostAddressBean * @return Observable> */ - @PUT(BASE_URL+"devApi/business/shipper/common/address") + @PUT(BASE_URL + "devApi/business/shipper/common/address") fun updateAddress(@Body bean: PostAddressBean): Observable> @@ -126,14 +127,30 @@ interface Api { * @param addressIds String * @return Observable> */ - @DELETE(BASE_URL+"devApi/business/shipper/common/address/{addressIds}") - fun deleteAddress(@Path("addressIds") addressIds:String): Observable> + @DELETE(BASE_URL + "devApi/business/shipper/common/address/{addressIds}") + fun deleteAddress(@Path("addressIds") addressIds: String): Observable> /** * 获取地址列表 * @return Observable>> */ - @GET(BASE_URL+"devApi/business/shipper/common/address/list") + @GET(BASE_URL + "devApi/business/shipper/common/address/list") fun getAddressList(): Observable>> + + /** + * 系统字典 + * @param dictType String + * @return Observable>> + */ + @GET(BASE_URL + "devApi//system/dict/data/type/{dictType}") + fun getDictData(@Path("dictType") dictType: String): Observable>> + + + /** + * 查询交通厅与安联货物分类对应关系字典 + * @return Observable>> + */ + @GET(BASE_URL + "devApi/business/ft/common/dict/goodsCategor") + fun getGoodsCategor(): Observable>> } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt index 93bcfab..c1a9b63 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt @@ -81,6 +81,10 @@ class HomeFragment : BaseFragment(), RefreshCallBack { override fun getRefreshDate(stat: Int, page: Int, count: Int) { + if (stat==2){ + binding.refresh.finishLoadMoreWithNoMoreData() + return + } initData() } @@ -99,7 +103,7 @@ class HomeFragment : BaseFragment(), RefreshCallBack { addItemDecoration( RecycleViewDivider( LinearLayout.VERTICAL, - ConvertUtils.dp2px(16.0f), + ConvertUtils.dp2px(12.0f), Color.TRANSPARENT ) ) @@ -115,10 +119,6 @@ class HomeFragment : BaseFragment(), RefreshCallBack { CommonPopUtils.getInstance().showCarList( mContext ) { _, position -> - if (position === 0) { - - } - when (position) { 0->{ launcher.launch(Intent(mContext, ChoiceCarActivity::class.java).apply { 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 f653e59..735bb6d 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 @@ -49,7 +49,7 @@ class CarTypeActivity : BaseActivity() { datas[position].isCheck = !datas[position].isCheck this.notifyItemChanged(position) } - submitList(datas) +// submitList(datas) } @@ -79,7 +79,7 @@ class CarTypeActivity : BaseActivity() { datas2[position].isCheck = !datas2[position].isCheck this.notifyItemChanged(position) } - submitList(datas2) +// submitList(datas2) } } diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoActivity.kt index 001ad12..3f77bd4 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoActivity.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/activtiy/GoodsInfoActivity.kt @@ -1,19 +1,30 @@ package com.dhsd.glowner.ui.home.activtiy +import BaseObserver +import DataManager +import RxHttpCallBack import android.os.Bundle import android.view.View +import android.view.View.OnClickListener import androidx.recyclerview.widget.GridLayoutManager import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.PickerUtils import com.dahe.mylibrary.weight.FullyGridLayoutManager import com.dhsd.glowner.R import com.dhsd.glowner.adapter.PackingTypeAdapter +import com.dhsd.glowner.bean.AddressBean +import com.dhsd.glowner.bean.DictBean +import com.dhsd.glowner.bean.GoodTypeBean import com.dhsd.glowner.bean.PackTypeBean import com.dhsd.glowner.databinding.ActivityGoodsInfoBinding import com.dhsd.glowner.utils.OnLimitClickHelper import com.dhsd.glowner.utils.OnLimitClickListener +import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener import com.luck.picture.lib.decoration.GridSpacingItemDecoration import com.luck.picture.lib.utils.DensityUtil +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers /** * @ClassName GoodsInfoActivity @@ -22,74 +33,146 @@ import com.luck.picture.lib.utils.DensityUtil * @Description 货物信息 */ class GoodsInfoActivity : BaseActivity(), - OnLimitClickListener { + OnLimitClickListener ,OnClickListener{ + + private var unitType = 1 //1:重量,2:体积 + + lateinit var adapter: PackingTypeAdapter override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) setTitleBar("货物信息", true) - var datas = mutableListOf( - PackTypeBean("散装",0), - PackTypeBean("袋装",1,true), - PackTypeBean("吨包",2), - PackTypeBean("托盘",3), - PackTypeBean("困扎",4), - PackTypeBean("裸装",5), - PackTypeBean("箱装",6), - PackTypeBean("其他",7) - ) - - binding.recycler.run { - layoutManager = FullyGridLayoutManager(mContext, 3, GridLayoutManager.VERTICAL, false) - addItemDecoration( - GridSpacingItemDecoration( - 3, - DensityUtil.dip2px(mContext, 8f), false + binding.run { + adapter = recycler.run { + layoutManager = + FullyGridLayoutManager(mContext, 3, GridLayoutManager.VERTICAL, false) + addItemDecoration( + GridSpacingItemDecoration( + 3, + DensityUtil.dip2px(mContext, 8f), false + ) ) - ) - adapter = PackingTypeAdapter() - adapter as PackingTypeAdapter - }.apply { - addOnItemChildClickListener(R.id.rbWord){ adapter, view, position -> - val size = datas.filter { it.isCheck }.size - val check = datas[position].isCheck - if (size>2&&!check){ - showToast("最多选择三项") - return@addOnItemChildClickListener + adapter = PackingTypeAdapter() + adapter as PackingTypeAdapter + }.apply { + addOnItemChildClickListener(R.id.rbWord) { adapter, view, position -> +// val size = adapter.items.filter { it.isCheck }.size +// val check = adapter.items[position].isCheck +// if (size > 2 && !check) { +// showToast("最多选择三项") +// return@addOnItemChildClickListener +// } +// adapter.items[position].isCheck = !adapter.items[position].isCheck +// this.notifyItemChanged(position) + + val items = adapter.items + val indexOfFirst = items.indexOfFirst { it.isCheck } + + if (indexOfFirst > -1 && indexOfFirst != position) { + items[indexOfFirst].isCheck = false + items[position].isCheck = !items[position].isCheck + notifyItemChanged(indexOfFirst) + notifyItemChanged(position) + } else { + items[position].isCheck = !items[position].isCheck + notifyItemChanged(position) + } + } - - datas[position].isCheck = !datas[position].isCheck - this.notifyItemChanged(position) - } - submitList(datas) } binding.run { tvGood.setOnClickListener(OnLimitClickHelper(this@GoodsInfoActivity)) tvGoodType.setOnClickListener(OnLimitClickHelper(this@GoodsInfoActivity)) + tvChange.setOnClickListener(this@GoodsInfoActivity) +// tvChange.setOnClickListener(OnLimitClickHelper(this@GoodsInfoActivity)) } } override fun initDate() { + DataManager.getInstance().getDictData("packaging_method") + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data) + } + })) } override fun onClick(view: View?) { super.onClick(view) - when(view?.id){ - R.id.tvGood->{ - var datas = mutableListOf("螺纹钢","螺纹钢1","螺纹钢2") - PickerUtils.getInstance().showSingleSelect(this, "请选择货物", datas + when (view?.id) { + R.id.tvGood -> { + var datas = mutableListOf("螺纹钢", "螺纹钢1", "螺纹钢2") + PickerUtils.getInstance().showSingleSelect( + this, "请选择货物", datas ) { position, item -> showToast(item as String) } } - R.id.tvGoodType->{ - var datas = mutableListOf("钢铁","螺纹钢1","螺纹钢2") - PickerUtils.getInstance().showSingleSelect(this, "请选择货物类型", datas - ) { position, item -> - showToast(item as String) + + R.id.tvGoodType -> { + getGoodsType() + } + + R.id.tvChange -> { + changeUnitType() + } + } + } + + private fun initList(rows: List) { + if (rows.isEmpty()) { + adapter.submitList(null) + adapter.setStateViewLayout(mContext, R.layout.empty_view) + } else { + if (mRefreshPage === 1) { + adapter?.submitList(rows) + } else { + adapter?.addAll(rows) + } + } + } + + + private fun getGoodsType() { + DataManager.getInstance().getGoodsCategor() + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + PickerUtils.getInstance().showSelectCarColor( + this@GoodsInfoActivity, "请选择货物类型", + "", t.data + ) { position, item -> + item as GoodTypeBean + binding.tvGoodType.text = item.jttGoodsCategoryName + } + } + })) + } + + private fun changeUnitType() { + when (unitType) { + 1 -> { + unitType = 2 + binding.run { + etWeight.hint = "请填写总体积(m³)" + binding.tvUnit.text = "体积(m³)" + } + + } + + 2 -> { + unitType = 1 + binding.run { + etWeight.hint = "请填写总重量(吨)" + tvUnit.text = "重量(吨)" } } } } + } \ No newline at end of file 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 96014bc..358fa1e 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 @@ -39,12 +39,6 @@ class SendGoodsActivity : BaseActivity() { setStatusBarColor(R.color.white) setTitleBar("普通装货", true) - binding.rgTeam.setOnCheckedChangeListener { radioGroup, i -> - ToastUtils.showToast(mContext, radioGroup.id.toString()) - } - - - datas = mutableListOf( AddressBean(), AddressBean() diff --git a/app/src/main/res/layout/activity_goods_info.xml b/app/src/main/res/layout/activity_goods_info.xml index e6fee46..c570692 100644 --- a/app/src/main/res/layout/activity_goods_info.xml +++ b/app/src/main/res/layout/activity_goods_info.xml @@ -47,27 +47,20 @@ android:textSize="@dimen/sp_16" /> - - - - - - - - - - - @@ -131,18 +126,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/dp_5" - android:layout_marginTop="@dimen/dp_3" android:layout_marginRight="@dimen/dp_5" android:background="@drawable/shape_white_8" - android:paddingTop="@dimen/dp_15" - android:paddingBottom="@dimen/dp_15" /> + android:paddingTop="@dimen/dp_10" + android:paddingBottom="@dimen/dp_10" /> + android:layout_marginRight="@dimen/dp_12" + android:background="@color/color_c" /> + + + + + + + + + + + + + + + + + + @@ -256,7 +313,7 @@ android:layout_marginLeft="@dimen/dp_16" android:layout_weight="2" android:background="@drawable/bg_btn" - android:text="立即发货" + android:text="确定" android:textColor="@color/white" android:textSize="@dimen/sp_17" /> diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index c507b52..9d15911 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -62,6 +62,7 @@ - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 6945784..69b3c0b 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -196,7 +196,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/dp_14" - android:paddingTop="@dimen/dp_24" android:paddingRight="@dimen/dp_14" />