Parcourir la source

1. 货源列表UI

咸光金 il y a 4 ans
Parent
commit
a4c2f9dbff

+ 13 - 0
app/src/main/java/com/quansu/heifengwuliu/adapter/OrderListAdapter.kt

@@ -0,0 +1,13 @@
+package com.quansu.heifengwuliu.adapter
+
+import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
+import com.quansu.heifengwuliu.R
+import com.quansu.heifengwuliu.databinding.ItemOrderBinding
+import com.quansu.heifengwuliu.model.Order
+import com.ysnows.base.base.BAdapter
+
+class OrderListAdapter : BAdapter<Order, BaseDataBindingHolder<ItemOrderBinding>>(R.layout.item_order) {
+    override fun convert(holder: BaseDataBindingHolder<ItemOrderBinding>, item: Order) {
+        holder.dataBinding?.item = item
+    }
+}

+ 19 - 1
app/src/main/java/com/quansu/heifengwuliu/base/MBFragment.kt

@@ -1,7 +1,7 @@
 package com.quansu.heifengwuliu.base
 
 import androidx.databinding.ViewDataBinding
-import com.quansu.heifengwuliu.activity.LoginActivity
+import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.activity.OneLoginActivity
 import com.quansu.heifengwuliu.model.User
 import com.ysnows.base.base.BFragment
@@ -26,4 +26,22 @@ abstract class MBFragment<VM : BViewModel<*>, B : ViewDataBinding> : BFragment<V
     override fun user(): IUser? {
         return User.get()
     }
+
+
+    override fun bgColor(): Int {
+        return R.color.white
+    }
+
+    override fun titleColor(): Int {
+        return R.color.black
+    }
+
+    override fun rightTextColor(): Int {
+        return R.color.black
+    }
+
+    override fun backDrawable(): Int {
+        return R.drawable.ic_back_black
+    }
+
 }

+ 17 - 0
app/src/main/java/com/quansu/heifengwuliu/base/MBRFragment.kt

@@ -3,6 +3,7 @@ package com.quansu.heifengwuliu.base
 import androidx.databinding.ViewDataBinding
 import com.chad.library.adapter.base.BaseQuickAdapter
 import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.activity.OneLoginActivity
 import com.quansu.heifengwuliu.model.User
 import com.ysnows.base.base.BRFragment
@@ -30,4 +31,20 @@ abstract class MBRFragment<VM : BRViewModel<*>, A : BaseQuickAdapter<*, out Base
     }
 
 
+    override fun bgColor(): Int {
+        return R.color.white
+    }
+
+    override fun titleColor(): Int {
+        return R.color.black
+    }
+
+    override fun rightTextColor(): Int {
+        return R.color.black
+    }
+
+    override fun backDrawable(): Int {
+        return R.drawable.ic_back_black
+    }
+
 }

+ 44 - 0
app/src/main/java/com/quansu/heifengwuliu/fragment/OrderListFragment.kt

@@ -0,0 +1,44 @@
+package com.quansu.heifengwuliu.fragment
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import com.quansu.heifengwuliu.adapter.OrderListAdapter
+import com.quansu.heifengwuliu.base.MBRFragment
+import com.quansu.heifengwuliu.databinding.FragmentOrderListBinding
+import com.quansu.heifengwuliu.model.Order
+import com.quansu.heifengwuliu.utils.net.NetEngine
+import com.quansu.heifengwuliu.vmodel.OrderListVModel
+import com.ysnows.base.net.IResponse
+import io.reactivex.Observable
+
+class OrderListFragment : MBRFragment<OrderListVModel, OrderListAdapter, FragmentOrderListBinding>() {
+
+    override fun init(savedInstanceState: Bundle?) {
+        super.init(savedInstanceState)
+
+        adapter().setList(arrayListOf(Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1), Order(1)
+        ))
+
+    }
+
+    override fun initAdapter(): OrderListAdapter {
+        return OrderListAdapter()
+    }
+
+    override fun api(): Observable<out IResponse<*>> {
+        return NetEngine.service.taskList("", vm.repository().autoPage())
+    }
+
+    override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentOrderListBinding {
+        return FragmentOrderListBinding.inflate(layoutInflater, container, false)
+    }
+
+    override fun title(): String? {
+        return null
+    }
+
+    override fun vmClass(): Class<OrderListVModel> {
+        return OrderListVModel::class.java
+    }
+}

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

@@ -1,9 +1,17 @@
 package com.quansu.heifengwuliu.fragment
 
+import android.graphics.Color
+import android.graphics.Typeface
 import android.view.LayoutInflater
+import android.view.View
 import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.PagerAdapter
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.base.MBFragment
-import com.quansu.heifengwuliu.databinding.FragmentMineBinding
 import com.quansu.heifengwuliu.databinding.FragmentWaybillBinding
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
@@ -12,16 +20,82 @@ import com.ysnows.base.base.BViewModel
  *Created by shihuiyun
  *on 2020/9/9
  */
-class WayBillFragment  : MBFragment<BViewModel<BRepository>, FragmentWaybillBinding>(){
+class WayBillFragment : MBFragment<BViewModel<BRepository>, FragmentWaybillBinding>() {
+
+    override fun initView(view: View?) {
+        super.initView(view)
+
+        titleBar?.tvRight?.text = getString(R.string.filter)
+
+        initTabs()
+        initPager()
+
+    }
+
+    private fun initPager() {
+        val mPagerAdapter: PagerAdapter = object : FragmentPagerAdapter(childFragmentManager) {
+            override fun getItem(position: Int): Fragment {
+                return OrderListFragment()
+            }
+
+            override fun getCount(): Int {
+                return 5
+            }
+        }
+        binding.pager.adapter = mPagerAdapter
+        binding.tabs.setupWithViewPager(binding.pager, false)
+    }
+
+
+    private fun initTabs() {
+        binding.tabs.setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 3), false, true))
+        val builder = binding.tabs.tabBuilder()
+        builder
+                .skinChangeWithTintColor(false)
+                .setSelectColor(Color.parseColor("#2E4E71"))
+                .setNormalColor(Color.parseColor("#666666"))
+                .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT_BOLD)
+                .setDynamicChangeIconColor(false)
+
+        val component = builder
+                .setText(getString(R.string.all))
+                .build(context())
+
+        val util = builder
+                .setText(getText(R.string.to_order_receive))
+                .build(context())
+
+        val ongoing = builder
+                .setText(getText(R.string.on_going))
+                .build(context())
+
+        val canceled = builder
+                .setText(getText(R.string.canceled))
+                .build(context())
+
+        val completed = builder
+                .setText(getText(R.string.completed))
+                .build(context())
+
+
+        binding.tabs
+                .addTab(component)
+                .addTab(util)
+                .addTab(ongoing)
+                .addTab(canceled)
+                .addTab(completed)
+    }
 
 
     override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentWaybillBinding {
         return FragmentWaybillBinding.inflate(layoutInflater)
     }
 
-
     override fun title(): String? {
-        return null
+        return getString(R.string.source_information)
     }
 
+    override fun backable(): Boolean {
+        return false
+    }
 }

+ 9 - 0
app/src/main/java/com/quansu/heifengwuliu/model/Order.kt

@@ -0,0 +1,9 @@
+package com.quansu.heifengwuliu.model
+
+
+data class Order(
+        val status: Int
+) {
+
+
+}

+ 11 - 0
app/src/main/java/com/quansu/heifengwuliu/vmodel/OrderListVModel.kt

@@ -0,0 +1,11 @@
+package com.quansu.heifengwuliu.vmodel
+
+import com.ysnows.base.base.BRRepository
+import com.ysnows.base.base.BRViewModel
+
+class OrderListVModel : BRViewModel<BRRepository>() {
+
+    override fun firstReq() {
+//        super.firstReq()
+    }
+}

BIN
app/src/main/res/drawable-xxhdpi/ic_goods.png


BIN
app/src/main/res/drawable-xxhdpi/ic_long_arrow.png


BIN
app/src/main/res/drawable-xxhdpi/ic_qr.png


BIN
app/src/main/res/drawable-xxhdpi/ic_vehicle.png


+ 30 - 0
app/src/main/res/layout/fragment_order_list.xml

@@ -0,0 +1,30 @@
+<?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" >
+
+    <data >
+
+    </data >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        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_order" />
+
+        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout >
+    </LinearLayout >
+
+</layout >

+ 29 - 4
app/src/main/res/layout/fragment_waybill.xml

@@ -1,16 +1,41 @@
 <?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" >
+<layout xmlns:android="http://schemas.android.com/apk/res/android" >
 
     <data >
 
     </data >
 
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical" >
 
+        <FrameLayout
+            android:id="@+id/lay_container"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" >
+
+            <com.qmuiteam.qmui.widget.tab.QMUITabSegment
+                android:id="@+id/tabs"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/title_bar_height"
+                android:background="@color/white"
+                android:textSize="12sp" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:layout_marginTop="@dimen/title_bar_height"
+                android:background="@color/color_page" />
+
+            <com.qmuiteam.qmui.widget.QMUIViewPager
+                android:id="@+id/pager"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="58dp" />
+
+        </FrameLayout >
+
+    </LinearLayout >
 
-    </androidx.constraintlayout.widget.ConstraintLayout >
 </layout >

+ 155 - 0
app/src/main/res/layout/item_order.xml

@@ -0,0 +1,155 @@
+<?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" >
+
+    <data >
+
+        <variable
+            name="item"
+            type="com.quansu.heifengwuliu.model.Order" />
+
+    </data >
+
+    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="@dimen/dp_10"
+        android:orientation="vertical"
+        app:qmui_borderColor="@color/gray_lite"
+        app:qmui_borderWidth="@dimen/dp_1"
+        app:qmui_radius="@dimen/dp_5" >
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingStart="@dimen/dp_10"
+            android:paddingEnd="@dimen/dp_10"
+            android:paddingBottom="@dimen/dp_5" >
+
+            <TextView
+                android:id="@+id/tv_number_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/dp_5"
+                android:paddingBottom="@dimen/dp_5"
+                android:text="@string/waybill_number"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/tv_number"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text=" YD20200901171059066"
+                app:layout_constraintBottom_toBottomOf="@id/tv_number_name"
+                app:layout_constraintStart_toEndOf="@id/tv_number_name"
+                app:layout_constraintTop_toTopOf="@id/tv_number_name" />
+
+            <TextView
+                android:id="@+id/tv_status"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="待接单(0/1)"
+                app:layout_constraintBottom_toBottomOf="@id/tv_number_name"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="@id/tv_number_name" />
+
+            <View
+                android:id="@+id/line"
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/gray_lite"
+                app:layout_constraintStart_toStartOf="@id/tv_number_name"
+                app:layout_constraintTop_toBottomOf="@id/tv_number_name" />
+
+            <androidx.constraintlayout.widget.Guideline
+                android:id="@+id/guide_line"
+                android:layout_width="@dimen/dp_1"
+                android:layout_height="match_parent"
+                android:orientation="vertical"
+                app:layout_constraintGuide_percent="0.5" />
+
+            <ImageView
+                android:id="@+id/img_arrow"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:src="@drawable/ic_long_arrow"
+                app:layout_constraintEnd_toEndOf="@id/guide_line"
+                app:layout_constraintStart_toStartOf="@id/guide_line"
+                app:layout_constraintTop_toBottomOf="@id/line" />
+
+            <TextView
+                android:id="@+id/tv_from"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/dp_10"
+                android:text="山东 临沂"
+                android:textColor="@color/blue"
+                app:layout_constraintBottom_toBottomOf="@id/img_arrow"
+                app:layout_constraintEnd_toStartOf="@id/img_arrow"
+                app:layout_constraintTop_toTopOf="@id/img_arrow" />
+
+            <TextView
+                android:id="@+id/tv_to"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/dp_10"
+                android:text="北京 中关村"
+                android:textColor="@color/red_400"
+                app:layout_constraintBottom_toBottomOf="@id/img_arrow"
+                app:layout_constraintStart_toEndOf="@id/img_arrow"
+                app:layout_constraintTop_toTopOf="@id/img_arrow" />
+
+            <ImageView
+                android:id="@+id/img_vehicle"
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginTop="@dimen/dp_5"
+                android:src="@drawable/ic_vehicle"
+                app:layout_constraintStart_toStartOf="@id/tv_number_name"
+                app:layout_constraintTop_toBottomOf="@id/img_arrow" />
+
+            <TextView
+                android:id="@+id/tv_vehicle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/dp_10"
+                android:text="平板货车 · 13米"
+                app:layout_constraintBottom_toBottomOf="@id/img_vehicle"
+                app:layout_constraintStart_toEndOf="@id/img_vehicle"
+                app:layout_constraintTop_toTopOf="@id/img_vehicle" />
+
+            <ImageView
+                android:id="@+id/img_goods"
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_marginTop="@dimen/dp_5"
+                android:padding="@dimen/dp_2"
+                android:src="@drawable/ic_goods"
+                app:layout_constraintStart_toStartOf="@id/img_vehicle"
+                app:layout_constraintTop_toBottomOf="@id/img_vehicle" />
+
+            <TextView
+                android:id="@+id/tv_goods"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/dp_10"
+                android:text="苹果(农产品) · 35吨"
+                app:layout_constraintBottom_toBottomOf="@id/img_goods"
+                app:layout_constraintStart_toEndOf="@id/img_goods"
+                app:layout_constraintTop_toTopOf="@id/img_goods" />
+
+            <ImageView
+                android:id="@+id/img_qr"
+                android:layout_width="35dp"
+                android:layout_height="35dp"
+                android:src="@drawable/ic_qr"
+                app:layout_constraintBottom_toBottomOf="@id/img_goods"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="@id/img_vehicle" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout >
+
+    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout >
+
+</layout >

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

@@ -436,5 +436,13 @@ Api 已达到使用限制
     <string name="bl_upload" >营业执照上传</string >
     <string name="add_vehicle" >添加车辆</string >
     <string name="all_select" >全选</string >
+    <string name="all" >全部</string >
+    <string name="to_order_receive" >待接单</string >
+    <string name="on_going" >进行中</string >
+    <string name="canceled" >已取消</string >
+    <string name="completed" >已完成</string >
+    <string name="waybill_number" >运单号: </string >
+    <string name="source_information" >货源信息</string >
+    <string name="filter" >筛选</string >
 
 </resources >