Commit 72263e2c authored by 王海's avatar 王海

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/src/main/AndroidManifest.xml
#	app/src/main/java/com/xingdata/zzdpos/ui/manage/manageMenu/ManageMenuActivity.java
parents ed0ac8d4 2b02768b
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <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" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules> </modules>
</component> </component>
......
...@@ -115,6 +115,14 @@ ...@@ -115,6 +115,14 @@
android:configChanges="keyboard|orientation|screenSize|keyboardHidden" android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:label="@string/title_activity_bale" android:label="@string/title_activity_bale"
android:theme="@style/AppTheme" /> android:theme="@style/AppTheme" />
<activity
android:name=".ui.manage.sssku.SsskuActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity
android:name=".ui.manage.inventory.InventoryActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -294,7 +294,10 @@ public class C { ...@@ -294,7 +294,10 @@ public class C {
public final class SSKUGRP { public final class SSKUGRP {
private static final String ROOT_URL = PKG + "sskugrp/"; private static final String ROOT_URL = PKG + "sskugrp/";
public static final String add = ROOT_URL + "add";
public static final String query = ROOT_URL + "query"; public static final String query = ROOT_URL + "query";
public static final String delete = ROOT_URL + "delete";
public static final String update = ROOT_URL + "update";
} }
public final class CSDETAIL { public final class CSDETAIL {
...@@ -359,6 +362,7 @@ public class C { ...@@ -359,6 +362,7 @@ public class C {
private static final String ROOT_URL = PKG + "recard/"; private static final String ROOT_URL = PKG + "recard/";
public static final String checkPwd = ROOT_URL + "checkPwd"; public static final String checkPwd = ROOT_URL + "checkPwd";
public static final String fullVip = ROOT_URL + "fullVip"; public static final String fullVip = ROOT_URL + "fullVip";
public static final String queryCard = ROOT_URL + "queryCard";
} }
public final class MS { public final class MS {
...@@ -557,6 +561,9 @@ public class C { ...@@ -557,6 +561,9 @@ public class C {
public static final int VIP = 2; public static final int VIP = 2;
public static final int SKU = 3; public static final int SKU = 3;
public static final int GIFT = 4; 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 { ...@@ -582,7 +582,7 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3)); .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) return Api.getInstance().service.querySaleorderByVipId(vipId,pageNumber,pageSize)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
...@@ -592,8 +592,6 @@ public final class ApiFactory { ...@@ -592,8 +592,6 @@ public final class ApiFactory {
} }
} }
public static class Ticket { public static class Ticket {
...@@ -641,10 +639,8 @@ public final class ApiFactory { ...@@ -641,10 +639,8 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum, public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum, String keyword, Long skuGrpId) {
String keyword, Long skuGrpId) { return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId, keyword)
return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId,
keyword)
.onErrorReturn(new ErrorFilter<>()) .onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>()) .map(new ResultFilter<>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -761,6 +757,21 @@ public final class ApiFactory { ...@@ -761,6 +757,21 @@ public final class ApiFactory {
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io()) ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
/**
* 库存盘点记录查询接口
*
* @param pageNulmber
* @param pageSize
* @return
*/
public static Observable<Pager<com.xingdata.zzdpos.model.Cs>> querCsList(int pageNulmber,
int pageSize
) {
return Api.getInstance().service.querCsList(pageNulmber, pageSize).onErrorReturn(new
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
} }
public static class Notice { public static class Notice {
...@@ -800,6 +811,16 @@ public final class ApiFactory { ...@@ -800,6 +811,16 @@ public final class ApiFactory {
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()); .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 { public static class Sta {
...@@ -901,6 +922,33 @@ public final class ApiFactory { ...@@ -901,6 +922,33 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3)); .retryWhen(new RetryHelper(3));
} }
public static Observable<String> add(com.xingdata.zzdpos.model.Sskugrp sskugrp) {
return Api.getInstance().service.addSskugrp(sskugrp)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> update(com.xingdata.zzdpos.model.Sskugrp sskugrp) {
return Api.getInstance().service.updateSskugrp(sskugrp)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> delete(Long skuGrpId) {
return Api.getInstance().service.deleteSskugrp(skuGrpId)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
} }
public static class User { public static class User {
...@@ -979,6 +1027,15 @@ public final class ApiFactory { ...@@ -979,6 +1027,15 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3)); .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 { public static class Ms {
...@@ -1095,6 +1152,17 @@ public final class ApiFactory { ...@@ -1095,6 +1152,17 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3)); .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 { public static class Oper {
......
...@@ -181,6 +181,10 @@ interface ApiService { ...@@ -181,6 +181,10 @@ interface ApiService {
("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long ("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long
endDate); endDate);
@POST(C.URL.CS.query)
Observable<HttpMessage<Pager<Cs>>> querCsList(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.NOTICE.query) @POST(C.URL.NOTICE.query)
Observable<HttpMessage<Pager<Notice>>> queryNotice(@Query("pageNumber") int pageNum, @Query Observable<HttpMessage<Pager<Notice>>> queryNotice(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize); ("pageSize") int pageSize);
...@@ -192,6 +196,10 @@ interface ApiService { ...@@ -192,6 +196,10 @@ interface ApiService {
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize); ("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) @POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long ("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long
...@@ -241,11 +249,10 @@ interface ApiService { ...@@ -241,11 +249,10 @@ interface ApiService {
Observable<HttpMessage<Saleorder>> addOrderPayMis(@Body Saleorder.Pay saleorderPay); Observable<HttpMessage<Saleorder>> addOrderPayMis(@Body Saleorder.Pay saleorderPay);
@POST(C.URL.SALEORDER.querySaleorderByVipId) @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); ("pageNumber") int pageNum, @Query("pageSize") int pageSize);
@POST(C.URL.USER.query) @POST(C.URL.USER.query)
Observable<HttpMessage<Pager<Vip>>> queryDetailByWD(@Query("wd") String keyword, @Query Observable<HttpMessage<Pager<Vip>>> queryDetailByWD(@Query("wd") String keyword, @Query
("pageNumber") int pageNum, @Query("pageSize") int pageSize); ("pageNumber") int pageNum, @Query("pageSize") int pageSize);
...@@ -277,6 +284,9 @@ interface ApiService { ...@@ -277,6 +284,9 @@ interface ApiService {
Observable<HttpMessage<Vip>> fullVip(@Query("vipId") long vipId, @Query("amtPay") long Observable<HttpMessage<Vip>> fullVip(@Query("vipId") long vipId, @Query("amtPay") long
amtPay, @Query("amtSend") long amtSend); amtPay, @Query("amtSend") long amtSend);
@POST(C.URL.RECARD.queryCard)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryCard(@Query("vipId") long vipId);
// @POST(C.URL.SHOP.queryAll) // @POST(C.URL.SHOP.queryAll)
// Observable<HttpMessage<String>> queryAll( @Query("spuClaName") String spuClaName, @Query // Observable<HttpMessage<String>> queryAll( @Query("spuClaName") String spuClaName, @Query
// ("spuGrpName") String spuGrpName); // ("spuGrpName") String spuGrpName);
...@@ -342,15 +352,26 @@ interface ApiService { ...@@ -342,15 +352,26 @@ interface ApiService {
@Query("pageSize") int pageSize); @Query("pageSize") int pageSize);
@POST(C.URL.SSSKU.query) @POST(C.URL.SSSKU.query)
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber, @Query Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber,
("pageSize") int pageSize, @Query("wd") String keyword); @Query("pageSize") int pageSize,
@Query("wd") String keyword);
@POST(C.URL.SSKUGRP.query) @POST(C.URL.SSKUGRP.query)
Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp(); Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp();
@POST(C.URL.SSKUGRP.add)
Observable<HttpMessage<String>> addSskugrp(@Body Sskugrp sskugrp);
@POST(C.URL.SSKUGRP.update)
Observable<HttpMessage<String>> updateSskugrp(@Body Sskugrp sskugrp);
@POST(C.URL.SSKUGRP.delete)
Observable<HttpMessage<String>> deleteSskugrp(@Query("id") Long skuGrpId);
@POST(C.URL.MS.query) @POST(C.URL.MS.query)
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber, @Query Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber,
("pageSize") int pageSize, @Query("msName") String keyword); @Query("pageSize") int pageSize,
@Query("msName") String keyword);
@POST(C.URL.MS.detail) @POST(C.URL.MS.detail)
Observable<HttpMessage<Ms>> detailMs(@Query("id") long id); Observable<HttpMessage<Ms>> detailMs(@Query("id") long id);
...@@ -386,6 +407,9 @@ interface ApiService { ...@@ -386,6 +407,9 @@ interface ApiService {
@POST(C.URL.MSCARD.update) @POST(C.URL.MSCARD.update)
Observable<HttpMessage<Mscard>> updateMscard(@Body Mscard m); 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) @POST(C.URL.MSCARD.add)
Observable<HttpMessage<Mscard>> addMscard(@Body Mscard m); Observable<HttpMessage<Mscard>> addMscard(@Body Mscard m);
......
...@@ -43,7 +43,6 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind ...@@ -43,7 +43,6 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
public boolean isShowing; public boolean isShowing;
static { static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
} }
......
...@@ -4,6 +4,8 @@ import com.xingdata.api.print.entity.BaseGoodPrint; ...@@ -4,6 +4,8 @@ import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint; import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.db.DB; import com.xingdata.zzdpos.db.DB;
import com.xingdata.zzdpos.ui.login.LoginPresenter; import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.model.BaseBean;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -13,7 +15,7 @@ import java.util.List; ...@@ -13,7 +15,7 @@ import java.util.List;
* 盘库记录类 * 盘库记录类
*/ */
public class Cs implements BaseOrderPrint { public class Cs implements BaseOrderPrint, com.xingdata.zzdpos.base.BaseBean {
/** /**
* channelMapId : 0 * channelMapId : 0
...@@ -255,6 +257,14 @@ public class Cs implements BaseOrderPrint { ...@@ -255,6 +257,14 @@ public class Cs implements BaseOrderPrint {
return baseGoodPrints; return baseGoodPrints;
} }
public String getOperName() {
if (operName == null) {
operName = DB.getInstance().get(MainPresenter.class).where(Oper.class)
.equalTo("operId", getCreateOperId())
.findFirst().getOperName();
}
return operName;
}
@Override @Override
public String getDRAW_URL() { public String getDRAW_URL() {
return null; return null;
......
package com.xingdata.zzdpos.model; package com.xingdata.zzdpos.model;
import com.xingdata.api.print.entity.BaseGoodPrint; import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.zzdpos.base.BaseBean;
/** /**
* Created by Administrator on 2017/12/1. * Created by Administrator on 2017/12/1.
*/ */
public class CsDetail implements BaseGoodPrint { public class CsDetail implements BaseGoodPrint ,BaseBean{
/** /**
......
...@@ -179,4 +179,6 @@ public class Pay extends RealmObject implements BaseModel, BaseBean { ...@@ -179,4 +179,6 @@ public class Pay extends RealmObject implements BaseModel, BaseBean {
public String getPrimaryKey() { public String getPrimaryKey() {
return "id"; return "id";
} }
// public static String getPayType
} }
...@@ -17,6 +17,8 @@ import java.util.ArrayList; ...@@ -17,6 +17,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import io.realm.annotations.Ignore;
/** /**
* 订单 * 订单
...@@ -503,6 +505,8 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo ...@@ -503,6 +505,8 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
private Long createTime; private Long createTime;
private Salepay salepay; private Salepay salepay;
@Ignore
private String PayName;
private List<Saledetail> saledetailList; private List<Saledetail> saledetailList;
...@@ -1139,4 +1143,13 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo ...@@ -1139,4 +1143,13 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
public void setFirstName(String firstName) { public void setFirstName(String firstName) {
this.firstName = 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; ...@@ -26,6 +26,7 @@ import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import io.realm.Realm; import io.realm.Realm;
import io.realm.RealmResults; import io.realm.RealmResults;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiException; import com.xingdata.zzdpos.api.ApiException;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
...@@ -41,6 +42,7 @@ import com.xingdata.zzdpos.ui.login.fragment.SignInFragment; ...@@ -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.SmsCodeFragment;
import com.xingdata.zzdpos.ui.login.fragment.bean.LoginBean; 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.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.StoreAddressJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreTypeJsonBean; import com.xingdata.zzdpos.ui.login.fragment.bean.StoreTypeJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.UserStoreInfo; import com.xingdata.zzdpos.ui.login.fragment.bean.UserStoreInfo;
...@@ -83,6 +85,7 @@ public class LoginPresenter extends LoginContract.Presenter { ...@@ -83,6 +85,7 @@ public class LoginPresenter extends LoginContract.Presenter {
} }
@Override @Override
public void createStoreFragmentinit(Context context, LoadingDialog loadingDialog) { public void createStoreFragmentinit(Context context, LoadingDialog loadingDialog) {
//加载城市数据列表,加载门店类型列表 //加载城市数据列表,加载门店类型列表
......
package com.xingdata.zzdpos.ui.manage.inventory;
import android.content.Intent;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityInventoryBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.inventory.fragment.InventoryAddFragment;
import com.xingdata.zzdpos.ui.manage.inventory.fragment.InventoryFragment;
import com.xingdata.zzdpos.ui.manage.manageMenu.ManageDateFragment;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import java.util.List;
public class InventoryActivity extends BaseActivity<InventoryPresenter, ActivityInventoryBinding> implements InventoryContract.View {
private InventoryFragment mInventoryFragment = new InventoryFragment();
private ManageDateFragment mManageDateFragment = new ManageDateFragment();
private InventoryAddFragment mInventoryAddFragment = new InventoryAddFragment();
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
return R.layout.activity_inventory;
}
@Override
public void initView() {
loadRootFragment(R.id.f_bottom, mInventoryFragment, true, false);
}
@Override
public void showDateFragment() {
start(mManageDateFragment);
}
@Override
public void addInventoryDetailItem(CsDetail csDetail, Sssku sssku) {
mInventoryAddFragment.addInventoryDetailItem(csDetail, sssku);
}
@Override
public void addInventoryGoodsItem(List<Sssku> ssskuList) {
mInventoryAddFragment.addInventoryGoodsItem(ssskuList);
}
@Override
public void addInventoryGoodsItem(Sssku sssku) {
mInventoryAddFragment.addInventoryGoodsItem(sssku);
}
@Override
public void showInventoryDetailDialog(Cs cs) {
Intent intent = new Intent(InventoryActivity.this, StatisticsDetailActivity.class);
intent.putExtra(Cs.class.getName(), cs);
ActivityUtils.startActivity(intent);
}
@Override
public void loadCs(Pager<Cs> csList) {
mInventoryFragment.setData(csList, csList.isFirstPage());
}
@Override
public void loadCs(Pager<Cs> csList, long start, long end) {
if (mManageDateFragment.isAdded()) {
mManageDateFragment.pop();
}
mInventoryFragment.setDate(start, end);
mInventoryFragment.setData(csList, csList.isFirstPage());
}
@Override
public void disInventoryDetailFragment(Boolean idChange) {
if (idChange) {
mInventoryAddFragment.pop();
mInventoryFragment.onRefresh();
} else {
mInventoryAddFragment.pop();
}
}
@Override
public void setInventoryCount(int count) {
mInventoryFragment.setCount(count);
}
@Override
public void setInventoryCount(String s) {
mInventoryFragment.setCount(s);
}
@Override
public void openInventoryAddFragment(Cs cs) {
mInventoryAddFragment.setCs(cs);
start(mInventoryAddFragment);
}
@Override
public void showDateAlert(Boolean f) {
// mInventoryFragment.showDateAlert(f);
}
@Override
protected void onPause() {
KeyboardUtils.hideSoftInput(this);
super.onPause();
}
@Override
public void searchGoodsSuc() {
// mInventoryAddFragment.searchGoodsSuc();
}
@Override
public void isShowLoading(Boolean is) {
if (is) {
mLoadingDialog.show((BaseActivity) mContext);
} else {
if (mLoadingDialog.isShowing) {
mLoadingDialog.dismiss();
}
}
}
}
package com.xingdata.zzdpos.ui.manage.inventory;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Sssku;
import java.util.List;
/**
* Created by Eurus on 2017/11/23.
*/
public interface InventoryContract {
interface View extends BaseView {
/**
* 添加盘库 搜索商品成功
*/
void searchGoodsSuc();
void isShowLoading(Boolean is);
/**
* 跳转日期搜索
*/
void showDateFragment();
/**
* 设置盘库记录条目数量
*/
void setInventoryCount(int count);
/**
* 设置盘库记录条目数量
*/
void setInventoryCount(String s);
/**
* 关闭添加盘库详情界面
*/
void disInventoryDetailFragment(Boolean isChange);
/**
* 添加左侧详情商品条目
*/
void addInventoryDetailItem(CsDetail csDetail, Sssku sssku);
/**
* 添加商品条目
*/
void addInventoryGoodsItem(List<Sssku> ssskuList);
void addInventoryGoodsItem(Sssku sssku);
//________________________________________
/**
* 展示记录详情Dialog
*/
void showInventoryDetailDialog(Cs csDetailList);
/**
* 加载列表
*/
void loadCs(Pager<Cs> csList);
/**
* 加载列表
*/
void loadCs(Pager<Cs> csList, long start, long end);
/**
* 跳转盘库页
*/
void openInventoryAddFragment(Cs cs);
/**
* 盘库页面-展示日期警告
*/
void showDateAlert(Boolean f);
}
abstract class Presenter extends BasePresenter<View> {
/**
* 跳转日期搜索
*/
public abstract void clickDate();
/**
* 盘库添加页面 - 取消退出这次盘库的记录
*
* @param cs 盘库记录
*/
public abstract void cancelInventoryAdd(Cs cs);
/**
* 盘库添加页面 - 结束盘库记录
*/
public abstract void exitInventoryAdd();
/**
* 盘库添加页面-确认盘库明细
*/
public abstract void clickOkCsDetail(Sssku ssku, Cs cs);
/**
* 根据条形码获取商品
*
* @param barcode 条形码
*/
public abstract void getProductByBarcode(String barcode);
/**
* 盘库列表页面 - 删除列表里的记录
*
* @param cs 盘库记录
*/
public abstract void delInventoryItem(Cs cs);
/**
* 盘库列表页面 - 点击列表里的记录
*
* @param cs 盘库记录
*/
public abstract void clickInventoryItem(Cs cs);
/**
* 盘库列表页面-检查日期合法性
*
* @param dateStart 起始时间
* @param dateEnd 终止时间
*/
public abstract void inspectDate(String dateStart, String dateEnd);
/**
* 盘库列表页面-点击开始盘库
*/
public abstract void clickStartInventory();
/**
* 获取盘库列表
*/
public abstract void getInventoryList(int pageNum, long start, long end);
/**
* 获取盘库列表
*/
public abstract void getInventoryList(long start, long end, int PageNumber, int pageSize);
/**
* 获取盘库列表
*/
public abstract void getInventoryList(int PageNumber);
}
}
package com.xingdata.zzdpos.ui.manage.inventory;
import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.db.DB;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.List;
import io.reactivex.Observable;
import io.realm.RealmQuery;
import static com.xingdata.zzdpos.db.DBFactory.getList;
public class InventoryPresenter extends InventoryContract.Presenter {
private int nowPageSize = 20;
private long start;
private long end;
@Override
public void onAttached() {
}
@Override
public void clickOkCsDetail(Sssku sssku, Cs mCs) {
CsDetail csDetail = new CsDetail();
csDetail.setSpuName(sssku.getSpuName());
csDetail.setSkuId(sssku.getSkuId());
csDetail.setSpuBarcode(sssku.getSpuBarcode());
csDetail.setSkuCnt(sssku.getSkuStock());
csDetail.setSpuUnitName(sssku.getSpuUnitName());
csDetail.setCsCnt((long) sssku.getInventoryCut());
csDetail.setChannelMapId(mCs.getChannelMapId().longValue());
csDetail.setCsNo(mCs.getCsNo());
csDetail.setSkuId(sssku.getSkuId());
csDetail.setOpMapId(mCs.getOpMapId().longValue());
if (csDetail.getCsCnt() == csDetail.getSkuCnt()) {
csDetail.setCsResultFlag(0);
} else if (csDetail.getCsCnt() > csDetail.getSkuCnt()) {
csDetail.setCsResultFlag(1);
} else {
csDetail.setCsResultFlag(2);
}
mView.isShowLoading(true);
ApiFactory.CsDetail.addCsDetail(csDetail).doFinally(() -> mView.isShowLoading(false))
.subscribe(detail -> {
mView.addInventoryDetailItem(detail, sssku);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
/**
* 根据条形码获取商品
*
* @param barcode 条形码
*/
public void getProductByBarcode(String barcode) {
mView.isShowLoading(true);
mCompositeDisposable.add(
queryProductsByScan(barcode).subscribe(ssskus -> {
mView.isShowLoading(false);
mView.searchGoodsSuc();
if (ssskus.size() > 1) {
mView.addInventoryGoodsItem(ssskus);
} else if (ssskus.size() == 1) {
mView.addInventoryGoodsItem(ssskus.get(0));
} else {
ToastUtils.showShort("没有此商品");
}
})
);
}
/**
* 扫码查询商品
*
* @param barcode 扫描出的条形码
* @return 商品信息
*/
public static Observable<List<Sssku>> queryProductsByScan(String barcode) {
RealmQuery<Sssku> query = DB.getInstance().get(MainPresenter.class).where(Sssku.class);
query.equalTo("spuBarcode", StringUtil.strToLong(barcode)).equalTo("skuStatus", 0);
return Observable.just(query.findAll())
.flatMap(ssskus -> Observable.just(getList(ssskus)));
}
@Override
public void clickInventoryItem(Cs cs) {
mView.isShowLoading(true);
ApiFactory.Cs.getCsDetail(cs.getId()).doFinally(() -> mView.isShowLoading(false))
.subscribe(cslist -> {
mView.showInventoryDetailDialog(cslist);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void delInventoryItem(Cs cs) {
mView.isShowLoading(true);
ApiFactory.Cs.delCsDetail(cs.getId(), cs.getCsNo()).doFinally(() -> mView.isShowLoading(false))
.subscribe(object -> {
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void clickDate() {
mView.showDateFragment();
}
@Override
public void cancelInventoryAdd(Cs cs) {
mView.isShowLoading(true);
ApiFactory.Cs.delCsDetail(cs.getId(), cs.getCsNo()).doFinally(() -> mView.isShowLoading(false))
.subscribe(object -> {
mView.disInventoryDetailFragment(false);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void exitInventoryAdd() {
mView.disInventoryDetailFragment(true);
}
@Override
public void inspectDate(String dateStart, String dateEnd) {
long longStart = TimeUtils.string2Millis(dateStart, new SimpleDateFormat(StringUtil.defaultDatePattern));
long longEnd = TimeUtils.string2Millis(dateEnd, new SimpleDateFormat(StringUtil.defaultDatePattern)) + 86400000L;
if (longStart > longEnd) {
ToastUtils.showShort("日期不符合区间");
mView.showDateAlert(true);
} else {
mView.showDateAlert(false);
getInventoryList(longStart, longEnd, 1, nowPageSize);
}
}
@Override
public void clickStartInventory() {
mView.isShowLoading(true);
ApiFactory.Cs.addCs().doFinally(() -> {
mView.isShowLoading(false);
}).subscribe(cs -> {
if (cs.getCreateTime() == null) {
cs.setCreateTime(System.currentTimeMillis());
}
mView.openInventoryAddFragment(cs);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void getInventoryList(int pageNum, long start, long end) {
mView.isShowLoading(true);
ApiFactory.Cs.querCsList(pageNum, nowPageSize, start, end).doFinally(() -> mView.isShowLoading(false))
.subscribe(csPager -> {
//判断是否能加载更多
mView.loadCs(csPager, start, end);
mView.setInventoryCount(com.blankj.utilcode.util.TimeUtils.millis2String(start, new SimpleDateFormat(StringUtil.defaultDatePattern)) + " ~ " +
com.blankj.utilcode.util.TimeUtils.millis2String(end, new SimpleDateFormat(StringUtil.defaultDatePattern)));
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void getInventoryList(long startdate, long enddate, int pageNumber, int pageSize) {
this.start = startdate;
this.end = enddate;
this.nowPageSize = pageSize;
getInventoryList(pageNumber, start, end);
}
@Override
public void getInventoryList(int PageNumber) {
mView.isShowLoading(true);
ApiFactory.Cs.querCsList(PageNumber, nowPageSize).doFinally(() -> mView.isShowLoading(false))
.subscribe(csPager -> {
//判断是否能加载更多
mView.loadCs(csPager);
mView.setInventoryCount(csPager.getTotalRow());
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
}
package com.xingdata.zzdpos.ui.manage.inventory.adpter;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemInventoryBinding;
import com.xingdata.zzdpos.model.Cs;
import java.util.List;
public class InventoryAdapter extends BaseAdapter<Cs, ItemInventoryBinding> {
public InventoryAdapter(@Nullable List<Cs> data) {
super(R.layout.item_inventory, data);
}
@Override
protected void convert(ItemInventoryBinding mViewBinding, Cs item) {
mViewBinding.tvName.setText(item.getOperName());
mViewBinding.tvPhone.setText(item.getOper_mobile());
mViewBinding.tvDate.setText(TimeUtils.millis2String(item.getCreateTime()) + "");
mViewBinding.tvNum.setText(item.getCsdetailCount() + "");
switch (item.getCsResultFlag()) {
case 0:
mViewBinding.tvResult.setText("相符");
mViewBinding.imgInventory.setImageResource(R.mipmap.ic_consistent);
break;
case 1:
mViewBinding.tvResult.setText("不相符");
mViewBinding.imgInventory.setImageResource(R.mipmap.ic_not_consistent);
break;
}
}
@Override
protected View getItemView(int layoutResId, ViewGroup parent) {
return super.getItemView(layoutResId, parent);
}
}
package com.xingdata.zzdpos.ui.manage.inventory.adpter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.base.BaseViewHolder;
import com.xingdata.zzdpos.databinding.ItemInventoryCartBinding;
import com.xingdata.zzdpos.model.CsDetail;
import java.util.List;
public class InventoryCartAdapter extends BaseAdapter<CsDetail, ItemInventoryCartBinding> {
public InventoryCartAdapter(List<CsDetail> csDetailList) {
super(R.layout.item_inventory_cart, csDetailList);
}
@Override
protected void convert(ItemInventoryCartBinding mViewBinding, CsDetail item) {
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.setCount(item.getCsCnt() + item.getSpuUnitName());
}
@Override
protected void convert(BaseViewHolder helper, CsDetail item) {
super.convert(helper, item);
}
}
package com.xingdata.zzdpos.ui.manage.inventory.adpter;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemInventoryLeftBinding;
import com.xingdata.zzdpos.model.CsDetail;
import java.util.List;
public class InventoryDetailAdapter extends BaseAdapter<CsDetail, ItemInventoryLeftBinding> {
private int count = 1;
public InventoryDetailAdapter(@Nullable List<CsDetail> data) {
super(R.layout.item_inventory_left, data);
}
@Override
protected void convert(ItemInventoryLeftBinding mViewBinding, CsDetail item) {
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.tvStockCount.setText(item.getSkuCnt() + "");
mViewBinding.tvResultCount.setText(item.getCsCnt() + "");
switch (item.getCsResultFlag()) {
case 0://相等
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_equal);
break;
case 1://盘多
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_more);
break;
case 2://盘少
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_less);
break;
}
}
@Override
protected View getItemView(int layoutResId, ViewGroup parent) {
return super.getItemView(layoutResId, parent);
}
}
package com.xingdata.zzdpos.ui.manage.inventory.adpter;
import android.support.annotation.Nullable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import com.facebook.drawee.view.SimpleDraweeView;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.base.BaseViewHolder;
import com.xingdata.zzdpos.databinding.ItemInventoryGoodsBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
public class InventoryGoodsAdapter extends BaseAdapter<Sssku, ItemInventoryGoodsBinding> {
private int count ;
public InventoryGoodsAdapter(@Nullable List<Sssku> data) {
super(R.layout.item_inventory_goods, data);
}
@Override
protected void convert(BaseViewHolder helper, Sssku item) {
if (item.getInventoryCut() == 0) {
item.setInventoryCut(1);
}
count=item.getInventoryCut();
helper.setText(R.id.et_count, item.getInventoryCut() + "");
helper.setText(R.id.tv_goods_name, item.getSpuName())
.setText(R.id.tv_goods_code, item.getSpuBarcode() + "")
.setText(R.id.tv_goods_size, "规格/" + item.getSpuUnitName())
.setText(R.id.tv_goods_price, ConvertUtil.fenToYuan(item.getSkuRetailPrice1(), false))
.setText(R.id.tv_stock, item.getSkuStock() + "");
((SimpleDraweeView) helper.getView(R.id.img_goods)).setImageURI(item.getSpuImg());
helper.getView(R.id.btn_up).setOnClickListener(v -> {
if (count > 0 && count < 9999) {
helper.setText(R.id.et_count, String.valueOf(++count));
item.setInventoryCut(count);
}
});
helper.getView(R.id.btn_down).setOnClickListener(v -> {
if (count == 1) {
item.setInventoryCut(count);
return;
}
if (count > 1 && count < 100) {
helper.setText(R.id.et_count, String.valueOf(--count));
item.setInventoryCut(count);
}
});
((EditText) helper.getView(R.id.et_count)).addTextChangedListener((new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
count = ((EditText) helper.getView(R.id.et_count)).getText().toString().length() == 0 ? 1 : Integer.valueOf(((EditText) helper.getView(R.id.et_count)).getText().toString());
item.setInventoryCut(count);
}
@Override
public void afterTextChanged(Editable editable) {
}
}));
helper.addOnClickListener(R.id.btn_ok);
super.convert(helper, item);
}
@Override
protected void convert(ItemInventoryGoodsBinding mViewBinding, Sssku item) {
}
@Override
protected View getItemView(int layoutResId, ViewGroup parent) {
return super.getItemView(layoutResId, parent);
}
}
package com.xingdata.zzdpos.ui.manage.inventory.dialog;
import android.support.design.widget.BottomSheetBehavior;
import android.support.v7.widget.LinearLayoutManager;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogInventoryCartBinding;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryCartAdapter;
import java.util.List;
public class CsCartDialog extends BaseSheetDialog<InventoryPresenter, DialogInventoryCartBinding> {
private List<CsDetail> mCsDetails;
private String result;
@Override
protected boolean isTransparentBackground() {
return true;
}
@Override
public int getLayoutId() {
return R.layout.dialog_inventory_cart;
}
@Override
public void initView() {
// init C
InventoryCartAdapter mInventoryCartAdapter = new InventoryCartAdapter(mCsDetails);
mViewBinding.rlCart.setAdapter(mInventoryCartAdapter);
mViewBinding.rlCart.setLayoutManager(new LinearLayoutManager(mContext));
mViewBinding.setCartCount(getCount());
mViewBinding.setResult(result);
// set Other listener
mViewBinding.tvOk.setOnClickListener(view -> mPresenter.exitInventoryAdd());
}
public void setResult(String s) {
result = s;
}
private int getCount() {
long i = 0;
for (CsDetail csDetail : mCsDetails) {
i = i + csDetail.getCsCnt();
}
return (int) i;
}
@Override
public void onStart() {
super.onStart();
//默认全屏展开
mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
public CsCartDialog setCsDetails(List<CsDetail> csDetailList) {
this.mCsDetails = csDetailList;
return this;
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}
package com.xingdata.zzdpos.ui.manage.inventory.fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
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.FragmentInventoryAddBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryGoodsAdapter;
import com.xingdata.zzdpos.ui.manage.inventory.dialog.CsCartDialog;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/11/24.
*/
public class InventoryAddFragment extends BaseFragment<InventoryPresenter, FragmentInventoryAddBinding> {
private List<Sssku> topCsList = new ArrayList<>();
private InventoryGoodsAdapter mInventoryGoodsAdapter;
private CsCartDialog mCartDialog = new CsCartDialog();
/**
* 当前购物车信息
*/
private List<CsDetail> bottomCsList = new ArrayList<>();
// private InventoryDetailAdapter mInventoryDetailAdapter;
private Cs mCs;
private boolean isResult = true;
@Override
public int getLayoutId() {
return R.layout.fragment_inventory_add;
}
@Override
public void initView() {
initRecycler();
mViewBinding.setCartCount(0);
mViewBinding.icTitle.edTitle.setHint(R.string.inventory_add_et_hint);
mViewBinding.icTitle.edTitle.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
if (i == EditorInfo.IME_ACTION_SEARCH) {
mPresenter.getProductByBarcode(mViewBinding.icTitle.edTitle.getText().toString());
hideSoftInput();
}
return false;
}
});
mViewBinding.ivCart.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
if (bottomCsList.size() == 0) {
return;
}
mCartDialog.setCsDetails(bottomCsList).show((BaseActivity) getActivity());
}
});
mViewBinding.btnEnd.setOnClickListener(view -> {
mPresenter.exitInventoryAdd();
});
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "退出前是否删除本次盘库记录").setClick(view1 -> {
mPresenter.cancelInventoryAdd(mCs);
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
}).setCancelables(false).show((BaseActivity) mContext);
}
});
// mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
// @Override
// protected void myOnClickListener(View v) {
// ZX_PrintPOS.getInstance(mContext).printInventory(1, mCs);
// }
// });
}
private void initRecycler() {
mViewBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mInventoryGoodsAdapter = new InventoryGoodsAdapter(topCsList);
mInventoryGoodsAdapter.setOnItemLongClickListener((adapter, view, position) -> {
PromptDialog delDialog = new PromptDialog();
delDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "是否删除").setClick(new View.OnClickListener() {
@Override
public void onClick(View view) {
adapter.getData().remove(position);
adapter.notifyDataSetChanged();
delDialog.dismiss();
}
}, new View.OnClickListener() {
@Override
public void onClick(View view) {
delDialog.dismiss();
}
}).setCancelables(false).show((BaseActivity) mContext);
return false;
});
mInventoryGoodsAdapter.setOnItemChildClickListener((adapter, view, position) -> {
switch (view.getId()) {
case R.id.btn_ok:
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "请确认添加记录").setClick(view1 -> {
mPresenter.clickOkCsDetail(mInventoryGoodsAdapter.getData().get(position), mCs);
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
}).setCancelables(false).show((BaseActivity) mContext);
break;
}
});
mViewBinding.recyclerView.setAdapter(mInventoryGoodsAdapter);
}
public void addInventoryGoodsItem(List<Sssku> list) {
for (Sssku s : list) {
if (topCsList.contains(s)) {
ToastUtils.showShort("商品已存在");
} else {
if (bottomCsList.contains(s)) {
ToastUtils.showShort("商品已盘点");
} else {
topCsList.add(s);
}
}
}
mInventoryGoodsAdapter.notifyDataSetChanged();
}
public void addInventoryGoodsItem(Sssku sssku) {
if (!topCsList.contains(sssku)) {
if (bottomCsList.contains(sssku)) {
ToastUtils.showShort("商品已盘点");
} else {
topCsList.add(sssku);
}
} else {
ToastUtils.showShort("商品已存在");
}
mInventoryGoodsAdapter.notifyDataSetChanged();
}
public void addInventoryDetailItem(CsDetail csDetail, Sssku sssku) {
if (csDetail.getCsResultFlag() != 0) {
isResult = false;
}
bottomCsList.add(csDetail);
mViewBinding.setCartCount(getSumNum());
topCsList.remove(sssku);
mInventoryGoodsAdapter.notifyDataSetChanged();
if (isResult) {
mViewBinding.setResult("相符");
mCartDialog.setResult("相符");
} else {
mViewBinding.setResult("不相符");
mCartDialog.setResult("不相符");
}
}
private int getSumNum() {
long i = 0;
for (CsDetail csDetail : bottomCsList) {
i = i + csDetail.getCsCnt();
}
return (int) i;
}
public void setCs(Cs cs) {
mCs = cs;
mCs.setCsdetailList(bottomCsList);
}
@Override
public boolean onBackPressedSupport() {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "退出前是否删除本次盘库记录").setClick(view1 -> {
mPresenter.cancelInventoryAdd(mCs);
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
pop();
}).setCancelables(false).show((BaseActivity) mContext);
return true;
}
public void searchGoodsSuc() {
// mViewBinding.etKeyword.setText("");
// KeyboardUtils.hideSoftInput(getActivity());
}
}
package com.xingdata.zzdpos.ui.manage.inventory.fragment;
import android.databinding.DataBindingUtil;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.text.Html;
import android.util.TimeUtils;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.PopupWindow;
import android.widget.TextView;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentInventoryBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Ossku;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryAdapter;
import com.xingdata.zzdpos.util.OnClickListener;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2017/11/24.
*/
public class InventoryFragment extends BaseFragment<InventoryPresenter, FragmentInventoryBinding> {
private InventoryAdapter mInventoryAdapter;
private int pageNum;
private Long start;
private Long end;
@Override
public int getLayoutId() {
return R.layout.fragment_inventory;
}
@Override
public void initView() {
start = null;
end = null;
pageNum = 1;
initTitle();
mViewBinding.btnAdd.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mPresenter.clickStartInventory();
}
});
mViewBinding.recyclerInventory.setLayoutManager(new LinearLayoutManager(getActivity()));
mInventoryAdapter = new InventoryAdapter(new ArrayList<>());
mInventoryAdapter.setEmptyView(getEmptyView());
mViewBinding.recyclerInventory.setAdapter(mInventoryAdapter);
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mInventoryAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.recyclerInventory);
mInventoryAdapter.setOnItemClickListener((adapter, view, position) -> {
mPresenter.clickInventoryItem(mInventoryAdapter.getData().get(position));
});
mViewBinding.btnAdd.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mPresenter.clickStartInventory();
}
}
);
mInventoryAdapter.setOnItemLongClickListener((adapter, view, position) -> {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "请确认删除此记录").setClick(view1 -> {
mPresenter.delInventoryItem(mInventoryAdapter.getData().get(position));
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
}).setCancelables(false).show((BaseActivity) mContext);
return false;
});
mPresenter.getInventoryList(pageNum);
}
private void initTitle() {
mViewBinding.icTitle.edTitle.setVisibility(View.GONE);
mViewBinding.icTitle.tvTitle.setText("盘库记录");
mViewBinding.icTitle.tvTitle.setVisibility(View.VISIBLE);
mViewBinding.icTitle.ivRight.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mPresenter.clickDate();
}
});
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
getActivity().finish();
}
});
}
//
public void setCount(int count) {
mViewBinding.tvCount.setText("共" + count + "人次盘库记录");
}
public void setCount(String count) {
mViewBinding.tvCount.setText(count);
}
public void onRefresh() {
start = null;
end = null;
pageNum = 1;
mPresenter.getInventoryList(pageNum);
}
private void onLoadMore() {
pageNum++;
if (start != null) {
mPresenter.getInventoryList(pageNum, start, end);
} else {
mPresenter.getInventoryList(pageNum);
}
}
/**
* 设置数据
*
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<Cs> pager, boolean isRefresh) {
if (isRefresh) {
mInventoryAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
pageNum = 1;
}
if (isRefresh) mInventoryAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mInventoryAdapter.addData(pager.getList());
if (pager.isLastPage()) mInventoryAdapter.loadMoreEnd(isRefresh);
else mInventoryAdapter.loadMoreComplete();
}
private View getEmptyView() {
View view = getLayoutInflater().inflate(R.layout.view_empty, null);
TextView textView = view.findViewById(R.id.tv_empty);
textView.setText(R.string.inventory_empty_hint);
return view;
}
public void setDate(long start, long end) {
this.start = start;
this.end = end;
}
}
package com.xingdata.zzdpos.ui.manage.manageMenu;
import android.util.TypedValue;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentStatisticsDateBinding;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.util.OnClickListener;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
public class ManageDateFragment extends BaseFragment<InventoryPresenter, FragmentStatisticsDateBinding> {
private float textSize;
private View.OnFocusChangeListener mOnFocusChangeListener;
private View.OnClickListener mOnClickListener;
@Override
public int getLayoutId() {
return R.layout.fragment_statistics_date;
}
@Override
public void initView() {
initListener();
textSize = mViewBinding.editStart.getTextSize();
mViewBinding.editStart.setOnFocusChangeListener(mOnFocusChangeListener);
mViewBinding.editEnd.setOnFocusChangeListener(mOnFocusChangeListener);
mViewBinding.editStart.setOnClickListener(mOnClickListener);
mViewBinding.editEnd.setOnClickListener(mOnClickListener);
String startAll = StringUtil.monthStart();
String[] stringsStart = startAll.split("-");
mViewBinding.datePickerStart.setMaxDate(System.currentTimeMillis());
mViewBinding.datePickerStart.init(2000, 0, 0, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
String month = String.valueOf(i1 + 1).length() >= 2 ? String.valueOf(i1 + 1) : "0" + String.valueOf(i1 + 1);
String day = String.valueOf(i2).length() >= 2 ? String.valueOf(i2) : "0" + String.valueOf(i2);
mViewBinding.editStart.setText(i + "-" + month + "-" + day);
}
});
String endAll = TimeUtils.millis2String(System.currentTimeMillis(), new SimpleDateFormat(StringUtil.defaultDatePattern));
String[] stringsEnd = endAll.split("-");
mViewBinding.datePickerEnd.setMaxDate(System.currentTimeMillis());
mViewBinding.datePickerEnd.init(2000, 0, 0, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
String month = String.valueOf(i1 + 1).length() >= 2 ? String.valueOf(i1 + 1) : "0" + String.valueOf(i1 + 1);
String day = String.valueOf(i2).length() >= 2 ? String.valueOf(i2) : "0" + String.valueOf(i2);
mViewBinding.editEnd.setText(i + "-" + month + "-" + day);
}
});
mViewBinding.tvOk.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mPresenter.inspectDate(mViewBinding.editStart.getText().toString(), mViewBinding.editEnd.getText().toString());
}
});
mViewBinding.tvCancel.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
pop();
}
});
new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
mViewBinding.datePickerStart.updateDate(Integer.valueOf(stringsStart[0]), Integer.valueOf(stringsStart[1]) - 1, Integer.valueOf(stringsStart[2]));
mViewBinding.datePickerEnd.updateDate(Integer.valueOf(stringsEnd[0]), Integer.valueOf(stringsEnd[1]) - 1, Integer.valueOf(stringsEnd[2]));
mViewBinding.editStart.performClick();
mViewBinding.editStart.setText(startAll);
mViewBinding.editEnd.setText(endAll);
}
}, 10);
}
public void showDateAlert(Boolean f) {
if (f) {
mViewBinding.imgAlert.setVisibility(View.VISIBLE);
} else {
mViewBinding.imgAlert.setVisibility(View.GONE);
}
}
private void initListener() {
mOnFocusChangeListener = new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
((TextView) view).setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize + 5);
((TextView) view).setTextColor(getResources().getColor(R.color.red_guanyu));
String[] strings = ((TextView) view).getText().toString().split("-");
if (mViewBinding.datePickerStart.getVisibility() == View.GONE) {
mViewBinding.datePickerStart.setVisibility(View.VISIBLE);
mViewBinding.datePickerEnd.setVisibility(View.GONE);
} else {
mViewBinding.datePickerStart.setVisibility(View.GONE);
mViewBinding.datePickerEnd.setVisibility(View.VISIBLE);
}
} else {
((TextView) view).setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
((TextView) view).setTextColor(getResources().getColor(R.color.gray_kongming));
}
}
};
mOnClickListener = new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
if (v.isFocused()) {
} else {
v.setFocusable(true);
v.setFocusableInTouchMode(true);
v.requestFocus();
}
}
};
}
}
...@@ -11,7 +11,6 @@ import com.chad.library.adapter.base.BaseQuickAdapter; ...@@ -11,7 +11,6 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.databinding.ActivityMarketingMenuBinding; import com.xingdata.zzdpos.databinding.ActivityMarketingMenuBinding;
import com.xingdata.zzdpos.ui.manage.bale.BaleActivity;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectActivity; import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectActivity;
import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity; import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity; import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity;
...@@ -64,7 +63,7 @@ public class ManageMenuActivity extends AppCompatActivity { ...@@ -64,7 +63,7 @@ public class ManageMenuActivity extends AppCompatActivity {
} }
break; break;
case C.MENU.MENU_MANAGER_GOODS: { case C.MENU.MENU_MANAGER_GOODS: {
ActivityUtils.startActivity(ManageMenuActivity.this, SsskuActivity.class);
} }
break; break;
case C.MENU.MENU_MANAGER_BALE: { case C.MENU.MENU_MANAGER_BALE: {
...@@ -80,7 +79,7 @@ public class ManageMenuActivity extends AppCompatActivity { ...@@ -80,7 +79,7 @@ public class ManageMenuActivity extends AppCompatActivity {
} }
break; break;
case C.MENU.MENU_MANAGER_INVENTORY: { case C.MENU.MENU_MANAGER_INVENTORY: {
ActivityUtils.startActivity(ManageMenuActivity.this, InventoryActivity.class);
} }
break; break;
default: { default: {
......
package com.xingdata.zzdpos.ui.manage.otherselect; package com.xingdata.zzdpos.ui.manage.otherselect;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View;
import com.blankj.utilcode.util.FragmentUtils;
import com.blankj.utilcode.util.KeyboardUtils; import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
...@@ -9,11 +11,16 @@ import com.xingdata.zzdpos.base.BaseActivity; ...@@ -9,11 +11,16 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityOtherSelectBinding; import com.xingdata.zzdpos.databinding.ActivityOtherSelectBinding;
import com.xingdata.zzdpos.model.Ossku; import com.xingdata.zzdpos.model.Ossku;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.otherselect.fragment.OtherDetailFragment;
import com.xingdata.zzdpos.ui.manage.otherselect.fragment.OtherListFragment; import com.xingdata.zzdpos.ui.manage.otherselect.fragment.OtherListFragment;
import com.xingdata.zzdpos.util.OnClickListener;
public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, ActivityOtherSelectBinding> implements OtherSelectContract.View { public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, ActivityOtherSelectBinding> implements OtherSelectContract.View {
private OtherListFragment mOtherListFragment = new OtherListFragment(); private OtherListFragment mOtherListFragment = new OtherListFragment();
private OtherDetailFragment mOtherDetailFragment = new OtherDetailFragment();
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override @Override
public int getLayoutId() { public int getLayoutId() {
...@@ -22,26 +29,57 @@ public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, Acti ...@@ -22,26 +29,57 @@ public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, Acti
@Override @Override
public void initView() { public void initView() {
loadRootFragment(R.id.fragment_container, mOtherListFragment, false, false); mViewBinding.lyTitle.ivRight.setVisibility(View.GONE);
FragmentUtils.add(getSupportFragmentManager(), mOtherListFragment, mViewBinding.fragmentContainer.getId(), false, true);
mViewBinding.lyTitle.edTitle.setOnKeyListener((v, keyCode, event) -> { mViewBinding.lyTitle.edTitle.setOnKeyListener((v, keyCode, event) -> {
if (keyCode == KeyEvent.KEYCODE_ENTER) if (keyCode == KeyEvent.KEYCODE_ENTER)
search(mViewBinding.lyTitle.edTitle.getText().toString().trim()); search(mViewBinding.lyTitle.edTitle.getText().toString().trim());
return false; return false;
}); });
mViewBinding.lyTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
if (mViewBinding.lyTitle.edTitle.isFocused()) {
mViewBinding.lyTitle.edTitle.clearFocus();
}
if (mOtherDetailFragment.isAdded()) {
mOtherDetailFragment.pop();
return;
}
finish();
}
});
} }
@Override @Override
public void isShowLoading(Boolean is) { public void isShowLoading(Boolean is) {
if (is) {
mLoadingDialog.show((BaseActivity) mContext);
} else {
if (mLoadingDialog.isShowing) {
mLoadingDialog.dismiss();
}
}
} }
@Override @Override
public void loadOssku(Pager<Ossku> osskuList, boolean isRefresh) { public void loadOssku(Pager<Ossku> osskuList, boolean isRefresh) {
if (mOtherDetailFragment.isAdded()) {
mOtherDetailFragment.pop();
}
mOtherListFragment.setData(osskuList, isRefresh); mOtherListFragment.setData(osskuList, isRefresh);
} }
@Override
public void showOsskuDetail(Ossku ossku) {
mOtherDetailFragment.setOssku(ossku);
FragmentUtils.add(getSupportFragmentManager(), mOtherDetailFragment, mViewBinding.fragmentContainer.getId(), false, true);
}
@Override @Override
protected void onPause() { protected void onPause() {
KeyboardUtils.hideSoftInput(this); KeyboardUtils.hideSoftInput(this);
......
...@@ -21,10 +21,13 @@ public interface OtherSelectContract { ...@@ -21,10 +21,13 @@ public interface OtherSelectContract {
* 加载列表 * 加载列表
*/ */
void loadOssku(Pager<Ossku> osskuList, boolean isRefresh); void loadOssku(Pager<Ossku> osskuList, boolean isRefresh);
void showOsskuDetail(Ossku ossku);
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
public abstract void clickOsskuItem(Ossku ossku);
/** /**
* 临库查询界面 - 查找 * 临库查询界面 - 查找
* *
......
...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.manage.otherselect; ...@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.manage.otherselect;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Ossku;
public class OtherSelectPresenter extends OtherSelectContract.Presenter { public class OtherSelectPresenter extends OtherSelectContract.Presenter {
...@@ -18,6 +19,11 @@ public class OtherSelectPresenter extends OtherSelectContract.Presenter { ...@@ -18,6 +19,11 @@ public class OtherSelectPresenter extends OtherSelectContract.Presenter {
} }
@Override
public void clickOsskuItem(Ossku ossku) {
mView.showOsskuDetail(ossku);
}
@Override @Override
public void searchGoodsFirst(String keyword) { public void searchGoodsFirst(String keyword) {
wd = keyword; wd = keyword;
......
...@@ -7,11 +7,13 @@ import android.widget.TextView; ...@@ -7,11 +7,13 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentOtherDetailBinding;
import com.xingdata.zzdpos.databinding.FragmentOtherListBinding; import com.xingdata.zzdpos.databinding.FragmentOtherListBinding;
import com.xingdata.zzdpos.model.Ossku; import com.xingdata.zzdpos.model.Ossku;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectPresenter; import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectPresenter;
import com.xingdata.zzdpos.ui.manage.otherselect.adpter.OtherSelectAdapter; import com.xingdata.zzdpos.ui.manage.otherselect.adpter.OtherSelectAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -19,71 +21,32 @@ import java.util.ArrayList; ...@@ -19,71 +21,32 @@ import java.util.ArrayList;
* Created by Administrator on 2017/11/23. * Created by Administrator on 2017/11/23.
*/ */
public class OtherDetailFragment extends BaseFragment<OtherSelectPresenter, FragmentOtherListBinding> { public class OtherDetailFragment extends BaseFragment<OtherSelectPresenter, FragmentOtherDetailBinding> {
private OtherSelectAdapter mOtherSelectAdapter; private Ossku ossku;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.fragment_other_list; return R.layout.fragment_other_detail;
} }
@Override @Override
public void initView() { public void initView() {
if (ossku != null) {
mViewBinding.tvGoodsName.setText(ossku.getSpuName());
mOtherSelectAdapter = new OtherSelectAdapter(new ArrayList<>()); mViewBinding.tvGoodsCode.setText(ossku.getSpuBarcode() + "");
mOtherSelectAdapter.setEmptyView(getEmptyView(R.string.empty_other_select)); mViewBinding.tvPrice.setText(ConvertUtil.fenToYuan(ossku.getSkuRetailPrice1(), false));
mViewBinding.recyclerOtherSelcet.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.tvGoodsSize.setText("规格/" + ossku.getSpuUnitName());
mViewBinding.recyclerOtherSelcet.setAdapter(mOtherSelectAdapter); mViewBinding.imgGoods.setImageURI(ossku.getSpuImg());
mViewBinding.setStock("库存:" + ossku.getSkuStock());
mViewBinding.setShopName(ossku.getShopName());
mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { mViewBinding.setAddress(ossku.getCityAddress());
@Override mViewBinding.setPhone(ossku.getContactTel());
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
// intent.putExtra(Saleorder.class.getName(), mStatisticsAdapter.getData().get(position).getId());
// ActivityUtils.startActivity(intent);
}
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mOtherSelectAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.recyclerOtherSelcet);
}
private void onRefresh() {
mPresenter.refresh();
}
private void onLoadMore() {
mPresenter.loadMore();
}
/**
* 设置数据
*
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<Ossku> pager, boolean isRefresh) {
if (isRefresh) {
mOtherSelectAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
} }
if (isRefresh) mOtherSelectAdapter.setNewData(pager.getList());
else if (pager.getList().size() > 0) mOtherSelectAdapter.addData(pager.getList());
if (pager.isLastPage()) mOtherSelectAdapter.loadMoreEnd(isRefresh);
else mOtherSelectAdapter.loadMoreComplete();
} }
private View getEmptyView(int resHint) { public void setOssku(Ossku ossku) {
View view = getLayoutInflater().inflate(R.layout.view_empty, null); this.ossku = ossku;
view.setBackgroundResource(R.color.white_caocao);
((TextView) view.findViewById(R.id.tv_empty)).setText(resHint);
return view;
} }
......
...@@ -51,9 +51,7 @@ public class OtherListFragment extends BaseFragment<OtherSelectPresenter, Fragme ...@@ -51,9 +51,7 @@ public class OtherListFragment extends BaseFragment<OtherSelectPresenter, Fragme
mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override @Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class); mPresenter.clickOsskuItem(mOtherSelectAdapter.getData().get(position));
// intent.putExtra(Saleorder.class.getName(), mStatisticsAdapter.getData().get(position).getId());
// ActivityUtils.startActivity(intent);
} }
}); });
......
...@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.replenishment; ...@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.replenishment;
import android.util.Log; import android.util.Log;
import android.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
...@@ -31,7 +32,11 @@ public class ReplenishmentPresenter extends ReplenishmentContract.Presenter { ...@@ -31,7 +32,11 @@ public class ReplenishmentPresenter extends ReplenishmentContract.Presenter {
mView.isShowLoading(false); mView.isShowLoading(false);
}) })
.subscribe(ssskuPager -> { .subscribe(ssskuPager -> {
mView.openReplenishmentDetailFragment(ssskuPager.getList()); if (ssskuPager.getList().size() == 0) {
ToastUtils.showShort("库存正常,无需补货");
} else {
mView.openReplenishmentDetailFragment(ssskuPager.getList());
}
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); ToastUtils.showShort(throwable.getMessage());
}); });
......
...@@ -54,6 +54,7 @@ public class ReplenishmentDetailFragment extends BaseFragment<ReplenishmentPrese ...@@ -54,6 +54,7 @@ public class ReplenishmentDetailFragment extends BaseFragment<ReplenishmentPrese
@Override @Override
public void initView() { public void initView() {
mViewBinding.lyTitle.edTitle.setHint(R.string.inventory_add_et_hint); mViewBinding.lyTitle.edTitle.setHint(R.string.inventory_add_et_hint);
mViewBinding.lyTitle.edTitle.setText("");
Drawable drawableTop = getResources().getDrawable(R.mipmap.but_up); Drawable drawableTop = getResources().getDrawable(R.mipmap.but_up);
Drawable drawableBottom = getResources().getDrawable(R.mipmap.but_unfurled); Drawable drawableBottom = getResources().getDrawable(R.mipmap.but_unfurled);
drawableTop.setBounds(0, 0, (int) mViewBinding.tvShopTitle.getTextSize() - 10, (int) mViewBinding.tvShopTitle.getTextSize() - 10); drawableTop.setBounds(0, 0, (int) mViewBinding.tvShopTitle.getTextSize() - 10, (int) mViewBinding.tvShopTitle.getTextSize() - 10);
......
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() {
return R.layout.activity_sssku;
}
@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 onBackPressedSupport() {
}
@Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
mManagerFragment.loadSkus(skus, isRefresh);
}
@Override
public void loadSkugrps(List<Sskugrp> sskugrps) {
mManagerFragment.loadSkugrps(sskugrps);
mSkugrpFragment.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);
this.popTo(EditorFragment.class, false);
}
@Override
public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.popTo(ManagerFragment.class, false);
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();
}
}
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();
/**
* 关闭所有对话框
*/
void dismissAllDialog();
}
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 skugrpName 分组名
*/
public abstract void clickAddSkugrp(String skugrpName);
/**
* 分组页面 - 删除分组.
*
* @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 clickAddSkugrp(String skugrpName) {
mView.showLoadingDialog();
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpName(skugrpName);
mCompositeDisposable.add(
ApiFactory.Sskugrp.add(sskugrp)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@Override
public void clickDeleteSkugrp(Sskugrp sskugrp) {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sskugrp.delete(sskugrp.getSkuGrpId())
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@Override
public void clickEditSkugrp(Sskugrp sskugrp) {
mView.showLoadingDialog();
sskugrp.setCreateTime(null);
sskugrp.setUpdateTime(null);
mCompositeDisposable.add(
ApiFactory.Sskugrp.update(sskugrp)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@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 && mSkuGrpId == 0L)
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 -> {
mView.loadSkugrps(sskugrpPager.getList());
}
)
);
}
/**
* 获取补货信息
*/
private void getReplenish() {
mCompositeDisposable.add(
ApiFactory.Psb.preOrder().subscribe(ssskuPager -> mView.loadReplenishCount(ssskuPager.getTotalRow()))
);
}
}
package com.xingdata.zzdpos.ui.manage.sssku.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemSsskuSkuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
public class SkuAdapter extends BaseAdapter<Sssku, ItemSsskuSkuBinding> {
public SkuAdapter() {
super(R.layout.item_sssku_sku, new ArrayList<>());
}
@Override
protected void convert(ItemSsskuSkuBinding mViewBinding, Sssku item) {
mViewBinding.ivPic.setImageURI(item.getSpuImg());
mViewBinding.tvAmt.setText(ConvertUtil.fenToYuan(item.getSkuRetailPrice1()));
mViewBinding.setSpuName(item.getSpuName());
mViewBinding.setSpuUnitName(item.getSpuUnitName());
}
}
package com.xingdata.zzdpos.ui.manage.sssku.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSelectedAdapter;
import com.xingdata.zzdpos.base.BaseViewHolder;
import com.xingdata.zzdpos.databinding.ItemSelectorBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import java.util.ArrayList;
public class SkugrpAdapter extends BaseSelectedAdapter<Sskugrp, ItemSelectorBinding> {
public SkugrpAdapter() {
super(R.layout.item_selector, new ArrayList<>(), false);
}
@Override
protected void convert(BaseViewHolder helper, ItemSelectorBinding mViewBinding, Sskugrp item) {
mViewBinding.setSelected(getSelectedPosition() == helper.getAdapterPosition());
mViewBinding.tvName.getPaint().setFakeBoldText(getSelectedPosition() == helper.getAdapterPosition());
mViewBinding.tvName.setText(item.getSkuGrpName());
}
}
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 android.view.View;
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() {
if (mSskugrp != null) mViewBinding.etName.setText(mSskugrp.getSkuGrpName());
}
@Override
public void onConfirmClick(View view) {
super.onConfirmClick(view);
if (mSskugrp == null) {
mPresenter.clickAddSkugrp(mViewBinding.etName.getText().toString());
} else {
mSskugrp.setSkuGrpName(mViewBinding.etName.getText().toString());
mPresenter.clickEditSkugrp(mSskugrp);
}
}
}
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.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSkugrpMenuBinding> {
private Sskugrp mSskugrp;
@Override
protected boolean isTransparentBackground() {
return true;
}
public SkugrpMenuDialog setSskugrp(Sskugrp sskugrp) {
this.mSskugrp = sskugrp;
return this;
}
@Override
public int getLayoutId() {
return R.layout.dialog_skugrp_menu;
}
@Override
public void initView() {
mViewBinding.tvCancel.setOnClickListener(view -> {
this.dismiss();
});
mViewBinding.tvDelete.setOnClickListener(view -> {
this.dismiss();
new SkugrpDeleteDialog().setSskugrp(mSskugrp).show(((SsskuActivity) getActivity()));
});
mViewBinding.tvUpdate.setOnClickListener(view -> {
this.dismiss();
new SkugrpEditorDialog().setSskugrp(mSskugrp).show(((SsskuActivity) getActivity()));
});
}
}
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.tv.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.ArrayList;
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;
}
@Override
public void initView() {
// 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)));
// 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) {
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
List<Sskugrp> _sskugrps = new ArrayList<>();
_sskugrps.addAll(sskugrps);
_sskugrps.add(0, sskugrp);
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.support.v7.widget.LinearLayoutManager;
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.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SkugrpEditorDialog;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SkugrpMenuDialog;
import java.util.List;
public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSkugrpBinding> {
private List<Sskugrp> mSskugrps;
private SkugrpAdapter mSkugrpAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_skugrp;
}
@Override
public void initView() {
mSkugrpAdapter = new SkugrpAdapter();
mSkugrpAdapter.setNewData(mSskugrps);
mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter);
mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext));
mViewBinding.setVisibility(View.INVISIBLE);
mViewBinding.llSkugrpAdd.setOnClickListener(view -> {
new SkugrpEditorDialog().show(((SsskuActivity) getActivity()));
});
mSkugrpAdapter.setOnItemClickListener((adapter, view, position) -> {
new SkugrpMenuDialog().setSskugrp(mSkugrpAdapter.getData().get(position)).show(((SsskuActivity) getActivity()));
});
}
/**
* 加载商品分组
*
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSskugrps = sskugrps;
if (mSkugrpAdapter == null) return;
mSkugrpAdapter.notifyDataSetChanged();
mViewBinding.setVisibility(sskugrps.size() > 0 ? View.VISIBLE : View.INVISIBLE);
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
...@@ -80,7 +80,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A ...@@ -80,7 +80,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override @Override
public void showEditorFragment(int msType) { 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 @Override
...@@ -168,7 +168,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A ...@@ -168,7 +168,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
* *
* @param titleMode 标题模式 * @param titleMode 标题模式
*/ */
public void showTitleBarByTitleMode(int titleMode) { private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return; if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode); mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText(""); mViewBinding.etSearch.setText("");
......
...@@ -292,12 +292,32 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi ...@@ -292,12 +292,32 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
// listener // listener
mViewBinding.llArea.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_area, mAreaAdapter, (dialog, which) -> { 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.getOnItemSelectedListener().onItemSelected(mAreaAdapter.getStrs()[which]);
mAreaAdapter.setSelectedPosition(which); mAreaAdapter.setSelectedPosition(which);
dialog.dismiss(); dialog.dismiss();
}) })
); );
mViewBinding.llUser.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_user, mUserAdapter, (dialog, which) -> { 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.getOnItemSelectedListener().onItemSelected(mUserAdapter.getStrs()[which]);
mUserAdapter.setSelectedPosition(which); mUserAdapter.setSelectedPosition(which);
dialog.dismiss(); dialog.dismiss();
...@@ -456,7 +476,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi ...@@ -456,7 +476,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
ToastUtils.showShort("请确认输入内容是否正确"); ToastUtils.showShort("请确认输入内容是否正确");
return; return;
} }
mMs.setMsName(mViewBinding.getName()); mMs.setMsName(mViewBinding.etName.getText().toString());
mMs.setMsDateBegin(ConvertUtil.stringToLong(mViewBinding.getDateStart().replaceAll("[\\u4e00-\\u9fa5]+", ""))); mMs.setMsDateBegin(ConvertUtil.stringToLong(mViewBinding.getDateStart().replaceAll("[\\u4e00-\\u9fa5]+", "")));
mMs.setMsDateEnd(ConvertUtil.stringToLong(mViewBinding.getDateEnd().replaceAll("[\\u4e00-\\u9fa5]+", ""))); mMs.setMsDateEnd(ConvertUtil.stringToLong(mViewBinding.getDateEnd().replaceAll("[\\u4e00-\\u9fa5]+", "")));
...@@ -476,6 +496,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi ...@@ -476,6 +496,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
} }
mMs.setMsToolsType(mMs.getMsTools()); mMs.setMsToolsType(mMs.getMsTools());
mMs.setGiftTag(mMs.getMsTools().byteValue()); mMs.setGiftTag(mMs.getMsTools().byteValue());
mMs.setCreateTime(null); mMs.setCreateTime(null);
mMs.setUpdateTime(null); mMs.setUpdateTime(null);
......
...@@ -15,8 +15,6 @@ import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter; ...@@ -15,8 +15,6 @@ import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List; import java.util.List;
public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> { public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> {
private int mSearchType; private int mSearchType;
private SkuAdapter<Sku> mSkuAdapter; private SkuAdapter<Sku> mSkuAdapter;
......
...@@ -15,7 +15,9 @@ public class TypeDisView extends BaseTypeView<ViewTypeDisBinding> { ...@@ -15,7 +15,9 @@ public class TypeDisView extends BaseTypeView<ViewTypeDisBinding> {
if (mMs.getMsTools() == null) return; if (mMs.getMsTools() == null) return;
if (mMs.getMsTools() == C.MS_TYPE.DIS) mViewBinding.rbDis.setChecked(true); if (mMs.getMsTools() == C.MS_TYPE.DIS) mViewBinding.rbDis.setChecked(true);
if (mMs.getMsTools() == C.MS_TYPE.SECOND) mViewBinding.rbSecond.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 @Override
......
...@@ -21,7 +21,6 @@ import java.util.List; ...@@ -21,7 +21,6 @@ import java.util.List;
public class VipFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> { public class VipFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter; private VipAdapter mVipAdapter;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.fragment_send_ticker_vip; return R.layout.fragment_send_ticker_vip;
......
...@@ -5,6 +5,7 @@ import android.app.AlertDialog; ...@@ -5,6 +5,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.databinding.DataBindingUtil; import android.databinding.DataBindingUtil;
import android.graphics.Paint; import android.graphics.Paint;
import android.support.v7.widget.LinearLayoutManager;
import android.util.TimeUtils; import android.util.TimeUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
...@@ -13,19 +14,23 @@ import com.alibaba.fastjson.JSON; ...@@ -13,19 +14,23 @@ import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.xingdata.api.print.ZX_PrintPOS; import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityStatisticsDetailBinding; import com.xingdata.zzdpos.databinding.ActivityStatisticsDetailBinding;
import com.xingdata.zzdpos.databinding.ItemSettleSaledetailBinding; import com.xingdata.zzdpos.databinding.ItemSettleSaledetailBinding;
import com.xingdata.zzdpos.databinding.ViewInventoryDetailBinding;
import com.xingdata.zzdpos.databinding.ViewOrderDetailBinding; import com.xingdata.zzdpos.databinding.ViewOrderDetailBinding;
import com.xingdata.zzdpos.databinding.ViewTicketBinding; import com.xingdata.zzdpos.databinding.ViewTicketBinding;
import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding; import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Saledetail; import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder; import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder; import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog; import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.main.MainActivity; import com.xingdata.zzdpos.ui.main.MainActivity;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryDetailAdapter;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
...@@ -57,6 +62,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese ...@@ -57,6 +62,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
Long data = getIntent().getLongExtra(Saleorder.class.getName(), -1); Long data = getIntent().getLongExtra(Saleorder.class.getName(), -1);
VipRechargeOrder vipRechargeOrder = (VipRechargeOrder) getIntent().getSerializableExtra(VipRechargeOrder.class.getName()); VipRechargeOrder vipRechargeOrder = (VipRechargeOrder) getIntent().getSerializableExtra(VipRechargeOrder.class.getName());
Ticket ticket = (Ticket) getIntent().getSerializableExtra(Ticket.class.getName()); Ticket ticket = (Ticket) getIntent().getSerializableExtra(Ticket.class.getName());
Cs cs = (Cs) getIntent().getSerializableExtra(Cs.class.getName());
if (data > 0) { if (data > 0) {
mPresenter.getOrderDetail(String.valueOf(data)); mPresenter.getOrderDetail(String.valueOf(data));
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_order_detail_hint); mViewBinding.icTitle.tvTitle.setText(R.string.statistics_order_detail_hint);
...@@ -69,6 +75,10 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese ...@@ -69,6 +75,10 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_used_ticket_hint); mViewBinding.icTitle.tvTitle.setText(R.string.statistics_used_ticket_hint);
getTicketSuss(ticket); getTicketSuss(ticket);
} }
if (cs != null) {
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_inventory_detail_hint);
getCsSuss(cs);
}
} }
} }
...@@ -88,6 +98,44 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese ...@@ -88,6 +98,44 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
} }
private void getCsSuss(Cs cs) {
mViewBinding.viewCs.getViewStub().inflate();
ViewInventoryDetailBinding viewInventoryDetailBinding = DataBindingUtil.bind(mViewBinding.viewCs.getRoot());
viewInventoryDetailBinding.replenishmentLeftRecycler.setLayoutManager(new LinearLayoutManager(this));
InventoryDetailAdapter mInventoryDetailAdapter = new InventoryDetailAdapter(cs.getCsdetailList());
viewInventoryDetailBinding.replenishmentLeftRecycler.setAdapter(mInventoryDetailAdapter);
mViewBinding.btnPrint.setText("取消");
mViewBinding.btnReturn.setText("打印清单");
viewInventoryDetailBinding.setOperName(cs.getOperName());
viewInventoryDetailBinding.setDate(com.blankj.utilcode.util.TimeUtils.millis2String(cs.getCreateTime()));
viewInventoryDetailBinding.setSumNum(cs.getCount() + "");
switch (cs.getCsResultFlag()) {
case 0:
viewInventoryDetailBinding.setFinallyResult("相符");
break;
case 1:
viewInventoryDetailBinding.setFinallyResult("不相符");
break;
}
mViewBinding.btnReturn.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, cs);
mViewBinding.btnReturn.setEnabled(false);
mViewBinding.btnReturn.setText("已打印");
}
});
mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
finish();
}
});
}
private void getVipRechargeOrderSuss(VipRechargeOrder vipRechargeOrder) { private void getVipRechargeOrderSuss(VipRechargeOrder vipRechargeOrder) {
mViewBinding.btnReturn.setVisibility(View.GONE); mViewBinding.btnReturn.setVisibility(View.GONE);
mViewBinding.viewVipRecharge.getViewStub().inflate(); mViewBinding.viewVipRecharge.getViewStub().inflate();
......
...@@ -121,7 +121,7 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin ...@@ -121,7 +121,7 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
@Override @Override
public void showCartDialog(Saleorder saleorder, List<Saledetail> saledetails) { public void showCartDialog(Saleorder saleorder, List<Saledetail> saledetails) {
mCartDialog.setSaleorder(saleorder).setSaledetails(saledetails).show(this); mCartDialog.setSaleorder(saleorder).setSaledetails(saledetails).show(this);
} }
@Override @Override
public void showMsDialog(List<Ms> mss) { public void showMsDialog(List<Ms> mss) {
......
...@@ -193,7 +193,6 @@ interface StoreContract { ...@@ -193,7 +193,6 @@ interface StoreContract {
*/ */
public abstract void clearCart(); public abstract void clearCart();
/** /**
* 主页面 - 搜索框焦点改变 * 主页面 - 搜索框焦点改变
* *
......
...@@ -25,6 +25,7 @@ public class SkuAdapter<T extends BaseSku> extends BaseAdapter<T, ItemStoreSkuBi ...@@ -25,6 +25,7 @@ public class SkuAdapter<T extends BaseSku> extends BaseAdapter<T, ItemStoreSkuBi
private StoreFragment.OnCountChangeListener mOnCountChangeListener; private StoreFragment.OnCountChangeListener mOnCountChangeListener;
public void setSaledetails(List<Saledetail> saledetails) { public void setSaledetails(List<Saledetail> saledetails) {
if (saledetails == null) return;
this.mSaledetails = saledetails; this.mSaledetails = saledetails;
} }
......
...@@ -307,6 +307,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin ...@@ -307,6 +307,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
@Override @Override
public void onAnimationEnd(Animator animation) { public void onAnimationEnd(Animator animation) {
// 执行添加方法
mPresenter.clickAddSku(sku, value); mPresenter.clickAddSku(sku, value);
// 把执行动画的商品图片从父布局中移除 // 把执行动画的商品图片从父布局中移除
mViewBinding.clStore.removeView(icon); mViewBinding.clStore.removeView(icon);
......
...@@ -4,10 +4,13 @@ import com.xingdata.zzdpos.R; ...@@ -4,10 +4,13 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityVipBinding; import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta; import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip; 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.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
...@@ -40,6 +43,21 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding> ...@@ -40,6 +43,21 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
mPresenter.vipInfoFragment.ticketQuerySus(ticketPager); 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 @Override
public void getVipLevelSus(Pager<Level> levelPager) { public void getVipLevelSus(Pager<Level> levelPager) {
mPresenter.vipListFragment.getVipLevelSus(levelPager); mPresenter.vipListFragment.getVipLevelSus(levelPager);
......
...@@ -3,10 +3,13 @@ package com.xingdata.zzdpos.ui.vip; ...@@ -3,10 +3,13 @@ package com.xingdata.zzdpos.ui.vip;
import com.xingdata.zzdpos.base.BasePresenter; import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView; import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level; import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager; import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta; import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket; import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip; import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import java.util.List; import java.util.List;
...@@ -15,11 +18,24 @@ public interface VipContract { ...@@ -15,11 +18,24 @@ public interface VipContract {
interface View extends BaseView { interface View extends BaseView {
void addVip(); void addVip();
void getVipLevelSus(Pager<Level> levelPager); void getVipLevelSus(Pager<Level> levelPager);
void getVipListSus(Pager<Vip> vipPager, int pageNumber); void getVipListSus(Pager<Vip> vipPager, int pageNumber);
void getVipNumberSus(Sta sta); void getVipNumberSus(Sta sta);
void addVipSus(Vip vip); void addVipSus(Vip vip);
void ticketQuerySus(List<Ticket> ticketPager); 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> { abstract class Presenter extends BasePresenter<View> {
...@@ -29,8 +45,15 @@ public interface VipContract { ...@@ -29,8 +45,15 @@ public interface VipContract {
pageSize); pageSize);
public abstract void getVipNumber(); public abstract void getVipNumber();
public abstract void addVip(Vip vip); public abstract void addVip(Vip vip);
public abstract void ticketQuery(Long vipID); 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; ...@@ -4,16 +4,20 @@ package com.xingdata.zzdpos.ui.vip;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory; import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Vip; 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.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
public class VipPresenter extends VipContract.Presenter { public class VipPresenter extends VipContract.Presenter {
public VipListFragment vipListFragment=new VipListFragment(); public VipListFragment vipListFragment = new VipListFragment();
public VipInfoEditFragment vipInfoEditFragment=new VipInfoEditFragment(); public VipInfoEditFragment vipInfoEditFragment = new VipInfoEditFragment();
public VipInfoFragment vipInfoFragment = new VipInfoFragment(); public VipInfoFragment vipInfoFragment = new VipInfoFragment();
public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment(); public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment();
public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment();
public VipMscardListFragment vipMscardListFragment = new VipMscardListFragment();
@Override @Override
public void onAttached() { public void onAttached() {
...@@ -79,13 +83,35 @@ public class VipPresenter extends VipContract.Presenter { ...@@ -79,13 +83,35 @@ public class VipPresenter extends VipContract.Presenter {
} }
@Override @Override
public void saleorderQuery(Long vipID) { public void saleorderQuery(Long vipID, int pageNumber) {
ApiFactory.Saleorder.querySaleorderByVipId(vipID,0,100).subscribe(ticketList -> { ApiFactory.Saleorder.querySaleorderByVipId(vipID, pageNumber, 5).subscribe(saleorder -> {
// mView.ticketQuerySus(ticketList); mView.getSaleorderSus(saleorder);
}, throwable -> { }, throwable -> {
ToastUtils.showShort(throwable.getMessage()); 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> { ...@@ -27,6 +27,6 @@ public class VipListAdapter extends BaseAdapter<Vip, ItemVipListItemBinding> {
protected void convert(ItemVipListItemBinding mViewBinding, Vip item) { protected void convert(ItemVipListItemBinding mViewBinding, Vip item) {
mViewBinding.vipName.setText(item.getVipName()); mViewBinding.vipName.setText(item.getVipName());
mViewBinding.vipMobile.setText(String.valueOf(item.getVipMobile())); 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; ...@@ -3,25 +3,67 @@ package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context; import android.content.Context;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter; 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.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; import java.util.List;
/** /**
* Created by JM_DEV on 2017/12/25. * 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 Context mContext;
private String shopName;
public VipRechargeAdapter(Context mContext, @Nullable List<VipRechargeOrder> data) { public VipRechargeAdapter(Context mContext, @Nullable List<VipRechargeOrder> data) {
super(R.layout.item_vip_recharge_item, data); super(R.layout.item_vip_expense_item, data);
this.mContext=mContext; this.mContext = mContext;
} }
@Override @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; ...@@ -11,6 +11,8 @@ import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter; import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment; import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment; 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; import java.util.List;
...@@ -21,6 +23,7 @@ import java.util.List; ...@@ -21,6 +23,7 @@ import java.util.List;
public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMenuBinding> { public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMenuBinding> {
private Vip mVip; private Vip mVip;
private List<Level> mLevel; private List<Level> mLevel;
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.dialog_vip_menu; return R.layout.dialog_vip_menu;
...@@ -32,21 +35,28 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe ...@@ -32,21 +35,28 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
switch (view.getId()) { switch (view.getId()) {
//編輯會員 //編輯會員
case R.id.editVip: case R.id.editVip:
mPresenter.vipInfoEditFragment=new VipInfoEditFragment(); mPresenter.vipInfoEditFragment = new VipInfoEditFragment();
mPresenter.vipInfoEditFragment.setVip(mVip); mPresenter.vipInfoEditFragment.setVip(mVip);
mPresenter.vipInfoEditFragment.setVipLevel(mLevel); mPresenter.vipInfoEditFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start( mPresenter.vipInfoEditFragment); ((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
break; break;
//充值記錄 //充值記錄
case R.id.rechargeList: case R.id.rechargeList:
mPresenter.vipRechargeListFragment = new VipRechargeListFragment();
mPresenter.vipRechargeListFragment.setVip(mVip);
mPresenter.vipRechargeListFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start(mPresenter.vipRechargeListFragment);
break; break;
//優惠券詳情 //優惠券詳情
case R.id.voucherDetails: case R.id.voucherDetails:
mPresenter.vipMscardListFragment = new VipMscardListFragment();
mPresenter.vipMscardListFragment.setVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment);
break; break;
//消費記錄 //消費記錄
case R.id.consumeList: case R.id.consumeList:
((BaseActivity) getActivity()).start(new VipExpenseListFragment()); mPresenter.vipExpenseListFragment.setmVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipExpenseListFragment);
break; break;
} }
dismiss(); dismiss();
......
...@@ -6,6 +6,7 @@ package com.xingdata.zzdpos.ui.vip.fragment; ...@@ -6,6 +6,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
...@@ -13,10 +14,14 @@ import com.xingdata.zzdpos.base.BaseActivity; ...@@ -13,10 +14,14 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding; import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.model.Level; 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.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.VipPresenter; 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.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -25,10 +30,11 @@ import java.util.List; ...@@ -25,10 +30,11 @@ import java.util.List;
* 会员消费记录 * 会员消费记录
*/ */
@SuppressLint("ValidFragment") @SuppressLint("ValidFragment")
public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentVipExpenseListBinding> { public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentVipExpenseListBinding> {
private VipRechargeAdapter vipRechargeAdapter; private VipExpenseAdapter vipRechargeAdapter;
private List<VipRechargeOrder> orders = new ArrayList<>(); private List<Saleorder> orders = new ArrayList<>();
private List<Level> levels=null; private List<Level> levels = null;
private int pageNumber = 0;
@Override @Override
...@@ -36,34 +42,40 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV ...@@ -36,34 +42,40 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
return R.layout.fragment_vip_expense_list; return R.layout.fragment_vip_expense_list;
} }
private Vip mVip;
@Override @Override
public void initView() { public void initView() {
mViewBinding.infoTitle.tvTitle.setText("会员信息"); mViewBinding.infoTitle.tvTitle.setText("消费记录");
vipRechargeAdapter = new VipRechargeAdapter(getActivity(), orders); vipRechargeAdapter = new VipExpenseAdapter(getActivity(), orders);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter); mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh); 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.setEnableLoadMore(true);
vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView); vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view ->{ mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity()); new VipEditMenuDialog().show((BaseActivity) getActivity());
}); });
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> { mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop(); pop();
}); });
onRefresh();
} }
private void onLoadMore() { private void onLoadMore() {
vipRechargeAdapter.addData(new VipRechargeOrder()); mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
vipRechargeAdapter.setEnableLoadMore(true); vipRechargeAdapter.setEnableLoadMore(false);
vipRechargeAdapter.loadMoreComplete();
ToastUtils.showShort("刷新成功");
} }
private void onRefresh() { private void onRefresh() {
mViewBinding.rechargeRefresh.setRefreshing(false); pageNumber = 0;
ToastUtils.showShort("刷新成功"); mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
} }
@Override @Override
...@@ -71,4 +83,30 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV ...@@ -71,4 +83,30 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
pop(); pop();
return true; 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 ...@@ -38,16 +38,19 @@ public class VipInfoFragment extends BaseFragment<VipPresenter, FragmentVipInfoB
dialog.setVip(mVip); dialog.setVip(mVip);
dialog.show((BaseActivity) getActivity()); dialog.show((BaseActivity) getActivity());
}); });
mViewBinding.Totalpamt.setText(String.valueOf(mVip.getVipTotalpamt())); if (mVip!=null){
mViewBinding.BoundCbal.setText(String.valueOf(mVip.getBoundCbal())); mViewBinding.Totalpamt.setText(String.valueOf(mVip.getVipTotalpamt()));
mViewBinding.AcctCbal.setText(String.valueOf(mVip.getAcctCbal())); mViewBinding.BoundCbal.setText(String.valueOf(mVip.getBoundCbal()));
mViewBinding.vipLevel.setText(mVip.getVipLevelName()); mViewBinding.AcctCbal.setText(String.valueOf(mVip.getAcctCbal()));
mViewBinding.vipBirthday.setText(mVip.getVipBirthday() + ""); mViewBinding.vipLevel.setText(mVip.getVipLevelName());
mViewBinding.vipName.setText(mVip.getVipName()); mViewBinding.vipBirthday.setText(mVip.getVipBirthday() + "");
mViewBinding.vipMoble.setText(mVip.getVipMobile() + ""); mViewBinding.vipName.setText(mVip.getVipName());
mViewBinding.vipSex.setText(getVipSex(mVip.getVipSex())); mViewBinding.vipMoble.setText(mVip.getVipMobile() + "");
mViewBinding.vipDiscounts.setText(getString(R.string.vip_discount, mVip.getVipDefDiscount() + "")); mViewBinding.vipSex.setText(getVipSex(mVip.getVipSex()));
mPresenter.ticketQuery(mVip.getVipId()); mViewBinding.vipDiscounts.setText(getString(R.string.vip_discount, mVip.getVipDefDiscount() + ""));
mPresenter.ticketQuery(mVip.getVipId());
}
} }
private String getVipSex(Byte vipSex) { private String getVipSex(Byte vipSex) {
......
...@@ -7,9 +7,13 @@ package com.xingdata.zzdpos.ui.vip.fragment; ...@@ -7,9 +7,13 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.view.Gravity; import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RadioButton; import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
...@@ -62,6 +66,12 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -62,6 +66,12 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
break; break;
} }
}); });
// mViewBinding.titleSearch.serchEditText.setOnFocusChangeListener((View view, boolean b) -> {
// if (b){
// VipSearchFragment vipSearchFragment = new VipSearchFragment();
// vipSearchFragment.setBaseFragment(new VipInfoFragment());
// }
// });
mPresenter.getVipLevel(0, 200); mPresenter.getVipLevel(0, 200);
mPresenter.getVipNumber(); mPresenter.getVipNumber();
} }
...@@ -155,23 +165,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB ...@@ -155,23 +165,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void toStartVipInfo(Vip vip) { public void toStartVipInfo(Vip vip) {
mPresenter.vipInfoFragment = new VipInfoFragment(); if (vip != null) {
mPresenter.vipInfoFragment.setVip(vip); mPresenter.vipInfoFragment.setVip(vip);
mPresenter.vipInfoFragment.setLevel(levels); mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment); ((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
} else {
mPresenter.vipInfoEditFragment.setVipLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
}
} }
public void addVipSus(Vip vip) { 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();
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/all_shape_radius" />
<solid android:color="@color/white_caocao" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="20dp" />
<stroke
android:width="1dp"
android:color="@color/yellow_bg" />
<solid android:color="@color/yellow_bg" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/f_bottom"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
android:id="@+id/fragment_container" android:id="@+id/fragment_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_padding" android:layout_marginTop="@dimen/all_padding_left_right"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="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"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="titleMode"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
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:focusable="true"
android:focusableInTouchMode="true">
<ImageButton
android:id="@+id/btn_back"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:background="?attr/actionBarItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:padding="@dimen/all_margin"
android:src="@mipmap/back_black"
app:layout_constraintLeft_toLeftOf="parent" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
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"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:inputType="number"
android:labelFor="@+id/et_search"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/sssku_title"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:visibility="@{titleMode==1||titleMode==6?0:8}"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
<FrameLayout
android:id="@+id/f_sssku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -40,6 +40,12 @@ ...@@ -40,6 +40,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout="@layout/view_ticket" /> android:layout="@layout/view_ticket" />
<ViewStub
android:id="@+id/view_cs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_inventory_detail" />
</FrameLayout> </FrameLayout>
<LinearLayout <LinearLayout
......
...@@ -6,17 +6,13 @@ ...@@ -6,17 +6,13 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/lyt_main_bg"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_title" android:id="@+id/tv_title"
style="@style/dialog_title" style="@style/dialog_title"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
android:layout_marginBottom="@dimen/all_padding" />
<ViewStub <ViewStub
android:id="@+id/vs_center" android:id="@+id/vs_center"
...@@ -25,22 +21,25 @@ ...@@ -25,22 +21,25 @@
android:layout_weight="1" android:layout_weight="1"
android:inflatedId="@+id/panel_import" /> android:inflatedId="@+id/panel_import" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
<LinearLayout <LinearLayout
android:layout_marginTop="@dimen/all_padding"
android:orientation="horizontal"
android:weightSum="2"
android:background="@color/white_caocao"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="horizontal"
android:weightSum="2">
<Button <Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_cancel" android:id="@+id/btn_cancel"
style="@style/button_passive" style="@style/button_passive"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null" android:stateListAnimator="@null"
android:text="@string/all_cancel" android:text="@string/all_cancel"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_text_size"
...@@ -51,12 +50,12 @@ ...@@ -51,12 +50,12 @@
tools:targetApi="lollipop" /> tools:targetApi="lollipop" />
<Button <Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_confirm" android:id="@+id/btn_confirm"
style="@style/button_positive" style="@style/button_positive"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null" android:stateListAnimator="@null"
android:text="@string/all_confirm" android:text="@string/all_confirm"
android:textSize="@dimen/all_text_size" android:textSize="@dimen/all_text_size"
...@@ -68,7 +67,6 @@ ...@@ -68,7 +67,6 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</layout> </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="cartCount"
type="int" />
<variable
name="result"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<View
android:id="@+id/ll_title"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/white_caocao"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
</View>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toTopOf="@id/rl_cart" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_cart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
app:layout_constraintBottom_toTopOf="@id/ll_info"
app:layout_constraintTop_toBottomOf="@id/ll_title" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toTopOf="@id/ll_info" />
<LinearLayout
android:id="@+id/ll_info"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="结果:"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text='@{result}'
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="@string/inventory_add_btn_end"
android:textColor="@color/white_caocao" />
</LinearLayout>
<FrameLayout
android:id="@+id/fl_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:animateLayoutChanges="true"
app:layout_constraintBottom_toBottomOf="@id/ll_title"
app:layout_constraintLeft_toLeftOf="parent">
<ImageView
android:id="@+id/iv_cart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_spacing"
android:contentDescription="@string/store_cart"
android:foreground="?attr/actionBarItemBackground"
android:src="@mipmap/shopping_cart" />
<TextView
android:layout_width="@dimen/store_cart_count"
android:layout_height="@dimen/store_cart_count"
android:layout_gravity="end"
android:background="@drawable/shape_white_oval"
android:gravity="center"
android:text='@{cartCount+""}'
android:textColor="@color/red_guanyu"
android:textSize="@{cartCount &lt; 100?@dimen/all_caption_size:@dimen/all_tiny_size}"
android:textStyle="bold" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</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/white_caocao"
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_marginStart="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:text="确定删除吗?"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_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="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:text="@string/skugrp_add_hint"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<EditText
android:id="@+id/et_name"
style="@style/editText_new"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:inputType="text"
android:labelFor="@+id/et_name"
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="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_r1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/all_update"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/all_delete"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:padding="@dimen/all_spacing"
android:text="@string/all_cancel"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white_caocao"
android:orientation="vertical"
android:splitMotionEvents="false">
<include
android:id="@+id/ic_title"
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
<LinearLayout
android:id="@+id/btn_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/dp_4"
android:drawableStart="@mipmap/but_add"
android:gravity="center"
android:padding="@dimen/all_padding"
android:text="@string/manage_inventory_add"
android:textColor="@color/red_lvzhi"
android:textSize="@dimen/big_text_size" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
<TextView
android:id="@+id/tv_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding"
android:text="共0人次盘库记录"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_low"
android:textStyle="bold" />
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_product"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ll_title">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_inventory"
android:background="@color/gray_zhouyu"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
This diff is collapsed.
...@@ -7,6 +7,50 @@ ...@@ -7,6 +7,50 @@
android:background="@color/gray_zhouyu" android:background="@color/gray_zhouyu"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:gravity="center_vertical"
android:padding="@dimen/all_spacing">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_user_title"
android:textColor="@color/white_caocao" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:layout_weight="1"
android:singleLine="true"
android:text="@string/ms_user_hint"
android:textColor="@color/black_baozheng" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_kongming" />
</FrameLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_add" android:id="@+id/ll_add"
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width" android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:layout_marginTop="@dimen/all_margin" android:layout_marginTop="@dimen/all_spacing"
android:background="@color/gray_huanggai" /> android:background="@color/gray_huanggai" />
<LinearLayout <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:orientation="vertical">
</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
This diff is collapsed.
<?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
This diff is collapsed.
...@@ -2,11 +2,6 @@ ...@@ -2,11 +2,6 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
...@@ -16,7 +11,6 @@ ...@@ -16,7 +11,6 @@
<android.support.v7.widget.RecyclerView <android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku" android:id="@+id/rl_sku"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" />
android:layout_marginTop="@dimen/all_margin" />
</LinearLayout> </LinearLayout>
</layout> </layout>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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