Explorar o código

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/src/main/java/com/quansu/heifengwuliu/activity/WaybillDetailsActivity.kt
#	app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt
#	app/src/main/java/com/quansu/heifengwuliu/vmodel/EvaluateVModel.kt
#	app/src/main/java/com/quansu/heifengwuliu/vmodel/WaybillDetailsVModel.kt
咸光金 %!s(int64=4) %!d(string=hai) anos
pai
achega
b8ce9687de
Modificáronse 22 ficheiros con 893 adicións e 143 borrados
  1. 7 0
      app/proguard-rules.pro
  2. 1 0
      app/src/main/AndroidManifest.xml
  3. 38 0
      app/src/main/java/com/quansu/heifengwuliu/activity/EachOtherActivity.kt
  4. 11 0
      app/src/main/java/com/quansu/heifengwuliu/activity/EvaluateActivity.kt
  5. 15 4
      app/src/main/java/com/quansu/heifengwuliu/activity/WaybillDetailsActivity.kt
  6. 19 0
      app/src/main/java/com/quansu/heifengwuliu/adapter/EachOtherAdapter.kt
  7. 2 0
      app/src/main/java/com/quansu/heifengwuliu/config/MIntentAction.kt
  8. 55 47
      app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt
  9. 2 2
      app/src/main/java/com/quansu/heifengwuliu/fragment/WayBillFragment.kt
  10. 12 0
      app/src/main/java/com/quansu/heifengwuliu/model/OrderEva.kt
  11. 9 2
      app/src/main/java/com/quansu/heifengwuliu/model/WaybillDetails.kt
  12. 33 0
      app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt
  13. 29 0
      app/src/main/java/com/quansu/heifengwuliu/vmodel/EachOtherVModel.kt
  14. 106 2
      app/src/main/java/com/quansu/heifengwuliu/vmodel/EvaluateVModel.kt
  15. 226 68
      app/src/main/java/com/quansu/heifengwuliu/vmodel/WaybillDetailsVModel.kt
  16. 35 0
      app/src/main/res/layout/activity_each_other.xml
  17. 69 18
      app/src/main/res/layout/activity_evaluate.xml
  18. 2 0
      app/src/main/res/layout/fragment_ownersingle.xml
  19. 100 0
      app/src/main/res/layout/item_apy_car.xml
  20. 115 0
      app/src/main/res/layout/item_each_other.xml
  21. 2 0
      app/src/main/res/values/colors.xml
  22. 5 0
      app/src/main/res/values/strings.xml

+ 7 - 0
app/proguard-rules.pro

@@ -378,3 +378,10 @@
 #Okio
 -dontwarn org.codehaus.mojo.animal_sniffer.*
 
+##---------------Begin: proguard configuration for Gson  ----------
+-keep public class com.google.gson.**
+-keep public class com.google.gson.** {public private protected *;}
+-keep public class com.project.mocha_patient.login.SignResponseData { private *; }
+# Application classes that will be serialized/deserialized over Gson
+-keep class com.quansu.heifengwuliu.model.** { *; }
+

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -103,6 +103,7 @@
         <activity android:name=".activity.AllOwnerActivity"/>
         <activity android:name=".activity.CommentListActivity"/>
         <activity android:name=".activity.RechargeActivity"/>
+        <activity android:name=".activity.EachOtherActivity"/>
 
 
     </application >

+ 38 - 0
app/src/main/java/com/quansu/heifengwuliu/activity/EachOtherActivity.kt

@@ -0,0 +1,38 @@
+package com.quansu.heifengwuliu.activity
+
+import android.os.Bundle
+import com.quansu.heifengwuliu.adapter.EachOtherAdapter
+import com.quansu.heifengwuliu.base.MBRActivity
+import com.quansu.heifengwuliu.databinding.ActivityEachOtherBinding
+import com.quansu.heifengwuliu.vmodel.EachOtherVModel
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/24
+ * MBActivity<EachOtherVModel, ActivityEachOtherBinding>()
+ */
+class EachOtherActivity: MBRActivity<EachOtherVModel, EachOtherAdapter, ActivityEachOtherBinding>() {
+
+
+    override fun initCreate(savedInstanceState: Bundle?) {
+        super.initCreate(savedInstanceState)
+        vm.order_id= intent?.extras?.getString("order_id", "")!!
+
+    }
+
+    override fun binding(): ActivityEachOtherBinding {
+       return ActivityEachOtherBinding.inflate(layoutInflater)
+    }
+
+    override fun vmClass(): Class<EachOtherVModel> {
+        return EachOtherVModel::class.java
+    }
+
+    override fun title(): String? {
+        return "评价"
+    }
+
+    override fun initAdapter(): EachOtherAdapter {
+        return EachOtherAdapter(vm)
+    }
+}

+ 11 - 0
app/src/main/java/com/quansu/heifengwuliu/activity/EvaluateActivity.kt

@@ -1,5 +1,6 @@
 package com.quansu.heifengwuliu.activity
 
+import android.os.Bundle
 import com.quansu.heifengwuliu.base.MBActivity
 import com.quansu.heifengwuliu.databinding.ActivityEvaluateBinding
 import com.quansu.heifengwuliu.vmodel.EvaluateVModel
@@ -10,6 +11,16 @@ import com.quansu.heifengwuliu.vmodel.EvaluateVModel
  */
 class EvaluateActivity: MBActivity<EvaluateVModel, ActivityEvaluateBinding>(){
 
+
+    override fun initCreate(savedInstanceState: Bundle?) {
+        super.initCreate(savedInstanceState)
+        vm.order_id= intent?.extras?.getString("order_id", "")!!
+        vm.url.value= intent?.extras?.getString("url", "")!!
+        vm.sn.value= intent?.extras?.getString("sn", "")!!
+        vm.time.value= intent?.extras?.getString("time", "")!!
+
+    }
+
     override fun binding(): ActivityEvaluateBinding {
         return ActivityEvaluateBinding.inflate(layoutInflater)
     }

+ 15 - 4
app/src/main/java/com/quansu/heifengwuliu/activity/WaybillDetailsActivity.kt

@@ -30,8 +30,10 @@ class WaybillDetailsActivity : MBActivity<WaybillDetailsVModel, ActivityWaybilld
 
     }
 
-    override fun init(savedInstanceState: Bundle?) {
-        super.init(savedInstanceState)
+    override fun initCreate(savedInstanceState: Bundle?) {
+        super.initCreate(savedInstanceState)
+        vm.ll=binding.ll
+
         vm.type.value=type
         var order_id = intent?.extras?.getString("order_id", "")
 
@@ -95,7 +97,7 @@ class WaybillDetailsActivity : MBActivity<WaybillDetailsVModel, ActivityWaybilld
                     list.add(path.path)
                 }
 
-                OssUtils(this, vm)
+                OssUtils(this)
                         .setUpLoad("order", list, this)
 
             }
@@ -108,12 +110,21 @@ class WaybillDetailsActivity : MBActivity<WaybillDetailsVModel, ActivityWaybilld
             val selectList = PictureSelector.obtainMultipleResult(data) ?: return
             val list = ArrayList<String>()
             list.add(selectList[0].path)
-            OssUtils(this, vm)
+            OssUtils(this)
                     .setUpLoad("order", list, this)
 
             return
         }
 
+        if (requestCode == MIntentAction.REQUEST_CODE_COMMENT) {//评论
+
+            vm.changeComment()
+        }
+
+
+
+
+
     }
 
 

+ 19 - 0
app/src/main/java/com/quansu/heifengwuliu/adapter/EachOtherAdapter.kt

@@ -0,0 +1,19 @@
+package com.quansu.heifengwuliu.adapter
+
+import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
+import com.quansu.heifengwuliu.R
+import com.quansu.heifengwuliu.databinding.ItemBillBinding
+import com.quansu.heifengwuliu.databinding.ItemEachOtherBinding
+import com.quansu.heifengwuliu.model.AmountList
+import com.quansu.heifengwuliu.model.OrderEva
+import com.quansu.heifengwuliu.vmodel.EachOtherVModel
+import com.ysnows.base.base.BAdapter
+
+class EachOtherAdapter(var vm: EachOtherVModel) : BAdapter<OrderEva, BaseDataBindingHolder<ItemEachOtherBinding>>(R.layout.item_each_other) {
+    override fun convert(holder: BaseDataBindingHolder<ItemEachOtherBinding>, item: OrderEva) {
+
+        holder.dataBinding?.vm=vm
+        holder.dataBinding?.item = item
+
+    }
+}

+ 2 - 0
app/src/main/java/com/quansu/heifengwuliu/config/MIntentAction.kt

@@ -7,6 +7,8 @@ object MIntentAction {
     const val REQUEST_CODE_THREE = 10088
     const val REQUEST_CODE_IMG = 10088
     const val REQUEST_CODE_CAMERA = 10088
+    const val REQUEST_CODE_COMMENT = 10089
+
 
 
 

+ 55 - 47
app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt

@@ -6,6 +6,7 @@ import android.os.Bundle
 import android.text.Editable
 import android.text.TextUtils
 import android.text.TextWatcher
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import androidx.lifecycle.Observer
@@ -71,11 +72,11 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
     var area_in: String = ""
     var time_in: String = ""
 
-    var info_id: String = "0"
-    var goods_type_code = "0"
-
+    var info_id:String="0"
+    var goods_type_code="0"
     //常用司机
-    var driverList = ArrayList<String>()
+    var driverList=ArrayList<String>()
+
 
 
     override fun init(savedInstanceState: Bundle?) {
@@ -121,11 +122,11 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         binding.llGoodsType.setOnClickListener {
 
             PopuListUtils.showQMUIPopup(context(), binding.llGoodsType, goodsTypeList, object : ChoiceListData {
-                override fun onRestuse(code: String?, name: String?) {
-                    goods_type_code = code!!
-                    vm.goodstype.value = name
+                    override fun onRestuse(code: String?,name: String?) {
+                        goods_type_code=code!!
+                        vm.goodstype.value = name
 
-                }
+                    }
             })
         }
 
@@ -186,6 +187,7 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
 
 
+
     }
 
 
@@ -198,8 +200,8 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
 //
 //        return
 
-        var type_id = binding.viewHead.type_id
-        if (TextUtils.isEmpty(type_id)) {
+        var type_id=binding.viewHead.type_id
+        if(TextUtils.isEmpty(type_id)){
             toast("请选择车型!")
             return
         }
@@ -250,7 +252,7 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
             return
         }
 
-        var goods_name = binding.etGoodsName.text.toString().trim()
+        var goods_name=binding.etGoodsName.text.toString().trim()
 
         if (TextUtils.isEmpty(goods_name)) {
             toast("请输入货物名称")
@@ -279,40 +281,43 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
             return
         }
 
-        if (total.toDouble() == 0.00) {
+        if(total.toDouble()==0.00){
             toast("总金额要大于0")
             return
         }
         var address_in = binding.viewEnter.getEtDetailedAddress()!!.text.toString().trim()
 
         var receiveBean = ReceiveBean(lat_in, lng_in, province_in, city_in, area_in, address_in, name_in, mobile_in, time_in, "1",
-                goods_name, goods_type_code, nums, vm.unit.value!!, price, total, "", ""
+                goods_name, goods_type_code, nums, vm.unit.value!!, price, total,"",""
         )
 
-        if (is_agree == 0) {
+        if (is_agree==0) {
             toast("请阅读并同意《平台运输协议》")
             return
         }
-        var carnums = binding.etCarNums.text.toString()
-        if (TextUtils.isEmpty(carnums)) {
+        var carnums=binding.etCarNums.text.toString()
+        if(TextUtils.isEmpty(carnums)){
             toast("请输入所需车辆数量")
             return
         }
-        var data = binding.etData.text.toString()
+        var data=binding.etData.text.toString()
 
-        var sendList = ArrayList<SendBean>()
+        var sendList=ArrayList<SendBean>()
         sendList.add(sendBean)
 
-        var send = Gson().toJson(sendList)
-        var receiveList = ArrayList<ReceiveBean>()
+        var send= Gson().toJson(sendList)
+        var receiveList=ArrayList<ReceiveBean>()
         receiveList.add(receiveBean)
 
-        var receive = Gson().toJson(receiveList)
+        var receive= Gson().toJson(receiveList)
+
+        var driver=Gson().toJson(driverList)
 
-        var driver = Gson().toJson(driverList)
+        Log.e("-shy-", "send=: "+send )
+        Log.e("-shy-", "receive=: "+receive )
 
-        vm.setReleaseSource(info_id, type_id, total, driver, carnums, is_public.toString(), is_insurance.toString(), "1",
-                data, send, receive)
+        vm.setReleaseSource(info_id,type_id,total,driver,carnums,is_public.toString(),is_insurance.toString(),"1",
+               data,send,receive)
 
     }
 
@@ -355,12 +360,12 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
     private fun initTab(info: DataInfoBean) {
 
 
-        binding.viewHead.setHeadData(info, childFragmentManager)
-        if (null != info.car_type && info.car_type.isNotEmpty()) {
+        binding.viewHead.setHeadData(info,childFragmentManager)
+        if(null!=info.car_type&& info.car_type.isNotEmpty()) {
             binding.etSingCarNums.setText(info.car_type[0].weight)
         }
         //设置默认装货地址-卸货地址
-        if (null != info.default_send) {
+        if(null!=info.default_send){
             binding.viewHead.getTvCity()!!.text = info.default_send.province.name + info.default_send.city.name + info.default_send.area.name
             binding.viewHead.getEtDetailedAddress()!!.setText(info.default_send.address)
             binding.viewHead.getEtName()!!.setText(info.default_send.name)
@@ -371,7 +376,7 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
             province_out = info.default_send.province!!.code.toString()
             city_out = info.default_send.city!!.code.toString()
         }
-        if (null != info.default_receive) {
+        if(null!=info.default_receive){
 
             binding.viewEnter.getTvCity()!!.text = info.default_receive.province?.name + info.default_receive.city?.name + info.default_receive.area?.name
             binding.viewEnter.getEtDetailedAddress()!!.setText(info.default_receive.address)
@@ -396,7 +401,7 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
         //向右
         binding.viewHead.getImgDown()!!.setOnClickListener {
-            var selectViewpage = binding.viewHead.getQmViewPager()!!.currentItem
+           var  selectViewpage =binding.viewHead.getQmViewPager()!!.currentItem
             if (selectViewpage < binding.viewHead.getCats().size - 1) {
                 binding.viewHead.getQmViewPager()!!.currentItem = selectViewpage + 1
             }
@@ -406,7 +411,7 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
 
         //向左
         binding.viewHead.getImgUp()!!.setOnClickListener {
-            var selectViewpage = binding.viewHead.getQmViewPager()!!.currentItem
+           var  selectViewpage = binding.viewHead.getQmViewPager()!!.currentItem
 
             if (selectViewpage < binding.viewHead.getCats().size - 1 && selectViewpage > 0) {
                 binding.viewHead.getQmViewPager()!!.currentItem = selectViewpage - 1
@@ -546,15 +551,15 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
 
 
-        if (MIntentAction.REQUEST_CODE_THREE == requestCode && resultCode == Activity.RESULT_OK) {
+        if (MIntentAction.REQUEST_CODE_THREE == requestCode && resultCode == Activity.RESULT_OK){
             //常用司机
             val bundle = data!!.extras
             if (null != bundle) {
                 driverList.clear()
 
-                var arr = bundle.getSerializable("driver") as ArrayList<String>
+                var  arr=bundle.getSerializable("driver") as ArrayList<String>
                 driverList.addAll(arr)
-                binding.tvDriver.text = "已指定" + driverList.size + "人"
+                binding.tvDriver.text="已指定"+driverList.size+"人"
 
             }
 
@@ -562,12 +567,14 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
 
 
+
+
     }
 
 
     private fun choseMap() {
 
-        AndPermission.with(context)
+        AndPermission.with(repository().context)
                 .runtime()
                 .permission(Permission.ACCESS_COARSE_LOCATION,
                         Permission.ACCESS_FINE_LOCATION,
@@ -638,12 +645,12 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
     @Subscribe(tags = [Tag(ConfigRx.ADD_ADAIN)])
     fun getAgainDatas(json: String) {
         //再来一单的数据
-        var order = Gson().fromJson(json, DataInfoBean.OrderBean::class.java)
-        if (order.type == 1) {
+        var order= Gson().fromJson(json, DataInfoBean.OrderBean::class.java)
+        if(order.type==1){
             //车辆
             binding.viewHead.setAgain(order.type_info.type_id)
             //设置默认装货地址-卸货地址
-            if (null != order.send) {
+            if(null!=order.send){
                 binding.viewHead.getTvCity()!!.text = order.send[0].province.name + order.send[0].city.name + order.send[0].area.name
                 binding.viewHead.getEtDetailedAddress()!!.setText(order.send[0].address)
                 binding.viewHead.getEtName()!!.setText(order.send[0].name)
@@ -654,9 +661,9 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
                 area_out = order.send[0].area.code.toString()
                 province_out = order.send[0].province!!.code.toString()
                 city_out = order.send[0].city!!.code.toString()
-                time_out = order.send[0].time
+                time_out=order.send[0].time
             }
-            if (null != order.receive) {
+            if(null!=order.receive){
 
                 binding.viewEnter.getTvCity()!!.text = order.receive[0].province?.name + order.receive[0].city?.name + order.receive[0].area?.name
                 binding.viewEnter.getEtDetailedAddress()!!.setText(order.receive[0].address)
@@ -671,13 +678,13 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
                 time_in = order.receive[0].time
 
                 //货物信息
-                binding.etGoodsName.setText(order.receive[0].goods)
+                binding.etGoodsName.setText( order.receive[0].goods)
                 //货物类型
-                goods_type_code = order.receive[0].goods_type.code
-                vm.goodstype.value = order.receive[0].goods_type.name
+                goods_type_code=order.receive[0].goods_type.code
+                vm.goodstype.value=order.receive[0].goods_type.name
                 //单车运量
                 binding.etSingCarNums.setText(order.receive[0].nums)
-                vm.unit.value = order.receive[0].nums_type.name
+                vm.unit.value=order.receive[0].nums_type.name
                 //单价
                 binding.etSingCarPrice.setText(order.receive[0].price)
                 //总价
@@ -685,16 +692,16 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
             }
             //保险,常用司机
 
-            if (order.is_insurance == "0") {
+            if(order.is_insurance == "0") {
                 vm.insurance.value = "否"
                 is_insurance = 0
-            } else {
+            }else{
                 vm.insurance.value = "是"
                 is_insurance = 1
             }
 
-            if (order.driver.isNotEmpty()) {
-                binding.tvDriver.text = "已指定" + driverList.size + "人"
+            if(order.driver.isNotEmpty()) {
+                binding.tvDriver.text="已指定"+driverList.size+"人"
             }
             //备注
             binding.etData.setText(order.data)
@@ -712,5 +719,6 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
     }
 
 
+
 }
 

+ 2 - 2
app/src/main/java/com/quansu/heifengwuliu/fragment/WayBillFragment.kt

@@ -55,13 +55,13 @@ class WayBillFragment : MBTabFragment<BViewModel<BRepository>, FragmentWaybillBi
 
             }
             3 -> {
-                ownerFragment.arguments = B().putString("info_state", "40").ok()
+                ownerFragment.arguments = B().putString("info_state", "100").ok()
                 return ownerFragment
 
             }
             4 -> {
                 var ownerFragment = OrderListFragment()
-                ownerFragment.arguments = B().putString("info_state", "100").ok()
+                ownerFragment.arguments = B().putString("info_state", "40").ok()
                 return ownerFragment
 
             }

+ 12 - 0
app/src/main/java/com/quansu/heifengwuliu/model/OrderEva.kt

@@ -0,0 +1,12 @@
+package com.quansu.heifengwuliu.model
+
+import com.ysnows.base.inter.IModel
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/24
+ */
+data class OrderEva(var eva_id:String,var uid:String,var info_id:String,
+                    var order_id:String,var content:String,var score:Int,
+                    var create_time:String,var update_time:String): IModel {
+}

+ 9 - 2
app/src/main/java/com/quansu/heifengwuliu/model/WaybillDetails.kt

@@ -6,8 +6,7 @@ import com.ysnows.base.inter.IModel
  *Created by shihuiyun
  *on 2020/9/24
  */
-data class WaybillDetails(var order: OrderBean,var info:DataInfoBean.OrderBean,var driver:DriverBean): IModel {
-
+data class WaybillDetails(var order: OrderBean,var info:DataInfoBean.OrderBean,var driver:DriverBean,var eva:EvaBean): IModel {
 
 
 
@@ -19,4 +18,12 @@ data class WaybillDetails(var order: OrderBean,var info:DataInfoBean.OrderBean,v
 
     data class DriverBean(var uid: String,var name: String, var avatar: String,
                           var mobile: String, var number: String, var is_collect: Int):IModel{}
+
+
+    data class EvaBean(var my_eva:MyEvaBean,var other_eva:OtherEvaBean):IModel{
+
+        data class MyEvaBean(var score:Int,var content:String):IModel{}
+        data class OtherEvaBean(var score:Int,var content:String):IModel{}
+
+    }
 }

+ 33 - 0
app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt

@@ -524,4 +524,37 @@ interface ApiService {
     suspend fun carList(@Query("info_id") info_id: String?, @Query("p") p: Int): Resp<List<DriverBean>>
 
 
+    /**
+     * 支付车主-货主
+     * @return
+     */
+    @POST("api/info/carPay")
+    @FormUrlEncoded
+    fun carPay(@Field("money") money: String?,@Field("order_id") order_id: String?, @Field("pay_pwd") pay_pwd: String?): Observable<Response<Any>>
+
+
+
+    /**
+     * 评论
+     * @return
+     */
+    @POST("api/info/eva")
+    @FormUrlEncoded
+    fun eva(@Field("order_id") order_id: String?, @Field("score") score: String?,
+                    @Field("content") content: String?
+    ): Observable<Response<Any>>
+
+
+
+    /**
+     * 订单评论
+     * @return
+     */
+    @GET("api/info/orderEva")
+    fun orderEva(@Query("order_id") order_id: String?,@Query("p") p: Int): Observable<Response<List<OrderEva>>>
+
+
+
+
+
 }

+ 29 - 0
app/src/main/java/com/quansu/heifengwuliu/vmodel/EachOtherVModel.kt

@@ -0,0 +1,29 @@
+package com.quansu.heifengwuliu.vmodel
+
+import com.quansu.heifengwuliu.model.User
+import com.quansu.heifengwuliu.utils.net.NetEngine
+import com.ysnows.base.base.BRRepository
+import com.ysnows.base.base.BRViewModel
+import com.ysnows.base.net.IResponse
+import io.reactivex.Observable
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/22
+ */
+class EachOtherVModel: BRViewModel<BRRepository>() {
+
+    var order_id=""
+    var user=User.get()
+
+    override fun api(): Observable<out IResponse<*>> {
+        return NetEngine.service.orderEva(order_id,repository().autoPage())
+    }
+
+
+    fun isSelf(uid:String):Boolean{//是自己的
+        return uid == user!!.uid
+
+    }
+
+}

+ 106 - 2
app/src/main/java/com/quansu/heifengwuliu/vmodel/EvaluateVModel.kt

@@ -1,8 +1,13 @@
 package com.quansu.heifengwuliu.vmodel
 
-import android.app.Application
+import android.app.Activity
+import android.content.Intent
+import android.text.TextUtils
+import android.widget.Toast
 import androidx.databinding.Bindable
+import androidx.lifecycle.MutableLiveData
 import com.quansu.heifengwuliu.BR
+import com.quansu.heifengwuliu.utils.net.NetEngine
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 
@@ -10,7 +15,23 @@ import com.ysnows.base.base.BViewModel
  *Created by shihuiyun
  *on 2020/9/22
  */
-class EvaluateVModel(application: Application): BViewModel<BRepository>(application) {
+class EvaluateVModel: BViewModel<BRepository>() {
+
+    var isShow: MutableLiveData<Boolean> = MutableLiveData(true)
+
+    var url: MutableLiveData<String> = MutableLiveData()
+    var sn: MutableLiveData<String> = MutableLiveData()
+    var time: MutableLiveData<String> = MutableLiveData()
+
+    var branch : MutableLiveData<Int> = MutableLiveData(0)//0-5
+
+
+    var order_id=""
+    var choseOn1=MutableLiveData(false)
+    var choseOn2=MutableLiveData(false)
+    var choseOn3=MutableLiveData(false)
+    var choseOn4=MutableLiveData(false)
+    var choseOn5=MutableLiveData(false)
 
     @Bindable
     var name: String? = null
@@ -18,4 +39,87 @@ class EvaluateVModel(application: Application): BViewModel<BRepository>(applicat
             field = value
             notifyPropertyChanged(BR.name)
         }
+
+
+    fun toSubmit(){
+        //发布
+
+        if(TextUtils.isEmpty(name)){
+            toast("请输入评论")
+            return
+
+        }
+
+        if(branch.value==0){
+            toast("请给对方打星,至少一星")
+            return
+        }
+
+        repository().lreq(NetEngine.service.eva(order_id,branch.value.toString(),name))
+                .doOnNext {
+                    if (it.ok(true)) {
+
+                        val intent = Intent()
+                        var con = repository().context as Activity
+                        con.setResult(Activity.RESULT_OK, intent)
+                        con.finish()
+
+                    }
+                }
+                .subscribe()
+
+    }
+
+    fun toStars(type:Int){
+        when(type){
+            1->{
+                if(!choseOn1.value!!){
+                    branch.value= branch.value!! +1
+                }else{
+                    branch.value= branch.value!! -1
+                }
+                choseOn1.value=!choseOn1.value!!
+            }
+            2->{
+                if(!choseOn2.value!!){
+                    branch.value= branch.value!! +1
+                }else{
+                    branch.value= branch.value!! -1
+                }
+                choseOn2.value=!choseOn2.value!!
+
+            }
+            3->{
+                if(!choseOn3.value!!){
+                    branch.value= branch.value!! +1
+                }else{
+                    branch.value= branch.value!! -1
+                }
+                choseOn3.value=!choseOn3.value!!
+            }
+            4->{
+                if(!choseOn4.value!!){
+                    branch.value= branch.value!! +1
+                }else{
+                    branch.value= branch.value!! -1
+                }
+                choseOn4.value=!choseOn4.value!!
+            }
+            5->{
+                if(!choseOn5.value!!){
+                    branch.value= branch.value!! +1
+                }else{
+                    branch.value= branch.value!! -1
+                }
+                choseOn5.value=!choseOn5.value!!
+            }
+        }
+
+    }
+
+
+
+
+
+
 }

+ 226 - 68
app/src/main/java/com/quansu/heifengwuliu/vmodel/WaybillDetailsVModel.kt

@@ -3,27 +3,24 @@ package com.quansu.heifengwuliu.vmodel
 import android.Manifest
 import android.annotation.SuppressLint
 import android.app.Activity
-import android.app.Application
 import android.content.Context
 import android.content.Intent
 import android.net.Uri
 import android.os.Bundle
 import android.text.TextUtils
-import android.util.Log
+import android.text.TextWatcher
 import android.view.LayoutInflater
+import android.widget.EditText
 import android.widget.FrameLayout
 import android.widget.ImageView
 import android.widget.LinearLayout
-import android.widget.TextView
 import androidx.databinding.Bindable
 import androidx.lifecycle.MutableLiveData
 import com.google.gson.Gson
 import com.hwangjr.rxbus.RxBus
 import com.qmuiteam.qmui.layout.QMUIFrameLayout
-import com.qmuiteam.qmui.skin.QMUISkinHelper
 import com.qmuiteam.qmui.skin.QMUISkinValueBuilder
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
-import com.qmuiteam.qmui.util.QMUIResHelper
 import com.qmuiteam.qmui.widget.dialog.QMUIDialog
 import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
 import com.qmuiteam.qmui.widget.popup.QMUIPopup
@@ -31,10 +28,9 @@ import com.qmuiteam.qmui.widget.popup.QMUIPopups
 import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
 import com.quansu.heifengwuliu.BR
 import com.quansu.heifengwuliu.R
+import com.quansu.heifengwuliu.activity.EachOtherActivity
 import com.quansu.heifengwuliu.activity.EvaluateActivity
-import com.quansu.heifengwuliu.activity.VehicleListActivity
-import com.quansu.heifengwuliu.config.ConfigRx
-import com.quansu.heifengwuliu.model.DataInfoBean
+import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.model.WaybillDetails
 import com.quansu.heifengwuliu.utils.ChosePhotoUtils
 import com.quansu.heifengwuliu.utils.net.NetEngine
@@ -44,30 +40,34 @@ import com.yanzhenjie.permission.AndPermission
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 import com.ysnows.base.utils.UiSwitch
-import java.util.HashMap
+import com.ysnows.base.utils.UiUtils
+import com.ysnows.base.view.BView
+import java.util.*
 
 
 /*
 *
 *   订单状态 order_state:0->全部 10->待取货 20->运输中 30->待结算 40->待评价 50->已完成
 */
-open class WaybillDetailsVModel(application: Application) : BViewModel<BRepository>(application) {
+open class WaybillDetailsVModel : BViewModel<BRepository>() {
 
     val info: MutableLiveData<WaybillDetails> = MutableLiveData<WaybillDetails>()
-
     //0货主端  2司机端
     val type: MutableLiveData<Int> = MutableLiveData<Int>()
 
     val tvTitle: MutableLiveData<String> = MutableLiveData<String>()
 
 
-    var order_state: Int = 0
+    var order_state:Int=0
 
     var img: MutableLiveData<String> = MutableLiveData("")//司机端
     val isDialogShow: MutableLiveData<Boolean> = MutableLiveData<Boolean>(false)//司机端
 
     val isButShow: MutableLiveData<Boolean> = MutableLiveData<Boolean>(true)
 
+    var ll: LinearLayout? =null
+
+
 
     @Bindable
     var number: String? = null
@@ -79,41 +79,55 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
     fun getInfo(order_id: String) {
 
-        if (type.value == 0) {//货主端-运单详情
+        if(type.value==0){//货主端-运单详情
 
-            repository().rxLreq(NetEngine.service.orderGet(order_id))
+            repository().preq(NetEngine.service.orderGet(order_id))
                     .doOnNext() {
                         if (it.ok()) {
 
                             info.value = it.data() as WaybillDetails
-                            order_state = info.value!!.order.order_state
-                            when (info.value!!.order.order_state) {
-                                10 -> tvTitle.value = "运输轨迹"
-                                20 -> tvTitle.value = "运输轨迹"
-                                30 -> tvTitle.value = "去结算"
-                                40 -> tvTitle.value = "待评价"
-                                50 -> tvTitle.value = "查看评价"
+                            order_state= info.value!!.order.order_state
+                            when(info.value!!.order.order_state){
+                                10->tvTitle.value="运输轨迹"
+                                20->tvTitle.value="运输轨迹"
+                                30->tvTitle.value="去结算"
+                                40->{
+                                    if(null!=info.value!!.eva.my_eva){
+                                        order_state=50
+                                        tvTitle.value = "查看评价"
+                                    }else {
+                                        tvTitle.value = "待评价"
+                                    }
+                                }
+                                50->tvTitle.value="查看评价"
                             }
 
                         }
                     }
                     .subscribe()
 
-        } else { //司机端-货主详情
+        }else{ //司机端-货主详情
 
-            repository().rxLreq(NetEngine.service.orderGetDriver(order_id))
+            repository().preq(NetEngine.service.orderGetDriver(order_id))
                     .doOnNext() {
                         if (it.ok()) {
 
-                            info.value = it.data() as WaybillDetails
-                            order_state = info.value!!.order.order_state
-                            isButShow.value = order_state == 10 || order_state == 20 || order_state == 40 || order_state == 50
-
-                            when (info.value!!.order.order_state) {
-                                10 -> tvTitle.value = "开始送货"
-                                20 -> tvTitle.value = "已送达"
-                                40 -> tvTitle.value = "待评价"
-                                50 -> tvTitle.value = "查看评价"
+                            info.value = it.data()as WaybillDetails
+                            order_state= info.value!!.order.order_state
+                            isButShow.value = order_state==10||order_state==20||order_state==40||order_state==50
+
+                            when(info.value!!.order.order_state){
+                                10->tvTitle.value="开始送货"
+                                20->tvTitle.value="已送达"
+                                40->{
+                                    if(null!=info.value!!.eva.my_eva){
+                                        order_state=50
+                                        tvTitle.value = "查看评价"
+                                    }else {
+                                        tvTitle.value = "待评价"
+                                    }
+                                }
+                                50->tvTitle.value="查看评价"
                             }
 
                         }
@@ -122,12 +136,14 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
         }
 
 
+
+
     }
 
 
-    fun toStartShip(order_id: String) {
+    fun toStartShip(order_id:String){
 
-        if (type.value == 0) {
+        if(type.value==0) {//货主端
             //0->全部 10->待取货 20->运输中 30->待结算 40->待评价 50->已完成
 //        10->tvTitle.value="运输轨迹"
 //        20->tvTitle.value="运输轨迹"
@@ -144,23 +160,42 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
             if (order_state == 30) {
 
 
+                showPayDialog(order_id)
+
+
+
                 return
             }
 
             if (order_state == 40) {
+                //货主给司机评价
+
+                UiSwitch.bundleRes(repository().context as Activity, EvaluateActivity::class.java, Bundle().apply {
+                    putString("order_id",order_id)
+                    putString("url", info.value!!.driver.avatar)
+                    putString("sn", info.value!!.order.order_sn)
+                    putString("time", info.value!!.order.create_time)
+                }, MIntentAction.REQUEST_CODE_COMMENT)
+
 
 
                 return
             }
             if (order_state == 50) {
+                //查看评价
+               UiSwitch.bundle(repository().context, EachOtherActivity::class.java,
+                Bundle().apply {
+                    putString("order_id",order_id)
 
+                  }
+                )
 
                 return
             }
 
-        } else {//司机端
+        }else{//司机端
 
-            if (order_state == 10) {
+            if(order_state==10) {
                 QMUIDialog.MessageDialogBuilder(repository().context)
                         .setTitle("提示")
                         .setMessage("确定要开始送货么")
@@ -174,42 +209,50 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                         .show()
                 return
             }
-            if (order_state == 20) {//已完成
+            if(order_state==20){//已完成
 
-                isDialogShow.value = true
-                number = ""
+                isDialogShow.value=true
+                number=""
             }
-            if (order_state == 40) {//待评价--司机对货主的评价
+            if(order_state==40){//待评价--司机对货主的评价
 
-                UiSwitch.bundle(repository().context, EvaluateActivity::class.java, Bundle().apply {
-                    putString("order_id", order_id)
-                })
+                UiSwitch.bundleRes(repository().context as Activity, EvaluateActivity::class.java, Bundle().apply {
+                    putString("order_id",order_id)
+                    putString("url", "")
+                    putString("sn", info.value!!.order.order_sn)
+                    putString("time", info.value!!.order.create_time)
+                },MIntentAction.REQUEST_CODE_COMMENT)
 
 
             }
 
-            if (order_state == 50) {//查看评价
-
+            if(order_state==50){//查看评价
 
+                UiSwitch.bundle(repository().context, EachOtherActivity::class.java,
+                        Bundle().apply {
+                            putString("order_id",order_id)
+                        }
+                )
             }
 
 
         }
 
 
+
     }
 
 
-    fun setSureSend(order_id: String) {
+    fun setSureSend(order_id:String){
 
-        var map = HashMap<String, String>()
+        var map= HashMap<String, String>()
         map["order_id"] = order_id
         map["state"] = "20"
-        repository().rxLreq(NetEngine.service.setStatus(map))
+        repository().lreq(NetEngine.service.setStatus(map))
                 .doOnNext() {
                     if (it.ok()) {
-                        order_state = 20//变成运输中
-                        tvTitle.value = "已送达"
+                        order_state=20//变成运输中
+                        tvTitle.value="已送达"
                     }
                 }
                 .subscribe()
@@ -217,10 +260,11 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
     }
 
 
+
     @SuppressLint("WrongConstant")
-    fun toCallPhone(mobile: String) {
+    fun toCallPhone(mobile:String){
         //拨打电话
-        if (TextUtils.isEmpty(mobile)) {
+        if(TextUtils.isEmpty(mobile)){
             toast("未添加该公司的电话!!")
             return
         }
@@ -238,42 +282,40 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
     }
 
-    fun interceptClick() {
+    fun interceptClick(){
         return
     }
-
     fun choseImg() {
         //选择照片
         ChosePhotoUtils.getChosePhoto(view()!!.context(), 1)
 
     }
-
-    fun goOperation(type: Int, order_id: String, data_id: String) {
-        if (type == 1) {
-            isDialogShow.value = false
-        } else {
+    fun goOperation(type:Int,order_id:String,data_id:String){
+        if(type==1){
+            isDialogShow.value=false
+        }else{
             //确定
-            if (TextUtils.isEmpty(number)) {
+            if(TextUtils.isEmpty(number)){
                 toast("输入运送数量")
                 return
             }
-            if (TextUtils.isEmpty(img.value)) {
+            if(TextUtils.isEmpty(img.value)){
                 toast("请上传凭证")
                 return
             }
 
-            var map = HashMap<String, String>()
+            var map= HashMap<String, String>()
             map["order_id"] = order_id
             map["state"] = "30"
-            map["data_id"] = data_id
+            map["data_id"] =data_id
             map["img"] = img.value.toString()
             map["nums"] = number.toString()
-            repository().rxLreq(NetEngine.service.setStatus(map))
+            repository().lreq(NetEngine.service.setStatus(map))
                     .doOnNext() {
                         if (it.ok(true)) {
-                            order_state = 30//变成待结算
-                            tvTitle.value = ""
-                            isDialogShow.value = false
+                            order_state=30//变成待结算
+                            tvTitle.value=""
+                            isDialogShow.value=false
                         }
                     }
                     .subscribe()
@@ -282,7 +324,7 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
     }
 
-    fun getOrderStatus(order_state: Int): String {
+    fun  getOrderStatus(order_state:Int):String {
         //0->全部 10->待取货 20->运输中 30->待结算 40->待评价 50->已完成
         if (type.value == 0) {//货主端
             when (order_state) {
@@ -308,4 +350,120 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
     }
 
 
+
+    fun showPayDialog(order_id: String){
+        var mNormalPopup = QMUIPopups.fullScreenPopup(repository().context)
+        val builder: QMUISkinValueBuilder = QMUISkinValueBuilder.acquire()
+        val frameLayout = QMUIFrameLayout(repository().context)
+
+        //自定义布局
+        val layoutInflater = repository().context?.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+        var layout = layoutInflater.inflate(R.layout.item_apy_car, null)
+        val butCancel: ImageView = layout.findViewById(R.id.iv_close)
+        val etMoney: EditText = layout.findViewById(R.id.et_money)
+
+        val butSure: QMUIRoundButton =layout.findViewById(R.id.but_sure)
+
+        val payPwdEditText: PasswordView = layout.findViewById(R.id.ppet)
+        var password=""
+
+
+        payPwdEditText.setPasswordListener(object : PasswordView.PasswordListener {
+            override fun keyEnterPress(pwd: String?, isComplete: Boolean) {
+                password= pwd!!
+                if(!TextUtils.isEmpty(password)&&password.length==6){
+                    var money=etMoney.text.toString().trim()
+                    if(TextUtils.isEmpty(money)){
+                        toast("请输入支付金额")
+                        return
+                    }
+                    getInfoPay(money,order_id,password)
+                    mNormalPopup.dismiss()
+                }
+
+            }
+            override fun passwordChange(changeText: String?) {
+            }
+
+            override fun passwordComplete(pwd: String?) {
+                password=pwd!!
+                if(!TextUtils.isEmpty(password)&&password.length==6){
+
+                    var money=etMoney.text.toString().trim()
+                    if(TextUtils.isEmpty(money)){
+                        toast("请输入支付金额")
+                        return
+                    }
+                    getInfoPay(money,order_id,password)
+                    mNormalPopup.dismiss()
+                }
+            }
+
+        })
+
+
+        butSure.setOnClickListener {
+            var money=etMoney.text.toString().trim()
+            if(TextUtils.isEmpty(money)){
+                toast("请输入支付金额")
+                return@setOnClickListener
+            }
+
+            if(!TextUtils.isEmpty(password)&&password.length==6){
+                getInfoPay(money,order_id,password)
+                mNormalPopup.dismiss()
+            }else{
+                toast("请输入支付密码")
+                return@setOnClickListener
+            }
+
+
+        }
+        butCancel.setOnClickListener {
+            mNormalPopup.dismiss()
+        }
+        builder.release();
+
+        val size= QMUIDisplayHelper.getScreenWidth(repository().context)
+
+        val lp: FrameLayout.LayoutParams = FrameLayout.LayoutParams(size,
+                FrameLayout.LayoutParams.WRAP_CONTENT)
+        frameLayout.addView(layout, lp)
+
+        mNormalPopup.addView(frameLayout)
+        mNormalPopup.onDismiss() {
+        }
+
+        mNormalPopup.dismissIfOutsideTouch(false)
+        mNormalPopup.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+        mNormalPopup.show(ll)
+
+    }
+
+
+    fun getInfoPay(money:String,order_id: String,pay_pwd:String) {
+        repository().lreq(NetEngine.service.carPay(money,order_id,pay_pwd))
+                .doOnNext() {
+                    if (it.ok(true)) {
+                        order_state=40
+                        tvTitle.value= "待评价"
+                    }
+
+                }
+                .subscribe()
+    }
+
+    fun changeComment(){//发表完评论改变状态
+        order_state=50
+        tvTitle.value="查看评价"
+
+    }
+
+
+
 }
+
+
+
+
+

+ 35 - 0
app/src/main/res/layout/activity_each_other.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <data >
+
+        <variable
+            name="vm"
+            type="com.quansu.heifengwuliu.vmodel.EachOtherVModel" />
+    </data >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/color_bg"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        xmlns:tools="http://schemas.android.com/tools"
+        android:orientation="vertical" >
+        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/recycler_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+                tools:listitem="@layout/item_each_other" />
+
+        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+
+
+
+    </LinearLayout >
+</layout >

+ 69 - 18
app/src/main/res/layout/activity_evaluate.xml

@@ -1,16 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <data>
 
+        <import type="android.view.View" />
+
         <variable
             name="vm"
             type="com.quansu.heifengwuliu.vmodel.EvaluateVModel" />
 
     </data>
 
-    <LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/color_bg"
@@ -39,7 +42,8 @@
                 <ImageView
                     android:layout_width="40dp"
                     android:layout_height="40dp"
-                    android:src="@drawable/bg_need_error" />
+                    android:src="@drawable/bg_need_error"
+                    app:url="@{vm.url}" />
 
                 <LinearLayout
                     android:layout_width="match_parent"
@@ -50,6 +54,7 @@
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+                        android:text="@{@string/order_number+vm.sn}"
                         android:textColor="@color/text_title"
                         android:textSize="14sp"
                         tools:text="订单编号:29837453657846" />
@@ -58,6 +63,7 @@
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginTop="5dp"
+                        android:text="@{vm.time}"
                         android:textColor="#A7A7B4"
                         android:textSize="12sp"
                         tools:text="2020-09-15 12:30:20" />
@@ -137,35 +143,48 @@
                 <LinearLayout
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:layout_marginEnd="43dp"
                     android:layout_marginStart="17dp"
+                    android:layout_marginEnd="10dp"
                     android:layout_weight="1">
-                    
+
                     <ImageView
                         android:layout_width="18dp"
-                        android:src="@drawable/ic_star_on"
+                        android:layout_height="match_parent"
                         android:layout_marginEnd="23dp"
-                        android:layout_height="18dp"/>
+                        android:onClick="@{v->vm.toStars(1)}"
+                        android:src="@{vm.choseOn1?@drawable/ic_star_on:@drawable/ic_star_off}"
+                        tools:src="@drawable/ic_star_off" />
 
                     <ImageView
                         android:layout_width="18dp"
-                        android:src="@drawable/ic_star_on"
+                        android:layout_height="18dp"
                         android:layout_marginEnd="23dp"
-                        android:layout_height="18dp"/>
+                        android:onClick="@{v->vm.toStars(2)}"
+                        android:src="@{vm.choseOn2?@drawable/ic_star_on:@drawable/ic_star_off}"
+                        tools:src="@drawable/ic_star_off" />
+
                     <ImageView
                         android:layout_width="18dp"
-                        android:src="@drawable/ic_star_off"
+                        android:layout_height="18dp"
                         android:layout_marginEnd="23dp"
-                        android:layout_height="18dp"/>
+                        android:onClick="@{v->vm.toStars(3)}"
+                        android:src="@{vm.choseOn3?@drawable/ic_star_on:@drawable/ic_star_off}"
+                        tools:src="@drawable/ic_star_off" />
+
                     <ImageView
                         android:layout_width="18dp"
-                        android:src="@drawable/ic_star_off"
+                        android:layout_height="18dp"
                         android:layout_marginEnd="23dp"
-                        android:layout_height="18dp"/>
+                        android:onClick="@{v->vm.toStars(4)}"
+                        android:src="@{vm.choseOn4?@drawable/ic_star_on:@drawable/ic_star_off}"
+                        tools:src="@drawable/ic_star_off" />
+
                     <ImageView
                         android:layout_width="18dp"
-                        android:src="@drawable/ic_star_off"
-                        android:layout_height="18dp"/>
+                        android:layout_height="18dp"
+                        android:onClick="@{v->vm.toStars(5)}"
+                        android:src="@{vm.choseOn5?@drawable/ic_star_on:@drawable/ic_star_off}"
+                        tools:src="@drawable/ic_star_off" />
 
 
                 </LinearLayout>
@@ -173,9 +192,10 @@
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="2.0分"
+                    android:text="@{vm.branch+@string/branch}"
                     android:textColor="#878889"
-                    android:textSize="12sp" />
+                    android:textSize="12sp"
+                    tools:text="2.0分" />
 
 
             </LinearLayout>
@@ -184,5 +204,36 @@
         </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
 
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="16dp"
+            android:layout_marginTop="13dp"
+            android:layout_marginEnd="@dimen/dp_16"
+            android:onClick="@{v->vm.toSubmit()}"
+            android:visibility="@{vm.isShow?View.VISIBLE :View.GONE}">
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="106dp"
+                android:src="@drawable/ic_details_grab" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="发布"
+                android:textColor="@color/white"
+                android:textSize="16sp">
+
+            </TextView>
+
+        </FrameLayout>
+
     </LinearLayout>
 </layout>

+ 2 - 0
app/src/main/res/layout/fragment_ownersingle.xml

@@ -233,6 +233,7 @@
                             android:layout_marginStart="@dimen/dp_10"
                             android:layout_weight="1"
                             android:background="@null"
+                            android:inputType="number|numberDecimal"
                             android:gravity="center_vertical|right"
                             android:hint="请输入单价"
                             android:textColor="@color/text_title"
@@ -270,6 +271,7 @@
                             android:layout_height="wrap_content"
                             android:layout_marginStart="@dimen/dp_10"
                             android:layout_weight="1"
+                            android:inputType="number|numberDecimal"
                             android:background="@null"
                             android:gravity="center_vertical|right"
                             android:hint="请输入总金额"

+ 100 - 0
app/src/main/res/layout/item_apy_car.xml

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="vertical">
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:padding="@dimen/dp_10">
+        
+        <ImageView
+            android:id="@+id/iv_close"
+            android:layout_width="26dp"
+            android:src="@drawable/ic_dialog_close"
+            android:layout_gravity="right"
+            android:layout_marginEnd="27dp"
+            android:layout_height="26dp"/>
+
+
+        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="270dp"
+            android:layout_marginStart="27dp"
+            android:layout_marginEnd="27dp"
+            android:layout_marginTop="12dp"
+            app:qmui_radius="8dp"
+            android:gravity="center_horizontal"
+            app:qmui_backgroundColor="@color/white"
+            app:qmui_borderColor="@color/white"
+            android:orientation="vertical">
+
+
+            <TextView
+                android:id="@+id/tv_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerHorizontal="true"
+                android:layout_marginTop="46dp"
+                android:textSize="18sp"
+                android:textStyle="bold"
+                android:text="输入支付密码"
+                android:textColor="#000000" />
+
+
+            <EditText
+                android:id="@+id/et_money"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerHorizontal="true"
+                android:layout_marginTop="20dp"
+                android:textSize="40sp"
+                android:textStyle="bold"
+                android:background="@null"
+                android:textColorHint="#636465"
+                android:hint="输入支付金额"
+                android:inputType="number|numberDecimal"
+                android:textColor="#000000" />
+
+            <com.quansu.heifengwuliu.view.PasswordView
+                android:id="@+id/ppet"
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:layout_below="@+id/tv_title"
+                android:layout_centerInParent="true"
+                android:layout_marginStart="25dp"
+                android:layout_marginEnd="25dp"
+                android:layout_marginTop="32dp"
+                app:cipherEnable="true"
+                app:passwordLength="6"
+                app:borderColor="#979797"
+                app:smode="underline">
+
+            </com.quansu.heifengwuliu.view.PasswordView>
+
+
+
+            <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                android:id="@+id/but_sure"
+                android:layout_width="120dp"
+                app:qmui_backgroundColor="#FFBC00"
+                app:qmui_borderColor="#FFBC00"
+                android:text="确定"
+                android:textColor="@color/white"
+                android:textSize="@dimen/sp_15"
+                android:layout_marginTop="@dimen/dp_20"
+                android:layout_height="35dp"/>
+
+
+        </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+
+
+    </LinearLayout>
+
+
+</LinearLayout>

+ 115 - 0
app/src/main/res/layout/item_each_other.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools" >
+
+    <data >
+
+        <variable
+            name="vm"
+            type="com.quansu.heifengwuliu.vmodel.EachOtherVModel" />
+        <variable
+            name="item"
+            type="com.quansu.heifengwuliu.model.OrderEva" />
+
+    </data >
+
+    <LinearLayout
+        android:id="@+id/rl_todo"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:paddingLeft="12dp"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:paddingRight="13dp" >
+
+        <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+            android:layout_width="match_parent"
+            android:layout_marginStart="17dp"
+            android:layout_marginEnd="16dp"
+            android:layout_marginTop="12dp"
+            app:qmui_borderColor="@{vm.isSelf(item.uid)?@color/yellow_one:@color/white}"
+            app:qmui_backgroundColor="@{vm.isSelf(item.uid)?@color/yellow_one:@color/white}"
+            app:qmui_radius="4dp"
+            android:paddingStart="12dp"
+            android:orientation="vertical"
+            android:paddingEnd="10dp"
+            android:layout_height="wrap_content">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:layout_marginTop="18dp"
+                android:gravity="center_vertical|right"
+                android:layout_height="wrap_content">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    tools:text="@string/about_me"
+                    android:text="@{vm.isSelf(item.uid)?@string/me_about:@string/about_me}"
+                    android:textSize="14sp"
+                    android:textColor="#3D3F4E"
+                    android:layout_height="wrap_content"/>
+
+                <ImageView
+                    android:layout_width="13dp"
+                    android:src="@drawable/ic_star_on"
+                    android:layout_marginEnd="3dp"
+                    android:layout_height="13dp"/>
+                <ImageView
+                    android:layout_width="13dp"
+                    android:src="@drawable/ic_star_on"
+                    android:layout_marginEnd="3dp"
+                    android:layout_height="13dp"/>
+                <ImageView
+                    android:layout_width="13dp"
+                    android:src="@drawable/ic_star_on"
+                    android:layout_marginEnd="3dp"
+                    android:layout_height="13dp"/>
+                <ImageView
+                    android:layout_width="13dp"
+                    android:src="@drawable/ic_star_on"
+                    android:layout_marginEnd="3dp"
+                    android:layout_height="13dp"/>
+                <ImageView
+                    android:layout_width="13dp"
+                    android:src="@drawable/ic_star_on"
+                    android:layout_marginEnd="9dp"
+                    android:layout_height="13dp"/>
+                <TextView
+                    android:layout_width="wrap_content"
+                    tools:text="5分"
+                    android:text="@{item.score+@string/branch}"
+                    android:textSize="12sp"
+                    android:textColor="#939393"
+                    android:layout_height="wrap_content"/>
+
+
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                tools:text="2020-09-15 12:30:20"
+                android:text="@{item.create_time}"
+                android:textSize="12sp"
+                android:textColor="#A7A7B4"
+                android:layout_marginTop="3dp"
+                android:layout_height="wrap_content"/>
+            <TextView
+                android:layout_width="match_parent"
+                tools:text="很专业服务很周到,速度也很快,喜欢~"
+                android:textSize="14sp"
+                android:textColor="#3D3F4E"
+                android:text="@{item.content}"
+                android:layout_marginTop="15dp"
+                android:layout_marginBottom="22dp"
+                android:layout_height="wrap_content"/>
+
+
+        </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+
+
+
+
+    </LinearLayout >
+</layout >

+ 2 - 0
app/src/main/res/values/colors.xml

@@ -212,5 +212,7 @@
     <color name="tv_subtitle" >#666666</color >
     <color name="tv_title" >#333333</color >
     <color name="bg_button_red" >#FF4F66</color >
+    <color name="yellow_one">#FFF9E9</color>
+
 
 </resources >

+ 5 - 0
app/src/main/res/values/strings.xml

@@ -495,6 +495,11 @@ Api 已达到使用限制
     <string name="comma">,</string>
     <string name="cargo_volume">载货体积:</string>
     <string name="receiving_vehicle">接单车辆</string>
+    <string name="order_number">订单编号:</string>
+    <string name="branch">分</string>
+    <string name="about_me">他对我的评价</string>
+    <string name="me_about">我对他的评价</string>
+
 
 
 </resources >