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 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/TangKuPos.iml" filepath="$PROJECT_DIR$/.idea/TangKuPos.iml" />
<module fileurl="file://C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" filepath="C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
......
......@@ -115,6 +115,14 @@
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:label="@string/title_activity_bale"
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>
</manifest>
\ No newline at end of file
......@@ -294,7 +294,10 @@ public class C {
public final class 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 delete = ROOT_URL + "delete";
public static final String update = ROOT_URL + "update";
}
public final class CSDETAIL {
......@@ -359,6 +362,7 @@ public class C {
private static final String ROOT_URL = PKG + "recard/";
public static final String checkPwd = ROOT_URL + "checkPwd";
public static final String fullVip = ROOT_URL + "fullVip";
public static final String queryCard = ROOT_URL + "queryCard";
}
public final class MS {
......@@ -557,6 +561,9 @@ public class C {
public static final int VIP = 2;
public static final int SKU = 3;
public static final int GIFT = 4;
public static final int PKG = 5;
public static final int SKU_DETAIL = 6;
}
}
......@@ -582,7 +582,7 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Saleorder> querySaleorderByVipId(Long vipId,int pageNumber ,int pageSize) {
public static Observable<Pager<com.xingdata.zzdpos.model.Saleorder>> querySaleorderByVipId(Long vipId,int pageNumber ,int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId,pageNumber,pageSize)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -592,8 +592,6 @@ public final class ApiFactory {
}
}
public static class Ticket {
......@@ -641,10 +639,8 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread());
}
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum,
String keyword, Long skuGrpId) {
return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId,
keyword)
public static Observable<Pager<com.xingdata.zzdpos.model.Sssku>> querySssku(int pageNum, String keyword, Long skuGrpId) {
return Api.getInstance().service.querySssku(pageNum, C.PRODUCT.PAGE_SIZE, skuGrpId, keyword)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......@@ -761,6 +757,21 @@ public final class ApiFactory {
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.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 {
......@@ -800,6 +811,16 @@ public final class ApiFactory {
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* 查询充值记录
*/
public static Observable<Pager<VipRechargeOrder>> queryRecharge(long vipId,int pageNum, int pageSize) {
return Api.getInstance().service.queryRecharge(vipId,pageNum, pageSize)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
}
public static class Sta {
......@@ -901,6 +922,33 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.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 {
......@@ -979,6 +1027,15 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
// public static Observable<Pager<VipRechargeOrder>> queryCard(Long vipId) {
// return Api.getInstance().service.queryRecharge(vipId,0,10)
// .onErrorReturn(new ErrorFilter<>())
// .map(new ResultFilter<>())
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .retryWhen(new RetryHelper(3));
// }
}
public static class Ms {
......@@ -1095,6 +1152,17 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<Mscard>> mscardQuery(long vipId) {
return Api.getInstance().service.mscardQuery(vipId)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
}
public static class Oper {
......
......@@ -181,6 +181,10 @@ interface ApiService {
("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long
endDate);
@POST(C.URL.CS.query)
Observable<HttpMessage<Pager<Cs>>> querCsList(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.NOTICE.query)
Observable<HttpMessage<Pager<Notice>>> queryNotice(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
......@@ -192,6 +196,10 @@ interface ApiService {
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId,@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize, @Query("startDate") long startDate, @Query("endDate") long
......@@ -241,11 +249,10 @@ interface ApiService {
Observable<HttpMessage<Saleorder>> addOrderPayMis(@Body Saleorder.Pay saleorderPay);
@POST(C.URL.SALEORDER.querySaleorderByVipId)
Observable<HttpMessage<Saleorder>> querySaleorderByVipId(@Query("vipId") Long vipId, @Query
Observable<HttpMessage<Pager<Saleorder>>> querySaleorderByVipId(@Query("vipId") Long vipId, @Query
("pageNumber") int pageNum, @Query("pageSize") int pageSize);
@POST(C.URL.USER.query)
Observable<HttpMessage<Pager<Vip>>> queryDetailByWD(@Query("wd") String keyword, @Query
("pageNumber") int pageNum, @Query("pageSize") int pageSize);
......@@ -277,6 +284,9 @@ interface ApiService {
Observable<HttpMessage<Vip>> fullVip(@Query("vipId") long vipId, @Query("amtPay") long
amtPay, @Query("amtSend") long amtSend);
@POST(C.URL.RECARD.queryCard)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryCard(@Query("vipId") long vipId);
// @POST(C.URL.SHOP.queryAll)
// Observable<HttpMessage<String>> queryAll( @Query("spuClaName") String spuClaName, @Query
// ("spuGrpName") String spuGrpName);
......@@ -342,15 +352,26 @@ interface ApiService {
@Query("pageSize") int pageSize);
@POST(C.URL.SSSKU.query)
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("wd") String keyword);
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("wd") String keyword);
@POST(C.URL.SSKUGRP.query)
Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp();
@POST(C.URL.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)
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("msName") String keyword);
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("msName") String keyword);
@POST(C.URL.MS.detail)
Observable<HttpMessage<Ms>> detailMs(@Query("id") long id);
......@@ -386,6 +407,9 @@ interface ApiService {
@POST(C.URL.MSCARD.update)
Observable<HttpMessage<Mscard>> updateMscard(@Body Mscard m);
@POST(C.URL.MSCARD.query)
Observable<HttpMessage<Pager<Mscard>>> mscardQuery(@Query("vipId") Long vipId);
@POST(C.URL.MSCARD.add)
Observable<HttpMessage<Mscard>> addMscard(@Body Mscard m);
......
......@@ -43,7 +43,6 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
public boolean isShowing;
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
......
......@@ -4,6 +4,8 @@ import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.db.DB;
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.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
......@@ -255,6 +257,14 @@ public class Cs implements BaseOrderPrint {
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
public String getDRAW_URL() {
return null;
......
package com.xingdata.zzdpos.model;
import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.zzdpos.base.BaseBean;
/**
* 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 {
public String getPrimaryKey() {
return "id";
}
// public static String getPayType
}
......@@ -17,6 +17,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import io.realm.annotations.Ignore;
/**
* 订单
......@@ -503,6 +505,8 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
private Long createTime;
private Salepay salepay;
@Ignore
private String PayName;
private List<Saledetail> saledetailList;
......@@ -1139,4 +1143,13 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setPayName(String payName) {
PayName = payName;
}
public String getPayName() {
return PayName;
}
}
\ No newline at end of file
......@@ -26,6 +26,7 @@ import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import io.realm.Realm;
import io.realm.RealmResults;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiException;
import com.xingdata.zzdpos.api.ApiFactory;
......@@ -41,6 +42,7 @@ import com.xingdata.zzdpos.ui.login.fragment.SignInFragment;
import com.xingdata.zzdpos.ui.login.fragment.SmsCodeFragment;
import com.xingdata.zzdpos.ui.login.fragment.bean.LoginBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.LoginReturnBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.Shops;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreAddressJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreTypeJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.UserStoreInfo;
......@@ -83,6 +85,7 @@ public class LoginPresenter extends LoginContract.Presenter {
}
@Override
public void createStoreFragmentinit(Context context, LoadingDialog loadingDialog) {
//加载城市数据列表,加载门店类型列表
......
package com.xingdata.zzdpos.ui.manage.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;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
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.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity;
......@@ -64,7 +63,7 @@ public class ManageMenuActivity extends AppCompatActivity {
}
break;
case C.MENU.MENU_MANAGER_GOODS: {
ActivityUtils.startActivity(ManageMenuActivity.this, SsskuActivity.class);
}
break;
case C.MENU.MENU_MANAGER_BALE: {
......@@ -80,7 +79,7 @@ public class ManageMenuActivity extends AppCompatActivity {
}
break;
case C.MENU.MENU_MANAGER_INVENTORY: {
ActivityUtils.startActivity(ManageMenuActivity.this, InventoryActivity.class);
}
break;
default: {
......
package com.xingdata.zzdpos.ui.manage.otherselect;
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.ToastUtils;
import com.xingdata.zzdpos.R;
......@@ -9,11 +11,16 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityOtherSelectBinding;
import com.xingdata.zzdpos.model.Ossku;
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.util.OnClickListener;
public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, ActivityOtherSelectBinding> implements OtherSelectContract.View {
private OtherListFragment mOtherListFragment = new OtherListFragment();
private OtherDetailFragment mOtherDetailFragment = new OtherDetailFragment();
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
......@@ -22,26 +29,57 @@ public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, Acti
@Override
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) -> {
if (keyCode == KeyEvent.KEYCODE_ENTER)
search(mViewBinding.lyTitle.edTitle.getText().toString().trim());
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
public void isShowLoading(Boolean is) {
if (is) {
mLoadingDialog.show((BaseActivity) mContext);
} else {
if (mLoadingDialog.isShowing) {
mLoadingDialog.dismiss();
}
}
}
@Override
public void loadOssku(Pager<Ossku> osskuList, boolean isRefresh) {
if (mOtherDetailFragment.isAdded()) {
mOtherDetailFragment.pop();
}
mOtherListFragment.setData(osskuList, isRefresh);
}
@Override
public void showOsskuDetail(Ossku ossku) {
mOtherDetailFragment.setOssku(ossku);
FragmentUtils.add(getSupportFragmentManager(), mOtherDetailFragment, mViewBinding.fragmentContainer.getId(), false, true);
}
@Override
protected void onPause() {
KeyboardUtils.hideSoftInput(this);
......
......@@ -21,10 +21,13 @@ public interface OtherSelectContract {
* 加载列表
*/
void loadOssku(Pager<Ossku> osskuList, boolean isRefresh);
void showOsskuDetail(Ossku ossku);
}
abstract class Presenter extends BasePresenter<View> {
public abstract void clickOsskuItem(Ossku ossku);
/**
* 临库查询界面 - 查找
*
......
......@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.manage.otherselect;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Ossku;
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
public void searchGoodsFirst(String keyword) {
wd = keyword;
......
......@@ -7,11 +7,13 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentOtherDetailBinding;
import com.xingdata.zzdpos.databinding.FragmentOtherListBinding;
import com.xingdata.zzdpos.model.Ossku;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectPresenter;
import com.xingdata.zzdpos.ui.manage.otherselect.adpter.OtherSelectAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
......@@ -19,71 +21,32 @@ import java.util.ArrayList;
* Created by Administrator on 2017/11/23.
*/
public class OtherDetailFragment extends BaseFragment<OtherSelectPresenter, FragmentOtherListBinding> {
private OtherSelectAdapter mOtherSelectAdapter;
public class OtherDetailFragment extends BaseFragment<OtherSelectPresenter, FragmentOtherDetailBinding> {
private Ossku ossku;
@Override
public int getLayoutId() {
return R.layout.fragment_other_list;
return R.layout.fragment_other_detail;
}
@Override
public void initView() {
mOtherSelectAdapter = new OtherSelectAdapter(new ArrayList<>());
mOtherSelectAdapter.setEmptyView(getEmptyView(R.string.empty_other_select));
mViewBinding.recyclerOtherSelcet.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.recyclerOtherSelcet.setAdapter(mOtherSelectAdapter);
mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
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);
if (ossku != null) {
mViewBinding.tvGoodsName.setText(ossku.getSpuName());
mViewBinding.tvGoodsCode.setText(ossku.getSpuBarcode() + "");
mViewBinding.tvPrice.setText(ConvertUtil.fenToYuan(ossku.getSkuRetailPrice1(), false));
mViewBinding.tvGoodsSize.setText("规格/" + ossku.getSpuUnitName());
mViewBinding.imgGoods.setImageURI(ossku.getSpuImg());
mViewBinding.setStock("库存:" + ossku.getSkuStock());
mViewBinding.setShopName(ossku.getShopName());
mViewBinding.setAddress(ossku.getCityAddress());
mViewBinding.setPhone(ossku.getContactTel());
}
});
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) {
View view = getLayoutInflater().inflate(R.layout.view_empty, null);
view.setBackgroundResource(R.color.white_caocao);
((TextView) view.findViewById(R.id.tv_empty)).setText(resHint);
return view;
public void setOssku(Ossku ossku) {
this.ossku = ossku;
}
......
......@@ -51,9 +51,7 @@ public class OtherListFragment extends BaseFragment<OtherSelectPresenter, Fragme
mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
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);
mPresenter.clickOsskuItem(mOtherSelectAdapter.getData().get(position));
}
});
......
......@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.replenishment;
import android.util.Log;
import android.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory;
......@@ -31,7 +32,11 @@ public class ReplenishmentPresenter extends ReplenishmentContract.Presenter {
mView.isShowLoading(false);
})
.subscribe(ssskuPager -> {
if (ssskuPager.getList().size() == 0) {
ToastUtils.showShort("库存正常,无需补货");
} else {
mView.openReplenishmentDetailFragment(ssskuPager.getList());
}
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
......
......@@ -54,6 +54,7 @@ public class ReplenishmentDetailFragment extends BaseFragment<ReplenishmentPrese
@Override
public void initView() {
mViewBinding.lyTitle.edTitle.setHint(R.string.inventory_add_et_hint);
mViewBinding.lyTitle.edTitle.setText("");
Drawable drawableTop = getResources().getDrawable(R.mipmap.but_up);
Drawable drawableBottom = getResources().getDrawable(R.mipmap.but_unfurled);
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
@Override
public void showEditorFragment(int msType) {
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.UPDATE));
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.ADD));
}
@Override
......@@ -168,7 +168,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
*
* @param titleMode 标题模式
*/
public void showTitleBarByTitleMode(int titleMode) {
private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText("");
......
......@@ -292,12 +292,32 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
// listener
mViewBinding.llArea.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_area, mAreaAdapter, (dialog, which) -> {
switch (mAreaAdapter.getData().get(which).getId()) {
case C.MS_AREA.MER:
mMs.setMsRangeTag((byte) C.MS_AREA.MER);
mMs.setMerMapId(LoginPresenter.loginReturnBean.getMerMapId());
break;
case C.MS_AREA.LOCAL:
mMs.setMsRangeTag((byte) C.MS_AREA.LOCAL);
mMs.setShopMapId(LoginPresenter.loginReturnBean.getShopMapId());
break;
}
mAreaAdapter.getOnItemSelectedListener().onItemSelected(mAreaAdapter.getStrs()[which]);
mAreaAdapter.setSelectedPosition(which);
dialog.dismiss();
})
);
mViewBinding.llUser.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_user, mUserAdapter, (dialog, which) -> {
switch (mUserAdapter.getData().get(which).getId()) {
case C.MS_USER.ALL:
mMs.setMsCoustomTag((byte) C.MS_USER.ALL);
mMs.setVipLevel((byte) 0);
break;
case C.MS_USER.VIP:
mMs.setMsCoustomTag((byte) C.MS_USER.VIP);
mMs.setVipLevel((byte) mUserAdapter.getData().get(which).getLevelId());
break;
}
mUserAdapter.getOnItemSelectedListener().onItemSelected(mUserAdapter.getStrs()[which]);
mUserAdapter.setSelectedPosition(which);
dialog.dismiss();
......@@ -456,7 +476,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
ToastUtils.showShort("请确认输入内容是否正确");
return;
}
mMs.setMsName(mViewBinding.getName());
mMs.setMsName(mViewBinding.etName.getText().toString());
mMs.setMsDateBegin(ConvertUtil.stringToLong(mViewBinding.getDateStart().replaceAll("[\\u4e00-\\u9fa5]+", "")));
mMs.setMsDateEnd(ConvertUtil.stringToLong(mViewBinding.getDateEnd().replaceAll("[\\u4e00-\\u9fa5]+", "")));
......@@ -476,6 +496,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
}
mMs.setMsToolsType(mMs.getMsTools());
mMs.setGiftTag(mMs.getMsTools().byteValue());
mMs.setCreateTime(null);
mMs.setUpdateTime(null);
......
......@@ -15,8 +15,6 @@ import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> {
private int mSearchType;
private SkuAdapter<Sku> mSkuAdapter;
......
......@@ -15,8 +15,10 @@ public class TypeDisView extends BaseTypeView<ViewTypeDisBinding> {
if (mMs.getMsTools() == null) return;
if (mMs.getMsTools() == C.MS_TYPE.DIS) mViewBinding.rbDis.setChecked(true);
if (mMs.getMsTools() == C.MS_TYPE.SECOND) mViewBinding.rbSecond.setChecked(true);
if (mMs.getPriceDiscount() != null) {
mViewBinding.etDis.setText(String.valueOf(mMs.getPriceDiscount()));
}
}
@Override
public boolean processMs(Ms ms) {
......
......@@ -21,7 +21,6 @@ import java.util.List;
public class VipFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
......
......@@ -5,6 +5,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.databinding.DataBindingUtil;
import android.graphics.Paint;
import android.support.v7.widget.LinearLayoutManager;
import android.util.TimeUtils;
import android.view.LayoutInflater;
import android.view.View;
......@@ -13,19 +14,23 @@ import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.ToastUtils;
import com.google.gson.Gson;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityStatisticsDetailBinding;
import com.xingdata.zzdpos.databinding.ItemSettleSaledetailBinding;
import com.xingdata.zzdpos.databinding.ViewInventoryDetailBinding;
import com.xingdata.zzdpos.databinding.ViewOrderDetailBinding;
import com.xingdata.zzdpos.databinding.ViewTicketBinding;
import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
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.OnClickListener;
......@@ -57,6 +62,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
Long data = getIntent().getLongExtra(Saleorder.class.getName(), -1);
VipRechargeOrder vipRechargeOrder = (VipRechargeOrder) getIntent().getSerializableExtra(VipRechargeOrder.class.getName());
Ticket ticket = (Ticket) getIntent().getSerializableExtra(Ticket.class.getName());
Cs cs = (Cs) getIntent().getSerializableExtra(Cs.class.getName());
if (data > 0) {
mPresenter.getOrderDetail(String.valueOf(data));
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_order_detail_hint);
......@@ -69,6 +75,10 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_used_ticket_hint);
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
}
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) {
mViewBinding.btnReturn.setVisibility(View.GONE);
mViewBinding.viewVipRecharge.getViewStub().inflate();
......
......@@ -121,7 +121,7 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
@Override
public void showCartDialog(Saleorder saleorder, List<Saledetail> saledetails) {
mCartDialog.setSaleorder(saleorder).setSaledetails(saledetails).show(this);
}
}
@Override
public void showMsDialog(List<Ms> mss) {
......
......@@ -193,7 +193,6 @@ interface StoreContract {
*/
public abstract void clearCart();
/**
* 主页面 - 搜索框焦点改变
*
......
......@@ -25,6 +25,7 @@ public class SkuAdapter<T extends BaseSku> extends BaseAdapter<T, ItemStoreSkuBi
private StoreFragment.OnCountChangeListener mOnCountChangeListener;
public void setSaledetails(List<Saledetail> saledetails) {
if (saledetails == null) return;
this.mSaledetails = saledetails;
}
......
......@@ -307,6 +307,7 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
@Override
public void onAnimationEnd(Animator animation) {
// 执行添加方法
mPresenter.clickAddSku(sku, value);
// 把执行动画的商品图片从父布局中移除
mViewBinding.clStore.removeView(icon);
......
......@@ -4,10 +4,13 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
......@@ -40,6 +43,21 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
mPresenter.vipInfoFragment.ticketQuerySus(ticketPager);
}
@Override
public void getSaleorderSus(Pager<Saleorder> saleorderPager) {
mPresenter.vipExpenseListFragment.getSaleorderSus(saleorderPager);
}
@Override
public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) {
mPresenter.vipRechargeListFragment.getRechargeOrderSus(rechargeOrderPager);
}
@Override
public void getMscardSus(Pager<Mscard> mscardPager) {
mPresenter.vipMscardListFragment.getMscardSus(mscardPager);
}
@Override
public void getVipLevelSus(Pager<Level> levelPager) {
mPresenter.vipListFragment.getVipLevelSus(levelPager);
......
......@@ -3,10 +3,13 @@ package com.xingdata.zzdpos.ui.vip;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import java.util.List;
......@@ -15,11 +18,24 @@ public interface VipContract {
interface View extends BaseView {
void addVip();
void getVipLevelSus(Pager<Level> levelPager);
void getVipListSus(Pager<Vip> vipPager, int pageNumber);
void getVipNumberSus(Sta sta);
void addVipSus(Vip vip);
void ticketQuerySus(List<Ticket> ticketPager);
void getSaleorderSus(Pager<Saleorder> saleorderPager);
void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager);
void getMscardSus(Pager<Mscard> rechargeOrderPager);
}
abstract class Presenter extends BasePresenter<View> {
......@@ -29,8 +45,15 @@ public interface VipContract {
pageSize);
public abstract void getVipNumber();
public abstract void addVip(Vip vip);
public abstract void ticketQuery(Long vipID);
public abstract void saleorderQuery(Long vipID);
public abstract void saleorderQuery(Long vipID, int pageNumber);
public abstract void rechargeorderQuery(Long vipID, int number);
public abstract void mscardQuery(Long vipID);
}
}
\ No newline at end of file
......@@ -4,16 +4,20 @@ package com.xingdata.zzdpos.ui.vip;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
public class VipPresenter extends VipContract.Presenter {
public VipListFragment vipListFragment=new VipListFragment();
public VipInfoEditFragment vipInfoEditFragment=new VipInfoEditFragment();
public VipListFragment vipListFragment = new VipListFragment();
public VipInfoEditFragment vipInfoEditFragment = new VipInfoEditFragment();
public VipInfoFragment vipInfoFragment = new VipInfoFragment();
public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment();
public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment();
public VipMscardListFragment vipMscardListFragment = new VipMscardListFragment();
@Override
public void onAttached() {
......@@ -79,13 +83,35 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public void saleorderQuery(Long vipID) {
ApiFactory.Saleorder.querySaleorderByVipId(vipID,0,100).subscribe(ticketList -> {
// mView.ticketQuerySus(ticketList);
public void saleorderQuery(Long vipID, int pageNumber) {
ApiFactory.Saleorder.querySaleorderByVipId(vipID, pageNumber, 5).subscribe(saleorder -> {
mView.getSaleorderSus(saleorder);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void rechargeorderQuery(Long vipID,int number) {
ApiFactory.Rctrace.queryRecharge(vipID, number, 10).subscribe(rechargeOrderPager -> {
mView.getRechargeOrderSus(rechargeOrderPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void mscardQuery(Long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(mscardPager -> {
mView.getMscardSus(mscardPager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
}
package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipExpenseAdapter extends BaseAdapter<Saleorder, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipExpenseAdapter(Context mContext, @Nullable List<Saleorder> data) {
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Saleorder item) {
mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getOrderPayAmt()));
mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
getPayName(item);
//设置支付方式
mViewBinding.expenseType.setText(item.getPayName());
mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
public Integer getPayName(Saleorder item) {
Integer inBG=-1;
switch (item.getPayType()) {
case C.PAY_CHANNEL.CASH:
inBG = R.mipmap.pay_cash;
break;
case C.PAY_CHANNEL.WECHAT:
inBG = R.mipmap.pay_wechat;
break;
case C.PAY_CHANNEL.ALI:
inBG = R.mipmap.pay_alipay;
break;
case C.PAY_CHANNEL.BANK:
inBG = R.mipmap.pay_card;
break;
case C.PAY_CHANNEL.CARD:
inBG = R.mipmap.pay_membershipcard;
break;
case C.PAY_CHANNEL.TALLY:
inBG = R.mipmap.pay_credit;
break;
}
return inBG;
}
}
......@@ -27,6 +27,6 @@ public class VipListAdapter extends BaseAdapter<Vip, ItemVipListItemBinding> {
protected void convert(ItemVipListItemBinding mViewBinding, Vip item) {
mViewBinding.vipName.setText(item.getVipName());
mViewBinding.vipMobile.setText(String.valueOf(item.getVipMobile()));
mViewBinding.vipDiscount.setText(ConvertUtil.discount(item.getVipDefDiscount()));
mViewBinding.vipDiscount.setText(ConvertUtil.discount(item.getVipDefDiscount())+"折");
}
}
package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipMscardAdapter extends BaseAdapter<Mscard, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipMscardAdapter(Context mContext, @Nullable List<Mscard> data) {
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Mscard item) {
// mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
// mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
// //设置支付方式
//// mViewBinding.expenseType.setText(item.getPayName());
//// mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
// mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
}
......@@ -3,25 +3,67 @@ package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipRechargeItemBinding;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
import java.util.Date;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class VipRechargeAdapter extends BaseAdapter<VipRechargeOrder, ItemVipRechargeItemBinding> {
public class VipRechargeAdapter extends BaseAdapter<VipRechargeOrder, ItemVipExpenseItemBinding> {
private Context mContext;
private String shopName;
public VipRechargeAdapter(Context mContext, @Nullable List<VipRechargeOrder> data) {
super(R.layout.item_vip_recharge_item, data);
this.mContext=mContext;
super(R.layout.item_vip_expense_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipRechargeItemBinding mViewBinding, VipRechargeOrder item) {
protected void convert(ItemVipExpenseItemBinding mViewBinding, VipRechargeOrder item) {
mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
//设置支付方式
// mViewBinding.expenseType.setText(item.getPayName());
// mViewBinding.imgLeft.setBackgroundResource(getPayName(item));
mViewBinding.expenseTime.setText(StringUtil.format(new Date(item.getCreateTime()),StringUtil.mmddhhmmmDatePattern));
}
public Integer getPayName(Saleorder item) {
Integer inBG=-1;
switch (item.getPayType()) {
case C.PAY_CHANNEL.CASH:
inBG = R.mipmap.pay_cash;
break;
case C.PAY_CHANNEL.WECHAT:
inBG = R.mipmap.pay_wechat;
break;
case C.PAY_CHANNEL.ALI:
inBG = R.mipmap.pay_alipay;
break;
case C.PAY_CHANNEL.BANK:
inBG = R.mipmap.pay_card;
break;
case C.PAY_CHANNEL.CARD:
inBG = R.mipmap.pay_membershipcard;
break;
case C.PAY_CHANNEL.TALLY:
inBG = R.mipmap.pay_credit;
break;
}
return inBG;
}
}
......@@ -11,6 +11,8 @@ import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import java.util.List;
......@@ -21,6 +23,7 @@ import java.util.List;
public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMenuBinding> {
private Vip mVip;
private List<Level> mLevel;
@Override
public int getLayoutId() {
return R.layout.dialog_vip_menu;
......@@ -32,21 +35,28 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
switch (view.getId()) {
//編輯會員
case R.id.editVip:
mPresenter.vipInfoEditFragment=new VipInfoEditFragment();
mPresenter.vipInfoEditFragment = new VipInfoEditFragment();
mPresenter.vipInfoEditFragment.setVip(mVip);
mPresenter.vipInfoEditFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start( mPresenter.vipInfoEditFragment);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
break;
//充值記錄
case R.id.rechargeList:
mPresenter.vipRechargeListFragment = new VipRechargeListFragment();
mPresenter.vipRechargeListFragment.setVip(mVip);
mPresenter.vipRechargeListFragment.setVipLevel(mLevel);
((BaseActivity) getActivity()).start(mPresenter.vipRechargeListFragment);
break;
//優惠券詳情
case R.id.voucherDetails:
mPresenter.vipMscardListFragment = new VipMscardListFragment();
mPresenter.vipMscardListFragment.setVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment);
break;
//消費記錄
case R.id.consumeList:
((BaseActivity) getActivity()).start(new VipExpenseListFragment());
mPresenter.vipExpenseListFragment.setmVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipExpenseListFragment);
break;
}
dismiss();
......
......@@ -6,6 +6,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
......@@ -13,10 +14,14 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipRechargeAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
......@@ -26,9 +31,10 @@ import java.util.List;
*/
@SuppressLint("ValidFragment")
public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentVipExpenseListBinding> {
private VipRechargeAdapter vipRechargeAdapter;
private List<VipRechargeOrder> orders = new ArrayList<>();
private List<Level> levels=null;
private VipExpenseAdapter vipRechargeAdapter;
private List<Saleorder> orders = new ArrayList<>();
private List<Level> levels = null;
private int pageNumber = 0;
@Override
......@@ -36,34 +42,40 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
return R.layout.fragment_vip_expense_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("会员信息");
vipRechargeAdapter = new VipRechargeAdapter(getActivity(), orders);
mViewBinding.infoTitle.tvTitle.setText("消费记录");
vipRechargeAdapter = new VipExpenseAdapter(getActivity(), orders);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.expenseAMT.setText(ConvertUtil.fenToYuan2(mVip.getVipTotalpamt()));
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.popMenu.setVisibility(View.GONE);
mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount())));
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view ->{
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
vipRechargeAdapter.addData(new VipRechargeOrder());
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.loadMoreComplete();
ToastUtils.showShort("刷新成功");
mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
vipRechargeAdapter.setEnableLoadMore(false);
}
private void onRefresh() {
mViewBinding.rechargeRefresh.setRefreshing(false);
ToastUtils.showShort("刷新成功");
pageNumber = 0;
mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
}
@Override
......@@ -71,4 +83,30 @@ public class VipExpenseListFragment extends BaseFragment<VipPresenter, FragmentV
pop();
return true;
}
public void setmVip(Vip mVip) {
this.mVip = mVip;
}
public void getSaleorderSus(Pager<Saleorder> saleorderPager) {
if (saleorderPager.isFirstPage()) {
orders.clear();
}
if (saleorderPager.getList().size() != 0) {
orders.addAll(saleorderPager.getList());
vipRechargeAdapter.notifyDataSetChanged();
pageNumber = saleorderPager.getPageNumber() + 1;
}
if (saleorderPager.isLastPage()) {
ToastUtils.showShort("没有更多数据");
}
mViewBinding.expenseCount.setText(saleorderPager.getTotalRow() + "");
vipRechargeAdapter.setEnableLoadMore(!saleorderPager.isLastPage());
vipRechargeAdapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
}
......@@ -38,6 +38,7 @@ public class VipInfoFragment extends BaseFragment<VipPresenter, FragmentVipInfoB
dialog.setVip(mVip);
dialog.show((BaseActivity) getActivity());
});
if (mVip!=null){
mViewBinding.Totalpamt.setText(String.valueOf(mVip.getVipTotalpamt()));
mViewBinding.BoundCbal.setText(String.valueOf(mVip.getBoundCbal()));
mViewBinding.AcctCbal.setText(String.valueOf(mVip.getAcctCbal()));
......@@ -50,6 +51,8 @@ public class VipInfoFragment extends BaseFragment<VipPresenter, FragmentVipInfoB
mPresenter.ticketQuery(mVip.getVipId());
}
}
private String getVipSex(Byte vipSex) {
if (vipSex.toString().equals("1")) {
return "男";
......
......@@ -7,9 +7,13 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -62,6 +66,12 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
break;
}
});
// mViewBinding.titleSearch.serchEditText.setOnFocusChangeListener((View view, boolean b) -> {
// if (b){
// VipSearchFragment vipSearchFragment = new VipSearchFragment();
// vipSearchFragment.setBaseFragment(new VipInfoFragment());
// }
// });
mPresenter.getVipLevel(0, 200);
mPresenter.getVipNumber();
}
......@@ -155,23 +165,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void toStartVipInfo(Vip vip) {
mPresenter.vipInfoFragment = new VipInfoFragment();
if (vip != null) {
mPresenter.vipInfoFragment.setVip(vip);
mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
} else {
mPresenter.vipInfoEditFragment.setVipLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
}
}
public void addVipSus(Vip vip) {
// mPresenter.vipInfoFragment.pop();
// mPresenter.vipInfoFragment.setVip(vip);
// mPresenter.vipInfoFragment.setLevel(levels);
// ((BaseActivity) getActivity()).start( mPresenter.vipInfoFragment);
// if (vipInfoFragment != null) {
// if (vipInfoFragment.getmVip().getVipId() == null) {
// onRefresh();
// }
// vipInfoFragment.pop();
// }
}
/**
......
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.databinding.FragmentVipMscardListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipMscardAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 优惠券列表
*/
@SuppressLint("ValidFragment")
public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> {
private VipMscardAdapter adapter;
private List<Mscard> mscards = new ArrayList<>();
private int valid = 0;
private int inValid = 0;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_mscard_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("优惠券详情");
adapter = new VipMscardAdapter(getActivity(), mscards);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(adapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.popMenu.setVisibility(View.GONE);
mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount())));
adapter.setEnableLoadMore(true);
adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
// mPresenter.saleorderQuery(mVip.getVipId(), pageNumber);
// adapter.setEnableLoadMore(false);
}
private void onRefresh() {
mPresenter.mscardQuery(mVip.getVipId());
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
public void getMscardSus(Pager<Mscard> mscardPager) {
if (mscardPager.isFirstPage()) {
mscards.clear();
}
if (mscardPager.getList().size() != 0) {
mscards.addAll(mscardPager.getList());
adapter.notifyDataSetChanged();
// pageNumber = mscardPager.getPageNumber() + 1;
}
getMscardValid();
if (mscardPager.isLastPage()) {
ToastUtils.showShort("没有更多数据");
}
mViewBinding.mscardValid.setText(valid+ "");
mViewBinding.macardInvalid.setText(inValid+"");
adapter.setEnableLoadMore(!mscardPager.isLastPage());
adapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
private void getMscardValid() {
for (Mscard m : mscards) {
if (m.getCruleStatus().toString().equals("0")) {
valid = valid + 1;
} else {
inValid = inValid + 1;
}
}
}
}
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipRechargeListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipRechargeAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 会员充值记录
*/
@SuppressLint("ValidFragment")
public class VipRechargeListFragment extends BaseFragment<VipPresenter, FragmentVipRechargeListBinding> {
private VipRechargeAdapter vipRechargeAdapter;
private List<VipRechargeOrder> orders = new ArrayList<>();
private int pageNumber = 0;
private List<Level> levels;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_recharge_list;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("充值记录");
vipRechargeAdapter = new VipRechargeAdapter(getActivity(), orders);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(vipRechargeAdapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
mViewBinding.rechargeAMT.setText(ConvertUtil.fenToYuan2(mVip.getVipTotalpamt()));
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.popMenu.setVisibility(View.GONE);
mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount())));
vipRechargeAdapter.setEnableLoadMore(true);
vipRechargeAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
});
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
onRefresh();
}
private void onLoadMore() {
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
vipRechargeAdapter.setEnableLoadMore(false);
}
private void onRefresh() {
pageNumber = 0;
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVipLevel(List<Level> levels) {
this.levels = levels;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
public void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager) {
if (rechargeOrderPager.isFirstPage())
{
orders.clear();
}
if (rechargeOrderPager.getList().size() != 0) {
orders.addAll(rechargeOrderPager.getList());
vipRechargeAdapter.notifyDataSetChanged();
pageNumber = rechargeOrderPager.getPageNumber() + 1;
}
if (rechargeOrderPager.isLastPage()){
ToastUtils.showShort("没有更多数据");
}
vipRechargeAdapter.setEnableLoadMore(!rechargeOrderPager.isLastPage());
vipRechargeAdapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
}
package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSendTickerVipBinding;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter;
import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.List;
/**
* 会员搜索界面
*/
public class VipSearchFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
private VipAdapter mVipAdapter;
private BaseFragment baseFragment;
public void setBaseFragment(BaseFragment baseFragment) {
this.baseFragment = baseFragment;
}
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
}
@Override
public void initView() {
mViewBinding.setEmpty(true);
mVipAdapter = new VipAdapter();
mViewBinding.rlVip.setAdapter(mVipAdapter);
mViewBinding.rlVip.setLayoutManager(new LinearLayoutManager(mContext));
@SuppressLint("InflateParams") View emptyView = getLayoutInflater().inflate(R.layout
.view_empty, null);
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string
.settle_vip_search_empty);
mVipAdapter.setEmptyView(emptyView);
mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
if (baseFragment instanceof VipInfoFragment) {
((VipInfoFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
}
startWithPop(baseFragment);
});
mViewBinding.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
switch (v.getId()) {
case R.id.btn_back: {
pop();
}
break;
default: {
}
break;
}
}
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchVip(textView.getText().toString());
return false;
});
}
/**
* 加载会员信息
*
* @param vips 会员列表
*/
public void loadVips(List<Vip> vips) {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
}
@Override
public void onDestroyView() {
if (getActivity() instanceof SettleActivity) {
((SettleActivity) getActivity()).showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
}
super.onDestroyView();
}
}
<?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 @@
android:id="@+id/fragment_container"
android:layout_width="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_constraintEnd_toEndOf="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 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
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>
<LinearLayout
......
......@@ -6,17 +6,13 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/lyt_main_bg"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
style="@style/dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_padding" />
android:layout_height="wrap_content" />
<ViewStub
android:id="@+id/vs_center"
......@@ -25,22 +21,25 @@
android:layout_weight="1"
android:inflatedId="@+id/panel_import" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
<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_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_cancel"
style="@style/button_passive"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null"
android:text="@string/all_cancel"
android:textSize="@dimen/all_text_size"
......@@ -51,12 +50,12 @@
tools:targetApi="lollipop" />
<Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_confirm"
style="@style/button_positive"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null"
android:text="@string/all_confirm"
android:textSize="@dimen/all_text_size"
......@@ -68,7 +67,6 @@
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="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
<?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="cartCount"
type="int" />
<variable
name="result"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/ic_title"
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title_small"
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="@string/manage_inventory_add_title"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_small_title"
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/ic_title" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title_small">
</android.support.v7.widget.RecyclerView>
<FrameLayout
android:id="@+id/fl_cart"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:animateLayoutChanges="true"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintLeft_toRightOf="@id/fl_logo"
app:layout_constraintTop_toBottomOf="@id/fl_cart">
<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:textColor="@color/red_guanyu"
android:text="@{result}"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/btn_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
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/manage_inventory_add_end"
android:textColor="@color/white_caocao"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintRight_toRightOf="@id/fl_cart"
app:layout_constraintTop_toBottomOf="@id/fl_cart" />
<FrameLayout
android:id="@+id/fl_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin_big"
android:animateLayoutChanges="true"
app:layout_constraintBottom_toBottomOf="@id/btn_end"
app:layout_constraintLeft_toLeftOf="@id/fl_cart">
<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="@dimen/all_caption_size"
android:textStyle="bold" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -7,6 +7,50 @@
android:background="@color/gray_zhouyu"
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
android:id="@+id/ll_add"
......
......@@ -3,6 +3,24 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="shopName"
type="String" />
<variable
name="address"
type="String" />
<variable
name="phone"
type="String" />
<variable
name="stock"
type="String" />
</data>
<LinearLayout
android:layout_width="match_parent"
......@@ -78,14 +96,25 @@
app:layout_constraintStart_toStartOf="@id/tv_goods_code_hint"
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥"
android:layout_marginBottom="@dimen/view_line_L2"
android:textColor="@color/red_lvzhi"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintBottom_toBottomOf="@id/tv_price"
app:layout_constraintEnd_toStartOf="@id/tv_price"
/>
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_padding_left_right"
android:padding="@dimen/dp_4"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_small"
android:textColor="@color/red_lvzhi"
android:textSize="@dimen/big_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
</android.support.constraint.ConstraintLayout>
......@@ -97,9 +126,61 @@
android:weightSum="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
style="@style/textView_body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/singleline_white_gray"
android:text="邻库" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/singleline_white_gray"
android:gravity="right"
android:padding="@dimen/all_padding"
android:text="@{stock}"
android:textColor="@color/red_lvzhi" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:drawablePadding="@dimen/all_padding"
android:drawableStart="@mipmap/icon_stores"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:text="@{shopName}"
android:textSize="@dimen/all_text_size_low" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/all_padding"
android:background="@color/white_caocao"
android:drawableStart="@mipmap/icon_address"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:text="@{address}"
android:textSize="@dimen/all_text_size_low" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/all_padding"
android:background="@color/white_caocao"
android:drawableStart="@mipmap/icon_telephone"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:paddingBottom="@dimen/all_padding_left_right"
android:text="@{phone}"
android:textSize="@dimen/all_text_size_low" />
</LinearLayout>
......
......@@ -22,7 +22,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:layout_marginTop="@dimen/all_margin"
android:layout_marginTop="@dimen/all_spacing"
android:background="@color/gray_huanggai" />
<LinearLayout
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android: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
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="@dimen/all_margin"
android:paddingTop="@dimen/all_margin">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="共"
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_total_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginStart="@dimen/all_spacing"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_title_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="件"
android:textColor="@color/black_baozheng" />
</LinearLayout>
<View
android:layout_width="@dimen/view_line_L2"
android:layout_height="match_parent"
android:background="@color/golden_yuji" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="今日需补货"
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_replenish_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:text="6"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_title_size" />
</LinearLayout>
<TextView
android:id="@+id/tv_replenish"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
android:gravity="center"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="一键补货"
android:textColor="@color/white_caocao" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai" />
<LinearLayout
android:id="@+id/ll_sssku_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/add_bg"
android:gravity="center"
android:text="@string/sssku_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@mipmap/grp_add" />
</FrameLayout>
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_sku"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="@color/white_caocao">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</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/gray_zhouyu"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="visibility"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
<LinearLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/add_bg"
android:gravity="center"
android:text="@string/sssku_skugrp_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{visibility}" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -2,11 +2,6 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -16,7 +11,6 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_margin" />
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -25,11 +25,11 @@
android:orientation="horizontal">
<ImageView
android:background="@mipmap/mk_grade01"
android:layout_width="wrap_content"
android:layout_marginLeft="@dimen/all_margin"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content" />
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
......@@ -41,20 +41,22 @@
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="张思" />
android:layout_height="wrap_content" />
<TextView
style="@style/default_blacktext_smallstyle"
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="13311525312" />
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_discount"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......@@ -86,13 +88,14 @@
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用金額" />
android:text="消费总额" />
<TextView
android:id="@+id/expense_AMT"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="50.00"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
......@@ -112,13 +115,14 @@
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用金額" />
android:text="消费次数" />
<TextView
android:id="@+id/expense_Count"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="160.00"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
......
......@@ -209,15 +209,14 @@
</LinearLayout>
<LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="bottom"
android:orientation="horizontal">
<Button
android:id="@+id/onSure"
android:layout_alignParentBottom="true"
style="@style/button_positive_noradius"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -225,7 +224,7 @@
android:onClick="@{onClickListener}"
android:text="确认" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -13,9 +13,8 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<include
android:id="@+id/title_search"
layout="@layout/title_search"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:orientation="vertical">
<include
android:id="@+id/info_title"
layout="@layout/title_pop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_discount"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/all_margin"
android:text="@string/vip_info_discount" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用优惠卷" />
<TextView
android:id="@+id/mscard_valid"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/reddeep" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="40dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用优惠卷" />
<TextView
android:id="@+id/macard_invalid"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/recharge_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rechargeRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:orientation="vertical">
<include
android:id="@+id/info_title"
layout="@layout/title_pop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_discount"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/all_margin"
android:text="@string/vip_info_discount" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用余额" />
<TextView
android:id="@+id/recharge_AMT"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="40dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="累计充值" />
<TextView
android:id="@+id/recharge_amt"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.00"
android:textColor="@color/reddeep" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/recharge_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rechargeRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?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>
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_padding_left_right"
android:foreground="?attr/selectableItemBackground"
android:background="@color/white_caocao"
android:padding="@dimen/all_padding_left_right">
<ImageView
android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/img_boss"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding_left_right"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/all_text_size"
app:layout_constraintBottom_toBottomOf="@id/img"
app:layout_constraintStart_toEndOf="@id/img"
app:layout_constraintTop_toTopOf="@id/img" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/all_padding_left_right"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintBottom_toBottomOf="@id/tv_name"
app:layout_constraintStart_toEndOf="@id/tv_name" />
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/gray_kongming"
app:layout_constraintTop_toBottomOf="@id/img" />
<TextView
android:id="@+id/tv_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray"
android:padding="@dimen/all_padding"
android:text="件"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/view_line" />
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_low"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/tv_unit"
app:layout_constraintEnd_toStartOf="@id/tv_unit"
app:layout_constraintTop_toTopOf="@id/tv_unit" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray"
android:padding="@dimen/all_padding"
android:text="盘点件数:"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintBottom_toBottomOf="@id/tv_unit"
app:layout_constraintEnd_toStartOf="@id/tv_num"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray"
android:padding="@dimen/all_padding"
android:text="盘点结果:"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintEnd_toStartOf="@id/tv_result"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_unit" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray"
android:padding="@dimen/all_padding"
android:paddingEnd="@dimen/all_margin"
android:text="不相符"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_unit" />
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/all_padding"
android:text="2017-10-01 12:25"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_result" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/all_padding"
android:text="盘点时间"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_low"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_result" />
<ImageView
android:id="@+id/img_inventory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_not_consistent"
app:layout_constraintBottom_toBottomOf="@id/tv_result"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_result" />
</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">
<data>
<import type="android.view.View" />
<variable
name="count"
type="String" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:singleLine="true"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:id="@+id/tv_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{count}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<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" />
</LinearLayout>
</layout>
<?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>
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_padding_left_right"
android:background="@drawable/singleline_white_gray"
android:padding="@dimen/all_padding">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/img_goods"
android:layout_width="65dp"
android:layout_height="65dp"
app:placeholderImage="@mipmap/icon_goods_default" />
<TextView
android:id="@+id/tv_goods_name"
style="@style/other_select_blacktext_style"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_padding_left_right"
android:layout_marginStart="@dimen/all_padding_left_right"
android:text="贝斯克莱因和美妖精生日巧克力蛋糕"
app:layout_constraintStart_toEndOf="@id/img_goods"
app:layout_constraintTop_toTopOf="@id/img_goods" />
<TextView
android:id="@+id/tv_goods_code_hint"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="28dp"
android:layout_marginTop="@dimen/all_padding"
android:text="条码:"
app:layout_constraintStart_toStartOf="@id/tv_goods_name"
app:layout_constraintTop_toBottomOf="@id/tv_goods_name" />
<TextView
android:id="@+id/tv_goods_code"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="12783163981789"
app:layout_constraintBottom_toBottomOf="@id/tv_goods_code_hint"
app:layout_constraintStart_toEndOf="@id/tv_goods_code_hint"
app:layout_constraintTop_toTopOf="@id/tv_goods_code_hint" />
<TextView
android:id="@+id/tv_goods_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/frame_frame_zhouyu_bg"
android:padding="@dimen/dp_4"
android:text="规格"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintBottom_toBottomOf="@id/tv_goods_code"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_goods_code" />
<TextView
android:id="@+id/tv_goods_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="999"
android:textColor="@color/store_product_price"
android:textSize="@dimen/big_text_size"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/tv_price_hint"
app:layout_constraintStart_toEndOf="@id/tv_rmb"
app:layout_constraintTop_toTopOf="@id/tv_price_hint"
/>
<TextView
android:id="@+id/tv_rmb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_4"
android:text="@string/money_rmb"
android:textColor="@color/store_product_price"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintBottom_toBottomOf="@id/tv_price_hint"
app:layout_constraintStart_toEndOf="@+id/tv_price_hint"
/>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="@dimen/dialog_cart_item_button_height"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_num_hint">
<ImageButton
android:id="@+id/btn_down"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:src="@mipmap/but_reduce" />
<EditText
android:id="@+id/et_count"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/dp_4"
android:layout_marginTop="@dimen/dp_4"
android:layout_weight="1"
android:background="@drawable/selector_edit_frame_blue_background"
android:gravity="center"
android:hint="1"
android:inputType="number"
android:maxLength="4"
android:saveEnabled="false"
android:textSize="@dimen/all_text_size_low" />
<ImageButton
android:id="@+id/btn_up"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:src="@mipmap/but_add"
tools:layout_editor_absoluteX="666dp"
tools:layout_editor_absoluteY="97dp" />
</LinearLayout>
<TextView
android:id="@+id/tv_num_hint"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_padding"
android:text="构成数量:"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_goods_price" />
<TextView
android:id="@+id/tv_stock_hint"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_padding"
android:layout_marginStart="@dimen/all_padding_left_right"
android:text="系统库存:"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/tv_goods_price"
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
<TextView
android:id="@+id/tv_stock"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0个"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/tv_stock_hint"
app:layout_constraintStart_toEndOf="@id/tv_stock_hint"
app:layout_constraintTop_toTopOf="@id/tv_stock_hint" />
<TextView
android:id="@+id/tv_price_hint"
style="@style/other_select_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_padding"
android:text="进价:"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@id/tv_goods_code_hint"
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
<TextView
android:id="@+id/btn_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/all_confirm"
android:textColor="@color/white_caocao"
app:layout_constraintBottom_toBottomOf="@id/linearLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/linearLayout" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<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="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="@dimen/all_padding"
android:paddingEnd="@dimen/dp_4"
android:paddingStart="@dimen/dp_4"
android:paddingTop="@dimen/all_padding"
android:weightSum="5">
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="left"
android:paddingStart="@dimen/all_padding"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_small" />
<TextView
android:id="@+id/tv_stock_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_small" />
<TextView
android:id="@+id/tv_result_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_small" />
<ImageView
android:id="@+id/img_result"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@mipmap/icon_mark_equal" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -9,9 +9,9 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/white"
android:foreground="?android:attr/selectableItemBackground"
android:orientation="horizontal">
......@@ -28,10 +28,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/iv"
android:paddingTop="@dimen/all_padding"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
>
android:paddingTop="@dimen/all_padding">
<ImageView
android:id="@+id/iv_logo"
......@@ -55,6 +54,7 @@
android:layout_height="@dimen/view_line_L050"
android:layout_alignParentTop="true"
android:background="@color/gray_kongming" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
......
......@@ -31,6 +31,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="撒看见那"
android:textColor="@color/black_baozheng"
android:textSize="@{selected?@dimen/all_sub_title_size:@dimen/all_text_size}" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="spuName"
type="String" />
<variable
name="spuUnitName"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_pic"
android:layout_width="80dp"
android:layout_height="80dp"
app:failureImage="@mipmap/icon_goods_default"
app:placeholderImage="@mipmap/icon_goods_default"
app:roundedCornerRadius="@dimen/all_shape_radius" />
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lines="2"
android:text="@{spuName}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size"
app:layout_constraintLeft_toRightOf="@id/iv_pic"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+spuUnitName}"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toBottomOf="@id/ll_price"
app:layout_constraintLeft_toLeftOf="@id/tv_name" />
<LinearLayout
android:id="@+id/ll_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
app:layout_constraintRight_toRightOf="@id/tv_name"
app:layout_constraintTop_toBottomOf="@id/tv_name">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/money_rmb"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_caption_size"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_amt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size"
android:textStyle="bold" />
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_pic" />
</android.support.constraint.ConstraintLayout>
</layout>
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="@dimen/all_margin"
android:layout_marginRight="@dimen/all_margin_left"
android:background="@color/line_bg" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgLeft"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:background="@mipmap/pay_rmb" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/expense_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="会员充值" />
<TextView
android:id="@+id/expense_time"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="08-09 10:10"
android:textColor="@color/black_likui" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/expense_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<TextView
android:id="@+id/expense_shop"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="门店"
android:textColor="@color/black_likui" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="@dimen/all_margin"
android:layout_marginRight="@dimen/all_margin_left"
android:background="@color/line_bg" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgLeft"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:background="@mipmap/pay_rmb" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/expense_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="会员充值" />
<TextView
android:id="@+id/expense_time"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="08-09 10:10"
android:textColor="@color/black_likui" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/expense_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
<TextView
android:id="@+id/expense_shop"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="门店"
android:textColor="@color/black_likui" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="@dimen/all_margin"
android:background="@mipmap/pay_alipay" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/rechange_type"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="支付宝支付" />
<TextView
android:id="@+id/rechange_time"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:textColor="@color/black_likui"
android:layout_height="wrap_content"
android:text="08-09 10:10" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical">
<TextView
android:id="@+id/rechange_money"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+充值金额" />
<TextView
android:id="@+id/rechange_shop"
android:textColor="@color/black_likui"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="充值总店" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -3,13 +3,13 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/singleline_white_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">
......@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:imeOptions="actionSearch"
android:background="@color/listview_bg"
android:hint="请输入手机号或会员姓名" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="operName"
type="String" />
<variable
name="date"
type="String" />
<variable
name="sumNum"
type="String" />
<variable
name="finallyResult"
type="String" />
</data>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginEnd="@dimen/all_padding_left_right"
android:layout_marginStart="@dimen/all_padding_left_right"
android:layout_marginTop="@dimen/all_margin"
android:padding="@dimen/dp_4">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:focusable="true"
android:focusableInTouchMode="true">
<ImageView
android:id="@+id/img_user"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="@dimen/all_margin"
android:src="@mipmap/img_boss"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/img_user"
app:layout_constraintStart_toEndOf="@id/img_user"
app:layout_constraintTop_toTopOf="@id/img_user">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{operName}"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{date}"
android:textSize="@dimen/all_text_size_small" />
</LinearLayout>
<View
android:id="@+id/view_line_left"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L1"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/lyt_main_bg"
android:elevation="@dimen/view_line_L050"
app:layout_constraintTop_toBottomOf="@id/img_user" />
<LinearLayout
android:id="@+id/ll_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/view_line_height"
android:background="@color/lyt_main_bg"
android:elevation="@dimen/view_line_L050"
android:orientation="horizontal"
android:weightSum="5"
app:layout_constraintTop_toBottomOf="@id/view_line_left">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="left|center_vertical"
android:padding="@dimen/dp_4"
android:paddingStart="@dimen/all_padding"
android:text="商品"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/dp_4"
android:text="系统"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/dp_4"
android:text="盘点"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:padding="@dimen/dp_4"
android:text="结果"
android:textColor="@color/black"
android:textSize="@dimen/all_text_size_low" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/replenishment_left_recycler"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:minHeight="150dp"
app:layout_constraintBottom_toTopOf="@id/view_line_left_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_title">
</android.support.v7.widget.RecyclerView>
<LinearLayout
android:id="@+id/ll_result"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/ll_num">
<TextView
android:id="@+id/tv_result_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:text="盘点结果:"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size"
app:layout_constraintBottom_toTopOf="@id/ll_result"
app:layout_constraintEnd_toEndOf="@id/ll_result"
app:layout_constraintStart_toStartOf="@id/ll_result" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/yellow_radius_bg"
android:gravity="center"
android:paddingBottom="@dimen/dp_4"
android:paddingLeft="@dimen/all_padding"
android:paddingRight="@dimen/all_padding"
android:paddingTop="@dimen/dp_4"
android:text="@{finallyResult}"
android:textColor="@color/white"
android:textSize="@dimen/all_text_size_low" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_num"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="@id/ll_result"
app:layout_constraintEnd_toStartOf="@id/ll_result"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/ll_result">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:text="盘点件数:"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size"
app:layout_constraintBottom_toBottomOf="@id/tv_result_hint"
app:layout_constraintEnd_toEndOf="@id/ll_num"
app:layout_constraintStart_toStartOf="@id/ll_num"
app:layout_constraintTop_toTopOf="@id/tv_result_hint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/dp_4"
android:text="@{sumNum}"
android:textColor="@color/black"
android:textSize="@dimen/big_text_size"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="件"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size" />
</LinearLayout>
<View
android:id="@+id/view_line_left_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/lyt_main_bg"
app:layout_constraintBottom_toTopOf="@id/ll_result"
app:layout_constraintTop_toBottomOf="@id/replenishment_left_recycler" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
</FrameLayout>
</layout>
\ No newline at end of file
......@@ -65,7 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="@string/ms_editor_user"
android:text="@string/ms_editor_type_dis_hint"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
......
......@@ -125,7 +125,7 @@
<color name="red_diaochan">#ff8964</color>
<color name="red_lvzhi">#a22929</color>
<color name="gray_zhouyu">#f1f3f7</color>
<color name="gray_zhouyu">#f6f6f6</color>
<color name="gray_huanggai">#afb9c3</color>
<color name="gray_kongming">#e6e6e6</color>
......@@ -153,5 +153,4 @@
<color name="purple_yanqing">#6590e6</color>
</resources>
......@@ -22,7 +22,7 @@
<dimen name="all_tiny_size">9sp</dimen>
<dimen name="all_title_size">26sp</dimen>
<dimen name="all_padding">10dp</dimen>
<dimen name="all_padding_left_right">15dp</dimen>
<dimen name="all_padding_left_right">16dp</dimen>
<dimen name="all_text_size_big">22sp</dimen>
<dimen name="all_text_size_big_big">30sp</dimen>
<dimen name="all_text_size_super_big">25sp</dimen>
......@@ -214,5 +214,19 @@
<!--新标准-->
<dimen name="headline">20dp</dimen>
<dimen name="margin">16dp</dimen>
<dimen name="button1_height">40dp</dimen>
<dimen name="button1_marginHorizontal">24dp</dimen>
<dimen name="button1_width">120dp</dimen>
<dimen name="button2_height">35dp</dimen>
<dimen name="button2_marginHorizontal">16dp</dimen>
<dimen name="button2_width">105dp</dimen>
<dimen name="button3_height">44dp</dimen>
<dimen name="button3_marginHorizontal">16dp</dimen>
<dimen name="button3_width">328dp</dimen>
</resources>
......@@ -10,6 +10,8 @@
<string name="all_add">添加</string>
<string name="all_no"></string>
<string name="all_yes"></string>
<string name="all_update">编辑</string>
<string name="all_delete">删除</string>
<string name="visible">visible</string>
<string name="gone">gone</string>
<string name="password"></string>
......@@ -183,7 +185,6 @@
<!--商品页面 <WHERE>_<DESCRIPTION>-->
<string name="store_title">商品页面</string>
<string name="store_size">规格/</string>
<string name="store_price_unit"></string>
<string name="store_group">商品分组 </string>
<string name="store_sssku">标准商品 </string>
......@@ -263,8 +264,8 @@
<string name="title_activity_splash">SplashActivity</string>
<!--库查询界面-->
<string name="other_selcet_meun">库查询</string>
<!--库查询界面-->
<string name="other_selcet_meun">库查询</string>
<string name="other_selcet_edit_hint">商品名称/商品条码/商品助记码</string>
<string name="other_selcet_shop">共%s个门店库存</string>
......@@ -321,6 +322,8 @@
<!--营销计划-->
<string name="ms_title">营销计划</string>
<string name="ms_add">添加营销计划</string>
<string name="ms_user_title">旗舰</string>
<string name="ms_user_hint">营销计划功能限时免费使用 3 个月</string>
<string name="ms_count">共%s个营销计划</string>
<string name="ms_search_hint">请输入活动名称</string>
<string name="ms_empty_hint">没有搜到此计划\n请重新搜索,或点击添加按钮进行添加~</string>
......@@ -373,7 +376,12 @@
<!--商品管理-->
<string name="sssku_title">商品维护</string>
<string name="sssku_add">添加商品</string>
<string name="sssku_update">编辑商品</string>
<string name="sssku_detail">商品详情</string>
<string name="sssku_skugrp">分组信息</string>
<string name="sssku_skugrp_add">添加分组</string>
<string name="sssku_search_hint">请输入商品名称/助记码/条码</string>
<string name="sssku_empty_hint">没有搜到此商品\n请重新搜索,或点击添加按钮进行添加~</string>
......@@ -494,7 +502,7 @@
<string name="menu_manager_goods">商品维护</string>
<string name="menu_manager_bale">商品组合</string>
<string name="menu_manager_replenishment">补货订货</string>
<string name="menu_manager_other">库查询</string>
<string name="menu_manager_other">库查询</string>
<string name="menu_manager_inventory">库存盘点</string>
<string name="menu_announcement">公告通知</string>
......@@ -654,6 +662,7 @@
<string name="statistics_order_detail_hint">订单详情</string>
<string name="statistics_vip_recharge_hint">充值记录</string>
<string name="statistics_used_ticket_hint">充值记录</string>
<string name="statistics_inventory_detail_hint">盘库结果</string>
<!--商品详情POS-->
<string name="oder_detail_date">交易时间:</string>
<string name="oder_detail_no">订单号:</string>
......@@ -670,6 +679,13 @@
<string name="manage_replenishment_unConfirmed">待确认</string>
<string name="manage_replenishment_unReceive">待收货</string>
<string name="manage_replenishment_finished">已入库</string>
<string name="manage_inventory_add">开始盘库</string>
<string name="manage_inventory_add_title">商品盘点</string>
<string name="manage_inventory_add_end">盘库结束</string>
<!--商品维护-->
<string name="sku_size">规格/</string>
<string name="skugrp_add_hint">请输入分组名称</string>
</resources>
......@@ -17,9 +17,9 @@
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="vicescreen_textview_stlye">
......@@ -43,6 +43,16 @@
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_blacktext_nopadding_smallstyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
<item name="android:gravity">center_vertical</item>
<item name="android:singleLine">true</item>
<item name="android:padding">@dimen/dp_4</item>
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_blacktext_margin_smallstyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
......@@ -55,6 +65,7 @@
<item name="android:textColor">@color/black</item>
<item name="android:textSize">@dimen/detail_textview_size</item>
</style>
<style name="default_bluetext_popbutton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">match_parent</item>
......@@ -66,7 +77,6 @@
</style>
<style name="default_title">
<item name="android:gravity">center_vertical</item>
<item name="android:singleLine">true</item>
......@@ -338,16 +348,15 @@
</style>
<style name="editText_new" parent="view_base">
<item name=" android:background">@drawable/selector_white_background_stroke</item>
<item name="android:background">@drawable/selector_white_background_stroke</item>
<item name="android:padding">@dimen/et_padding</item>
<item name=" android:saveEnabled">false</item>
<item name="android:saveEnabled">false</item>
<item name="android:gravity">center|left</item>
<item name="android:textSize">@dimen/et_textsize</item>
<item name="android:textColorHint">@color/hint</item>
</style>
<style name="button" parent="view_base">
<item name=" android:background">@drawable/red_border</item>
<item name=" android:saveEnabled">false</item>
......@@ -387,7 +396,6 @@
</style>
<style name="searchBarEditor">
<item name="android:drawableStart">@mipmap/ic_search</item>
<item name="android:drawablePadding">@dimen/all_spacing</item>
<item name="android:maxLines">1</item>
<item name="android:maxLength">20</item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment