Commit 2060f676 authored by 姜敏's avatar 姜敏

Merge branch 'master' of 192.168.254.154:w525721508/TangKuPos

parents 70793dac c9670b70
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<w>huangxin</w> <w>huangxin</w>
<w>inputer</w> <w>inputer</w>
<w>kongming</w> <w>kongming</w>
<w>kongrong</w>
<w>kongrun</w> <w>kongrun</w>
<w>likui</w> <w>likui</w>
<w>liubei</w> <w>liubei</w>
...@@ -19,6 +20,7 @@ ...@@ -19,6 +20,7 @@
<w>nong</w> <w>nong</w>
<w>patt</w> <w>patt</w>
<w>shixiu</w> <w>shixiu</w>
<w>skus</w>
<w>sunquan</w> <w>sunquan</w>
<w>xishi</w> <w>xishi</w>
<w>yanqing</w> <w>yanqing</w>
......
...@@ -66,6 +66,10 @@ ...@@ -66,6 +66,10 @@
android:name=".ui.settle.SettleActivity" android:name=".ui.settle.SettleActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden" android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" /> android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity
android:name=".ui.store.StoreActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity <activity
android:name=".ui.announcement.AnnouncementActivity" android:name=".ui.announcement.AnnouncementActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden" android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
......
...@@ -6,15 +6,14 @@ import android.databinding.DataBindingUtil; ...@@ -6,15 +6,14 @@ import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding; import android.databinding.ViewDataBinding;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatDelegate; import android.support.v7.app.AppCompatDelegate;
import android.support.v7.app.AppCompatDialogFragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils; import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ScreenUtils; import com.blankj.utilcode.util.ScreenUtils;
...@@ -32,7 +31,7 @@ import io.reactivex.functions.Consumer; ...@@ -32,7 +31,7 @@ import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function; import io.reactivex.functions.Function;
public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBinding> extends DialogFragment { public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBinding> extends AppCompatDialogFragment {
private DialogBaseBinding mBaseBinding; private DialogBaseBinding mBaseBinding;
private Disposable mDisp; private Disposable mDisp;
...@@ -49,6 +48,9 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind ...@@ -49,6 +48,9 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
public abstract int getLayoutId(); public abstract int getLayoutId();
public BaseDialog() {
mContext = getActivity();
}
public void onCancelClick(View view) { public void onCancelClick(View view) {
KeyboardUtils.hideSoftInput(mViewBinding.getRoot()); KeyboardUtils.hideSoftInput(mViewBinding.getRoot());
...@@ -74,17 +76,13 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind ...@@ -74,17 +76,13 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
mBaseBinding.btnConfirm.setEnabled(isEnable); mBaseBinding.btnConfirm.setEnabled(isEnable);
} }
public int getTitle() { public int getTitle() {
return R.string.all_dialog; return R.string.all_dialog;
} }
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
mContext = ActivityUtils.getTopActivity();
mPresenter = (P) getBaseActivity().mPresenter; mPresenter = (P) getBaseActivity().mPresenter;
getBaseActivity().mDialogs.add(0, this); getBaseActivity().mDialogs.add(0, this);
...@@ -116,14 +114,12 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind ...@@ -116,14 +114,12 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
private View getEasyFragmentDialog(@NonNull LayoutInflater inflater, ViewGroup container) { private View getEasyFragmentDialog(@NonNull LayoutInflater inflater, ViewGroup container) {
mViewBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false); mViewBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
this.initView(); this.initView();
return mViewBinding.getRoot(); return mViewBinding.getRoot();
} }
private BaseActivity getBaseActivity() { protected BaseActivity getBaseActivity() {
return (BaseActivity) getActivity(); return (BaseActivity) getActivity();
} }
......
...@@ -17,9 +17,11 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends ...@@ -17,9 +17,11 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends
private OnItemClickListener mOnItemClickListener; private OnItemClickListener mOnItemClickListener;
private boolean isEnabled = true; private boolean isEnabled = true;
private boolean isAutoClickItem;
public BaseSelectedAdapter(int layoutResId, @Nullable List<T> data) { public BaseSelectedAdapter(int layoutResId, @Nullable List<T> data) {
super(layoutResId, data); super(layoutResId, data);
isAutoClickItem = true;
super.setOnItemClickListener((adapter, view, position) -> { super.setOnItemClickListener((adapter, view, position) -> {
if (!isEnabled) return; if (!isEnabled) return;
notifyItemChanged(mSelectedPosition); notifyItemChanged(mSelectedPosition);
...@@ -28,9 +30,24 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends ...@@ -28,9 +30,24 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends
}); });
} }
public BaseSelectedAdapter(int layoutResId, @Nullable List<T> data, boolean isAutoClickItem) {
super(layoutResId, data);
this.isAutoClickItem = isAutoClickItem;
super.setOnItemClickListener((adapter, view, position) -> {
if (!isEnabled) return;
notifyItemChanged(mSelectedPosition);
notifyItemChanged(position);
mSelectedPosition = position;
if (!this.isAutoClickItem) {
mOnItemClickListener.onItemClick(this, view, mSelectedPosition);
}
});
}
@Override @Override
protected void convert(BaseViewHolder helper, T item) { protected void convert(BaseViewHolder helper, T item) {
if (mOnItemClickListener != null && mSelectedPosition == helper.getAdapterPosition()) if (mOnItemClickListener != null && mSelectedPosition == helper.getAdapterPosition() && isAutoClickItem)
mOnItemClickListener.onItemClick(this, helper.itemView, mSelectedPosition); mOnItemClickListener.onItemClick(this, helper.itemView, mSelectedPosition);
this.convert(helper, (B) helper.mViewBinding, item); this.convert(helper, (B) helper.mViewBinding, item);
} }
...@@ -49,13 +66,6 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends ...@@ -49,13 +66,6 @@ public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends
this.mOnItemClickListener = listener; this.mOnItemClickListener = listener;
} }
public T getSelectedItemObject() {
if (mSelectedPosition > 0) {
return getData().get(mSelectedPosition);
} else {
return null;
}
}
public int getSelectedPosition() { public int getSelectedPosition() {
return mSelectedPosition; return mSelectedPosition;
......
package com.xingdata.zzdpos.base;
import android.app.Dialog;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.BottomSheetDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
public abstract class BaseSheetDialog<P extends BasePresenter, B extends ViewDataBinding> extends BaseDialog<P, B> {
public BottomSheetBehavior mBehavior;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mContext = getActivity();
mPresenter = (P) getBaseActivity().mPresenter;
getBaseActivity().mDialogs.add(0, this);
MyBottomSheetDialog dialog = new MyBottomSheetDialog(mContext);
mViewBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), getLayoutId(), null, false);
dialog.setContentView(mViewBinding.getRoot());
mBehavior = BottomSheetBehavior.from((View) mViewBinding.getRoot().getParent());
this.initView();
return dialog;
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return null;
}
private class MyBottomSheetDialog extends BottomSheetDialog {
public MyBottomSheetDialog(@NonNull Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int screenHeight = getScreenHeight(getContext());
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, screenHeight == 0 ? ViewGroup.LayoutParams.MATCH_PARENT : screenHeight);
}
int getScreenHeight(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
return wm != null ? wm.getDefaultDisplay().getHeight() : 0;
}
}
}
...@@ -6,8 +6,10 @@ import com.xingdata.zzdpos.base.BaseModel; ...@@ -6,8 +6,10 @@ import com.xingdata.zzdpos.base.BaseModel;
import com.xingdata.zzdpos.model.HandoverInfo; import com.xingdata.zzdpos.model.HandoverInfo;
import com.xingdata.zzdpos.model.Ms; import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Pay; import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.main.MainPresenter; import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.settle.SettlePresenter; import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -23,8 +25,6 @@ import io.realm.Sort; ...@@ -23,8 +25,6 @@ import io.realm.Sort;
public class DBFactory { public class DBFactory {
public static class Main { public static class Main {
/** /**
* 查询交班记录 * 查询交班记录
*/ */
...@@ -35,7 +35,6 @@ public class DBFactory { ...@@ -35,7 +35,6 @@ public class DBFactory {
.findFirst(); .findFirst();
} }
/** /**
* 更改交班记录 * 更改交班记录
*/ */
...@@ -46,7 +45,19 @@ public class DBFactory { ...@@ -46,7 +45,19 @@ public class DBFactory {
realm.copyToRealmOrUpdate(handoverInfo); realm.copyToRealmOrUpdate(handoverInfo);
} }
}); });
}
}
public static class Store {
/**
* 查询商品分组
*
* @return 商品分组
*/
public static Observable<List<Sskugrp>> querySkugrp() {
return Observable.just(DB.getInstance().get(StorePresenter.class).where(Sskugrp.class).findAll())
.flatMap(sskugrps -> Observable.just(getList(sskugrps)));
} }
} }
......
...@@ -13,9 +13,8 @@ import com.xingdata.zzdpos.databinding.FragmentCasherBinding; ...@@ -13,9 +13,8 @@ import com.xingdata.zzdpos.databinding.FragmentCasherBinding;
import com.xingdata.zzdpos.ui.main.MainPresenter; import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.main.adapter.MenuRecyclerAdapter; import com.xingdata.zzdpos.ui.main.adapter.MenuRecyclerAdapter;
import com.xingdata.zzdpos.ui.payment.PaymentActivity; import com.xingdata.zzdpos.ui.payment.PaymentActivity;
import com.xingdata.zzdpos.ui.sendticke.SendTicketActivity;
import com.xingdata.zzdpos.ui.splash.SplashActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsActivity; import com.xingdata.zzdpos.ui.statistics.StatisticsActivity;
import com.xingdata.zzdpos.ui.store.StoreActivity;
import com.xingdata.zzdpos.ui.vip.VipActivity; import com.xingdata.zzdpos.ui.vip.VipActivity;
import com.xingdata.zzdpos.util.MyMenuItemDecoration; import com.xingdata.zzdpos.util.MyMenuItemDecoration;
import com.xingdata.zzdpos.util.OnClickListener; import com.xingdata.zzdpos.util.OnClickListener;
...@@ -63,7 +62,7 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -63,7 +62,7 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
break; break;
case C.MENU.MENU_TICKET://优惠券 case C.MENU.MENU_TICKET://优惠券
ActivityUtils.startActivity(getActivity(), SendTicketActivity.class); ActivityUtils.startActivity(getActivity(), com.xingdata.zzdpos.ui.sendticke.SendTicketActivity.class);
break; break;
case C.MENU.MENU_STATISTICS://统计 case C.MENU.MENU_STATISTICS://统计
ActivityUtils.startActivity(getActivity(), StatisticsActivity.class); ActivityUtils.startActivity(getActivity(), StatisticsActivity.class);
...@@ -81,10 +80,10 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi ...@@ -81,10 +80,10 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
ActivityUtils.startActivity(getActivity(), PaymentActivity.class); ActivityUtils.startActivity(getActivity(), PaymentActivity.class);
} }
}); });
mViewBinding.tvSplash.setOnClickListener(new OnClickListener() { mViewBinding.tvStore.setOnClickListener(new OnClickListener() {
@Override @Override
protected void myOnClickListener(View v) { protected void myOnClickListener(View v) {
ActivityUtils.startActivity(getActivity(), SplashActivity.class); ActivityUtils.startActivity(getActivity(), StoreActivity.class);
} }
}); });
mViewBinding.btnHandover.setOnClickListener(new OnClickListener() { mViewBinding.btnHandover.setOnClickListener(new OnClickListener() {
......
...@@ -26,7 +26,7 @@ public class PayAdapter extends BaseAdapter<Pay, ItemPayBinding> { ...@@ -26,7 +26,7 @@ public class PayAdapter extends BaseAdapter<Pay, ItemPayBinding> {
break; break;
case C.PAY_CHANNEL.WECHAT: case C.PAY_CHANNEL.WECHAT:
resLogo = R.mipmap.pay_wechat; resLogo = R.mipmap.pay_wechat;
resBackground = R.color.green_kongrun; resBackground = R.color.green_kongrong;
break; break;
case C.PAY_CHANNEL.ALI: case C.PAY_CHANNEL.ALI:
resLogo = R.mipmap.pay_alipay; resLogo = R.mipmap.pay_alipay;
......
...@@ -77,21 +77,11 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -77,21 +77,11 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* @param vip 会员信息 * @param vip 会员信息
*/ */
public void loadVip(Vip vip) { public void loadVip(Vip vip) {
if (vip.isDefaultVip()) { mPayAdapter.setNewData(getAvlPays(vip));
for (int i = 0; i < mPayAdapter.getData().size(); i++) {
if (mPayAdapter.getData().get(i).isNeedVip()) mPayAdapter.remove(i);
}
} else {
for (int i = 0; i < mPays.size(); i++) {
if (mPays.get(i).isNeedVip() && (mPays.get(i).getPayType() != C.PAY_CHANNEL.CARD || vip.getAcctCbal() > mViewBinding.getOrderPayAmt())) {
mPayAdapter.addData(mPays.get(i));
}
}
}
mViewBinding.setDefualtVip(vip.isDefaultVip()); mViewBinding.setDefualtVip(vip.isDefaultVip());
mViewBinding.setName(vip.getVipName()); mViewBinding.setName(vip.getVipName());
mViewBinding.setPhone(ConvertUtil.longToString(vip.getVipMobile())); mViewBinding.setPhone(vip.getVipMobile());
mViewBinding.setBalance(vip.getAcctCbal()); mViewBinding.setBalance(vip.getAcctCbal());
mViewBinding.cbPoint.setChecked(false); mViewBinding.cbPoint.setChecked(false);
...@@ -141,14 +131,21 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -141,14 +131,21 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* 加载支付方式 * 加载支付方式
*/ */
public void loadPays(List<Pay> pays) { public void loadPays(List<Pay> pays) {
mPays.addAll(pays);
List<Pay> _pays = new ArrayList<>();
for (int i = 0; i < pays.size(); i++) { for (int i = 0; i < pays.size(); i++) {
pays.get(i).init(); pays.get(i).init();
if (!pays.get(i).isNeedVip()) _pays.add(pays.get(i));
} }
mPayAdapter.setNewData(_pays); mPays.addAll(pays);
mPayAdapter.setNewData(getAvlPays(Vip.createDefault()));
} }
List<Pay> getAvlPays(Vip vip) {
List<Pay> _pays = new ArrayList<>();
for (int i = 0; i < mPays.size(); i++) {
if (!mPays.get(i).isNeedVip() || (!vip.isDefaultVip() && (mPays.get(i).getPayType() != C.PAY_CHANNEL.CARD || vip.getAcctCbal() >= mViewBinding.getOrderPayAmt())))
_pays.add(mPays.get(i));
}
return _pays;
}
} }
package com.xingdata.zzdpos.ui.store;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityStoreBinding;
public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBinding> implements StoreContract.View {
@Override
public int getLayoutId() {
return R.layout.activity_store;
}
@Override
public void initView() {
mViewBinding.ivCart.setOnClickListener(view -> mPresenter.clickCartLogo());
mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle());
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchSku(textView.getText().toString());
}
return false;
});
}
}
package com.xingdata.zzdpos.ui.store; package com.xingdata.zzdpos.ui.store;
import com.xingdata.zzdpos.base.BasePresenter; import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseSku;
import com.xingdata.zzdpos.base.BaseView; import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Sskugrp;
import java.util.List;
interface StoreContract { interface StoreContract {
interface View extends BaseView { interface View extends BaseView {
/**
* 加载商品
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
* @param <Sku> 商品类型
*/
<Sku extends BaseSku> void loadSkus(List<Sku> skus, boolean isRefresh);
/**
* 加载商品分组
*
* @param sskugrps 商品分组列表
*/
void loadSkugrps(List<Sskugrp> sskugrps);
/**
* 加载营销方案
*
* @param mss 营销方案列表
*/
void loadMss(List<Ms> mss);
/**
* 加载搜索结果
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
* @param <Sku> 商品类型
*/
<Sku extends BaseSku> void loadSearchResult(List<Sku> skus, boolean isRefresh);
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
/**
* 总体 - 点击结算按钮
*/
public abstract void clickSettle();
/**
* 总体 - 点击购物车logo
*/
public abstract void clickCartLogo();
/**
* 商店页面 - 初始化
*/
public abstract void initStore();
/**
* 商店页面 - 刷新商品
*/
public abstract void refreshSku();
/**
* 商店页面 - 加载更多商品
*/
public abstract void loadMoreSku();
/**
* 商店页面 - 点击搜索
*/
public abstract void searchSku(String keyword);
/**
* 商店页面 - 切换分组
*
* @param sskugrp 分组
*/
public abstract void clickSkugrp(Sskugrp sskugrp);
/**
* 商店页面 - 点击添加商品
*
* @param sku 商品
* @param <Sku> 商品类型
*/
public abstract <Sku extends BaseSku> void clickAddSku(Sku sku);
/**
* 商店页面 - 点击删除商品
*
* @param sku 商品
* @param <Sku> 商品类型
*/
public abstract <Sku extends BaseSku> void clickRemoveSku(Sku sku);
/**
* 购物车页面 - 点击添加购物信息
*
* @param saledetail 购物信息
*/
public abstract void clickAddSaledetail(Saledetail saledetail);
/**
* 购物车页面 - 点击删除购物信息
*
* @param saledetail 购物信息
*/
public abstract void clickRemoveSaledetail(Saledetail saledetail);
} }
......
package com.xingdata.zzdpos.ui.store;
import com.xingdata.zzdpos.base.BaseSku;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Sskugrp;
import java.util.List;
public class StorePresenter extends StoreContract.Presenter {
/**
* 当前购物车信息
*/
private List<Saledetail> mSaledetails;
/**
* 当前营销计划
*/
private List<Ms> mMss;
private int mStorePageNum;
private Long mSkuGrpId;
private int mSearchPageNum;
private String mKeyword;
@Override
public void onAttached() {
this.initRealm();
}
@Override
public void clickSettle() {
}
@Override
public void clickCartLogo() {
}
@Override
public void initStore() {
}
@Override
public void refreshSku() {
}
@Override
public void loadMoreSku() {
}
@Override
public void searchSku(String keyword) {
}
@Override
public void clickSkugrp(Sskugrp sskugrp) {
}
@Override
public <Sku extends BaseSku> void clickAddSku(Sku sku) {
}
@Override
public <Sku extends BaseSku> void clickRemoveSku(Sku sku) {
}
@Override
public void clickAddSaledetail(Saledetail saledetail) {
}
@Override
public void clickRemoveSaledetail(Saledetail saledetail) {
}
private void getSkugrp() {
mCompositeDisposable.add(
DBFactory.Store.querySkugrp().subscribe(
sskugrps -> {
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(-1L);
sskugrp.setSkuGrpName("组合商品");
sskugrp.setSelected(false);
sskugrps.add(0, sskugrp);
sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
sskugrps.add(0, sskugrp);
mView.loadSkugrps(sskugrps);
})
);
}
}
package com.xingdata.zzdpos.ui.store.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemStoreMsBinding;
import com.xingdata.zzdpos.model.Ms;
import java.util.ArrayList;
public class MsAdapter extends BaseAdapter<Ms, ItemStoreMsBinding> {
public MsAdapter() {
super(R.layout.item_store_ms, new ArrayList<>());
}
@Override
protected void convert(ItemStoreMsBinding mViewBinding, Ms item) {
}
}
package com.xingdata.zzdpos.ui.store.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.base.BaseSku;
import com.xingdata.zzdpos.databinding.ItemStoreSkuBinding;
import java.util.ArrayList;
public class SkuAdapter<T extends BaseSku> extends BaseAdapter<T, ItemStoreSkuBinding> {
public SkuAdapter() {
super(R.layout.item_store_sku, new ArrayList<>());
}
@Override
protected void convert(ItemStoreSkuBinding mViewBinding, T item) {
}
}
package com.xingdata.zzdpos.ui.store.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSelectedAdapter;
import com.xingdata.zzdpos.base.BaseViewHolder;
import com.xingdata.zzdpos.databinding.ItemStoreSkugrpBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import java.util.ArrayList;
public class SkugrpAdapter extends BaseSelectedAdapter<Sskugrp, ItemStoreSkugrpBinding> {
public SkugrpAdapter() {
super(R.layout.item_store_skugrp, new ArrayList<>(), false);
}
@Override
protected void convert(BaseViewHolder helper, ItemStoreSkugrpBinding mViewBinding, Sskugrp item) {
}
}
package com.xingdata.zzdpos.ui.store.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogStoreCartBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
public class CartDialog extends BaseSheetDialog<StorePresenter, DialogStoreCartBinding> {
@Override
public int getLayoutId() {
return R.layout.dialog_store_cart;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.store.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogStoreMsBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
public class MsDialog extends BaseSheetDialog<StorePresenter, DialogStoreMsBinding> {
@Override
public int getLayoutId() {
return R.layout.dialog_store_ms;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.store.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentStoreScanBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
public class ScanFragment extends BaseFragment<StorePresenter, FragmentStoreScanBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_store_scan;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.store.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentStoreSearchBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
public class SearchFragment extends BaseFragment<StorePresenter, FragmentStoreSearchBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_store_search;
}
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.store.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentStoreBinding;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.store.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.store.adapter.SkugrpAdapter;
public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBinding> {
private SkuAdapter mSkuAdapter;
private SkugrpAdapter mSkugrpAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_store_search;
}
@Override
public void initView() {
mPresenter.initStore();
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white_caocao" />
</shape>
\ No newline at end of file
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:inputType="number" android:inputType="number"
android:labelFor="@+id/et_search"
android:textColor="@color/black_likui" android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai" android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" /> android:textSize="@dimen/all_text_size" />
......
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/transparent_border"
android:gravity="center"
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="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/transparent_border"
android:gravity="center"
android:orientation="vertical">
</LinearLayout>
</layout>
\ No newline at end of file
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
android:textColor="#FFF" /> android:textColor="#FFF" />
<TextView <TextView
android:id="@+id/tv_splash" android:id="@+id/tv_store"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<variable <variable
name="phone" name="phone"
type="String" /> type="long" />
<variable <variable
name="disRate" name="disRate"
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
android:background="@color/gray_zhouyu" android:background="@color/gray_zhouyu"
android:orientation="vertical"> android:orientation="vertical">
<ScrollView <android.support.v4.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@{phone}" android:text="@{ConvertUtil.longToString(phone)}"
android:textColor="@color/black_likui" android:textColor="@color/black_likui"
android:textSize="@dimen/all_caption_size" /> android:textSize="@dimen/all_caption_size" />
</LinearLayout> </LinearLayout>
...@@ -351,7 +351,7 @@ ...@@ -351,7 +351,7 @@
</LinearLayout> </LinearLayout>
</ScrollView> </android.support.v4.widget.NestedScrollView>
<LinearLayout <LinearLayout
android:id="@+id/ll_sheet" android:id="@+id/ll_sheet"
...@@ -403,7 +403,7 @@ ...@@ -403,7 +403,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/shape_red_round_rectangle_more_round" android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/selectableItemBackgroundBorderless" android:foreground="?android:attr/actionBarItemBackground"
android:paddingBottom="@dimen/all_spacing" android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big" android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big" android:paddingStart="@dimen/all_margin_big"
......
<?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">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
</android.support.design.widget.CoordinatorLayout>
</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">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
</android.support.design.widget.CoordinatorLayout>
</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>
<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="?attr/actionBarSize"
android:background="@color/white_caocao">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/green_kongrong">
</android.support.v7.widget.RecyclerView>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="@color/blue_mawu">
</android.support.v7.widget.RecyclerView>
</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">
<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.support.constraint.ConstraintLayout>
</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">
<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.support.constraint.ConstraintLayout>
</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">
<data>
<variable
name="selected"
type="boolean" />
</data>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="120dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground">
<View
android:layout_width="@dimen/all_spacing"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center_vertical"
android:background="@color/red_guanyu" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="全部商品"
android:textStyle="bold"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" />
</FrameLayout>
<FrameLayout
android:layout_width="120dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/gray_zhouyu"
android:foreground="?android:attr/selectableItemBackground">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textStyle="normal"
android:text="全部商品"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
</FrameLayout>
</LinearLayout>
</layout>
...@@ -80,7 +80,6 @@ ...@@ -80,7 +80,6 @@
<color name="line1">#e6e6e6</color> <color name="line1">#e6e6e6</color>
<color name="grey1">#E2E2E2</color> <color name="grey1">#E2E2E2</color>
<!-- 界面背景色 --> <!-- 界面背景色 -->
<color name="lyt_main_bg">#efeff4</color> <color name="lyt_main_bg">#efeff4</color>
...@@ -140,7 +139,7 @@ ...@@ -140,7 +139,7 @@
<color name="blue_mawu">#3f75a2</color> <color name="blue_mawu">#3f75a2</color>
<color name="green_chengyaojin">#088b38</color> <color name="green_chengyaojin">#088b38</color>
<color name="green_kongrun">#35ba6a</color> <color name="green_kongrong">#35ba6a</color>
<color name="orange_shixiu">#e88108</color> <color name="orange_shixiu">#e88108</color>
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<dimen name="all_text_size">16sp</dimen> <dimen name="all_text_size">16sp</dimen>
<dimen name="all_text_size_small">12sp</dimen> <dimen name="all_text_size_small">12sp</dimen>
<dimen name="all_caption_size">12sp</dimen> <dimen name="all_caption_size">12sp</dimen>
<dimen name="all_tiny_size">9sp</dimen>
<dimen name="all_title_size">26sp</dimen> <dimen name="all_title_size">26sp</dimen>
<dimen name="all_padding">10dp</dimen> <dimen name="all_padding">10dp</dimen>
<dimen name="all_text_size_big">22sp</dimen> <dimen name="all_text_size_big">22sp</dimen>
...@@ -194,5 +195,8 @@ ...@@ -194,5 +195,8 @@
<dimen name="settle_pay_item">108dp</dimen> <dimen name="settle_pay_item">108dp</dimen>
<dimen name="settle_pay_logo">72dp</dimen> <dimen name="settle_pay_logo">72dp</dimen>
<!--商店-->
<dimen name="store_cart_count">20dp</dimen>
</resources> </resources>
...@@ -184,9 +184,7 @@ ...@@ -184,9 +184,7 @@
<string name="store_group">商品分组 </string> <string name="store_group">商品分组 </string>
<string name="store_sssku">标准商品 </string> <string name="store_sssku">标准商品 </string>
<string name="store_ussku">组合商品 </string> <string name="store_ussku">组合商品 </string>
<string name="store_search">商品查询</string>
<string name="store_search_beside">邻库查询</string> <string name="store_search_beside">邻库查询</string>
<string name="store_search_hint">商品名称/商品条码/商品助记码</string>
<string name="store_empty_hint">没有搜到此商品\n请重新搜索,或前往商品维护进行添加~</string> <string name="store_empty_hint">没有搜到此商品\n请重新搜索,或前往商品维护进行添加~</string>
<string name="store_scan_empty_hint">没有找到此商品</string> <string name="store_scan_empty_hint">没有找到此商品</string>
...@@ -532,6 +530,14 @@ ...@@ -532,6 +530,14 @@
<string name="settle_ticket_unit"></string> <string name="settle_ticket_unit"></string>
<string name="settle_ticket_info">元优惠券</string> <string name="settle_ticket_info">元优惠券</string>
<!--商店-->
<string name="store_pay_amt">合计:</string>
<string name="store_cart">购物车</string>
<string name="store_btn_settle">选好了</string>
<string name="store_ms_dis">已减</string>
<string name="store_scan">扫描</string>
<string name="store_search_hint">请输入商品名称/助记码/条码</string>
<!--帮助POS--> <!--帮助POS-->
<string name="help_hint">帮助</string> <string name="help_hint">帮助</string>
<string name="help_phone">400–800–9406</string> <string name="help_phone">400–800–9406</string>
......
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