Commit d4c1ac23 authored by 陈前's avatar 陈前

Merge remote-tracking branch 'origin/master'

parents b5290f40 52c619d5
......@@ -2,7 +2,8 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/TangKuPos.iml" filepath="$PROJECT_DIR$/.idea/TangKuPos.iml" />
<module fileurl="file://C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" filepath="C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
......
......@@ -359,6 +359,7 @@ public class C {
private static final String ROOT_URL = PKG + "recard/";
public static final String checkPwd = ROOT_URL + "checkPwd";
public static final String fullVip = ROOT_URL + "fullVip";
public static final String queryCard = ROOT_URL + "queryCard";
}
public final class MS {
......@@ -557,6 +558,9 @@ public class C {
public static final int VIP = 2;
public static final int SKU = 3;
public static final int GIFT = 4;
public static final int PKG = 5;
public static final int SKU_DETAIL = 6;
}
}
......@@ -582,7 +582,7 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Saleorder> querySaleorderByVipId(Long vipId,int pageNumber ,int 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<>())
......@@ -592,8 +592,6 @@ public final class ApiFactory {
}
}
public static class Ticket {
......@@ -641,10 +639,8 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread());
}
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum,
String keyword, Long skuGrpId) {
return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId,
keyword)
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum, String keyword, Long skuGrpId) {
return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId, keyword)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......@@ -815,6 +811,16 @@ 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)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
}
public static class Sta {
......@@ -994,6 +1000,15 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
// public static Observable<Pager<VipRechargeOrder>> queryCard(Long vipId) {
// return Api.getInstance().service.queryRecharge(vipId,0,10)
// .onErrorReturn(new ErrorFilter<>())
// .map(new ResultFilter<>())
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .retryWhen(new RetryHelper(3));
// }
}
public static class Ms {
......@@ -1110,6 +1125,17 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<Mscard>> mscardQuery(long vipId) {
return Api.getInstance().service.mscardQuery(vipId)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
}
public static class Oper {
......
......@@ -196,6 +196,10 @@ interface ApiService {
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId,@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long
......@@ -245,7 +249,7 @@ interface ApiService {
Observable<HttpMessage<Saleorder>> addOrderPayMis(@Body Saleorder.Pay saleorderPay);
@POST(C.URL.SALEORDER.querySaleorderByVipId)
Observable<HttpMessage<Saleorder>> querySaleorderByVipId(@Query("vipId") Long vipId, @Query
Observable<HttpMessage<Pager<Saleorder>>> querySaleorderByVipId(@Query("vipId") Long vipId, @Query
("pageNumber") int pageNum, @Query("pageSize") int pageSize);
......@@ -280,6 +284,9 @@ interface ApiService {
Observable<HttpMessage<Vip>> fullVip(@Query("vipId") long vipId, @Query("amtPay") long
amtPay, @Query("amtSend") long amtSend);
@POST(C.URL.RECARD.queryCard)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryCard(@Query("vipId") long vipId);
// @POST(C.URL.SHOP.queryAll)
// Observable<HttpMessage<String>> queryAll( @Query("spuClaName") String spuClaName, @Query
// ("spuGrpName") String spuGrpName);
......@@ -345,15 +352,17 @@ interface ApiService {
@Query("pageSize") int pageSize);
@POST(C.URL.SSSKU.query)
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("wd") String keyword);
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("wd") String keyword);
@POST(C.URL.SSKUGRP.query)
Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp();
@POST(C.URL.MS.query)
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("msName") String keyword);
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("msName") String keyword);
@POST(C.URL.MS.detail)
Observable<HttpMessage<Ms>> detailMs(@Query("id") long id);
......@@ -389,6 +398,9 @@ interface ApiService {
@POST(C.URL.MSCARD.update)
Observable<HttpMessage<Mscard>> updateMscard(@Body Mscard m);
@POST(C.URL.MSCARD.query)
Observable<HttpMessage<Pager<Mscard>>> mscardQuery(@Query("vipId") Long vipId);
@POST(C.URL.MSCARD.add)
Observable<HttpMessage<Mscard>> addMscard(@Body Mscard m);
......
......@@ -43,7 +43,6 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
public boolean isShowing;
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
......
......@@ -179,4 +179,6 @@ public class Pay extends RealmObject implements BaseModel, BaseBean {
public String getPrimaryKey() {
return "id";
}
// public static String getPayType
}
......@@ -17,6 +17,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import io.realm.annotations.Ignore;
/**
* 订单
......@@ -503,6 +505,8 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
private Long createTime;
private Salepay salepay;
@Ignore
private String PayName;
private List<Saledetail> saledetailList;
......@@ -1139,4 +1143,13 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setPayName(String payName) {
PayName = payName;
}
public String getPayName() {
return PayName;
}
}
\ No newline at end of file
......@@ -26,6 +26,7 @@ import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import io.realm.Realm;
import io.realm.RealmResults;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiException;
import com.xingdata.zzdpos.api.ApiFactory;
......@@ -41,6 +42,7 @@ import com.xingdata.zzdpos.ui.login.fragment.SignInFragment;
import com.xingdata.zzdpos.ui.login.fragment.SmsCodeFragment;
import com.xingdata.zzdpos.ui.login.fragment.bean.LoginBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.LoginReturnBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.Shops;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreAddressJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreTypeJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.UserStoreInfo;
......@@ -83,6 +85,7 @@ public class LoginPresenter extends LoginContract.Presenter {
}
@Override
public void createStoreFragmentinit(Context context, LoadingDialog loadingDialog) {
//加载城市数据列表,加载门店类型列表
......
package com.xingdata.zzdpos.ui.manage.sssku;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivitySsskuBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.DetailFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.ManagerFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.SearchFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.SkugrpFragment;
import java.util.List;
public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBinding> implements SsskuContract.View {
private ManagerFragment mManagerFragment = new ManagerFragment();
private SearchFragment mSearchFragment = new SearchFragment();
private SkugrpFragment mSkugrpFragment = new SkugrpFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private DetailFragment mDetailFragment = new DetailFragment();
private LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
......@@ -16,6 +37,139 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
@Override
public void initView() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.loadRootFragment(R.id.f_sssku, mManagerFragment);
mViewBinding.btnBack.setOnClickListener(view -> {
getTopFragment().onBackPressedSupport();
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchSku(textView.getText().toString());
}
return false;
});
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
mPresenter.searchBarFocusChanged(b);
});
}
@Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
mManagerFragment.loadSkus(skus, isRefresh);
}
@Override
public void loadSkugrps(List<Sskugrp> sskugrps) {
mManagerFragment.loadSkugrps(sskugrps);
}
@Override
public void loadSkugrpState(Long skugrpId) {
mManagerFragment.loadSkugrpState(skugrpId);
}
@Override
public void loadReplenishCount(int count) {
mManagerFragment.loadReplenishCount(count);
}
@Override
public void loadSsskuCount(int count) {
mManagerFragment.loadSsskuCount(count);
}
@Override
public void loadSearchResult(List<Sssku> skus, boolean isRefresh) {
mSearchFragment.loadSkus(skus, isRefresh);
}
@Override
public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return;
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType));
}
@Override
public void showEditorFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment);
}
@Override
public void showEditorFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment);
}
@Override
public void showDetailFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.start(mDetailFragment);
}
@Override
public void showSkugrpFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_skugrp);
this.start(mSkugrpFragment);
}
@Override
public void backToEditFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
}
@Override
public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.resetSearchBar();
}
@Override
public void showLoadingDialog() {
mLoadingDialog.show(this);
}
@Override
public void dismissLoadingDialog() {
mLoadingDialog.dismiss();
}
/**
* 根据titleMode显示TitleBar
*
* @param titleMode 标题模式
*/
private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText("");
switch (titleMode) {
case C.TITLE_MODE.SKU:
mViewBinding.etSearch.setHint(R.string.sssku_search_hint);
break;
case C.TITLE_MODE.PKG:
mViewBinding.etSearch.setHint(R.string.sssku_search_hint);
break;
case C.TITLE_MODE.SKU_DETAIL:
break;
}
}
/**
* 重置搜索栏
*/
private void resetSearchBar() {
mViewBinding.etSearch.setText("");
mViewBinding.clTitle.requestFocus();
mViewBinding.clTitle.requestFocusFromTouch();
}
}
......@@ -3,12 +3,197 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import java.util.List;
public interface SsskuContract {
interface View extends BaseView {
/**
* 加载商品
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
*/
void loadSkus(List<Sssku> skus, boolean isRefresh);
/**
* 加载商品分组
*
* @param sskugrps 商品分组列表
*/
void loadSkugrps(List<Sskugrp> sskugrps);
/**
* 加载分组选中状态
*
* @param skugrpId 分组ID
*/
void loadSkugrpState(Long skugrpId);
/**
* 加载需要补货商品的数量
*
* @param count 数量
*/
void loadReplenishCount(int count);
/**
* 加载商品种类的总数
*/
void loadSsskuCount(int count);
/**
* 加载搜索结果
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
*/
void loadSearchResult(List<Sssku> skus, boolean isRefresh);
/**
* 显示搜索页面
*/
void showSearchFragment(int searchType);
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
*/
void showEditorFragment(Sssku sku);
/**
* 显示编辑页面
*/
void showEditorFragment();
/**
* 显示详情页面
*
* @param sku 要显示的商品
*/
void showDetailFragment(Sssku sku);
/**
* 显示商品分组页面
*/
void showSkugrpFragment();
/**
* 返回编辑页面
*/
void backToEditFragment();
/**
* 返回管理页面
*/
void backToManagerFragment();
/**
* 显示读取对话框
*/
void showLoadingDialog();
/**
* 隐藏读取对话框
*/
void dismissLoadingDialog();
}
abstract class Presenter extends BasePresenter<View> {
/**
* 管理页面 - 初始化
*/
public abstract void initManager();
/**
* 管理页面 - 刷新商品
*/
public abstract void refreshSku();
/**
* 管理页面 - 加载更多商品
*/
public abstract void loadMoreSku();
/**
* 管理页面 - 点击商品
*
* @param sssku 商品信息
*/
public abstract void clickSku(Sssku sssku);
/**
* 管理页面 - 切换分组
*
* @param sskugrp 分组
*/
public abstract void clickSkugrp(Sskugrp sskugrp);
/**
* 管理页面 - 点击添加商品
*/
public abstract void clickAddSku();
/**
* 管理页面 - 点击添加分组
*/
public abstract void clickAddSkugrp();
/**
* 管理页面 - 点击一键补货
*/
public abstract void clickReplenish();
/**
* 搜索页面 - 点击搜索
*/
public abstract void searchSku(String keyword);
/**
* 搜索页面 - 加载更多搜索结果
*/
public abstract void loadMoreSearchResult();
/**
* 搜索页面 - 点击商品
*
* @param sssku 商品信息
* @param searchType 搜索类型
*/
public abstract void clickSku(Sssku sssku, int searchType);
/**
* 详情页面 - 编辑商品
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditSku(Sssku sssku);
/**
* 分组页面 - 删除分组.
*
* @param sskugrp 要删除的分组
*/
public abstract void clickDeleteSkugrp(Sskugrp sskugrp);
/**
* 分组页面 - 编辑分组
*
* @param sskugrp 要编辑的分组
*/
public abstract void clickEditSkugrp(Sskugrp sskugrp);
/**
* 主页面 - 搜索框焦点改变
*
* @param b 获取焦点
*/
public abstract void searchBarFocusChanged(boolean b);
}
}
package com.xingdata.zzdpos.ui.manage.sssku;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
public class SsskuPresenter extends SsskuContract.Presenter {
private int mPageNum;
private Long mSkuGrpId;
private int mSearchPageNum;
private String mKeyword;
@Override
public void onAttached() {
}
@Override
public void initManager() {
this.getSkugrp();
this.getReplenish();
this.refreshSku();
}
@Override
public void refreshSku() {
this.mPageNum = 0;
this.mSkuGrpId = 0L;
mView.loadSkugrpState(mSkuGrpId);
this.getSku();
}
@Override
public void loadMoreSku() {
this.mPageNum++;
this.getSku();
}
@Override
public void clickSku(Sssku sssku) {
mView.showDetailFragment(sssku);
}
@Override
public void clickSkugrp(Sskugrp sskugrp) {
this.mPageNum = 0;
this.mSkuGrpId = sskugrp.getSkuGrpId();
mView.loadSkugrpState(mSkuGrpId);
this.getSku();
}
@Override
public void clickAddSku() {
mView.showEditorFragment();
}
@Override
public void clickAddSkugrp() {
mView.showSkugrpFragment();
}
@Override
public void clickReplenish() {
//TODO 跳转到补货界面
}
@Override
public void searchSku(String keyword) {
this.mSearchPageNum = 0;
this.mKeyword = keyword;
this.getSearchSku();
}
@Override
public void loadMoreSearchResult() {
this.mSearchPageNum++;
this.getSearchSku();
}
@Override
public void clickSku(Sssku sssku, int searchType) {
switch (searchType) {
case C.TITLE_MODE.SKU:
mView.showDetailFragment(sssku);
break;
case C.TITLE_MODE.PKG:
break;
}
}
@Override
public void clickEditSku(Sssku sssku) {
mView.showEditorFragment(sssku);
}
@Override
public void clickDeleteSkugrp(Sskugrp sskugrp) {
}
@Override
public void clickEditSkugrp(Sskugrp sskugrp) {
}
@Override
public void searchBarFocusChanged(boolean b) {
if (b) mView.showSearchFragment(C.TITLE_MODE.SKU);
}
/**
* 获取商品
*/
private void getSku() {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sssku.querySssku(mPageNum, "", mSkuGrpId)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(ssskuPager -> {
if (mPageNum == 0) mView.loadSsskuCount(ssskuPager.getTotalRow());
mView.loadSkus(ssskuPager.getList(), mPageNum == 0);
})
);
}
/**
* 获取搜索商品
*/
private void getSearchSku() {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sssku.querySssku(mSearchPageNum, mKeyword)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(ssskuPager -> mView.loadSearchResult(ssskuPager.getList(), mSearchPageNum == 0))
);
}
/**
* 获取分组
*/
private void getSkugrp() {
mCompositeDisposable.add(
ApiFactory.Sskugrp.querySskugrp().subscribe(sskugrpPager -> {
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
sskugrpPager.getList().add(0, sskugrp);
mView.loadSkugrps(sskugrpPager.getList());
}
)
);
}
/**
* 获取补货信息
*/
private void getReplenish() {
mCompositeDisposable.add(
ApiFactory.Psb.preOrder().subscribe(ssskuPager -> mView.loadReplenishCount(ssskuPager.getTotalRow()))
);
}
}
......@@ -2,37 +2,23 @@ package com.xingdata.zzdpos.ui.manage.sssku.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemStoreSkuBinding;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.databinding.ItemSsskuSkuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.store.fragment.StoreFragment;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
public class SkuAdapter extends BaseAdapter<Sssku, ItemStoreSkuBinding> {
private List<Saledetail> mSaledetails;
public class SkuAdapter extends BaseAdapter<Sssku, ItemSsskuSkuBinding> {
public SkuAdapter() {
super(R.layout.item_store_sku, new ArrayList<>());
this.mSaledetails = new ArrayList<>();
}
private StoreFragment.OnCountChangeListener mOnCountChangeListener;
public void setSaledetails(List<Saledetail> saledetails) {
this.mSaledetails = saledetails;
super(R.layout.item_sssku_sku, new ArrayList<>());
}
@Override
protected void convert(ItemStoreSkuBinding mViewBinding, Sssku item) {
protected void convert(ItemSsskuSkuBinding mViewBinding, Sssku item) {
mViewBinding.ivPic.setImageURI(item.getSpuImg());
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.tvAmt.setText(ConvertUtil.fenToYuan(item.getSkuRetailPrice1()));
mViewBinding.setSpuName(item.getSpuName());
mViewBinding.setSpuUnitName(item.getSpuUnitName());
}
}
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseDialog;
import com.xingdata.zzdpos.databinding.DialogSkugrpDeleteBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpDeleteDialog extends BaseDialog<SsskuPresenter, DialogSkugrpDeleteBinding> {
private Sskugrp mSskugrp;
public SkugrpDeleteDialog setSskugrp(Sskugrp sskugrp) {
this.mSskugrp = sskugrp;
return this;
}
@Override
protected boolean isShowTitle() {
return false;
}
@Override
public int getLayoutId() {
return R.layout.dialog_skugrp_delete;
}
@Override
public void initView() {
}
@Override
public void onConfirmClick(View view) {
super.onConfirmClick(view);
mPresenter.clickDeleteSkugrp(mSskugrp);
}
}
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseDialog;
import com.xingdata.zzdpos.databinding.DialogSkugrpEditorBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpEditorDialog extends BaseDialog<SsskuPresenter, DialogSkugrpEditorBinding> {
private Sskugrp mSskugrp;
public SkugrpEditorDialog setSskugrp(Sskugrp sskugrp) {
this.mSskugrp = sskugrp;
return this;
}
@Override
protected boolean isShowTitle() {
return false;
}
@Override
public int getLayoutId() {
return R.layout.dialog_skugrp_editor;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogSkugrpMenuBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSkugrpMenuBinding> {
private Sskugrp mSskugrp;
public SkugrpMenuDialog setSskugrp(Sskugrp sskugrp) {
this.mSskugrp = sskugrp;
return this;
}
@Override
public int getLayoutId() {
return R.layout.dialog_skugrp_menu;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuDetailBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDetailBinding> {
private Sssku mSssku;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_detail;
}
@Override
public void initView() {
mViewBinding.tvEdit.setOnClickListener(view -> {
this.pop();
mPresenter.clickEditSku(mSssku);
});
}
/**
* 设置商品
*
* @param sssku 商品信息
*/
public DetailFragment setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuEditorBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEditorBinding> {
private Sssku mSssku;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_editor;
}
@Override
public void initView() {
}
/**
* 设置商品
*
* @param sssku 商品信息
*/
public EditorFragment setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.annotation.SuppressLint;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuManagerBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
import java.util.List;
public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuManagerBinding> {
private SkuAdapter mSkuAdapter;
private SkugrpAdapter mSkugrpAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_manager;
......@@ -15,11 +31,114 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
@Override
public void initView() {
mViewBinding.llAdd.setOnClickListener(view -> {
// init sku
mSkuAdapter = new SkuAdapter();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// init skugrp
mSkugrpAdapter = new SkugrpAdapter();
mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter);
mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mViewBinding.srlSku.setOnRefreshListener(this::refreshSku);
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickSku(mSkuAdapter.getItem(position)));
// set grp listener
mSkugrpAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickSkugrp(mSkugrpAdapter.getData().get(position)));
});
mViewBinding.tvReplenish.setOnClickListener(view -> {
// set other listener
mViewBinding.llSsskuAdd.setOnClickListener(view -> mPresenter.clickAddSku());
mViewBinding.tvReplenish.setOnClickListener(view -> mPresenter.clickReplenish());
mViewBinding.llSkugrpAdd.setOnClickListener(view -> mPresenter.clickAddSkugrp());
});
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
// init data
mPresenter.initManager();
}
/**
* 加载商品
*
* @param skus 商品信息
* @param isRefresh 是否需要刷新
*/
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
if (isRefresh) {
mSkuAdapter.isUseEmpty(true);
mSkuAdapter.setEnableLoadMore(true);
mViewBinding.srlSku.setRefreshing(false);
mSkuAdapter.setNewData(skus);
} else if (skus.size() > 0) mSkuAdapter.addData(skus);
if (skus.size() < C.PRODUCT.PAGE_SIZE) mSkuAdapter.loadMoreEnd(isRefresh);
else mSkuAdapter.loadMoreComplete();
}
/**
* 加载商品分组
*
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSkugrpAdapter.setNewData(sskugrps);
}
/**
* 加载分组状态
*
* @param skugrpId 当前选中的分组ID
*/
public void loadSkugrpState(Long skugrpId) {
for (int i = 0; i < mSkugrpAdapter.getData().size(); i++) {
if (mSkugrpAdapter.getData().get(i).getSkuGrpId().longValue() == skugrpId) {
mSkugrpAdapter.setSelectedPosition(i);
}
}
mSkugrpAdapter.notifyDataSetChanged();
}
/**
* 加载需要补货的商品数量
*
* @param count 数量
*/
public void loadReplenishCount(int count) {
mViewBinding.tvReplenishCount.setText(String.valueOf(count));
}
/**
* 加载商品总数
*
* @param count 商品总数
*/
public void loadSsskuCount(int count) {
mViewBinding.tvTotalCount.setText(String.valueOf(count));
}
/**
* 刷新商品
*/
private void refreshSku() {
mSkuAdapter.setEnableLoadMore(false);
mPresenter.refreshSku();
}
/**
* 加载更多商品
*/
private void loadMoreSku() {
mPresenter.loadMoreSku();
}
@Override
public boolean onBackPressedSupport() {
ActivityCompat.finishAfterTransition(getActivity());
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuSearchBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSearchBinding> {
private int mSearchType;
private SkuAdapter<Sssku> mSkuAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_search;
}
@Override
public void initView() {
// init sku
mSkuAdapter = new SkuAdapter<>();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
this.pop();
mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType);
});
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
}
/**
* 加载更多商品
*/
private void loadMoreSku() {
mPresenter.loadMoreSearchResult();
}
/**
* 加载商品
*
* @param skus 商品
* @param isRefresh 是否刷新
*/
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
if (isRefresh) {
mSkuAdapter.isUseEmpty(true);
mSkuAdapter.setEnableLoadMore(true);
mSkuAdapter.setNewData(skus);
} else if (skus.size() > 0) mSkuAdapter.addData(skus);
if (skus.size() < C.PRODUCT.PAGE_SIZE) mSkuAdapter.loadMoreEnd(isRefresh);
else mSkuAdapter.loadMoreComplete();
}
/**
* 设置搜索类型
*
* @param searchType 搜索类型
* @return this
*/
public SearchFragment setSearchType(int searchType) {
this.mSearchType = searchType;
return this;
}
@Override
public boolean onBackPressedSupport() {
switch (mSearchType) {
case C.TITLE_MODE.SKU:
((SsskuActivity) getActivity()).backToManagerFragment();
break;
case C.TITLE_MODE.PKG:
((SsskuActivity) getActivity()).backToEditFragment();
break;
}
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuSkugrpBinding;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SkugrpEditorDialog;
public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSkugrpBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_skugrp;
}
@Override
public void initView() {
mViewBinding.setVisibility(View.GONE);
mViewBinding.llSkugrpAdd.setOnClickListener(view -> {
new SkugrpEditorDialog().show(((SsskuActivity) getActivity()));
});
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -80,7 +80,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override
public void showEditorFragment(int msType) {
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.UPDATE));
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.ADD));
}
@Override
......@@ -168,7 +168,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
*
* @param titleMode 标题模式
*/
public void showTitleBarByTitleMode(int titleMode) {
private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText("");
......
......@@ -292,12 +292,32 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
// listener
mViewBinding.llArea.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_area, mAreaAdapter, (dialog, which) -> {
switch (mAreaAdapter.getData().get(which).getId()) {
case C.MS_AREA.MER:
mMs.setMsRangeTag((byte) C.MS_AREA.MER);
mMs.setMerMapId(LoginPresenter.loginReturnBean.getMerMapId());
break;
case C.MS_AREA.LOCAL:
mMs.setMsRangeTag((byte) C.MS_AREA.LOCAL);
mMs.setShopMapId(LoginPresenter.loginReturnBean.getShopMapId());
break;
}
mAreaAdapter.getOnItemSelectedListener().onItemSelected(mAreaAdapter.getStrs()[which]);
mAreaAdapter.setSelectedPosition(which);
dialog.dismiss();
})
);
mViewBinding.llUser.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_user, mUserAdapter, (dialog, which) -> {
switch (mUserAdapter.getData().get(which).getId()) {
case C.MS_USER.ALL:
mMs.setMsCoustomTag((byte) C.MS_USER.ALL);
mMs.setVipLevel((byte) 0);
break;
case C.MS_USER.VIP:
mMs.setMsCoustomTag((byte) C.MS_USER.VIP);
mMs.setVipLevel((byte) mUserAdapter.getData().get(which).getLevelId());
break;
}
mUserAdapter.getOnItemSelectedListener().onItemSelected(mUserAdapter.getStrs()[which]);
mUserAdapter.setSelectedPosition(which);
dialog.dismiss();
......@@ -456,7 +476,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
ToastUtils.showShort("请确认输入内容是否正确");
return;
}
mMs.setMsName(mViewBinding.getName());
mMs.setMsName(mViewBinding.etName.getText().toString());
mMs.setMsDateBegin(ConvertUtil.stringToLong(mViewBinding.getDateStart().replaceAll("[\\u4e00-\\u9fa5]+", "")));
mMs.setMsDateEnd(ConvertUtil.stringToLong(mViewBinding.getDateEnd().replaceAll("[\\u4e00-\\u9fa5]+", "")));
......@@ -476,6 +496,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
}
mMs.setMsToolsType(mMs.getMsTools());
mMs.setGiftTag(mMs.getMsTools().byteValue());
mMs.setCreateTime(null);
mMs.setUpdateTime(null);
......
......@@ -15,8 +15,6 @@ import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> {
private int mSearchType;
private SkuAdapter<Sku> mSkuAdapter;
......
......@@ -15,7 +15,9 @@ public class TypeDisView extends BaseTypeView<ViewTypeDisBinding> {
if (mMs.getMsTools() == null) return;
if (mMs.getMsTools() == C.MS_TYPE.DIS) mViewBinding.rbDis.setChecked(true);
if (mMs.getMsTools() == C.MS_TYPE.SECOND) mViewBinding.rbSecond.setChecked(true);
mViewBinding.etDis.setText(String.valueOf(mMs.getPriceDiscount()));
if (mMs.getPriceDiscount() != null) {
mViewBinding.etDis.setText(String.valueOf(mMs.getPriceDiscount()));
}
}
@Override
......
......@@ -21,7 +21,6 @@ import java.util.List;
public class VipFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
......
......@@ -193,7 +193,6 @@ interface StoreContract {
*/
public abstract void clearCart();
/**
* 主页面 - 搜索框焦点改变
*
......
......@@ -25,6 +25,7 @@ public class SkuAdapter<T extends BaseSku> extends BaseAdapter<T, ItemStoreSkuBi
private StoreFragment.OnCountChangeListener mOnCountChangeListener;
public void setSaledetails(List<Saledetail> saledetails) {
if (saledetails == null) return;
this.mSaledetails = saledetails;
}
......
......@@ -307,6 +307,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
@Override
public void onAnimationEnd(Animator animation) {
// 执行添加方法
mPresenter.clickAddSku(sku, value);
// 把执行动画的商品图片从父布局中移除
mViewBinding.clStore.removeView(icon);
......
......@@ -4,10 +4,13 @@ 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.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
......@@ -40,6 +43,21 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
mPresenter.vipInfoFragment.ticketQuerySus(ticketPager);
}
@Override
public void getSaleorderSus(Pager<Saleorder> saleorderPager) {
mPresenter.vipExpenseListFragment.getSaleorderSus(saleorderPager);
}
@Override
public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) {
mPresenter.vipRechargeListFragment.getRechargeOrderSus(rechargeOrderPager);
}
@Override
public void getMscardSus(Pager<Mscard> mscardPager) {
mPresenter.vipMscardListFragment.getMscardSus(mscardPager);
}
@Override
public void getVipLevelSus(Pager<Level> levelPager) {
mPresenter.vipListFragment.getVipLevelSus(levelPager);
......
......@@ -3,10 +3,13 @@ package com.xingdata.zzdpos.ui.vip;
import com.xingdata.zzdpos.base.BasePresenter;
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.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import java.util.List;
......@@ -15,11 +18,24 @@ public interface VipContract {
interface View extends BaseView {
void addVip();
void getVipLevelSus(Pager<Level> levelPager);
void getVipListSus(Pager<Vip> vipPager, int pageNumber);
void getVipNumberSus(Sta sta);
void addVipSus(Vip vip);
void ticketQuerySus(List<Ticket> ticketPager);
void getSaleorderSus(Pager<Saleorder> saleorderPager);
void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager);
void getMscardSus(Pager<Mscard> rechargeOrderPager);
}
abstract class Presenter extends BasePresenter<View> {
......@@ -29,8 +45,15 @@ public interface VipContract {
pageSize);
public abstract void getVipNumber();
public abstract void addVip(Vip vip);
public abstract void ticketQuery(Long vipID);
public abstract void saleorderQuery(Long vipID);
public abstract void saleorderQuery(Long vipID, int pageNumber);
public abstract void rechargeorderQuery(Long vipID, int number);
public abstract void mscardQuery(Long vipID);
}
}
\ No newline at end of file
......@@ -4,16 +4,20 @@ package com.xingdata.zzdpos.ui.vip;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment;
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.VipRechargeListFragment;
public class VipPresenter extends VipContract.Presenter {
public VipListFragment vipListFragment=new VipListFragment();
public VipInfoEditFragment vipInfoEditFragment=new VipInfoEditFragment();
public VipListFragment vipListFragment = new VipListFragment();
public VipInfoEditFragment vipInfoEditFragment = new VipInfoEditFragment();
public VipInfoFragment vipInfoFragment = new VipInfoFragment();
public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment();
public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment();
public VipMscardListFragment vipMscardListFragment = new VipMscardListFragment();
@Override
public void onAttached() {
......@@ -79,13 +83,35 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public void saleorderQuery(Long vipID) {
ApiFactory.Saleorder.querySaleorderByVipId(vipID,0,100).subscribe(ticketList -> {
// mView.ticketQuerySus(ticketList);
public void saleorderQuery(Long vipID, int pageNumber) {
ApiFactory.Saleorder.querySaleorderByVipId(vipID, pageNumber, 5).subscribe(saleorder -> {
mView.getSaleorderSus(saleorder);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void rechargeorderQuery(Long vipID,int number) {
ApiFactory.Rctrace.queryRecharge(vipID, number, 10).subscribe(rechargeOrderPager -> {
mView.getRechargeOrderSus(rechargeOrderPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void mscardQuery(Long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(mscardPager -> {
mView.getMscardSus(mscardPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
}
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.Saleorder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipExpenseAdapter extends BaseAdapter<Saleorder, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipExpenseAdapter(Context mContext, @Nullable List<Saleorder> data) {
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Saleorder item) {
mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getOrderPayAmt()));
mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
getPayName(item);
//设置支付方式
mViewBinding.expenseType.setText(item.getPayName());
mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
public Integer getPayName(Saleorder item) {
Integer inBG=-1;
switch (item.getPayType()) {
case C.PAY_CHANNEL.CASH:
inBG = R.mipmap.pay_cash;
break;
case C.PAY_CHANNEL.WECHAT:
inBG = R.mipmap.pay_wechat;
break;
case C.PAY_CHANNEL.ALI:
inBG = R.mipmap.pay_alipay;
break;
case C.PAY_CHANNEL.BANK:
inBG = R.mipmap.pay_card;
break;
case C.PAY_CHANNEL.CARD:
inBG = R.mipmap.pay_membershipcard;
break;
case C.PAY_CHANNEL.TALLY:
inBG = R.mipmap.pay_credit;
break;
}
return inBG;
}
}
......@@ -27,6 +27,6 @@ public class VipListAdapter extends BaseAdapter<Vip, ItemVipListItemBinding> {
protected void convert(ItemVipListItemBinding mViewBinding, Vip item) {
mViewBinding.vipName.setText(item.getVipName());
mViewBinding.vipMobile.setText(String.valueOf(item.getVipMobile()));
mViewBinding.vipDiscount.setText(ConvertUtil.discount(item.getVipDefDiscount()));
mViewBinding.vipDiscount.setText(ConvertUtil.discount(item.getVipDefDiscount())+"折");
}
}
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.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipMscardAdapter extends BaseAdapter<Mscard, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipMscardAdapter(Context mContext, @Nullable List<Mscard> data) {
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Mscard item) {
// mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
// mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
// //设置支付方式
//// mViewBinding.expenseType.setText(item.getPayName());
//// mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
// mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
}
......@@ -3,25 +3,67 @@ 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.ItemVipRechargeItemBinding;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipRechargeAdapter extends BaseAdapter<VipRechargeOrder, ItemVipRechargeItemBinding> {
public class VipRechargeAdapter extends BaseAdapter<VipRechargeOrder, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipRechargeAdapter(Context mContext, @Nullable List<VipRechargeOrder> data) {
super(R.layout.item_vip_recharge_item, data);
this.mContext=mContext;
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipRechargeItemBinding mViewBinding, VipRechargeOrder item) {
protected void convert(ItemVipExpenseItemBinding mViewBinding, VipRechargeOrder item) {
mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
//设置支付方式
// mViewBinding.expenseType.setText(item.getPayName());
// mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
public Integer getPayName(Saleorder item) {
Integer inBG=-1;
switch (item.getPayType()) {
case C.PAY_CHANNEL.CASH:
inBG = R.mipmap.pay_cash;
break;
case C.PAY_CHANNEL.WECHAT:
inBG = R.mipmap.pay_wechat;
break;
case C.PAY_CHANNEL.ALI:
inBG = R.mipmap.pay_alipay;
break;
case C.PAY_CHANNEL.BANK:
inBG = R.mipmap.pay_card;
break;
case C.PAY_CHANNEL.CARD:
inBG = R.mipmap.pay_membershipcard;
break;
case C.PAY_CHANNEL.TALLY:
inBG = R.mipmap.pay_credit;
break;
}
return inBG;
}
}
......@@ -11,6 +11,8 @@ 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.VipMscardListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import java.util.List;
......@@ -21,6 +23,7 @@ import java.util.List;
public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMenuBinding> {
private Vip mVip;
private List<Level> mLevel;
@Override
public int getLayoutId() {
return R.layout.dialog_vip_menu;
......@@ -32,21 +35,28 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
switch (view.getId()) {
//編輯會員
case R.id.editVip:
mPresenter.vipInfoEditFragment=new VipInfoEditFragment();
mPresenter.vipInfoEditFragment = new VipInfoEditFragment();
mPresenter.vipInfoEditFragment.setVip(mVip);
mPresenter.vipInfoEditFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start( mPresenter.vipInfoEditFragment);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
break;
//充值記錄
//充值記錄
case R.id.rechargeList:
mPresenter.vipRechargeListFragment = new VipRechargeListFragment();
mPresenter.vipRechargeListFragment.setVip(mVip);
mPresenter.vipRechargeListFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start(mPresenter.vipRechargeListFragment);
break;
//優惠券詳情
//優惠券詳情
case R.id.voucherDetails:
mPresenter.vipMscardListFragment = new VipMscardListFragment();
mPresenter.vipMscardListFragment.setVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment);
break;
//消費記錄
//消費記錄
case R.id.consumeList:
((BaseActivity) getActivity()).start(new VipExpenseListFragment());
mPresenter.vipExpenseListFragment.setmVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipExpenseListFragment);
break;
}
dismiss();
......
......@@ -6,6 +6,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
......@@ -13,10 +14,14 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipRechargeAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
......@@ -25,10 +30,11 @@ import java.util.List;
* 会员消费记录
*/
@SuppressLint("ValidFragment")
public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentVipExpenseListBinding> {
private VipRechargeAdapter vipRechargeAdapter;
private List<VipRechargeOrder> orders = new ArrayList<>();
private List<Level> levels=null;
public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentVipExpenseListBinding> {
private VipExpenseAdapter vipRechargeAdapter;
private List<Saleorder> orders = new ArrayList<>();
private List<Level> levels = null;
private int pageNumber = 0;
@Override
......@@ -36,34 +42,40 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
return R.layout.fragment_vip_expense_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("会员信息");
vipRechargeAdapter = new VipRechargeAdapter(getActivity(), orders);
mViewBinding.infoTitle.tvTitle.setText("消费记录");
vipRechargeAdapter = new VipExpenseAdapter(getActivity(), orders);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.expenseAMT.setText(ConvertUtil.fenToYuan2(mVip.getVipTotalpamt()));
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
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())));
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view ->{
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
vipRechargeAdapter.addData(new VipRechargeOrder());
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.loadMoreComplete();
ToastUtils.showShort("刷新成功");
mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
vipRechargeAdapter.setEnableLoadMore(false);
}
private void onRefresh() {
mViewBinding.rechargeRefresh.setRefreshing(false);
ToastUtils.showShort("刷新成功");
pageNumber = 0;
mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
}
@Override
......@@ -71,4 +83,30 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
pop();
return true;
}
public void setmVip(Vip mVip) {
this.mVip = mVip;
}
public void getSaleorderSus(Pager<Saleorder> saleorderPager) {
if (saleorderPager.isFirstPage()) {
orders.clear();
}
if (saleorderPager.getList().size() != 0) {
orders.addAll(saleorderPager.getList());
vipRechargeAdapter.notifyDataSetChanged();
pageNumber = saleorderPager.getPageNumber() + 1;
}
if (saleorderPager.isLastPage()) {
ToastUtils.showShort("没有更多数据");
}
mViewBinding.expenseCount.setText(saleorderPager.getTotalRow() + "");
vipRechargeAdapter.setEnableLoadMore(!saleorderPager.isLastPage());
vipRechargeAdapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
}
......@@ -38,16 +38,19 @@ public class VipInfoFragment extends BaseFragment<VipPresenter, FragmentVipInfoB
dialog.setVip(mVip);
dialog.show((BaseActivity) getActivity());
});
mViewBinding.Totalpamt.setText(String.valueOf(mVip.getVipTotalpamt()));
mViewBinding.BoundCbal.setText(String.valueOf(mVip.getBoundCbal()));
mViewBinding.AcctCbal.setText(String.valueOf(mVip.getAcctCbal()));
mViewBinding.vipLevel.setText(mVip.getVipLevelName());
mViewBinding.vipBirthday.setText(mVip.getVipBirthday() + "");
mViewBinding.vipName.setText(mVip.getVipName());
mViewBinding.vipMoble.setText(mVip.getVipMobile() + "");
mViewBinding.vipSex.setText(getVipSex(mVip.getVipSex()));
mViewBinding.vipDiscounts.setText(getString(R.string.vip_discount, mVip.getVipDefDiscount() + ""));
mPresenter.ticketQuery(mVip.getVipId());
if (mVip!=null){
mViewBinding.Totalpamt.setText(String.valueOf(mVip.getVipTotalpamt()));
mViewBinding.BoundCbal.setText(String.valueOf(mVip.getBoundCbal()));
mViewBinding.AcctCbal.setText(String.valueOf(mVip.getAcctCbal()));
mViewBinding.vipLevel.setText(mVip.getVipLevelName());
mViewBinding.vipBirthday.setText(mVip.getVipBirthday() + "");
mViewBinding.vipName.setText(mVip.getVipName());
mViewBinding.vipMoble.setText(mVip.getVipMobile() + "");
mViewBinding.vipSex.setText(getVipSex(mVip.getVipSex()));
mViewBinding.vipDiscounts.setText(getString(R.string.vip_discount, mVip.getVipDefDiscount() + ""));
mPresenter.ticketQuery(mVip.getVipId());
}
}
private String getVipSex(Byte vipSex) {
......
......@@ -7,9 +7,13 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -62,6 +66,12 @@ 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());
// }
// });
mPresenter.getVipLevel(0, 200);
mPresenter.getVipNumber();
}
......@@ -155,23 +165,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void toStartVipInfo(Vip vip) {
mPresenter.vipInfoFragment = new VipInfoFragment();
mPresenter.vipInfoFragment.setVip(vip);
mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
if (vip != null) {
mPresenter.vipInfoFragment.setVip(vip);
mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
} else {
mPresenter.vipInfoEditFragment.setVipLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
}
}
public void addVipSus(Vip vip) {
// mPresenter.vipInfoFragment.pop();
// mPresenter.vipInfoFragment.setVip(vip);
// mPresenter.vipInfoFragment.setLevel(levels);
// ((BaseActivity) getActivity()).start( mPresenter.vipInfoFragment);
// if (vipInfoFragment != null) {
// if (vipInfoFragment.getmVip().getVipId() == null) {
// onRefresh();
// }
// vipInfoFragment.pop();
// }
}
/**
......
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
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.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.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 优惠券列表
*/
@SuppressLint("ValidFragment")
public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> {
private VipMscardAdapter adapter;
private List<Mscard> mscards = new ArrayList<>();
private int valid = 0;
private int inValid = 0;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_mscard_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("优惠券详情");
adapter = new VipMscardAdapter(getActivity(), mscards);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(adapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
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());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
// mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
// adapter.setEnableLoadMore(false);
}
private void onRefresh() {
mPresenter.mscardQuery(mVip.getVipId());
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
public void getMscardSus(Pager<Mscard> mscardPager) {
if (mscardPager.isFirstPage()) {
mscards.clear();
}
if (mscardPager.getList().size() != 0) {
mscards.addAll(mscardPager.getList());
adapter.notifyDataSetChanged();
// pageNumber = mscardPager.getPageNumber() + 1;
}
getMscardValid();
if (mscardPager.isLastPage()) {
ToastUtils.showShort("没有更多数据");
}
mViewBinding.mscardValid.setText(valid+ "");
mViewBinding.macardInvalid.setText(inValid+"");
adapter.setEnableLoadMore(!mscardPager.isLastPage());
adapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
private void getMscardValid() {
for (Mscard m : mscards) {
if (m.getCruleStatus().toString().equals("0")) {
valid = valid + 1;
} else {
inValid = inValid + 1;
}
}
}
}
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
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.FragmentVipRechargeListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipRechargeAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 会员充值记录
*/
@SuppressLint("ValidFragment")
public class VipRechargeListFragment extends BaseFragment<VipPresenter, FragmentVipRechargeListBinding> {
private VipRechargeAdapter vipRechargeAdapter;
private List<VipRechargeOrder> orders = new ArrayList<>();
private int pageNumber = 0;
private List<Level> levels;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_recharge_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("充值记录");
vipRechargeAdapter = new VipRechargeAdapter(getActivity(), orders);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.rechargeAMT.setText(ConvertUtil.fenToYuan2(mVip.getVipTotalpamt()));
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
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())));
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
vipRechargeAdapter.setEnableLoadMore(false);
}
private void onRefresh() {
pageNumber = 0;
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVipLevel(List<Level> levels) {
this.levels = levels;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) {
if (rechargeOrderPager.isFirstPage())
{
orders.clear();
}
if (rechargeOrderPager.getList().size() != 0) {
orders.addAll(rechargeOrderPager.getList());
vipRechargeAdapter.notifyDataSetChanged();
pageNumber = rechargeOrderPager.getPageNumber() + 1;
}
if (rechargeOrderPager.isLastPage()){
ToastUtils.showShort("没有更多数据");
}
vipRechargeAdapter.setEnableLoadMore(!rechargeOrderPager.isLastPage());
vipRechargeAdapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
}
package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils;
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.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.util.OnClickListener;
import java.util.List;
/**
* 会员搜索界面
*/
public class VipSearchFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter;
private BaseFragment baseFragment;
public void setBaseFragment(BaseFragment baseFragment) {
this.baseFragment = baseFragment;
}
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
}
@Override
public void initView() {
mViewBinding.setEmpty(true);
mVipAdapter = new VipAdapter();
mViewBinding.rlVip.setAdapter(mVipAdapter);
mViewBinding.rlVip.setLayoutManager(new LinearLayoutManager(mContext));
@SuppressLint("InflateParams") View emptyView = getLayoutInflater().inflate(R.layout
.view_empty, null);
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string
.settle_vip_search_empty);
mVipAdapter.setEmptyView(emptyView);
mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
if (baseFragment instanceof VipInfoFragment) {
((VipInfoFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
}
startWithPop(baseFragment);
});
mViewBinding.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
switch (v.getId()) {
case R.id.btn_back: {
pop();
}
break;
default: {
}
break;
}
}
});
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
public void onDestroyView() {
if (getActivity() instanceof SettleActivity) {
((SettleActivity) getActivity()).showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
}
super.onDestroyView();
}
}
......@@ -17,9 +17,12 @@
android:orientation="vertical">
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_title"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao">
android:background="@color/white_caocao"
android:focusable="true"
android:focusableInTouchMode="true">
<ImageButton
android:id="@+id/btn_back"
......@@ -36,7 +39,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
android:visibility="@{titleMode>1?0:8}"
android:visibility="@{titleMode==1||titleMode==6?8:0}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
......@@ -61,10 +64,10 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/payment_title"
android:text="@string/sssku_title"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:visibility="@{titleMode>1?8:0}"
android:visibility="@{titleMode==1||titleMode==6?0:8}"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
......
<?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">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:gravity="center"
android:text="提示"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:text="确定删除吗?"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size" />
</LinearLayout>
</layout>
\ No newline at end of file
<?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">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:gravity="center"
android:text="提示"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
<EditText
android:id="@+id/et_pwd"
style="@style/editText_new"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginTop="@dimen/et_margin_edittext"
android:hint="@string/skugrp_add_hint"
android:maxLength="16" />
</LinearLayout>
</layout>
\ No newline at end of file
<?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">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/transparent">
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -22,7 +22,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:layout_marginTop="@dimen/all_margin"
android:layout_marginTop="@dimen/all_spacing"
android:background="@color/gray_huanggai" />
<LinearLayout
......
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red_guanyu"
android:orientation="vertical">
<TextView
android:id="@+id/tv_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="编辑" />
</LinearLayout>
</layout>
\ No newline at end of file
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue_mawu"
android:orientation="vertical">
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -30,11 +30,11 @@
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_total_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginStart="@dimen/all_spacing"
android:text="160"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_title_size" />
......@@ -65,6 +65,7 @@
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_replenish_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
......@@ -102,7 +103,7 @@
android:background="@color/gray_huanggai" />
<LinearLayout
android:id="@+id/ll_add"
android:id="@+id/ll_sssku_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
......@@ -116,7 +117,7 @@
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/add_bg"
android:gravity="center"
android:text="@string/ms_add"
android:text="@string/sssku_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
......@@ -138,8 +139,24 @@
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@mipmap/grp_add" />
</FrameLayout>
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout
......
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="visibility"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
<LinearLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/add_bg"
android:gravity="center"
android:text="@string/sssku_skugrp_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{visibility}" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -2,11 +2,6 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -16,7 +11,6 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_margin" />
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -25,11 +25,11 @@
android:orientation="horizontal">
<ImageView
android:background="@mipmap/mk_grade01"
android:layout_width="wrap_content"
android:layout_marginLeft="@dimen/all_margin"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content" />
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
......@@ -41,20 +41,22 @@
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="张思" />
android:layout_height="wrap_content" />
<TextView
style="@style/default_blacktext_smallstyle"
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="13311525312" />
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_discount"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......@@ -86,13 +88,14 @@
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用金額" />
android:text="消费总额" />
<TextView
android:id="@+id/expense_AMT"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="50.00"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
......@@ -112,13 +115,14 @@
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用金額" />
android:text="消费次数" />
<TextView
android:id="@+id/expense_Count"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="160.00"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
......
......@@ -209,15 +209,14 @@
</LinearLayout>
<LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="bottom"
android:orientation="horizontal">
<Button
android:id="@+id/onSure"
android:layout_alignParentBottom="true"
style="@style/button_positive_noradius"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -225,7 +224,7 @@
android:onClick="@{onClickListener}"
android:text="确认" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -13,9 +13,8 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<include
android:id="@+id/title_search"
layout="@layout/title_search"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
</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_discount"
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_info_discount" />
</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"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用优惠卷" />
<TextView
android:id="@+id/mscard_valid"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/reddeep" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="40dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用优惠卷" />
<TextView
android:id="@+id/macard_invalid"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/recharge_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rechargeRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
</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_discount"
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_info_discount" />
</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"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用余额" />
<TextView
android:id="@+id/recharge_AMT"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="40dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="累计充值" />
<TextView
android:id="@+id/recharge_amt"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/recharge_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rechargeRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -31,6 +31,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="撒看见那"
android:textColor="@color/black_baozheng"
android:textSize="@{selected?@dimen/all_sub_title_size:@dimen/all_text_size}" />
......
......@@ -7,8 +7,12 @@
<import type="android.view.View" />
<variable
name="count"
type="int" />
name="spuName"
type="String" />
<variable
name="spuUnitName"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
......@@ -34,16 +38,30 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lines="2"
android:text="@{spuName}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size"
app:layout_constraintLeft_toRightOf="@id/iv_pic"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+spuUnitName}"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toBottomOf="@id/ll_price"
app:layout_constraintLeft_toLeftOf="@id/tv_name" />
<LinearLayout
android:id="@+id/ll_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
app:layout_constraintLeft_toLeftOf="@id/tv_name"
app:layout_constraintRight_toRightOf="@id/tv_name"
app:layout_constraintTop_toBottomOf="@id/tv_name">
<TextView
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_parent"
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">
<TextView
android:id="@+id/expense_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="会员充值" />
<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" />
</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:orientation="vertical">
<TextView
android:id="@+id/expense_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<TextView
android:id="@+id/expense_shop"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="门店"
android:textColor="@color/black_likui" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_parent"
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">
<TextView
android:id="@+id/expense_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="会员充值" />
<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" />
</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:orientation="vertical">
<TextView
android:id="@+id/expense_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<TextView
android:id="@+id/expense_shop"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="门店"
android:textColor="@color/black_likui" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="@dimen/all_margin"
android:background="@mipmap/pay_alipay" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/rechange_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="支付宝支付" />
<TextView
android:id="@+id/rechange_time"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:textColor="@color/black_likui"
android:layout_height="wrap_content"
android:text="08-09 10:10" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/rechange_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+充值金额" />
<TextView
android:id="@+id/rechange_shop"
android:textColor="@color/black_likui"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="充值总店" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -3,13 +3,13 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/singleline_white_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
......@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:imeOptions="actionSearch"
android:background="@color/listview_bg"
android:hint="请输入手机号或会员姓名" />
......
......@@ -125,7 +125,7 @@
<color name="red_diaochan">#ff8964</color>
<color name="red_lvzhi">#a22929</color>
<color name="gray_zhouyu">#f1f3f7</color>
<color name="gray_zhouyu">#f6f6f6</color>
<color name="gray_huanggai">#afb9c3</color>
<color name="gray_kongming">#e6e6e6</color>
......@@ -153,5 +153,4 @@
<color name="purple_yanqing">#6590e6</color>
</resources>
......@@ -183,7 +183,6 @@
<!--商品页面 <WHERE>_<DESCRIPTION>-->
<string name="store_title">商品页面</string>
<string name="store_size">规格/</string>
<string name="store_price_unit"></string>
<string name="store_group">商品分组 </string>
<string name="store_sssku">标准商品 </string>
......@@ -375,7 +374,12 @@
<!--商品管理-->
<string name="sssku_title">商品维护</string>
<string name="sssku_add">添加商品</string>
<string name="sssku_update">编辑商品</string>
<string name="sssku_detail">商品详情</string>
<string name="sssku_skugrp">分组信息</string>
<string name="sssku_skugrp_add">添加分组</string>
<string name="sssku_search_hint">请输入商品名称/助记码/条码</string>
<string name="sssku_empty_hint">没有搜到此商品\n请重新搜索,或点击添加按钮进行添加~</string>
......@@ -676,5 +680,9 @@
<string name="manage_inventory_add_title">商品盘点</string>
<string name="manage_inventory_add_end">盘库结束</string>
<!--商品维护-->
<string name="sku_size">规格/</string>
<string name="skugrp_add_hint">请输入分组名称/</string>
</resources>
......@@ -17,9 +17,9 @@
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="vicescreen_textview_stlye">
......@@ -43,6 +43,16 @@
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_blacktext_nopadding_smallstyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:gravity">center_vertical</item>
<item name="android:singleLine">true</item>
<item name="android:padding">@dimen/dp_4</item>
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_blacktext_margin_smallstyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
......@@ -55,6 +65,7 @@
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_bluetext_popbutton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
......@@ -66,7 +77,6 @@
</style>
<style name="default_title">
<item name="android:gravity">center_vertical</item>
<item name="android:singleLine">true</item>
......@@ -315,6 +325,7 @@
</style>
<style name="button_passive" parent="android:ButtonBar">
<item name="android:foreground">?android:attr/selectableItemBackgroundBorderless</item>
<item name="android:background">@drawable/selector_gradient_gray_button_background</item>
<item name="android:textColor">@drawable/selector_gray_button_text_color</item>
<item name="android:gravity">center</item>
......@@ -338,16 +349,15 @@
</style>
<style name="editText_new" parent="view_base">
<item name=" android:background">@drawable/selector_white_background_stroke</item>
<item name="android:background">@drawable/selector_white_background_stroke</item>
<item name="android:padding">@dimen/et_padding</item>
<item name=" android:saveEnabled">false</item>
<item name="android:saveEnabled">false</item>
<item name="android:gravity">center|left</item>
<item name="android:textSize">@dimen/et_textsize</item>
<item name="android:textColorHint">@color/hint</item>
</style>
<style name="button" parent="view_base">
<item name=" android:background">@drawable/red_border</item>
<item name=" android:saveEnabled">false</item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment