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
6fbbb053
Commit
6fbbb053
authored
Sep 09, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix SHQCLIENT-1618 选择自提点页 1.增加取消按钮 2.增加无数据缺省页
parent
75126e63
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
164 additions
and
89 deletions
+164
-89
XEventConfig.kt
...src/main/java/com/yidian/bcommon/constant/XEventConfig.kt
+0
-4
SelectPickupPointActivity.kt
...n/shenghuoquan/buserorder/ui/SelectPickupPointActivity.kt
+17
-33
PickupPointSearchView.kt
...henghuoquan/buserorder/ui/widget/PickupPointSearchView.kt
+38
-11
PickupPointSearchViewModel.kt
...uoquan/buserorder/viewmodel/PickupPointSearchViewModel.kt
+30
-1
border_activity_select_pickup_point.xml
...c/main/res/layout/border_activity_select_pickup_point.xml
+23
-6
border_view_pickup_point_search.xml
...r/src/main/res/layout/border_view_pickup_point_search.xml
+56
-34
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/constant/XEventConfig.kt
View file @
6fbbb053
...
...
@@ -26,10 +26,6 @@ class XEventConfig {
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
SEARCH_PICKUP_POINT_CANCEL
=
"search_pickup_point_cancel"
// 开始搜索自提点
const
val
SEARCH_PICKUP_POINT_START
=
"search_pickup_point_start"
// C端登录成功
const
val
CLIENT_C_LOGIN_SUCCESS
=
"client_c_login_success"
// 通知h5刷新团餐拼团活动详情
...
...
Components/BUserOrder/src/main/java/com/yidian/shenghuoquan/buserorder/ui/SelectPickupPointActivity.kt
View file @
6fbbb053
package
com.yidian.shenghuoquan.buserorder.ui
import
android.os.Bundle
import
androidx.activity.viewModels
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.mvvm.BaseMvvmActivity
import
com.yidian.bcommon.services.ZapServiceActionConstants
...
...
@@ -13,13 +11,10 @@ import com.yidian.shenghuoquan.buserorder.R
import
com.yidian.shenghuoquan.buserorder.adapter.PickupPointListAdapter
import
com.yidian.shenghuoquan.buserorder.databinding.BorderActivitySelectPickupPointBinding
import
com.yidian.shenghuoquan.buserorder.dto.PickupPointListDto
import
com.yidian.shenghuoquan.buserorder.ui.widget.PickupPointSearchView
import
com.yidian.shenghuoquan.buserorder.viewmodel.SelectPickupPointViewModel
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
import
com.yidian.xpage.XPageViewProtocol
import
com.yidian.yac.core.zap.ZapTicket
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.ThreadMode
import
org.json.JSONObject
/**
...
...
@@ -28,7 +23,7 @@ import org.json.JSONObject
* description: 选择自提点页
*/
class
SelectPickupPointActivity
:
BaseMvvmActivity
<
BorderActivitySelectPickupPointBinding
,
SelectPickupPointViewModel
>(),
XPageViewProtocol
{
XPageViewProtocol
,
PickupPointSearchView
.
OnPickupPointSearchCallback
{
override
val
layoutId
=
R
.
layout
.
border_activity_select_pickup_point
override
val
vm
:
SelectPickupPointViewModel
by
viewModels
()
...
...
@@ -43,23 +38,14 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
/**
* 搜索关键字
*/
private
var
key
W
ords
:
String
?
=
null
private
var
key
w
ords
:
String
?
=
null
override
fun
getXPageName
():
String
{
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
()
{
binding
.
svPickupPointSearch
.
initPickupPointSearch
(
this
)
initRecyclerView
()
initSmartRefresh
()
registerUIEvent
()
...
...
@@ -103,6 +89,8 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
// 是否有位置信息 控制距离显示
adapter
.
setLocation
(
location
)
adapter
.
updateData
(
data
.
list
)
// 是否有自提点数据
binding
.
data
=
data
.
list
.
isNotEmpty
()
}
/**
...
...
@@ -119,23 +107,19 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
location
=
longitude
!=
0.0
&&
latitude
!=
0.0
// 是否有位置信息 控制附近自提点显示
binding
.
location
=
location
vm
.
requestPickupPointList
(
params
?.
get
(
IntentConstants
.
KEY_EXTRA_MARKETING_ID
)
as
String
,
longitude
,
latitude
,
key
W
ords
,
type
)
vm
.
requestPickupPointList
(
params
?.
get
(
IntentConstants
.
KEY_EXTRA_MARKETING_ID
)
as
String
,
longitude
,
latitude
,
key
w
ords
,
type
)
}.
ship
()
}
@Subscribe
(
sticky
=
false
,
threadMode
=
ThreadMode
.
MAIN
)
fun
onEvent
(
event
:
XBaseEvent
?)
{
when
(
event
?.
name
)
{
XEventConfig
.
SEARCH_PICKUP_POINT_CANCEL
->
{
keyWords
=
null
// 取消搜索自提点 请求附近自提点
requestPickupPoint
(
SelectPickupPointViewModel
.
LoadType
.
SEARCH
)
}
XEventConfig
.
SEARCH_PICKUP_POINT_START
->
{
keyWords
=
event
.
body
as
String
// 开始搜索自提点
requestPickupPoint
(
SelectPickupPointViewModel
.
LoadType
.
SEARCH
)
}
}
override
fun
onStartSearch
(
keywords
:
String
)
{
this
.
keywords
=
keywords
// 开始搜索自提点
requestPickupPoint
(
SelectPickupPointViewModel
.
LoadType
.
SEARCH
)
}
override
fun
onCancelSearch
()
{
keywords
=
null
// 取消搜索自提点 请求附近自提点
requestPickupPoint
(
SelectPickupPointViewModel
.
LoadType
.
SEARCH
)
}
}
Components/BUserOrder/src/main/java/com/yidian/shenghuoquan/buserorder/ui/widget/PickupPointSearchView.kt
View file @
6fbbb053
...
...
@@ -8,12 +8,9 @@ import android.view.inputmethod.InputMethodManager
import
androidx.constraintlayout.widget.ConstraintLayout
import
androidx.databinding.DataBindingUtil
import
androidx.lifecycle.LifecycleOwner
import
com.yidian.bcommon.constant.XEventConfig
import
com.yidian.shenghuoquan.buserorder.R
import
com.yidian.shenghuoquan.buserorder.databinding.BorderViewPickupPointSearchBinding
import
com.yidian.shenghuoquan.buserorder.viewmodel.PickupPointSearchViewModel
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
/**
* author: yinjiacheng
...
...
@@ -30,21 +27,22 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
true
)
private
val
vm
by
lazy
{
PickupPointSearchViewModel
()
}
private
var
callback
:
OnPickupPointSearchCallback
?
=
null
init
{
fun
initPickupPointSearch
(
callback
:
OnPickupPointSearchCallback
?)
{
binding
.
vm
=
vm
registerUIEvent
()
this
.
callback
=
callback
initView
()
registerUIEvent
()
}
private
fun
initView
()
{
binding
.
etSearch
.
setOnEditorActionListener
{
v
,
actionId
,
_
->
if
(
actionId
==
EditorInfo
.
IME_ACTION_SEARCH
)
{
// 隐藏软键盘
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
()))
hideKeyboard
()
// 回调开始搜索
callback
?.
onStartSearch
(
v
.
text
.
toString
())
}
true
}
...
...
@@ -57,8 +55,37 @@ class PickupPointSearchView @JvmOverloads constructor(context: Context, attrs: A
vm
.
clearSearch
.
observe
(
context
as
LifecycleOwner
,
{
// 清空搜索框
binding
.
etSearch
.
setText
(
""
)
// 通知取消搜索
XEventManager
.
post
(
XBaseEvent
(
XEventConfig
.
SEARCH_PICKUP_POINT_CANCEL
,
null
))
// 回调取消搜索
callback
?.
onCancelSearch
()
})
vm
.
cancelSearch
.
observe
(
context
as
LifecycleOwner
,
{
// 清空搜索框
binding
.
etSearch
.
setText
(
""
)
// 收起软键盘
hideKeyboard
()
// 回调取消搜索
callback
?.
onCancelSearch
()
})
}
/**
* 收起软键盘
*/
private
fun
hideKeyboard
()
{
val
imm
=
context
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
)
as
InputMethodManager
imm
.
hideSoftInputFromWindow
(
windowToken
,
0
)
}
interface
OnPickupPointSearchCallback
{
/**
* 开始搜索
* @param keywords 关键词
*/
fun
onStartSearch
(
keywords
:
String
)
/**
* 取消搜索
*/
fun
onCancelSearch
()
}
}
Components/BUserOrder/src/main/java/com/yidian/shenghuoquan/buserorder/viewmodel/PickupPointSearchViewModel.kt
View file @
6fbbb053
package
com.yidian.shenghuoquan.buserorder.viewmodel
import
android.view.View
import
androidx.constraintlayout.widget.ConstraintLayout
import
androidx.databinding.BindingAdapter
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
com.yidian.bcommon.mvvm.BaseViewModel
import
com.yidian.utils.DensityUtil
/**
* author: yinjiacheng
...
...
@@ -11,14 +15,39 @@ import com.yidian.bcommon.mvvm.BaseViewModel
*/
class
PickupPointSearchViewModel
:
BaseViewModel
()
{
companion
object
{
/**
* 设置右外边距
* @param margin 外边距 单位dp
*/
@JvmStatic
@BindingAdapter
(
"layout_marginEnd"
)
fun
setMarginEnd
(
view
:
View
,
margin
:
Int
)
{
val
lp
=
view
.
layoutParams
as
ConstraintLayout
.
LayoutParams
lp
.
marginEnd
=
DensityUtil
.
dp2px
(
margin
.
toFloat
())
view
.
layoutParams
=
lp
}
}
private
val
_clearSearch
=
MutableLiveData
<
Unit
>()
val
clearSearch
:
LiveData
<
Unit
>
=
_clearSearch
private
val
_cancelSearch
=
MutableLiveData
<
Unit
>()
val
cancelSearch
:
LiveData
<
Unit
>
=
_cancelSearch
/**
* 清空搜索
* 请求附近自提点数据
*
清空搜索框输入 不收起软键盘
请求附近自提点数据
*/
fun
clearSearch
()
{
_clearSearch
.
value
=
Unit
}
/**
* 取消搜索
* 清空搜索框输入 收起软键盘 请求附近自提点数据
*/
fun
cancelSearch
()
{
_cancelSearch
.
value
=
Unit
}
}
Components/BUserOrder/src/main/res/layout/border_activity_select_pickup_point.xml
View file @
6fbbb053
...
...
@@ -14,6 +14,10 @@
name=
"location"
type=
"Boolean"
/>
<variable
name=
"data"
type=
"Boolean"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
...
...
@@ -65,13 +69,26 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_nearby_pickup_point"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_pickup_point_list"
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:overScrollMode=
"never"
android:paddingStart=
"@dimen/dp16"
android:paddingEnd=
"@dimen/dp16"
/>
android:layout_height=
"match_parent"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_pickup_point_list"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:overScrollMode=
"never"
android:paddingStart=
"@dimen/dp16"
android:paddingEnd=
"@dimen/dp16"
/>
<com.yidian.bcommon.widget.CommonEmptyPageView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"@{data ? View.GONE : View.VISIBLE}"
app:CommonEmptyPageView_empty_content_text=
"暂无对应自提点"
app:CommonEmptyPageView_place_holder_img=
"@drawable/bcommon_icon_nothing_place_holder"
/>
</FrameLayout>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
...
...
Components/BUserOrder/src/main/res/layout/border_view_pickup_point_search.xml
View file @
6fbbb053
...
...
@@ -14,46 +14,68 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp40"
android:background=
"@drawable/shape_solid_ffffff_corner_10"
android:paddingStart=
"@dimen/dp9"
android:paddingEnd=
"@dimen/dp8"
>
android:layout_height=
"@dimen/dp40"
>
<ImageView
android:id=
"@+id/iv_search"
android:layout_width=
"@dimen/dp16"
android:layout_height=
"@dimen/dp16"
android:src=
"@drawable/icon_search"
app:layout_constraintBottom_toBottomOf=
"parent"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:background=
"@drawable/shape_solid_ffffff_corner_10"
android:paddingStart=
"@dimen/dp9"
android:paddingEnd=
"@dimen/dp8"
app:layout_constraintEnd_toStartOf=
"@id/tv_cancel"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_
constraintTop_toTopOf=
"parent"
/
>
app:layout_
marginEnd=
"@{etSearch.text.length() > 0 ? 16 : 0}"
>
<EditText
android:id=
"@+id/et_search"
android:layout_width=
"0dp"
<ImageView
android:id=
"@+id/iv_search"
android:layout_width=
"@dimen/dp16"
android:layout_height=
"@dimen/dp16"
android:src=
"@drawable/icon_search"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<EditText
android:id=
"@+id/et_search"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/dp4"
android:layout_marginEnd=
"@dimen/dp4"
android:background=
"@null"
android:hint=
"@string/search_pickup_point"
android:imeOptions=
"actionSearch"
android:inputType=
"text"
android:maxLines=
"1"
android:textColor=
"@color/color_333333"
android:textColorHint=
"@color/color_666666"
android:textCursorDrawable=
"@drawable/shape_bg_input_cursor"
android:textSize=
"@dimen/sp14"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/iv_clear"
app:layout_constraintStart_toEndOf=
"@id/iv_search"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/iv_clear"
android:layout_width=
"@dimen/dp24"
android:layout_height=
"@dimen/dp24"
android:onClick=
"@{() -> vm.clearSearch()}"
android:src=
"@drawable/bcommon_icon_clear"
android:visibility=
"@{etSearch.text.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id=
"@+id/tv_cancel"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/dp4"
android:layout_marginEnd=
"@dimen/dp4"
android:background=
"@null"
android:hint=
"@string/search_pickup_point"
android:imeOptions=
"actionSearch"
android:inputType=
"text"
android:maxLines=
"1"
android:onClick=
"@{() -> vm.cancelSearch()}"
android:text=
"@string/cancel"
android:textColor=
"@color/color_333333"
android:textColorHint=
"@color/color_666666"
android:textCursorDrawable=
"@drawable/shape_bg_input_cursor"
android:textSize=
"@dimen/sp14"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/iv_clear"
app:layout_constraintStart_toEndOf=
"@id/iv_search"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/iv_clear"
android:layout_width=
"@dimen/dp24"
android:layout_height=
"@dimen/dp24"
android:onClick=
"@{() -> vm.clearSearch()}"
android:src=
"@drawable/bcommon_icon_clear"
android:visibility=
"@{etSearch.text.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
...
...
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