装卸货优化

This commit is contained in:
lijia 2024-03-07 15:28:35 +08:00
parent cfc9b81650
commit 3023d57680
36 changed files with 598 additions and 216 deletions

View File

@ -137,9 +137,9 @@ dependencies {
implementation project(path: ':mylibrary') implementation project(path: ':mylibrary')
// //
implementation 'com.amap.api:map2d:6.0.0' implementation 'com.amap.api:3dmap:9.8.3'
// //
implementation 'com.amap.api:location:6.4.2'//6.4.2 // implementation 'com.amap.api:location:6.4.2'//6.4.2
implementation 'com.amap.api:search:9.7.0' implementation 'com.amap.api:search:9.7.0'
} }

View File

@ -15,7 +15,14 @@
<!--允许程序访问CellID或WiFi热点来获取粗略的位置--> <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--用于获取wifi的获取权限wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<!--如果您的应用需要后台定位权限且有可能运行在Android Q设备上,并且设置了target>28必须增加这个权限声明-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" /> <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />

View File

@ -3,10 +3,13 @@ package com.dahe.gldriver.adapter
import android.content.Context import android.content.Context
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.ImageView
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.bean.CarBean
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.utils.ImageLoader
/** /**
* @ClassName WaybillAdapter * @ClassName WaybillAdapter
@ -15,9 +18,17 @@ import com.dahe.glex.bean.WayBillBean
* @Description TODO * @Description TODO
*/ */
class CarsAdapter : class CarsAdapter :
BaseQuickAdapter<WayBillBean, QuickViewHolder>() { BaseQuickAdapter<CarBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: CarBean?) {
holder.run {
setText(R.id.tvCarNum, item?.vehicleNum)
setText(R.id.tvCarType, item?.vehicleType)
setText(R.id.tvCarLen, """${item?.carLong}""")
setText(R.id.tvCarWei, """${item?.approvedLoad?.toFloat()?.div(1000)}""")
ImageLoader.getInstance()
.loadRoundImage(context, item?.carUrl, 6, getView<ImageView>(R.id.ivHead))
}
} }
override fun onCreateViewHolder( override fun onCreateViewHolder(

View File

@ -3,10 +3,13 @@ package com.dahe.gldriver.adapter
import android.content.Context import android.content.Context
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.ImageView
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.bean.DriverBean
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.utils.ImageLoader
/** /**
* @ClassName WaybillAdapter * @ClassName WaybillAdapter
@ -15,9 +18,18 @@ import com.dahe.glex.bean.WayBillBean
* @Description TODO * @Description TODO
*/ */
class DriversAdapter : class DriversAdapter :
BaseQuickAdapter<WayBillBean, QuickViewHolder>() { BaseQuickAdapter<DriverBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: DriverBean?) {
item?.let {
holder.run {
setText(R.id.tvName,it.idcardName)
setText(R.id.tvPhone,it.driverPhone)
setText(R.id.tvDays,"""加入${it.diffDay}""")
ImageLoader.getInstance()
.loadRoundImage(context, it.driverAvatar, 6, getView<ImageView>(R.id.ivHead))
}
}
} }
override fun onCreateViewHolder( override fun onCreateViewHolder(

View File

@ -0,0 +1,22 @@
package com.dahe.gldriver.bean
/**
* @ClassName DriverBean
* @Author john
* @Date 2024/3/6 17:10
* @Description TODO
*/
data class DriverBean(
val bindTime: String,
val captainId: String,
val createTime: String,
val diffDay: String,
val driverAvatar: String,
val driverId: String,
val driverPhone: String,
val idcardName: String,
val idcardSex: String,
val isRealName: String,
val joinStatus: String,
val level: String
)

View File

@ -21,6 +21,8 @@ data class OrderBean(
val orderId: String= "", val orderId: String= "",
val orderNum: String= "", val orderNum: String= "",
val orderStatus: String= "", val orderStatus: String= "",
val waybillId: String= "",
val orderChildreId: String= "",
val orderType: String= "", val orderType: String= "",
val passingPointsNum: String= "", val passingPointsNum: String= "",
val realCompanyName: String= "", val realCompanyName: String= "",

View File

@ -29,6 +29,7 @@ data class OrderDetailBean(
val vehicleLength: String, val vehicleLength: String,
val vehicleType: String, val vehicleType: String,
val waybillId: String, val waybillId: String,
val vehicleNum: String,
val waybillInfo: WaybillInfo val waybillInfo: WaybillInfo
) )
@ -92,5 +93,8 @@ data class WaybillInfo(
val trailerVehicleNum: String, val trailerVehicleNum: String,
val unloadTime: String, val unloadTime: String,
val vehicleNum: String, val vehicleNum: String,
val carLong: String,
val approvedLoad: String,
val vehicleType: String,
val waybillId: String val waybillId: String
) )

View File

@ -19,7 +19,7 @@ data class UpPicBean(
var province: String= "", var province: String= "",
var provinceCityArea: String= "", var provinceCityArea: String= "",
var provinceCode: String= "", var provinceCode: String= "",
var type: String= "", var type: String= "",//1装货2卸货
var waybillId: String= "", var waybillId: String= "",
var waybillPhotoList: MutableList<WaybillPhoto> = mutableListOf<WaybillPhoto>() var waybillPhotoList: MutableList<WaybillPhoto> = mutableListOf<WaybillPhoto>()
) )

View File

@ -1,5 +1,7 @@
package com.dahe.glex.bean package com.dahe.glex.bean
import retrofit2.http.GET
/** /**
* @ClassName UserBean * @ClassName UserBean
* @Author 用户 * @Author 用户
@ -8,6 +10,7 @@ package com.dahe.glex.bean
*/ */
data class UserBean( data class UserBean(
var access_token :String, var access_token :String,
var token :String,
var id :String, var id :String,
var roleId :String, var roleId :String,
var uname :String, var uname :String,
@ -24,5 +27,10 @@ data class UserBean(
var isCar :String, var isCar :String,
var qrcodeUrl :String, var qrcodeUrl :String,
var expires_in :Int, var expires_in :Int,
var credit :String var credit :String,
var isCarCaptain :String,
var contactName :String,
var idcardName :String,
var captainId :String
) )

View File

@ -1,8 +1,10 @@
package com.dahe.gldriver.net package com.dahe.gldriver.net
import com.dahe.gldriver.BuildConfig import com.dahe.gldriver.BuildConfig
import com.dahe.gldriver.BuildConfig.BASE_URL
import com.dahe.gldriver.bean.AuthTeamBean import com.dahe.gldriver.bean.AuthTeamBean
import com.dahe.gldriver.bean.CarBean import com.dahe.gldriver.bean.CarBean
import com.dahe.gldriver.bean.DriverBean
import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.bean.OrderDetailBean import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.bean.OssBean import com.dahe.gldriver.bean.OssBean
@ -145,7 +147,7 @@ interface Api {
fun selectMyWaybillList( fun selectMyWaybillList(
@Query("pageNum") pageNum: Int = 1, @Query("pageNum") pageNum: Int = 1,
@Query("pageSize") pageSize: Int = 20, @Query("pageSize") pageSize: Int = 20,
@Query("waybillStatus") waybillStatus: String ="", @Query("waybillStatus") waybillStatus: String = "",
@Query("searchValue") searchValue: String = "" @Query("searchValue") searchValue: String = ""
): Observable<CommonResponseBean<MutableList<OrderBean>>> ): Observable<CommonResponseBean<MutableList<OrderBean>>>
@ -156,12 +158,6 @@ interface Api {
@GET(BASE_URL + "driver/order/detail") @GET(BASE_URL + "driver/order/detail")
fun orderDetail(@Query("orderId") orderId: String): Observable<CommonResponseBean<OrderDetailBean>> fun orderDetail(@Query("orderId") orderId: String): Observable<CommonResponseBean<OrderDetailBean>>
/**
*
* 车辆列表
* */
@GET(BASE_URL+"driver/car/carList")
fun carList(): Observable<CommonResponseBean<MutableList<CarBean>>>
/** /**
* 司机接单 * 司机接单
@ -184,6 +180,30 @@ interface Api {
@GET(BASE_URL + "driver/driver/setUpDriverRole") @GET(BASE_URL + "driver/driver/setUpDriverRole")
fun setUpDriverRole(@Query("role") role: String): Observable<CommonResponseBean<String>> fun setUpDriverRole(@Query("role") role: String): Observable<CommonResponseBean<String>>
/**
*
* 车辆列表
* */
@GET(BASE_URL + "driver/car/carList")
fun carList(): Observable<CommonResponseBean<MutableList<CarBean>>>
/**
*
* 解绑车辆
* */
@POST(BASE_URL + "driver/car/unBindCar")
fun unBindCar(@Body carBean: CarBean): Observable<CommonResponseBean<String>>
/**
* 查询车队所属的司机列表包含车辆
* @return Observable<CommonResponseBean<MutableList<DriverBean>>>
*/
@GET(BASE_URL + "driver/captain/selectDriversInCaptain")
fun selectDriversInCaptain(@Query("captainId") captainId: String): Observable<CommonResponseBean<MutableList<DriverBean>>>
companion object { companion object {
// String BASE_URL = "https://tmstest.dahehuoyun.com/"; // String BASE_URL = "https://tmstest.dahehuoyun.com/";
const val BASE_URL = BuildConfig.BASE_URL const val BASE_URL = BuildConfig.BASE_URL

View File

@ -20,13 +20,12 @@ class RequestHeadInterceptor : Interceptor {
@Throws(IOException::class) @Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response { override fun intercept(chain: Interceptor.Chain): Response {
val builder: Request.Builder = chain.request().newBuilder() val builder: Request.Builder = chain.request().newBuilder()
var tokken = SPUtils.instance.getUserInfo(App.app)?.access_token
if (BaseSPUtils.hasUserInfo(App.app) && !TextUtils.isEmpty(SPUtils.instance.getUserInfo(App.app)?.access_token)) { if (!TextUtils.isEmpty(SPUtils.instance.getUserToken(App.app))) {
// builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken()); // builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken());
builder.addHeader("Authorization", builder.addHeader("Authorization",
"Bearer " + SPUtils.instance.getUserInfo(App.app)?.access_token) "Bearer " + SPUtils.instance.getUserToken(App.app))
} }
val request: Request = builder val request: Request = builder
.addHeader("versionCode", AppUtils.getAppVersionCode().toString() + "") .addHeader("versionCode", AppUtils.getAppVersionCode().toString() + "")

View File

@ -26,7 +26,7 @@ class LauncherActivity : BaseActivity<ActivityLauncherBinding>() {
//已登录,直接跳转首页 //已登录,直接跳转首页
val userInfo = SPUtils.instance.getUserInfo(mContext) val userInfo = SPUtils.instance.getUserInfo(mContext)
// //
if (userInfo != null && StringUtils.isNotEmpty(userInfo.access_token)) { if (userInfo != null && StringUtils.isNotEmpty(userInfo.token)) {
ActivityUtils.startActivity(mContext, LoginActivity::class.java, intent.extras) ActivityUtils.startActivity(mContext, LoginActivity::class.java, intent.extras)
} else { } else {
ActivityUtils.startActivity(this@LauncherActivity, LoginActivity::class.java) ActivityUtils.startActivity(this@LauncherActivity, LoginActivity::class.java)
@ -45,7 +45,7 @@ class LauncherActivity : BaseActivity<ActivityLauncherBinding>() {
//已登录,直接跳转首页 //已登录,直接跳转首页
//已登录,直接跳转首页 //已登录,直接跳转首页
val userInfo = SPUtils.instance.getUserInfo(mContext) val userInfo = SPUtils.instance.getUserInfo(mContext)
if (userInfo != null && StringUtils.isNotEmpty(userInfo.access_token)) { if (userInfo != null && StringUtils.isNotEmpty(userInfo.token)) {
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
SelectRoleActivity::class.java, SelectRoleActivity::class.java,

View File

@ -51,14 +51,17 @@ class CodeLoginActivity : BaseActivity<ActivityCodeBinding>(), View.OnClickListe
// setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.CODE, "2024") }) // setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.CODE, "2024") })
// finish() // finish()
DataManager.getInstance().login(phone, "2024") DataManager.getInstance().login(phone, "2024")
.flatMap {
//两个接口token字段名称不一致先进行保存
SPUtils.instance.setUserToken(mContext,it.data.access_token)
DataManager.getInstance().getUserInfo()
}
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UserBean>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<UserBean>() {
override fun onSuccess(t: CommonResponseBean<UserBean>) { override fun onSuccess(t: CommonResponseBean<UserBean>) {
super.onSuccess(t) super.onSuccess(t)
SPUtils.instance.setUserInfo(mContext, Gson().toJson(t.data)) SPUtils.instance.setUserInfo(mContext, Gson().toJson(t.data))
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
SelectRoleActivity::class.java SelectRoleActivity::class.java

View File

@ -52,15 +52,6 @@ class CarTeamActivity : BaseActivity<ActivityCarTeamBinding>() {
// pagerAdapter.addFragment(AllWaybillFragment()) // pagerAdapter.addFragment(AllWaybillFragment())
binding.circleBarView.setProgress(30f,1000)
binding.circleBarView2.run {
text = "完成度"
valueText = "10"
unitText= "%"
progress = 20
}
mFragmentContainerHelper.handlePageSelected(0,true) mFragmentContainerHelper.handlePageSelected(0,true)
binding.viewPager.adapter = pagerAdapter binding.viewPager.adapter = pagerAdapter

View File

@ -6,14 +6,23 @@ import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.LayoutManager import androidx.recyclerview.widget.RecyclerView.LayoutManager
import com.chad.library.adapter4.BaseQuickAdapter
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.CarsAdapter import com.dahe.gldriver.adapter.CarsAdapter
import com.dahe.gldriver.adapter.WaybillAdapter import com.dahe.gldriver.adapter.WaybillAdapter
import com.dahe.gldriver.bean.CarBean
import com.dahe.gldriver.databinding.ActivityCarsManBinding import com.dahe.gldriver.databinding.ActivityCarsManBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.utils.CommonPopUtils
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/** /**
* @ClassName CarsManActivity * @ClassName CarsManActivity
@ -22,23 +31,15 @@ import com.dahe.mylibrary.utils.ConvertUtils
* @Description 车辆管理 * @Description 车辆管理
*/ */
class CarsManActivity : BaseActivity<ActivityCarsManBinding>() { class CarsManActivity : BaseActivity<ActivityCarsManBinding>() {
lateinit var adapter: CarsAdapter
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white) setStatusBarColor(R.color.white)
setTitleBar("车辆管理",true) setTitleBar("车辆管理", true)
var datas = mutableListOf<WayBillBean>(
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean()
)
var adapter = binding.recycler.run { adapter = binding.recycler.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
addItemDecoration( addItemDecoration(
RecycleViewDivider( RecycleViewDivider(
@ -49,12 +50,34 @@ class CarsManActivity : BaseActivity<ActivityCarsManBinding>() {
) )
adapter = CarsAdapter() adapter = CarsAdapter()
adapter as CarsAdapter adapter as CarsAdapter
}.apply {
addOnItemChildClickListener(R.id.tvUnbind) { adapter, view, position ->
CommonPopUtils.getInstance()
.showCommCenterPop(mContext, content = """您确定解绑:${items[position].vehicleNum}么?"""){
DataManager.getInstance().unBindCar(items[position])
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext,object : RxHttpCallBack<String>(){
override fun onSuccess(t: CommonResponseBean<String>) {
super.onSuccess(t)
initDate()
}
}))
}
}
} }
adapter.submitList(datas)
} }
override fun initDate() { override fun initDate() {
DataManager.getInstance().carList()
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(mContext, object : RxHttpCallBack<MutableList<CarBean>>() {
override fun onSuccess(t: CommonResponseBean<MutableList<CarBean>>) {
super.onSuccess(t)
adapter.submitList(t.data)
}
})
)
} }
} }

View File

@ -29,16 +29,6 @@ class CarsManFragment : BaseFragment<FragmentWaybillListBinding>() {
} }
override fun onFragmentFirstVisible() { override fun onFragmentFirstVisible() {
var datas = mutableListOf<WayBillBean>(
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean()
)
var adapter = binding.recyclerView.run { var adapter = binding.recyclerView.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
@ -53,6 +43,5 @@ class CarsManFragment : BaseFragment<FragmentWaybillListBinding>() {
adapter as CarsAdapter adapter as CarsAdapter
} }
adapter.submitList(datas)
} }
} }

View File

@ -10,13 +10,21 @@ import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.CarsAdapter import com.dahe.gldriver.adapter.CarsAdapter
import com.dahe.gldriver.adapter.DriversAdapter import com.dahe.gldriver.adapter.DriversAdapter
import com.dahe.gldriver.adapter.WaybillAdapter import com.dahe.gldriver.adapter.WaybillAdapter
import com.dahe.gldriver.bean.DriverBean
import com.dahe.gldriver.databinding.ActivityCarsManBinding import com.dahe.gldriver.databinding.ActivityCarsManBinding
import com.dahe.gldriver.databinding.FragmentWaybillListBinding import com.dahe.gldriver.databinding.FragmentWaybillListBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.utils.SPUtils
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/** /**
* @ClassName CarsManActivity * @ClassName CarsManActivity
@ -26,22 +34,12 @@ import com.dahe.mylibrary.utils.ConvertUtils
*/ */
class DriversManFragment : BaseFragment<FragmentWaybillListBinding>() { class DriversManFragment : BaseFragment<FragmentWaybillListBinding>() {
lateinit var adapter : DriversAdapter
override fun onFragmentVisibleChange(isVisible: Boolean) { override fun onFragmentVisibleChange(isVisible: Boolean) {
} }
override fun onFragmentFirstVisible() { override fun onFragmentFirstVisible() {
var datas = mutableListOf<WayBillBean>( adapter = binding.recyclerView.run {
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean(),
WayBillBean()
)
var adapter = binding.recyclerView.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
addItemDecoration( addItemDecoration(
RecycleViewDivider( RecycleViewDivider(
@ -54,6 +52,18 @@ class DriversManFragment : BaseFragment<FragmentWaybillListBinding>() {
adapter as DriversAdapter adapter as DriversAdapter
} }
adapter.submitList(datas) initData()
}
private fun initData(){
DataManager.getInstance().selectDriversInCaptain(SPUtils.instance.getUserInfo(mContext)!!.captainId)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext,object : RxHttpCallBack<MutableList<DriverBean>>(){
override fun onSuccess(t: CommonResponseBean<MutableList<DriverBean>>) {
super.onSuccess(t)
adapter.submitList(t.data)
}
}))
} }
} }

View File

@ -8,21 +8,18 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps2d.model.LatLng import com.amap.api.maps.model.LatLng
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillAdapter
import com.dahe.gldriver.adapter.WaybillNodeAdapter import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.OrderDetailBean import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.databinding.ActivityWaybillDetailBinding import com.dahe.gldriver.databinding.ActivityWaybillDetailBinding
import com.dahe.gldriver.event.OrderStauEvent
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.utils.GDLocationUtils import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.gldriver.utils.LocationUtils import com.dahe.gldriver.utils.LocationUtils
import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.OrderUtils
import com.dahe.glex.bean.OrderBean
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
@ -34,7 +31,6 @@ import com.dahe.mylibrary.utils.SelectPicUtils
import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.PermissionX
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus
/** /**
* @ClassName WaybillDetailActivity * @ClassName WaybillDetailActivity

View File

@ -8,7 +8,10 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps2d.AMap import com.amap.api.maps.AMap
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.MapView
import com.amap.api.maps.model.LatLng
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillNodeAdapter import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
@ -18,12 +21,15 @@ import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.utils.GDLocationUtils import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.gldriver.utils.LocationUtils
import com.dahe.gldriver.utils.OrderUtils
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.utils.ToastUtils
import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.PermissionX
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
@ -38,7 +44,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers
*/ */
class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() { class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
var aMap: AMap? = null lateinit var aMap: AMap
var orderId: String = "" var orderId: String = ""
lateinit var orderBean: OrderDetailBean lateinit var orderBean: OrderDetailBean
@ -48,13 +54,16 @@ class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
ToastUtils.showToast(mContext, "查看单据") ToastUtils.showToast(mContext, "查看单据")
} }
orderId = intent.extras?.getString(AppConfig.ORDER_ID,"").toString() orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString()
initRecy() initRecy()
getLocation()
binding.run { binding.run {
mapView.onCreate(savedInstanceState) mapView.onCreate(savedInstanceState)
if (aMap == null) mapView.map aMap = mapView.map.apply {
uiSettings.run { isZoomControlsEnabled = false }
}
btnRight.setOnClickListener { btnRight.setOnClickListener {
var data = orderBean.orderChildList.first { it.type == "1" } var data = orderBean.orderChildList.first { it.type == "1" }
@ -63,9 +72,9 @@ class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
WaybillUpPicActivity::class.java, WaybillUpPicActivity::class.java,
Bundle().apply { Bundle().apply {
putInt(AppConfig.SUCCESS_TYPE, 1) putInt(AppConfig.SUCCESS_TYPE, 1)
putString(AppConfig.ORDER_ID,orderId) putString(AppConfig.ORDER_ID, orderId)
putString(AppConfig.WAYBILL_ID,orderBean.waybillId) putString(AppConfig.WAYBILL_ID, orderBean.waybillId)
putString(AppConfig.CHILDRE_ID,data.orderChildreId) putString(AppConfig.CHILDRE_ID, data.orderChildreId)
}) })
} }
} }
@ -79,14 +88,47 @@ class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) { override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) {
super.onSuccess(t) super.onSuccess(t)
orderBean = t.data orderBean = t.data
val load = orderBean.orderChildList.first { it.type == "1" }
var distance = ""
loadPos = LatLng(load.latitude.toDouble(), load.longitude.toDouble())
LocationUtils.getInstance().changeCamera(loadPos, aMap!!)
if (::gdLatLng.isInitialized) {
distance = LocationUtils.getInstance().getDistance(
gdLatLng,
loadPos
) + "km"
}
var goods =
t.data.goodsList.map { """${it.goodName},${it.goodItemGrossWeight}吨,${if (it.goodCube.isNullOrEmpty()) "" else it.goodCube + "方"}""" }
.reduce { acc, s ->
"""${acc}
|${s}""".trimMargin()
}
binding.run { binding.run {
tvWaybillNum.text = """运单号:${orderBean.orderNum}"""
tvWaybillStatu.text =
OrderUtils.getInstance().getOrderStatu(orderBean.orderStatus)
tvTime.text = orderBean.receiverDeadline tvTime.text = orderBean.receiverDeadline
tvComName.text = orderBean.realCompanyName//货主
tvCarNum.text = orderBean.waybillInfo.vehicleNum
tvCarLen.text =
"""${orderBean.waybillInfo.carLong}mm/${orderBean.waybillInfo.approvedLoad}"""
tvCarType.text = orderBean.vehicleType//车辆类型
if (!distance.isNullOrEmpty()) tvLoadDis.text = distance
tvUnloadDis.text = orderBean.distance + "km"
tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸" tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸"
tvCom.text = orderBean?.receiverBusinessName tvCom.text = orderBean?.receiverBusinessName//收货方
tvFreight.text = orderBean?.driverFreight.toString() tvFreight.text = orderBean?.driverFreight.toString()
tvCarInfo.text = """${t.data.vehicleLength} ${t.data.vehicleType}"""
tvGoods.text = goods
if (!t.data.requirement.isNullOrEmpty()) tvRemark.text = t.data.requirement
btnLeft.setOnClickListener { btnLeft.setOnClickListener {
PermissionX.init(this@WaybillLoadActivity) PermissionX.init(this@WaybillLoadActivity)
.permissions(Manifest.permission.CALL_PHONE) .permissions(Manifest.permission.CALL_PHONE)
@ -132,10 +174,7 @@ class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
} }
override fun onDestroy() { override fun onDestroy() {
if (binding.mapView != null)
binding.mapView.onDestroy();
super.onDestroy() super.onDestroy()
} }
var adapter: WaybillNodeAdapter? = null var adapter: WaybillNodeAdapter? = null
@ -165,4 +204,31 @@ class WaybillLoadActivity : BaseActivity<ActivityWaybillLoadBinding>() {
} }
} }
lateinit var gdLatLng: LatLng
lateinit var loadPos: LatLng
fun getLocation() {
GDLocationUtils.instance.getLocation(mContext) {
//errCode等于0代表定位成功其他的为定位失败具体的可以参照官网定位错误码说明
runOnUiThread {
LoadingUtils.instance.dissLoading()
if (it.getErrorCode() == 0) {
it.getLongitude()//经 度
it.getLatitude()//纬 度
gdLatLng = LatLng(it.latitude, it.longitude)
if (::loadPos.isInitialized) {
var distance = LocationUtils.getInstance().getDistance(
gdLatLng,
loadPos
) + "km"
binding.tvLoadDis.text = distance
}
} else {
showToast("定位失败,请检查定位权限是否开启")
}
}
}
}
} }

View File

@ -4,10 +4,12 @@ import android.os.Bundle
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.databinding.ActivityWaybillSuccBinding import com.dahe.gldriver.databinding.ActivityWaybillSuccBinding
import com.dahe.gldriver.ui.HomeActivity
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.AppUtils import com.dahe.mylibrary.utils.AppUtils
import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.TimeUtil
import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.utils.ToastUtils
/** /**
@ -20,7 +22,7 @@ class WaybillSuccActivity : BaseActivity<ActivityWaybillSuccBinding>() {
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white) setStatusBarColor(R.color.white)
val type = intent.extras?.getInt(AppConfig.SUCCESS_TYPE) val type = intent.extras?.getInt(AppConfig.SUCCESS_TYPE)
setTitleBar("接单成功", true) setTitleBar(if (type==0) "接单成功" else if (type==1) "装货成功" else "卸货成功", true)
changeType(type) changeType(type)
binding.run { binding.run {
btnLeft.setOnClickListener { btnLeft.setOnClickListener {
@ -29,6 +31,8 @@ class WaybillSuccActivity : BaseActivity<ActivityWaybillSuccBinding>() {
btnRight.setOnClickListener { btnRight.setOnClickListener {
goLeftOrRight(type,false) goLeftOrRight(type,false)
} }
tvTime.text = TimeUtil.getNowString("")
} }
} }
@ -81,7 +85,7 @@ class WaybillSuccActivity : BaseActivity<ActivityWaybillSuccBinding>() {
if (isLeft){ if (isLeft){
when(type){ when(type){
0->ActivityUtils.startActivity(mContext, WaybillLoadActivity::class.java) 0->ActivityUtils.startActivity(mContext, WaybillLoadActivity::class.java)
1,2->ActivityUtils.startHomeActivity(mContext) 1,2->ActivityUtils.finishToActivity(HomeActivity::class.java,false)
} }
}else{ }else{
when(type){ when(type){

View File

@ -8,22 +8,26 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps2d.AMap import com.amap.api.maps.AMap
import com.amap.api.maps.model.LatLng
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillNodeAdapter import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.OrderDetailBean import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.databinding.ActivityWaybillLoadBinding
import com.dahe.gldriver.databinding.ActivityWaybillUnloadBinding import com.dahe.gldriver.databinding.ActivityWaybillUnloadBinding
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.gldriver.utils.LocationUtils
import com.dahe.gldriver.utils.OrderUtils
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.utils.ToastUtils
import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.PermissionX
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
@ -37,7 +41,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers
*/ */
class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() { class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() {
var aMap: AMap? = null lateinit var aMap: AMap
var orderId: String = "" var orderId: String = ""
@ -50,12 +54,14 @@ class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() {
} }
orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString()
initRecy() initRecy()
getLocation()
binding.run { binding.run {
mapView.onCreate(savedInstanceState) mapView.onCreate(savedInstanceState)
if (aMap == null) mapView.map aMap = mapView.map.apply {
uiSettings.run { isZoomControlsEnabled = false }
}
btnRight.setOnClickListener { btnRight.setOnClickListener {
var data = orderBean.orderChildList.first { it.type == "2" }
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
WaybillUpPicActivity::class.java, WaybillUpPicActivity::class.java,
@ -63,7 +69,6 @@ class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() {
putInt(AppConfig.SUCCESS_TYPE, 2) putInt(AppConfig.SUCCESS_TYPE, 2)
putString(AppConfig.ORDER_ID, orderId) putString(AppConfig.ORDER_ID, orderId)
putString(AppConfig.WAYBILL_ID, orderBean.waybillId) putString(AppConfig.WAYBILL_ID, orderBean.waybillId)
putString(AppConfig.CHILDRE_ID, data.orderChildreId)
}) })
} }
} }
@ -77,14 +82,47 @@ class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() {
override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) { override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) {
super.onSuccess(t) super.onSuccess(t)
orderBean = t.data orderBean = t.data
val load = orderBean.orderChildList.first { it.type == "1" }
var distance = ""
loadPos = LatLng(load.latitude.toDouble(), load.longitude.toDouble())
LocationUtils.getInstance().changeCamera(loadPos, aMap!!)
if (::gdLatLng.isInitialized) {
distance = LocationUtils.getInstance().getDistance(
gdLatLng,
loadPos
) + "km"
}
var goods =
t.data.goodsList.map { """${it.goodName},${it.goodItemGrossWeight}吨,${if (it.goodCube.isNullOrEmpty()) "" else it.goodCube + "方"}""" }
.reduce { acc, s ->
"""${acc}
|${s}""".trimMargin()
}
binding.run { binding.run {
tvWaybillNum.text = """运单号:${orderBean.orderNum}"""
tvWaybillStatu.text =
OrderUtils.getInstance().getOrderStatu(orderBean.orderStatus)
tvTime.text = orderBean.receiverDeadline tvTime.text = orderBean.receiverDeadline
tvComName.text = orderBean.realCompanyName//货主
tvCarNum.text = orderBean.waybillInfo.vehicleNum
tvCarLen.text =
"""${orderBean.waybillInfo.carLong}mm/${orderBean.waybillInfo.approvedLoad}"""
tvCarType.text = orderBean.vehicleType//车辆类型
if (!distance.isNullOrEmpty()) tvLoadDis.text = distance
tvUnloadDis.text = orderBean.distance + "km"
tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸" tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸"
tvCom.text = orderBean?.receiverBusinessName tvCom.text = orderBean?.receiverBusinessName//收货方
tvFreight.text = orderBean?.driverFreight.toString() tvFreight.text = orderBean?.driverFreight.toString()
tvCarInfo.text = """${t.data.vehicleLength} ${t.data.vehicleType}"""
tvGoods.text = goods
if (!t.data.requirement.isNullOrEmpty()) tvRemark.text = t.data.requirement
btnLeft.setOnClickListener { btnLeft.setOnClickListener {
PermissionX.init(this@WaybillUnlLoadActivity) PermissionX.init(this@WaybillUnlLoadActivity)
.permissions(Manifest.permission.CALL_PHONE) .permissions(Manifest.permission.CALL_PHONE)
@ -157,12 +195,30 @@ class WaybillUnlLoadActivity : BaseActivity<ActivityWaybillUnloadBinding>() {
binding.mapView.onSaveInstanceState(outState); binding.mapView.onSaveInstanceState(outState);
} }
override fun onDestroy() { lateinit var gdLatLng: LatLng
if (binding.mapView != null) lateinit var loadPos: LatLng
binding.mapView.onDestroy(); fun getLocation() {
super.onDestroy() GDLocationUtils.instance.getLocation(mContext) {
//errCode等于0代表定位成功其他的为定位失败具体的可以参照官网定位错误码说明
runOnUiThread {
LoadingUtils.instance.dissLoading()
if (it.getErrorCode() == 0) {
it.getLongitude()//经 度
it.getLatitude()//纬 度
gdLatLng = LatLng(it.latitude, it.longitude)
if (::loadPos.isInitialized) {
var distance = LocationUtils.getInstance().getDistance(
gdLatLng,
loadPos
) + "km"
binding.tvLoadDis.text = distance
}
} else {
showToast("定位失败,请检查定位权限是否开启")
}
}
}
} }
} }

View File

@ -3,7 +3,7 @@ package com.dahe.gldriver.ui.waybill.activity
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.amap.api.maps2d.model.LatLng import com.amap.api.maps.model.LatLng
import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.UpPicBean import com.dahe.gldriver.bean.UpPicBean
import com.dahe.gldriver.bean.WaybillPhoto import com.dahe.gldriver.bean.WaybillPhoto
@ -112,7 +112,6 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
} }
//回单处理 //回单处理
recyclerView2.run { recyclerView2.run {
layoutManager = layoutManager =
@ -133,14 +132,14 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
override fun openPicture() { override fun openPicture() {
PopsUtils.getInstance().showSelPic(mContext, myAdapter) { PopsUtils.getInstance().showSelPic(mContext, myAdapter) {
OssServiceUtil.getInstance().run { OssServiceUtil.getInstance().run {
asyncPutImage(it[0].realPath, this@WaybillUpPicActivity) asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
setResultCallBack { data, oldPath -> setResultCallBack { data, oldPath ->
picBean = WaybillPhoto() picBean = WaybillPhoto()
picBean.run { picBean.run {
photoUrl = oldPath photoUrl = oldPath
receiptType = if (type == 1) "4" else if (type == 2) "5" else "6" receiptType =
if (type == 1) "4" else if (type == 2) "5" else "6"
this.type = "3" this.type = "3"
} }
upBean.waybillPhotoList.add(picBean) upBean.waybillPhotoList.add(picBean)
@ -163,31 +162,35 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
waybillId = this@WaybillUpPicActivity.waybillId waybillId = this@WaybillUpPicActivity.waybillId
latitude = latLng.latitude.toString() latitude = latLng.latitude.toString()
longitude = latLng.longitude.toString() longitude = latLng.longitude.toString()
orderChildreId = this@WaybillUpPicActivity.childreId // orderChildreId = this@WaybillUpPicActivity.childreId
this.type = if (type == 1) "1" else "2" this.type = if (type == 1) "1" else "2"
} }
if (type==2){
if (upBean.waybillPhotoList.find { it.receiptType == "4" || it.receiptType == "5" } == null) {
showToast("卸货请上传卸货回单照片")
return@setOnClickListener
}
}
DataManager.getInstance().driverLoadOrUnload(upBean) DataManager.getInstance().driverLoadOrUnload(upBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<String>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<String>() {
override fun onSuccess(t: CommonResponseBean<String>) { override fun onSuccess(t: CommonResponseBean<String>) {
super.onSuccess(t) super.onSuccess(t)
if (1 == type) {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 1) })
} else {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 2) })
}
} }
})) }))
if (1 == type) {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 1) })
} else {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 2) })
}
} }
} }
} }
@ -200,7 +203,7 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
fun getLocation() { fun getLocation() {
LoadingUtils.instance.showLoading(this,"定位中,请稍等...") LoadingUtils.instance.showLoading(this, "定位中,请稍等...")
GDLocationUtils.instance.getLocation(this@WaybillUpPicActivity) { GDLocationUtils.instance.getLocation(this@WaybillUpPicActivity) {
//errCode等于0代表定位成功其他的为定位失败具体的可以参照官网定位错误码说明 //errCode等于0代表定位成功其他的为定位失败具体的可以参照官网定位错误码说明
runOnUiThread { runOnUiThread {

View File

@ -2,17 +2,23 @@ package com.dahe.gldriver.ui.waybill.fragment
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.os.Bundle
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillListAdapter import com.dahe.gldriver.adapter.WaybillListAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.callback.OnSearchListener import com.dahe.gldriver.callback.OnSearchListener
import com.dahe.gldriver.databinding.FragmentWaybillBinding import com.dahe.gldriver.databinding.FragmentWaybillBinding
import com.dahe.gldriver.databinding.FragmentWaybillListBinding import com.dahe.gldriver.databinding.FragmentWaybillListBinding
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.ui.mine.activity.CarsManActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillLoadActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillUpPicActivity
import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.OrderUtils
import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
@ -20,6 +26,7 @@ import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack import com.dahe.mylibrary.callback.RefreshCallBack
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -30,7 +37,8 @@ import io.reactivex.rxjava3.schedulers.Schedulers
* @Date 2024/1/24 14:06 * @Date 2024/1/24 14:06
* @Description 待装货 * @Description 待装货
*/ */
class WaitLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCallBack , OnSearchListener { class WaitLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCallBack,
OnSearchListener {
lateinit var adapter: WaybillListAdapter lateinit var adapter: WaybillListAdapter
@ -54,6 +62,29 @@ class WaitLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCall
adapter = WaybillListAdapter()// 打开空布局功能 adapter = WaybillListAdapter()// 打开空布局功能
(adapter as WaybillListAdapter).isStateViewEnable = true (adapter as WaybillListAdapter).isStateViewEnable = true
adapter as WaybillListAdapter adapter as WaybillListAdapter
}.apply {
setOnItemClickListener() { adapter, view, position ->
//装货页面
ActivityUtils.startActivity(context,
WaybillLoadActivity::class.java,
Bundle().apply {
putString(AppConfig.ORDER_ID, items[position].orderId)
}
)
}
addOnItemChildClickListener(R.id.btnOk) { _, _, position ->
val orderBean = items[position]
ActivityUtils.startActivity(
mContext,
WaybillUpPicActivity::class.java,
Bundle().apply {
putInt(AppConfig.SUCCESS_TYPE, 1)
putString(AppConfig.ORDER_ID, orderBean.orderId)
putString(AppConfig.WAYBILL_ID, orderBean.waybillId)
// putString(AppConfig.CHILDRE_ID, orderBean.orderChildreId)
})
}
} }
} }
initData() initData()
@ -68,16 +99,16 @@ class WaitLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCall
} }
private fun initData(search: String = "") { private fun initData(search: String = "") {
DataManager.getInstance().selectMyWaybillList(mRefreshPage,mRefreshCount,"102040",search) DataManager.getInstance().selectMyWaybillList(mRefreshPage, mRefreshCount, "102040", search)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<MutableList<OrderBean>>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<MutableList<OrderBean>>() {
override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) { override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) {
super.onSuccess(t) super.onSuccess(t)
if (mRefreshPage === 1) { if (mRefreshPage === 1) {
if (t.data.size==0){ if (t.data.size == 0) {
adapter.submitList(null) adapter.submitList(null)
adapter.setStateViewLayout(mContext, R.layout.empty_view) adapter.setStateViewLayout(mContext, R.layout.empty_view)
}else{ } else {
adapter?.submitList(t.data) adapter?.submitList(t.data)
} }
} else { } else {
@ -89,7 +120,10 @@ class WaitLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCall
) )
} }
override fun onCodeError(mContext: Context?, t: CommonResponseBean<MutableList<OrderBean>>) { override fun onCodeError(
mContext: Context?,
t: CommonResponseBean<MutableList<OrderBean>>
) {
super.onCodeError(mContext, t) super.onCodeError(mContext, t)
setFinishRefresh( setFinishRefresh(
binding.refresh, binding.refresh,

View File

@ -2,17 +2,22 @@ package com.dahe.gldriver.ui.waybill.fragment
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.os.Bundle
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.dahe.gldriver.R import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillListAdapter import com.dahe.gldriver.adapter.WaybillListAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.callback.OnSearchListener import com.dahe.gldriver.callback.OnSearchListener
import com.dahe.gldriver.databinding.FragmentWaybillBinding import com.dahe.gldriver.databinding.FragmentWaybillBinding
import com.dahe.gldriver.databinding.FragmentWaybillListBinding import com.dahe.gldriver.databinding.FragmentWaybillListBinding
import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.ui.waybill.activity.WaybillLoadActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillUnlLoadActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillUpPicActivity
import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.OrderUtils
import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.WayBillBean import com.dahe.glex.bean.WayBillBean
@ -20,6 +25,7 @@ import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack import com.dahe.mylibrary.callback.RefreshCallBack
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -56,6 +62,28 @@ class WaitUnLoadFragment : BaseFragment<FragmentWaybillListBinding>(), RefreshCa
// 打开空布局功能 // 打开空布局功能
(adapter as WaybillListAdapter).isStateViewEnable = true (adapter as WaybillListAdapter).isStateViewEnable = true
adapter as WaybillListAdapter adapter as WaybillListAdapter
}.apply {
setOnItemClickListener() { adapter, view, position ->
//装货页面
ActivityUtils.startActivity(context,
WaybillUnlLoadActivity::class.java,
Bundle().apply {
putString(AppConfig.ORDER_ID, items[position].orderId)
}
)
}
addOnItemChildClickListener(R.id.btnOk) { _, _, position ->
val orderBean = items[position]
ActivityUtils.startActivity(
mContext,
WaybillUpPicActivity::class.java,
Bundle().apply {
putInt(AppConfig.SUCCESS_TYPE, 2)
putString(AppConfig.ORDER_ID, orderBean.orderId)
putString(AppConfig.WAYBILL_ID, orderBean.waybillId)
})
}
} }
} }
initData() initData()

View File

@ -6,6 +6,7 @@ import com.dahe.gldriver.mypop.OnCarSelectListener
import com.dahe.gldriver.mypop.PopBottomCar import com.dahe.gldriver.mypop.PopBottomCar
import com.dahe.mylibrary.base.SingletonNoPHolder import com.dahe.mylibrary.base.SingletonNoPHolder
import com.lxj.xpopup.XPopup import com.lxj.xpopup.XPopup
import com.lxj.xpopup.interfaces.OnCancelListener
import com.lxj.xpopup.interfaces.OnConfirmListener import com.lxj.xpopup.interfaces.OnConfirmListener
/** /**
@ -46,4 +47,22 @@ class CommonPopUtils private constructor() {
} }
/**
*
* @param context Context
* @param title String
* @param content String
* @param listener OnConfirmListener
*/
fun showCommCenterPop(context: Context,title:String = "提示" ,content: String,listener: OnConfirmListener) {
XPopup.Builder(context)
.isDestroyOnDismiss(true)
.asConfirm(
title, content,
"取消", "确定",
listener, null, false
)
.show()
}
} }

View File

@ -1,7 +1,13 @@
package com.dahe.gldriver.utils package com.dahe.gldriver.utils
import com.amap.api.maps2d.AMapException import com.amap.api.maps.AMap
import com.amap.api.maps2d.model.LatLng import com.amap.api.maps.AMapException
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.BitmapDescriptorFactory
import com.amap.api.maps.model.CameraPosition
import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.MarkerOptions
import com.dahe.gldriver.R
import com.dahe.mylibrary.base.SingletonNoPHolder import com.dahe.mylibrary.base.SingletonNoPHolder
/** /**
@ -64,4 +70,15 @@ class LocationUtils private constructor() {
} }
} }
} }
fun changeCamera(latLng: LatLng,aMap: AMap){
aMap.moveCamera(CameraUpdateFactory.newCameraPosition(CameraPosition(latLng,12f,30f,30f)))
aMap.clear()
aMap.addMarker(
MarkerOptions().position(latLng)
.icon(
BitmapDescriptorFactory.fromResource(R.drawable.icon_loca_load)
)
)
}
} }

View File

@ -12,7 +12,7 @@ import com.dahe.mylibrary.utils.BaseSPUtils
* @Description TODO * @Description TODO
*/ */
class SPUtils private constructor() : BaseSPUtils() { class SPUtils private constructor() : BaseSPUtils() {
companion object{ companion object {
val instance = Holder.holder val instance = Holder.holder
} }
@ -37,10 +37,26 @@ class SPUtils private constructor() : BaseSPUtils() {
*/ */
fun getUserInfo(context: Context?): UserBean? { fun getUserInfo(context: Context?): UserBean? {
return JsonUtils.getInstance() return JsonUtils.getInstance()
.fromJson(BaseSPUtils.get(context, BaseSPUtils.USER_INFO_KEY, "") as String, .fromJson(
UserBean::class.java) BaseSPUtils.get(context, BaseSPUtils.USER_INFO_KEY, "") as String,
UserBean::class.java
)
} }
fun setUserToken(context: Context?, token: String) {
put(context, USER_TOKEN_KEY, token)
}
fun getUserToken(context: Context?): String {
return get(context, USER_TOKEN_KEY, "") as String
}
fun removeUserToken(context: Context?) {
remove(context, USER_TOKEN_KEY)
}
/** /**
* 存服务器类型 * 存服务器类型
* *
@ -72,8 +88,10 @@ class SPUtils private constructor() : BaseSPUtils() {
fun getSearchCache(context: Context?): String? { fun getSearchCache(context: Context?): String? {
return JsonUtils.getInstance() return JsonUtils.getInstance()
.fromJson(BaseSPUtils.get(context, BaseSPUtils.SEARRH_CACHE, "") as String, .fromJson(
String::class.java) BaseSPUtils.get(context, BaseSPUtils.SEARRH_CACHE, "") as String,
String::class.java
)
} }
fun removeSearchCache(context: Context?) { fun removeSearchCache(context: Context?) {
@ -89,8 +107,10 @@ class SPUtils private constructor() : BaseSPUtils() {
fun getNaviPreferenceCache(context: Context?): String? { fun getNaviPreferenceCache(context: Context?): String? {
return JsonUtils.getInstance() return JsonUtils.getInstance()
.fromJson(BaseSPUtils.get(context, BaseSPUtils.NAVI_PH_EDIT_CACHE, "") as String, .fromJson(
String::class.java) BaseSPUtils.get(context, BaseSPUtils.NAVI_PH_EDIT_CACHE, "") as String,
String::class.java
)
} }
fun removeNaviPreference(context: Context?) { fun removeNaviPreference(context: Context?) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -21,19 +21,6 @@
android:layout_marginTop="@dimen/dp_100" android:layout_marginTop="@dimen/dp_100"
android:orientation="vertical"> android:orientation="vertical">
<com.dahe.mylibrary.weight.CircleBarView
android:id="@+id/circleBarView"
android:layout_width="300dp"
android:layout_height="@dimen/dp_150"
app:progress_color1="@color/red"
/>
<com.dahe.mylibrary.weight.CircleBarView2
android:id="@+id/circleBarView2"
android:layout_width="300dp"
android:layout_height="@dimen/dp_150"
/>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -16,7 +16,7 @@
<include layout="@layout/common_toolbar"></include> <include layout="@layout/common_toolbar"></include>
</RelativeLayout> </RelativeLayout>
<com.amap.api.maps2d.MapView <com.amap.api.maps.MapView
android:id="@+id/mapView" android:id="@+id/mapView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_200" /> android:layout_height="@dimen/dp_200" />
@ -54,6 +54,7 @@
<TextView <TextView
android:id="@+id/tvWaybillNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="运单号DJHS15541125541" android:text="运单号DJHS15541125541"
@ -61,6 +62,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvWaybillStatu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
@ -76,6 +78,7 @@
android:background="@drawable/head_defaut" /> android:background="@drawable/head_defaut" />
<TextView <TextView
android:id="@+id/tvComName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
@ -120,40 +123,47 @@
app:cardBackgroundColor="@color/white" app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8"> app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:orientation="horizontal"
android:padding="@dimen/dp_16"> android:padding="@dimen/dp_16">
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="豫A87SF9" android:text="豫A87SF9"
android:gravity="left"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_17" android:textSize="@dimen/sp_17"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarLen"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:gravity="center"
android:text="16米/30吨" android:text="16米/30吨"
android:textColor="@color/color_01" android:textColor="@color/color_01"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarType"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:gravity="center"
android:layout_centerVertical="true"
android:text="重型栏板半挂车" android:text="重型栏板半挂车"
android:textColor="@color/color_01" android:textColor="@color/color_01"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</RelativeLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
@ -463,13 +473,14 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvCarInfo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvCarTitle" android:layout_alignBottom="@+id/tvCarTitle"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_40" android:layout_marginTop="@dimen/dp_40"
android:paddingRight="@dimen/dp_16" android:paddingRight="@dimen/dp_16"
android:text="整车 4.2/6.2/6.8 米 高栏/厢式" android:text="4.2/6.2/6.8 米 高栏/厢式"
android:textColor="@color/main_red" android:textColor="@color/main_red"
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
@ -485,6 +496,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvGoods"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvGoodsTitle" android:layout_alignBottom="@+id/tvGoodsTitle"
@ -507,6 +519,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvRemark"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvNotesTitle" android:layout_alignBottom="@+id/tvNotesTitle"

View File

@ -16,7 +16,7 @@
<include layout="@layout/common_toolbar"></include> <include layout="@layout/common_toolbar"></include>
</RelativeLayout> </RelativeLayout>
<com.amap.api.maps2d.MapView <com.amap.api.maps.MapView
android:id="@+id/mapView" android:id="@+id/mapView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_200" /> android:layout_height="@dimen/dp_200" />
@ -54,6 +54,7 @@
<TextView <TextView
android:id="@+id/tvWaybillNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="运单号DJHS15541125541" android:text="运单号DJHS15541125541"
@ -61,6 +62,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvWaybillStatu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
@ -76,6 +78,7 @@
android:background="@drawable/head_defaut" /> android:background="@drawable/head_defaut" />
<TextView <TextView
android:id="@+id/tvComName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
@ -120,40 +123,47 @@
app:cardBackgroundColor="@color/white" app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8"> app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:orientation="horizontal"
android:padding="@dimen/dp_16"> android:padding="@dimen/dp_16">
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="豫A87SF9" android:text="豫A87SF9"
android:gravity="left"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_17" android:textSize="@dimen/sp_17"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarLen"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:gravity="center"
android:text="16米/30吨" android:text="16米/30吨"
android:textColor="@color/color_01" android:textColor="@color/color_01"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:layout_weight="1"
android:id="@+id/tvCarType"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:gravity="center"
android:layout_centerVertical="true"
android:text="重型栏板半挂车" android:text="重型栏板半挂车"
android:textColor="@color/color_01" android:textColor="@color/color_01"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</RelativeLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
@ -400,6 +410,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvCarInfo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvCarTitle" android:layout_alignBottom="@+id/tvCarTitle"
@ -422,6 +433,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvGoods"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvGoodsTitle" android:layout_alignBottom="@+id/tvGoodsTitle"
@ -444,6 +456,7 @@
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
<TextView <TextView
android:id="@+id/tvRemark"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvNotesTitle" android:layout_alignBottom="@+id/tvNotesTitle"

View File

@ -17,57 +17,69 @@
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/ivHead"
android:layout_width="@dimen/dp_76" android:layout_width="@dimen/dp_76"
android:layout_height="@dimen/dp_55" android:layout_height="@dimen/dp_55"
android:background="@drawable/login_car" android:background="@drawable/login_car" />
/>
<RelativeLayout
<LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_16" android:layout_marginLeft="@dimen/dp_16"
android:layout_weight="1"> android:layout_weight="1"
android:orientation="vertical">
<TextView <TextView
android:id="@+id/tvCarNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="豫A4982S" android:text="豫A4982S"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" /> android:textSize="@dimen/sp_18" />
<TextView <LinearLayout
android:id="@+id/tvCarType" android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginTop="@dimen/dp_6" android:layout_marginTop="@dimen/dp_6"
android:text="重型半挂牵引车" android:orientation="horizontal">
android:textColor="@color/color_9"
android:textSize="@dimen/sp_12" />
<TextView <TextView
android:id="@+id/tvCarLen" android:id="@+id/tvCarType"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_weight="1.5"
android:layout_marginLeft="@dimen/dp_16" android:maxLines="1"
android:layout_marginTop="@dimen/dp_6" android:singleLine="true"
android:layout_toRightOf="@+id/tvCarType" android:text="重型半挂牵引车"
android:text="16米" android:textColor="@color/color_9"
android:textColor="@color/color_9" android:textSize="@dimen/sp_12" />
android:textSize="@dimen/sp_12" />
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/tvCarLen"
android:layout_height="wrap_content" android:layout_width="0dp"
android:layout_alignParentBottom="true" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_16" android:layout_weight="1"
android:layout_marginTop="@dimen/dp_6" android:maxLines="1"
android:layout_toRightOf="@+id/tvCarLen" android:singleLine="true"
android:text="30顿" android:text="16米"
android:textColor="@color/color_9" android:textColor="@color/color_9"
android:textSize="@dimen/sp_12" /> android:textSize="@dimen/sp_12" />
</RelativeLayout>
<TextView
android:id="@+id/tvCarWei"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="30顿"
android:textColor="@color/color_9"
android:textSize="@dimen/sp_12" />
</LinearLayout>
</LinearLayout>
<TextView <TextView
android:id="@+id/tvUnbind" android:id="@+id/tvUnbind"

View File

@ -3,8 +3,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/shape_white_8" android:background="@drawable/shape_white_8"
android:padding="@dimen/dp_10" android:orientation="vertical"
android:orientation="vertical"> android:padding="@dimen/dp_10">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -63,28 +63,38 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_20" /> android:textSize="@dimen/sp_20" />
<View <LinearLayout
android:layout_width="@dimen/dp_30" android:layout_weight="1"
android:layout_height="@dimen/dp_1" android:gravity="center"
android:background="@color/black" />
<TextView
android:id="@+id/tvDis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginRight="@dimen/dp_8"
android:text="56km" />
<View
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_1"
android:background="@color/black" />
<TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal">
<View
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_1"
android:background="@color/black" />
<TextView
android:id="@+id/tvDis"
android:maxLines="1"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginRight="@dimen/dp_8"
android:text="56km" />
<View
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_1"
android:background="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/tvEnd" android:id="@+id/tvEnd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"

View File

@ -13,6 +13,7 @@ import com.luck.picture.lib.basic.PictureSelectionCameraModel
import com.luck.picture.lib.basic.PictureSelectionModel import com.luck.picture.lib.basic.PictureSelectionModel
import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.basic.PictureSelector
import com.luck.picture.lib.config.SelectMimeType import com.luck.picture.lib.config.SelectMimeType
import com.luck.picture.lib.config.SelectModeConfig
import com.luck.picture.lib.entity.LocalMedia import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.lxj.xpopup.core.BottomPopupView import com.lxj.xpopup.core.BottomPopupView
@ -92,6 +93,7 @@ class PopBottomPic(
.isMaxSelectEnabledMask(true) .isMaxSelectEnabledMask(true)
.setMaxSelectNum(1) .setMaxSelectNum(1)
.isGif(false) .isGif(false)
.setSelectionMode(SelectModeConfig.SINGLE)
.setSelectedData(myAdapter.data) .setSelectedData(myAdapter.data)
selectionModel.forResult(object : OnResultCallbackListener<LocalMedia> { selectionModel.forResult(object : OnResultCallbackListener<LocalMedia> {
override fun onResult(result: ArrayList<LocalMedia>) { override fun onResult(result: ArrayList<LocalMedia>) {

View File

@ -87,7 +87,7 @@ class PopNorBottomPic(
.isPreviewImage(true) .isPreviewImage(true)
.isMaxSelectEnabledMask(true) .isMaxSelectEnabledMask(true)
.setMaxSelectNum(1) .setMaxSelectNum(1)
.setSelectionMode(SelectModeConfig.SINGLE ) .setSelectionMode(SelectModeConfig.SINGLE)
.isGif(false) .isGif(false)
// .isDirectReturnSingle(true) // .isDirectReturnSingle(true)
// .setSelectedData(myAdapter.data) // .setSelectedData(myAdapter.data)

View File

@ -18,6 +18,7 @@ public class BaseSPUtils {
*/ */
public static final String FILE_NAME = "sp_data"; public static final String FILE_NAME = "sp_data";
public static final String USER_INFO_KEY = "user_info_key"; public static final String USER_INFO_KEY = "user_info_key";
public static final String USER_TOKEN_KEY = "user_token_key";
public static final String NET_SERVICE_TEST = "net_service_test"; public static final String NET_SERVICE_TEST = "net_service_test";
public static final String SEARRH_CACHE = "search_cache"; public static final String SEARRH_CACHE = "search_cache";
public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache"; public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache";