Commit 023764ee authored by zhang_z's avatar zhang_z

提交代码;

parent 09991eae
...@@ -3,9 +3,17 @@ package com.xingdata.zzdpos.ui.settle; ...@@ -3,9 +3,17 @@ package com.xingdata.zzdpos.ui.settle;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity; import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivitySettleBinding; import com.xingdata.zzdpos.databinding.ActivitySettleBinding;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.settle.fragment.SettleFragment;
import java.util.List;
public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettleBinding> implements SettleContract.View { public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettleBinding> implements SettleContract.View {
private SettleFragment mSettleFragment = new SettleFragment();
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.activity_settle; return R.layout.activity_settle;
...@@ -13,6 +21,48 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle ...@@ -13,6 +21,48 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
@Override @Override
public void initView() { public void initView() {
this.loadRootFragment(R.id.f_settle, mSettleFragment);
}
@Override
public void initSettleFragment(int settleMode) {
}
@Override
public void showSettleFragment() {
}
@Override
public void showVipFragment() {
}
@Override
public void loadVips(List<Vip> vips) {
}
@Override
public void loadVip(Vip vip) {
mSettleFragment.loadVip(vip);
}
@Override
public void showTicketFragment() {
}
@Override
public void loadTickets(List<Ticket> tickets) {
}
@Override
public void loadTicket(Ticket ticket) {
}
@Override
public void showPayFragment(int payChannel) {
} }
} }
...@@ -2,14 +2,165 @@ package com.xingdata.zzdpos.ui.settle; ...@@ -2,14 +2,165 @@ package com.xingdata.zzdpos.ui.settle;
import com.xingdata.zzdpos.base.BasePresenter; import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView; import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import java.util.List;
public interface SettleContract { public interface SettleContract {
interface View extends BaseView { interface View extends BaseView {
/**
* 初始化结算页面
*
* @param settleMode 结算模式
*/
void initSettleFragment(int settleMode);
/**
* 显示结算Fragment
*/
void showSettleFragment();
/**
* 显示会员Fragment
*/
void showVipFragment();
/**
* 加载会员列表
*
* @param vips 会员列表
*/
void loadVips(List<Vip> vips);
/**
* 加载会员信息
*
* @param vip 会员信息
*/
void loadVip(Vip vip);
/**
* 显示优惠券Fragment
*/
void showTicketFragment();
/**
* 加载优惠券列表
*
* @param tickets 优惠券列表
*/
void loadTickets(List<Ticket> tickets);
/**
* 加载优惠券信息
*
* @param ticket 优惠券信息
*/
void loadTicket(Ticket ticket);
/**
* 显示支付页面
*
* @param payChannel 支付渠道
*/
void showPayFragment(int payChannel);
} }
abstract class Presenter extends BasePresenter<View> { abstract class Presenter extends BasePresenter<View> {
/**
* 结算页面 - 点击会员View
*/
public abstract void clickVipView();
/**
* 会员界面 - 查找会员
*
* @param keyword 搜索关键字
*/
public abstract void searchVip(String keyword);
/**
* 会员页面 - 选择会员
*
* @param vip 会员
*/
public abstract void selectVip(Vip vip);
/**
* 结算页面 - 点击优惠券View
*/
public abstract void clickTicketView();
/**
* 结算页面 - 查询优惠券
*/
public abstract void searchTicket(Long vipId);
/**
* 优惠券页面 - 选择优惠券
*
* @param ticket 使用的优惠券
*/
public abstract void selectTicket(Ticket ticket);
/**
* 结算页面 - 切换积分状态
*
* @param isUsePoint 是否使用积分
*/
public abstract void changePointState(boolean isUsePoint);
/**
* 点击支付渠道
*
* @param payChannel 支付渠道
*/
public abstract void clickPayChannelView(int payChannel);
/**
* 现金结算页面 - 现金支付
*
* @param inputAmt 输入金额
* @param changeAmt 找零金额
*/
public abstract void payInCash(Long inputAmt, Long changeAmt);
/**
* 支付宝结算页面 - 支付宝支付
*
* @param payCode 支付码
*/
public abstract void payInAli(String payCode);
/**
* 微信结算页面 - 微信支付
*
* @param payCode 支付码
*/
public abstract void payInWechat(String payCode);
/**
* 银行卡结算页面 - 银行卡支付
*/
public abstract void payInBank();
/**
* 储值卡结算页面 - 储值卡
*
* @param cardNo 卡号
* @param password 密码
*/
public abstract void payInCard(Long cardNo, String password);
/**
* 赊账结算页面 - 赊账
*/
public abstract void payInTally();
} }
} }
...@@ -3,10 +3,42 @@ package com.xingdata.zzdpos.ui.settle; ...@@ -3,10 +3,42 @@ package com.xingdata.zzdpos.ui.settle;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.xingdata.zzdpos.C; import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.util.ConvertUtil; import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
public class SettlePresenter extends SettleContract.Presenter { public class SettlePresenter extends SettleContract.Presenter {
private Vip mVip;
/**
* 当前的营销活动列表
*/
private List<Ms> mMsList;
/**
* 当前设备的支付渠道信息
*/
private List<Pay> mPayChannels;
/**
* 当前购物车的商品明细
*/
private List<Saledetail> mCartProducts;
/**
* 当前订单信息
*/
private Saleorder mOrderInfo;
@Override @Override
public void onAttached() { public void onAttached() {
int settleMode = getIntent().getIntExtra(C.EXTRA_KEY.SETTLE_MODE, -1); int settleMode = getIntent().getIntExtra(C.EXTRA_KEY.SETTLE_MODE, -1);
...@@ -18,4 +50,87 @@ public class SettlePresenter extends SettleContract.Presenter { ...@@ -18,4 +50,87 @@ public class SettlePresenter extends SettleContract.Presenter {
} }
@Override
public void clickVipView() {
mView.showVipFragment();
}
@Override
public void searchVip(String keyword) {
ApiFactory.User.queryUserDetailByKeyword(keyword)
.subscribe(
vip -> {
List<Vip> vips = new ArrayList<>();
vips.add(vip);
mView.loadVips(vips);
},
throwable -> {
});
}
@Override
public void selectVip(Vip vip) {
mView.showSettleFragment();
mView.loadVip(vip);
}
@Override
public void clickTicketView() {
mView.showTicketFragment();
}
@Override
public void searchTicket(Long vipId) {
ApiFactory.Ticket.query(vipId)
.subscribe(
tickets -> {
mView.loadTickets(tickets);
},
throwable -> {
});
}
@Override
public void selectTicket(Ticket ticket) {
mView.loadTicket(ticket);
}
@Override
public void changePointState(boolean isUsePoint) {
}
@Override
public void clickPayChannelView(int payChannel) {
mView.showPayFragment(payChannel);
}
@Override
public void payInCash(Long inputAmt, Long changeAmt) {
}
@Override
public void payInAli(String payCode) {
}
@Override
public void payInWechat(String payCode) {
}
@Override
public void payInBank() {
}
@Override
public void payInCard(Long cardNo, String password) {
}
@Override
public void payInTally() {
}
} }
package com.xingdata.zzdpos.ui.settle.fragment; package com.xingdata.zzdpos.ui.settle.fragment;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomSheetBehavior;
import android.view.View;
import com.xingdata.zzdpos.R; import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment; import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSettleBinding; import com.xingdata.zzdpos.databinding.FragmentSettleBinding;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.settle.SettlePresenter; import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettleBinding> { public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettleBinding> {
@Override @Override
public int getLayoutId() { public int getLayoutId() {
return R.layout.fragment_settle; return R.layout.fragment_settle;
...@@ -13,6 +20,43 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle ...@@ -13,6 +20,43 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
@Override @Override
public void initView() { public void initView() {
mViewBinding.clVip.setOnClickListener(view -> mViewBinding.setDefualtVip(false));
mViewBinding.setDefualtVip(true);
mViewBinding.setName("张洋");
mViewBinding.setPhone("15201451212");
mViewBinding.setDisRate("8.5");
mViewBinding.tvSettle.setOnClickListener(view -> {
BottomSheetBehavior.from(mViewBinding.llSheet).setState(BottomSheetBehavior.STATE_EXPANDED);
});
BottomSheetBehavior.from(mViewBinding.llSheet).setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_EXPANDED) {
mViewBinding.tvSettle.setVisibility(View.GONE);
} else {
mViewBinding.tvSettle.setVisibility(View.VISIBLE);
}
} }
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
}
/**
* 加载会员
*
* @param vip 会员信息
*/
public void loadVip(Vip vip) {
mViewBinding.setName(vip.getVipName());
mViewBinding.setPhone(ConvertUtil.longToString(vip.getVipMobile()));
if (vip.getVipDefDiscount() < 100 && vip.getVipDefDiscount() > 0) {
mViewBinding.setDisRate(String.valueOf((double) vip.getVipDefDiscount() / 10));
}
}
} }
<?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/red_guanyu" />
</shape>
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:background="@color/black_zhangfei"> android:background="@color/white_caocao">
<ImageButton <ImageButton
android:layout_width="@dimen/title_height" android:layout_width="@dimen/title_height"
...@@ -18,19 +18,26 @@ ...@@ -18,19 +18,26 @@
android:contentDescription="@string/all_go_back" android:contentDescription="@string/all_go_back"
android:gravity="center" android:gravity="center"
android:padding="@dimen/all_margin" android:padding="@dimen/all_margin"
android:src="@mipmap/back_white" /> android:src="@mipmap/back_black" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center" android:gravity="center"
android:text="@string/payment_title" android:text="@string/payment_title"
android:textColor="@color/white_caocao" android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" /> android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai" />
</FrameLayout> </FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/f_payment" android:id="@+id/f_settle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</LinearLayout> </LinearLayout>
......
...@@ -192,11 +192,12 @@ ...@@ -192,11 +192,12 @@
style="@style/button_positive" style="@style/button_positive"
android:layout_width="@dimen/create_store_btn_width" android:layout_width="@dimen/create_store_btn_width"
android:layout_height="@dimen/create_store_btn_height" android:layout_height="@dimen/create_store_btn_height"
android:layout_alignParentLeft="true" android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:onClick="@{onClickListener}" android:onClick="@{onClickListener}"
android:text="@string/login_createstorefragment_btn_last" android:text="@string/login_createstorefragment_btn_last"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/et_textsize"/> android:textSize="@dimen/et_textsize" />
<Button <Button
android:id="@+id/btn_next" android:id="@+id/btn_next"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <data>
<variable
name="defualtVip"
type="boolean" />
<variable
name="name"
type="String" />
<variable
name="phone"
type="String" />
<variable
name="disRate"
type="String" />
</data>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red_xishi">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:layout_marginTop="@dimen/all_spacing"
android:background="@color/gray_huanggai" />
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_vip"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_head"
android:layout_width="@dimen/settle_vip_head"
android:layout_height="@dimen/settle_vip_head"
android:layout_marginStart="@dimen/all_margin"
app:backgroundImage="@color/white_caocao"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:placeholderImage="@mipmap/icon_menu_service_1"
app:roundAsCircle="true"
app:roundingBorderColor="@color/gray_huanggai"
app:roundingBorderWidth="@dimen/all_line_width" />
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="@dimen/settle_vip_level"
android:layout_height="@dimen/settle_vip_level"
android:visibility="@{defualtVip ? 8 : 0}"
app:backgroundImage="@color/red_guanyu"
app:layout_constraintBottom_toBottomOf="@id/iv_head"
app:layout_constraintRight_toRightOf="@id/iv_head"
app:placeholderImage="@mipmap/bindingcounter_addcounter_befor"
app:roundAsCircle="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:orientation="vertical"
android:visibility="@{defualtVip ? 8 : 0}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/iv_head"
app:layout_constraintTop_toBottomOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{name}"
android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{phone}"
android:textColor="@color/gray_huanggai"
android:textSize="@dimen/all_caption_size" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:text="@string/settle_select_vip"
android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_text_size"
android:visibility="@{defualtVip ? 0 : 8}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/iv_head"
app:layout_constraintTop_toBottomOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:text="@{@string/settle_vip_dis_rate_hint + disRate + @string/settle_vip_dis_rate}"
android:textColor="@color/black_zhangfei"
android:textSize="@dimen/all_caption_size"
android:visibility="@{defualtVip ? 8 : 0}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@id/iv_arrow"
app:layout_constraintTop_toBottomOf="parent" />
<ImageView
android:id="@+id/iv_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_spacing"
android:contentDescription="@string/settle_select_vip"
android:src="@mipmap/drop_down"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:layout_marginBottom="@dimen/all_spacing"
android:background="@color/gray_huanggai" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/ll_sheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:behavior_peekHeight="?attr/actionBarSize"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settle_pay_amt"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:text="@string/money_rmb"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size" />
<TextView
android:id="@+id/tv_pay_amt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size" />
<TextView
android:id="@+id/tv_settle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/selectableItemBackground"
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/settle_btn_expand"
android:textColor="@color/white_caocao" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai" />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/gray_zhouyu"
android:textAppearance="@android:style/TextAppearance.Large" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
</layout> </layout>
\ No newline at end of file
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<dimen name="all_sub_title_size">20sp</dimen> <dimen name="all_sub_title_size">20sp</dimen>
<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_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>
...@@ -180,4 +181,11 @@ ...@@ -180,4 +181,11 @@
<dimen name="editor_item_height">60dp</dimen> <dimen name="editor_item_height">60dp</dimen>
<!--结算-->
<dimen name="settle_vip_head">40dp</dimen>
<dimen name="settle_vip_level">16dp</dimen>
<dimen name="settle_btn_radius">24dp</dimen>
</resources> </resources>
...@@ -497,7 +497,11 @@ ...@@ -497,7 +497,11 @@
<!--支付--> <!--支付-->
<string name="settle_title">收款</string> <string name="settle_title">收款</string>
<string name="settle_amt">应收金额:</string> <string name="settle_amt">应收:</string>
<string name="settle_select_vip">请选择会员</string> <string name="settle_select_vip">请选择会员</string>
<string name="settle_vip_dis_rate_hint">折扣:</string>
<string name="settle_vip_dis_rate"></string>
<string name="settle_btn_expand">收款</string>
</resources> </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