瀏覽代碼

1.获取货源详情。

石慧云 4 年之前
父節點
當前提交
0362110318
共有 24 個文件被更改,包括 605 次插入176 次删除
  1. 20 12
      app/src/main/java/com/quansu/heifengwuliu/activity/AddressActivity.kt
  2. 10 2
      app/src/main/java/com/quansu/heifengwuliu/activity/AddressAddActivity.kt
  3. 3 0
      app/src/main/java/com/quansu/heifengwuliu/activity/LoginActivity.kt
  4. 8 3
      app/src/main/java/com/quansu/heifengwuliu/adapter/AddressAdapter.kt
  5. 8 11
      app/src/main/java/com/quansu/heifengwuliu/fragment/AddressFragment.kt
  6. 5 0
      app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerImgFragment.kt
  7. 159 14
      app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt
  8. 32 1
      app/src/main/java/com/quansu/heifengwuliu/model/AddressBean.kt
  9. 28 14
      app/src/main/java/com/quansu/heifengwuliu/model/AddressDetailsBean.kt
  10. 25 0
      app/src/main/java/com/quansu/heifengwuliu/model/DataInfoBean.kt
  11. 7 0
      app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt
  12. 44 12
      app/src/main/java/com/quansu/heifengwuliu/vmodel/AddressAddVModel.kt
  13. 49 0
      app/src/main/java/com/quansu/heifengwuliu/vmodel/AddressVModel.kt
  14. 34 17
      app/src/main/java/com/quansu/heifengwuliu/vmodel/OwnerSingleVModel.kt
  15. 1 2
      app/src/main/java/com/quansu/heifengwuliu/widget/AddressItemView.java
  16. 二進制
      app/src/main/res/drawable-xxhdpi/select_off.webp
  17. 二進制
      app/src/main/res/drawable-xxhdpi/select_on.webp
  18. 10 2
      app/src/main/res/layout/activity_address.xml
  19. 50 44
      app/src/main/res/layout/fragment_delivergoods.xml
  20. 1 0
      app/src/main/res/layout/fragment_ownerimg.xml
  21. 6 6
      app/src/main/res/layout/fragment_ownersingle.xml
  22. 85 36
      app/src/main/res/layout/item_address.xml
  23. 19 0
      base/src/main/java/com/ysnows/base/base/BActivity.kt
  24. 1 0
      common-build.gradle

+ 20 - 12
app/src/main/java/com/quansu/heifengwuliu/activity/AddressActivity.kt

@@ -20,17 +20,17 @@ import com.ysnows.base.utils.B
 class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBinding>(){
     private var adapter: FragAdapter? = null
     var list= emptyArray<Fragment>()
-//    var type="0"//0发货 1卸货
+    var type="1"//1发货 2卸货
+
+    override fun __before() {
+        super.__before()
+        var bundle = intent.extras
+        if (null != bundle)
+        {
+            type = bundle.getString("type")
+        }
 
-//    override fun __before() {
-//        super.__before()
-//        var bundle = intent.extras
-//        if (null != bundle)
-//        {
-//            type = bundle.getString("type")
-//        }
-//
-//    }
+    }
 
 
 
@@ -43,9 +43,9 @@ class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBindi
     private fun initViewPager() {
 
         val billOneFragment = AddressFragment()
-        billOneFragment.arguments = B.with().putString("type", "0").ok()
+        billOneFragment.arguments = B.with().putString("type", "1").ok()
         val billTwoFragment = AddressFragment()
-        billTwoFragment.arguments = B.with().putString("type", "1").ok()
+        billTwoFragment.arguments = B.with().putString("type", "2").ok()
 
         list = arrayOf(
                 billOneFragment,
@@ -67,6 +67,10 @@ class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBindi
         binding.llTwo.setOnClickListener(View.OnClickListener { view: View? ->  binding.viewPager.setCurrentItem(1) })
 
 
+        if(type=="2"){
+            binding.viewPager.currentItem = 1
+        }
+
 
     }
 
@@ -94,6 +98,10 @@ class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBindi
     override fun listeners() {
         super.listeners()
 
+        binding.imgBack.setOnClickListener {
+            finish()
+        }
+
 
     }
 

+ 10 - 2
app/src/main/java/com/quansu/heifengwuliu/activity/AddressAddActivity.kt

@@ -4,6 +4,7 @@ import android.app.Activity
 import android.content.Intent
 import android.os.Bundle
 import android.text.TextUtils
+import android.util.Log
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
 import com.quansu.heifengwuliu.R
@@ -27,7 +28,7 @@ import com.ysnows.base.utils.UiSwitch
 class AddressAddActivity : MBActivity<AddressAddVModel, ActivityAddressaddBinding>() {
 
 
-    var type = "0"//0发货 1卸货
+    var type = "1"//1发货 2卸货
     var addr_id="0"
 
     override fun vmClass(): Class<AddressAddVModel> {
@@ -45,7 +46,13 @@ class AddressAddActivity : MBActivity<AddressAddVModel, ActivityAddressaddBindin
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
+
+        if(!TextUtils.isEmpty(type)){
+           vm.inData(type)
+        }
         if(!TextUtils.isEmpty(addr_id)&&addr_id!="0"){
+            Log.e("-shy-", "addr_id111=: "+addr_id )
+
             vm.getAddressInfo(addr_id)
             titleBar()?.setRightText("删除")
             titleBar()?.tvRight!!.setOnClickListener {
@@ -53,6 +60,7 @@ class AddressAddActivity : MBActivity<AddressAddVModel, ActivityAddressaddBindin
                 vm.setAddressDel(addr_id)
             }
         }
+
     }
 
 
@@ -83,7 +91,7 @@ class AddressAddActivity : MBActivity<AddressAddVModel, ActivityAddressaddBindin
         get() = true
 
     override fun title(): String? {
-        return if (type == "0") "添加发货地址" else "添加卸货地址"
+        return if (type == "1") "添加发货地址" else "添加卸货地址"
     }
 
     @Subscribe(tags = [Tag(ConfigRx.ADD_POSITION)])

+ 3 - 0
app/src/main/java/com/quansu/heifengwuliu/activity/LoginActivity.kt

@@ -1,11 +1,14 @@
 package com.quansu.heifengwuliu.activity
 
+import android.os.Bundle
 import com.quansu.heifengwuliu.base.MBActivity
 import com.quansu.heifengwuliu.databinding.ActivityLoginBinding
 import com.quansu.heifengwuliu.repository.LoginRepository
 import com.quansu.heifengwuliu.vmodel.LoginVModel
 import com.ysnows.base.base.BRepository
 class LoginActivity : MBActivity<LoginVModel, ActivityLoginBinding>() {
+
+
     override fun title(): String? {
         return null
     }

+ 8 - 3
app/src/main/java/com/quansu/heifengwuliu/adapter/AddressAdapter.kt

@@ -3,13 +3,18 @@ package com.quansu.heifengwuliu.adapter
 import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
 import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.databinding.ItemAddressBinding
-import com.quansu.heifengwuliu.databinding.ItemMsgBinding
 import com.quansu.heifengwuliu.model.AddressBean
-import com.quansu.heifengwuliu.model.Msg
+import com.quansu.heifengwuliu.vmodel.AddressVModel
 import com.ysnows.base.base.BAdapter
 
-class AddressAdapter : BAdapter<AddressBean, BaseDataBindingHolder<ItemAddressBinding>>(R.layout.item_address) {
+class AddressAdapter(val vm: AddressVModel) : BAdapter<AddressBean,
+        BaseDataBindingHolder<ItemAddressBinding>>(R.layout.item_address) {
+
+
     override fun convert(holder: BaseDataBindingHolder<ItemAddressBinding>, item: AddressBean) {
+
         holder.dataBinding?.item = item
+        holder.dataBinding?.vm= vm
+
     }
 }

+ 8 - 11
app/src/main/java/com/quansu/heifengwuliu/fragment/AddressFragment.kt

@@ -10,15 +10,13 @@ import android.view.inputmethod.EditorInfo
 import android.widget.TextView.OnEditorActionListener
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.quansu.heifengwuliu.activity.AddressAddActivity
-import com.quansu.heifengwuliu.activity.LoginActivity
 import com.quansu.heifengwuliu.adapter.AddressAdapter
 import com.quansu.heifengwuliu.base.MBRFragment
 import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.databinding.FragmentAddressBinding
 import com.quansu.heifengwuliu.model.AddressBean
 import com.quansu.heifengwuliu.utils.net.NetEngine
-import com.ysnows.base.base.BRRepository
-import com.ysnows.base.base.BRViewModel
+import com.quansu.heifengwuliu.vmodel.AddressVModel
 import com.ysnows.base.net.IResponse
 import com.ysnows.base.utils.B
 import com.ysnows.base.utils.UiSwitch
@@ -26,7 +24,7 @@ import io.reactivex.Observable
 import java.util.*
 
 //发货 -卸货地址
-class AddressFragment : MBRFragment<BRViewModel<BRRepository>, AddressAdapter, FragmentAddressBinding>() {
+class AddressFragment : MBRFragment<AddressVModel, AddressAdapter, FragmentAddressBinding>() {
 
     var type:String=""
     var k:String=""
@@ -36,17 +34,17 @@ class AddressFragment : MBRFragment<BRViewModel<BRRepository>, AddressAdapter, F
         super.__before(savedInstanceState)
         val arguments = arguments
         if(null!=arguments) type=arguments.getString("type")
-
     }
 
+    override fun vmClass(): Class<AddressVModel> {
+        return AddressVModel::class.java
+    }
     override fun init(savedInstanceState: Bundle?) {
         super.init(savedInstanceState)
+        vm.inData(type,this)
         binding.sidebar.attachTipView(binding.tvTip)
-
-
     }
 
-
     override fun listeners() {
         super.listeners()
 
@@ -54,10 +52,9 @@ class AddressFragment : MBRFragment<BRViewModel<BRRepository>, AddressAdapter, F
             //添加地址
             UiSwitch.bundleRes(this, AddressAddActivity::class.java,
                     B.with().putString("type",type).ok(), MIntentAction.REQUEST_CODE_ONE)
-
         }
 
-       binding.sidebar.setOnSelectedListener { position, text ->
+         binding.sidebar.setOnSelectedListener { position, text ->
            if (adapter().data != null && adapter().data.size > 0) {
                for (i in 0 until adapter().data.size) {
                    var client = adapter().data[i]
@@ -143,7 +140,7 @@ class AddressFragment : MBRFragment<BRViewModel<BRRepository>, AddressAdapter, F
     }
 
     override fun initAdapter(): AddressAdapter {
-        return AddressAdapter()
+        return AddressAdapter(vm)
     }
 
     override fun api(): Observable<out IResponse<*>> {

+ 5 - 0
app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerImgFragment.kt

@@ -1,9 +1,11 @@
 package com.quansu.heifengwuliu.fragment
 
 import android.os.Bundle
+import android.text.TextUtils
 import android.util.Log
 import android.view.LayoutInflater
 import android.view.ViewGroup
+import coil.load
 import com.quansu.heifengwuliu.base.MBFragment
 import com.quansu.heifengwuliu.databinding.FragmentOwnerimgBinding
 import com.ysnows.base.base.BRepository
@@ -29,6 +31,9 @@ class OwnerImgFragment : MBFragment<BViewModel<BRepository>, FragmentOwnerimgBin
 
     override fun init(savedInstanceState: Bundle?) {
         super.init(savedInstanceState)
+        if(!TextUtils.isEmpty(url)){
+            binding.img.load(url)
+        }
     }
 
     override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentOwnerimgBinding {

+ 159 - 14
app/src/main/java/com/quansu/heifengwuliu/fragment/OwnerSingleFragment.kt

@@ -1,19 +1,31 @@
 package com.quansu.heifengwuliu.fragment
 
 import android.app.Activity
+import android.content.Context
 import android.content.Intent
 import android.graphics.Color
 import android.graphics.Typeface
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.ViewGroup
+import android.widget.*
 import androidx.fragment.app.Fragment
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.Observer
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
+import com.qmuiteam.qmui.layout.QMUIFrameLayout
+import com.qmuiteam.qmui.skin.QMUISkinHelper
+import com.qmuiteam.qmui.skin.QMUISkinManager
+import com.qmuiteam.qmui.skin.QMUISkinValueBuilder
 import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.util.QMUIResHelper
+import com.qmuiteam.qmui.widget.popup.QMUIPopup
+import com.qmuiteam.qmui.widget.popup.QMUIPopups
 import com.qmuiteam.qmui.widget.tab.QMUITab
 import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
 import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.activity.AddressActivity
 import com.quansu.heifengwuliu.activity.AreaSelectActivity
 import com.quansu.heifengwuliu.adapter.BaseFragmentPagerAdapter
@@ -22,6 +34,8 @@ import com.quansu.heifengwuliu.config.ConfigRx
 import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.databinding.FragmentOwnersingleBinding
 import com.quansu.heifengwuliu.inte.ChoiceData
+import com.quansu.heifengwuliu.model.AddressBean
+import com.quansu.heifengwuliu.model.DataInfoBean
 import com.quansu.heifengwuliu.utils.PopupUtils
 import com.quansu.heifengwuliu.vmodel.OwnerSingleVModel
 import com.yanzhenjie.permission.AndPermission
@@ -31,6 +45,8 @@ import com.ysnows.base.model.PositionBean
 import com.ysnows.base.route.IGaode
 import com.ysnows.base.utils.B
 import com.ysnows.base.utils.UiSwitch
+import kotlinx.android.synthetic.main.item_address.view.*
+import java.security.acl.Owner
 
 /**
  * 一装一卸
@@ -38,17 +54,32 @@ import com.ysnows.base.utils.UiSwitch
  *on 2020/9/11
  */
 class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBinding>() {
-    var cats = emptyArray<String>()
+    var cats = ArrayList<String>()
     private var type = 1// 1:/装货 2卸货
 
     private var selectViewpage = 0
+    private var info_id="0"
+    var goodsTypeList= ArrayList<String>()
+    var numsTypeList = ArrayList<String>()
+
+
 
     override fun init(savedInstanceState: Bundle?) {
         super.init(savedInstanceState)
+        getData()
+
+        vm.info.observe(this, Observer {
+            //观察
+            goodsTypeList.addAll(it.goods_type)
+            numsTypeList.addAll(it.nums_type)
+            initTab(it)
+        })
 
-        initTab()
         initData()
+
     }
+
+
     override fun vmClass(): Class<OwnerSingleVModel> {
         return OwnerSingleVModel::class.java
     }
@@ -58,21 +89,95 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         binding.tvPublish.setOnClickListener {
             //发布
 
+           // var mNormalPopup = QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(getContext(), 250))
+
+            var mNormalPopup=QMUIPopups.fullScreenPopup(context)
+            val builder: QMUISkinValueBuilder = QMUISkinValueBuilder.acquire()
+            val frameLayout = QMUIFrameLayout(context)
+            frameLayout.background = QMUIResHelper.getAttrDrawable(context, R.attr.qmui_skin_support_popup_bg)
+            builder.background(R.attr.qmui_skin_support_popup_bg)
+            QMUISkinHelper.setSkinValue(frameLayout, builder)
+            frameLayout.radius = QMUIDisplayHelper.dp2px(context, 12)
+            val padding = QMUIDisplayHelper.dp2px(context, 20)
+            frameLayout.setPadding(padding, padding, padding, padding)
+
+            //自定义布局
+            val layoutInflater = requireContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+            var layout = layoutInflater.inflate(R.layout.item_app, null)
+            val tv: TextView = layout.findViewById(R.id.label)
+            tv.text = "123344"
+            tv.setOnClickListener {
+                mNormalPopup.dismiss()
+            }
+            builder.release();
+
+            val size = QMUIDisplayHelper.dp2px(context, 200)
+            val lp: FrameLayout.LayoutParams = FrameLayout.LayoutParams(size, size)
+            frameLayout.addView(layout, lp)
+
+            mNormalPopup.addView(frameLayout)
+            mNormalPopup.onDismiss() {
+                toast("onDismiss")
+            }
+
+            mNormalPopup.dismissIfOutsideTouch(false)
+            mNormalPopup.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+            mNormalPopup.show(binding.tvPublish)
+
+
+
         }
+
+        binding.llChoseUnits.setOnClickListener{
+            var mNormalPopup: QMUIPopup? =null
+            val adapter: ArrayAdapter<*> = ArrayAdapter<Any?>(repository().context,  android.R.layout.simple_list_item_1, numsTypeList as List<String>)
+            val onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, i, l ->
+
+                vm.unit.value=numsTypeList[i]
+
+                mNormalPopup?.dismiss()
+            }
+            mNormalPopup= QMUIPopups.listPopup(repository().context,
+                    QMUIDisplayHelper.dp2px(repository().context, 250),
+                    QMUIDisplayHelper.dp2px(repository().context, 300),
+                    adapter,
+                    onItemClickListener)
+                    .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+                    .preferredDirection(QMUIPopup.DIRECTION_TOP)
+                    .shadow(true)
+                    .offsetYIfTop(QMUIDisplayHelper.dp2px(repository().context, 5))
+                    .skinManager(QMUISkinManager.defaultInstance(repository().context))
+                    .onDismiss {
+
+                    }
+                    .show(binding.llChoseUnits);
+        }
+
+
     }
 
+    private fun getData(){
+        //获取信息
+        vm.getDataInfo(info_id);
 
-    private fun initTab() {
+    }
 
-        cats = arrayOf("1", "2", "3", "4", "5", "6", "11", "23", "18", "30", "33", "100", "101", "1003")
+
+    private fun initTab(info:DataInfoBean) {
+        if(null!=info.car_type){
+            for(item in info.car_type){
+                cats.add(item.type_name)
+            }
+        }
 
         //设置viewpager
         val fragments = ArrayList<Fragment>()
+        var index=0
         for (cat in cats) {
-
             var ownerImgFragment = OwnerImgFragment()
-            ownerImgFragment.arguments = B().putString("img", "12233").ok()
+            ownerImgFragment.arguments = B().putString("img",info.car_type[index].type_img ).ok()
             fragments.add(ownerImgFragment)
+            index++
         }
         val adapter = BaseFragmentPagerAdapter(childFragmentManager, fragments)
         binding.qmViewPager.adapter = adapter
@@ -161,13 +266,15 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
         binding.viewOut.llChoseAddress.setOnClickListener {
             //地址薄 1
+            type = 1
             UiSwitch.bundleRes(this, AddressActivity::class.java,
-                    B.with().putString("type", "0").ok(), MIntentAction.REQUEST_CODE_ONE)
+                    B.with().putString("type", "1").ok(), MIntentAction.REQUEST_CODE_ONE)
         }
         binding.viewEnter.llChoseAddress.setOnClickListener {
             //地址薄 2
+            type = 2
             UiSwitch.bundleRes(this, AddressActivity::class.java,
-                    B.with().putString("type", "1").ok(), MIntentAction.REQUEST_CODE_ONE)
+                    B.with().putString("type", "2").ok(), MIntentAction.REQUEST_CODE_ONE)
         }
 
         binding.viewEnter.tvCity.setOnClickListener {
@@ -206,23 +313,59 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         super.onActivityResult(requestCode, resultCode, data)
         if (MIntentAction.REQUEST_CODE_TWO === requestCode && resultCode == Activity.RESULT_OK) {
             val bundle = data!!.extras
+            if (null != bundle) {
+                var name = bundle.getString("name")
+                var province_code = bundle.getString("province_code")
+                var city_code = bundle.getString("city_code")
+                var area_code = bundle.getString("area_code")
+                if (type == 1) {
+                    binding.viewOut.tvCity.text = name
+                } else {
+                    binding.viewEnter.tvCity.text = name
+                }
+
+            }
+           return
+
+        }
+
+        if( MIntentAction.REQUEST_CODE_ONE==requestCode && resultCode == Activity.RESULT_OK){
+            val bundle = data!!.extras
             if(null!=bundle){
-                var name=bundle.getString("name")
-                var province_code=bundle.getString("province_code")
-                var city_code=bundle.getString("city_code")
-                var area_code=bundle.getString("area_code")
+                var item=bundle.getSerializable("item") as AddressBean
+                //todo
                 if(type==1){
-                    binding.viewOut.tvCity.text=name
+                    binding.viewOut.tvCity.text=item.province?.name+ item.city?.name+item.area?.name
+                    binding.viewOut.etDetailedAddress.setText(item.address)
+                    binding.viewOut.tvChoseTime.text=item.create_time
+                    binding.viewOut.etName.setText(item.name)
+                    binding.viewOut.etPhone.setText(item.mobile)
+
+                    var province_code = item.province?.code
+                    var city_code = item.city?.code
+                    var area_code =item.area?.code
                 }else{
-                    binding.viewEnter.tvCity.text=name
+
+                    binding.viewEnter.tvCity.text=item.province?.name+ item.city?.name+item.area?.name
+                    binding.viewEnter.etDetailedAddress.setText(item.address)
+                    binding.viewEnter.tvChoseTime.text=item.create_time
+                    binding.viewEnter.etName.setText(item.name)
+                    binding.viewEnter.etPhone.setText(item.mobile)
+
+                    var province_code = item.province?.code
+                    var city_code = item.city?.code
+                    var area_code =item.area?.code
+
                 }
 
             }
 
+            return
 
         }
 
 
+
     }
 
 
@@ -276,7 +419,9 @@ class OwnerSingleFragment : MBFragment<OwnerSingleVModel, FragmentOwnersingleBin
         }
 
 
+
     }
 
 
 }
+

+ 32 - 1
app/src/main/java/com/quansu/heifengwuliu/model/AddressBean.kt

@@ -1,12 +1,43 @@
 package com.quansu.heifengwuliu.model
 
 import com.ysnows.base.inter.IModel
+import java.io.Serializable
 
 /**
  *Created by shihuiyun
  *on 2020/9/11
  */
-class AddressBean : IModel {
+class AddressBean : IModel ,Serializable{
     var py: String? = null
+    var addr_id:String?=null
+    var lat:String?=null
+    var lng:String?=null
+    var address:String?=null
+    var name:String?=null
+    var mobile:String?=null
+    var type:String?=null
+    var is_default:Int=0
+    var create_time:String?=null
+    var update_time:String?=null
+    var delete_time:String?=null
+
+    var province:ProvinceBean?=null
+    var city:CityBean?=null
+    var area:AreaBean?=null
+
+    class ProvinceBean : IModel,Serializable {
+        var name:String?=null
+        var code:String?=null
+    }
+    class CityBean : IModel ,Serializable{
+        var name:String?=null
+        var code:String?=null
+    }
+    class AreaBean : IModel ,Serializable{
+        var name:String?=null
+        var code:String?=null
+    }
+
+
 
 }

+ 28 - 14
app/src/main/java/com/quansu/heifengwuliu/model/AddressDetailsBean.kt

@@ -7,24 +7,38 @@ import com.ysnows.base.inter.IModel
  *on 2020/9/11
  */
  class AddressDetailsBean : IModel {
-    var py: String? = null
-    var name: String? = null
-    var mobile: String? = null
-    var address: String? = null
-    var lat: String = ""
-    var lng: String = ""
-
-    var province: String = ""
-    var city: String = ""
-    var area: String = ""
-    var type: String = ""
+   var py: String? = null
+   var addr_id:String?=null
+   var lat:String?=null
+   var lng:String?=null
+   var address:String?=null
+   var name:String?=null
+   var mobile:String?=null
+   var type:String?=null
+   var create_time:String?=null
+   var update_time:String?=null
+   var delete_time:String?=null
+
+   var province:ProvinceBean?=null
+   var city:CityBean?=null
+   var area:AreaBean?=null
+
+   class ProvinceBean : IModel {
+      var name:String?=null
+      var code:String?=null
+   }
+   class CityBean : IModel {
+      var name:String?=null
+      var code:String?=null
+   }
+   class AreaBean : IModel {
+      var name:String?=null
+      var code:String?=null
+   }
 
     var is_default: Int=1;
 
 
 
 
-
-
-
 }

+ 25 - 0
app/src/main/java/com/quansu/heifengwuliu/model/DataInfoBean.kt

@@ -0,0 +1,25 @@
+package com.quansu.heifengwuliu.model
+
+import com.ysnows.base.inter.IModel
+
+/**
+ *Created by shihuiyun
+ *on 2020/9/14
+ */
+data class DataInfoBean(var goods_type:List<String>,var nums_type:List<String>,var car_type: List<CarTypeBean>) : IModel {
+
+    data class CarTypeBean(var type_id:String, var type_name:String,var type_icon:String, var type_img:String): IModel {
+
+    }
+//    var goods_type:List<String>?=null
+//    var nums_type: List<String>?=null
+//    var car_type: List<CarTypeBean>?=null
+//
+//
+//
+//    class CarTypeBean : IModel {
+//        var type_id:String?=null
+//        var type_icon:String?=null
+//        var type_img:String?=null
+//    }
+}

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

@@ -185,5 +185,12 @@ interface ApiService {
     @GET("api/address/addressDel")
     fun setAddressDel(@Query("addr_id") addr_id: String?): Observable<Response<Any>>
 
+    /**
+     * 获取详情
+     * @return
+     */
+    @GET("api/info/infoGet")
+    fun infoGet(@Query("info_id") info_id: String?): Observable<Response<DataInfoBean>>
+
 
 }

+ 44 - 12
app/src/main/java/com/quansu/heifengwuliu/vmodel/AddressAddVModel.kt

@@ -7,6 +7,8 @@ import android.text.TextUtils
 import android.util.Log
 import androidx.databinding.Bindable
 import androidx.lifecycle.MutableLiveData
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
 import com.quansu.heifengwuliu.BR
 import com.quansu.heifengwuliu.activity.AddressAddActivity
 import com.quansu.heifengwuliu.activity.AreaSelectActivity
@@ -26,18 +28,21 @@ open class AddressAddVModel : BViewModel<BRepository>() {
     var checked: MutableLiveData<Int> = MutableLiveData()
     var cityname: MutableLiveData<String> = MutableLiveData()
 
-    var lat = ""
-    var lng = ""
+    var lat :String= ""
+    var lng :String= ""
     var province = ""
     var city = ""
     var area = ""
-    var type = "0"//默认发货
-    var addr_id="0"////默认添加
+    var type = "1"//默认发货
+    private var addr_id="0"////默认添加
 
     init {
         checked.value = 1//默认选中
 
     }
+    fun inData(type: String){
+        this.type=type
+    }
 
     fun setMapValue(lat_data: String, lng_data: String, position: String) {
         lat = lat_data
@@ -156,9 +161,12 @@ open class AddressAddVModel : BViewModel<BRepository>() {
 
 
     //获取地址详情
-    fun getAddressInfo(addr_id: String) {
+    fun getAddressInfo(addrid: String) {
+
+
+        addr_id=addrid
+
 
-        this.addr_id=addr_id
         repository().lreq(NetEngine.service.getAddress(addr_id))
                 .doOnNext() {
                     if (it.ok()) {
@@ -167,20 +175,42 @@ open class AddressAddVModel : BViewModel<BRepository>() {
                         name=info.name
                         phone=info.mobile
                         address=info.address
-                        lat=info.lat
-                        lng=info.lng
-                        province=info.province
-                        city=info.city
-                        area=info.area
-                        type=info.type
+                        lat= info.lat!!
+                        lng=info.lng!!
+                        province=info.province!!.code!!
+                        city=info.city!!.code!!
+                        area=info.area!!.code!!
+                        type=info.type!!
+                        cityname.value=info.province!!.name+info.city!!.name!!+info.area!!.name!!
                         checked.value=info.is_default
 
                     }
                 }
+                .subscribe()
     }
 
     fun setAddressDel(addr_id: String) {
         //删除
+
+        QMUIDialog.MessageDialogBuilder(repository().context)
+                .setTitle("提示")
+                .setMessage("确定要删除该地址么")
+                .addAction("取消",QMUIDialogAction.ActionListener(){
+                    dialog, index ->
+                    dialog.dismiss()
+                })
+                .addAction("确定",QMUIDialogAction.ActionListener(){
+                    dialog, index ->
+                    setSureDel(addr_id)
+                    dialog.dismiss()
+                })
+                .show()
+
+    }
+
+
+    fun setSureDel(addr_id: String){
+
         repository().lreq(NetEngine.service.setAddressDel(addr_id))
                 .doOnNext() {
                     if (it.ok()) {
@@ -190,6 +220,8 @@ open class AddressAddVModel : BViewModel<BRepository>() {
                         con.finish()
                     }
                 }
+                .subscribe()
+
     }
 
 

+ 49 - 0
app/src/main/java/com/quansu/heifengwuliu/vmodel/AddressVModel.kt

@@ -0,0 +1,49 @@
+package com.quansu.heifengwuliu.vmodel
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import com.quansu.heifengwuliu.activity.AddressAddActivity
+import com.quansu.heifengwuliu.config.MIntentAction
+import com.quansu.heifengwuliu.fragment.AddressFragment
+import com.quansu.heifengwuliu.model.AddressBean
+import com.ysnows.base.base.BRRepository
+import com.ysnows.base.base.BRViewModel
+import com.ysnows.base.utils.B
+import com.ysnows.base.utils.UiSwitch
+
+class AddressVModel: BRViewModel<BRRepository>() {
+
+
+    var type:String?=null
+    var context:AddressFragment?=null
+
+
+    fun inData(type:String,context:AddressFragment){
+        this.type=type
+        this.context=context
+    }
+
+    fun onChose(item: AddressBean){
+
+        val intent = Intent()
+        var con = repository().context as Activity
+        var bundle= Bundle()
+        bundle.putSerializable("item",item)
+        intent.putExtras(bundle)
+        con.setResult(Activity.RESULT_OK, intent)
+        con.finish()
+
+
+    }
+
+    fun  toDetails(addr_id:String){
+
+        UiSwitch.bundleRes(context, AddressAddActivity::class.java,
+                B.with().putString("type",type)
+                        .putString("addr_id",addr_id)
+                        .ok(), MIntentAction.REQUEST_CODE_ONE)
+    }
+
+
+}

+ 34 - 17
app/src/main/java/com/quansu/heifengwuliu/vmodel/OwnerSingleVModel.kt

@@ -1,36 +1,53 @@
 package com.quansu.heifengwuliu.vmodel
 
-
 import androidx.lifecycle.MutableLiveData
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet
+import com.quansu.heifengwuliu.model.DataInfoBean
+import com.quansu.heifengwuliu.utils.net.NetEngine
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 
+
 open class OwnerSingleVModel : BViewModel<BRepository>() {
 
     var unit: MutableLiveData<String> = MutableLiveData()
+    val info: MutableLiveData<DataInfoBean> = MutableLiveData<DataInfoBean>()
 
 
     fun choseUnits() {
         //选择单车运量
 
-        QMUIBottomSheet.BottomListSheetBuilder(repository().context)
-                .addItem("吨")
-                .addItem("方")
-                .addItem("件")
-                .setOnSheetItemClickListener { dialog, itemView, position, tag ->
-
-                    when(position){
-                        0->unit.value="吨"
-                        1->unit.value="方"
-                        2->unit.value="件"
-                        else ->unit.value=""
-                    }
-                    dialog.dismiss()
+//        QMUIBottomSheet.BottomListSheetBuilder(repository().context)
+//                .addItem("吨")
+//                .addItem("方")
+//                .addItem("件")
+//                .setOnSheetItemClickListener { dialog, itemView, position, tag ->
+//
+//                    when(position){
+//                        0->unit.value="吨"
+//                        1->unit.value="方"
+//                        2->unit.value="件"
+//                        else ->unit.value=""
+//                    }
+//                    dialog.dismiss()
+//
+//                }
+//                .build()
+//                .show()
+
+
+    }
+
+
+    fun getDataInfo(info_id:String){
 
+        repository().lreq(NetEngine.service.infoGet(info_id))
+                .doOnNext() {
+                    if (it.ok()) {
+                        info.value=it.data() as DataInfoBean
+                    }
                 }
-                .build()
-                .show()
+                .subscribe()
+
 
 
     }

+ 1 - 2
app/src/main/java/com/quansu/heifengwuliu/widget/AddressItemView.java

@@ -16,6 +16,7 @@ import com.quansu.heifengwuliu.activity.OneLoginActivity;
 import com.quansu.heifengwuliu.config.MIntentAction;
 import com.quansu.heifengwuliu.databinding.WidgetAddressitemBinding;
 import com.quansu.heifengwuliu.fragment.OwnerSingleFragment;
+import com.quansu.heifengwuliu.model.AddressBean;
 import com.ysnows.base.utils.B;
 import com.ysnows.base.utils.UiSwitch;
 import com.ysnows.base.view.BView;
@@ -58,9 +59,7 @@ public class AddressItemView extends BaseLinearLayout {
     }
 
 
-    public void  setData(){
 
-    }
 
 
     public TextView getTvCity(){

二進制
app/src/main/res/drawable-xxhdpi/select_off.webp


二進制
app/src/main/res/drawable-xxhdpi/select_on.webp


+ 10 - 2
app/src/main/res/layout/activity_address.xml

@@ -14,11 +14,19 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="69dp"
             android:layout_marginTop="14dp"
-            android:layout_marginRight="68dp"
+            android:layout_marginRight="50dp"
+            android:gravity="center_vertical"
             android:orientation="horizontal"
+
             >
+            <ImageView
+                android:id="@+id/img_back"
+                android:layout_width="@dimen/title_bar_height"
+                android:layout_height="@dimen/title_bar_height"
+                android:layout_centerVertical="true"
+                android:src="@drawable/ic_back_black"
+                android:padding="16dp" />
 
             <LinearLayout
                 android:id="@+id/ll_one"

+ 50 - 44
app/src/main/res/layout/fragment_delivergoods.xml

@@ -1,54 +1,60 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto" >
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
-    <data >
+    <data>
 
-    </data >
+    </data>
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical" >
-
-
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:orientation="horizontal"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="10dp"
-            android:layout_height="wrap_content">
-
-            <Button
-                android:id="@+id/but_single"
-                android:layout_width="120dp"
-                android:background="@drawable/bg_chose_on"
-                android:text="一装一卸"
-                android:textColor="@color/white"
-                android:layout_height="40dp">
-            </Button>
-            <Button
-                android:id="@+id/but_more"
-                android:layout_width="120dp"
-                android:background="@drawable/bg_chose_off"
-                android:text="一装多卸"
-                android:textColor="#292929"
-                android:layout_height="40dp">
-            </Button>
-
-
-        </LinearLayout>
-
-        <FrameLayout
-            android:id="@+id/fl_container"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginTop="10dp"
-            android:layout_weight="1"
-            >
-        </FrameLayout >
-
-
+        android:orientation="vertical">
 
+        <ScrollView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scrollbars="none">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_marginTop="10dp"
+                    android:orientation="horizontal">
+
+                    <Button
+                        android:id="@+id/but_single"
+                        android:layout_width="120dp"
+                        android:layout_height="40dp"
+                        android:background="@drawable/bg_chose_on"
+                        android:text="一装一卸"
+                        android:textColor="@color/white"></Button>
+
+                    <Button
+                        android:id="@+id/but_more"
+                        android:layout_width="120dp"
+                        android:layout_height="40dp"
+                        android:background="@drawable/bg_chose_off"
+                        android:text="一装多卸"
+                        android:textColor="#292929"></Button>
+
+
+                </LinearLayout>
+
+                <FrameLayout
+                    android:id="@+id/fl_container"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginTop="10dp"></FrameLayout>
+
+            </LinearLayout>
+        </ScrollView>
     </LinearLayout>
-</layout >
+</layout>

+ 1 - 0
app/src/main/res/layout/fragment_ownerimg.xml

@@ -12,6 +12,7 @@
         android:orientation="vertical" >
 
         <ImageView
+            android:id="@+id/img"
             android:layout_width="match_parent"
             android:src="@drawable/img_bg"
             android:scaleType="centerCrop"

+ 6 - 6
app/src/main/res/layout/fragment_ownersingle.xml

@@ -17,10 +17,10 @@
         android:background="@color/white"
         android:orientation="vertical">
 
-        <ScrollView
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:scrollbars="none">
+<!--        <ScrollView-->
+<!--            android:layout_width="match_parent"-->
+<!--            android:layout_height="match_parent"-->
+<!--            android:scrollbars="none">-->
 
 
             <LinearLayout
@@ -221,9 +221,9 @@
                             android:textSize="@dimen/sp_15"></EditText>
 
                         <LinearLayout
+                            android:id="@+id/ll_chose_units"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:onClick="@{v->vm.choseUnits()}"
                             android:gravity="center_vertical"
                             android:orientation="horizontal">
 
@@ -579,6 +579,6 @@
 
 
             </LinearLayout>
-        </ScrollView>
+<!--        </ScrollView>-->
     </LinearLayout>
 </layout>

+ 85 - 36
app/src/main/res/layout/item_address.xml

@@ -1,65 +1,114 @@
 <?xml version="1.0" encoding="utf-8"?>
 <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" >
+    xmlns:tools="http://schemas.android.com/tools">
 
-    <data >
+    <data>
 
+        <import type="android.view.View" />
+
+        <variable
+            name="vm"
+            type="com.quansu.heifengwuliu.vmodel.AddressVModel" />
         <variable
             name="item"
             type="com.quansu.heifengwuliu.model.AddressBean" />
 
-    </data >
+    </data>
 
     <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
         android:id="@+id/rl_todo"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:paddingLeft="@dimen/dp_10"
-        android:paddingTop="@dimen/dp_10"
-        app:qmui_borderWidth="@dimen/dp_1"
-        app:qmui_borderColor="#BBBBBB"
-        app:qmui_radius="@dimen/dp_2"
         android:layout_marginStart="@dimen/dp_10"
         android:layout_marginEnd="@dimen/dp_10"
         android:layout_marginBottom="@dimen/dp_10"
-        android:paddingRight="@dimen/dp_10" >
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/dp_10"
+        app:qmui_borderColor="#BBBBBB"
+        android:gravity="center_vertical"
+        app:qmui_borderWidth="@dimen/dp_1"
+        app:qmui_radius="@dimen/dp_2">
+
+
+        <ImageView
+            android:id="@+id/iv_chose"
+            android:layout_width="40dp"
+            android:layout_height="wrap_content"
+            android:padding="10dp"
+            android:onClick="@{v->vm.onChose(item)}"
+            android:src="@drawable/select_off"
+          >
+
+        </ImageView>
 
 
         <LinearLayout
+            android:id="@+id/ll_context"
             android:layout_width="match_parent"
-            android:orientation="horizontal"
-            android:layout_height="wrap_content">
-            <TextView
-                android:id="@+id/tv_name"
-                android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:onClick="@{v->vm.toDetails(item.addr_id)}"
+            android:orientation="vertical">
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:textColor="#343434"
-                android:textSize="@dimen/sp_16"
-                tools:text="@string/app_name" />
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/tv_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@{item.name}"
+                    android:layout_marginTop="@dimen/dp_10"
+                    android:textColor="#343434"
+                    android:textSize="@dimen/sp_16"
+                    tools:text="@string/app_name" />
+
+                <TextView
+                    android:id="@+id/tv_mobile"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/dp_10"
+                    android:text="@{item.mobile}"
+                    android:layout_marginTop="@dimen/dp_10"
+                    android:textColor="#343434"
+                    android:textSize="@dimen/sp_16"
+                    tools:text="18353075657" />
+
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:text="默认"
+                    android:visibility="@{item.is_default==1? View.VISIBLE :View.GONE}"
+                    android:paddingStart="@dimen/dp_10"
+                    android:paddingEnd="@dimen/dp_10"
+                    android:paddingBottom="@dimen/dp_2"
+                    android:paddingTop="@dimen/dp_2"
+                    android:background="#459AEA"
+                    android:textColor="@color/white"
+                    android:layout_height="wrap_content">
+
+                </TextView>
+
+
+            </LinearLayout>
+
+
             <TextView
-                android:id="@+id/tv_mobile"
+                android:id="@+id/tv_address"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/dp_10"
+                android:layout_marginBottom="@dimen/dp_10"
+                android:text="@{item.address}"
                 android:textColor="#343434"
-                android:layout_marginStart="@dimen/dp_10"
+                android:layout_marginRight="@dimen/dp_10"
                 android:textSize="@dimen/sp_16"
-                tools:text="18353075657" />
+                tools:text="山东省临沂市河东区芝麻墩街道金华路XX号" />
 
         </LinearLayout>
-
-
-        <TextView
-            android:id="@+id/tv_address"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textColor="#343434"
-            android:layout_marginTop="@dimen/dp_10"
-            android:layout_marginBottom="@dimen/dp_10"
-            android:textSize="@dimen/sp_16"
-            tools:text="山东省临沂市河东区芝麻墩街道金华路XX号" />
-
-
-    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout >
-</layout >
+    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+</layout>

+ 19 - 0
base/src/main/java/com/ysnows/base/base/BActivity.kt

@@ -1,7 +1,10 @@
 package com.ysnows.base.base
 
 import android.content.Context
+import android.content.pm.ActivityInfo
+import android.os.Build
 import android.os.Bundle
+import android.os.PersistableBundle
 import android.text.TextUtils
 import android.view.View
 import android.view.ViewGroup
@@ -61,8 +64,19 @@ abstract class BActivity<VM : BViewModel<*>, B : ViewDataBinding> : RxAppCompatA
 
     private var titleBar: TitleBar? = null
 
+
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) {
+        } else {
+            try {
+                //设置坚屏 一定要放到try catch里面,否则会崩溃
+                requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
+            } catch (e: Exception) {
+            }
+        }
+
 
 //        if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
 //            finish()
@@ -72,6 +86,8 @@ abstract class BActivity<VM : BViewModel<*>, B : ViewDataBinding> : RxAppCompatA
 
         initRepository()
         __before()
+
+
         binding = binding()
         binding.lifecycleOwner = this
         if (vmClass() != null) {
@@ -363,4 +379,7 @@ abstract class BActivity<VM : BViewModel<*>, B : ViewDataBinding> : RxAppCompatA
         const val TO_LOGIN = 1
     }
 
+
+
+
 }

+ 1 - 0
common-build.gradle

@@ -65,6 +65,7 @@ dependencies {
     implementation("io.coil-kt:coil:0.13.0")
 
 
+
     //普通版本
 //    implementation 'cn.yc:WebViewLib:1.2.4'