Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
TangKuPos
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
王海
TangKuPos
Commits
4f1e4bea
Commit
4f1e4bea
authored
Jan 13, 2018
by
姜敏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加会员充值
parent
52c619d5
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
1345 additions
and
155 deletions
+1345
-155
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-1
app/src/main/java/com/xingdata/zzdpos/api/ApiFactory.java
app/src/main/java/com/xingdata/zzdpos/api/ApiFactory.java
+38
-9
app/src/main/java/com/xingdata/zzdpos/api/ApiService.java
app/src/main/java/com/xingdata/zzdpos/api/ApiService.java
+6
-0
app/src/main/java/com/xingdata/zzdpos/db/DBFactory.java
app/src/main/java/com/xingdata/zzdpos/db/DBFactory.java
+17
-0
app/src/main/java/com/xingdata/zzdpos/model/VipRechangeOrder.java
...main/java/com/xingdata/zzdpos/model/VipRechangeOrder.java
+206
-0
app/src/main/java/com/xingdata/zzdpos/ui/main/fragment/CasherFragment.java
.../com/xingdata/zzdpos/ui/main/fragment/CasherFragment.java
+15
-3
app/src/main/java/com/xingdata/zzdpos/ui/settle/fragment/SettleFragment.java
...om/xingdata/zzdpos/ui/settle/fragment/SettleFragment.java
+4
-5
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipActivity.java
...src/main/java/com/xingdata/zzdpos/ui/vip/VipActivity.java
+47
-2
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipContract.java
...src/main/java/com/xingdata/zzdpos/ui/vip/VipContract.java
+15
-2
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipPresenter.java
...rc/main/java/com/xingdata/zzdpos/ui/vip/VipPresenter.java
+106
-6
app/src/main/java/com/xingdata/zzdpos/ui/vip/adapter/VipTruleAdapter.java
...a/com/xingdata/zzdpos/ui/vip/adapter/VipTruleAdapter.java
+52
-0
app/src/main/java/com/xingdata/zzdpos/ui/vip/dialog/VipEditMenuDialog.java
.../com/xingdata/zzdpos/ui/vip/dialog/VipEditMenuDialog.java
+2
-5
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipListFragment.java
.../com/xingdata/zzdpos/ui/vip/fragment/VipListFragment.java
+46
-17
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRechargeFragment.java
.../xingdata/zzdpos/ui/vip/fragment/VipRechargeFragment.java
+213
-0
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRechargeListFragment.java
...gdata/zzdpos/ui/vip/fragment/VipRechargeListFragment.java
+10
-1
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRecordFragment.java
...om/xingdata/zzdpos/ui/vip/fragment/VipRecordFragment.java
+0
-25
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipSearchFragment.java
...om/xingdata/zzdpos/ui/vip/fragment/VipSearchFragment.java
+35
-18
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipTruleListFragment.java
...xingdata/zzdpos/ui/vip/fragment/VipTruleListFragment.java
+19
-20
app/src/main/res/drawable/selector_paymoney_radiobutton_bg.xml
...rc/main/res/drawable/selector_paymoney_radiobutton_bg.xml
+8
-0
app/src/main/res/drawable/selector_paymoney_textcolor_bg.xml
app/src/main/res/drawable/selector_paymoney_textcolor_bg.xml
+5
-0
app/src/main/res/drawable/shape_black_layout.xml
app/src/main/res/drawable/shape_black_layout.xml
+16
-0
app/src/main/res/drawable/shape_red_layout.xml
app/src/main/res/drawable/shape_red_layout.xml
+16
-0
app/src/main/res/layout/fragment_vip_list.xml
app/src/main/res/layout/fragment_vip_list.xml
+6
-1
app/src/main/res/layout/fragment_vip_mscard_list.xml
app/src/main/res/layout/fragment_vip_mscard_list.xml
+1
-1
app/src/main/res/layout/fragment_vip_recharge.xml
app/src/main/res/layout/fragment_vip_recharge.xml
+233
-0
app/src/main/res/layout/fragment_vip_serch.xml
app/src/main/res/layout/fragment_vip_serch.xml
+109
-0
app/src/main/res/layout/item_vip_mscard_item.xml
app/src/main/res/layout/item_vip_mscard_item.xml
+59
-38
app/src/main/res/layout/recharge.xml
app/src/main/res/layout/recharge.xml
+49
-0
app/src/main/res/mipmap-hdpi/ic_launcher_round.png
app/src/main/res/mipmap-hdpi/ic_launcher_round.png
+0
-0
app/src/main/res/mipmap-xhdpi/bg_return_ticket03.png
app/src/main/res/mipmap-xhdpi/bg_return_ticket03.png
+0
-0
app/src/main/res/mipmap-xhdpi/bg_return_ticket04.png
app/src/main/res/mipmap-xhdpi/bg_return_ticket04.png
+0
-0
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
+0
-0
app/src/main/res/values/strings.xml
app/src/main/res/values/strings.xml
+3
-1
app/src/main/res/values/styles.xml
app/src/main/res/values/styles.xml
+8
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
4f1e4bea
...
...
@@ -11,7 +11,7 @@
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_launcher"
android:label=
"@string/app_name"
android:roundIcon=
"@mipmap/ic_l
auncher_round
"
android:roundIcon=
"@mipmap/ic_l
ogo
"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
<activity
...
...
app/src/main/java/com/xingdata/zzdpos/api/ApiFactory.java
View file @
4f1e4bea
...
...
@@ -477,6 +477,14 @@ public final class ApiFactory {
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
Pager
<
Trule
>>
truleQueryByVipId
(
long
vipId
)
{
return
Api
.
getInstance
().
service
.
truleQueryByVipId
(
vipId
)
.
onErrorReturn
(
new
ErrorFilter
<>()).
map
(
new
ResultFilter
<>()).
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
String
>
truleDetail
(
String
id
)
{
return
Api
.
getInstance
().
service
.
truleDetail
(
id
).
onErrorReturn
(
new
ErrorFilter
<>()).
map
(
new
ResultFilter
<>()).
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -582,8 +590,9 @@ public final class ApiFactory {
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
Pager
<
com
.
xingdata
.
zzdpos
.
model
.
Saleorder
>>
querySaleorderByVipId
(
Long
vipId
,
int
pageNumber
,
int
pageSize
)
{
return
Api
.
getInstance
().
service
.
querySaleorderByVipId
(
vipId
,
pageNumber
,
pageSize
)
public
static
Observable
<
Pager
<
com
.
xingdata
.
zzdpos
.
model
.
Saleorder
>>
querySaleorderByVipId
(
Long
vipId
,
int
pageNumber
,
int
pageSize
)
{
return
Api
.
getInstance
().
service
.
querySaleorderByVipId
(
vipId
,
pageNumber
,
pageSize
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -767,7 +776,7 @@ public final class ApiFactory {
*/
public
static
Observable
<
Pager
<
com
.
xingdata
.
zzdpos
.
model
.
Cs
>>
querCsList
(
int
pageNulmber
,
int
pageSize
)
{
)
{
return
Api
.
getInstance
().
service
.
querCsList
(
pageNulmber
,
pageSize
).
onErrorReturn
(
new
ErrorFilter
<>()).
map
(
new
ResultFilter
<>()).
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
());
...
...
@@ -811,11 +820,12 @@ public final class ApiFactory {
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
());
}
/**
* 查询充值记录
*/
public
static
Observable
<
Pager
<
VipRechargeOrder
>>
queryRecharge
(
long
vipId
,
int
pageNum
,
int
pageSize
)
{
return
Api
.
getInstance
().
service
.
queryRecharge
(
vipId
,
pageNum
,
pageSize
)
public
static
Observable
<
Pager
<
VipRechargeOrder
>>
queryRecharge
(
long
vipId
,
int
pageNum
,
int
pageSize
)
{
return
Api
.
getInstance
().
service
.
queryRecharge
(
vipId
,
pageNum
,
pageSize
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -934,8 +944,8 @@ public final class ApiFactory {
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
Pager
<
Vip
>>
queryUserDetailByWD
(
String
keyword
,
int
pageNumber
)
{
return
Api
.
getInstance
().
service
.
queryDetailByWD
(
keyword
,
pageNumber
,
12
)
public
static
Observable
<
Pager
<
Vip
>>
queryUserDetailByWD
(
String
keyword
)
{
return
Api
.
getInstance
().
service
.
queryDetailByWD
(
keyword
,
0
,
200
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -943,8 +953,8 @@ public final class ApiFactory {
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
Pager
<
Vip
>>
getVipList
(
int
pageNumber
,
String
vipLevel
)
{
return
Api
.
getInstance
().
service
.
getVipList
(
vipLevel
,
pageNumber
,
12
)
public
static
Observable
<
Pager
<
Vip
>>
queryUserDetailByWD
(
String
keyword
,
int
pageNumber
)
{
return
Api
.
getInstance
().
service
.
queryDetailByWD
(
keyword
,
pageNumber
,
12
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
...
...
@@ -952,6 +962,25 @@ public final class ApiFactory {
.
retryWhen
(
new
RetryHelper
(
3
));
}
public
static
Observable
<
Pager
<
Vip
>>
getVipList
(
int
pageNumber
,
String
vipLevel
)
{
if
(
vipLevel
==
null
)
{
return
Api
.
getInstance
().
service
.
getAllVipList
(
pageNumber
,
12
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
retryWhen
(
new
RetryHelper
(
3
));
}
else
{
return
Api
.
getInstance
().
service
.
getVipList
(
vipLevel
,
pageNumber
,
12
)
.
onErrorReturn
(
new
ErrorFilter
<>())
.
map
(
new
ResultFilter
<>())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
retryWhen
(
new
RetryHelper
(
3
));
}
}
public
static
Observable
<
Vip
>
addVip
(
Vip
user
)
{
return
Api
.
getInstance
().
service
.
addVip
(
user
)
.
onErrorReturn
(
new
ErrorFilter
<>())
...
...
app/src/main/java/com/xingdata/zzdpos/api/ApiService.java
View file @
4f1e4bea
...
...
@@ -314,6 +314,8 @@ interface ApiService {
@POST
(
C
.
URL
.
TRULE
.
truleQuery
)
Observable
<
HttpMessage
<
Pager
<
Trule
>>>
truleQuery
(
@Query
(
"startDate"
)
String
data
);
@POST
(
C
.
URL
.
TRULE
.
truleQuery
)
Observable
<
HttpMessage
<
Pager
<
Trule
>>>
truleQueryByVipId
(
@Query
(
"vipId"
)
long
vipId
);
@POST
(
C
.
URL
.
TRULE
.
truleDetail
)
Observable
<
HttpMessage
<
String
>>
truleDetail
(
@Query
(
"id"
)
String
id
);
...
...
@@ -429,5 +431,9 @@ interface ApiService {
@Query
(
"pageNumber"
)
int
pageNumber
,
@Query
(
"pageSize"
)
int
pageSize
);
@POST
(
C
.
URL
.
VIP
.
query
)
Observable
<
HttpMessage
<
Pager
<
Vip
>>>
getAllVipList
(
@Query
(
"pageNumber"
)
int
pageNumber
,
@Query
(
"pageSize"
)
int
pageSize
);
}
app/src/main/java/com/xingdata/zzdpos/db/DBFactory.java
View file @
4f1e4bea
...
...
@@ -16,6 +16,7 @@ import com.xingdata.zzdpos.model.Ussku;
import
com.xingdata.zzdpos.ui.main.MainPresenter
;
import
com.xingdata.zzdpos.ui.settle.SettlePresenter
;
import
com.xingdata.zzdpos.ui.store.StorePresenter
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.util.StringUtil
;
import
java.text.SimpleDateFormat
;
...
...
@@ -167,7 +168,21 @@ public class DBFactory {
.
flatMap
(
ms
->
Observable
.
just
(
getList
(
ms
)));
}
}
public
static
class
Vip
{
/**
* 查询支付渠道
*
* @return 支付渠道
*/
public
static
Observable
<
List
<
Pay
>>
queryPays
()
{
RealmQuery
<
Pay
>
query
=
DB
.
getInstance
().
get
(
VipPresenter
.
class
).
where
(
Pay
.
class
);
query
.
equalTo
(
"payDispFlag"
,
1
);
return
Observable
.
just
(
query
.
findAllSorted
(
"payType"
,
Sort
.
ASCENDING
))
.
flatMap
(
pays
->
Observable
.
just
(
getList
(
pays
)));
}
}
public
static
class
Settle
{
/**
* 查询支付渠道
...
...
@@ -182,6 +197,8 @@ public class DBFactory {
.
flatMap
(
pays
->
Observable
.
just
(
getList
(
pays
)));
}
/**
* 查询营销活动
*
...
...
app/src/main/java/com/xingdata/zzdpos/model/VipRechangeOrder.java
0 → 100644
View file @
4f1e4bea
package
com
.
xingdata
.
zzdpos
.
model
;
import
com.xingdata.api.print.entity.BaseGoodPrint
;
import
com.xingdata.api.print.entity.BaseOrderPrint
;
import
com.xingdata.zzdpos.ui.login.LoginPresenter
;
import
com.xingdata.zzdpos.util.ConvertUtil
;
import
java.util.List
;
/**
* Created by Administrator on 2017/12/15.
*/
public
class
VipRechangeOrder
implements
BaseOrderPrint
{
private
Long
cardAmtPay
;
private
Long
cardAmtSend
;
private
Long
rechangeBefore
;
private
Long
rechangeAfter
;
private
String
vipName
;
private
String
rctraceNo
;
private
String
vipMobile
;
private
Long
createTime
;
public
Long
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Long
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Long
getCardAmtPay
()
{
return
cardAmtPay
;
}
public
void
setCardAmtPay
(
Long
cardAmtPay
)
{
this
.
cardAmtPay
=
cardAmtPay
;
}
public
Long
getCardAmtSend
()
{
return
cardAmtSend
;
}
public
void
setCardAmtSend
(
Long
cardAmtSend
)
{
this
.
cardAmtSend
=
cardAmtSend
;
}
public
String
getVipName
()
{
return
vipName
;
}
public
void
setVipName
(
String
vipName
)
{
this
.
vipName
=
vipName
;
}
public
String
getRctraceNo
()
{
return
rctraceNo
;
}
public
void
setRctraceNo
(
String
rctraceNo
)
{
this
.
rctraceNo
=
rctraceNo
;
}
public
String
getVipMobile
()
{
return
vipMobile
;
}
public
void
setVipMobile
(
String
vipMobile
)
{
this
.
vipMobile
=
vipMobile
;
}
public
Long
getRechangeBefore
()
{
return
rechangeBefore
;
}
public
void
setRechangeBefore
(
Long
rechangeBefore
)
{
this
.
rechangeBefore
=
rechangeBefore
;
}
public
Long
getRechangeAfter
()
{
return
rechangeAfter
;
}
public
void
setRechangeAfter
(
Long
rechangeAfter
)
{
this
.
rechangeAfter
=
rechangeAfter
;
}
public
String
getVipname
()
{
return
vipName
;
}
public
void
setVipname
(
String
vipname
)
{
this
.
vipName
=
vipname
;
}
@Override
public
String
getPayAmt
()
{
if
(
cardAmtSend
!=
null
&&
cardAmtSend
!=
0
){
return
ConvertUtil
.
fenToYuan
(
cardAmtPay
,
false
)+
"+"
+
ConvertUtil
.
fenToYuan
(
cardAmtSend
,
false
);
}
else
{
return
ConvertUtil
.
fenToYuan
(
cardAmtPay
,
false
);
}
}
@Override
public
String
getVip_money
()
{
return
ConvertUtil
.
fenToYuan
(
getRechangeAfter
(),
false
);
}
@Override
public
String
getBalanceOld
()
{
return
ConvertUtil
.
fenToYuan
(
getRechangeBefore
(),
false
);
}
@Override
public
String
getTitle
()
{
return
LoginPresenter
.
loginReturnBean
.
getMerNameAbcn
();
}
@Override
public
String
getStore
()
{
return
LoginPresenter
.
loginReturnBean
.
getShopNameAbcn
();
}
@Override
public
String
getOrderNo
()
{
return
rctraceNo
;
}
@Override
public
String
getOrderTime
()
{
return
com
.
blankj
.
utilcode
.
util
.
TimeUtils
.
millis2String
(
createTime
);
}
@Override
public
String
getCasherName
()
{
return
LoginPresenter
.
loginReturnBean
.
getOperName
();
}
@Override
public
String
getUserName
()
{
return
vipName
+
"("
+
vipMobile
.
substring
(
vipMobile
.
length
()-
4
)+
")"
;
}
@Override
public
String
getPayChannel
()
{
return
null
;
}
@Override
public
String
getPayChange
()
{
return
null
;
}
@Override
public
String
getGoodsCnt
()
{
return
null
;
}
@Override
public
String
getGoodsAmtSum
()
{
return
null
;
}
@Override
public
String
getGoodsReduPer
()
{
return
null
;
}
@Override
public
String
getGoodsReduAmt
()
{
return
null
;
}
@Override
public
List
<
BaseGoodPrint
>
getGoodList
()
{
return
null
;
}
@Override
public
String
getDRAW_URL
()
{
return
null
;
}
@Override
public
String
getPrint_state
()
{
return
null
;
}
@Override
public
String
getOper_mobile
()
{
return
null
;
}
@Override
public
String
getStore_tel
()
{
return
null
;
}
@Override
public
String
getSupplier
()
{
return
null
;
}
}
app/src/main/java/com/xingdata/zzdpos/ui/main/fragment/CasherFragment.java
View file @
4f1e4bea
package
com
.
xingdata
.
zzdpos
.
ui
.
main
.
fragment
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.v7.widget.GridLayoutManager
;
import
android.view.View
;
...
...
@@ -28,6 +29,8 @@ import java.util.List;
public
class
CasherFragment
extends
BaseFragment
<
MainPresenter
,
FragmentCasherBinding
>
{
private
MenuRecyclerAdapter
mMenuRecyclerAdapter
;
private
List
<
Integer
>
integers
;
private
Bundle
bundle
;
private
Intent
intent
;
@Override
public
int
getLayoutId
()
{
...
...
@@ -55,11 +58,20 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
public
void
onItemClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
switch
((
int
)
adapter
.
getData
().
get
(
position
))
{
case
C
.
MENU
.
MENU_VIP
:
//会员
ActivityUtils
.
startActivity
(
new
Intent
(
getActivity
(),
VipActivity
.
class
));
bundle
=
new
Bundle
();
intent
=
new
Intent
(
getActivity
(),
VipActivity
.
class
);
bundle
.
putInt
(
"vipState"
,
0
);
intent
.
putExtras
(
bundle
);
ActivityUtils
.
startActivity
(
intent
);
break
;
case
C
.
MENU
.
MENU_RECHARGE
:
//充值
bundle
=
new
Bundle
();
intent
=
new
Intent
(
getActivity
(),
VipActivity
.
class
);
bundle
.
putInt
(
"vipState"
,
1
);
intent
.
putExtras
(
bundle
);
ActivityUtils
.
startActivity
(
intent
);
break
;
case
C
.
MENU
.
MENU_MS
:
//营销
ActivityUtils
.
startActivity
(
new
Intent
(
getActivity
(),
...
...
app/src/main/java/com/xingdata/zzdpos/ui/settle/fragment/SettleFragment.java
View file @
4f1e4bea
...
...
@@ -213,11 +213,10 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* 加载支付方式
*/
public
void
loadPays
(
List
<
Pay
>
pays
)
{
for
(
int
i
=
0
;
i
<
pays
.
size
();
i
++)
{
pays
.
get
(
i
).
init
();
}
mPays
.
addAll
(
pays
);
mPayAdapter
.
setNewData
(
getAvlPays
(
Vip
.
createDefault
()));
// for (int i = 0; i < pays.size(); i++) {
// pays.get(i).init();
// }
mPayAdapter
.
setNewData
(
pays
);
}
...
...
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipActivity.java
View file @
4f1e4bea
package
com
.
xingdata
.
zzdpos
.
ui
.
vip
;
import
android.os.Bundle
;
import
android.view.View
;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseActivity
;
import
com.xingdata.zzdpos.databinding.ActivityVipBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.Pay
;
import
com.xingdata.zzdpos.model.Saleorder
;
import
com.xingdata.zzdpos.model.Sta
;
import
com.xingdata.zzdpos.model.Ticket
;
import
com.xingdata.zzdpos.model.Trule
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.model.VipRechargeOrder
;
import
com.xingdata.zzdpos.ui.dialog.PromptDialog
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipListFragment
;
import
com.xingdata.zzdpos.view.ViewTools
;
import
java.util.List
;
public
class
VipActivity
extends
BaseActivity
<
VipPresenter
,
ActivityVipBinding
>
implements
VipContract
.
View
{
private
Bundle
mBundle
;
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
activity_vip
;
}
@Override
public
void
initView
()
{
mBundle
=
getIntent
().
getExtras
();
mPresenter
.
vipListFragment
.
setVipState
(
mBundle
.
getInt
(
"vipState"
));
loadRootFragment
(
R
.
id
.
vip_frame
,
mPresenter
.
vipListFragment
,
true
,
false
);
}
...
...
@@ -50,12 +61,46 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
@Override
public
void
getRechargeOrderSus
(
Pager
<
VipRechargeOrder
>
rechargeOrderPager
)
{
mPresenter
.
vipRechargeListFragment
.
getRechargeOrderSus
(
rechargeOrderPager
);
mPresenter
.
vipRechargeListFragment
.
getRechargeOrderSus
(
rechargeOrderPager
);
}
@Override
public
void
getTruleSus
(
Pager
<
Trule
>
trulePager
)
{
mPresenter
.
vipMscardListFragment
.
getTruleSus
(
trulePager
);
}
@Override
public
void
searchVipSus
(
Pager
<
Vip
>
vips
)
{
mPresenter
.
vipSearchFragment
.
searchVipSus
(
vips
);
}
@Override
public
void
getMscardSus
(
Pager
<
Mscard
>
mscardPager
)
{
mPresenter
.
vipMscardListFragment
.
getMscardSus
(
mscardPager
);
mPresenter
.
vipRechargeFragment
.
getMscardSus
(
mscardPager
);
}
@Override
public
void
loadPays
(
List
<
Pay
>
pays
)
{
mPresenter
.
vipRechargeFragment
.
loadPays
(
pays
);
}
@Override
public
void
rechangeSus
(
Vip
v
)
{
ViewTools
.
toastSuss
(
this
,
"充值成功"
);
mPresenter
.
vipRechargeFragment
.
pop
();
mPresenter
.
vipListFragment
.
onRefresh
();
}
@Override
public
void
rechangeErr
(
Vip
vip
,
Long
amtPay
,
Long
amtSend
,
String
mes
)
{
PromptDialog
promptDialog
=
new
PromptDialog
();
promptDialog
.
setDialogType
(
PromptDialog
.
PROMPTDIALOG_ERROR
,
"支付失败"
).
setCustomButton
(
"重新支付"
,
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
mPresenter
.
fullVip
(
vip
,
amtPay
,
amtSend
);
promptDialog
.
dismiss
();
}
}).
show
(
this
);
}
@Override
...
...
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipContract.java
View file @
4f1e4bea
...
...
@@ -5,9 +5,11 @@ import com.xingdata.zzdpos.base.BaseView;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.Pay
;
import
com.xingdata.zzdpos.model.Saleorder
;
import
com.xingdata.zzdpos.model.Sta
;
import
com.xingdata.zzdpos.model.Ticket
;
import
com.xingdata.zzdpos.model.Trule
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.model.VipRechargeOrder
;
...
...
@@ -32,9 +34,14 @@ public interface VipContract {
void
getSaleorderSus
(
Pager
<
Saleorder
>
saleorderPager
);
void
getRechargeOrderSus
(
Pager
<
VipRechargeOrder
>
rechargeOrderPager
);
void
getMscardSus
(
Pager
<
Mscard
>
rechargeOrderPager
);
void
getTruleSus
(
Pager
<
Trule
>
trulePager
);
void
searchVipSus
(
Pager
<
Vip
>
vips
);
void
getMscardSus
(
Pager
<
Mscard
>
mscardPager
);
void
loadPays
(
List
<
Pay
>
pays
);
void
rechangeSus
(
Vip
v
);
void
rechangeErr
(
Vip
v
,
Long
amtPay
,
Long
amtSend
,
String
mes
);
}
...
...
@@ -54,6 +61,12 @@ public interface VipContract {
public
abstract
void
rechargeorderQuery
(
Long
vipID
,
int
number
);
public
abstract
void
mscardQuery
(
Long
vipID
);
public
abstract
void
truleQuery
(
Long
vipID
);
public
abstract
void
searchVip
(
String
keyword
);
public
abstract
void
getMscardList
(
long
vipID
);
public
abstract
void
initSettle
();
public
abstract
void
fullVip
(
Vip
vipOld
,
Long
amtPay
,
Long
amtSend
);
}
}
\ No newline at end of file
app/src/main/java/com/xingdata/zzdpos/ui/vip/VipPresenter.java
View file @
4f1e4bea
package
com
.
xingdata
.
zzdpos
.
ui
.
vip
;
import
android.annotation.SuppressLint
;
import
android.content.Context
;
import
android.view.Gravity
;
import
android.widget.RadioButton
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.xingdata.api.print.ZX_PrintPOS
;
import
com.xingdata.zzdpos.App
;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.api.ApiFactory
;
import
com.xingdata.zzdpos.db.DBFactory
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment
;
import
com.xingdata.zzdpos.model.VipRechangeOrder
;
import
com.xingdata.zzdpos.model.VipRechargeOrder
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipRechargeFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipSearchFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipTruleListFragment
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
VipPresenter
extends
VipContract
.
Presenter
{
public
VipListFragment
vipListFragment
=
new
VipListFragment
();
...
...
@@ -17,10 +34,14 @@ public class VipPresenter extends VipContract.Presenter {
public
VipInfoFragment
vipInfoFragment
=
new
VipInfoFragment
();
public
VipExpenseListFragment
vipExpenseListFragment
=
new
VipExpenseListFragment
();
public
VipRechargeListFragment
vipRechargeListFragment
=
new
VipRechargeListFragment
();
public
VipMscardListFragment
vipMscardListFragment
=
new
VipMscardListFragment
();
public
VipTruleListFragment
vipMscardListFragment
=
new
VipTruleListFragment
();
public
VipSearchFragment
vipSearchFragment
=
new
VipSearchFragment
();
public
VipRechargeFragment
vipRechargeFragment
=
new
VipRechargeFragment
();
public
int
inVipState
=
0
;
//1 充值
@Override
public
void
onAttached
()
{
this
.
initRealm
();
}
...
...
@@ -92,7 +113,7 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public
void
rechargeorderQuery
(
Long
vipID
,
int
number
)
{
public
void
rechargeorderQuery
(
Long
vipID
,
int
number
)
{
ApiFactory
.
Rctrace
.
queryRecharge
(
vipID
,
number
,
10
).
subscribe
(
rechargeOrderPager
->
{
mView
.
getRechargeOrderSus
(
rechargeOrderPager
);
},
throwable
->
{
...
...
@@ -102,16 +123,95 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public
void
mscard
Query
(
Long
vipID
)
{
ApiFactory
.
MsCard
.
mscardQuery
(
vipID
).
subscribe
(
mscard
Pager
->
{
mView
.
get
MscardSus
(
mscard
Pager
);
public
void
trule
Query
(
Long
vipID
)
{
ApiFactory
.
TRULE
.
truleQueryByVipId
(
vipID
).
subscribe
(
trule
Pager
->
{
mView
.
get
TruleSus
(
trule
Pager
);
},
throwable
->
{
ToastUtils
.
showShort
(
throwable
.
getMessage
());
});
}
@Override
public
void
searchVip
(
String
keyword
)
{
ApiFactory
.
User
.
queryUserDetailByWD
(
keyword
).
subscribe
(
vipPager
->
{
mView
.
searchVipSus
(
vipPager
);
},
throwable
->
{
ToastUtils
.
showShort
(
throwable
.
getMessage
());
});
}
@Override
public
void
getMscardList
(
long
vipID
)
{
ApiFactory
.
MsCard
.
mscardQuery
(
vipID
).
subscribe
(
mscardPager
->
{
mView
.
getMscardSus
(
mscardPager
);
},
throwable
->
{
ToastUtils
.
showShort
(
throwable
.
getMessage
());
});
}
@SuppressLint
(
"ResourceType"
)
public
RadioButton
addRadioButton
(
Context
mContext
,
Mscard
mscard
)
{
RadioButton
radioButton
=
new
RadioButton
(
mContext
);
// ArrayList<RadioButton> radioButtons = new ArrayList<>();
radioButton
.
setTextSize
(
18
);
radioButton
.
setHeight
(
168
);
radioButton
.
setTag
(
mscard
.
getCruleGradeNo
());
radioButton
.
setText
(
"充:"
+
mscard
.
getCruleChargeAmt
()
/
100
);
radioButton
.
setButtonDrawable
(
null
);
radioButton
.
setGravity
(
Gravity
.
CENTER
);
radioButton
.
getPaint
().
setFakeBoldText
(
true
);
radioButton
.
setBackgroundResource
(
R
.
drawable
.
selector_paymoney_radiobutton_bg
);
radioButton
.
setTextColor
(
mContext
.
getResources
().
getColorStateList
(
R
.
drawable
.
selector_paymoney_textcolor_bg
));
return
radioButton
;
}
public
Mscard
getMaxRechange
(
List
<
Mscard
>
realm
,
Long
rechangeMoney
)
{
Mscard
mMscard
=
null
;
ArrayList
<
String
>
strings
=
new
ArrayList
<>();
long
rechangeM
=
0
;
for
(
Mscard
mscard
:
realm
)
{
if
(
rechangeMoney
>=
mscard
.
getCruleChargeAmt
())
{
rechangeM
=
mscard
.
getCruleChargeAmt
();
mMscard
=
mscard
;
}
}
return
mMscard
;
}
@Override
public
void
initSettle
()
{
// Realm.getInstance(App.instance.mRealmConfig).
DBFactory
.
Vip
.
queryPays
().
subscribe
(
pays
->
mView
.
loadPays
(
pays
),
throwable
->
{
}
);
// mView.setSettleFragmentBySettleMode(mSettleMode);
}
@Override
public
void
fullVip
(
Vip
vipOld
,
Long
amtPay
,
Long
amtSend
)
{
ApiFactory
.
Recard
.
fullVip
(
vipOld
.
getVipId
(),
amtPay
,
amtSend
).
subscribe
(
vip
->
{
VipRechargeOrder
mVipRechangeOrdervip
=
vip
.
getRctrace
();
mVipRechangeOrdervip
.
setCreateTime
(
vip
.
getUpdateTime
());
mVipRechangeOrdervip
.
setRechangeBefore
(
vipOld
.
getAcctCbal
());
mVipRechangeOrdervip
.
setRechangeAfter
(
vip
.
getAcctCbal
());
try
{
ZX_PrintPOS
.
getInstance
(
App
.
instance
).
printSave
(
1
,
mVipRechangeOrdervip
);
}
catch
(
Exception
e
){
ToastUtils
.
showShort
(
"打印异常"
);
}
mView
.
rechangeSus
(
vip
);
},
throwable
->
{
mView
.
rechangeErr
(
vipOld
,
amtPay
,
amtSend
,
throwable
.
getMessage
());
});
}
}
app/src/main/java/com/xingdata/zzdpos/ui/vip/adapter/Vip
Mscard
Adapter.java
→
app/src/main/java/com/xingdata/zzdpos/ui/vip/adapter/Vip
Trule
Adapter.java
View file @
4f1e4bea
...
...
@@ -3,14 +3,10 @@ package com.xingdata.zzdpos.ui.vip.adapter;
import
android.content.Context
;
import
android.support.annotation.Nullable
;
import
com.xingdata.zzdpos.C
;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseAdapter
;
import
com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Saleorder
;
import
com.xingdata.zzdpos.model.VipRechargeOrder
;
import
com.xingdata.zzdpos.ui.login.LoginPresenter
;
import
com.xingdata.zzdpos.databinding.ItemVipMscardItemBinding
;
import
com.xingdata.zzdpos.model.Trule
;
import
com.xingdata.zzdpos.util.ConvertUtil
;
import
com.xingdata.zzdpos.util.StringUtil
;
...
...
@@ -21,18 +17,30 @@ import java.util.List;
* Created by JM_DEV on 2017/12/25.
*/
public
class
Vip
MscardAdapter
extends
BaseAdapter
<
Mscard
,
ItemVipExpense
ItemBinding
>
{
public
class
Vip
TruleAdapter
extends
BaseAdapter
<
Trule
,
ItemVipMscard
ItemBinding
>
{
private
Context
mContext
;
private
String
shopName
;
public
Vip
MscardAdapter
(
Context
mContext
,
@Nullable
List
<
Mscard
>
data
)
{
super
(
R
.
layout
.
item_vip_
expense
_item
,
data
);
public
Vip
TruleAdapter
(
Context
mContext
,
@Nullable
List
<
Trule
>
data
)
{
super
(
R
.
layout
.
item_vip_
mscard
_item
,
data
);
this
.
mContext
=
mContext
;
}
@Override
protected
void
convert
(
ItemVipExpenseItemBinding
mViewBinding
,
Mscard
item
)
{
protected
void
convert
(
ItemVipMscardItemBinding
mViewBinding
,
Trule
item
)
{
mViewBinding
.
truleName
.
setText
(
item
.
getTruleName
());
mViewBinding
.
truleMoney
.
setText
(
ConvertUtil
.
fenToYuanNoZero
(
item
.
getTruleValAmt
()));
mViewBinding
.
truleValidity
.
setText
(
mContext
.
getString
(
R
.
string
.
vip_mscard_period_of_validity
,
StringUtil
.
format
(
new
Date
(
item
.
getTruleExp
()),
"yyyy.MM.dd"
),
StringUtil
.
format
(
new
Date
(
item
.
getTruleExp
()),
"yyyy.MM.dd"
)));
mViewBinding
.
truleCondition
.
setText
(
ConvertUtil
.
fenToYuanNoPoint
(
item
.
getTruleOrderAmt
()));
if
(
item
.
getTruleStatus
().
toString
().
equals
(
"0"
))
{
mViewBinding
.
truleBgLeft
.
setBackgroundResource
(
R
.
mipmap
.
return_ticket_one
);
mViewBinding
.
truleBgRight
.
setBackgroundResource
(
R
.
mipmap
.
return_ticket_two
);
}
else
{
mViewBinding
.
truleBgLeft
.
setBackgroundResource
(
R
.
mipmap
.
bg_return_ticket03
);
mViewBinding
.
truleBgRight
.
setBackgroundResource
(
R
.
mipmap
.
bg_return_ticket04
);
}
// mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
// mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
// //设置支付方式
...
...
app/src/main/java/com/xingdata/zzdpos/ui/vip/dialog/VipEditMenuDialog.java
View file @
4f1e4bea
...
...
@@ -4,14 +4,11 @@ import com.xingdata.zzdpos.R;
import
com.xingdata.zzdpos.base.BaseActivity
;
import
com.xingdata.zzdpos.base.BaseSheetDialog
;
import
com.xingdata.zzdpos.databinding.DialogVipMenuBinding
;
import
com.xingdata.zzdpos.databinding.FragmentVipInfoBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.vip.VipContract
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.Vip
Mscard
ListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.Vip
Trule
ListFragment
;
import
com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment
;
import
java.util.List
;
...
...
@@ -49,7 +46,7 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
break
;
//優惠券詳情
case
R
.
id
.
voucherDetails
:
mPresenter
.
vipMscardListFragment
=
new
Vip
Mscard
ListFragment
();
mPresenter
.
vipMscardListFragment
=
new
Vip
Trule
ListFragment
();
mPresenter
.
vipMscardListFragment
.
setVip
(
mVip
);
((
BaseActivity
)
getActivity
()).
start
(
mPresenter
.
vipMscardListFragment
);
break
;
...
...
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipListFragment.java
View file @
4f1e4bea
...
...
@@ -24,6 +24,7 @@ import com.xingdata.zzdpos.model.Sta;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter
;
import
com.xingdata.zzdpos.util.ConvertUtil
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -37,6 +38,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
private
List
<
Level
>
levels
=
null
;
private
int
pageNumber
=
0
;
private
String
strVipLevle
;
private
int
vipState
=
0
;
//0 会员 1 充值
@Override
public
int
getLayoutId
()
{
...
...
@@ -48,6 +50,11 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
vipListAdapter
=
new
VipListAdapter
(
getActivity
(),
vips
);
mViewBinding
.
vipRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getActivity
()));
mViewBinding
.
vipRecyclerView
.
setAdapter
(
vipListAdapter
);
if
(
vipState
!=
0
)
{
mViewBinding
.
vipCountAddTodayTitle
.
setText
(
"充值金额"
);
mViewBinding
.
vipCountTitle
.
setText
(
"今日充值"
);
mViewBinding
.
addVipLinearLayout
.
setVisibility
(
View
.
GONE
);
}
mViewBinding
.
vipRefresh
.
setOnRefreshListener
(
this
::
onRefresh
);
vipListAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
toStartVipInfo
(
vipListAdapter
.
getData
().
get
(
position
));
...
...
@@ -66,12 +73,15 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
break
;
}
});
// mViewBinding.titleSearch.serchEditText.setOnFocusChangeListener((View view, boolean b) -> {
// if (b){
// VipSearchFragment vipSearchFragment = new VipSearchFragment();
// vipSearchFragment.setBaseFragment(new VipInfoFragment());
// }
// });
mViewBinding
.
titleSearch
.
serchEditText
.
setOnClickListener
(
view
->
{
mPresenter
.
vipSearchFragment
.
setLevel
(
levels
);
if
(
vipState
==
0
){
mPresenter
.
vipSearchFragment
.
setBaseFragment
(
mPresenter
.
vipInfoFragment
);
}
else
{
mPresenter
.
vipSearchFragment
.
setBaseFragment
(
mPresenter
.
vipRechargeFragment
);
}
start
(
mPresenter
.
vipSearchFragment
);
});
mPresenter
.
getVipLevel
(
0
,
200
);
mPresenter
.
getVipNumber
();
}
...
...
@@ -86,7 +96,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
RadioButton
radioButton
=
((
RadioButton
)
mViewBinding
.
vipLevelR
.
findViewById
(
buttonID
));
if
(
radioButton
.
isChecked
())
{
strVipLevle
=
radioButton
.
getTag
().
toString
();
strVipLevle
=
radioButton
.
getTag
()
==
null
?
null
:
radioButton
.
getTag
()
.
toString
();
radioButton
.
getPaint
().
setFakeBoldText
(
true
);
radioButton
.
setTextSize
(
17
);
vipListAdapter
.
setEnableLoadMore
(
true
);
...
...
@@ -114,8 +124,9 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public
void
getVipLevelSus
(
Pager
<
Level
>
levelPager
)
{
LinearLayout
.
LayoutParams
layoutParams
=
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
,
LinearLayout
.
LayoutParams
.
MATCH_PARENT
);
layoutParams
.
height
=
120
;
layoutParams
.
width
=
LinearLayout
.
LayoutParams
.
MATCH_PARENT
;
Level
allLevel
=
new
Level
();
allLevel
.
setVipLevelName
(
"全部会员"
);
mViewBinding
.
vipLevelR
.
addView
(
addRadioButton
(
layoutParams
,
allLevel
));
for
(
int
i
=
0
;
i
<
levelPager
.
getPageSize
();
i
++)
{
mViewBinding
.
vipLevelR
.
addView
(
addRadioButton
(
layoutParams
,
levelPager
.
getList
().
get
(
i
)));
}
...
...
@@ -129,7 +140,8 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
});
if
(
levelPager
.
getList
().
size
()
!=
0
)
{
((
RadioButton
)
mViewBinding
.
vipLevelR
.
getChildAt
(
0
)).
setChecked
(
true
);
mPresenter
.
getVipList
(
0
,
mViewBinding
.
vipLevelR
.
getChildAt
(
0
).
getTag
().
toString
());
//如果是空查询全部会员
// mPresenter.getVipList(0,mViewBinding.vipLevelR.getChildAt(0).getTag()== null ? null : mViewBinding.vipLevelR.getChildAt(0).getTag().toString());
}
levels
=
levelPager
.
getList
();
...
...
@@ -139,7 +151,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
mPresenter
.
getVipList
(
pageNumber
,
strVipLevle
);
}
p
rivate
void
onRefresh
()
{
p
ublic
void
onRefresh
()
{
pageNumber
=
0
;
mPresenter
.
getVipList
(
pageNumber
,
strVipLevle
);
mPresenter
.
getVipNumber
();
...
...
@@ -165,15 +177,21 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public
void
toStartVipInfo
(
Vip
vip
)
{
mPresenter
.
vipRechargeFragment
.
setVip
(
vip
);
if
(
vip
!=
null
)
{
mPresenter
.
vipInfoFragment
.
setVip
(
vip
);
mPresenter
.
vipInfoFragment
.
setLevel
(
levels
);
((
BaseActivity
)
getActivity
()).
start
(
mPresenter
.
vipInfoFragment
);
if
(
vipState
==
0
){
mPresenter
.
vipInfoFragment
.
setVip
(
vip
);
mPresenter
.
vipInfoFragment
.
setLevel
(
levels
);
((
BaseActivity
)
getActivity
()).
start
(
mPresenter
.
vipInfoFragment
);
}
else
{
((
BaseActivity
)
getActivity
()).
start
(
mPresenter
.
vipRechargeFragment
);
}
}
else
{
mPresenter
.
vipInfoEditFragment
.
setVipLevel
(
levels
);
((
BaseActivity
)
getActivity
()).
start
(
mPresenter
.
vipInfoEditFragment
);
}
}
public
void
addVipSus
(
Vip
vip
)
{
...
...
@@ -183,7 +201,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
* @param sta
*/
public
void
getVipNumberSus
(
Sta
sta
)
{
mViewBinding
.
vipCount
.
setText
(
sta
.
getVipCount
()
+
""
);
mViewBinding
.
vipCountAddToday
.
setText
(
sta
.
getVipAddCount
()
+
""
);
if
(
vipState
!=
0
){
mViewBinding
.
vipCount
.
setText
(
sta
.
getCardCount
()+
""
);
mViewBinding
.
vipCountAddToday
.
setText
(
"¥"
+
ConvertUtil
.
fenToYuan2
(
sta
.
getCardAmt
()));
}
else
{
mViewBinding
.
vipCount
.
setText
(
sta
.
getVipCount
()
+
""
);
mViewBinding
.
vipCountAddToday
.
setText
(
sta
.
getVipAddCount
()
+
""
);
}
}
public
void
setVipState
(
int
vipState
)
{
this
.
vipState
=
vipState
;
}
}
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRechargeFragment.java
0 → 100644
View file @
4f1e4bea
package
com
.
xingdata
.
zzdpos
.
ui
.
vip
.
fragment
;
/**
* Created by JM_DEV on 2017/12/21.
*/
import
android.annotation.SuppressLint
;
import
android.support.v7.widget.StaggeredGridLayoutManager
;
import
android.text.Editable
;
import
android.text.SpannableString
;
import
android.text.Spanned
;
import
android.text.SpannedString
;
import
android.text.TextWatcher
;
import
android.text.style.AbsoluteSizeSpan
;
import
android.widget.LinearLayout
;
import
android.widget.RadioButton
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.xingdata.zzdpos.C
;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseFragment
;
import
com.xingdata.zzdpos.databinding.FragmentVipRechargeBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.Pay
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.settle.adapter.PayAdapter
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.util.ConvertUtil
;
import
com.xingdata.zzdpos.util.RecyclerViewUtil
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* 会员充值界面
*/
@SuppressLint
(
"ValidFragment"
)
public
class
VipRechargeFragment
extends
BaseFragment
<
VipPresenter
,
FragmentVipRechargeBinding
>
{
private
List
<
Level
>
levels
;
private
List
<
Mscard
>
mscards
=
new
ArrayList
<>();
private
LinearLayout
.
LayoutParams
layoutParams
=
null
;
private
HashMap
<
String
,
Mscard
>
mscardHashMap
=
new
HashMap
<>();
private
PayAdapter
mPayAdapter
;
private
List
<
Pay
>
mPays
=
new
ArrayList
<>();
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
fragment_vip_recharge
;
}
private
Vip
mVip
;
@Override
public
void
initView
()
{
mViewBinding
.
vipMobile
.
setText
(
String
.
valueOf
(
mVip
.
getVipMobile
()));
mViewBinding
.
vipName
.
setText
(
String
.
valueOf
(
mVip
.
getVipName
()));
mViewBinding
.
infoTitle
.
tvTitle
.
setText
(
"充值"
);
mViewBinding
.
vipBalance
.
setText
(
getString
(
R
.
string
.
vip_balance_text
,
ConvertUtil
.
fenToYuan2
(
mVip
.
getAcctCbal
())));
mViewBinding
.
infoTitle
.
ivBack
.
setOnClickListener
(
view
->
{
pop
();
});
mPresenter
.
getMscardList
(
mVip
.
getVipId
());
mPayAdapter
=
new
PayAdapter
();
mViewBinding
.
rlPay
.
setAdapter
(
mPayAdapter
);
mViewBinding
.
rlPay
.
setLayoutManager
(
new
StaggeredGridLayoutManager
(
3
,
StaggeredGridLayoutManager
.
VERTICAL
));
mViewBinding
.
rlPay
.
addItemDecoration
(
new
RecyclerViewUtil
.
GridSpacingItemDecoration
(
3
,
24
,
true
));
mPayAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(
mViewBinding
.
rechargAMT
.
getText
()
==
null
||
ConvertUtil
.
yuanToFen
(
mViewBinding
.
rechargAMT
.
getText
().
toString
().
trim
())
<=
0
)
{
ToastUtils
.
showShort
(
"请选择充值金额"
);
return
;
}
mPresenter
.
fullVip
(
mVip
,
ConvertUtil
.
yuanToFen
(
mViewBinding
.
rechargAMT
.
getText
().
toString
()),
ConvertUtil
.
yuanToFen
(
mViewBinding
.
sendAmt
.
getText
().
toString
()));
});
mViewBinding
.
setOnCheckedChangeListener
((
radioGroup
,
i
)
->
{
if
(
radioGroup
.
getCheckedRadioButtonId
()
!=
-
1
)
{
RadioButton
radioButton
=
radioGroup
.
findViewById
(
radioGroup
.
getCheckedRadioButtonId
());
Mscard
mscard
=
mscardHashMap
.
get
(
radioButton
.
getTag
().
toString
());
setMoney
(
ConvertUtil
.
fenToYuan2
(
mscard
.
getCruleChargeAmt
()),
ConvertUtil
.
fenToYuan2
(
mscard
.
getCruleSendAmt
()));
mViewBinding
.
stealMoney
.
setText
(
""
);
}
});
mPresenter
.
initSettle
();
}
@Override
public
boolean
onBackPressedSupport
()
{
pop
();
return
true
;
}
public
void
setVipLevel
(
List
<
Level
>
levels
)
{
this
.
levels
=
levels
;
}
public
void
setVip
(
Vip
mVip
)
{
this
.
mVip
=
mVip
;
}
@SuppressLint
(
"ResourceAsColor"
)
public
void
getMscardSus
(
Pager
<
Mscard
>
mscardPager
)
{
mscards
.
clear
();
mscards
.
addAll
(
mscardPager
.
getList
());
layoutParams
=
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
WRAP_CONTENT
,
LinearLayout
.
LayoutParams
.
WRAP_CONTENT
,
1
);
layoutParams
.
setMargins
(
0
,
0
,
20
,
0
);
int
mscardLength
=
0
;
if
(
mscards
.
size
()
<=
3
)
{
mscardLength
=
mscards
.
size
();
}
else
{
mscardLength
=
3
;
}
for
(
int
i
=
0
;
i
<
mscardLength
;
i
++)
{
Mscard
mscard
=
mscards
.
get
(
i
);
mscardHashMap
.
put
(
mscard
.
getCruleGradeNo
().
toString
(),
mscard
);
RadioButton
radioButton
=
mPresenter
.
addRadioButton
(
mContext
,
mscard
);
radioButton
.
setLayoutParams
(
layoutParams
);
mViewBinding
.
payMoneyLayout
.
addView
(
radioButton
);
}
String
hintStr
=
"自定义金额"
;
SpannableString
ss
=
new
SpannableString
(
hintStr
);
AbsoluteSizeSpan
ass
=
new
AbsoluteSizeSpan
(
8
,
true
);
mViewBinding
.
stealMoney
.
setHintTextColor
(
R
.
color
.
black_likui
);
ss
.
setSpan
(
ass
,
0
,
ss
.
length
(),
Spanned
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
mViewBinding
.
stealMoney
.
setHint
(
new
SpannedString
(
ss
));
mViewBinding
.
stealMoney
.
setOnFocusChangeListener
((
mView1
,
b
)
->
{
//如果点击输入框按钮都清空点击事件
if
(
b
)
{
mViewBinding
.
payMoneyLayout
.
clearCheck
();
setMoney
(
"0"
,
"0"
);
}
});
//输入监听
mViewBinding
.
stealMoney
.
addTextChangedListener
(
new
TextWatcher
()
{
@Override
public
void
beforeTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
}
@Override
public
void
onTextChanged
(
CharSequence
charSequence
,
int
i
,
int
i1
,
int
i2
)
{
}
@Override
public
void
afterTextChanged
(
Editable
editable
)
{
if
(
mViewBinding
.
stealMoney
.
getText
().
length
()
==
0
)
return
;
Mscard
mscard
=
mPresenter
.
getMaxRechange
(
mscards
,
ConvertUtil
.
yuanToFen
(
mViewBinding
.
stealMoney
.
getText
().
toString
()));
String
strSend
=
"0"
;
if
(
mscard
==
null
)
{
strSend
=
"0"
;
}
else
{
strSend
=
ConvertUtil
.
fenToYuan2
(
mscard
.
getCruleSendAmt
());
}
setMoney
(
mViewBinding
.
stealMoney
.
getText
().
toString
(),
strSend
);
}
});
}
/**
* 设置左边金额
*
* @param rechangeMoney
* @param sendMoney
*/
private
void
setMoney
(
String
rechangeMoney
,
String
sendMoney
)
{
mViewBinding
.
sendAmt
.
setText
(
sendMoney
);
mViewBinding
.
rechargAMT
.
setText
(
rechangeMoney
);
// mViewBinding.rechangeMoney.setText(rechangeMoney);
mViewBinding
.
recargeAccount
.
setText
(
ConvertUtil
.
fenToYuan2
(
ConvertUtil
.
yuanToFen
(
sendMoney
)
+
ConvertUtil
.
yuanToFen
(
rechangeMoney
)));
}
/**
* 加载支付方式
*/
public
void
loadPays
(
List
<
Pay
>
pays
)
{
for
(
int
i
=
0
;
i
<
pays
.
size
();
i
++)
{
pays
.
get
(
i
).
init
();
}
mPays
.
clear
();
mPays
.
addAll
(
pays
);
mPayAdapter
.
setNewData
(
getAvlPays
(
Vip
.
createDefault
()));
}
List
<
Pay
>
getAvlPays
(
Vip
vip
)
{
List
<
Pay
>
_pays
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
mPays
.
size
();
i
++)
{
if
(!
mPays
.
get
(
i
).
isNeedVip
()
||
(!
vip
.
isDefaultVip
()
&&
(
mPays
.
get
(
i
).
getPayType
()
!=
C
.
PAY_CHANNEL
.
CARD
)))
_pays
.
add
(
mPays
.
get
(
i
));
}
return
_pays
;
}
}
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRechargeListFragment.java
View file @
4f1e4bea
...
...
@@ -7,6 +7,8 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import
android.annotation.SuppressLint
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.LinearLayout
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.xingdata.zzdpos.R
;
...
...
@@ -14,6 +16,7 @@ import com.xingdata.zzdpos.base.BaseActivity;
import
com.xingdata.zzdpos.base.BaseFragment
;
import
com.xingdata.zzdpos.databinding.FragmentVipRechargeListBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.model.VipRechargeOrder
;
...
...
@@ -23,6 +26,7 @@ import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import
com.xingdata.zzdpos.util.ConvertUtil
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
/**
...
...
@@ -34,6 +38,11 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
private
List
<
VipRechargeOrder
>
orders
=
new
ArrayList
<>();
private
int
pageNumber
=
0
;
private
List
<
Level
>
levels
;
private
LinearLayout
.
LayoutParams
layoutParams
=
null
;
private
HashMap
<
String
,
Mscard
>
mscardHashMap
=
new
HashMap
<>();
private
ArrayList
<
Mscard
>
mscards
=
new
ArrayList
<>();
private
ArrayList
<
String
>
strLevels
=
new
ArrayList
<>();
private
EditText
serchEditText
;
@Override
...
...
@@ -71,7 +80,7 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
vipRechargeAdapter
.
setEnableLoadMore
(
false
);
}
p
rivate
void
onRefresh
()
{
p
ublic
void
onRefresh
()
{
pageNumber
=
0
;
mPresenter
.
rechargeorderQuery
(
mVip
.
getVipId
(),
pageNumber
);
}
...
...
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipRecordFragment.java
deleted
100644 → 0
View file @
52c619d5
package
com
.
xingdata
.
zzdpos
.
ui
.
vip
.
fragment
;
/**
* Created by JM_DEV on 2017/12/21.
*/
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseFragment
;
import
com.xingdata.zzdpos.databinding.FragmentViplevelTitleBinding
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
/**
* 会员消费充值记录
*/
public
class
VipRecordFragment
extends
BaseFragment
<
VipPresenter
,
FragmentViplevelTitleBinding
>
{
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
fragment_viplevel_title
;
}
@Override
public
void
initView
()
{
}
}
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/VipSearchFragment.java
View file @
4f1e4bea
...
...
@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import
android.annotation.SuppressLint
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.TextView
;
import
com.blankj.utilcode.util.KeyboardUtils
;
...
...
@@ -10,10 +11,14 @@ import com.xingdata.zzdpos.C;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseFragment
;
import
com.xingdata.zzdpos.databinding.FragmentSendTickerVipBinding
;
import
com.xingdata.zzdpos.databinding.FragmentVipSerchBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter
;
import
com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter
;
import
com.xingdata.zzdpos.ui.settle.SettleActivity
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.util.OnClickListener
;
import
java.util.List
;
...
...
@@ -22,9 +27,10 @@ import java.util.List;
/**
* 会员搜索界面
*/
public
class
VipSearchFragment
extends
BaseFragment
<
SendTicketPresenter
,
FragmentSendTickerVip
Binding
>
{
public
class
VipSearchFragment
extends
BaseFragment
<
VipPresenter
,
FragmentVipSerch
Binding
>
{
private
VipAdapter
mVipAdapter
;
private
BaseFragment
baseFragment
;
private
List
<
Level
>
level
;
public
void
setBaseFragment
(
BaseFragment
baseFragment
)
{
this
.
baseFragment
=
baseFragment
;
...
...
@@ -32,7 +38,7 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
@Override
public
int
getLayoutId
()
{
return
R
.
layout
.
fragment_
send_ticker_vip
;
return
R
.
layout
.
fragment_
vip_serch
;
}
@Override
...
...
@@ -46,9 +52,10 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
((
TextView
)
emptyView
.
findViewById
(
R
.
id
.
tv_empty
)).
setText
(
R
.
string
.
settle_vip_search_empty
);
mVipAdapter
.
setEmptyView
(
emptyView
);
((
EditText
)
mViewBinding
.
etSearch
).
requestFocus
();
mVipAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(
baseFragment
instanceof
VipInfoFragment
)
{
((
VipInfoFragment
)
baseFragment
).
setLevel
(
this
.
level
);
((
VipInfoFragment
)
baseFragment
).
setVip
(
mVipAdapter
.
getData
().
get
(
position
));
}
startWithPop
(
baseFragment
);
...
...
@@ -60,7 +67,11 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
case
R
.
id
.
btn_back
:
{
pop
();
}
break
;
case
R
.
id
.
search_ImageButton
:
mPresenter
.
searchVip
(
mViewBinding
.
etSearch
.
getText
().
toString
());
break
;
default
:
{
}
...
...
@@ -68,23 +79,15 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
}
}
});
mViewBinding
.
etSearch
.
setOnEditorActionListener
((
textView
,
i
,
keyEvent
)
->
{
KeyboardUtils
.
hideSoftInput
(
textView
);
mPresenter
.
searchVip
(
textView
.
getText
().
toString
());
return
false
;
});
//
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
//
KeyboardUtils.hideSoftInput(textView);
//
mPresenter.searchVip(textView.getText().toString());
//
return false;
//
});
}
/**
* 加载会员信息
*
* @param vips 会员列表
*/
public
void
loadVips
(
List
<
Vip
>
vips
)
{
mViewBinding
.
setEmpty
(
vips
.
size
()
==
0
);
mVipAdapter
.
setNewData
(
vips
);
}
@Override
...
...
@@ -94,4 +97,18 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
}
super
.
onDestroyView
();
}
public
void
searchVipSus
(
Pager
<
Vip
>
vips
)
{
mVipAdapter
.
setNewData
(
vips
.
getList
());
}
public
void
setLevel
(
List
<
Level
>
level
)
{
this
.
level
=
level
;
}
@Override
public
void
onResume
()
{
super
.
onResume
();
mViewBinding
.
etSearch
.
setText
(
""
);
}
}
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/Vip
Mscard
ListFragment.java
→
app/src/main/java/com/xingdata/zzdpos/ui/vip/fragment/Vip
Trule
ListFragment.java
View file @
4f1e4bea
...
...
@@ -12,16 +12,13 @@ import com.blankj.utilcode.util.ToastUtils;
import
com.xingdata.zzdpos.R
;
import
com.xingdata.zzdpos.base.BaseActivity
;
import
com.xingdata.zzdpos.base.BaseFragment
;
import
com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding
;
import
com.xingdata.zzdpos.databinding.FragmentVipMscardListBinding
;
import
com.xingdata.zzdpos.model.Level
;
import
com.xingdata.zzdpos.model.Mscard
;
import
com.xingdata.zzdpos.model.Pager
;
import
com.xingdata.zzdpos.model.
Saleorder
;
import
com.xingdata.zzdpos.model.
Trule
;
import
com.xingdata.zzdpos.model.Vip
;
import
com.xingdata.zzdpos.ui.vip.VipPresenter
;
import
com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter
;
import
com.xingdata.zzdpos.ui.vip.adapter.VipMscardAdapter
;
import
com.xingdata.zzdpos.ui.vip.adapter.VipTruleAdapter
;
import
com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog
;
import
com.xingdata.zzdpos.util.ConvertUtil
;
...
...
@@ -32,9 +29,9 @@ import java.util.List;
* 优惠券列表
*/
@SuppressLint
(
"ValidFragment"
)
public
class
Vip
Mscard
ListFragment
extends
BaseFragment
<
VipPresenter
,
FragmentVipMscardListBinding
>
{
private
Vip
Mscard
Adapter
adapter
;
private
List
<
Mscard
>
mscard
s
=
new
ArrayList
<>();
public
class
Vip
Trule
ListFragment
extends
BaseFragment
<
VipPresenter
,
FragmentVipMscardListBinding
>
{
private
Vip
Trule
Adapter
adapter
;
private
List
<
Trule
>
trule
s
=
new
ArrayList
<>();
private
int
valid
=
0
;
private
int
inValid
=
0
;
...
...
@@ -49,7 +46,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
@Override
public
void
initView
()
{
mViewBinding
.
infoTitle
.
tvTitle
.
setText
(
"优惠券详情"
);
adapter
=
new
Vip
MscardAdapter
(
getActivity
(),
mscard
s
);
adapter
=
new
Vip
TruleAdapter
(
getActivity
(),
trule
s
);
mViewBinding
.
rechargeRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getActivity
()));
mViewBinding
.
rechargeRecyclerView
.
setAdapter
(
adapter
);
mViewBinding
.
rechargeRefresh
.
setOnRefreshListener
(
this
::
onRefresh
);
...
...
@@ -57,7 +54,6 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
mViewBinding
.
vipName
.
setText
(
String
.
valueOf
(
mVip
.
getVipName
()));
mViewBinding
.
infoTitle
.
popMenu
.
setVisibility
(
View
.
GONE
);
mViewBinding
.
vipDiscount
.
setText
(
getString
(
R
.
string
.
vip_info_discount
,
ConvertUtil
.
discount
(
mVip
.
getVipDefDiscount
())));
adapter
.
setEnableLoadMore
(
true
);
adapter
.
setOnLoadMoreListener
(
this
::
onLoadMore
,
mViewBinding
.
rechargeRecyclerView
);
mViewBinding
.
infoTitle
.
popMenu
.
setOnClickListener
(
view
->
{
new
VipEditMenuDialog
().
show
((
BaseActivity
)
getActivity
());
...
...
@@ -74,7 +70,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
}
private
void
onRefresh
()
{
mPresenter
.
mscard
Query
(
mVip
.
getVipId
());
mPresenter
.
trule
Query
(
mVip
.
getVipId
());
}
@Override
...
...
@@ -89,31 +85,34 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
}
public
void
get
MscardSus
(
Pager
<
Mscard
>
mscard
Pager
)
{
public
void
get
TruleSus
(
Pager
<
Trule
>
trule
Pager
)
{
if
(
mscard
Pager
.
isFirstPage
())
{
mscard
s
.
clear
();
if
(
trule
Pager
.
isFirstPage
())
{
trule
s
.
clear
();
}
if
(
mscard
Pager
.
getList
().
size
()
!=
0
)
{
mscards
.
addAll
(
mscard
Pager
.
getList
());
if
(
trule
Pager
.
getList
().
size
()
!=
0
)
{
trules
.
addAll
(
trule
Pager
.
getList
());
adapter
.
notifyDataSetChanged
();
// pageNumber = mscardPager.getPageNumber() + 1;
}
getMscardValid
();
if
(
mscard
Pager
.
isLastPage
())
{
if
(
trule
Pager
.
isLastPage
())
{
ToastUtils
.
showShort
(
"没有更多数据"
);
}
mViewBinding
.
mscardValid
.
setText
(
valid
+
""
);
mViewBinding
.
macardInvalid
.
setText
(
inValid
+
""
);
adapter
.
setEnableLoadMore
(
!
mscardPager
.
isLastPage
()
);
adapter
.
setEnableLoadMore
(
false
);
adapter
.
loadMoreComplete
();
mViewBinding
.
rechargeRefresh
.
setRefreshing
(
false
);
}
private
void
getMscardValid
()
{
for
(
Mscard
m
:
mscards
)
{
if
(
m
.
getCruleStatus
().
toString
().
equals
(
"0"
))
{
valid
=
0
;
inValid
=
0
;
for
(
Trule
t
:
trules
)
{
if
(
t
.
getTruleStatus
().
toString
().
equals
(
"0"
))
{
valid
=
valid
+
1
;
}
else
{
inValid
=
inValid
+
1
;
...
...
app/src/main/res/drawable/selector_paymoney_radiobutton_bg.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:drawable=
"@drawable/shape_black_layout"
android:state_checked=
"false"
/>
<item
android:drawable=
"@drawable/shape_red_layout"
android:state_checked=
"true"
/>
</selector>
\ No newline at end of file
app/src/main/res/drawable/selector_paymoney_textcolor_bg.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:color=
"@color/darkgray"
android:state_checked=
"false"
/>
<item
android:color=
"@color/deep_red"
android:state_checked=
"true"
/>
</selector>
\ No newline at end of file
app/src/main/res/drawable/shape_black_layout.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<stroke
android:width=
"0.1dp"
android:color=
"@color/black1"
/>
<solid
android:color=
"@color/white"
/>
<corners
android:bottomLeftRadius=
"3dp"
android:bottomRightRadius=
"3dp"
android:topLeftRadius=
"3dp"
android:topRightRadius=
"3dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/shape_red_layout.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<stroke
android:width=
"0.1dp"
android:color=
"@color/deep_red"
/>
<solid
android:color=
"@color/white"
/>
<corners
android:bottomLeftRadius=
"3dp"
android:bottomRightRadius=
"3dp"
android:topLeftRadius=
"3dp"
android:topRightRadius=
"3dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/fragment_vip_list.xml
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name=
"onClickListener"
type=
"android.view.View.OnClickListener"
/>
...
...
@@ -15,6 +17,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"?attr/actionBarSize"
android:orientation=
"horizontal"
>
<include
android:id=
"@+id/title_search"
layout=
"@layout/title_search"
...
...
@@ -49,6 +52,7 @@
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/vip_count_title"
style=
"@style/default_blacktext_smallstyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
@@ -57,6 +61,7 @@
android:text=
"本店会员"
/>
<TextView
android:id=
"@+id/vip_count_add_today_title"
style=
"@style/default_blacktext_smallstyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
@@ -93,7 +98,7 @@
</LinearLayout>
<LinearLayout
android:id=
"@+id/addVipLinearLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
...
...
app/src/main/res/layout/fragment_vip_mscard_list.xml
View file @
4f1e4bea
...
...
@@ -114,7 +114,7 @@
style=
"@style/default_blacktext_smallstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"可用优惠卷"
/>
android:text=
"
不
可用优惠卷"
/>
<TextView
android:id=
"@+id/macard_invalid"
...
...
app/src/main/res/layout/fragment_vip_recharge.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name=
"onClickListener"
type=
"com.xingdata.zzdpos.util.OnClickListener"
/>
<variable
name=
"onCheckedChangeListener"
type=
"android.widget.RadioGroup.OnCheckedChangeListener"
/>
</data>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/bg"
android:orientation=
"vertical"
>
<include
android:id=
"@+id/info_title"
layout=
"@layout/title_pop"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginLeft=
"@dimen/all_margin"
android:background=
"@mipmap/mk_grade01"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/all_margin"
android:layout_marginTop=
"@dimen/all_margin"
android:layout_weight=
"1"
android:background=
"@color/white"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/vip_name"
style=
"@style/default_blacktext_bigstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
<TextView
android:id=
"@+id/vip_mobile"
style=
"@style/default_blacktext_nopadding_smallstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"0dp"
android:textColor=
"@color/black"
/>
</LinearLayout>
<TextView
android:id=
"@+id/vip_balance"
style=
"@style/default_blacktext_smallstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_margin=
"@dimen/all_margin"
android:text=
"@string/vip_balance_text"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:background=
"@color/line_bg"
></View>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_margin=
"@dimen/all_margin_left"
android:gravity=
"center_vertical"
android:orientation=
"vertical"
>
<RadioGroup
android:id=
"@+id/pay_money_layout"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginBottom=
"@dimen/all_margin"
android:gravity=
"center_vertical"
android:onCheckedChanged=
"@{onCheckedChangeListener}"
android:orientation=
"horizontal"
></RadioGroup>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<LinearLayout
android:layout_weight=
"2"
android:id=
"@+id/stealLayout"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginRight=
"10dp"
android:background=
"@drawable/selector_paymoney_radiobutton_bg"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
style=
"@style/default_blacktext_bigstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"充:"
android:textSize=
"20sp"
/>
<EditText
android:id=
"@+id/steal_money"
android:singleLine=
"true"
style=
"@style/dialog_edit"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:background=
"@null"
android:digits=
"1234567890."
android:inputType=
"phone"
android:maxLength=
"6"
android:onClick=
"@{onClickListener}"
android:textCursorDrawable=
"@null"
/>
</LinearLayout>
<View
android:layout_weight=
"1"
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:layout_marginTop=
"5dp"
android:background=
"@color/line_bg"
></View>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
>
<TextView
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/all_margin_left"
android:layout_marginRight=
"@dimen/all_margin_left"
android:text=
"送:"
/>
<TextView
android:id=
"@+id/sendAmt"
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"0"
android:textColor=
"@color/deep_red"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
>
<TextView
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"20dp"
android:text=
"实际到帐:"
/>
<TextView
android:id=
"@+id/recargeAccount"
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"0"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/all_margin"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<TextView
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/all_margin_left"
android:layout_marginRight=
"@dimen/all_margin_left"
android:layout_weight=
"1"
android:text=
"充值金额:"
/>
<TextView
android:id=
"@+id/rechargAMT"
style=
"@style/textView_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/all_margin_left"
android:layout_marginRight=
"@dimen/all_margin_left"
android:textColor=
"@color/deep_red"
/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/rl_pay"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/gray_zhouyu"
android:textAppearance=
"@android:style/TextAppearance.Large"
/>
</LinearLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/fragment_vip_serch.xml
0 → 100644
View file @
4f1e4bea
<?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>
<import
type=
"android.view.View"
/>
<variable
name=
"empty"
type=
"boolean"
/>
<variable
name=
"OnClickListener"
type=
"com.xingdata.zzdpos.util.OnClickListener"
/>
<variable
name=
"titleMode"
type=
"int"
/>
</data>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/gray_zhouyu"
android:orientation=
"vertical"
>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/all_line_width"
android:layout_gravity=
"bottom"
android:background=
"@color/gray_huanggai"
/>
<android.support.constraint.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"?attr/actionBarSize"
android:background=
"@color/white_caocao"
>
<ImageButton
android:id=
"@+id/btn_back"
android:layout_width=
"@dimen/title_height"
android:layout_height=
"match_parent"
android:background=
"?attr/selectableItemBackground"
android:contentDescription=
"@string/all_go_back"
android:gravity=
"center"
android:onClick=
"@{OnClickListener}"
android:padding=
"@dimen/all_margin"
android:src=
"@mipmap/back_black"
app:layout_constraintLeft_toLeftOf=
"parent"
/>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_marginEnd=
"@dimen/all_margin"
app:layout_constraintBottom_toTopOf=
"parent"
app:layout_constraintLeft_toRightOf=
"@id/btn_back"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"parent"
>
<EditText
android:id=
"@+id/et_search"
style=
"@style/searchBarEditor"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:textColor=
"@color/black_likui"
android:textColorHint=
"@color/gray_huanggai"
android:textSize=
"@dimen/all_text_size"
/>
<TextView
style=
"@style/textView_body"
android:id=
"@+id/search_ImageButton"
android:layout_width=
"60dp"
android:layout_height=
"match_parent"
android:onClick=
"@{OnClickListener}"
android:text=
"搜索"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/all_line_width"
android:layout_gravity=
"bottom"
android:background=
"@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</android.support.constraint.ConstraintLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/all_line_width"
android:layout_marginBottom=
"@dimen/all_margin"
android:background=
"@color/gray_huanggai"
android:visibility=
"@{empty?View.GONE:View.VISIBLE}"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/all_line_width"
android:background=
"@color/gray_huanggai"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/rl_vip"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
</layout>
\ No newline at end of file
app/src/main/res/layout/item_vip_mscard_item.xml
View file @
4f1e4bea
...
...
@@ -4,73 +4,94 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/all_margin"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:layout_marginLeft=
"@dimen/all_margin"
android:layout_marginRight=
"@dimen/all_margin_left"
android:background=
"@color/line_bg"
/>
<LinearLayout
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<ImageView
android:id=
"@+id/imgLeft"
android:layout_width=
"45dp"
android:layout_height=
"45dp"
android:layout_marginLeft=
"@dimen/all_margin_left"
android:layout_marginRight=
"@dimen/all_margin_left"
android:background=
"@mipmap/pay_rmb"
/>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:orientation=
"vertical"
>
android:id=
"@+id/trule_bg_left"
android:background=
"@mipmap/return_ticket_one"
android:orientation=
"vertical"
android:gravity=
"center_horizontal"
android:padding=
"5dp"
>
<TextView
android:id=
"@+id/expense_type"
style=
"@style/default_blacktext_bigstyle"
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"会员充值"
/>
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:layout_marginRight=
"5dp"
android:layout_width=
"35dp"
android:layout_height=
"35dp"
android:background=
"@drawable/shape_white_oval"
android:gravity=
"center"
android:text=
"券"
android:textColor=
"@color/blue_mawu"
/>
<TextView
android:id=
"@+id/trule_name"
style=
"@style/default_bartext_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"50元优惠券"
/>
</LinearLayout>
<TextView
android:id=
"@+id/expense_time"
style=
"@style/default_blacktext_smallstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"08-09 10:10"
android:textColor=
"@color/black_likui"
/>
android:id=
"@+id/trule_validity"
android:layout_weight=
"1"
android:gravity=
"center"
style=
"@style/textView_body_small"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:textColor=
"@color/white"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:
layout_margin=
"@dimen/all_margin
"
android:
layout_weight=
"1
"
android:gravity=
"
right
"
android:
id=
"@+id/trule_bg_right
"
android:
background=
"@mipmap/return_ticket_two
"
android:gravity=
"
center_horizontal
"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/expense_money"
style=
"@style/default_blacktext_bigstyle"
android:id=
"@+id/trule_money"
android:layout_weight=
"1"
style=
"@style/default_bartext_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"0"
/>
android:text=
"¥50"
/>
<View
android:layout_width=
"wrap_content"
android:layout_height=
"1dp"
android:layout_marginLeft=
"@dimen/all_margin_left"
android:layout_marginRight=
"@dimen/all_margin_left"
android:background=
"@color/white"
/>
<TextView
android:id=
"@+id/expense_shop"
style=
"@style/default_blacktext_smallstyle"
android:layout_weight=
"1"
android:id=
"@+id/trule_condition"
style=
"@style/default_bartext_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"门店"
android:textColor=
"@color/black_likui"
/>
android:text=
"满500使用"
android:textSize=
"@dimen/detail_textview_size"
/>
</LinearLayout>
</LinearLayout>
...
...
app/src/main/res/layout/recharge.xml
0 → 100644
View file @
4f1e4bea
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name=
"onClickListener"
type=
"android.view.View.OnClickListener"
/>
</data>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center_vertical"
>
<LinearLayout
android:id=
"@+id/stealLayout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center_vertical"
android:background=
"@drawable/selector_paymoney_radiobutton_bg"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
style=
"@style/default_blacktext_bigstyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dtail_width_20"
android:text=
"充:"
android:textSize=
"25sp"
/>
<EditText
android:id=
"@+id/steal_money"
style=
"@style/dialog_edit"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:background=
"@null"
android:digits=
"1234567890."
android:hint=
"自定义金额"
android:inputType=
"phone"
android:maxLength=
"6"
android:onClick=
"@{onClickListener}"
android:textCursorDrawable=
"@null"
/>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
app/src/main/res/mipmap-hdpi/ic_launcher_round.png
View replaced file @
52c619d5
View file @
4f1e4bea
4.91 KB
|
W:
|
H:
5.97 KB
|
W:
|
H:
2-up
Swipe
Onion skin
app/src/main/res/mipmap-xhdpi/bg_return_ticket03.png
0 → 100644
View file @
4f1e4bea
6.65 KB
app/src/main/res/mipmap-xhdpi/bg_return_ticket04.png
0 → 100644
View file @
4f1e4bea
5.13 KB
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted
100644 → 0
View file @
52c619d5
6.93 KB
app/src/main/res/values/strings.xml
View file @
4f1e4bea
...
...
@@ -133,7 +133,7 @@
<string
name=
"vip_message_point_cr_hint"
>
(100积分=1元)
</string>
<string
name=
"vip_message_ticket_none"
>
不使用优惠券
</string>
<string
name=
"vip_info_discount"
>
折扣:%s折
</string>
<string
name=
"vip_balance_text"
>
余额:¥%s
</string>
<!--抹零页面-->
<string
name=
"dis_change_title"
>
抹零
</string>
...
...
@@ -446,6 +446,8 @@
<string
name=
"adv_plan"
>
晋级标准:消费金额满 %s
</string>
<string
name=
"level_Number"
>
共有 %s个会员等级
</string>
<string
name=
"vip_level_title"
>
等级设置
</string>
<string
name=
"vip_mscard_period_of_validity"
>
有效期:%s-%s
</string>
<!--会员充值-->
<string
name=
"vip_recharge_title"
>
会员充值
</string>
<!--店员管理-->
...
...
app/src/main/res/values/styles.xml
View file @
4f1e4bea
...
...
@@ -405,5 +405,13 @@
<item
name=
"android:padding"
>
@dimen/all_spacing
</item>
<item
name=
"android:imeOptions"
>
actionSearch
</item>
</style>
<style
name=
"searchEditor"
>
<item
name=
"android:drawablePadding"
>
@dimen/all_spacing
</item>
<item
name=
"android:maxLines"
>
1
</item>
<item
name=
"android:maxLength"
>
20
</item>
<item
name=
"android:background"
>
@drawable/shape_gray_r1
</item>
<item
name=
"android:padding"
>
@dimen/all_spacing
</item>
<item
name=
"android:imeOptions"
>
actionSearch
</item>
</style>
</resources>
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