diff --git a/app/build.gradle b/app/build.gradle
index ec713e1..a0fb45b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -138,4 +138,8 @@ dependencies {
//高德地图
implementation 'com.amap.api:map2d:6.0.0'
+
+ //定位功能
+ implementation 'com.amap.api:location:6.4.2'//6.4.2
+ implementation 'com.amap.api:search:9.7.0'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7a1f69e..4c9afde 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,6 +25,7 @@
+
diff --git a/app/src/main/java/com/dahe/gldriver/adapter/WaybillAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/WaybillAdapter.kt
index 4926496..39017a2 100644
--- a/app/src/main/java/com/dahe/gldriver/adapter/WaybillAdapter.kt
+++ b/app/src/main/java/com/dahe/gldriver/adapter/WaybillAdapter.kt
@@ -3,10 +3,14 @@ package com.dahe.gldriver.adapter
import android.content.Context
import android.view.ViewGroup
import android.widget.Button
+import android.widget.ImageView
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dahe.gldriver.R
+import com.dahe.gldriver.utils.OrderUtils
+import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.utils.ImageLoader
/**
* @ClassName WaybillAdapter
@@ -15,8 +19,39 @@ import com.dahe.glex.bean.WayBillBean
* @Description TODO
*/
class WaybillAdapter :
- BaseQuickAdapter() {
- override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) {
+ BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: OrderBean?) {
+ item?.run {
+ holder.run {
+ setText(
+ R.id.tvStart,
+ """${
+ if (loadingCity.length > 1) loadingCity.substring(0, 2) else loadingCity
+ } ${if (loadingArea.length > 1) loadingArea.substring(0, 2) else loadingArea}"""
+ )
+ setText(
+ R.id.tvEnd, """${
+ if (receiverCity.length > 1) receiverCity.substring(0, 2) else receiverCity
+ } ${
+ if (receiverArea.length > 1) receiverArea.substring(0, 2) else receiverArea
+ }"""
+ )
+ setText(R.id.tvMoney, driverFreight)
+ setText(R.id.tvCom, realCompanyName)
+ setText(R.id.tvDis, """距离:${distance}KM""")
+ setText(R.id.tvCredit, """信用 ${shipperCreditRating}""")
+ setText(
+ R.id.tvRate,
+ """交易 ${shipperTransactionVolume} 好评率 ${shipperPositiveReviewRate}"""
+ )
+ setText(R.id.tvProduct, """${vehicleLength}/${vehicleType}/""")
+ setText(R.id.tvModel, """${if (orderType == "0") "一装一卸" else "一装多卸"}""")
+ setText(R.id.btnOk, OrderUtils.getInstance().getOrderStatu(orderStatus))
+
+ ImageLoader.getInstance()
+ .loadRoundImage(context, avatar, 6, getView(R.id.imgHead))
+ }
+ }
}
diff --git a/app/src/main/java/com/dahe/gldriver/adapter/WaybillListAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/WaybillListAdapter.kt
index 1c720f3..b39c93c 100644
--- a/app/src/main/java/com/dahe/gldriver/adapter/WaybillListAdapter.kt
+++ b/app/src/main/java/com/dahe/gldriver/adapter/WaybillListAdapter.kt
@@ -2,10 +2,13 @@ package com.dahe.gldriver.adapter
import android.content.Context
import android.view.ViewGroup
+import android.widget.ImageView
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dahe.gldriver.R
-import com.dahe.glex.bean.WayBillBean
+import com.dahe.gldriver.utils.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.mylibrary.utils.ImageLoader
/**
* @ClassName WaybillAdapter
@@ -13,9 +16,42 @@ import com.dahe.glex.bean.WayBillBean
* @Date 2024/1/23 16:27
* @Description TODO
*/
-class WaybillListAdapter() :
- BaseQuickAdapter() {
- override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) {
+class WaybillListAdapter :
+ BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: OrderBean?) {
+ item?.let {
+ holder.run {
+ setText(R.id.tvWaybillId,it.orderNum)
+ setText(R.id.tvStatu,OrderUtils.getInstance().getOrderStatu(it.orderStatus))
+ setText(R.id.tvType,"""${if (it.orderType == "0") "一装一卸" else "一装多卸"}""")
+ setText(R.id.tvTime,"""${it.loadingDeadline}装货""")
+ setText(R.id.tvDis,"""${it.distance}km""")
+ setText(R.id.tvCarNum,it.vehicleNum)
+ setText(R.id.tvGood,"""${it.goodItemGrossWeight}吨/${it.goodName}""")
+ setText(R.id.tvMoney,it.driverFreight)
+ setText(R.id.tvComName,it.realCompanyName)
+ setText(R.id.btnOk,OrderUtils.getInstance().getNextByStatu(it.orderStatus))
+
+
+ ImageLoader.getInstance()
+ .loadRoundImage(context, it.avatar, 6, getView(R.id.ivHead))
+
+ setText(
+ R.id.tvStart,
+ """${
+ if (it.loadingCity.length > 1) it.loadingCity.substring(0, 2) else it.loadingCity
+ } ${if (it.loadingArea.length > 1) it.loadingArea.substring(0, 2) else it.loadingArea}"""
+ )
+ setText(
+ R.id.tvEnd, """${
+ if (it.receiverCity.length > 1) it.receiverCity.substring(0, 2) else it.receiverCity
+ } ${
+ if (it.receiverArea.length > 1) it.receiverArea.substring(0, 2) else it.receiverArea
+ }"""
+ )
+ }
+ }
+
}
override fun onCreateViewHolder(
@@ -24,7 +60,7 @@ class WaybillListAdapter() :
viewType: Int
): QuickViewHolder {
// 返回一个 ViewHolder
- return QuickViewHolder(R.layout.item_waybill, parent)
+ return QuickViewHolder(R.layout.item_waybill2, parent)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/adapter/WaybillNodeAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/WaybillNodeAdapter.kt
new file mode 100644
index 0000000..d9bb06a
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/adapter/WaybillNodeAdapter.kt
@@ -0,0 +1,44 @@
+package com.dahe.gldriver.adapter
+
+import android.content.Context
+import android.view.ViewGroup
+import android.widget.Button
+import android.widget.ImageView
+import com.chad.library.adapter4.BaseQuickAdapter
+import com.chad.library.adapter4.viewholder.QuickViewHolder
+import com.dahe.gldriver.R
+import com.dahe.gldriver.bean.OrderChild
+import com.dahe.gldriver.utils.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.utils.ImageLoader
+
+/**
+ * @ClassName WaybillAdapter
+ * @Author 用户
+ * @Date 2024/3/5 16:27
+ * @Description TODO
+ */
+class WaybillNodeAdapter :
+ BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: OrderChild?) {
+ item?.run {
+ holder.run {
+ setText(R.id.tvLoad, item?.city+item?.area+item?.address)
+ setText(R.id.tvPhone, """${item?.name} ${item?.phone}""")
+ setBackgroundResource(R.id.ivLoad,if (item.type == "1") R.drawable.icon_load else R.drawable.icon_unload)
+
+ }
+ }
+
+ }
+
+ override fun onCreateViewHolder(
+ context: Context,
+ parent: ViewGroup,
+ viewType: Int
+ ): QuickViewHolder {
+ // 返回一个 ViewHolder
+ return QuickViewHolder(R.layout.item_waybill_node, parent)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt b/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt
index d1dc32b..68a4e20 100644
--- a/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt
+++ b/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt
@@ -11,6 +11,9 @@ object AppConfig {
const val TIME = "DA_HE_TIME"
const val ID = "DA_HE_ID"
const val PHONE = "DA_HE_PHONE"
+ const val ORDER_ID = "DA_HE_ORDER_ID"
+ const val WAYBILL_ID = "DA_HE_WAYBILL_ID"
+ const val CHILDRE_ID = "DA_HE_CHILDRE_ID"
const val CODE = "DA_HE_PHONE"
const val SUCCESS_TYPE = "DA_HE_SUCCESS_TYPE"
diff --git a/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt
index cd9342f..db78075 100644
--- a/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt
+++ b/app/src/main/java/com/dahe/gldriver/bean/OrderBean.kt
@@ -7,35 +7,38 @@ package com.dahe.glex.bean
* @Description TODO
*/
data class OrderBean(
- val avatar: String,
- val distance: String,
- val driverFreight: Double,
- val goodsList: List,
- val loadingArea: String,
- val loadingAreaCode: String,
- val loadingCity: String,
- val loadingCityCode: String,
- val loadingDeadline: String,
- val loadingProvince: String,
- val loadingProvinceCode: String,
- val orderId: String,
- val orderNum: String,
- val orderStatus: Int,
- val orderType: String,
- val passingPointsNum: String,
- val realCompanyName: String,
- val receiverArea: String,
- val receiverAreaCode: String,
- val receiverCity: String,
- val receiverCityCode: String,
- val receiverProvince: String,
- val receiverProvinceCode: String,
- val requirement: String,
- val shipperCreditRating: String,
- val shipperPositiveReviewRate: String,
- val shipperTransactionVolume: String,
- val vehicleLength: String,
- val vehicleType: String
+ val avatar: String= "",
+ val distance: String= "",
+ val driverFreight: String= "",
+ val goodsList: List = mutableListOf(),
+ val loadingArea: String= "",
+ val loadingAreaCode: String= "",
+ val loadingCity: String= "",
+ val loadingCityCode: String= "",
+ val loadingDeadline: String= "",
+ val loadingProvince: String= "",
+ val loadingProvinceCode: String= "",
+ val orderId: String= "",
+ val orderNum: String= "",
+ val orderStatus: String= "",
+ val orderType: String= "",
+ val passingPointsNum: String= "",
+ val realCompanyName: String= "",
+ val receiverArea: String= "",
+ val receiverAreaCode: String= "",
+ val receiverCity: String= "",
+ val receiverCityCode: String= "",
+ val receiverProvince: String= "",
+ val receiverProvinceCode: String= "",
+ val requirement: String= "",
+ val shipperCreditRating: String= "",
+ val shipperPositiveReviewRate: String= "",
+ val shipperTransactionVolume: String= "",
+ val vehicleLength: String= "",
+ val vehicleType: String = "",
+ val goodItemGrossWeight: String = "",
+ val goodName: String = "",
+ val vehicleNum: String = ""
)
data class Goods(
diff --git a/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt
new file mode 100644
index 0000000..32aa9f1
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/bean/OrderDetailBean.kt
@@ -0,0 +1,96 @@
+package com.dahe.gldriver.bean
+
+/**
+ * @ClassName OrderDetailBean
+ * @Author john
+ * @Date 2024/3/4 10:36
+ * @Description TODO
+ */
+data class OrderDetailBean(
+ val avatar: String,
+ val captainInfo: CaptainInfo,
+ val distance: String,
+ val driverFreight: String,
+ val goodsList: List,
+ val loadingDeadline: String,
+ val orderChildList: List,
+ val orderId: String,
+ val orderNum: String,
+ val orderStatus: String,
+ val orderType: String,
+ val passingPoStringsNum: String,
+ val realCompanyName: String,
+ val receiverBusinessCode: String,
+ val receiverBusinessName: String,
+ val receiverDeadline: String,
+ val requirement: String,
+ val shipperContactName: String,
+ val shipperContactPhone: String,
+ val vehicleLength: String,
+ val vehicleType: String,
+ val waybillId: String,
+ val waybillInfo: WaybillInfo
+)
+
+data class CaptainInfo(
+ val avatar: String,
+ val captainId: String,
+ val captainName: String,
+ val captaStringype: String,
+ val contactName: String,
+ val contactPhone: String,
+ val status: String
+)
+
+data class Goods(
+ val goodCube: String,
+ val goodItemGrossWeight: String,
+ val goodName: String,
+ val goodNum: String,
+ val orderGoodsId: String
+)
+
+data class OrderChild(
+ val address: String,
+ val area: String,
+ val areaCode: String,
+ val businessCode: String,
+ val businessName: String,
+ val city: String,
+ val cityCode: String,
+ val cost: String,
+ val displayOrder: String,
+ val isPassingPoStrings: String,
+ val latitude: String,
+ val longitude: String,
+ val name: String,
+ val orderChildreId: String,
+ val orderId: String,
+ val phone: String,
+ val province: String,
+ val provinceCityArea: String,
+ val provinceCode: String,
+ val sortValue: String,
+ val status: String,
+ val totalAmount: String,
+ val type: String
+)
+
+data class WaybillInfo(
+ val captainId: String,
+ val carId: String,
+ val carUrl: String,
+ val contactName: String,
+ val contactPhone: String,
+ val driverId: String,
+ val idcardName: String,
+ val idcardSex: String,
+ val isRealName: String,
+ val loadTime: String,
+ val receivingOrderTime: String,
+ val trailerId: String,
+ val trailerVehicleNum: String,
+ val unloadTime: String,
+ val vehicleNum: String,
+ val waybillId: String
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/bean/UpPicBean.kt b/app/src/main/java/com/dahe/gldriver/bean/UpPicBean.kt
new file mode 100644
index 0000000..8cba551
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/bean/UpPicBean.kt
@@ -0,0 +1,35 @@
+package com.dahe.gldriver.bean
+
+/**
+ * @ClassName UpPicBean
+ * @Author john
+ * @Date 2024/3/4 16:25
+ * @Description TODO
+ */
+data class UpPicBean(
+ var address: String = "",
+ var area: String= "",
+ var areaCode: String= "",
+ var city: String= "",
+ var cityCode: String= "",
+ var latitude: String= "",
+ var longitude: String= "",
+ var orderChildreId: String= "",
+ var orderId: String= "",
+ var province: String= "",
+ var provinceCityArea: String= "",
+ var provinceCode: String= "",
+ var type: String= "",
+ var waybillId: String= "",
+ var waybillPhotoList: MutableList = mutableListOf()
+)
+
+data class WaybillPhoto(
+ var latitude: String= "",
+ var location: String= "",
+ var longitude: String= "",
+ var photoUrl: String= "",
+ var receiptType: String= "",
+ var sortvarue: String= "",
+ var type: String= ""
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/callback/OnSearchListener.kt b/app/src/main/java/com/dahe/gldriver/callback/OnSearchListener.kt
new file mode 100644
index 0000000..317f74c
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/callback/OnSearchListener.kt
@@ -0,0 +1,14 @@
+package com.dahe.gldriver.callback
+
+import com.dahe.gldriver.bean.OcrPersonBean
+import com.luck.picture.lib.entity.LocalMedia
+
+/**
+ * @ClassName OnOcrPicResultListener
+ * @Author john
+ * @Date 2024/2/28 17:18
+ * @Description TODO
+ */
+fun interface OnSearchListener {
+ fun onSearchClick(search: String)
+}
diff --git a/app/src/main/java/com/dahe/gldriver/event/OrderStauEvent.kt b/app/src/main/java/com/dahe/gldriver/event/OrderStauEvent.kt
new file mode 100644
index 0000000..84b0847
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/event/OrderStauEvent.kt
@@ -0,0 +1,16 @@
+package com.dahe.gldriver.event
+
+/**
+ * @ClassName OrderStauEvent
+ * @Author john
+ * @Date 2024/3/5 15:51
+ * @Description statu: 1 刷新
+ */
+class OrderStauEvent constructor(statu: Int) {
+
+ var statu: Int = 0
+
+ init {
+ this.statu = statu
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/net/Api.kt b/app/src/main/java/com/dahe/gldriver/net/Api.kt
index d77081c..72f7351 100644
--- a/app/src/main/java/com/dahe/gldriver/net/Api.kt
+++ b/app/src/main/java/com/dahe/gldriver/net/Api.kt
@@ -1,11 +1,14 @@
package com.dahe.gldriver.net
+
import com.dahe.gldriver.BuildConfig
import com.dahe.gldriver.bean.AuthTeamBean
import com.dahe.gldriver.bean.OcrPersonBean
+import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.bean.OssBean
import com.dahe.gldriver.bean.UpBankInfoBean
import com.dahe.gldriver.bean.UpDriverInfoBean
import com.dahe.gldriver.bean.UpPersonInfoBean
+import com.dahe.gldriver.bean.UpPicBean
import com.dahe.gldriver.bean.UpQualiInfoBean
import com.dahe.glex.bean.*
import com.dahe.mylibrary.net.CommonResponseBean
@@ -128,9 +131,47 @@ interface Api {
fun authenticationCaptain(@Body bankBean: AuthTeamBean): Observable>
+ /**
+ * 货源列表
+ * */
@GET(BASE_URL + "driver/order/list")
fun orderList(): Observable>>
+ /**
+ * 运单列表
+ * */
+ @GET(BASE_URL + "driver/driverWaybill/selectMyWaybillList")
+ fun selectMyWaybillList(
+ @Query("pageNum") pageNum: Int = 1,
+ @Query("pageSize") pageSize: Int = 20,
+ @Query("waybillStatus") waybillStatus: String ="",
+ @Query("searchValue") searchValue: String = ""
+ ): Observable>>
+
+
+ /**
+ * 货源详情
+ * */
+ @GET(BASE_URL + "driver/order/detail")
+ fun orderDetail(@Query("orderId") orderId: String): Observable>
+
+ /**
+ * 司机接单
+ * */
+ @GET(BASE_URL + "driver/driverWaybill/receivingOrders")
+ fun receivingOrders(
+ @Query("orderId") orderId: String,
+ @Query("carId") carId: String
+ ): Observable>
+
+ /**
+ * 司机装卸货
+ * */
+ @POST(BASE_URL + "driver/driverWaybill/driverLoadOrUnload")
+ fun driverLoadOrUnload(
+ @Body upPicBean: UpPicBean
+ ): Observable>
+
@GET(BASE_URL + "driver/driver/setUpDriverRole")
fun setUpDriverRole(@Query("role") role: String): Observable>
diff --git a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt
index 1449161..8b6a970 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt
@@ -5,7 +5,10 @@ import android.os.Build
import android.os.Bundle
import android.widget.Toast
import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentStatePagerAdapter
import androidx.viewpager.widget.ViewPager
+import com.amap.api.location.AMapLocationClient.updatePrivacyAgree
+import com.amap.api.location.AMapLocationClient.updatePrivacyShow
import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.MyHomePagerAdapter
import com.dahe.gldriver.bean.TabBean
@@ -27,7 +30,7 @@ import java.util.TimerTask
* @Date 2023/12/27 17:12
* @Description TODO
*/
-class HomeActivity: BaseActivity(), OnTabSelectListener,
+class HomeActivity : BaseActivity(), OnTabSelectListener,
ViewPager.OnPageChangeListener {
private val mNormalRes = mutableListOf(
@@ -44,24 +47,33 @@ class HomeActivity: BaseActivity(), OnTabSelectListener,
R.drawable.tab_waybill_press,
R.drawable.tab_mine_press
)
- private var mTitles = arrayOf("首页","消息","运单","我的")
+ private var mTitles = arrayOf("首页", "消息", "运单", "我的")
private var mTabEntities = arrayListOf(
- TabBean(mTitles[0],mSelectRes[0],mNormalRes[0]),
- TabBean(mTitles[1],mSelectRes[1],mNormalRes[1]),
- TabBean(mTitles[2],mSelectRes[2],mNormalRes[2]),
- TabBean(mTitles[3],mSelectRes[3],mNormalRes[3]))
- private var mFragments = arrayListOf(HomeFragment(),MessageFragment(), WaybillFragment(),MineFragment())
+ TabBean(mTitles[0], mSelectRes[0], mNormalRes[0]),
+ TabBean(mTitles[1], mSelectRes[1], mNormalRes[1]),
+ TabBean(mTitles[2], mSelectRes[2], mNormalRes[2]),
+ TabBean(mTitles[3], mSelectRes[3], mNormalRes[3])
+ )
+ private var mFragments = arrayListOf(HomeFragment().setListener {
+ binding.homeTabLayout.currentTab = it
+ binding.homeNoScrollViewPager.currentItem = it
+ }, MessageFragment(), WaybillFragment(), MineFragment())
override fun initView(savedInstanceState: Bundle?) {
+ updatePrivacyShow(mContext,true,true)
+ updatePrivacyAgree(mContext,true)
+
binding.homeTabLayout.run {
setTabData(mTabEntities)
setOnTabSelectListener(this@HomeActivity)
- currentTab=0
+ currentTab = 0
}
+
binding.homeNoScrollViewPager.run {
- adapter = MyHomePagerAdapter(this@HomeActivity.supportFragmentManager, mTitles, mFragments)
+ adapter =
+ MyHomePagerAdapter(this@HomeActivity.supportFragmentManager, mTitles, mFragments)
addOnPageChangeListener(this@HomeActivity)
offscreenPageLimit = 3
}
@@ -78,12 +90,18 @@ class HomeActivity: BaseActivity(), OnTabSelectListener,
private fun getPermissions() {
PermissionX.init(this)
.permissions(
- Manifest.permission.CAMERA)
+ Manifest.permission.CAMERA,
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ )
.request { allGranted, grantedList, deniedList ->
if (allGranted) {
} else {
- Toast.makeText(mContext, "开启权限失败,请在应用设置-权限-定位-始终允许", Toast.LENGTH_SHORT).show()
+ Toast.makeText(
+ mContext,
+ "开启权限失败,请在应用设置-权限-定位-始终允许",
+ Toast.LENGTH_SHORT
+ ).show()
}
}
}
@@ -106,6 +124,14 @@ class HomeActivity: BaseActivity(), OnTabSelectListener,
}
}
+
+// fun getFragment(){
+// var adapter : MyHomePagerAdapter = binding.homeNoScrollViewPager.adapter as MyHomePagerAdapter
+//
+// adapter.instantiateItem(binding.homeNoScrollViewPager,0)
+// }
+
+
override fun onTabSelect(position: Int) {
binding.homeNoScrollViewPager.setCurrentItem(position)
}
diff --git a/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt
index f7e388e..4c2e756 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/home/HomeFragment.kt
@@ -1,34 +1,36 @@
package com.dahe.gldriver.ui.home
import android.graphics.Color
+import android.os.Bundle
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import com.chad.library.adapter4.BaseQuickAdapter
+import com.amap.api.services.route.DistanceSearch
import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.GridItemAdapter
import com.dahe.gldriver.adapter.WaybillAdapter
-import com.dahe.gldriver.bean.AuthTeamBean
+import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.GridBean
import com.dahe.gldriver.databinding.FragmentHomeBinding
+import com.dahe.gldriver.event.OrderStauEvent
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
-import com.dahe.gldriver.ui.HomeActivity
import com.dahe.gldriver.ui.waybill.activity.WaybillDetailActivity
+import com.dahe.gldriver.ui.waybill.activity.WaybillLoadActivity
+import com.dahe.gldriver.ui.waybill.activity.WaybillUnlLoadActivity
import com.dahe.glex.bean.OrderBean
-import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils
-import com.dahe.mylibrary.utils.ToastUtils
-import com.flyco.tablayout.listener.OnTabSelectListener
+import com.flyco.tablayout.CommonTabLayout
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
-import okhttp3.internal.wait
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
/**
* @ClassName HomeFragment
@@ -37,6 +39,9 @@ import okhttp3.internal.wait
* @Description TODO
*/
class HomeFragment : BaseFragment(), RefreshCallBack {
+
+ var adapter: WaybillAdapter? = null
+
private val gridDatas = mutableListOf(
GridBean("司机之家", R.drawable.home_driver),
GridBean("咨询客服", R.drawable.home_ask),
@@ -50,50 +55,75 @@ class HomeFragment : BaseFragment(), RefreshCallBack {
}
+ lateinit var mListener: ((Int) -> Unit)
+
+ fun setListener(listener: (Int) -> Unit): HomeFragment {
+ this.mListener = listener
+ return this
+ }
+
+
override fun onFragmentFirstVisible() {
initRecy()
- binding.gridView.run {
- adapter = activity?.let { GridItemAdapter(it, gridDatas) }
- setOnItemClickListener { adapterView, view, i, l ->
-// println(i)
+ setRefresh(binding.refresh, this)
+ binding.run {
+ gridView.run {
+ adapter = activity?.let { GridItemAdapter(it, gridDatas) }
+ setOnItemClickListener { adapterView, view, i, l ->
+
+ }
+ }
+ tvMar.isSelected = true
+
+ ivMyWaybill.setOnClickListener {
+ if (this@HomeFragment.mListener != null)
+ this@HomeFragment?.mListener?.invoke(2)
}
}
-
- binding.tvMar.isSelected = true
-
- DataManager.getInstance().orderList()
- .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
- .subscribe(BaseObserver(mContext,object : RxHttpCallBack>(){
- override fun onSuccess(t: CommonResponseBean>) {
- super.onSuccess(t)
- }
- }))
-
+ initData()
}
override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+ private fun initData() {
+ DataManager.getInstance().orderList()
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+
+ if (mRefreshPage === 1) {
+ adapter?.submitList(t.data)
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+ }))
+ }
+
+
+ @Subscribe
+ fun eventStatu(orderStauEvent: OrderStauEvent) {
+ if (orderStauEvent.statu == 1) {
+ initData()
+ }
}
private fun initRecy() {
- var datas = mutableListOf(
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean()
- )
- var adapter = binding.recyclerView.run {
+ adapter = binding.recyclerView.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
setHasFixedSize(true)
addItemDecoration(
RecycleViewDivider(
LinearLayout.VERTICAL,
- ConvertUtils.dp2px(16.0f),
+ ConvertUtils.dp2px(10.0f),
Color.TRANSPARENT
)
)
@@ -101,14 +131,36 @@ class HomeFragment : BaseFragment(), RefreshCallBack {
adapter as WaybillAdapter
}.apply {
setOnItemClickListener { _, _, position ->
- ToastUtils.showToast(mContext, position.toString())
+ ActivityUtils.startActivity(
+ mContext,
+ WaybillDetailActivity::class.java,
+ Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
+
+
+// ActivityUtils.startActivity(
+// mContext,
+// WaybillDetailActivity::class.java,
+// Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
}
addOnItemChildClickListener(R.id.btnOk) { adapter, view, position ->
- ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java)
+
+ ActivityUtils.startActivity(
+ mContext,
+ WaybillDetailActivity::class.java,
+ Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
+// ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java)
}
}
- adapter.submitList(datas)
}
+ override fun onStart() {
+ super.onStart()
+ EventBus.getDefault().register(this);
+ }
+
+ override fun onStop() {
+ super.onStop()
+ EventBus.getDefault().unregister(this);
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/WaybillFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/WaybillFragment.kt
index 3f6a9e0..4cc267c 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/WaybillFragment.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/WaybillFragment.kt
@@ -2,10 +2,17 @@ package com.dahe.gldriver.ui.waybill
import android.content.Context
import android.graphics.Color
+import android.view.View
+import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import com.dahe.gldriver.R
+import com.dahe.gldriver.callback.OnSearchListener
import com.dahe.gldriver.databinding.FragmentWaybillBinding
import com.dahe.gldriver.ui.waybill.fragment.AllWaybillFragment
+import com.dahe.gldriver.ui.waybill.fragment.CancelWaybillFragment
+import com.dahe.gldriver.ui.waybill.fragment.WaitAppraiseFragment
+import com.dahe.gldriver.ui.waybill.fragment.WaitLoadFragment
+import com.dahe.gldriver.ui.waybill.fragment.WaitUnLoadFragment
import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack
import net.lucode.hackware.magicindicator.FragmentContainerHelper
@@ -26,8 +33,17 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT
*/
class WaybillFragment : BaseFragment(), RefreshCallBack {
+ private var currIndex = 0
+
private val mFragmentContainerHelper = FragmentContainerHelper()
- var mFragments = listOf(AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment(),AllWaybillFragment())
+
+ var mFragments = listOf(
+ AllWaybillFragment(),
+ WaitLoadFragment(),
+ WaitUnLoadFragment(),
+ WaitAppraiseFragment(),
+ CancelWaybillFragment()
+ )
val titles = mutableListOf(
"全部",
"待装货",
@@ -45,10 +61,31 @@ class WaybillFragment : BaseFragment(), RefreshCallBack
override fun onFragmentFirstVisible() {
initRecy()
+ binding.run {
+
+ etSearch.addTextChangedListener {
+ ivCancel.visibility = if (it.toString().isNullOrBlank()) View.GONE else View.VISIBLE
+ }
+ ivCancel.setOnClickListener {
+ etSearch.setText("")
+ }
+
+ btnSearch.setOnClickListener {
+ val search = etSearch.text.trim().toString()
+ when (currIndex) {
+ 0 -> (mFragments[currIndex] as AllWaybillFragment).onSearchClick(search)
+ 1 -> (mFragments[currIndex] as WaitLoadFragment).onSearchClick(search)
+ 2 -> (mFragments[currIndex] as WaitUnLoadFragment).onSearchClick(search)
+ 3 -> (mFragments[currIndex] as WaitAppraiseFragment).onSearchClick(search)
+ 4 -> (mFragments[currIndex] as CancelWaybillFragment).onSearchClick(search)
+ }
- mFragmentContainerHelper.handlePageSelected(0,true)
- switchPages(0)
+ }
+
+ }
+ mFragmentContainerHelper.handlePageSelected(currIndex, true)
+ switchPages(currIndex)
var commonNavigator = CommonNavigator(mContext)
commonNavigator.run {
@@ -88,7 +125,6 @@ class WaybillFragment : BaseFragment(), RefreshCallBack
binding.magicIndicator.navigator = commonNavigator
mFragmentContainerHelper.attachMagicIndicator(binding.magicIndicator)
-// ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager);
}
@@ -99,7 +135,9 @@ class WaybillFragment : BaseFragment(), RefreshCallBack
private fun initRecy() {
}
+
private fun switchPages(index: Int) {
+ currIndex = index
val fragmentManager = requireActivity().supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
var fragment: Fragment
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
index 35a341d..c1eaca6 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillDetailActivity.kt
@@ -1,13 +1,39 @@
package com.dahe.gldriver.ui.waybill.activity
+import android.Manifest
+import android.app.usage.UsageEvents.Event
import android.graphics.Color
import android.os.Bundle
+import android.widget.LinearLayout
+import android.widget.Toast
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.amap.api.maps2d.model.LatLng
import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillAdapter
+import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.databinding.ActivityWaybillDetailBinding
+import com.dahe.gldriver.event.OrderStauEvent
+import com.dahe.gldriver.net.BaseObserver
+import com.dahe.gldriver.net.DataManager
+import com.dahe.gldriver.net.RxHttpCallBack
+import com.dahe.gldriver.utils.GDLocationUtils
+import com.dahe.gldriver.utils.LocationUtils
+import com.dahe.glex.bean.OrderBean
import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.BaseUtils
+import com.dahe.mylibrary.utils.ConvertUtils
+import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.SelectPicUtils
+import com.permissionx.guolindev.PermissionX
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+import org.greenrobot.eventbus.EventBus
/**
* @ClassName WaybillDetailActivity
@@ -15,14 +41,186 @@ import com.dahe.mylibrary.utils.SelectPicUtils
* @Date 2024/1/26 14:50
* @Description 运单详情-接单
*/
-class WaybillDetailActivity :BaseActivity(){
+class WaybillDetailActivity : BaseActivity() {
+ var orderId: String = ""
+ lateinit var gdLatLng: LatLng
+ lateinit var loadPos: LatLng
override fun initView(savedInstanceState: Bundle?) {
- binding.btnReceiving.setOnClickListener {
- ActivityUtils.startActivity(mContext,WaybillSuccActivity::class.java,Bundle().apply { putInt(AppConfig.SUCCESS_TYPE,0) })
+ orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString()
+ initRecy()
+ getLocation()
+
+ binding.btnCall.setOnClickListener {
+ BaseUtils.callPhone(this@WaybillDetailActivity, "15838201105")
}
+ binding.btnReceiving.setOnClickListener {
+ DataManager.getInstance().receivingOrders(orderId, "22")
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ EventBus.getDefault().post(OrderStauEvent(1))
+ }
+ }))
+
+ }
+
}
override fun initDate() {
-// SelectPicUtils().getInstance(mContext)
+ DataManager.getInstance().orderDetail(orderId)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ val load = t.data.orderChildList.first { it.type == "1" }
+ var distance: String = ""
+ loadPos = LatLng(load.latitude.toDouble(), load.longitude.toDouble())
+ 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 {
+ tvTime.text = t.data.receiverDeadline
+ tvCom.text = t.data.receiverBusinessName
+ tvUnloadDis.text = t.data.distance+"km"
+ tvCarType.text = """${t.data.vehicleLength} ${t.data.vehicleType}"""
+ if (!t.data.requirement.isNullOrEmpty()) tvRemark.text = t.data.requirement
+ if (!distance.isNullOrEmpty()) tvLoadDis.text = distance
+ tvConsignor.text = t.data.realCompanyName
+ tvType.text = if (t.data.orderType == "0") "一装一卸" else "一装多卸"
+ tvFreight.text = t.data.driverFreight.toString()
+ tvGoods.text = goods
+ btnCall.setOnClickListener {
+ PermissionX.init(this@WaybillDetailActivity)
+ .permissions(Manifest.permission.CALL_PHONE)
+ .request { allGranted, grantedList, deniedList ->
+ if (allGranted) {
+ BaseUtils.callPhone(
+ this@WaybillDetailActivity,
+ t.data.shipperContactPhone
+ )
+ } else {
+ Toast.makeText(
+ mContext,
+ "开启权限失败,请在应用设置-权限中打开电话权限",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+
+ }
+
+ }
+ adapter?.submitList(t.data.orderChildList)
+// initXml(t.data)
+ }
+ }))
+ }
+
+
+ fun getLocation() {
+ GDLocationUtils.instance.getLocation(this@WaybillDetailActivity) {
+ //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("定位失败,请检查定位权限是否开启")
+ }
+ }
+ }
+ }
+
+
+// private fun initXml(data: OrderDetailBean) {
+// val load = data.orderChildList.find { it.type == "1" }
+// val unLoad = data.orderChildList.find { it.type == "2" }
+//
+// binding.run {
+// tvTime.text = data.receiverDeadline
+// tvType.text = if (data.orderType == "0") "一装一卸" else "一装多卸"
+// tvLoad.text = load?.address
+// tvPhone.text = """${load?.name} ${load?.phone}"""
+//
+// tvUnload.text = unLoad?.address
+// tvUnloadPhone.text = """${unLoad?.name} ${unLoad?.phone}"""
+//
+//
+// tvCom.text = data?.receiverBusinessName
+// tvConsignor.text = data?.realCompanyName
+// tvFreight.text = data?.driverFreight.toString()
+//
+//
+//
+//
+//
+// btnCall.setOnClickListener {
+//
+// PermissionX.init(this@WaybillDetailActivity)
+// .permissions(Manifest.permission.CALL_PHONE)
+// .request { allGranted, grantedList, deniedList ->
+// if (allGranted) {
+// BaseUtils.callPhone(
+// this@WaybillDetailActivity,
+// data.shipperContactPhone
+// )
+// } else {
+// Toast.makeText(
+// mContext,
+// "开启权限失败,请在应用设置-权限中打开电话权限",
+// Toast.LENGTH_SHORT
+// ).show()
+// }
+// }
+//
+// }
+// }
+// }
+
+ var adapter: WaybillNodeAdapter? = null
+ private fun initRecy() {
+ adapter = binding.recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ setHasFixedSize(true)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillNodeAdapter()
+ adapter as WaybillNodeAdapter
+ }.apply {
+ setOnItemClickListener { _, _, position ->
+ ActivityUtils.startActivity(
+ mContext,
+ WaybillLoadActivity::class.java,
+ Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
+ }
+ addOnItemChildClickListener(R.id.btnOk) { adapter, view, position ->
+ ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java)
+ }
+ }
+
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt
index d8e4a77..bb71309 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt
@@ -1,13 +1,33 @@
package com.dahe.gldriver.ui.waybill.activity
+import android.Manifest
+import android.graphics.Color
import android.os.Bundle
import android.view.View
+import android.widget.LinearLayout
+import android.widget.Toast
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps2d.AMap
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.databinding.ActivityWaybillLoadBinding
+import com.dahe.gldriver.net.BaseObserver
+import com.dahe.gldriver.net.DataManager
+import com.dahe.gldriver.net.RxHttpCallBack
+import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.BaseUtils
+import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ToastUtils
+import com.permissionx.guolindev.PermissionX
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
/**
@@ -19,26 +39,82 @@ import com.dahe.mylibrary.utils.ToastUtils
class WaybillLoadActivity : BaseActivity() {
var aMap: AMap? = null
+
+ var orderId: String = ""
+ var waybillId: String = ""
+ lateinit var orderBean: OrderDetailBean
override fun initView(savedInstanceState: Bundle?) {
setTitleBar("运单详情", View.OnClickListener { finish() }, true, "查看单据") {
ToastUtils.showToast(mContext, "查看单据")
}
+ orderId = intent.extras?.getString(AppConfig.ORDER_ID,"").toString()
+
+ initRecy()
+
binding.run {
mapView.onCreate(savedInstanceState)
if (aMap == null) mapView.map
btnRight.setOnClickListener {
+ var data = orderBean.orderChildList.first { it.type == "1" }
ActivityUtils.startActivity(
mContext,
WaybillUpPicActivity::class.java,
- Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 1) })
+ Bundle().apply {
+ putInt(AppConfig.SUCCESS_TYPE, 1)
+ putString(AppConfig.ORDER_ID,orderId)
+ putString(AppConfig.WAYBILL_ID,orderBean.waybillId)
+ putString(AppConfig.CHILDRE_ID,data.orderChildreId)
+ })
}
}
}
override fun initDate() {
+
+ DataManager.getInstance().orderDetail(orderId)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ orderBean = t.data
+
+ binding.run {
+ tvTime.text = orderBean.receiverDeadline
+ tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸"
+
+ tvCom.text = orderBean?.receiverBusinessName
+ tvFreight.text = orderBean?.driverFreight.toString()
+
+ btnLeft.setOnClickListener {
+ PermissionX.init(this@WaybillLoadActivity)
+ .permissions(Manifest.permission.CALL_PHONE)
+ .request { allGranted, grantedList, deniedList ->
+ if (allGranted) {
+ BaseUtils.callPhone(
+ this@WaybillLoadActivity,
+ orderBean.shipperContactPhone
+ )
+ } else {
+ Toast.makeText(
+ mContext,
+ "开启权限失败,请在应用设置-权限中打开电话权限",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+
+ }
+ }
+
+ adapter?.submitList(t.data.orderChildList)
+// initXml(t.data)
+ }
+ }))
+
+
}
override fun onResume() {
@@ -62,4 +138,32 @@ class WaybillLoadActivity : BaseActivity() {
super.onDestroy()
}
+
+ var adapter: WaybillNodeAdapter? = null
+ private fun initRecy() {
+ adapter = binding.recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ setHasFixedSize(true)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillNodeAdapter()
+ adapter as WaybillNodeAdapter
+ }.apply {
+ setOnItemClickListener { _, _, position ->
+ ActivityUtils.startActivity(
+ mContext,
+ WaybillLoadActivity::class.java,
+ Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
+ }
+ addOnItemChildClickListener(R.id.btnOk) { adapter, view, position ->
+ ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java)
+ }
+ }
+
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt
index a40635a..4576f0a 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt
@@ -1,15 +1,33 @@
package com.dahe.gldriver.ui.waybill.activity
+import android.Manifest
+import android.graphics.Color
import android.os.Bundle
import android.view.View
+import android.widget.LinearLayout
+import android.widget.Toast
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import com.amap.api.maps2d.AMap
import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillNodeAdapter
import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.OrderDetailBean
import com.dahe.gldriver.databinding.ActivityWaybillLoadBinding
import com.dahe.gldriver.databinding.ActivityWaybillUnloadBinding
+import com.dahe.gldriver.net.BaseObserver
+import com.dahe.gldriver.net.DataManager
+import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.BaseUtils
+import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ToastUtils
+import com.permissionx.guolindev.PermissionX
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName WaybillLoadActivity
@@ -20,26 +38,107 @@ import com.dahe.mylibrary.utils.ToastUtils
class WaybillUnlLoadActivity : BaseActivity() {
var aMap: AMap? = null
+
+
+ var orderId: String = ""
+ var waybillId: String = ""
+ lateinit var orderBean: OrderDetailBean
override fun initView(savedInstanceState: Bundle?) {
setTitleBar("运单详情", { finish() }, true, "查看单据") {
ToastUtils.showToast(mContext, "查看单据")
}
+ orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString()
+ initRecy()
binding.run {
mapView.onCreate(savedInstanceState)
if (aMap == null) mapView.map
btnRight.setOnClickListener {
+ var data = orderBean.orderChildList.first { it.type == "2" }
ActivityUtils.startActivity(
mContext,
WaybillUpPicActivity::class.java,
- Bundle().apply { putInt(AppConfig.SUCCESS_TYPE, 2) })
+ Bundle().apply {
+ putInt(AppConfig.SUCCESS_TYPE, 2)
+ putString(AppConfig.ORDER_ID, orderId)
+ putString(AppConfig.WAYBILL_ID, orderBean.waybillId)
+ putString(AppConfig.CHILDRE_ID, data.orderChildreId)
+ })
}
}
-
}
override fun initDate() {
+
+ DataManager.getInstance().orderDetail(orderId)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ orderBean = t.data
+
+ binding.run {
+ tvTime.text = orderBean.receiverDeadline
+ tvType.text = if (orderBean.orderType == "0") "一装一卸" else "一装多卸"
+
+ tvCom.text = orderBean?.receiverBusinessName
+ tvFreight.text = orderBean?.driverFreight.toString()
+
+ btnLeft.setOnClickListener {
+ PermissionX.init(this@WaybillUnlLoadActivity)
+ .permissions(Manifest.permission.CALL_PHONE)
+ .request { allGranted, grantedList, deniedList ->
+ if (allGranted) {
+ BaseUtils.callPhone(
+ this@WaybillUnlLoadActivity,
+ orderBean.shipperContactPhone
+ )
+ } else {
+ Toast.makeText(
+ mContext,
+ "开启权限失败,请在应用设置-权限中打开电话权限",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+
+ }
+ }
+
+ adapter?.submitList(t.data.orderChildList)
+// initXml(t.data)
+ }
+ }))
+ }
+
+
+ var adapter: WaybillNodeAdapter? = null
+ private fun initRecy() {
+ adapter = binding.recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ setHasFixedSize(true)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillNodeAdapter()
+ adapter as WaybillNodeAdapter
+ }.apply {
+ setOnItemClickListener { _, _, position ->
+ ActivityUtils.startActivity(
+ mContext,
+ WaybillLoadActivity::class.java,
+ Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
+ }
+ addOnItemChildClickListener(R.id.btnOk) { adapter, view, position ->
+ ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java)
+ }
+ }
+
}
@@ -65,4 +164,5 @@ class WaybillUnlLoadActivity : BaseActivity() {
}
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt
index 8be8413..42193fd 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt
@@ -3,19 +3,31 @@ package com.dahe.gldriver.ui.waybill.activity
import android.os.Bundle
import android.view.View
import androidx.recyclerview.widget.GridLayoutManager
+import com.amap.api.maps2d.model.LatLng
import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.UpPicBean
+import com.dahe.gldriver.bean.WaybillPhoto
import com.dahe.gldriver.databinding.ActivityWaybillUppicBinding
+import com.dahe.gldriver.net.BaseObserver
+import com.dahe.gldriver.net.DataManager
+import com.dahe.gldriver.net.RxHttpCallBack
+import com.dahe.gldriver.oss.OssServiceUtil
+import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.mylibrary.adapter.GridImageAdapter
import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.callback.OnPicResultListener
+import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dahe.mylibrary.weight.FullyGridLayoutManager
import com.luck.picture.lib.decoration.GridSpacingItemDecoration
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.utils.DensityUtil
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName WaybillUpPicActivity
@@ -24,8 +36,25 @@ import com.luck.picture.lib.utils.DensityUtil
* @Description 上传照片:装卸货以及回单照片
*/
class WaybillUpPicActivity : BaseActivity() {
+
+ lateinit var upBean: UpPicBean//提交对象
+ lateinit var picBean: WaybillPhoto//照片对象
+
+ var orderId: String = ""
+ var waybillId: String = ""
+ var childreId: String = ""
+ lateinit var latLng: LatLng
+
override fun initView(savedInstanceState: Bundle?) {
- var type = intent.extras?.getInt(AppConfig.SUCCESS_TYPE, 0)
+ upBean = UpPicBean()
+
+
+ var type = intent.extras?.run {
+ orderId = getString(AppConfig.ORDER_ID, "")
+ waybillId = getString(AppConfig.WAYBILL_ID, "")
+ childreId = getString(AppConfig.CHILDRE_ID, "")
+ getInt(AppConfig.SUCCESS_TYPE, 0)
+ }
if (1 == type) {
binding.run {
tvTitle.text = "装货"
@@ -34,17 +63,131 @@ class WaybillUpPicActivity : BaseActivity() {
}
}
- binding.btnUnload.setOnClickListener {
- 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) })
+
+ binding.run {
+ tvPosi.setOnClickListener {
+ getLocation()
+ }
+
+
+ recyclerView.run {
+ layoutManager =
+ FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false)
+ addItemDecoration(
+ GridSpacingItemDecoration(
+ 4,
+ DensityUtil.dip2px(mContext, 8f), false
+ )
+ )
+
+ var myAdapter = GridImageAdapter(mContext, mData)
+
+ myAdapter.setOnItemClickListener(object : OnItemClickListener {
+ override fun onItemClick(v: View?, position: Int) {
+
+ }
+
+ override fun openPicture() {
+ PopsUtils.getInstance().showSelPic(mContext, myAdapter) {
+
+ OssServiceUtil.getInstance().run {
+ asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
+ setResultCallBack { data, oldPath ->
+ picBean = WaybillPhoto()
+ picBean.run {
+ photoUrl = oldPath
+ this.type = if (type == 1) "1" else "2"
+ }
+
+ upBean.waybillPhotoList.add(picBean)
+ }
+ }
+ myAdapter.data.addAll(it)
+ myAdapter.notifyDataSetChanged()
+ }
+
+ }
+ })
+ adapter = myAdapter
+ }
+
+
+
+ //回单处理
+ recyclerView2.run {
+ layoutManager =
+ FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false)
+ addItemDecoration(
+ GridSpacingItemDecoration(
+ 4,
+ DensityUtil.dip2px(mContext, 8f), false
+ )
+ )
+
+ var myAdapter = GridImageAdapter(mContext, mData)
+
+ myAdapter.setOnItemClickListener(object : OnItemClickListener {
+ override fun onItemClick(v: View?, position: Int) {
+
+ }
+
+ override fun openPicture() {
+ PopsUtils.getInstance().showSelPic(mContext, myAdapter) {
+
+ OssServiceUtil.getInstance().run {
+ asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
+ setResultCallBack { data, oldPath ->
+ picBean = WaybillPhoto()
+ picBean.run {
+ photoUrl = oldPath
+ receiptType = if (type == 1) "4" else if (type == 2) "5" else "6"
+ this.type = "3"
+ }
+ upBean.waybillPhotoList.add(picBean)
+ }
+ }
+ myAdapter.data.addAll(it)
+ myAdapter.notifyDataSetChanged()
+ }
+
+ }
+ })
+ adapter = myAdapter
+ }
+
+
+
+ btnUnload.setOnClickListener {
+ upBean.run {
+ orderId = this@WaybillUpPicActivity.orderId
+ waybillId = this@WaybillUpPicActivity.waybillId
+ latitude = latLng.latitude.toString()
+ longitude = latLng.longitude.toString()
+ orderChildreId = this@WaybillUpPicActivity.childreId
+ this.type = if (type == 1) "1" else "2"
+ }
+
+ DataManager.getInstance().driverLoadOrUnload(upBean)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ 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) })
+ }
}
}
}
@@ -52,44 +195,25 @@ class WaybillUpPicActivity : BaseActivity() {
private val mData: List = ArrayList()
override fun initDate() {
+ getLocation()
+ }
- binding.recyclerView.run {
- layoutManager = FullyGridLayoutManager(mContext, 4, GridLayoutManager.VERTICAL, false)
- addItemDecoration(
- GridSpacingItemDecoration(
- 4,
- DensityUtil.dip2px(mContext, 8f), false
- )
- )
-
- var myAdapter = GridImageAdapter(mContext, mData)
-
- myAdapter.setOnItemClickListener(object : OnItemClickListener {
- override fun onItemClick(v: View?, position: Int) {
+ fun getLocation() {
+ LoadingUtils.instance.showLoading(this,"定位中,请稍等...")
+ GDLocationUtils.instance.getLocation(this@WaybillUpPicActivity) {
+ //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明
+ runOnUiThread {
+ LoadingUtils.instance.dissLoading()
+ if (it.getErrorCode() == 0) {
+ it.getLongitude()//经 度
+ it.getLatitude()//纬 度
+ latLng = LatLng(it.latitude, it.longitude)
+ binding.tvLoca.text = it.address
+ } else {
+ showToast("定位失败,请检查定位权限是否开启")
}
-
- override fun openPicture() {
- PopsUtils.getInstance().showSelPic(mContext,myAdapter){
- myAdapter.data.addAll(it)
- myAdapter.notifyDataSetChanged()
- }
-// XPopup.Builder(mContext)
-// .dismissOnTouchOutside(true)
-// .asCustom(PopBottomPic(mContext, myAdapter, onPicResultListener = {
-// ToastUtils.showToast(mContext, it.size.toString())
-// myAdapter.data.addAll(it)
-// myAdapter.notifyDataSetChanged()
-// }))
-// .show()
-
- }
- })
-
-// setHasFixedSize(true)
- adapter = myAdapter
+ }
}
-
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/AllWaybillFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/AllWaybillFragment.kt
index b41be0c..526f3ff 100644
--- a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/AllWaybillFragment.kt
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/AllWaybillFragment.kt
@@ -1,12 +1,28 @@
package com.dahe.gldriver.ui.waybill.fragment
+import android.content.Context
+import android.graphics.Color
+import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.WaybillListAdapter
+import com.dahe.gldriver.callback.OnSearchListener
import com.dahe.gldriver.databinding.FragmentWaybillBinding
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.OrderUtils
+import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.callback.RefreshCallBack
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName AllWaybillFragment
@@ -14,30 +30,90 @@ import com.dahe.mylibrary.base.BaseFragment
* @Date 2024/1/24 14:06
* @Description TODO
*/
-class AllWaybillFragment : BaseFragment() {
+class AllWaybillFragment : BaseFragment(), RefreshCallBack, OnSearchListener {
+ lateinit var adapter: WaybillListAdapter
override fun onFragmentVisibleChange(isVisible: Boolean) {
}
override fun onFragmentFirstVisible() {
- var datas = mutableListOf(
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean(),
- WayBillBean()
- )
- var adapter = binding.recyclerView.run {
- layoutManager = LinearLayoutManager(mContext,RecyclerView.VERTICAL,false)
- setHasFixedSize(true)
- adapter = WaybillListAdapter()
- adapter as WaybillListAdapter
+ binding.run {
+ setRefresh(refresh, this@AllWaybillFragment)
+ adapter = recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(8.0f),
+ Color.TRANSPARENT
+ )
+ )
+
+ adapter = WaybillListAdapter()
+ // 打开空布局功能
+ (adapter as WaybillListAdapter).isStateViewEnable = true
+ adapter as WaybillListAdapter
+ }
}
- adapter.submitList(datas)
+ initData()
}
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+
+ override fun onSearchClick(search: String) {
+ initData(search)
+ }
+
+ private fun initData(search: String = "") {
+ DataManager.getInstance()
+ .selectMyWaybillList(mRefreshPage, mRefreshCount, searchValue = search)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+
+ if (mRefreshPage === 1) {
+ if (t.data.size == 0) {
+ adapter.submitList(null)
+ adapter.setStateViewLayout(mContext, R.layout.empty_view)
+ } else {
+ adapter?.submitList(t.data)
+ }
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+
+ override fun onCodeError(
+ mContext: Context?,
+ t: CommonResponseBean>
+ ) {
+ super.onCodeError(mContext, t)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+
+ override fun onFailure(mContext: Context?, e: Throwable) {
+ super.onFailure(mContext, e)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+ }))
+ }
+
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt
new file mode 100644
index 0000000..a063ac1
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/CancelWaybillFragment.kt
@@ -0,0 +1,113 @@
+package com.dahe.gldriver.ui.waybill.fragment
+
+import android.content.Context
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillListAdapter
+import com.dahe.gldriver.callback.OnSearchListener
+import com.dahe.gldriver.databinding.FragmentWaybillBinding
+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.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.callback.RefreshCallBack
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName AllWaybillFragment
+ * @Author 用户
+ * @Date 2024/1/24 14:06
+ * @Description 取消运单
+ */
+class CancelWaybillFragment : BaseFragment(), RefreshCallBack ,
+ OnSearchListener {
+
+
+ lateinit var adapter: WaybillListAdapter
+
+ override fun onFragmentVisibleChange(isVisible: Boolean) {
+
+ }
+
+ override fun onFragmentFirstVisible() {
+ binding.run {
+ setRefresh(refresh, this@CancelWaybillFragment)
+ adapter = recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(8.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillListAdapter()
+ // 打开空布局功能
+ (adapter as WaybillListAdapter).isStateViewEnable = true
+ adapter as WaybillListAdapter
+ }
+ }
+ initData()
+ }
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+
+ override fun onSearchClick(search: String) {
+ initData(search)
+ }
+
+ private fun initData(search: String = "") {
+ DataManager.getInstance().selectMyWaybillList(mRefreshPage, mRefreshCount, "103000",search)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+ if (mRefreshPage === 1) {
+ if (t.data.size==0){
+ adapter.submitList(null)
+ adapter.setStateViewLayout(mContext, R.layout.empty_view)
+ }else{
+ adapter?.submitList(t.data)
+ }
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+
+ override fun onCodeError(mContext: Context?, t: CommonResponseBean>) {
+ super.onCodeError(mContext, t)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+
+ override fun onFailure(mContext: Context?, e: Throwable) {
+ super.onFailure(mContext, e)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+ }))
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt
new file mode 100644
index 0000000..09b1d4e
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitAppraiseFragment.kt
@@ -0,0 +1,113 @@
+package com.dahe.gldriver.ui.waybill.fragment
+
+import android.content.Context
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillListAdapter
+import com.dahe.gldriver.callback.OnSearchListener
+import com.dahe.gldriver.databinding.FragmentWaybillBinding
+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.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.callback.RefreshCallBack
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName AllWaybillFragment
+ * @Author 用户
+ * @Date 2024/1/24 14:06
+ * @Description 待评价
+ */
+class WaitAppraiseFragment : BaseFragment() , RefreshCallBack ,
+ OnSearchListener {
+
+
+ lateinit var adapter: WaybillListAdapter
+
+ override fun onFragmentVisibleChange(isVisible: Boolean) {
+
+ }
+
+ override fun onFragmentFirstVisible() {
+ binding.run {
+ setRefresh(refresh, this@WaitAppraiseFragment)
+ adapter = recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(8.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillListAdapter()
+ // 打开空布局功能
+ (adapter as WaybillListAdapter).isStateViewEnable = true
+ adapter as WaybillListAdapter
+ }
+ }
+ initData()
+ }
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+
+ override fun onSearchClick(search: String) {
+ initData(search)
+ }
+
+ private fun initData(search: String = "") {
+ DataManager.getInstance().selectMyWaybillList(mRefreshPage,mRefreshCount,"102080",search)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+ if (mRefreshPage === 1) {
+ if (t.data.size==0){
+ adapter.submitList(null)
+ adapter.setStateViewLayout(mContext, R.layout.empty_view)
+ }else{
+ adapter?.submitList(t.data)
+ }
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+
+ override fun onCodeError(mContext: Context?, t: CommonResponseBean>) {
+ super.onCodeError(mContext, t)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+
+ override fun onFailure(mContext: Context?, e: Throwable) {
+ super.onFailure(mContext, e)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+ }))
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitLoadFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitLoadFragment.kt
new file mode 100644
index 0000000..fe0f068
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitLoadFragment.kt
@@ -0,0 +1,113 @@
+package com.dahe.gldriver.ui.waybill.fragment
+
+import android.content.Context
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillListAdapter
+import com.dahe.gldriver.callback.OnSearchListener
+import com.dahe.gldriver.databinding.FragmentWaybillBinding
+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.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.callback.RefreshCallBack
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName AllWaybillFragment
+ * @Author 用户
+ * @Date 2024/1/24 14:06
+ * @Description 待装货
+ */
+class WaitLoadFragment : BaseFragment(), RefreshCallBack , OnSearchListener {
+
+
+ lateinit var adapter: WaybillListAdapter
+
+ override fun onFragmentVisibleChange(isVisible: Boolean) {
+
+ }
+
+ override fun onFragmentFirstVisible() {
+ binding.run {
+ setRefresh(refresh, this@WaitLoadFragment)
+ adapter = recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(8.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillListAdapter()// 打开空布局功能
+ (adapter as WaybillListAdapter).isStateViewEnable = true
+ adapter as WaybillListAdapter
+ }
+ }
+ initData()
+ }
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+
+ override fun onSearchClick(search: String) {
+ initData(search)
+ }
+
+ private fun initData(search: String = "") {
+ DataManager.getInstance().selectMyWaybillList(mRefreshPage,mRefreshCount,"102040",search)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+ if (mRefreshPage === 1) {
+ if (t.data.size==0){
+ adapter.submitList(null)
+ adapter.setStateViewLayout(mContext, R.layout.empty_view)
+ }else{
+ adapter?.submitList(t.data)
+ }
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+
+ override fun onCodeError(mContext: Context?, t: CommonResponseBean>) {
+ super.onCodeError(mContext, t)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+
+ override fun onFailure(mContext: Context?, e: Throwable) {
+ super.onFailure(mContext, e)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+ }))
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitUnLoadFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitUnLoadFragment.kt
new file mode 100644
index 0000000..0c7c211
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/fragment/WaitUnLoadFragment.kt
@@ -0,0 +1,116 @@
+package com.dahe.gldriver.ui.waybill.fragment
+
+import android.content.Context
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.R
+import com.dahe.gldriver.adapter.WaybillListAdapter
+import com.dahe.gldriver.callback.OnSearchListener
+import com.dahe.gldriver.databinding.FragmentWaybillBinding
+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.OrderUtils
+import com.dahe.glex.bean.OrderBean
+import com.dahe.glex.bean.WayBillBean
+import com.dahe.mylibrary.base.BaseFragment
+import com.dahe.mylibrary.callback.RefreshCallBack
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ConvertUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName AllWaybillFragment
+ * @Author 用户
+ * @Date 2024/1/24 14:06
+ * @Description 待卸货
+ */
+class WaitUnLoadFragment : BaseFragment(), RefreshCallBack ,
+ OnSearchListener {
+
+
+ lateinit var adapter: WaybillListAdapter
+
+ override fun onFragmentVisibleChange(isVisible: Boolean) {
+
+ }
+
+ override fun onFragmentFirstVisible() {
+ binding.run {
+ setRefresh(refresh, this@WaitUnLoadFragment)
+ adapter = recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(8.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = WaybillListAdapter()
+ // 打开空布局功能
+ (adapter as WaybillListAdapter).isStateViewEnable = true
+ adapter as WaybillListAdapter
+ }
+ }
+ initData()
+ }
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+
+ override fun onSearchClick(search: String) {
+ initData(search)
+ }
+
+ private fun initData(search: String = "") {
+ DataManager.getInstance().selectMyWaybillList(mRefreshPage, mRefreshCount, "102050",search)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+ if (mRefreshPage === 1) {
+ if (t.data.size==0){
+ adapter.submitList(null)
+ adapter.setStateViewLayout(mContext, R.layout.empty_view)
+ }else{
+ adapter?.submitList(t.data)
+ }
+ } else {
+ adapter?.addAll(t.data)
+ }
+ setFinishRefresh(
+ binding.refresh,
+ t.total > mRefreshPage * mRefreshCount
+ )
+ }
+
+ override fun onCodeError(
+ mContext: Context?,
+ t: CommonResponseBean>
+ ) {
+ super.onCodeError(mContext, t)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+
+ override fun onFailure(mContext: Context?, e: Throwable) {
+ super.onFailure(mContext, e)
+ setFinishRefresh(
+ binding.refresh,
+ true
+ )
+ mContext?.let { adapter.setStateViewLayout(it, R.layout.empty_view) }
+ }
+ }))
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt
new file mode 100644
index 0000000..d9ac553
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/utils/CommonPopUtils.kt
@@ -0,0 +1,17 @@
+package com.dahe.gldriver.utils
+
+import com.dahe.mylibrary.base.SingletonNoPHolder
+
+/**
+ * @ClassName CommonPopUtils
+ * @Author john
+ * @Date 2024/3/5 15:48
+ * @Description TODO
+ */
+class CommonPopUtils private constructor(){
+
+ companion object : SingletonNoPHolder(::CommonPopUtils)
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/utils/GDLocationUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/GDLocationUtils.kt
new file mode 100644
index 0000000..e645923
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/utils/GDLocationUtils.kt
@@ -0,0 +1,70 @@
+package com.dahe.gldriver.utils
+
+import android.content.Context
+import com.amap.api.location.AMapLocationClient
+import com.amap.api.location.AMapLocationClientOption
+import com.amap.api.location.AMapLocationListener
+
+
+
+class GDLocationUtils private constructor(){
+
+ //声明AMapLocationClient类对象
+ var mLocationClient : AMapLocationClient?= null;
+
+ //声明AMapLocationClientOption对象
+ var mLocationOption: AMapLocationClientOption? = null
+
+
+ companion object{
+ val instance = Holder.holder
+ }
+
+ object Holder {
+ val holder = GDLocationUtils()
+ }
+
+ fun getLocation(ctx : Context,mLocationListener : AMapLocationListener){
+ //初始化定位
+ mLocationClient = AMapLocationClient(ctx)
+ //设置定位回调监听
+ mLocationClient?.setLocationListener(mLocationListener)
+ //初始化AMapLocationClientOption对象
+ mLocationOption = AMapLocationClientOption()
+
+ /**
+ * 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景)
+ */
+ mLocationOption?.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn)
+
+
+ //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
+ mLocationOption?.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy)
+// mLocationOption?.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving)
+
+ //获取一次定位结果:
+ //该方法默认为false。
+ mLocationOption?.setOnceLocation(true)
+
+ //获取最近3s内精度最高的一次定位结果:
+//设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
+ mLocationOption?.setOnceLocationLatest(true)
+
+ //设置是否允许模拟位置,默认为true,允许模拟位置
+ mLocationOption?.setMockEnable(true)
+
+ //给定位客户端对象设置定位参数
+ mLocationClient?.setLocationOption(mLocationOption);
+ if(null != mLocationClient){
+ mLocationClient?.setLocationOption(mLocationOption);
+ //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
+ mLocationClient?.stopLocation()
+ mLocationClient?.startLocation()
+ }
+ }
+ fun stopLocation(){
+ if(null != mLocationClient){
+ mLocationClient?.stopLocation()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/utils/LocationUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/LocationUtils.kt
new file mode 100644
index 0000000..c332141
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/utils/LocationUtils.kt
@@ -0,0 +1,67 @@
+package com.dahe.gldriver.utils
+
+import com.amap.api.maps2d.AMapException
+import com.amap.api.maps2d.model.LatLng
+import com.dahe.mylibrary.base.SingletonNoPHolder
+
+/**
+ * @ClassName LocationUtils
+ * @Author john
+ * @Date 2024/3/4 15:53
+ * @Description TODO
+ */
+class LocationUtils private constructor() {
+
+ companion object : SingletonNoPHolder(::LocationUtils)
+
+
+ fun getDistance(var0: LatLng?, var1: LatLng?): String {
+ return if (var0 != null && var1 != null) {
+ try {
+ var var2: Double = var0.longitude
+ var var4: Double = var0.latitude
+ var var6: Double = var1.longitude
+ var var8: Double = var1.latitude
+ var2 *= 0.01745329251994329
+ var4 *= 0.01745329251994329
+ var6 *= 0.01745329251994329
+ var8 *= 0.01745329251994329
+ val var10 = Math.sin(var2)
+ val var12 = Math.sin(var4)
+ val var14 = Math.cos(var2)
+ val var16 = Math.cos(var4)
+ val var18 = Math.sin(var6)
+ val var20 = Math.sin(var8)
+ val var22 = Math.cos(var6)
+ val var24 = Math.cos(var8)
+ val var28 = DoubleArray(3)
+ val var29 = DoubleArray(3)
+ var28[0] = var16 * var14
+ var28[1] = var16 * var10
+ var28[2] = var12
+ var29[0] = var24 * var22
+ var29[1] = var24 * var18
+ var29[2] = var20
+ String.format(
+ "%.2f", (Math.asin(
+ Math.sqrt(
+ (var28[0] - var29[0]) * (var28[0] - var29[0]) +
+ (var28[1] - var29[1]) * (var28[1] - var29[1]) + (var28[2] - var29[2]) * (var28[2] - var29[2])
+ ) / 2.0
+ )
+ * 1.27420015798544E7).toFloat() / 1000
+ )
+ } catch (var26: Throwable) {
+ var26.printStackTrace()
+ "0.00"
+ }
+ } else {
+ try {
+ throw AMapException("非法坐标值")
+ } catch (var27: AMapException) {
+ var27.printStackTrace()
+ "0.00"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dahe/gldriver/utils/OrderUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/OrderUtils.kt
new file mode 100644
index 0000000..3813108
--- /dev/null
+++ b/app/src/main/java/com/dahe/gldriver/utils/OrderUtils.kt
@@ -0,0 +1,67 @@
+package com.dahe.gldriver.utils
+
+import com.dahe.mylibrary.base.SingletonNoPHolder
+
+/**
+ * @ClassName OrderUtils
+ * @Author john
+ * @Date 2024/3/4 14:48
+ * @Description 订单状态转换
+ */
+class OrderUtils private constructor() {
+
+ companion object : SingletonNoPHolder(::OrderUtils)
+
+
+ fun getOrderStatu(statu: String): String {
+ return when (statu) {
+ "102010" -> "草稿箱"
+ "102020" -> "待调度"
+ "102030" -> "待接单"
+ "102040" -> "待装货"
+ "102050" -> "待卸货"
+ "102060" -> "待签收"
+ "102070" -> "待结算"
+ "102080" -> "待评价"
+ "103000" -> "已取消"
+ else -> {
+ ""
+ }
+ }
+ }
+
+
+ fun getNextByStatu(statu: String): String {
+ return when (statu) {
+ "102010" -> "草稿箱"
+ "102020" -> "待调度"
+ "102030" -> "去接单"
+ "102040" -> "去装货"
+ "102050" -> "去卸货"
+ "102060" -> "待签收"
+ "102070" -> "待结算"
+ "102080" -> "去评价"
+ "103000" -> "已取消"
+ else -> {
+ ""
+ }
+ }
+ }
+
+ fun getStatuByString(statu: String): String {
+ return when (statu) {
+ "草稿箱" -> "102010"
+ "待调度" -> "102020"
+ "待接单" -> "102030"
+ "待装货" -> "102040"
+ "待卸货" -> "102050"
+ "待签收" -> "102060"
+ "待结算" -> "102070"
+ "待评价" -> "102080"
+ "已取消" -> "103000"
+ else -> {
+ ""
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxhdpi/cancel.png b/app/src/main/res/drawable-xxhdpi/cancel.png
new file mode 100644
index 0000000..b63d786
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/cancel.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/empty_content.png b/app/src/main/res/drawable-xxhdpi/empty_content.png
new file mode 100644
index 0000000..e6e89f8
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/empty_content.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_wabill.png b/app/src/main/res/drawable-xxhdpi/icon_wabill.png
new file mode 100644
index 0000000..89ba549
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_wabill.png differ
diff --git a/app/src/main/res/drawable/shape_orange_2.xml b/app/src/main/res/drawable/shape_orange_2.xml
new file mode 100644
index 0000000..3141d84
--- /dev/null
+++ b/app/src/main/res/drawable/shape_orange_2.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_orange_4.xml b/app/src/main/res/drawable/shape_orange_4.xml
new file mode 100644
index 0000000..8ae904f
--- /dev/null
+++ b/app/src/main/res/drawable/shape_orange_4.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_white_8.xml b/app/src/main/res/drawable/shape_white_8.xml
new file mode 100644
index 0000000..a312942
--- /dev/null
+++ b/app/src/main/res/drawable/shape_white_8.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_waybill_detail.xml b/app/src/main/res/layout/activity_waybill_detail.xml
index bb783ab..fa030e3 100644
--- a/app/src/main/res/layout/activity_waybill_detail.xml
+++ b/app/src/main/res/layout/activity_waybill_detail.xml
@@ -69,6 +69,7 @@
android:textSize="@dimen/sp_15" />
-
-
-
+ android:layout_marginTop="@dimen/dp_33" />
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
- android:background="@drawable/icon_unload" />
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -167,12 +175,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
- android:text="122.5km"
+ tools:text="122.5km"
+ android:maxLength="10"
+ android:ellipsize="end"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
@@ -246,7 +257,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_marginLeft="@dimen/dp_12"
+ android:layout_marginLeft="@dimen/dp_2"
android:layout_toRightOf="@+id/tvUnloadDis"
android:gravity="center"
android:orientation="vertical">
@@ -343,15 +354,22 @@
android:textSize="@dimen/sp_15" />
+ android:textSize="@dimen/sp_15"
+ tools:text="整车 4.2/6.2/6.8 米 高栏/厢式" />
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+ android:layout_marginTop="@dimen/dp_33" />
diff --git a/app/src/main/res/layout/activity_waybill_unload.xml b/app/src/main/res/layout/activity_waybill_unload.xml
index 586777a..770daac 100644
--- a/app/src/main/res/layout/activity_waybill_unload.xml
+++ b/app/src/main/res/layout/activity_waybill_unload.xml
@@ -181,6 +181,7 @@
android:textSize="@dimen/sp_15" />
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginTop="@dimen/dp_33" />
diff --git a/app/src/main/res/layout/activity_waybill_uppic.xml b/app/src/main/res/layout/activity_waybill_uppic.xml
index 7ab1766..6aaa581 100644
--- a/app/src/main/res/layout/activity_waybill_uppic.xml
+++ b/app/src/main/res/layout/activity_waybill_uppic.xml
@@ -94,11 +94,12 @@
android:textSize="@dimen/sp_12" />
@@ -202,19 +203,19 @@
android:textColor="@color/black"
android:textSize="@dimen/sp_15" />
-
+ android:overScrollMode="never" />
@@ -222,9 +223,9 @@
diff --git a/app/src/main/res/layout/empty_view.xml b/app/src/main/res/layout/empty_view.xml
new file mode 100644
index 0000000..3074d51
--- /dev/null
+++ b/app/src/main/res/layout/empty_view.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index efac6ab..42b0cc4 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -1,189 +1,187 @@
-
-
+ android:layout_height="wrap_content"
+ android:fillViewport="true">
- >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginTop="@dimen/dp_m_36"
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:paddingLeft="@dimen/dp_14"
+ android:paddingRight="@dimen/dp_14">
+ android:layout_width="@dimen/dp_160"
+ android:layout_height="@dimen/dp_96"
+ android:background="@drawable/home_all">
+
-
-
+ android:layout_height="1dp"
+ android:layout_weight="1">
-
+
- //搜索
+ android:layout_marginRight="@dimen/dp_14"
+ android:background="@drawable/marquee_bg"
+ android:gravity="center_vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:text="推荐货源"
+ android:textColor="@color/black"
+ android:textSize="@dimen/sp_18"
+ android:textStyle="bold"
-
-
- //金刚区
+ >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_waybill.xml b/app/src/main/res/layout/fragment_waybill.xml
index bfdcf89..27a26ee 100644
--- a/app/src/main/res/layout/fragment_waybill.xml
+++ b/app/src/main/res/layout/fragment_waybill.xml
@@ -30,7 +30,21 @@
android:singleLine="true"
android:textSize="@dimen/sp_14">
+
+
+