Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
3045399f
Commit
3045399f
authored
Aug 24, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add 自提点搜索逻辑
parent
a520beb8
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
216 additions
and
12 deletions
+216
-12
IntentConstants.kt
.../main/java/com/yidian/bcommon/constant/IntentConstants.kt
+12
-0
XEventConfig.kt
...src/main/java/com/yidian/bcommon/constant/XEventConfig.kt
+4
-0
AndroidManifest.xml
Components/BOrder/src/main/AndroidManifest.xml
+1
-0
PickupPointListAdapter.kt
...ian/shenghuoquan/border/adapter/PickupPointListAdapter.kt
+33
-2
ClassMapUtil.kt
...n/java/com/yidian/shenghuoquan/border/app/ClassMapUtil.kt
+2
-0
PickupPointListDto.kt
.../com/yidian/shenghuoquan/border/dto/PickupPointListDto.kt
+1
-1
SelectPickupPointActivity.kt
...idian/shenghuoquan/border/ui/SelectPickupPointActivity.kt
+62
-1
PickupPointSearchView.kt
...an/shenghuoquan/border/ui/widget/PickupPointSearchView.kt
+13
-3
PickupPointListItemViewModel.kt
...ghuoquan/border/viewmodel/PickupPointListItemViewModel.kt
+26
-0
PickupPointSearchViewModel.kt
...enghuoquan/border/viewmodel/PickupPointSearchViewModel.kt
+0
-1
SelectPickupPointViewModel.kt
...enghuoquan/border/viewmodel/SelectPickupPointViewModel.kt
+33
-0
border_activity_order_detail.xml
...rder/src/main/res/layout/border_activity_order_detail.xml
+1
-1
border_activity_select_pickup_point.xml
...c/main/res/layout/border_activity_select_pickup_point.xml
+2
-1
border_item_pickup_point_list.xml
...der/src/main/res/layout/border_item_pickup_point_list.xml
+22
-2
border_view_pickup_point_search.xml
...r/src/main/res/layout/border_view_pickup_point_search.xml
+3
-0
strings.xml
Components/BOrder/src/main/res/values/strings.xml
+1
-0
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/IntentConstants.kt
View file @
3045399f
...
@@ -15,4 +15,16 @@ object IntentConstants {
...
@@ -15,4 +15,16 @@ object IntentConstants {
// 订单id
// 订单id
const
val
KEY_EXTRA_ORDER_ID
=
"orderId"
const
val
KEY_EXTRA_ORDER_ID
=
"orderId"
// 活动id
const
val
KEY_EXTRA_MARKETING_ID
=
"marketingId"
// 经度
const
val
KEY_EXTRA_LONGITUDE
=
"longitude"
// 纬度
const
val
KEY_EXTRA_LATITUDE
=
"latitude"
// 自提点id
const
val
KEY_EXTRA_PICKUP_POINT_ID
=
"pickupPointId"
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/XEventConfig.kt
View file @
3045399f
...
@@ -26,5 +26,9 @@ class XEventConfig {
...
@@ -26,5 +26,9 @@ class XEventConfig {
const
val
CONFIRM_ORDER_CHOOSE_POINT_SUCCESS
=
"confirm_order_choose_point_success"
const
val
CONFIRM_ORDER_CHOOSE_POINT_SUCCESS
=
"confirm_order_choose_point_success"
// 确认订单选择优惠券成功
// 确认订单选择优惠券成功
const
val
CONFIRM_ORDER_CHOOSE_COUPON_SUCCESS
=
"confirm_order_choose_coupon_success"
const
val
CONFIRM_ORDER_CHOOSE_COUPON_SUCCESS
=
"confirm_order_choose_coupon_success"
// 取消搜索自提点
const
val
SEARCH_PICKUP_POINT_CANCEL
=
"search_pickup_point_cancel"
// 开始搜索自提点
const
val
SEARCH_PICKUP_POINT_START
=
"search_pickup_point_start"
}
}
}
}
Components/BOrder/src/main/AndroidManifest.xml
View file @
3045399f
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
android:name=
"com.yidian.shenghuoquan.border.ui.ConfirmOrderActivity"
android:name=
"com.yidian.shenghuoquan.border.ui.ConfirmOrderActivity"
android:windowSoftInputMode=
"adjustPan"
/>
android:windowSoftInputMode=
"adjustPan"
/>
<activity
android:name=
"com.yidian.shenghuoquan.border.ui.OrderDetailActivity"
/>
<activity
android:name=
"com.yidian.shenghuoquan.border.ui.OrderDetailActivity"
/>
<activity
android:name=
"com.yidian.shenghuoquan.border.ui.SelectPickupPointActivity"
/>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/adapter/PickupPointListAdapter.kt
View file @
3045399f
...
@@ -8,6 +8,7 @@ import androidx.databinding.DataBindingUtil
...
@@ -8,6 +8,7 @@ import androidx.databinding.DataBindingUtil
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.databinding.BorderItemPickupPointListBinding
import
com.yidian.shenghuoquan.border.databinding.BorderItemPickupPointListBinding
import
com.yidian.shenghuoquan.border.dto.PickupPoint
import
com.yidian.shenghuoquan.border.viewmodel.PickupPointListItemViewModel
import
com.yidian.shenghuoquan.border.viewmodel.PickupPointListItemViewModel
import
com.yidian.utils.DensityUtil
import
com.yidian.utils.DensityUtil
...
@@ -16,7 +17,35 @@ import com.yidian.utils.DensityUtil
...
@@ -16,7 +17,35 @@ import com.yidian.utils.DensityUtil
* date: 2021/8/24 16:57
* date: 2021/8/24 16:57
* description: 自提点列表
* description: 自提点列表
*/
*/
class
PickupPointListAdapter
:
RecyclerView
.
Adapter
<
PickupPointListAdapter
.
PickupPointListViewHolder
>()
{
class
PickupPointListAdapter
(
data
:
List
<
PickupPoint
>?)
:
RecyclerView
.
Adapter
<
PickupPointListAdapter
.
PickupPointListViewHolder
>()
{
private
val
data
by
lazy
{
ArrayList
<
PickupPoint
>()
}
private
var
curSelectId
=
0L
init
{
data
?.
let
{
this
.
data
.
addAll
(
it
)
}
}
/**
* 更新数据
*/
fun
updateData
(
data
:
List
<
PickupPoint
>?)
{
data
?.
let
{
notifyItemRangeRemoved
(
0
,
this
.
data
.
size
)
this
.
data
.
clear
()
this
.
data
.
addAll
(
it
)
notifyItemRangeInserted
(
0
,
this
.
data
.
size
)
}
}
/**
* 设置当前选中的自提点id 默认0
*/
fun
setSelectedId
(
id
:
Long
?)
{
curSelectId
=
id
?:
0
}
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
PickupPointListViewHolder
{
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
PickupPointListViewHolder
{
val
binding
=
DataBindingUtil
.
inflate
<
BorderItemPickupPointListBinding
>(
val
binding
=
DataBindingUtil
.
inflate
<
BorderItemPickupPointListBinding
>(
...
@@ -30,10 +59,12 @@ class PickupPointListAdapter : RecyclerView.Adapter<PickupPointListAdapter.Picku
...
@@ -30,10 +59,12 @@ class PickupPointListAdapter : RecyclerView.Adapter<PickupPointListAdapter.Picku
override
fun
onBindViewHolder
(
holder
:
PickupPointListViewHolder
,
position
:
Int
)
{
override
fun
onBindViewHolder
(
holder
:
PickupPointListViewHolder
,
position
:
Int
)
{
holder
.
binding
.
vm
=
PickupPointListItemViewModel
()
holder
.
binding
.
vm
=
PickupPointListItemViewModel
()
holder
.
binding
.
data
=
data
[
position
]
holder
.
binding
.
selectedId
=
curSelectId
}
}
override
fun
getItemCount
():
Int
{
override
fun
getItemCount
():
Int
{
return
0
return
data
.
size
}
}
class
PickupPointListViewHolder
(
itemView
:
View
,
val
binding
:
BorderItemPickupPointListBinding
)
:
RecyclerView
.
ViewHolder
(
itemView
)
class
PickupPointListViewHolder
(
itemView
:
View
,
val
binding
:
BorderItemPickupPointListBinding
)
:
RecyclerView
.
ViewHolder
(
itemView
)
...
...
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/app/ClassMapUtil.kt
View file @
3045399f
...
@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.border.app
...
@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.border.app
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.shenghuoquan.border.ui.ConfirmOrderActivity
import
com.yidian.shenghuoquan.border.ui.ConfirmOrderActivity
import
com.yidian.shenghuoquan.border.ui.OrderDetailActivity
import
com.yidian.shenghuoquan.border.ui.OrderDetailActivity
import
com.yidian.shenghuoquan.border.ui.SelectPickupPointActivity
/**
/**
...
@@ -13,6 +14,7 @@ object ClassMapUtil {
...
@@ -13,6 +14,7 @@ object ClassMapUtil {
val
xPageNodeMap
=
mapOf
(
val
xPageNodeMap
=
mapOf
(
XRouterPathConstants
.
Companion
.
CONFIRM_ORDER_ACTIVITY
to
ConfirmOrderActivity
::
class
.
java
,
// 确认订单
XRouterPathConstants
.
Companion
.
CONFIRM_ORDER_ACTIVITY
to
ConfirmOrderActivity
::
class
.
java
,
// 确认订单
XRouterPathConstants
.
Companion
.
ORDER_DETAIL_ACTIVITY
to
OrderDetailActivity
::
class
.
java
,
// 订单详情
XRouterPathConstants
.
Companion
.
ORDER_DETAIL_ACTIVITY
to
OrderDetailActivity
::
class
.
java
,
// 订单详情
XRouterPathConstants
.
Companion
.
PICKUP_POINT_ACTIVITY
to
SelectPickupPointActivity
::
class
.
java
,
// 选择自提点
)
)
}
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/dto/PickupPointListDto.kt
View file @
3045399f
...
@@ -45,7 +45,7 @@ data class PickupPoint(
...
@@ -45,7 +45,7 @@ data class PickupPoint(
@SerializedName
(
"province"
)
// 省
@SerializedName
(
"province"
)
// 省
val
province
:
String
,
val
province
:
String
,
@SerializedName
(
"take_place_id"
)
// 自提点id
@SerializedName
(
"take_place_id"
)
// 自提点id
val
takePlaceId
:
Int
,
val
takePlaceId
:
Long
,
@SerializedName
(
"take_place_name"
)
// 自提点名称
@SerializedName
(
"take_place_name"
)
// 自提点名称
val
takePlaceName
:
String
,
val
takePlaceName
:
String
,
@SerializedName
(
"update_time"
)
@SerializedName
(
"update_time"
)
...
...
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/ui/SelectPickupPointActivity.kt
View file @
3045399f
package
com.yidian.shenghuoquan.border.ui
package
com.yidian.shenghuoquan.border.ui
import
android.os.Bundle
import
androidx.activity.viewModels
import
androidx.activity.viewModels
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.yidian.bcommon.constant.IntentConstants
import
com.yidian.bcommon.constant.XEventConfig
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.mvvm.BaseMvvmActivity
import
com.yidian.bcommon.mvvm.BaseMvvmActivity
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.adapter.PickupPointListAdapter
import
com.yidian.shenghuoquan.border.adapter.PickupPointListAdapter
import
com.yidian.shenghuoquan.border.databinding.BorderActivitySelectPickupPointBinding
import
com.yidian.shenghuoquan.border.databinding.BorderActivitySelectPickupPointBinding
import
com.yidian.shenghuoquan.border.viewmodel.SelectPickupPointViewModel
import
com.yidian.shenghuoquan.border.viewmodel.SelectPickupPointViewModel
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
import
com.yidian.xpage.XPageViewProtocol
import
com.yidian.xpage.XPageViewProtocol
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.ThreadMode
/**
/**
* author: yinjiacheng
* author: yinjiacheng
...
@@ -20,14 +27,31 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
...
@@ -20,14 +27,31 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
override
val
layoutId
=
R
.
layout
.
border_activity_select_pickup_point
override
val
layoutId
=
R
.
layout
.
border_activity_select_pickup_point
override
val
vm
:
SelectPickupPointViewModel
by
viewModels
()
override
val
vm
:
SelectPickupPointViewModel
by
viewModels
()
private
val
adapter
by
lazy
{
PickupPointListAdapter
()
}
private
val
adapter
by
lazy
{
PickupPointListAdapter
(
null
)
}
private
val
params
by
lazy
{
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
?.
let
{
it
as
HashMap
<*,
*>
}
}
override
fun
getXPageName
():
String
{
override
fun
getXPageName
():
String
{
return
XRouterPathConstants
.
PICKUP_POINT_ACTIVITY
return
XRouterPathConstants
.
PICKUP_POINT_ACTIVITY
}
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
XEventManager
.
register
(
this
)
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
XEventManager
.
unRegister
(
this
)
}
override
fun
initView
()
{
override
fun
initView
()
{
initRecyclerView
()
initRecyclerView
()
registerUIEvent
()
requestPickupPoint
(
null
)
}
}
private
fun
initRecyclerView
()
{
private
fun
initRecyclerView
()
{
...
@@ -35,4 +59,41 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
...
@@ -35,4 +59,41 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
binding
.
rvPickupPointList
.
layoutManager
=
LinearLayoutManager
(
this
,
LinearLayoutManager
.
VERTICAL
,
false
)
binding
.
rvPickupPointList
.
layoutManager
=
LinearLayoutManager
(
this
,
LinearLayoutManager
.
VERTICAL
,
false
)
binding
.
rvPickupPointList
.
addItemDecoration
(
PickupPointListAdapter
.
PickupPointListItemDecoration
())
binding
.
rvPickupPointList
.
addItemDecoration
(
PickupPointListAdapter
.
PickupPointListItemDecoration
())
}
}
/**
* 注册UI事件监听
*/
private
fun
registerUIEvent
()
{
vm
.
pickupPointListData
.
observe
(
this
,
{
// 标记当前选中的自提点
adapter
.
setSelectedId
(
params
?.
get
(
IntentConstants
.
KEY_EXTRA_PICKUP_POINT_ID
)
?.
let
{
id
->
id
as
Long
})
adapter
.
updateData
(
it
.
list
)
})
}
/**
* 请求附近自提点
*/
private
fun
requestPickupPoint
(
keyWords
:
String
?)
{
vm
.
requestPickupPointList
(
params
?.
get
(
IntentConstants
.
KEY_EXTRA_MARKETING_ID
)
as
String
,
params
?.
get
(
IntentConstants
.
KEY_EXTRA_LONGITUDE
)
?.
let
{
it
as
Double
},
params
?.
get
(
IntentConstants
.
KEY_EXTRA_LATITUDE
)
?.
let
{
it
as
Double
},
keyWords
)
}
@Subscribe
(
sticky
=
false
,
threadMode
=
ThreadMode
.
MAIN
)
fun
onEvent
(
event
:
XBaseEvent
?)
{
when
(
event
?.
name
)
{
XEventConfig
.
SEARCH_PICKUP_POINT_CANCEL
->
{
// 取消搜索自提点 请求附近自提点
requestPickupPoint
(
null
)
}
XEventConfig
.
SEARCH_PICKUP_POINT_START
->
{
// 开始搜索自提点
requestPickupPoint
(
event
.
body
as
String
)
}
}
}
}
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/ui/widget/PickupPointSearchView.kt
View file @
3045399f
...
@@ -4,12 +4,16 @@ import android.content.Context
...
@@ -4,12 +4,16 @@ import android.content.Context
import
android.util.AttributeSet
import
android.util.AttributeSet
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.inputmethod.EditorInfo
import
android.view.inputmethod.EditorInfo
import
android.view.inputmethod.InputMethodManager
import
androidx.constraintlayout.widget.ConstraintLayout
import
androidx.constraintlayout.widget.ConstraintLayout
import
androidx.databinding.DataBindingUtil
import
androidx.databinding.DataBindingUtil
import
androidx.lifecycle.LifecycleOwner
import
androidx.lifecycle.LifecycleOwner
import
com.yidian.bcommon.constant.XEventConfig
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.R
import
com.yidian.shenghuoquan.border.databinding.BorderViewPickupPointSearchBinding
import
com.yidian.shenghuoquan.border.databinding.BorderViewPickupPointSearchBinding
import
com.yidian.shenghuoquan.border.viewmodel.PickupPointSearchViewModel
import
com.yidian.shenghuoquan.border.viewmodel.PickupPointSearchViewModel
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
/**
/**
* author: yinjiacheng
* author: yinjiacheng
...
@@ -34,11 +38,15 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
...
@@ -34,11 +38,15 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
}
}
private
fun
initView
()
{
private
fun
initView
()
{
binding
.
etSearch
.
setOnEditorActionListener
{
v
,
actionId
,
event
->
binding
.
etSearch
.
setOnEditorActionListener
{
v
,
actionId
,
_
->
if
(
actionId
==
EditorInfo
.
IME_ACTION_SEARCH
)
{
if
(
actionId
==
EditorInfo
.
IME_ACTION_SEARCH
)
{
// TODO: 2021/8/24 请求搜索自提点
// 隐藏软键盘
val
imm
=
context
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
)
as
InputMethodManager
imm
.
hideSoftInputFromWindow
(
windowToken
,
0
)
// 通知开始搜索
XEventManager
.
post
(
XBaseEvent
(
XEventConfig
.
SEARCH_PICKUP_POINT_START
,
v
.
text
.
toString
()))
}
}
fals
e
tru
e
}
}
}
}
...
@@ -49,6 +57,8 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
...
@@ -49,6 +57,8 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
vm
.
clearSearch
.
observe
(
context
as
LifecycleOwner
,
{
vm
.
clearSearch
.
observe
(
context
as
LifecycleOwner
,
{
// 清空搜索框
// 清空搜索框
binding
.
etSearch
.
setText
(
""
)
binding
.
etSearch
.
setText
(
""
)
// 通知取消搜索
XEventManager
.
post
(
XBaseEvent
(
XEventConfig
.
SEARCH_PICKUP_POINT_CANCEL
,
null
))
})
})
}
}
}
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/viewmodel/PickupPointListItemViewModel.kt
View file @
3045399f
package
com.yidian.shenghuoquan.border.viewmodel
package
com.yidian.shenghuoquan.border.viewmodel
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.view.MarginLayoutParamsCompat
import
androidx.databinding.BindingAdapter
import
com.yidian.bcommon.constant.XEventConfig
import
com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.shenghuoquan.border.dto.PickupPoint
import
com.yidian.utils.DensityUtil
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
import
com.yidian.xpage.XPageManager
/**
/**
* author: yinjiacheng
* author: yinjiacheng
...
@@ -8,4 +18,20 @@ import com.yidian.bcommon.mvvm.BaseViewModel
...
@@ -8,4 +18,20 @@ import com.yidian.bcommon.mvvm.BaseViewModel
* description: 自提点列表
* description: 自提点列表
*/
*/
class
PickupPointListItemViewModel
:
BaseViewModel
()
{
class
PickupPointListItemViewModel
:
BaseViewModel
()
{
companion
object
{
@JvmStatic
@BindingAdapter
(
"layout_marginStart"
)
fun
setMarginStart
(
view
:
View
,
margin
:
Int
)
{
MarginLayoutParamsCompat
.
setMarginStart
(
view
.
layoutParams
as
ViewGroup
.
MarginLayoutParams
,
DensityUtil
.
dp2px
(
margin
.
toFloat
()))
}
}
/**
* 回传选择的自提点
*/
fun
selectPickupPoint
(
data
:
PickupPoint
)
{
XEventManager
.
post
(
XBaseEvent
(
XEventConfig
.
CONFIRM_ORDER_CHOOSE_POINT_SUCCESS
,
data
))
XPageManager
.
pop
(
null
)
}
}
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/viewmodel/PickupPointSearchViewModel.kt
View file @
3045399f
...
@@ -20,6 +20,5 @@ class PickupPointSearchViewModel : BaseViewModel() {
...
@@ -20,6 +20,5 @@ class PickupPointSearchViewModel : BaseViewModel() {
*/
*/
fun
clearSearch
()
{
fun
clearSearch
()
{
_clearSearch
.
value
=
Unit
_clearSearch
.
value
=
Unit
// TODO: 2021/8/24 请求附近自提点
}
}
}
}
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/viewmodel/SelectPickupPointViewModel.kt
View file @
3045399f
package
com.yidian.shenghuoquan.border.viewmodel
package
com.yidian.shenghuoquan.border.viewmodel
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.shenghuoquan.border.dto.PickupPointListDto
import
com.yidian.shenghuoquan.border.http.OrderRemoteDataSource
import
com.yidian.shenghuoquan.border.http.callback.IGetPickupPointListCallback
/**
/**
* author: yinjiacheng
* author: yinjiacheng
...
@@ -9,4 +14,32 @@ import com.yidian.bcommon.mvvm.BaseViewModel
...
@@ -9,4 +14,32 @@ import com.yidian.bcommon.mvvm.BaseViewModel
*/
*/
class
SelectPickupPointViewModel
:
BaseViewModel
()
{
class
SelectPickupPointViewModel
:
BaseViewModel
()
{
private
val
_pickupPointListData
=
MutableLiveData
<
PickupPointListDto
>()
val
pickupPointListData
:
LiveData
<
PickupPointListDto
>
=
_pickupPointListData
/**
* 请求自提点列表
*/
fun
requestPickupPointList
(
marketingId
:
String
,
longitude
:
Double
?,
latitude
:
Double
?,
keyWords
:
String
?)
{
val
requestParams
=
HashMap
<
String
,
String
?>(
6
)
requestParams
[
"marketing_id"
]
=
marketingId
longitude
?.
let
{
requestParams
[
"longitude"
]
=
it
.
toString
()
}
latitude
?.
let
{
requestParams
[
"latitude"
]
=
it
.
toString
()
}
if
(
keyWords
?.
isNotEmpty
()
==
true
)
requestParams
[
"keywords"
]
=
keyWords
requestParams
[
"page"
]
=
"1"
requestParams
[
"limit"
]
=
"20"
OrderRemoteDataSource
.
getPickupPointList
(
object
:
IGetPickupPointListCallback
{
override
fun
getPickupPointListSuccess
(
result
:
PickupPointListDto
?)
{
result
?.
let
{
_pickupPointListData
.
value
=
it
}
}
override
fun
getPickupPointListFailure
(
message
:
String
?)
{
}
},
requestParams
)
}
}
}
Components/BOrder/src/main/res/layout/border_activity_order_detail.xml
View file @
3045399f
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:CommonTopBarView_back_img=
"@drawable/icon_back_white"
app:CommonTopBarView_back_img=
"@drawable/icon_back_white"
app:CommonTopBarView_bg_color=
"@color/color_F
6775B
"
app:CommonTopBarView_bg_color=
"@color/color_F
D7823
"
app:CommonTopBarView_title_text=
"@string/order_detail"
app:CommonTopBarView_title_text=
"@string/order_detail"
app:CommonTopBarView_title_text_color=
"@color/white"
app:CommonTopBarView_title_text_color=
"@color/white"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
Components/BOrder/src/main/res/layout/border_activity_select_pickup_point.xml
View file @
3045399f
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:CommonTopBarView_back_img=
"@drawable/icon_back_white"
app:CommonTopBarView_back_img=
"@drawable/icon_back_white"
app:CommonTopBarView_bg_color=
"@color/color_F
6775B
"
app:CommonTopBarView_bg_color=
"@color/color_F
D7823
"
app:CommonTopBarView_title_text=
"@string/select_pickup_point"
app:CommonTopBarView_title_text=
"@string/select_pickup_point"
app:CommonTopBarView_title_text_color=
"@color/white"
app:CommonTopBarView_title_text_color=
"@color/white"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
@@ -54,6 +54,7 @@
...
@@ -54,6 +54,7 @@
android:layout_marginTop=
"@dimen/dp20"
android:layout_marginTop=
"@dimen/dp20"
android:layout_marginEnd=
"@dimen/dp16"
android:layout_marginEnd=
"@dimen/dp16"
android:layout_marginBottom=
"@dimen/dp20"
android:layout_marginBottom=
"@dimen/dp20"
android:background=
"@drawable/shape_solid_ffffff_corner_20"
android:paddingStart=
"@dimen/dp16"
android:paddingStart=
"@dimen/dp16"
android:paddingEnd=
"@dimen/dp16"
android:paddingEnd=
"@dimen/dp16"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
...
...
Components/BOrder/src/main/res/layout/border_item_pickup_point_list.xml
View file @
3045399f
...
@@ -5,20 +5,32 @@
...
@@ -5,20 +5,32 @@
<data>
<data>
<import
type=
"android.view.View"
/>
<variable
<variable
name=
"vm"
name=
"vm"
type=
"com.yidian.shenghuoquan.border.viewmodel.PickupPointListItemViewModel"
/>
type=
"com.yidian.shenghuoquan.border.viewmodel.PickupPointListItemViewModel"
/>
<variable
name=
"data"
type=
"com.yidian.shenghuoquan.border.dto.PickupPoint"
/>
<variable
name=
"selectedId"
type=
"Long"
/>
</data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
android:layout_height=
"wrap_content"
android:onClick=
"@{() -> vm.selectPickupPoint(data)}"
>
<TextView
<TextView
android:id=
"@+id/tv_pickup_point_name"
android:id=
"@+id/tv_pickup_point_name"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{data.takePlaceName}"
android:textColor=
"@color/color_333333"
android:textColor=
"@color/color_333333"
android:textSize=
"@dimen/sp16"
android:textSize=
"@dimen/sp16"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
@@ -29,8 +41,10 @@
...
@@ -29,8 +41,10 @@
android:id=
"@+id/tv_pickup_point_distance"
android:id=
"@+id/tv_pickup_point_distance"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{@string/pickup_point_distance(data.distance)}"
android:textColor=
"@color/color_D66948"
android:textColor=
"@color/color_D66948"
android:textSize=
"@dimen/sp14"
android:textSize=
"@dimen/sp14"
android:visibility=
"@{data.distance != 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/tv_pickup_point_address"
app:layout_constraintTop_toTopOf=
"@id/tv_pickup_point_address"
tools:text=
"距您:2.7km"
/>
tools:text=
"距您:2.7km"
/>
...
@@ -39,6 +53,7 @@
...
@@ -39,6 +53,7 @@
android:layout_width=
"@dimen/dp1"
android:layout_width=
"@dimen/dp1"
android:layout_height=
"@dimen/dp8"
android:layout_height=
"@dimen/dp8"
android:background=
"@color/color_999999"
android:background=
"@color/color_999999"
android:visibility=
"@{data.distance != 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf=
"@id/tv_pickup_point_distance"
app:layout_constraintBottom_toBottomOf=
"@id/tv_pickup_point_distance"
app:layout_constraintEnd_toStartOf=
"@id/tv_pickup_point_address"
app:layout_constraintEnd_toStartOf=
"@id/tv_pickup_point_address"
app:layout_constraintStart_toEndOf=
"@id/tv_pickup_point_distance"
app:layout_constraintStart_toEndOf=
"@id/tv_pickup_point_distance"
...
@@ -48,12 +63,15 @@
...
@@ -48,12 +63,15 @@
android:id=
"@+id/tv_pickup_point_address"
android:id=
"@+id/tv_pickup_point_address"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/dp17"
android:layout_marginTop=
"@dimen/dp8"
android:layout_marginTop=
"@dimen/dp8"
android:ellipsize=
"end"
android:maxLines=
"1"
android:text=
"@{data.address}"
android:textColor=
"@color/color_999999"
android:textColor=
"@color/color_999999"
android:textSize=
"@dimen/sp14"
android:textSize=
"@dimen/sp14"
app:layout_constraintStart_toEndOf=
"@id/tv_pickup_point_distance"
app:layout_constraintStart_toEndOf=
"@id/tv_pickup_point_distance"
app:layout_constraintTop_toBottomOf=
"@id/tv_pickup_point_name"
app:layout_constraintTop_toBottomOf=
"@id/tv_pickup_point_name"
app:layout_marginStart=
"@{data.distance != 0 ? 17 : 0}"
tools:text=
"经济技术开发区燕顺路123号"
/>
tools:text=
"经济技术开发区燕顺路123号"
/>
<TextView
<TextView
...
@@ -61,6 +79,7 @@
...
@@ -61,6 +79,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp8"
android:layout_marginTop=
"@dimen/dp8"
android:text=
"@{@string/pickup_point_contract_person(data.contactName)}"
android:textColor=
"@color/color_999999"
android:textColor=
"@color/color_999999"
android:textSize=
"@dimen/sp14"
android:textSize=
"@dimen/sp14"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
@@ -73,6 +92,7 @@
...
@@ -73,6 +92,7 @@
android:layout_height=
"@dimen/dp18"
android:layout_height=
"@dimen/dp18"
android:background=
"@drawable/selector_pickup_point_select"
android:background=
"@drawable/selector_pickup_point_select"
android:button=
"@null"
android:button=
"@null"
android:checked=
"@{selectedId == data.takePlaceId}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
Components/BOrder/src/main/res/layout/border_view_pickup_point_search.xml
View file @
3045399f
...
@@ -35,15 +35,18 @@
...
@@ -35,15 +35,18 @@
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/dp4"
android:layout_marginStart=
"@dimen/dp4"
android:layout_marginEnd=
"@dimen/dp4"
android:background=
"@null"
android:background=
"@null"
android:hint=
"@string/search_pickup_point"
android:hint=
"@string/search_pickup_point"
android:imeOptions=
"actionSearch"
android:imeOptions=
"actionSearch"
android:maxLines=
"1"
android:maxLines=
"1"
android:inputType=
"text"
android:textColor=
"@color/color_333333"
android:textColor=
"@color/color_333333"
android:textColorHint=
"@color/color_666666"
android:textColorHint=
"@color/color_666666"
android:textSize=
"@dimen/sp14"
android:textSize=
"@dimen/sp14"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/iv_search"
app:layout_constraintStart_toEndOf=
"@id/iv_search"
app:layout_constraintEnd_toStartOf=
"@id/iv_clear"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
<ImageView
...
...
Components/BOrder/src/main/res/values/strings.xml
View file @
3045399f
...
@@ -28,4 +28,5 @@
...
@@ -28,4 +28,5 @@
<string
name=
"search_pickup_point"
>
搜索自提点名称/地址
</string>
<string
name=
"search_pickup_point"
>
搜索自提点名称/地址
</string>
<string
name=
"cancel"
>
取消
</string>
<string
name=
"cancel"
>
取消
</string>
<string
name=
"nearby_pickup_point"
>
附近自提点
</string>
<string
name=
"nearby_pickup_point"
>
附近自提点
</string>
<string
name=
"pickup_point_distance"
>
距您: %fkm
</string>
</resources>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment