Commit 52b14f10 authored by 王海's avatar 王海

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	.idea/modules.xml
#	app/src/main/java/com/xingdata/zzdpos/ui/manage/manageMenu/ManageMenuActivity.java
parents aa5df7f2 122d580a
......@@ -3,6 +3,8 @@
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" />
<module fileurl="file://D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" filepath="D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" />
<module fileurl="file://C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" filepath="C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
......
......@@ -11,7 +11,7 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/ic_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
......@@ -123,6 +123,11 @@
android:name=".ui.manage.inventory.InventoryActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
<activity
android:name=".ui.manage.user.UserActivity"
android:configChanges="keyboard|orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
</application>
</manifest>
\ No newline at end of file
......@@ -563,6 +563,7 @@ public class C {
public static final int GIFT = 4;
public static final int PKG = 5;
public static final int SKU_DETAIL = 6;
public static final int ADD_SKU = 7;
}
......
......@@ -10,7 +10,6 @@ import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Category;
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.Trule;
import com.xingdata.zzdpos.model.Ubound;
......@@ -477,6 +476,14 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<Trule>> truleQueryByVipId(long vipId) {
return Api.getInstance().service.truleQueryByVipId(vipId)
.onErrorReturn(new
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> truleDetail(String id) {
return Api.getInstance().service.truleDetail(id).onErrorReturn(new
ErrorFilter<>()).map(new ResultFilter<>()).subscribeOn(Schedulers.io())
......@@ -582,8 +589,9 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<com.xingdata.zzdpos.model.Saleorder>> querySaleorderByVipId(Long vipId,int pageNumber ,int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId,pageNumber,pageSize)
public static Observable<Pager<com.xingdata.zzdpos.model.Saleorder>> querySaleorderByVipId(Long vipId, int pageNumber, int pageSize) {
return Api.getInstance().service.querySaleorderByVipId(vipId, pageNumber, pageSize)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......@@ -658,7 +666,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Sssku> update(NewSssku sssku) {
public static Observable<com.xingdata.zzdpos.model.Sssku> update(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.updateSssku(sssku)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -667,7 +675,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(NewSssku sssku) {
public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.addSssku(sssku)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -811,11 +819,12 @@ public final class ApiFactory {
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* 查询充值记录
*/
public static Observable<Pager<VipRechargeOrder>> queryRecharge(long vipId,int pageNum, int pageSize) {
return Api.getInstance().service.queryRecharge(vipId,pageNum, pageSize)
public static Observable<Pager<VipRechargeOrder>> queryRecharge(long vipId, int pageNum, int pageSize) {
return Api.getInstance().service.queryRecharge(vipId, pageNum, pageSize)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......@@ -961,6 +970,15 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<Vip>> queryUserDetailByWD(String keyword) {
return Api.getInstance().service.queryDetailByWD(keyword, 0, 200)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<Pager<Vip>> queryUserDetailByWD(String keyword, int pageNumber) {
return Api.getInstance().service.queryDetailByWD(keyword, pageNumber, 12)
.onErrorReturn(new ErrorFilter<>())
......@@ -971,6 +989,14 @@ public final class ApiFactory {
}
public static Observable<Pager<Vip>> getVipList(int pageNumber, String vipLevel) {
if (vipLevel == null) {
return Api.getInstance().service.getAllVipList(pageNumber, 12)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
} else {
return Api.getInstance().service.getVipList(vipLevel, pageNumber, 12)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -979,6 +1005,8 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
}
public static Observable<Vip> addVip(Vip user) {
return Api.getInstance().service.addVip(user)
.onErrorReturn(new ErrorFilter<>())
......
......@@ -11,7 +11,6 @@ import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Notice;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Ossku;
......@@ -197,7 +196,7 @@ interface ApiService {
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId,@Query("pageNumber") int pageNum, @Query
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId, @Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
......@@ -314,6 +313,8 @@ interface ApiService {
@POST(C.URL.TRULE.truleQuery)
Observable<HttpMessage<Pager<Trule>>> truleQuery(@Query("startDate") String data);
@POST(C.URL.TRULE.truleQuery)
Observable<HttpMessage<Pager<Trule>>> truleQueryByVipId(@Query("vipId") long vipId);
@POST(C.URL.TRULE.truleDetail)
Observable<HttpMessage<String>> truleDetail(@Query("id") String id);
......@@ -386,13 +387,13 @@ interface ApiService {
Observable<HttpMessage<List<Cor>>> queryAllCor();
@POST(C.URL.SSSKU.add)
Observable<HttpMessage<Sssku>> addSssku(@Body NewSssku sssku);
Observable<HttpMessage<Sssku>> addSssku(@Body Sssku sssku);
@POST(C.URL.SSSKU.detail)
Observable<HttpMessage<Sssku>> detailSssku(@Query("id") Long id);
@POST(C.URL.SSSKU.update)
Observable<HttpMessage<Sssku>> updateSssku(@Body NewSssku sssku);
Observable<HttpMessage<Sssku>> updateSssku(@Body Sssku sssku);
@POST(C.URL.LEVEL.add)
Observable<HttpMessage<Level>> addVipLevel(@Body Level l);
......@@ -438,5 +439,9 @@ interface ApiService {
@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize);
@POST(C.URL.VIP.query)
Observable<HttpMessage<Pager<Vip>>> getAllVipList(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize);
}
......@@ -16,6 +16,7 @@ import com.xingdata.zzdpos.model.Ussku;
import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.settle.SettlePresenter;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
......@@ -167,7 +168,21 @@ public class DBFactory {
.flatMap(ms -> Observable.just(getList(ms)));
}
}
public static class Vip {
/**
* 查询支付渠道
*
* @return 支付渠道
*/
public static Observable<List<Pay>> queryPays() {
RealmQuery<Pay> query = DB.getInstance().get(VipPresenter.class).where(Pay.class);
query.equalTo("payDispFlag", 1);
return Observable.just(query.findAllSorted("payType", Sort.ASCENDING))
.flatMap(pays -> Observable.just(getList(pays)));
}
}
public static class Settle {
/**
* 查询支付渠道
......@@ -182,6 +197,8 @@ public class DBFactory {
.flatMap(pays -> Observable.just(getList(pays)));
}
/**
* 查询营销活动
*
......
......@@ -960,7 +960,7 @@ public class Saleorder extends SectionEntity<MediaStore.Video> implements BaseMo
@Override
public String getPayAmt() {
return ConvertUtil.fenToYuan(orderPayAmt);
return ConvertUtil.fenToYuan(orderPayAmt, true);
}
@Override
......
......@@ -33,6 +33,9 @@ public class Salepay {
public String getPayName() {
String payName = "";
if (payType==null){
payType=999;
}
switch (payType) {
case C.PAY_CHANNEL.CASH:
payName = "现金";
......@@ -52,6 +55,8 @@ public class Salepay {
case C.PAY_CHANNEL.TALLY:
payName = "赊账";
break;
default:
payName = "--";
}
return payName;
}
......
......@@ -11,7 +11,6 @@ import io.realm.annotations.PrimaryKey;
public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
/**
* 创建默认分组
*
......@@ -116,4 +115,9 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
public String getPrimaryKey() {
return "skuGrpId";
}
@Override
public String toString() {
return getSkuGrpName();
}
}
\ No newline at end of file
package com.xingdata.zzdpos.model;
import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
/**
* Created by Administrator on 2017/12/15.
*/
public class VipRechangeOrder implements BaseOrderPrint {
private Long cardAmtPay;
private Long cardAmtSend;
private Long rechangeBefore;
private Long rechangeAfter;
private String vipName;
private String rctraceNo;
private String vipMobile;
private Long createTime;
public Long getCreateTime() {
return createTime;
}
public void setCreateTime(Long createTime) {
this.createTime = createTime;
}
public Long getCardAmtPay() {
return cardAmtPay;
}
public void setCardAmtPay(Long cardAmtPay) {
this.cardAmtPay = cardAmtPay;
}
public Long getCardAmtSend() {
return cardAmtSend;
}
public void setCardAmtSend(Long cardAmtSend) {
this.cardAmtSend = cardAmtSend;
}
public String getVipName() {
return vipName;
}
public void setVipName(String vipName) {
this.vipName = vipName;
}
public String getRctraceNo() {
return rctraceNo;
}
public void setRctraceNo(String rctraceNo) {
this.rctraceNo = rctraceNo;
}
public String getVipMobile() {
return vipMobile;
}
public void setVipMobile(String vipMobile) {
this.vipMobile = vipMobile;
}
public Long getRechangeBefore() {
return rechangeBefore;
}
public void setRechangeBefore(Long rechangeBefore) {
this.rechangeBefore = rechangeBefore;
}
public Long getRechangeAfter() {
return rechangeAfter;
}
public void setRechangeAfter(Long rechangeAfter) {
this.rechangeAfter = rechangeAfter;
}
public String getVipname() {
return vipName;
}
public void setVipname(String vipname) {
this.vipName = vipname;
}
@Override
public String getPayAmt() {
if (cardAmtSend!=null&&cardAmtSend!=0){
return ConvertUtil.fenToYuan(cardAmtPay,false)+"+"+ConvertUtil.fenToYuan(cardAmtSend,false);
}else {
return ConvertUtil.fenToYuan(cardAmtPay,false);
}
}
@Override
public String getVip_money() {
return ConvertUtil.fenToYuan(getRechangeAfter(),false);
}
@Override
public String getBalanceOld() {
return ConvertUtil.fenToYuan(getRechangeBefore(),false);
}
@Override
public String getTitle() {
return LoginPresenter.loginReturnBean.getMerNameAbcn();
}
@Override
public String getStore() {
return LoginPresenter.loginReturnBean.getShopNameAbcn();
}
@Override
public String getOrderNo() {
return rctraceNo;
}
@Override
public String getOrderTime() {
return com.blankj.utilcode.util.TimeUtils.millis2String(createTime);
}
@Override
public String getCasherName() {
return LoginPresenter.loginReturnBean.getOperName();
}
@Override
public String getUserName() {
return vipName+"("+vipMobile.substring(vipMobile.length()-4)+")";
}
@Override
public String getPayChannel() {
return null;
}
@Override
public String getPayChange() {
return null;
}
@Override
public String getGoodsCnt() {
return null;
}
@Override
public String getGoodsAmtSum() {
return null;
}
@Override
public String getGoodsReduPer() {
return null;
}
@Override
public String getGoodsReduAmt() {
return null;
}
@Override
public List<BaseGoodPrint> getGoodList() {
return null;
}
@Override
public String getDRAW_URL() {
return null;
}
@Override
public String getPrint_state() {
return null;
}
@Override
public String getOper_mobile() {
return null;
}
@Override
public String getStore_tel() {
return null;
}
@Override
public String getSupplier() {
return null;
}
}
......@@ -42,6 +42,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private List<ItemMenuBottomBinding> itemMenuBottomBindings = new ArrayList<>();
private HandoverDialog mHandoverDialog = new HandoverDialog();
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
return R.layout.activity_main;
......@@ -49,7 +50,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
public void initView() {
mainActivity=this;
mainActivity = this;
mPresenter.initHandoverInfo();
List<BaseFragment> fragments = new ArrayList<>();
fragments.add(new CasherFragment());
......@@ -163,4 +164,9 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
public void showHandoverDialog() {
mHandoverDialog.show(this);
}
@Override
public void onBackPressedSupport() {
}
}
package com.xingdata.zzdpos.ui.main.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.view.View;
......@@ -28,6 +29,8 @@ import java.util.List;
public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBinding> {
private MenuRecyclerAdapter mMenuRecyclerAdapter;
private List<Integer> integers;
private Bundle bundle;
private Intent intent;
@Override
public int getLayoutId() {
......@@ -55,11 +58,20 @@ public class CasherFragment extends BaseFragment<MainPresenter, FragmentCasherBi
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
switch ((int) adapter.getData().get(position)) {
case C.MENU.MENU_VIP://会员
ActivityUtils.startActivity(new Intent(getActivity(),
VipActivity.class));
bundle = new Bundle();
intent = new Intent(getActivity(),
VipActivity.class);
bundle.putInt("vipState", 0);
intent.putExtras(bundle);
ActivityUtils.startActivity(intent);
break;
case C.MENU.MENU_RECHARGE://充值
bundle = new Bundle();
intent = new Intent(getActivity(),
VipActivity.class);
bundle.putInt("vipState", 1);
intent.putExtras(bundle);
ActivityUtils.startActivity(intent);
break;
case C.MENU.MENU_MS://营销
ActivityUtils.startActivity(new Intent(getActivity(),
......
......@@ -11,16 +11,11 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.databinding.ActivityMarketingMenuBinding;
import com.xingdata.zzdpos.ui.manage.bale.BaleActivity;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryActivity;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectActivity;
import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.marketing.integral.IntegralActivity;
import com.xingdata.zzdpos.ui.marketing.marketingMenu.MarketingMenuActivity;
import com.xingdata.zzdpos.ui.marketing.marketingMenu.adapter.MarketingMenuAdapter;
import com.xingdata.zzdpos.ui.marketing.ms.MsActivity;
import com.xingdata.zzdpos.ui.marketing.ticket.ReturnTicketActivity;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.ArrayList;
......@@ -62,7 +57,7 @@ public class ManageMenuActivity extends AppCompatActivity {
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
switch (marketingMenuAdapter.getData().get(position)) {
case C.MENU.MENU_MANAGER_OPER: {
ActivityUtils.startActivity(ManageMenuActivity.this, UserActivity.class);
}
break;
case C.MENU.MENU_MANAGER_GOODS: {
......
......@@ -2,8 +2,10 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
......@@ -12,6 +14,8 @@ import com.xingdata.zzdpos.model.Cor;
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.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.AddFragment;
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;
......@@ -26,6 +30,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
private SearchFragment mSearchFragment = new SearchFragment();
private SkugrpFragment mSkugrpFragment = new SkugrpFragment();
private AddFragment mAddFragment = new AddFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private DetailFragment mDetailFragment = new DetailFragment();
......@@ -52,7 +57,10 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
return false;
});
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
mPresenter.searchBarFocusChanged(b);
mPresenter.searchBarFocusChanged(b, C.TITLE_MODE.SKU);
});
mViewBinding.btnMenu.setOnClickListener(view -> {
mPresenter.clickSkuMenu();
});
}
......@@ -60,6 +68,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
public void onBackPressedSupport() {
}
@Override
public void showMsg(String msg) {
ToastUtils.showShort(msg);
}
@Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
mManagerFragment.loadSkus(skus, isRefresh);
......@@ -99,27 +112,51 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mEditorFragment.loadCors(cors);
}
@Override
public void loadPkgSku(Sssku pkgSku) {
mEditorFragment.loadPkgSku(pkgSku);
}
@Override
public void loadCheckSkus(List<Sssku> ssskus) {
mAddFragment.loadCheckSkus(ssskus);
}
@Override
public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return;
mViewBinding.etSearch.requestFocus();
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType));
}
@Override
public void showEditorFragment(Sssku sku) {
public void showAddFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment.setSssku(sku));
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mAddFragment);
}
@Override
public void showEditorFragment() {
public void showEditorFragment(Sssku sku, int editMode) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
switch (editMode) {
case C.SKU_EDITOR_MODE.ADD:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.ADD));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UNKNOWN));
break;
case C.SKU_EDITOR_MODE.UPDATE:
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UPDATE));
break;
}
}
@Override
public void showDetailFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
......@@ -134,17 +171,40 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
this.start(mSkugrpFragment);
}
@Override
public void showSkuMenuDialog() {
mDetailFragment.showSkuMenuDialog();
}
@Override
public void backToEditFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.pop();
}
@Override
public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.pop();
this.resetSearchBar();
this.pop();
}
@Override
public void backToDetailFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.pop();
}
@Override
public void addSku(Sssku sssku) {
mManagerFragment.addSku(sssku);
}
@Override
public void updateSku(Sssku sssku) {
mManagerFragment.updateSku(sssku);
}
@Override
......@@ -157,6 +217,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mLoadingDialog.dismiss();
}
@Override
public void startReplenishmentActivity() {
ActivityUtils.startActivity(this, ReplenishmentActivity.class);
}
/**
* 根据titleMode显示TitleBar
*
......
......@@ -12,6 +12,14 @@ import java.util.List;
public interface SsskuContract {
interface View extends BaseView {
/**
* 显示文字内容
*
* @param msg 要显示的内容
*/
void showMsg(String msg);
/**
* 加载商品
*
......@@ -61,22 +69,37 @@ public interface SsskuContract {
*/
void loadCors(List<Cor> cors);
/**
* 加载包装内的商品
*
* @param pkgSku 包装内商品
*/
void loadPkgSku(Sssku pkgSku);
/**
* 加载检查出来的商品列表
*
* @param ssskus 商品信息
*/
void loadCheckSkus(List<Sssku> ssskus);
/**
* 显示搜索页面
*/
void showSearchFragment(int searchType);
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
* 显示添加检查页面
*/
void showEditorFragment(Sssku sku);
void showAddFragment();
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
* @param editMode 编辑模式
*/
void showEditorFragment();
void showEditorFragment(Sssku sku, int editMode);
/**
* 显示详情页面
......@@ -90,6 +113,11 @@ public interface SsskuContract {
*/
void showSkugrpFragment();
/**
* 显示商品菜单对话框
*/
void showSkuMenuDialog();
/**
* 返回编辑页面
*/
......@@ -100,6 +128,25 @@ public interface SsskuContract {
*/
void backToManagerFragment();
/**
* 返回详情页面
*/
void backToDetailFragment();
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
void addSku(Sssku sssku);
/**
* 更新商品
*
* @param sssku 更新商品
*/
void updateSku(Sssku sssku);
/**
* 显示读取对话框
*/
......@@ -115,6 +162,10 @@ public interface SsskuContract {
*/
void dismissAllDialog();
/**
* 跳转到补货界面
*/
void startReplenishmentActivity();
}
abstract class Presenter extends BasePresenter<View> {
......@@ -153,6 +204,7 @@ public interface SsskuContract {
*/
public abstract void clickAddSku();
/**
* 管理页面 - 点击添加分组
*/
......@@ -163,6 +215,11 @@ public interface SsskuContract {
*/
public abstract void clickReplenish();
/**
* 添加页面 - 检查条码
*/
public abstract void clickCheck(String barcode);
/**
* 搜索页面 - 点击搜索
*/
......@@ -188,6 +245,20 @@ public interface SsskuContract {
*/
public abstract void clickEditSku(Sssku sssku);
/**
* 详情页面 - 编辑商品价格
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditPriceSku(Sssku sssku);
/**
* 详情页面 - 编辑商品会员信息
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditVipSku(Sssku sssku);
/**
* 分组页面 - 添加分组
*
......@@ -209,11 +280,25 @@ public interface SsskuContract {
*/
public abstract void clickEditSkugrp(Sskugrp sskugrp);
/**
* 编辑页面 - 点击提交按钮
*
* @param sssku 商品
* @param editorMode 编辑模式
*/
public abstract void clickConfirm(Sssku sssku, int editorMode);
/**
* 主页面 - 搜索框焦点改变
*
* @param b 获取焦点
* @param searchMode 搜索模式
*/
public abstract void searchBarFocusChanged(boolean b, int searchMode);
/**
* 主页面 - 点击菜单按钮
*/
public abstract void searchBarFocusChanged(boolean b);
public abstract void clickSkuMenu();
}
}
package com.xingdata.zzdpos.ui.manage.sssku;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.util.ConvertUtil;
public class SsskuPresenter extends SsskuContract.Presenter {
......@@ -55,7 +57,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void clickAddSku() {
mView.showEditorFragment();
mView.showAddFragment();
}
@Override
......@@ -65,7 +67,29 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void clickReplenish() {
//TODO 跳转到补货界面
mView.startReplenishmentActivity();
}
@Override
public void clickCheck(String barcode) {
if (StringUtils.isEmpty(barcode)) return;
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Scsku.queryScsku(barcode)
.doFinally(() -> mView.dismissLoadingDialog())
.subscribe(
ssskuPager -> {
if (ssskuPager.getList().size() > 1) {
mView.loadCheckSkus(ssskuPager.getList());
} else if (ssskuPager.getList().size() == 1) {
mView.showEditorFragment(ssskuPager.getList().get(0), C.SKU_EDITOR_MODE.ADD);
} else {
Sssku sssku = new Sssku();
sssku.setSpuBarcode(ConvertUtil.stringToLong(barcode));
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UNKNOWN);
}
})
);
}
@Override
......@@ -98,13 +122,27 @@ public class SsskuPresenter extends SsskuContract.Presenter {
);
break;
case C.TITLE_MODE.PKG:
mView.loadPkgSku(sssku);
break;
case C.TITLE_MODE.ADD_SKU:
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.ADD);
break;
}
}
@Override
public void clickEditSku(Sssku sssku) {
mView.showEditorFragment(sssku);
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UPDATE);
}
@Override
public void clickEditPriceSku(Sssku sssku) {
//TODO
}
@Override
public void clickEditVipSku(Sssku sssku) {
//TODO
}
@Override
......@@ -154,8 +192,54 @@ public class SsskuPresenter extends SsskuContract.Presenter {
}
@Override
public void searchBarFocusChanged(boolean b) {
if (b) mView.showSearchFragment(C.TITLE_MODE.SKU);
public void clickConfirm(Sssku sssku, int editorMode) {
switch (editorMode) {
case C.SKU_EDITOR_MODE.ADD:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
},
throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UPDATE:
ApiFactory.Sssku.update(sssku).subscribe(
sssku1 -> {
mView.showMsg("修改成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.updateSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
}
}
@Override
public void searchBarFocusChanged(boolean b, int searchMode) {
if (b) mView.showSearchFragment(searchMode);
}
@Override
public void clickSkuMenu() {
mView.showSkuMenuDialog();
}
/**
......
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogSsskuMenuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SsskuMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSsskuMenuBinding> {
private Sssku mSssku;
@Override
protected boolean isTransparentBackground() {
return true;
}
public SsskuMenuDialog setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public int getLayoutId() {
return R.layout.dialog_sssku_menu;
}
@Override
public void initView() {
mViewBinding.tvCancel.setOnClickListener(view -> {
this.dismiss();
});
mViewBinding.tvUpdate.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditSku(mSssku);
});
mViewBinding.tvUpdatePrice.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditPriceSku(mSssku);
});
mViewBinding.tvUpdateVip.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditVipSku(mSssku);
});
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.support.v7.widget.LinearLayoutManager;
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.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuAddBinding;
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 AddFragment extends BaseFragment<SsskuPresenter, FragmentSsskuAddBinding> {
private SkuAdapter<Sssku> mSkuAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_add;
}
@Override
public void initView() {
mViewBinding.etBarcode.requestFocus();
mViewBinding.etBarcode.setOnEditorActionListener((textView, i, keyEvent) -> {
if ((i == EditorInfo.IME_ACTION_SEARCH || i == EditorInfo.IME_ACTION_UNSPECIFIED) && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
}
return false;
});
mViewBinding.tvCheck.setOnClickListener(view -> {
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
});
// init sku
mSkuAdapter = new SkuAdapter<>();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
((SsskuActivity) getActivity()).backToManagerFragment();
mPresenter.clickSku(mSkuAdapter.getData().get(position), C.TITLE_MODE.ADD_SKU);
});
}
public void loadCheckSkus(List<Sssku> ssskus) {
mSkuAdapter.setNewData(ssskus);
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -9,6 +9,7 @@ import com.xingdata.zzdpos.model.Sskugrp;
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.manage.sssku.dialog.SsskuMenuDialog;
import java.util.ArrayList;
import java.util.List;
......@@ -42,9 +43,6 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe
break;
}
}
if (mSssku.getSkuFlag() == 1) {
}
}
/**
......@@ -66,6 +64,13 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe
this.mCors = cors;
}
/**
* 显示菜单
*/
public void showSkuMenuDialog() {
new SsskuMenuDialog().setSssku(mSssku).show((SsskuActivity) getActivity());
}
/**
* 设置商品
*
......
......@@ -129,6 +129,31 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
mViewBinding.tvTotalCount.setText(String.valueOf(count));
}
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
public void addSku(Sssku sssku) {
mSkuAdapter.setEnableLoadMore(false);
mViewBinding.rlSku.scrollToPosition(0);
mSkuAdapter.addData(0, sssku);
}
/**
* 更新商品
*
* @param sssku 要更新的商品
*/
public void updateSku(Sssku sssku) {
for (int i = 0; i < mSkuAdapter.getData().size(); i++) {
if (mSkuAdapter.getData().get(i).getSkuId().longValue() == sssku.getSkuId().longValue()) {
mSkuAdapter.setData(i, sssku);
return;
}
}
}
/**
* 刷新商品
*/
......
......@@ -35,7 +35,14 @@ public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSe
// set sku listener
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
this.pop();
switch (mSearchType) {
case C.TITLE_MODE.SKU:
((SsskuActivity) getActivity()).backToManagerFragment();
break;
case C.TITLE_MODE.PKG:
((SsskuActivity) getActivity()).backToEditFragment();
break;
}
mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType);
});
......
package com.xingdata.zzdpos.ui.manage.user;
import android.os.Bundle;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityUserBinding;
import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.user.fragment.UserListFragment;
import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.view.ViewTools;
import java.util.List;
public class UserActivity extends BaseActivity<UserPresenter, ActivityUserBinding> implements UserContract.View {
@Override
public int getLayoutId() {
return R.layout.activity_user;
}
@Override
public void initView() {
loadRootFragment(R.id.user_frame, mPresenter.userListFragment, true, false);
}
@Override
public void queryOperSus(Pager<Oper> operPager) {
mPresenter.userListFragment.queryOperSus(operPager);
}
}
package com.xingdata.zzdpos.ui.manage.user;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import java.util.List;
public interface UserContract {
interface View extends BaseView {
void queryOperSus(Pager<Oper> operPager);
}
abstract class Presenter extends BasePresenter<View> {
public abstract void getUserList(String wd);
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.manage.user;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.ui.manage.user.fragment.UserListFragment;
public class UserPresenter extends UserContract.Presenter {
public UserListFragment userListFragment = new UserListFragment();
@Override
public void onAttached() {
}
@Override
public void getUserList(String wd) {
ApiFactory.Oper.queryOper(wd).subscribe(operPager -> {
},throwable -> {
});
}
}
package com.xingdata.zzdpos.ui.manage.user.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemUserListItemBinding;
import com.xingdata.zzdpos.databinding.ItemVipListItemBinding;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.marketing.ms.model.User;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
/**
* Created by JM_DEV on 2017/12/25.
*/
public class UserListAdapter extends BaseAdapter<Oper, ItemUserListItemBinding> {
private Context mContext;
public UserListAdapter(Context mContext, @Nullable List<Oper> data) {
super(R.layout.item_user_list_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemUserListItemBinding mViewBinding, Oper item) {
}
}
package com.xingdata.zzdpos.ui.manage.user.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentUserListBinding;
import com.xingdata.zzdpos.databinding.FragmentVipListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.manage.user.UserPresenter;
import com.xingdata.zzdpos.ui.manage.user.adapter.UserListAdapter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
/**
* 店员管理界面
*/
public class UserListFragment extends BaseFragment<UserPresenter, FragmentUserListBinding> {
private UserListAdapter adapter;
private List<Oper> opers = new ArrayList<>();
private List<Level> levels = null;
@Override
public int getLayoutId() {
return R.layout.fragment_user_list;
}
@Override
public void initView() {
adapter = new UserListAdapter(getActivity(), opers);
mViewBinding.userRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.userRecyclerView.setAdapter(adapter);
adapter.setOnItemClickListener((adapter, view, position) -> {
});
adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.userRecyclerView);
adapter.setEnableLoadMore(true);
mViewBinding.titleSearch.onBack.setOnClickListener(view -> {
getActivity().finish();
});
mViewBinding.setOnClickListener(view -> {
switch (view.getId()) {
case R.id.addUser:
break;
}
});
onRefresh();
}
private void onLoadMore(){
}
public void onRefresh() {
mPresenter.getUserList(null);
}
public void queryOperSus(Pager<Oper> operPager) {
adapter.setNewData(operPager.getList());
}
}
......@@ -213,11 +213,10 @@ public class SettleFragment extends BaseFragment<SettlePresenter, FragmentSettle
* 加载支付方式
*/
public void loadPays(List<Pay> pays) {
for (int i = 0; i < pays.size(); i++) {
pays.get(i).init();
}
mPays.addAll(pays);
mPayAdapter.setNewData(getAvlPays(Vip.createDefault()));
// for (int i = 0; i < pays.size(); i++) {
// pays.get(i).init();
// }
mPayAdapter.setNewData(pays);
}
......
......@@ -26,6 +26,7 @@ import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Salepay;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
......@@ -34,6 +35,9 @@ import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryDetailAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.ArrayList;
import java.util.List;
public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPresenter, ActivityStatisticsDetailBinding> implements StatisticsDetailContract.View {
......@@ -121,7 +125,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.btnReturn.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, cs);
ZX_PrintPOS.getInstance(MainActivity.mainActivity).printInventory(1, cs);
mViewBinding.btnReturn.setEnabled(false);
mViewBinding.btnReturn.setText("已打印");
......@@ -233,7 +237,12 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, mSaleorder);
try {
ZX_PrintPOS.getInstance(StatisticsDetailActivity.this).print(1, mSaleorder);
} catch (Exception e) {
ToastUtils.showShort("打印异常");
}
mViewBinding.btnPrint.setEnabled(false);
mViewBinding.btnPrint.setText("已打印");
}
......
......@@ -39,9 +39,10 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
@Override
public void initView() {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
switch (fragmentMenu) {
case C.MENU.MENU_STATISTICS_ORDER:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mOrderMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setOnFocusChangeListener(new View.OnFocusChangeListener() {
......@@ -105,6 +106,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
break;
case C.MENU.MENU_STATISTICS_MS:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mMsMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setVisibility(View.GONE);
mViewBinding.icTitle.tvTitle.setText(R.string.menu_ms);
......@@ -123,6 +125,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
return;
......@@ -150,6 +153,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
}
public void searchSuc(Pager<Saleorder> saleorderPager, int payType) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -163,6 +167,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
}
public void searchSuc(Pager<Saleorder> saleorderPager, String wd) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -177,6 +182,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
}
public void searchSuc(Pager<Saleorder> saleorderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -191,6 +197,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
public void searchRechargeSuc(Pager<VipRechargeOrder> vipRechargeOrderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mRechargeSearchFragment.isAdded()) {
mRechargeSearchFragment.setCreateData(vipRechargeOrderPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mRechargeSearchFragment, mViewBinding.mainFrame.getId(), false, true);
......@@ -201,6 +208,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
}
public void searchTicketSuc(Pager<Ticket> ticketPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mTicketSearchFragment.isAdded()) {
mTicketSearchFragment.setCreateData(ticketPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mTicketSearchFragment, mViewBinding.mainFrame.getId(), false, true);
......@@ -212,6 +220,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
@Override
public boolean onBackPressedSupport() {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
return true;
......
package com.xingdata.zzdpos.ui.vip;
import android.os.Bundle;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityVipBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.view.ViewTools;
import java.util.List;
public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding> implements VipContract.View {
private Bundle mBundle;
@Override
public int getLayoutId() {
return R.layout.activity_vip;
}
@Override
public void initView() {
mBundle = getIntent().getExtras();
mPresenter.vipListFragment.setVipState(mBundle.getInt("vipState"));
loadRootFragment(R.id.vip_frame, mPresenter.vipListFragment, true, false);
}
......@@ -53,9 +64,43 @@ public class VipActivity extends BaseActivity<VipPresenter, ActivityVipBinding>
mPresenter.vipRechargeListFragment.getRechargeOrderSus(rechargeOrderPager);
}
@Override
public void getTruleSus(Pager<Trule> trulePager) {
mPresenter.vipMscardListFragment.getTruleSus(trulePager);
}
@Override
public void searchVipSus(Pager<Vip> vips) {
mPresenter.vipSearchFragment.searchVipSus(vips);
}
@Override
public void getMscardSus(Pager<Mscard> mscardPager) {
mPresenter.vipMscardListFragment.getMscardSus(mscardPager);
mPresenter.vipRechargeFragment.getMscardSus(mscardPager);
}
@Override
public void loadPays(List<Pay> pays) {
mPresenter.vipRechargeFragment.loadPays(pays);
}
@Override
public void rechangeSus(Vip v) {
ViewTools.toastSuss(this, "充值成功");
mPresenter.vipRechargeFragment.pop();
mPresenter.vipListFragment.onRefresh();
}
@Override
public void rechangeErr(Vip vip, Long amtPay, Long amtSend, String mes) {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_ERROR, "支付失败").setCustomButton("重新支付", new View.OnClickListener() {
@Override
public void onClick(View view) {
mPresenter.fullVip(vip, amtPay, amtSend);
promptDialog.dismiss();
}
}).show(this);
}
@Override
......
......@@ -5,9 +5,11 @@ import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
......@@ -32,9 +34,14 @@ public interface VipContract {
void getSaleorderSus(Pager<Saleorder> saleorderPager);
void getRechargeOrderSus(Pager<VipRechargeOrder> rechargeOrderPager);
void getMscardSus(Pager<Mscard> rechargeOrderPager);
void getTruleSus(Pager<Trule> trulePager);
void searchVipSus(Pager<Vip> vips);
void getMscardSus(Pager<Mscard> mscardPager);
void loadPays(List<Pay> pays);
void rechangeSus(Vip v);
void rechangeErr(Vip v, Long amtPay, Long amtSend,String mes);
}
......@@ -54,6 +61,12 @@ public interface VipContract {
public abstract void rechargeorderQuery(Long vipID, int number);
public abstract void mscardQuery(Long vipID);
public abstract void truleQuery(Long vipID);
public abstract void searchVip(String keyword);
public abstract void getMscardList(long vipID);
public abstract void initSettle();
public abstract void fullVip(Vip vipOld, Long amtPay, Long amtSend);
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.vip;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.App;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipSearchFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipTruleListFragment;
import java.util.ArrayList;
import java.util.List;
public class VipPresenter extends VipContract.Presenter {
public VipListFragment vipListFragment = new VipListFragment();
......@@ -17,10 +34,14 @@ public class VipPresenter extends VipContract.Presenter {
public VipInfoFragment vipInfoFragment = new VipInfoFragment();
public VipExpenseListFragment vipExpenseListFragment = new VipExpenseListFragment();
public VipRechargeListFragment vipRechargeListFragment = new VipRechargeListFragment();
public VipMscardListFragment vipMscardListFragment = new VipMscardListFragment();
public VipTruleListFragment vipMscardListFragment = new VipTruleListFragment();
public VipSearchFragment vipSearchFragment = new VipSearchFragment();
public VipRechargeFragment vipRechargeFragment = new VipRechargeFragment();
public int inVipState=0; //1 充值
@Override
public void onAttached() {
this.initRealm();
}
......@@ -92,7 +113,7 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public void rechargeorderQuery(Long vipID,int number) {
public void rechargeorderQuery(Long vipID, int number) {
ApiFactory.Rctrace.queryRecharge(vipID, number, 10).subscribe(rechargeOrderPager -> {
mView.getRechargeOrderSus(rechargeOrderPager);
}, throwable -> {
......@@ -102,16 +123,94 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public void mscardQuery(Long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(mscardPager -> {
mView.getMscardSus(mscardPager);
public void truleQuery(Long vipID) {
ApiFactory.TRULE.truleQueryByVipId(vipID).subscribe(trulePager -> {
mView.getTruleSus(trulePager);
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void searchVip(String keyword) {
ApiFactory.User.queryUserDetailByWD(keyword).subscribe(
vipPager -> {
mView.searchVipSus(vipPager);
},
throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@Override
public void getMscardList(long vipID) {
ApiFactory.MsCard.mscardQuery(vipID).subscribe(
mscardPager -> {
mView.getMscardSus(mscardPager);
},
throwable -> {
ToastUtils.showShort(throwable.getMessage());
});
}
@SuppressLint("ResourceType")
public RadioButton addRadioButton(Context mContext, Mscard mscard) {
RadioButton radioButton = new RadioButton(mContext);
// ArrayList<RadioButton> radioButtons = new ArrayList<>();
radioButton.setTextSize(18);
radioButton.setTag(mscard.getCruleGradeNo());
radioButton.setText("充:" + mscard.getCruleChargeAmt() / 100);
radioButton.setButtonDrawable(null);
radioButton.setGravity(Gravity.CENTER);
radioButton.getPaint().setFakeBoldText(true);
radioButton.setBackgroundResource(R.drawable.selector_paymoney_radiobutton_bg);
radioButton.setTextColor(mContext.getResources().getColorStateList(R.drawable.selector_paymoney_textcolor_bg));
return radioButton;
}
public Mscard getMaxRechange(List<Mscard> realm, Long rechangeMoney) {
Mscard mMscard = null;
ArrayList<String> strings = new ArrayList<>();
long rechangeM = 0;
for (Mscard mscard : realm) {
if (rechangeMoney >= mscard.getCruleChargeAmt()) {
rechangeM = mscard.getCruleChargeAmt();
mMscard = mscard;
}
}
return mMscard;
}
@Override
public void initSettle() {
// Realm.getInstance(App.instance.mRealmConfig).
DBFactory.Vip.queryPays().subscribe(
pays -> mView.loadPays(pays),
throwable -> {
}
);
// mView.setSettleFragmentBySettleMode(mSettleMode);
}
@Override
public void fullVip(Vip vipOld, Long amtPay, Long amtSend) {
ApiFactory.Recard.fullVip(vipOld.getVipId(), amtPay, amtSend).subscribe(vip -> {
VipRechargeOrder mVipRechangeOrdervip=vip.getRctrace();
mVipRechangeOrdervip.setCreateTime(vip.getUpdateTime());
mVipRechangeOrdervip.setRechangeBefore(vipOld.getAcctCbal());
mVipRechangeOrdervip.setRechangeAfter(vip.getAcctCbal());
try {
ZX_PrintPOS.getInstance(App.instance).printSave(1,mVipRechangeOrdervip);
}catch (Exception e){
ToastUtils.showShort("打印异常");
}
mView.rechangeSus(vip);
}, throwable -> {
mView.rechangeErr(vipOld, amtPay, amtSend,throwable.getMessage());
});
}
}
......@@ -3,14 +3,10 @@ package com.xingdata.zzdpos.ui.vip.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemVipExpenseItemBinding;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.databinding.ItemVipMscardItemBinding;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.StringUtil;
......@@ -21,18 +17,30 @@ import java.util.List;
* Created by JM_DEV on 2017/12/25.
*/
public class VipMscardAdapter extends BaseAdapter<Mscard, ItemVipExpenseItemBinding> {
public class VipTruleAdapter extends BaseAdapter<Trule, ItemVipMscardItemBinding> {
private Context mContext;
private String shopName;
public VipMscardAdapter(Context mContext, @Nullable List<Mscard> data) {
super(R.layout.item_vip_expense_item, data);
public VipTruleAdapter(Context mContext, @Nullable List<Trule> data) {
super(R.layout.item_vip_mscard_item, data);
this.mContext = mContext;
}
@Override
protected void convert(ItemVipExpenseItemBinding mViewBinding, Mscard item) {
protected void convert(ItemVipMscardItemBinding mViewBinding, Trule item) {
mViewBinding.truleName.setText(item.getTruleName());
mViewBinding.truleMoney.setText(ConvertUtil.fenToYuanNoZero(item.getTruleValAmt()));
mViewBinding.truleValidity.setText(mContext.getString(R.string.vip_mscard_period_of_validity, StringUtil.format(new Date(item.getTruleExp()), "yyyy.MM.dd"), StringUtil.format(new Date(item.getTruleExp()), "yyyy.MM.dd")));
mViewBinding.truleCondition.setText(ConvertUtil.fenToYuanNoPoint(item.getTruleOrderAmt()));
if (item.getTruleStatus().toString().equals("0")) {
mViewBinding.truleBgLeft.setBackgroundResource(R.mipmap.return_ticket_one);
mViewBinding.truleBgRight.setBackgroundResource(R.mipmap.return_ticket_two);
} else {
mViewBinding.truleBgLeft.setBackgroundResource(R.mipmap.bg_return_ticket03);
mViewBinding.truleBgRight.setBackgroundResource(R.mipmap.bg_return_ticket04);
}
// mViewBinding.expenseMoney.setText(ConvertUtil.fenToYuan2(item.getCardAmtPay()));
// mViewBinding.expenseShop.setText(LoginPresenter.loginReturnBean.getShopNameAbcn());
// //设置支付方式
......
......@@ -4,14 +4,11 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogVipMenuBinding;
import com.xingdata.zzdpos.databinding.FragmentVipInfoBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipContract;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipMscardListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipTruleListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipRechargeListFragment;
import java.util.List;
......@@ -49,7 +46,7 @@ public class VipEditMenuDialog extends BaseSheetDialog<VipPresenter, DialogVipMe
break;
//優惠券詳情
case R.id.voucherDetails:
mPresenter.vipMscardListFragment = new VipMscardListFragment();
mPresenter.vipMscardListFragment = new VipTruleListFragment();
mPresenter.vipMscardListFragment.setVip(mVip);
((BaseActivity) getActivity()).start(mPresenter.vipMscardListFragment);
break;
......
......@@ -24,6 +24,7 @@ import com.xingdata.zzdpos.model.Sta;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipListAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.List;
......@@ -37,6 +38,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
private List<Level> levels = null;
private int pageNumber = 0;
private String strVipLevle;
private int vipState = 0;//0 会员 1 充值
@Override
public int getLayoutId() {
......@@ -48,6 +50,11 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
vipListAdapter = new VipListAdapter(getActivity(), vips);
mViewBinding.vipRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.vipRecyclerView.setAdapter(vipListAdapter);
if (vipState != 0) {
mViewBinding.vipCountAddTodayTitle.setText("充值金额");
mViewBinding.vipCountTitle.setText("今日充值");
mViewBinding.addVipLinearLayout.setVisibility(View.GONE);
}
mViewBinding.vipRefresh.setOnRefreshListener(this::onRefresh);
vipListAdapter.setOnItemClickListener((adapter, view, position) -> {
toStartVipInfo(vipListAdapter.getData().get(position));
......@@ -66,12 +73,15 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
break;
}
});
// mViewBinding.titleSearch.serchEditText.setOnFocusChangeListener((View view, boolean b) -> {
// if (b){
// VipSearchFragment vipSearchFragment = new VipSearchFragment();
// vipSearchFragment.setBaseFragment(new VipInfoFragment());
// }
// });
mViewBinding.titleSearch.serchEditText.setOnClickListener(view -> {
mPresenter.vipSearchFragment.setLevel(levels);
if (vipState==0){
mPresenter.vipSearchFragment.setBaseFragment(mPresenter.vipInfoFragment);
}else {
mPresenter.vipSearchFragment.setBaseFragment(mPresenter.vipRechargeFragment);
}
start(mPresenter.vipSearchFragment);
});
mPresenter.getVipLevel(0, 200);
mPresenter.getVipNumber();
}
......@@ -86,7 +96,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
RadioButton radioButton = ((RadioButton) mViewBinding.vipLevelR.findViewById(buttonID));
if (radioButton.isChecked()) {
strVipLevle = radioButton.getTag().toString();
strVipLevle = radioButton.getTag()==null?null:radioButton.getTag().toString();
radioButton.getPaint().setFakeBoldText(true);
radioButton.setTextSize(17);
vipListAdapter.setEnableLoadMore(true);
......@@ -114,8 +124,9 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void getVipLevelSus(Pager<Level> levelPager) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
layoutParams.height = 120;
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
Level allLevel = new Level();
allLevel.setVipLevelName("全部会员");
mViewBinding.vipLevelR.addView(addRadioButton(layoutParams, allLevel));
for (int i = 0; i < levelPager.getPageSize(); i++) {
mViewBinding.vipLevelR.addView(addRadioButton(layoutParams, levelPager.getList().get(i)));
}
......@@ -129,7 +140,8 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
});
if (levelPager.getList().size() != 0) {
((RadioButton) mViewBinding.vipLevelR.getChildAt(0)).setChecked(true);
mPresenter.getVipList(0, mViewBinding.vipLevelR.getChildAt(0).getTag().toString());
//如果是空查询全部会员
// mPresenter.getVipList(0,mViewBinding.vipLevelR.getChildAt(0).getTag()== null ? null : mViewBinding.vipLevelR.getChildAt(0).getTag().toString());
}
levels = levelPager.getList();
......@@ -139,7 +151,7 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
mPresenter.getVipList(pageNumber, strVipLevle);
}
private void onRefresh() {
public void onRefresh() {
pageNumber = 0;
mPresenter.getVipList(pageNumber, strVipLevle);
mPresenter.getVipNumber();
......@@ -165,15 +177,21 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
public void toStartVipInfo(Vip vip) {
mPresenter.vipRechargeFragment.setVip(vip);
if (vip != null) {
if (vipState==0){
mPresenter.vipInfoFragment.setVip(vip);
mPresenter.vipInfoFragment.setLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoFragment);
}else {
((BaseActivity) getActivity()).start(mPresenter.vipRechargeFragment);
}
} else {
mPresenter.vipInfoEditFragment.setVipLevel(levels);
((BaseActivity) getActivity()).start(mPresenter.vipInfoEditFragment);
}
}
public void addVipSus(Vip vip) {
......@@ -183,7 +201,18 @@ public class VipListFragment extends BaseFragment<VipPresenter, FragmentVipListB
* @param sta
*/
public void getVipNumberSus(Sta sta) {
if (vipState!=0){
mViewBinding.vipCount.setText(sta.getCardCount()+ "");
mViewBinding.vipCountAddToday.setText("¥"+ConvertUtil.fenToYuan2(sta.getCardAmt()));
}else {
mViewBinding.vipCount.setText(sta.getVipCount() + "");
mViewBinding.vipCountAddToday.setText(sta.getVipAddCount() + "");
}
}
public void setVipState(int vipState) {
this.vipState = vipState;
}
}
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import android.annotation.SuppressLint;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
import android.text.TextWatcher;
import android.text.style.AbsoluteSizeSpan;
import android.view.ViewTreeObserver;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipRechargeBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Pay;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.settle.adapter.PayAdapter;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* 会员充值界面
*/
@SuppressLint("ValidFragment")
public class VipRechargeFragment extends BaseFragment<VipPresenter, FragmentVipRechargeBinding> {
private List<Level> levels;
private List<Mscard> mscards = new ArrayList<>();
private LinearLayout.LayoutParams layoutParams = null;
private HashMap<String, Mscard> mscardHashMap = new HashMap<>();
private PayAdapter mPayAdapter;
private List<Pay> mPays = new ArrayList<>();
private int inWight;
@Override
public int getLayoutId() {
return R.layout.fragment_vip_recharge;
}
private Vip mVip;
@Override
public void initView() {
mViewBinding.vipMobile.setText(String.valueOf(mVip.getVipMobile()));
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.tvTitle.setText("充值");
mViewBinding.vipBalance.setText(getString(R.string.vip_balance_text, ConvertUtil.fenToYuan2(mVip.getAcctCbal())));
mViewBinding.infoTitle.ivBack.setOnClickListener(view -> {
pop();
});
mPresenter.getMscardList(mVip.getVipId());
mPayAdapter = new PayAdapter();
mViewBinding.rlPay.setAdapter(mPayAdapter);
mViewBinding.rlPay.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
mViewBinding.rlPay.addItemDecoration(new RecyclerViewUtil.GridSpacingItemDecoration(3, 24, true));
mPayAdapter.setOnItemClickListener((adapter, view, position) -> {
if (mViewBinding.rechargAMT.getText() == null || ConvertUtil.yuanToFen(mViewBinding.rechargAMT.getText().toString().trim()) <= 0) {
ToastUtils.showShort("请选择充值金额");
return;
}
mPresenter.fullVip(mVip, ConvertUtil.yuanToFen(mViewBinding.rechargAMT.getText().toString()), ConvertUtil.yuanToFen(mViewBinding.sendAmt.getText().toString()));
});
mViewBinding.setOnCheckedChangeListener((radioGroup, i) -> {
if (radioGroup.getCheckedRadioButtonId() != -1) {
RadioButton radioButton = radioGroup.findViewById(radioGroup.getCheckedRadioButtonId());
Mscard mscard = mscardHashMap.get(radioButton.getTag().toString());
setMoney(ConvertUtil.fenToYuan2(mscard.getCruleChargeAmt()), ConvertUtil.fenToYuan2(mscard.getCruleSendAmt()));
mViewBinding.stealMoney.setText("");
}
});
ViewTreeObserver observer = mViewBinding.payMoneyLayout.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout() {
mViewBinding.payMoneyLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
ViewTreeObserver observer = mViewBinding.payMoneyLayout.getViewTreeObserver();
inWight = mViewBinding.payMoneyLayout.getWidth();
mPresenter.initSettle();
}
});
}
@Override
public boolean onBackPressedSupport() {
pop();
return true;
}
public void setVipLevel(List<Level> levels) {
this.levels = levels;
}
public void setVip(Vip mVip) {
this.mVip = mVip;
}
@SuppressLint("ResourceAsColor")
public void getMscardSus(Pager<Mscard> mscardPager) {
mscards.clear();
mscards.addAll(mscardPager.getList());
layoutParams = new LinearLayout.LayoutParams(inWight/3, LinearLayout.LayoutParams.MATCH_PARENT, 1);
layoutParams.setMargins(0, 0, 20, 0);
int mscardLength = 0;
if (mscards.size() <= 3) {
mscardLength = mscards.size();
} else {
mscardLength = 3;
}
for (int i = 0; i < mscardLength; i++) {
Mscard mscard = mscards.get(i);
mscardHashMap.put(mscard.getCruleGradeNo().toString(), mscard);
RadioButton radioButton = mPresenter.addRadioButton(mContext, mscard);
radioButton.setLayoutParams(layoutParams);
mViewBinding.payMoneyLayout.addView(radioButton);
}
String hintStr = "自定义金额";
SpannableString ss = new SpannableString(hintStr);
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(8, true);
mViewBinding.stealMoney.setHintTextColor(R.color.black_likui);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mViewBinding.stealMoney.setHint(new SpannedString(ss));
mViewBinding.stealMoney.setOnFocusChangeListener((mView1, b) ->
{
//如果点击输入框按钮都清空点击事件
if (b) {
mViewBinding.payMoneyLayout.clearCheck();
setMoney("0", "0");
}
});
//输入监听
mViewBinding.stealMoney.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (mViewBinding.stealMoney.getText().length() == 0)
return;
Mscard mscard = mPresenter.getMaxRechange(mscards, ConvertUtil.yuanToFen(mViewBinding.stealMoney.getText().toString()));
String strSend = "0";
if (mscard == null) {
strSend = "0";
} else {
strSend = ConvertUtil.fenToYuan2(mscard.getCruleSendAmt());
}
setMoney(mViewBinding.stealMoney.getText().toString(), strSend);
}
});
}
/**
* 设置左边金额
*
* @param rechangeMoney
* @param sendMoney
*/
private void setMoney(String rechangeMoney, String sendMoney) {
mViewBinding.sendAmt.setText(sendMoney);
mViewBinding.rechargAMT.setText(rechangeMoney);
// mViewBinding.rechangeMoney.setText(rechangeMoney);
mViewBinding.recargeAccount.setText(ConvertUtil.fenToYuan2(ConvertUtil.yuanToFen(sendMoney) + ConvertUtil.yuanToFen(rechangeMoney)));
}
/**
* 加载支付方式
*/
public void loadPays(List<Pay> pays) {
for (int i = 0; i < pays.size(); i++) {
pays.get(i).init();
}
mPays.clear();
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)))
_pays.add(mPays.get(i));
}
return _pays;
}
}
......@@ -7,6 +7,8 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
......@@ -14,6 +16,7 @@ import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipRechargeListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
......@@ -23,6 +26,7 @@ import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
......@@ -34,6 +38,11 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
private List<VipRechargeOrder> orders = new ArrayList<>();
private int pageNumber = 0;
private List<Level> levels;
private LinearLayout.LayoutParams layoutParams = null;
private HashMap<String, Mscard> mscardHashMap = new HashMap<>();
private ArrayList<Mscard> mscards = new ArrayList<>();
private ArrayList<String> strLevels = new ArrayList<>();
private EditText serchEditText;
@Override
......@@ -71,7 +80,7 @@ public class VipRechargeListFragment extends BaseFragment<VipPresenter, Fragment
vipRechargeAdapter.setEnableLoadMore(false);
}
private void onRefresh() {
public void onRefresh() {
pageNumber = 0;
mPresenter.rechargeorderQuery(mVip.getVipId(), pageNumber);
}
......
package com.xingdata.zzdpos.ui.vip.fragment;
/**
* Created by JM_DEV on 2017/12/21.
*/
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentViplevelTitleBinding;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
/**
* 会员消费充值记录
*/
public class VipRecordFragment extends BaseFragment<VipPresenter, FragmentViplevelTitleBinding> {
@Override
public int getLayoutId() {
return R.layout.fragment_viplevel_title;
}
@Override
public void initView() {
}
}
......@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.vip.fragment;
import android.annotation.SuppressLint;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils;
......@@ -10,10 +11,14 @@ import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSendTickerVipBinding;
import com.xingdata.zzdpos.databinding.FragmentVipSerchBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.sendticke.SendTicketPresenter;
import com.xingdata.zzdpos.ui.sendticke.adapter.VipAdapter;
import com.xingdata.zzdpos.ui.settle.SettleActivity;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.util.OnClickListener;
import java.util.List;
......@@ -22,9 +27,10 @@ import java.util.List;
/**
* 会员搜索界面
*/
public class VipSearchFragment extends BaseFragment<SendTicketPresenter, FragmentSendTickerVipBinding> {
public class VipSearchFragment extends BaseFragment<VipPresenter, FragmentVipSerchBinding> {
private VipAdapter mVipAdapter;
private BaseFragment baseFragment;
private List<Level> level;
public void setBaseFragment(BaseFragment baseFragment) {
this.baseFragment = baseFragment;
......@@ -32,7 +38,7 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
@Override
public int getLayoutId() {
return R.layout.fragment_send_ticker_vip;
return R.layout.fragment_vip_serch;
}
@Override
......@@ -46,10 +52,13 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
((TextView) emptyView.findViewById(R.id.tv_empty)).setText(R.string
.settle_vip_search_empty);
mVipAdapter.setEmptyView(emptyView);
((EditText) mViewBinding.etSearch).requestFocus();
mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
if (baseFragment instanceof VipInfoFragment) {
((VipInfoFragment) baseFragment).setLevel(this.level);
((VipInfoFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
}else if (baseFragment instanceof VipRechargeFragment){
((VipRechargeFragment) baseFragment).setVip(mVipAdapter.getData().get(position));
}
startWithPop(baseFragment);
});
......@@ -60,6 +69,10 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
case R.id.btn_back: {
pop();
}
case R.id.search_ImageButton:
mPresenter.searchVip(mViewBinding.etSearch.getText().toString());
break;
default: {
......@@ -68,24 +81,14 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
}
}
});
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchVip(textView.getText().toString());
return false;
});
// mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
// KeyboardUtils.hideSoftInput(textView);
// mPresenter.searchVip(textView.getText().toString());
// return false;
// });
}
/**
* 加载会员信息
*
* @param vips 会员列表
*/
public void loadVips(List<Vip> vips) {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
}
@Override
public void onDestroyView() {
......@@ -94,4 +97,18 @@ public class VipSearchFragment extends BaseFragment<SendTicketPresenter, Fragmen
}
super.onDestroyView();
}
public void searchVipSus(Pager<Vip> vips) {
mVipAdapter.setNewData(vips.getList());
}
public void setLevel(List<Level> level) {
this.level = level;
}
@Override
public void onResume() {
super.onResume();
mViewBinding.etSearch.setText("");
}
}
......@@ -12,16 +12,13 @@ import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentVipExpenseListBinding;
import com.xingdata.zzdpos.databinding.FragmentVipMscardListBinding;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.ui.vip.VipPresenter;
import com.xingdata.zzdpos.ui.vip.adapter.VipExpenseAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipMscardAdapter;
import com.xingdata.zzdpos.ui.vip.adapter.VipTruleAdapter;
import com.xingdata.zzdpos.ui.vip.dialog.VipEditMenuDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
......@@ -32,9 +29,9 @@ import java.util.List;
* 优惠券列表
*/
@SuppressLint("ValidFragment")
public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> {
private VipMscardAdapter adapter;
private List<Mscard> mscards = new ArrayList<>();
public class VipTruleListFragment extends BaseFragment<VipPresenter, FragmentVipMscardListBinding> {
private VipTruleAdapter adapter;
private List<Trule> trules = new ArrayList<>();
private int valid = 0;
private int inValid = 0;
......@@ -49,7 +46,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
@Override
public void initView() {
mViewBinding.infoTitle.tvTitle.setText("优惠券详情");
adapter = new VipMscardAdapter(getActivity(), mscards);
adapter = new VipTruleAdapter(getActivity(), trules);
mViewBinding.rechargeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.rechargeRecyclerView.setAdapter(adapter);
mViewBinding.rechargeRefresh.setOnRefreshListener(this::onRefresh);
......@@ -57,7 +54,6 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
mViewBinding.vipName.setText(String.valueOf(mVip.getVipName()));
mViewBinding.infoTitle.popMenu.setVisibility(View.GONE);
mViewBinding.vipDiscount.setText(getString(R.string.vip_info_discount, ConvertUtil.discount(mVip.getVipDefDiscount())));
adapter.setEnableLoadMore(true);
adapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.rechargeRecyclerView);
mViewBinding.infoTitle.popMenu.setOnClickListener(view -> {
new VipEditMenuDialog().show((BaseActivity) getActivity());
......@@ -74,7 +70,7 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
}
private void onRefresh() {
mPresenter.mscardQuery(mVip.getVipId());
mPresenter.truleQuery(mVip.getVipId());
}
@Override
......@@ -89,31 +85,34 @@ public class VipMscardListFragment extends BaseFragment<VipPresenter, FragmentVi
}
public void getMscardSus(Pager<Mscard> mscardPager) {
public void getTruleSus(Pager<Trule> trulePager) {
if (mscardPager.isFirstPage()) {
mscards.clear();
if (trulePager.isFirstPage()) {
trules.clear();
}
if (mscardPager.getList().size() != 0) {
mscards.addAll(mscardPager.getList());
if (trulePager.getList().size() != 0) {
trules.addAll(trulePager.getList());
adapter.notifyDataSetChanged();
// pageNumber = mscardPager.getPageNumber() + 1;
}
getMscardValid();
if (mscardPager.isLastPage()) {
if (trulePager.isLastPage()) {
ToastUtils.showShort("没有更多数据");
}
mViewBinding.mscardValid.setText(valid+ "");
mViewBinding.macardInvalid.setText(inValid+"");
adapter.setEnableLoadMore(!mscardPager.isLastPage());
adapter.setEnableLoadMore(false);
adapter.loadMoreComplete();
mViewBinding.rechargeRefresh.setRefreshing(false);
}
private void getMscardValid() {
for (Mscard m : mscards) {
if (m.getCruleStatus().toString().equals("0")) {
valid=0;
inValid=0;
for (Trule t : trules) {
if (t.getTruleStatus().toString().equals("0")) {
valid = valid + 1;
} else {
inValid = inValid + 1;
......
......@@ -25,8 +25,8 @@ public final class SystemUtil {
* @return 设备型号
*/
public static String getDeviceModel() {
// return DeviceUtils.getModel();
return "AECRC10";
return DeviceUtils.getModel();
}
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_black_layout" android:state_checked="false"/>
<item android:drawable="@drawable/shape_red_layout" android:state_checked="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/darkgray" android:state_checked="false" />
<item android:color="@color/deep_red" android:state_checked="true"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.1dp"
android:color="@color/black1" />
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.1dp"
android:color="@color/deep_red" />
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="3dp"
android:bottomRightRadius="3dp"
android:topLeftRadius="3dp"
android:topRightRadius="3dp" />
</shape>
\ No newline at end of file
......@@ -52,7 +52,6 @@
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
......
......@@ -20,7 +20,6 @@
android:id="@+id/cl_title"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:animateLayoutChanges="true"
android:background="@color/white_caocao"
android:focusable="true"
android:focusableInTouchMode="true">
......@@ -52,7 +51,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:inputType="number"
android:inputType="text"
android:labelFor="@+id/et_search"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
......@@ -72,6 +71,20 @@
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
<ImageButton
android:id="@+id/btn_menu"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:background="?attr/actionBarItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:padding="@dimen/all_margin"
android:src="@mipmap/click_down"
android:visibility="@{titleMode==6?0:8}"
app:layout_constraintRight_toRightOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/user_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_r1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_price"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_price"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_vip"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_vip"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:padding="@dimen/all_spacing"
android:text="@string/all_cancel"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -84,13 +84,13 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -41,5 +41,10 @@
</android.support.v4.view.ViewPager>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/tab_layout" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -80,7 +80,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ll_title"
android:background="@color/white_caocao"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
......
......@@ -21,7 +21,7 @@
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/white_caocao"
android:background="@drawable/singleline_white_gray"
app:layout_constraintTop_toTopOf="parent"
app:tabIndicatorHeight="0dp"
app:tabMinWidth="100dp"
......
......@@ -11,12 +11,10 @@
<!-- TODO: Update blank fragmfragment_integral_indexyout -->
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_product"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/all_padding"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="dataCount"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_spacing"
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">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="@null"
android:paddingStart="@dimen/all_margin"
android:text="@string/sku_barcode"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3">
<EditText
android:id="@+id/et_barcode"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/transparent"
android:gravity="center_vertical"
android:inputType="number"
android:labelFor="@+id/et_barcode"
android:saveEnabled="false"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:id="@+id/tv_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="@string/sku_check"
android:textColor="@color/white_caocao" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{dataCount>0?View.VISIBLE:View.GONE}" />
<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
......@@ -397,6 +397,22 @@
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<TextView
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:gravity="center_vertical"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:text="@string/sku_subtitle_pack"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
......@@ -420,7 +436,7 @@
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:text='@{sku.spuUnitName+" "+sku.spuDownNum}' />
android:text='@{ "1"+sku.spuUnitName+" = "+sku.spuDownNum + @string/sssku_pack_default_unit}' />
<TextView
android:id="@+id/tv_product_name"
......
......@@ -159,5 +159,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/guideline" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -53,7 +53,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L1"
android:background="@color/gray_zhouyu"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
......
......@@ -22,6 +22,12 @@
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/ic_title" />
<FrameLayout
android:id="@+id/main_frame"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="android.view.View.OnClickListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<include
android:id="@+id/title_search"
layout="@layout/title_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="@dimen/view_line_L5"
android:background="@color/line1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/user_count_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="店员数量" />
<TextView
android:id="@+id/vip_count_add_today_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="今日新增" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<TextView
android:id="@+id/vip_count"
style="@style/default_blacktext_bigstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/vip_count_add_today"
style="@style/default_blacktext_bigstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textSize="22sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/addVipLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:id="@+id/addUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{onClickListener}"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="5dp"
android:background="@mipmap/add_bg" />
<TextView
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加店员"
android:textColor="@color/deep_red"
android:textSize="22sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_margin="@dimen/view_line_L5"
android:background="@color/line1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_margin_left"
android:layout_weight="1"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/user_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/userRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="android.view.View.OnClickListener" />
......@@ -15,6 +17,7 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:orientation="horizontal">
<include
android:id="@+id/title_search"
layout="@layout/title_search"
......@@ -49,6 +52,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/vip_count_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -57,6 +61,7 @@
android:text="本店会员" />
<TextView
android:id="@+id/vip_count_add_today_title"
style="@style/default_blacktext_smallstyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -93,7 +98,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/addVipLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
......
......@@ -114,7 +114,7 @@
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="可用优惠卷" />
android:text="可用优惠卷" />
<TextView
android:id="@+id/macard_invalid"
......
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
<variable
name="onCheckedChangeListener"
type="android.widget.RadioGroup.OnCheckedChangeListener" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg"
android:orientation="vertical">
<include
android:id="@+id/info_title"
layout="@layout/title_pop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/all_margin"
android:background="@mipmap/mk_grade01" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:layout_weight="1"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:id="@+id/vip_name"
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/vip_mobile"
style="@style/default_blacktext_nopadding_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dp"
android:textColor="@color/black" />
</LinearLayout>
<TextView
android:id="@+id/vip_balance"
style="@style/default_blacktext_smallstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="@dimen/all_margin"
android:text="@string/vip_balance_text" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/all_margin_left"
android:gravity="center_vertical"
android:orientation="vertical">
<RadioGroup
android:id="@+id/pay_money_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="@dimen/all_margin"
android:gravity="center_vertical"
android:onCheckedChanged="@{onCheckedChangeListener}"
android:orientation="horizontal"></RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_weight="2"
android:id="@+id/stealLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/selector_paymoney_radiobutton_bg"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
style="@style/default_blacktext_bigstyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="充:"
android:textSize="20sp" />
<EditText
android:id="@+id/steal_money"
android:singleLine="true"
style="@style/dialog_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="1234567890."
android:inputType="phone"
android:maxLength="6"
android:onClick="@{onClickListener}"
android:textCursorDrawable="@null" />
</LinearLayout>
<View
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="1dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:background="@color/line_bg"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:text="送:" />
<TextView
android:id="@+id/sendAmt"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/deep_red" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="实际到帐:" />
<TextView
android:id="@+id/recargeAccount"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/white"
android:orientation="horizontal">
<TextView
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:layout_weight="1"
android:text="充值金额:" />
<TextView
android:id="@+id/rechargAMT"
style="@style/textView_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/all_margin_left"
android:layout_marginRight="@dimen/all_margin_left"
android:textColor="@color/deep_red" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_pay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:textAppearance="@android:style/TextAppearance.Large" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="empty"
type="boolean" />
<variable
name="OnClickListener"
type="com.xingdata.zzdpos.util.OnClickListener" />
<variable
name="titleMode"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai" />
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao">
<ImageButton
android:id="@+id/btn_back"
android:layout_width="@dimen/title_height"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:onClick="@{OnClickListener}"
android:padding="@dimen/all_margin"
android:src="@mipmap/back_black"
app:layout_constraintLeft_toLeftOf="parent" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" />
<TextView
style="@style/textView_body"
android:id="@+id/search_ImageButton"
android:layout_width="60dp"
android:layout_height="match_parent"
android:onClick="@{OnClickListener}"
android:text="搜索" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_gravity="bottom"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginBottom="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{empty?View.GONE:View.VISIBLE}" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_vip"
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>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<View
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
android:layout_alignParentBottom="true" />
android:layout_height="wrap_content">
<TextView
......@@ -15,15 +11,19 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="@drawable/singleline_zhouyu_huanggai"
android:gravity="left"
android:paddingTop="@dimen/all_padding"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding"
android:singleLine="true"
android:text="北京店"
android:textColor="@color/black"
android:textSize="14sp" />
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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