Commit 351c9955 authored by zhang_z's avatar zhang_z

金额输入键盘修改;

添加营销计划管理页面;
parent 42be3d1b
......@@ -432,11 +432,15 @@ public class C {
public final class PRODUCT {
public static final int PAGE_SIZE = 36;
public static final int PAGE_SIZE = 12;
//服务器每页数据条数
public static final int SERVER_PAGE_SIZE = 5;
}
public final class MS {
public static final int PAGE_SIZE = 12;
}
public final class PAY_CHANNEL {
public static final int CASH = 1;
......
......@@ -12,7 +12,6 @@ import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Ubound;
import com.xingdata.zzdpos.model.UsskuParam;
......@@ -247,6 +246,7 @@ public final class ApiFactory {
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* 销售订单查询接口
*
......@@ -970,8 +970,7 @@ public final class ApiFactory {
}
public static class Ms {
public static Observable<Pager<com.xingdata.zzdpos.model.Ms>> query(int pageNum, int
pageSize, String keyword) {
public static Observable<Pager<com.xingdata.zzdpos.model.Ms>> query(int pageNum, int pageSize, String keyword) {
return Api.getInstance().service.queryMs(pageNum, pageSize, keyword)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -980,6 +979,11 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<com.xingdata.zzdpos.model.Ms>> query(int pageNum) {
return query(pageNum, C.MS.PAGE_SIZE, "");
}
public static Observable<com.xingdata.zzdpos.model.Ms> detail(long id) {
return Api.getInstance().service.detailMs(id)
.onErrorReturn(new ErrorFilter<>())
......@@ -989,8 +993,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Ms> update(com.xingdata.zzdpos.model.Ms
ms) {
public static Observable<com.xingdata.zzdpos.model.Ms> update(com.xingdata.zzdpos.model.Ms ms) {
return Api.getInstance().service.updateMs(ms)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -1000,8 +1003,7 @@ public final class ApiFactory {
}
public static Observable<com.xingdata.zzdpos.model.Ms> add(com.xingdata.zzdpos.model.Ms
ms) {
public static Observable<com.xingdata.zzdpos.model.Ms> add(com.xingdata.zzdpos.model.Ms ms) {
return Api.getInstance().service.addMs(ms)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -1012,9 +1014,7 @@ public final class ApiFactory {
}
public static class Level {
public static Observable<com.xingdata.zzdpos.model.Level> addVipLevel(com.xingdata.zzdpos
.model.Level
level) {
public static Observable<com.xingdata.zzdpos.model.Level> addVipLevel(com.xingdata.zzdpos.model.Level level) {
return Api.getInstance().service.addVipLevel(level)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -1023,11 +1023,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Level> updateVipLevel(com.xingdata
.zzdpos
.model
.Level
level) {
public static Observable<com.xingdata.zzdpos.model.Level> updateVipLevel(com.xingdata.zzdpos.model.Level level) {
return Api.getInstance().service.updateVipLevel(level)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......
......@@ -4,9 +4,19 @@ package com.xingdata.zzdpos.ui.marketing.ms;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityMsBinding;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.AddFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.marketing.ms.fragment.ManagerFragment;
import java.util.List;
public class MsActivity extends BaseActivity<MsPresenter, ActivityMsBinding> implements MsContract.View {
private ManagerFragment mManagerFragment = new ManagerFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private AddFragment mAddFragment = new AddFragment();
@Override
public int getLayoutId() {
return R.layout.activity_ms;
......@@ -14,6 +24,32 @@ public class MsActivity extends BaseActivity<MsPresenter, ActivityMsBinding> imp
@Override
public void initView() {
this.loadRootFragment(R.id.f_ms, mManagerFragment);
mViewBinding.btnBack.setOnClickListener(view -> onBackPressedSupport());
}
@Override
public void loadMss(List<Ms> mss, boolean isRefresh) {
mManagerFragment.loadMss(mss, isRefresh);
}
@Override
public void showAddFragment() {
this.start(mAddFragment);
}
@Override
public void showEditorFragment() {
}
@Override
public void showLoadingDialog() {
}
@Override
public void dismissLoadingDialog() {
}
}
......@@ -2,13 +2,60 @@ package com.xingdata.zzdpos.ui.marketing.ms;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Ms;
import java.util.List;
interface MsContract {
interface View extends BaseView {
/**
* 加载营销计划数据
*/
void loadMss(List<Ms> mss, boolean isRefresh);
/**
* 显示添加页面
*/
void showAddFragment();
void showEditorFragment();
/**
* 显示读取对话框
*/
void showLoadingDialog();
/**
* 隐藏读取对话框
*/
void dismissLoadingDialog();
}
abstract class Presenter extends BasePresenter<View> {
/**
* 管理页面 - 刷新营销计划
*/
public abstract void refreshMs();
/**
* 管理页面 - 加载更多营销计划
*/
public abstract void loadMoreMs();
/**
* 管理页面 - 点击添加按钮
*/
public abstract void clickAdd();
/**
* 管理页面 - 点击营销方案的item
*/
public abstract void clickMsItem(Ms ms);
}
}
package com.xingdata.zzdpos.ui.marketing.ms;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Ms;
public class MsPresenter extends MsContract.Presenter {
/**
* 页码
*/
private int mPageNum = 1;
@Override
public void onAttached() {
}
@Override
public void refreshMs() {
this.mPageNum = 1;
this.getMs();
}
@Override
public void loadMoreMs() {
this.mPageNum++;
this.getMs();
}
@Override
public void clickAdd() {
mView.showAddFragment();
}
@Override
public void clickMsItem(Ms ms) {
}
/**
* 获取营销计划
*/
private void getMs() {
mCompositeDisposable.add(ApiFactory.Ms.query(mPageNum).subscribe(msPager -> mView.loadMss(msPager.getList(), mPageNum == 1)));
}
}
package com.xingdata.zzdpos.ui.marketing.ms.adapter;
import android.annotation.SuppressLint;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemMsBinding;
import com.xingdata.zzdpos.model.Ms;
import java.util.ArrayList;
public class MsAdapter extends BaseAdapter<Ms, ItemMsBinding> {
public MsAdapter() {
super(R.layout.item_ms, new ArrayList<>());
}
@SuppressLint("SetTextI18n")
@Override
protected void convert(ItemMsBinding mViewBinding, Ms item) {
mViewBinding.tvName.setText(item.getMsName());
StringBuilder sbDateBegin = new StringBuilder(item.getMsDateBegin().toString());
StringBuilder sbDateEnd = new StringBuilder(item.getMsDateEnd().toString());
sbDateBegin.insert(6, "-");
sbDateBegin.insert(4, "-");
sbDateEnd.insert(6, "-");
sbDateEnd.insert(4, "-");
mViewBinding.tvDate.setText(sbDateBegin.toString() + "~" + sbDateEnd.toString());
}
}
......@@ -13,6 +13,5 @@ public class AddFragment extends BaseFragment<MsPresenter, FragmentMsAddBinding>
@Override
public void initView() {
}
}
package com.xingdata.zzdpos.ui.marketing.ms.fragment;
import android.support.v7.widget.LinearLayoutManager;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentMsManagerBinding;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.ui.marketing.ms.MsPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.MsAdapter;
import java.util.List;
public class ManagerFragment extends BaseFragment<MsPresenter, FragmentMsManagerBinding> {
private MsAdapter mMsAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_ms_manager;
......@@ -15,6 +24,52 @@ public class ManagerFragment extends BaseFragment<MsPresenter, FragmentMsManager
@Override
public void initView() {
// init ms
mMsAdapter = new MsAdapter();
mViewBinding.rlMs.setAdapter(mMsAdapter);
mViewBinding.rlMs.setLayoutManager(new LinearLayoutManager(mContext));
// set ms listener
mViewBinding.srlMs.setOnRefreshListener(this::refreshMs);
mMsAdapter.setOnLoadMoreListener(this::loadMoreMs, mViewBinding.rlMs);
mMsAdapter.setOnItemClickListener((adapter, view, position) -> mPresenter.clickMsItem(mMsAdapter.getItem(position)));
// set other
mViewBinding.llAdd.setOnClickListener(view -> mPresenter.clickAdd());
}
/**
* 加载营销计划数据
*
* @param mss 营销计划
* @param isRefresh 是否刷新
*/
public void loadMss(List<Ms> mss, boolean isRefresh) {
if (isRefresh) {
mMsAdapter.isUseEmpty(true);
mMsAdapter.setEnableLoadMore(true);
mViewBinding.srlMs.setRefreshing(false);
mMsAdapter.setNewData(mss);
} else if (mss.size() > 0) mMsAdapter.addData(mss);
if (mss.size() < C.PRODUCT.PAGE_SIZE) mMsAdapter.loadMoreEnd(isRefresh);
else mMsAdapter.loadMoreComplete();
}
/**
* 刷新营销计划
*/
private void refreshMs() {
mMsAdapter.setEnableLoadMore(false);
mPresenter.refreshMs();
}
/**
* 加载更多营销计划
*/
private void loadMoreMs() {
mPresenter.loadMoreMs();
}
}
......@@ -14,6 +14,8 @@ public class InputerView<P extends BasePresenter> extends BaseFragment<P, ViewIn
private String mValue;
private boolean isInit;
private OnResultChangeListener mOnResultChangeListener;
private onSettleClickListener mOnSettleClickListener;
......@@ -31,6 +33,7 @@ public class InputerView<P extends BasePresenter> extends BaseFragment<P, ViewIn
public void setValue(String value) {
this.mValue = value;
this.isInit = true;
}
@Override
......@@ -53,6 +56,10 @@ public class InputerView<P extends BasePresenter> extends BaseFragment<P, ViewIn
break;
default:
if (view instanceof TextView) {
if (isInit) {
mValue = "";
isInit = false;
}
String str = ((TextView) view).getText().toString();
//限制位数
if (str.matches("[0-9]+") && mValue.split("[.]").length > 1 && mValue.split("[.]")[1].length() == 2)
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/all_shape_radius" />
<stroke
android:width="@dimen/view_line_L1"
android:color="@color/orange_shixiu" />
</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="@dimen/settle_btn_radius" />
<solid android:color="@color/orange_shixiu" />
</shape>
\ No newline at end of file
......@@ -55,7 +55,7 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_spacing"
android:layout_marginEnd="@dimen/all_margin"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
......
......@@ -9,9 +9,11 @@
<LinearLayout
android:id="@+id/ll_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">
......@@ -31,10 +33,15 @@
android:background="@color/gray_huanggai" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_ms"
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_ms"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_ms"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -93,7 +93,7 @@
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:placeholderImage="@mipmap/icon_menu_service_1"
app:placeholderImage="@mipmap/img_number01"
app:roundAsCircle="true"
app:roundingBorderColor="@color/gray_huanggai"
app:roundingBorderWidth="@dimen/all_line_width" />
......
......@@ -4,28 +4,53 @@
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="@dimen/settle_pay_item"
android:layout_height="120dp"
android:layout_margin="@dimen/all_margin"
android:background="@drawable/shape_orange_b1"
android:foreground="?android:attr/selectableItemBackground">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:layout_marginTop="@dimen/all_spacing"
android:contentDescription="@null"
android:src="@mipmap/icon_buy01"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/tv_date"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:roundedCornerRadius="@dimen/all_shape_radius" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_logo"
android:layout_width="@dimen/settle_pay_logo"
android:layout_height="@dimen/settle_pay_logo"
app:layout_constraintBottom_toTopOf="@id/iv_background"
app:layout_constraintLeft_toRightOf="@id/iv_background"
app:layout_constraintRight_toLeftOf="@id/iv_background"
app:layout_constraintTop_toBottomOf="@id/iv_background"
app:roundAsCircle="true" />
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@drawable/shape_orange_r2"
android:drawableStart="@mipmap/icon_time"
android:gravity="center"
android:paddingBottom="@dimen/view_line_L2"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/view_line_L2"
android:textColor="@color/white_caocao"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
</layout>
......
......@@ -33,7 +33,7 @@
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:placeholderImage="@mipmap/icon_menu_service_1"
app:placeholderImage="@mipmap/img_number01"
app:roundAsCircle="true"
app:roundingBorderColor="@color/gray_huanggai"
app:roundingBorderWidth="@dimen/all_line_width" />
......
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