Commit 7d5e3217 authored by zhang_z's avatar zhang_z

营销BUG修改;

添加商品维护代码;
parent c371f1a8
......@@ -557,6 +557,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,8 +582,9 @@ 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) {
return Api.getInstance().service.querySaleorderByVipId(vipId,pageNumber,pageSize)
public static Observable<com.xingdata.zzdpos.model.Saleorder> querySaleorderByVipId(Long vipId, int pageNumber, int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId, pageNumber, pageSize)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......@@ -592,8 +593,6 @@ public final class ApiFactory {
}
}
public static class Ticket {
......@@ -641,10 +640,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())
......
......@@ -245,7 +245,6 @@ interface ApiService {
("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);
......@@ -342,15 +341,17 @@ interface ApiService {
@Query("pageSize") int pageSize);
@POST(C.URL.SSSKU.query)
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("wd") String keyword);
Observable<HttpMessage<Pager<Sssku>>> querySssku(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("wd") String keyword);
@POST(C.URL.SSKUGRP.query)
Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp();
@POST(C.URL.MS.query)
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber, @Query
("pageSize") int pageSize, @Query("msName") String keyword);
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
@Query("msName") String keyword);
@POST(C.URL.MS.detail)
Observable<HttpMessage<Ms>> detailMs(@Query("id") long id);
......
package com.xingdata.zzdpos.ui.manage.sssku;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivitySsskuBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.DetailFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.ManagerFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.SearchFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.SkugrpFragment;
import java.util.List;
public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBinding> implements SsskuContract.View {
private ManagerFragment mManagerFragment = new ManagerFragment();
private SearchFragment mSearchFragment = new SearchFragment();
private SkugrpFragment mSkugrpFragment = new SkugrpFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private DetailFragment mDetailFragment = new DetailFragment();
private LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
......@@ -16,6 +37,139 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
@Override
public void initView() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.loadRootFragment(R.id.f_sssku, mManagerFragment);
mViewBinding.btnBack.setOnClickListener(view -> {
getTopFragment().onBackPressedSupport();
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchSku(textView.getText().toString());
}
return false;
});
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
mPresenter.searchBarFocusChanged(b);
});
}
@Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
mManagerFragment.loadSkus(skus, isRefresh);
}
@Override
public void loadSkugrps(List<Sskugrp> sskugrps) {
mManagerFragment.loadSkugrps(sskugrps);
}
@Override
public void loadSkugrpState(Long skugrpId) {
mManagerFragment.loadSkugrpState(skugrpId);
}
@Override
public void loadReplenishCount(int count) {
mManagerFragment.loadReplenishCount(count);
}
@Override
public void loadSsskuCount(int count) {
mManagerFragment.loadSsskuCount(count);
}
@Override
public void loadSearchResult(List<Sssku> skus, boolean isRefresh) {
mSearchFragment.loadSkus(skus, isRefresh);
}
@Override
public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return;
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType));
}
@Override
public void showEditorFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment);
}
@Override
public void showEditorFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment);
}
@Override
public void showDetailFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.start(mDetailFragment);
}
@Override
public void showSkugrpFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_skugrp);
this.start(mSkugrpFragment);
}
@Override
public void backToEditFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
}
@Override
public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.resetSearchBar();
}
@Override
public void showLoadingDialog() {
mLoadingDialog.show(this);
}
@Override
public void dismissLoadingDialog() {
mLoadingDialog.dismiss();
}
/**
* 根据titleMode显示TitleBar
*
* @param titleMode 标题模式
*/
private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText("");
switch (titleMode) {
case C.TITLE_MODE.SKU:
mViewBinding.etSearch.setHint(R.string.sssku_search_hint);
break;
case C.TITLE_MODE.PKG:
mViewBinding.etSearch.setHint(R.string.sssku_search_hint);
break;
case C.TITLE_MODE.SKU_DETAIL:
break;
}
}
/**
* 重置搜索栏
*/
private void resetSearchBar() {
mViewBinding.etSearch.setText("");
mViewBinding.clTitle.requestFocus();
mViewBinding.clTitle.requestFocusFromTouch();
}
}
......@@ -3,12 +3,197 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import java.util.List;
public interface SsskuContract {
interface View extends BaseView {
/**
* 加载商品
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
*/
void loadSkus(List<Sssku> skus, boolean isRefresh);
/**
* 加载商品分组
*
* @param sskugrps 商品分组列表
*/
void loadSkugrps(List<Sskugrp> sskugrps);
/**
* 加载分组选中状态
*
* @param skugrpId 分组ID
*/
void loadSkugrpState(Long skugrpId);
/**
* 加载需要补货商品的数量
*
* @param count 数量
*/
void loadReplenishCount(int count);
/**
* 加载商品种类的总数
*/
void loadSsskuCount(int count);
/**
* 加载搜索结果
*
* @param skus 商品列表
* @param isRefresh 是否刷新列表
*/
void loadSearchResult(List<Sssku> skus, boolean isRefresh);
/**
* 显示搜索页面
*/
void showSearchFragment(int searchType);
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
*/
void showEditorFragment(Sssku sku);
/**
* 显示编辑页面
*/
void showEditorFragment();
/**
* 显示详情页面
*
* @param sku 要显示的商品
*/
void showDetailFragment(Sssku sku);
/**
* 显示商品分组页面
*/
void showSkugrpFragment();
/**
* 返回编辑页面
*/
void backToEditFragment();
/**
* 返回管理页面
*/
void backToManagerFragment();
/**
* 显示读取对话框
*/
void showLoadingDialog();
/**
* 隐藏读取对话框
*/
void dismissLoadingDialog();
}
abstract class Presenter extends BasePresenter<View> {
/**
* 管理页面 - 初始化
*/
public abstract void initManager();
/**
* 管理页面 - 刷新商品
*/
public abstract void refreshSku();
/**
* 管理页面 - 加载更多商品
*/
public abstract void loadMoreSku();
/**
* 管理页面 - 点击商品
*
* @param sssku 商品信息
*/
public abstract void clickSku(Sssku sssku);
/**
* 管理页面 - 切换分组
*
* @param sskugrp 分组
*/
public abstract void clickSkugrp(Sskugrp sskugrp);
/**
* 管理页面 - 点击添加商品
*/
public abstract void clickAddSku();
/**
* 管理页面 - 点击添加分组
*/
public abstract void clickAddSkugrp();
/**
* 管理页面 - 点击一键补货
*/
public abstract void clickReplenish();
/**
* 搜索页面 - 点击搜索
*/
public abstract void searchSku(String keyword);
/**
* 搜索页面 - 加载更多搜索结果
*/
public abstract void loadMoreSearchResult();
/**
* 搜索页面 - 点击商品
*
* @param sssku 商品信息
* @param searchType 搜索类型
*/
public abstract void clickSku(Sssku sssku, int searchType);
/**
* 详情页面 - 编辑商品
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditSku(Sssku sssku);
/**
* 分组页面 - 删除分组.
*
* @param sskugrp 要删除的分组
*/
public abstract void clickDeleteSkugrp(Sskugrp sskugrp);
/**
* 分组页面 - 编辑分组
*
* @param sskugrp 要编辑的分组
*/
public abstract void clickEditSkugrp(Sskugrp sskugrp);
/**
* 主页面 - 搜索框焦点改变
*
* @param b 获取焦点
*/
public abstract void searchBarFocusChanged(boolean b);
}
}
package com.xingdata.zzdpos.ui.manage.sssku;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
public class SsskuPresenter extends SsskuContract.Presenter {
private int mPageNum;
private Long mSkuGrpId;
private int mSearchPageNum;
private String mKeyword;
@Override
public void onAttached() {
}
@Override
public void initManager() {
this.getSkugrp();
this.getReplenish();
this.refreshSku();
}
@Override
public void refreshSku() {
this.mPageNum = 0;
this.mSkuGrpId = 0L;
mView.loadSkugrpState(mSkuGrpId);
this.getSku();
}
@Override
public void loadMoreSku() {
this.mPageNum++;
this.getSku();
}
@Override
public void clickSku(Sssku sssku) {
mView.showDetailFragment(sssku);
}
@Override
public void clickSkugrp(Sskugrp sskugrp) {
this.mPageNum = 0;
this.mSkuGrpId = sskugrp.getSkuGrpId();
mView.loadSkugrpState(mSkuGrpId);
this.getSku();
}
@Override
public void clickAddSku() {
mView.showEditorFragment();
}
@Override
public void clickAddSkugrp() {
mView.showSkugrpFragment();
}
@Override
public void clickReplenish() {
//TODO 跳转到补货界面
}
@Override
public void searchSku(String keyword) {
this.mSearchPageNum = 0;
this.mKeyword = keyword;
this.getSearchSku();
}
@Override
public void loadMoreSearchResult() {
this.mSearchPageNum++;
this.getSearchSku();
}
@Override
public void clickSku(Sssku sssku, int searchType) {
switch (searchType) {
case C.TITLE_MODE.SKU:
mView.showDetailFragment(sssku);
break;
case C.TITLE_MODE.PKG:
break;
}
}
@Override
public void clickEditSku(Sssku sssku) {
mView.showEditorFragment(sssku);
}
@Override
public void clickDeleteSkugrp(Sskugrp sskugrp) {
}
@Override
public void clickEditSkugrp(Sskugrp sskugrp) {
}
@Override
public void searchBarFocusChanged(boolean b) {
if (b) mView.showSearchFragment(C.TITLE_MODE.SKU);
}
/**
* 获取商品
*/
private void getSku() {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sssku.querySssku(mPageNum, "", mSkuGrpId)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(ssskuPager -> {
if (mPageNum == 0) mView.loadSsskuCount(ssskuPager.getTotalRow());
mView.loadSkus(ssskuPager.getList(), mPageNum == 0);
})
);
}
/**
* 获取搜索商品
*/
private void getSearchSku() {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sssku.querySssku(mSearchPageNum, mKeyword)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(ssskuPager -> mView.loadSearchResult(ssskuPager.getList(), mSearchPageNum == 0))
);
}
/**
* 获取分组
*/
private void getSkugrp() {
mCompositeDisposable.add(
ApiFactory.Sskugrp.querySskugrp().subscribe(sskugrpPager -> {
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
sskugrpPager.getList().add(0, sskugrp);
mView.loadSkugrps(sskugrpPager.getList());
}
)
);
}
/**
* 获取补货信息
*/
private void getReplenish() {
mCompositeDisposable.add(
ApiFactory.Psb.preOrder().subscribe(ssskuPager -> mView.loadReplenishCount(ssskuPager.getTotalRow()))
);
}
}
......@@ -2,37 +2,23 @@ package com.xingdata.zzdpos.ui.manage.sssku.adapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemStoreSkuBinding;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.databinding.ItemSsskuSkuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.store.fragment.StoreFragment;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
public class SkuAdapter extends BaseAdapter<Sssku, ItemStoreSkuBinding> {
private List<Saledetail> mSaledetails;
public class SkuAdapter extends BaseAdapter<Sssku, ItemSsskuSkuBinding> {
public SkuAdapter() {
super(R.layout.item_store_sku, new ArrayList<>());
this.mSaledetails = new ArrayList<>();
}
private StoreFragment.OnCountChangeListener mOnCountChangeListener;
public void setSaledetails(List<Saledetail> saledetails) {
this.mSaledetails = saledetails;
super(R.layout.item_sssku_sku, new ArrayList<>());
}
@Override
protected void convert(ItemStoreSkuBinding mViewBinding, Sssku item) {
protected void convert(ItemSsskuSkuBinding mViewBinding, Sssku item) {
mViewBinding.ivPic.setImageURI(item.getSpuImg());
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.tvAmt.setText(ConvertUtil.fenToYuan(item.getSkuRetailPrice1()));
mViewBinding.setSpuName(item.getSpuName());
mViewBinding.setSpuUnitName(item.getSpuUnitName());
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuDetailBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDetailBinding> {
private Sssku mSssku;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_detail;
}
@Override
public void initView() {
mViewBinding.tvEdit.setOnClickListener(view -> {
this.pop();
mPresenter.clickEditSku(mSssku);
});
}
/**
* 设置商品
*
* @param sssku 商品信息
*/
public DetailFragment setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuEditorBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class EditorFragment extends BaseFragment<SsskuPresenter, FragmentSsskuEditorBinding> {
private Sssku mSssku;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_editor;
}
@Override
public void initView() {
}
/**
* 设置商品
*
* @param sssku 商品信息
*/
public EditorFragment setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.annotation.SuppressLint;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuManagerBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
import java.util.List;
public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuManagerBinding> {
private SkuAdapter mSkuAdapter;
private SkugrpAdapter mSkugrpAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_manager;
......@@ -15,11 +31,114 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
@Override
public void initView() {
mViewBinding.llAdd.setOnClickListener(view -> {
// init sku
mSkuAdapter = new SkuAdapter();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// init skugrp
mSkugrpAdapter = new SkugrpAdapter();
mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter);
mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mViewBinding.srlSku.setOnRefreshListener(this::refreshSku);
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickSku(mSkuAdapter.getItem(position)));
// set grp listener
mSkugrpAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickSkugrp(mSkugrpAdapter.getData().get(position)));
});
mViewBinding.tvReplenish.setOnClickListener(view -> {
// set other listener
mViewBinding.llSsskuAdd.setOnClickListener(view -> mPresenter.clickAddSku());
mViewBinding.tvReplenish.setOnClickListener(view -> mPresenter.clickReplenish());
mViewBinding.llSkugrpAdd.setOnClickListener(view -> mPresenter.clickAddSkugrp());
});
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
// init data
mPresenter.initManager();
}
/**
* 加载商品
*
* @param skus 商品信息
* @param isRefresh 是否需要刷新
*/
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
if (isRefresh) {
mSkuAdapter.isUseEmpty(true);
mSkuAdapter.setEnableLoadMore(true);
mViewBinding.srlSku.setRefreshing(false);
mSkuAdapter.setNewData(skus);
} else if (skus.size() > 0) mSkuAdapter.addData(skus);
if (skus.size() < C.PRODUCT.PAGE_SIZE) mSkuAdapter.loadMoreEnd(isRefresh);
else mSkuAdapter.loadMoreComplete();
}
/**
* 加载商品分组
*
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSkugrpAdapter.setNewData(sskugrps);
}
/**
* 加载分组状态
*
* @param skugrpId 当前选中的分组ID
*/
public void loadSkugrpState(Long skugrpId) {
for (int i = 0; i < mSkugrpAdapter.getData().size(); i++) {
if (mSkugrpAdapter.getData().get(i).getSkuGrpId().longValue() == skugrpId) {
mSkugrpAdapter.setSelectedPosition(i);
}
}
mSkugrpAdapter.notifyDataSetChanged();
}
/**
* 加载需要补货的商品数量
*
* @param count 数量
*/
public void loadReplenishCount(int count) {
mViewBinding.tvReplenishCount.setText(String.valueOf(count));
}
/**
* 加载商品总数
*
* @param count 商品总数
*/
public void loadSsskuCount(int count) {
mViewBinding.tvTotalCount.setText(String.valueOf(count));
}
/**
* 刷新商品
*/
private void refreshSku() {
mSkuAdapter.setEnableLoadMore(false);
mPresenter.refreshSku();
}
/**
* 加载更多商品
*/
private void loadMoreSku() {
mPresenter.loadMoreSku();
}
@Override
public boolean onBackPressedSupport() {
ActivityCompat.finishAfterTransition(getActivity());
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuSearchBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSearchBinding> {
private int mSearchType;
private SkuAdapter<Sssku> mSkuAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_search;
}
@Override
public void initView() {
// init sku
mSkuAdapter = new SkuAdapter<>();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
this.pop();
mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType);
});
// set empty
@SuppressLint("InflateParams") View view = getLayoutInflater().inflate(R.layout.view_empty, null);
mSkuAdapter.setEmptyView(view);
mSkuAdapter.isUseEmpty(false);
}
/**
* 加载更多商品
*/
private void loadMoreSku() {
mPresenter.loadMoreSearchResult();
}
/**
* 加载商品
*
* @param skus 商品
* @param isRefresh 是否刷新
*/
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
if (isRefresh) {
mSkuAdapter.isUseEmpty(true);
mSkuAdapter.setEnableLoadMore(true);
mSkuAdapter.setNewData(skus);
} else if (skus.size() > 0) mSkuAdapter.addData(skus);
if (skus.size() < C.PRODUCT.PAGE_SIZE) mSkuAdapter.loadMoreEnd(isRefresh);
else mSkuAdapter.loadMoreComplete();
}
/**
* 设置搜索类型
*
* @param searchType 搜索类型
* @return this
*/
public SearchFragment setSearchType(int searchType) {
this.mSearchType = searchType;
return this;
}
@Override
public boolean onBackPressedSupport() {
switch (mSearchType) {
case C.TITLE_MODE.SKU:
((SsskuActivity) getActivity()).backToManagerFragment();
break;
case C.TITLE_MODE.PKG:
((SsskuActivity) getActivity()).backToEditFragment();
break;
}
return super.onBackPressedSupport();
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuSkugrpBinding;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSkugrpBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_skugrp;
}
@Override
public void initView() {
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -80,7 +80,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
@Override
public void showEditorFragment(int msType) {
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.UPDATE));
start(mEditorFragment.setMs(msType).setEditMode(C.MS_EDITOR_MODE.ADD));
}
@Override
......@@ -168,7 +168,7 @@ public class MsActivity<Sku extends BaseSku> extends BaseActivity<MsPresenter, A
*
* @param titleMode 标题模式
*/
public void showTitleBarByTitleMode(int titleMode) {
private void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
mViewBinding.etSearch.setText("");
......
......@@ -292,12 +292,32 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
// listener
mViewBinding.llArea.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_area, mAreaAdapter, (dialog, which) -> {
switch (mAreaAdapter.getData().get(which).getId()) {
case C.MS_AREA.MER:
mMs.setMsRangeTag((byte) C.MS_AREA.MER);
mMs.setMerMapId(LoginPresenter.loginReturnBean.getMerMapId());
break;
case C.MS_AREA.LOCAL:
mMs.setMsRangeTag((byte) C.MS_AREA.LOCAL);
mMs.setShopMapId(LoginPresenter.loginReturnBean.getShopMapId());
break;
}
mAreaAdapter.getOnItemSelectedListener().onItemSelected(mAreaAdapter.getStrs()[which]);
mAreaAdapter.setSelectedPosition(which);
dialog.dismiss();
})
);
mViewBinding.llUser.setOnClickListener(view -> showSelectorDialog(R.string.ms_editor_user, mUserAdapter, (dialog, which) -> {
switch (mUserAdapter.getData().get(which).getId()) {
case C.MS_USER.ALL:
mMs.setMsCoustomTag((byte) C.MS_USER.ALL);
mMs.setVipLevel((byte) 0);
break;
case C.MS_USER.VIP:
mMs.setMsCoustomTag((byte) C.MS_USER.VIP);
mMs.setVipLevel((byte) mUserAdapter.getData().get(which).getLevelId());
break;
}
mUserAdapter.getOnItemSelectedListener().onItemSelected(mUserAdapter.getStrs()[which]);
mUserAdapter.setSelectedPosition(which);
dialog.dismiss();
......@@ -456,7 +476,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
ToastUtils.showShort("请确认输入内容是否正确");
return;
}
mMs.setMsName(mViewBinding.getName());
mMs.setMsName(mViewBinding.etName.getText().toString());
mMs.setMsDateBegin(ConvertUtil.stringToLong(mViewBinding.getDateStart().replaceAll("[\\u4e00-\\u9fa5]+", "")));
mMs.setMsDateEnd(ConvertUtil.stringToLong(mViewBinding.getDateEnd().replaceAll("[\\u4e00-\\u9fa5]+", "")));
......@@ -476,6 +496,7 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
}
mMs.setMsToolsType(mMs.getMsTools());
mMs.setGiftTag(mMs.getMsTools().byteValue());
mMs.setCreateTime(null);
mMs.setUpdateTime(null);
......
......@@ -15,8 +15,6 @@ import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class SearchFragment<Sku extends BaseSku> extends BaseFragment<MsPresenter, FragmentMsSearchBinding> {
private int mSearchType;
private SkuAdapter<Sku> mSkuAdapter;
......
......@@ -15,7 +15,9 @@ public class TypeDisView extends BaseTypeView<ViewTypeDisBinding> {
if (mMs.getMsTools() == null) return;
if (mMs.getMsTools() == C.MS_TYPE.DIS) mViewBinding.rbDis.setChecked(true);
if (mMs.getMsTools() == C.MS_TYPE.SECOND) mViewBinding.rbSecond.setChecked(true);
mViewBinding.etDis.setText(String.valueOf(mMs.getPriceDiscount()));
if (mMs.getPriceDiscount() != null) {
mViewBinding.etDis.setText(String.valueOf(mMs.getPriceDiscount()));
}
}
@Override
......
......@@ -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);
......
......@@ -17,9 +17,12 @@
android:orientation="vertical">
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_title"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao">
android:background="@color/white_caocao"
android:focusable="true"
android:focusableInTouchMode="true">
<ImageButton
android:id="@+id/btn_back"
......@@ -36,7 +39,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
android:visibility="@{titleMode>1?0:8}"
android:visibility="@{titleMode==1||titleMode==6?8:0}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
......@@ -61,10 +64,10 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/payment_title"
android:text="@string/sssku_title"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:visibility="@{titleMode>1?8:0}"
android:visibility="@{titleMode==1||titleMode==6?0:8}"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red_guanyu"
android:orientation="vertical">
<TextView
android:id="@+id/tv_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="编辑" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/blue_mawu"
android:orientation="vertical">
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -30,11 +30,11 @@
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_total_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginStart="@dimen/all_spacing"
android:text="160"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_title_size" />
......@@ -65,6 +65,7 @@
android:textColor="@color/black_baozheng" />
<TextView
android:id="@+id/tv_replenish_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
......@@ -102,7 +103,7 @@
android:background="@color/gray_huanggai" />
<LinearLayout
android:id="@+id/ll_add"
android:id="@+id/ll_sssku_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
......@@ -116,7 +117,7 @@
android:drawablePadding="@dimen/all_spacing"
android:drawableStart="@mipmap/add_bg"
android:gravity="center"
android:text="@string/ms_add"
android:text="@string/sssku_add"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
......@@ -138,8 +139,24 @@
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_skugrp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/ll_skugrp_add"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/all_sub_title_size"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@mipmap/grp_add" />
</FrameLayout>
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green_chengyaojin"
android:orientation="vertical">
</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
......@@ -31,6 +31,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="撒看见那"
android:textColor="@color/black_baozheng"
android:textSize="@{selected?@dimen/all_sub_title_size:@dimen/all_text_size}" />
......
......@@ -7,8 +7,12 @@
<import type="android.view.View" />
<variable
name="count"
type="int" />
name="spuName"
type="String" />
<variable
name="spuUnitName"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
......@@ -34,16 +38,30 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lines="2"
android:text="@{spuName}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size"
app:layout_constraintLeft_toRightOf="@id/iv_pic"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_gray_r1"
android:padding="@dimen/all_spacing"
android:text="@{@string/sku_size+spuUnitName}"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toBottomOf="@id/ll_price"
app:layout_constraintLeft_toLeftOf="@id/tv_name" />
<LinearLayout
android:id="@+id/ll_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
app:layout_constraintLeft_toLeftOf="@id/tv_name"
app:layout_constraintRight_toRightOf="@id/tv_name"
app:layout_constraintTop_toBottomOf="@id/tv_name">
<TextView
......
......@@ -125,7 +125,7 @@
<color name="red_diaochan">#ff8964</color>
<color name="red_lvzhi">#a22929</color>
<color name="gray_zhouyu">#f1f3f7</color>
<color name="gray_zhouyu">#f6f6f6</color>
<color name="gray_huanggai">#afb9c3</color>
<color name="gray_kongming">#e6e6e6</color>
......@@ -153,5 +153,4 @@
<color name="purple_yanqing">#6590e6</color>
</resources>
......@@ -183,7 +183,6 @@
<!--商品页面 <WHERE>_<DESCRIPTION>-->
<string name="store_title">商品页面</string>
<string name="store_size">规格/</string>
<string name="store_price_unit"></string>
<string name="store_group">商品分组 </string>
<string name="store_sssku">标准商品 </string>
......@@ -375,7 +374,11 @@
<!--商品管理-->
<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_search_hint">请输入商品名称/助记码/条码</string>
<string name="sssku_empty_hint">没有搜到此商品\n请重新搜索,或点击添加按钮进行添加~</string>
......@@ -673,5 +676,8 @@
<string name="manage_replenishment_unReceive">待收货</string>
<string name="manage_replenishment_finished">已入库</string>
<!--商品维护-->
<string name="sku_size">规格/</string>
</resources>
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